*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font:400 16px/1.55 var(--font);background:var(--bg);color:var(--ink);min-height:100vh;-webkit-font-smoothing:antialiased;overflow-x:hidden}
h1,h2,h3,h4,p{margin:0}
h1,h2,h3,h4,.logo,.btn,.chip,.tab,.seg span,.rule-badge,.step,.tag,.k{font-family:var(--display)}
h2{font-size:20px;font-weight:700;letter-spacing:-.01em}
h4{font-size:16px;font-weight:600}
b{font-weight:600}
button,input,textarea{font:inherit;color:inherit}
button{cursor:pointer;-webkit-tap-highlight-color:transparent}
.hidden{display:none!important}
.muted{color:var(--muted)}
.err{color:var(--danger)}
code{font-family:var(--mono);background:var(--lime);color:var(--lime-ink);padding:2px 8px;border-radius:8px;font-weight:600;font-size:14px}
input,textarea{width:100%;font-size:16px;border:1.5px solid var(--line);background:#fff;border-radius:var(--r-sm);padding:12px 14px;transition:border-color .2s,box-shadow .2s;resize:vertical}
input:focus,textarea:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 4px rgba(184,244,60,.55)}
input::placeholder,textarea::placeholder{color:#82828f}
input:disabled,textarea:disabled{background:#f1f1f4;cursor:not-allowed}
:focus-visible{outline:3px solid var(--blue);outline-offset:2px}
