#auth-modal{z-index:120}
#auth-modal>div{width:100%;max-width:480px;max-height:calc(100dvh - 32px);overflow-y:auto;background:#142018;border-color:#4e5842;color:#eee9dc}
.signup-heading{margin:4px 0 18px}
.signup-heading>span,.signup-eyebrow{font-size:9px;letter-spacing:.19em;color:#baa779}
.signup-heading h3{font-family:'Maru Buri',Georgia,serif;font-size:25px;font-weight:600;color:#e9dfc7;margin:6px 0 0}
.signup-form{display:flex;flex-direction:column;gap:13px}
.signup-form [hidden]{display:none!important}
.signup-account-types{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:0 0 2px;padding:0;border:0}
.signup-account-types label{position:relative;cursor:pointer}
.signup-account-types input{position:absolute;opacity:0;width:1px;height:1px}
.signup-account-types span{display:flex;flex-direction:column;gap:4px;padding:13px 15px;border:1px solid #3b493c;border-radius:10px;background:#101b14}
.signup-account-types strong{font-size:14px;color:#c3cabc;font-weight:650}
.signup-account-types small{font-size:10px;color:#8c9b8b}
.signup-account-types input:checked+span{border-color:#bba26f;background:#293324;box-shadow:0 0 0 1px #bba26f22 inset}
.signup-account-types input:checked+span strong{color:#e2c995}
.signup-account-types input:focus-visible+span{outline:2px solid #cfb783;outline-offset:2px}
.signup-label,.signup-pair label{display:block;font-size:12px;font-weight:550;color:#c9d0c3;margin-bottom:6px}
.signup-label small{font-weight:400;font-size:10px;color:#98a491;margin-left:5px}
.signup-form input:not([type=radio]),.signup-form select,.password-review-dialog input{width:100%;min-width:0;height:43px;padding:9px 11px;color:#eee9dc;background:#0e1912;border:1px solid #3c4b3e;border-radius:8px;font:inherit;font-size:13px;box-sizing:border-box}
.signup-form input::placeholder,.password-review-dialog input::placeholder{color:#778674;font-weight:400;font-size:12px}
.signup-form input:focus,.signup-form select:focus,.password-review-dialog input:focus{outline:2px solid #cfb783;outline-offset:1px;border-color:#cfb783}
.signup-school-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.signup-preview{font-size:11px;color:#cdb784;margin:8px 1px 3px;min-height:17px;font-variant-numeric:tabular-nums}
.signup-note{font-size:10px!important;line-height:1.65!important;color:#98a18d;margin:3px 1px 0}
.signup-pair{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:15px}
.signup-pair input{display:block;margin-top:6px}
.signup-submit{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:44px;padding:11px 16px;border:1px solid #d9c38f;border-radius:9px;background:#cfb783;color:#1c271d;font-size:13px;font-weight:650;cursor:pointer}
.signup-submit:hover{background:#dfc99b}
.signup-submit:disabled{opacity:.55;cursor:wait}
.signup-error{font-size:12px;color:#e9b19c;line-height:1.5;margin:0}
.password-review-trigger{padding:5px 9px;border:1px solid #8e805a;border-radius:7px;background:#2c3325;color:#dcc392;font-size:11px;cursor:pointer}
.password-review-dialog{position:fixed;inset:0;margin:auto;width:min(390px,calc(100vw - 32px));padding:25px;background:#17221b;color:#eee9dc;border:1px solid #756b4d;border-radius:15px;box-shadow:0 24px 80px #0008}
.password-review-dialog::backdrop{background:#050b08c9;backdrop-filter:blur(4px)}
.password-review-dialog h2{font-family:'Maru Buri',Georgia,serif;font-size:21px;margin:8px 0 8px;color:#e5d4b0}
.password-review-close{position:absolute;right:14px;top:10px;padding:2px 7px;background:none;border:0;color:#b4bba9;font-size:24px;cursor:pointer}
.password-review-target{font-size:12px;color:#a8b39f;margin:0 0 20px}
.password-review-dialog .signup-submit{margin-top:12px;justify-content:center}
.password-review-result{display:block;background:#0c1710;border:1px solid #6c6948;border-radius:9px;padding:18px;font-family:monospace;font-size:24px;letter-spacing:.08em;text-align:center;overflow-wrap:anywhere;user-select:text}
.password-review-dialog [hidden]{display:none!important}
.password-review-status{font-size:11px;color:#d6bd90;line-height:1.6;margin:12px 0 0}
@media(max-width:420px){.signup-school-grid{gap:5px}.signup-form select{padding-inline:7px;font-size:12px}.signup-account-types span{padding:11px}.signup-heading h3{font-size:22px}}
/* Quiet surfaces, consistent spacing, and a single gold action. */
#auth-modal>div{max-width:450px;border-radius:18px;padding:26px;background:#142018;box-shadow:0 24px 90px #0008}
.signup-heading{margin:2px 0 20px}.signup-heading>span{display:none}.signup-heading h3{font-size:24px;margin:0}
.signup-form{gap:15px}.signup-account-types{gap:0;border:1px solid #3c493b;border-radius:10px;padding:4px;background:#0f1912}
.signup-account-types span{border:0;border-radius:7px;background:transparent;padding:10px 12px;gap:3px}
.signup-account-types input:checked+span{background:#2b3527;box-shadow:none}
.signup-account-types strong{font-size:13px}.signup-account-types small{font-size:10px}
.signup-school-heading{display:flex;align-items:center;justify-content:space-between;margin:3px 0 9px}.signup-school-heading .signup-label{margin:0}
.signup-mode{display:flex;gap:3px}.signup-mode button{border:0;background:transparent;color:#82927f;font-size:11px;padding:5px 8px;border-radius:5px;cursor:pointer}.signup-mode button[aria-pressed=true]{color:#e1c998;background:#293426}
.signup-mode button:focus-visible{outline:2px solid #cfb783;outline-offset:2px}
.signup-preview{margin:6px 0 0;font-size:10px;color:#a99c7c;min-height:0}.signup-note{margin:6px 0 0;color:#8b9884}
.signup-pair{margin-top:15px;gap:12px}.signup-pair label{margin:0}
.signup-form>.signup-label{margin-bottom:-9px}.signup-form input:not([type=radio]),.signup-form select{height:42px;border-color:#364535;background:#101a13;border-radius:7px}
.signup-gift-note{display:flex;justify-content:space-between;padding-top:13px;border-top:1px solid #33412f;color:#a8b29d;font-size:11px;margin:0}.signup-gift-note strong{color:#d6bf8c;font-weight:500}
.welcome-gift{position:fixed;inset:0;isolation:isolate;overflow:hidden;margin:auto;width:min(390px,calc(100vw - 32px));box-sizing:border-box;text-align:center;border:1px solid #88784e;border-radius:20px;padding:35px 28px 26px;background:#17251a;color:#e9e3d4;box-shadow:0 25px 100px #0009;animation:gift-enter .45s ease-out}
.welcome-gift::backdrop{background:#07100bcb;backdrop-filter:blur(6px)}.welcome-gift h2{font-family:'Maru Buri',Georgia,serif;font-size:25px;margin:12px 0 8px}.welcome-gift p{font-size:12px;color:#a6b09c;margin:0}.welcome-gift .signup-submit{margin-top:26px}
.gift-coin{position:relative;width:68px;height:68px;margin:0 auto 22px;display:grid;place-items:center;border:5px double #ecd7a1;border-radius:50%;background:linear-gradient(130deg,#e4c989,#a38343);box-shadow:0 0 35px #d6b66c40;color:#263221;font-family:Georgia,serif;font-weight:bold;font-size:23px;animation:gift-coin .8s ease-out}
.gift-amount{display:flex;align-items:baseline;justify-content:center;gap:9px;margin:23px 0 7px;color:#edd399}.gift-amount strong{font-size:43px;font-weight:500;letter-spacing:-.04em;font-variant-numeric:tabular-nums;animation:gift-number .8s ease-out}.gift-amount span{font-size:14px}.welcome-gift .gift-caption{font-size:10px;color:#8d9e85}
.gift-rays{position:absolute;z-index:-1;inset:-50%;background:repeating-conic-gradient(from 10deg,transparent 0deg 28deg,#d2bb7410 29deg 30deg,transparent 31deg 45deg);animation:gift-rays 18s linear infinite;mask-image:radial-gradient(circle,#000,transparent 65%)}
@keyframes gift-enter{from{opacity:0;transform:translateY(15px) scale(.96)}to{opacity:1;transform:none}}@keyframes gift-coin{from{opacity:0;transform:translateY(-20px) rotateY(180deg)}to{opacity:1;transform:none}}@keyframes gift-number{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes gift-rays{to{transform:rotate(360deg)}}
@media(max-width:420px){#auth-modal>div{padding:20px}.signup-form{gap:13px}.signup-heading{margin-bottom:16px}}
@media(prefers-reduced-motion:reduce){.welcome-gift,.gift-coin,.gift-amount strong,.gift-rays{animation:none}}
/* The welcome chips gather once; the final balance remains still. */
.welcome-gift{padding-top:40px;background:radial-gradient(ellipse at 50% 18%,#34422a 0, #17251a 48%,#111f16 100%)}
.gift-coin{width:78px;height:78px;border:6px double #f3dfaa;background:linear-gradient(135deg,#f2d997 0,#bd9951 48%,#ead39b 75%,#9d793e 100%);box-shadow:0 5px 0 #776035,0 9px 25px #0005,0 0 38px #ddc17a38;text-shadow:0 1px #f1d89d;font-size:26px;animation:gift-coin-arrive 1.1s cubic-bezier(.2,.7,.2,1) both}
.gift-halo{position:absolute;top:18px;left:50%;width:126px;height:126px;border:1px solid #d4bb7460;border-radius:50%;transform:translateX(-50%);animation:gift-halo 1.4s ease-out both;pointer-events:none}
.gift-rays{animation:gift-rays 16s linear 1;opacity:.6}.gift-particles{position:absolute;top:79px;left:50%;pointer-events:none}
.gift-particles i{position:absolute;width:14px;height:14px;border:3px double #e6ce90;border-radius:50%;background:#b99955;box-shadow:0 0 10px #d6b66c50;opacity:0;animation:gift-gather 1s cubic-bezier(.3,0,.4,1) var(--chip-delay) both}
.gift-amount{margin-top:25px;min-height:56px}.gift-amount strong{font-size:46px;animation:none;letter-spacing:-.035em}
.welcome-gift .gift-caption{opacity:0;transform:translateY(5px);transition:opacity .35s,transform .35s;color:#b9c5a8;font-size:11px}.gift-check{display:inline-grid;place-items:center;width:16px;height:16px;margin-right:3px;border-radius:50%;background:#6c805733;color:#d1dcba}
.gift-complete .gift-caption{opacity:1;transform:none}.gift-complete .gift-amount{animation:gift-confirm .5s ease-out}.gift-complete .gift-rays{animation-play-state:paused}
@keyframes gift-gather{0%{opacity:0;transform:translate(var(--chip-x),var(--chip-y)) rotate(var(--chip-turn)) scale(.5)}20%{opacity:.9}85%{opacity:.8}100%{opacity:0;transform:translate(-7px,-7px) rotate(0) scale(.7)}}
@keyframes gift-coin-arrive{0%{opacity:0;transform:translateY(12px) rotateY(-120deg) scale(.7)}55%{opacity:1;transform:translateY(-3px) rotateY(15deg) scale(1.04)}100%{opacity:1;transform:none}}
@keyframes gift-halo{0%{opacity:0;transform:translateX(-50%) scale(.55)}40%{opacity:.8}100%{opacity:0;transform:translateX(-50%) scale(1.8)}}
@keyframes gift-confirm{0%,100%{filter:brightness(1);transform:scale(1)}40%{filter:brightness(1.25);transform:scale(1.035)}}
@media(prefers-reduced-motion:reduce){.gift-coin,.gift-halo,.gift-particles i,.gift-complete .gift-amount{animation:none}.gift-halo,.gift-particles{display:none}.welcome-gift .gift-caption{transition:none}}
