:root{--ink:#0D0E12;--ink2:#15161C;--ink3:#1F2028;--ink4:#2A2B35;--line:rgba(255,255,255,.08);--paper:#F5F2EC;--mute:#8A8C96;--coral:#FF5533;--coral2:#FF7A5C;--mint:#3DDC97;--warn:#FFB020;--display:'Unbounded',system-ui,sans-serif;--sans:'Inter Tight',system-ui,-apple-system,sans-serif;--ease:cubic-bezier(.2,.8,.1,1);--spring:cubic-bezier(.34,1.56,.64,1);--safe-b:env(safe-area-inset-bottom,0px);--safe-t:env(safe-area-inset-top,0px)}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html,body{height:100%}
body{background:var(--ink);color:#fff;font:400 15px/1.45 var(--sans);-webkit-font-smoothing:antialiased;overscroll-behavior:none}
button,input,select,textarea{font:inherit;color:inherit;border:0;background:none;outline:none}
button{cursor:pointer}
svg{display:block}
.mark{width:40px;height:40px;flex:none}
.wm{font:800 22px/1 var(--display);letter-spacing:-.05em;white-space:nowrap;display:inline-flex;align-items:center}
.wm i{font-style:normal;display:inline-block;background:var(--coral);color:#fff;border-radius:.22em;padding:.02em .15em .09em;margin:0 .05em;transform:rotate(-8deg);outline:.045em dashed rgba(255,255,255,.6);outline-offset:-.13em;box-shadow:0 .08em .2em rgba(0,0,0,.25)}
.wm.anim i{animation:wmslam .7s var(--spring) .35s both}
@keyframes wmslam{0%{transform:scale(2.2) rotate(-24deg);opacity:0}60%{opacity:1}100%{transform:rotate(-8deg)}}
.btn{height:56px;border-radius:18px;background:var(--coral);color:#fff;font:700 15px var(--display);letter-spacing:-.01em;display:flex;align-items:center;justify-content:center;gap:10px;width:100%;transition:transform .15s,opacity .2s}
.btn:active{transform:scale(.97)}
.btn[disabled]{opacity:.45;pointer-events:none}
.btn.sec{background:var(--ink3);color:#fff}
.btn.ghost{background:transparent;border:1px solid var(--line)}
.btn svg{width:20px;height:20px}
.field{display:block;background:var(--ink3);border-radius:16px;padding:12px 16px;margin-bottom:10px}
.field small{display:block;font-size:11px;color:var(--mute);letter-spacing:.06em;text-transform:uppercase;font-weight:600;margin-bottom:3px}
.field input,.field select,.field textarea{width:100%;font-size:16px;font-weight:600}
.field select{appearance:none;-webkit-appearance:none}
.toast{position:fixed;left:50%;bottom:calc(24px + var(--safe-b));transform:translate(-50%,140%);background:#fff;color:var(--ink);padding:12px 18px;border-radius:14px;font-weight:600;font-size:14px;z-index:999;max-width:calc(100% - 32px);box-shadow:0 20px 40px -10px rgba(0,0,0,.5);transition:transform .45s var(--spring)}
.toast.on{transform:translate(-50%,0)}
.toast.err{background:var(--coral);color:#fff}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(255,85,51,.55)}100%{box-shadow:0 0 0 18px rgba(255,85,51,0)}}
@keyframes shake{10%,90%{transform:translateX(-2px)}20%,80%{transform:translateX(4px)}30%,50%,70%{transform:translateX(-8px)}40%,60%{transform:translateX(8px)}}
@keyframes slam{0%{transform:scale(2.4) rotate(-18deg);opacity:0}60%{opacity:1}100%{transform:none}}
@keyframes burst{0%{opacity:1;transform:translate(-50%,-50%) rotate(var(--r)) translateY(0)}100%{opacity:0;transform:translate(-50%,-50%) rotate(var(--r)) translateY(-120px) scale(.4)}}
@keyframes rise{from{opacity:0;transform:translateY(16px)}}
@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}
