:root{--bg:#F5F5F7;--card:#fff;--ink:#1D1D1F;--sec:#6E6E73;--sep:#E5E5EA;--fill:rgba(118,118,128,.12);--blue:#0071E3;--link:#0066CC;--red:#D0011B;--green:#248A3D;--orange:#C93400;
--spring:linear(0,0.186,0.465,0.682,0.821,0.903,0.949,0.973,0.986,0.993,0.997,1)}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 -apple-system,BlinkMacSystemFont,'SF Pro Text','Helvetica Neue',Geist,system-ui,sans-serif}
a{color:var(--link);text-decoration:none}a:hover{text-decoration:underline}
button,input{font:inherit;color:inherit}
.press{transition:transform .55s var(--spring)}.press:active{transform:scale(.97);transition-duration:.08s}
button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--blue);outline-offset:2px}
.card{background:var(--card);border-radius:18px}
.btn{height:44px;padding:0 18px;border-radius:999px;border:0;cursor:pointer;font-size:15px;font-weight:500;display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap;text-decoration:none}
.btn:hover{text-decoration:none}
.btn.primary{background:var(--blue);color:#fff}
.btn.sec{background:var(--fill);color:var(--link)}
.btn[aria-disabled="true"]{opacity:.45;pointer-events:none}
.mono{font-family:'Geist Mono',ui-monospace,SFMono-Regular,Menlo,monospace}
.brand{display:flex;align-items:center;gap:10px}
.brand small{display:block;font-size:10.5px;letter-spacing:.1em;color:var(--sec)}
.brand b{font-size:17px;letter-spacing:-.02em}
.eyebrow{font-size:13px;font-weight:600;letter-spacing:.02em;color:var(--sec)}
h1{margin:0;font-family:'SF Pro Display',-apple-system,Geist,sans-serif;font-size:34px;font-weight:700;letter-spacing:-.025em;line-height:1.1}
h2{margin:0;font-size:20px;font-weight:700;letter-spacing:-.02em}
.sub{color:var(--sec);font-size:13.5px}
.field{display:flex;flex-direction:column;gap:6px}
.field label{font-size:13px;font-weight:600}
.field input{height:46px;border-radius:12px;border:1px solid #D2D2D7;background:#fff;padding:0 14px}
.err{color:var(--red);font-size:13.5px;min-height:20px}
.notice{padding:10px 14px;border-radius:12px;font-size:13.5px}
.notice.ok{background:#E8F5EC;color:#1B6B30}
.notice.bad{background:#FDE7E9;color:#8E0014}
@media (prefers-reduced-motion:reduce){.press,.press:active{transform:none!important}}
