*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--bg)}
body{margin:0;min-height:100vh;color:var(--text);font-family:var(--f-body);font-weight:500;-webkit-font-smoothing:antialiased;
  background:radial-gradient(900px 480px at 12% -8%,rgba(255,46,99,.09),transparent 65%),var(--bg)}
button,input{font:inherit}
button{color:inherit;cursor:pointer;border:0;background:none}
button:active{transform:translateY(1px)}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}

@keyframes arrive{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
@keyframes spin{to{transform:rotate(360deg)}}

.spinner{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.15);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;vertical-align:middle;margin-right:8px}

.toast{position:fixed;z-index:120;left:50%;bottom:88px;transform:translate(-50%,12px);opacity:0;pointer-events:none;background:rgba(22,21,31,.85);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--line-strong);border-radius:var(--r-btn);padding:12px 18px;font-size:13px;font-weight:600;transition:opacity .2s,transform .2s}
.toast.show{opacity:1;transform:translate(-50%,0)}

@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
