:root{
  --ink:#12344a;--ink-2:#284b60;--muted:#657f8d;--teal:#1ea99e;--cyan:#179bd0;--navy:#07334f;
  --line:#d5e5eb;--line-strong:#c3d9e2;--surface:#fff;--soft:#f4f9fb;--board:#b7d88d;--cell:#dff0c4;--cell-alt:#d8ebbb;
  --shadow:0 14px 34px rgba(20,66,86,.10);--shadow-soft:0 8px 20px rgba(20,66,86,.07);--board-size:680px;
}
*,*::before,*::after{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:linear-gradient(#99dcf7 0 43%,#eef8e8 43% 100%)}body{min-height:100dvh}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.56}img{max-width:100%}#app{min-height:100dvh}.ui-icon,.button-icon,.panel-icon{width:21px;height:21px;display:block}.eyebrow{font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;font-weight:900;color:#168da1}.screen-brand{font-size:.62rem;font-weight:800;color:rgba(255,255,255,.94)}
.primary-btn,.secondary-btn,.flow-btn,.ma-primary,.ma-secondary,.ma-link-btn{border:0;border-radius:13px;font-weight:850;transition:transform .15s ease,box-shadow .15s ease,background .15s ease}.primary-btn,.ma-primary,.flow-btn{background:linear-gradient(135deg,#1599cf,#20aa9f);color:#fff;box-shadow:0 8px 18px rgba(22,148,175,.22)}.secondary-btn,.ma-secondary{background:#fff;color:#24465a;border:1px solid var(--line-strong)}.ma-link-btn{background:transparent;color:#167d9f;padding:0}.primary-btn:hover,.secondary-btn:hover,.ma-primary:hover,.ma-secondary:hover{transform:translateY(-1px)}.wide-btn{width:100%}.icon-btn{width:44px;height:44px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.54);border-radius:14px;background:rgba(255,255,255,.94);box-shadow:0 6px 14px rgba(22,78,101,.10)}.icon-text-btn{display:flex;align-items:center;justify-content:center;gap:7px}
.toast{position:fixed;left:50%;bottom:22px;transform:translate(-50%,18px);opacity:0;pointer-events:none;z-index:120;padding:10px 15px;border-radius:999px;background:#173448;color:#fff;box-shadow:var(--shadow);transition:.2s ease;font-size:.82rem;font-weight:750}.toast.show{opacity:1;transform:translate(-50%,0)}.toast.error{background:#a84141}.toast.info{background:#245a78}.modal-layer{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:16px;background:rgba(7,32,48,.50);backdrop-filter:blur(7px)}.result-card,.auth-card,.leaderboard-modal,.support-modal{width:min(94vw,500px);max-height:92dvh;overflow:auto;padding:20px;border:1px solid rgba(255,255,255,.7);border-radius:24px;background:#fff;box-shadow:0 28px 70px rgba(11,43,60,.25)}.compact-modal{width:min(94vw,440px)}.result-brand{display:flex;justify-content:center}.result-brand img{width:78px;height:78px;object-fit:contain}.result-card h2,.auth-card h2,.leaderboard-modal h2,.support-modal h2{margin:8px 0 6px;text-align:center}.result-card p,.auth-card p{text-align:center;color:var(--muted);line-height:1.45}.result-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0}.result-stats span{padding:11px;border-radius:15px;background:var(--soft);text-align:center;font-size:1.12rem;font-weight:900}.result-stats small{display:block;font-size:.6rem;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.1em}.result-actions{display:flex;gap:9px}.result-actions button{flex:1;min-height:44px}.stars{text-align:center;font-size:1.7rem;color:#d7a522}
.auth-tabs,.support-tabs{display:flex;gap:8px;margin:10px 0}.auth-tabs button,.support-tabs button{flex:1;padding:10px;border:1px solid var(--line);border-radius:12px;background:#f8fbfc;font-weight:800;color:#46606f}.auth-tabs button.active,.support-tabs button.active{background:#e4f6f8;color:#138b98}.auth-form{display:grid;gap:9px}.auth-form label{display:grid;gap:5px;color:#4b6675;font-size:.74rem;font-weight:750}.auth-form input{width:100%;padding:11px 12px;border:1px solid var(--line-strong);border-radius:12px;outline:none}.auth-form input:focus{border-color:#35a8bf;box-shadow:0 0 0 3px rgba(30,169,158,.12)}.register-only[hidden]{display:none!important}.auth-tip,.auth-status,.auth-error{margin:0;padding:9px 11px;border-radius:12px;font-size:.72rem}.auth-tip{background:#f5fafc;color:var(--muted)}.auth-status.connected{background:#e8f7ee;color:#2d7650}.auth-status.unavailable,.auth-error{background:#fff0ee;color:#a64b42}.auth-status.checking{background:#f2f6f8;color:#617581}.auth-cancel{width:100%;margin-top:8px;min-height:42px;border:1px solid var(--line-strong);border-radius:12px;background:#fff;color:#496474;font-weight:800}.leader-filter{display:flex;gap:6px;overflow-x:auto;margin:12px 0}.leader-filter button{padding:8px 10px;border:1px solid var(--line);border-radius:999px;background:#f8fbfc;font-weight:800;color:#4d6774}.leader-filter button.active{background:#e3f5f7;color:#118d9b}.leader-list{display:grid;gap:7px}.leader-row{display:grid;grid-template-columns:38px 1fr auto;gap:9px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:13px}.leader-row small{display:block;color:var(--muted)}.fg-qr{text-align:center}.fg-qr img{width:min(260px,70vw);border-radius:16px}.fg-paypal{text-align:center;display:grid;gap:8px}.paypal-mark{width:58px;height:58px;border-radius:18px;margin:auto;display:grid;place-items:center;background:#0f55a8;color:#fff;font-size:2rem;font-weight:900}.pipe-drag-ghost{position:fixed;z-index:150;width:72px;height:72px;pointer-events:none;transform:translate(-50%,-50%) scale(1.05);filter:drop-shadow(0 12px 18px rgba(10,55,77,.28))}.pipe-drag-ghost .pipe-piece{width:100%;height:100%}
.auth-error:empty{display:none}

/* v0.58 account, achievements and Donate polish */
.account-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.achievement-list{display:grid;gap:7px;margin:12px 0 14px}
.achievement-row{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:9px;align-items:center;padding:9px 10px;border:1px solid var(--line);border-radius:13px;background:#f8fbfc}
.achievement-row.earned{background:#eef9ef;border-color:#b9dfc2}.achievement-row.locked{opacity:.64}
.achievement-medal{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#e5f3f7;color:#138b9b;font-weight:900}
.achievement-row.earned .achievement-medal{background:#fff0b8;color:#ba8420}.achievement-row b{display:block;font-size:.78rem}.achievement-row small{display:block;margin-top:2px;color:var(--muted);font-size:.62rem}.achievement-row>strong{font-size:.58rem;color:#168b9b}
.support-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.support-brand{display:flex;align-items:center;gap:10px}.support-brand img{width:58px;height:58px;padding:5px;border-radius:15px;background:linear-gradient(145deg,#082f49,#0b5878);object-fit:contain}.support-brand small{display:block;font-size:.5rem;letter-spacing:.13em;color:#168b9b;font-weight:900}.support-brand h2{margin:2px 0 0!important;text-align:left!important}.support-close{width:38px;height:38px;border:1px solid var(--line);border-radius:11px;background:#fff;color:#496474;font-size:1.3rem;font-weight:800}.support-copy{margin:9px 0 4px!important;text-align:left!important;font-size:.76rem}.support-payment{min-height:280px;display:grid;place-items:center;padding:9px;border:1px solid var(--line);border-radius:16px;background:#f8fbfc}.fg-qr{display:grid;justify-items:center;gap:7px}.qr-frame{padding:8px;border:1px solid var(--line);border-radius:16px;background:#fff}.fg-qr img{display:block;width:min(244px,68vw);height:auto;border-radius:10px}.fg-qr small,.fg-paypal small{max-width:310px;color:var(--muted);font-size:.69rem;line-height:1.4}.fg-paypal{width:min(320px,100%)}
@media(max-width:520px){.account-actions{grid-template-columns:repeat(3,minmax(0,1fr))}.achievement-row{grid-template-columns:34px minmax(0,1fr)}.achievement-row>strong{grid-column:2}.support-modal{padding:14px}.support-payment{min-height:250px}.support-tabs button{padding:9px 5px}.fg-qr img{width:min(232px,72vw)}}

/* v0.62 achievement library */
.achievement-modal{width:min(720px,94vw);max-height:min(86dvh,820px);overflow:hidden;display:flex;flex-direction:column}
.achievement-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;text-align:left}.achievement-head small{font-size:.52rem;letter-spacing:.15em;color:#168b9b;font-weight:900}.achievement-head h2{margin:3px 0}.achievement-head p{margin:0;color:var(--muted);font-size:.7rem}.achievement-total{min-width:86px;padding:8px 10px;border-radius:14px;background:linear-gradient(145deg,#0d5575,#159ca3);color:#fff;text-align:center}.achievement-total b{font-size:1.35rem}.achievement-total span{font-size:.75rem}.achievement-total small{display:block;color:#dffbff;font-size:.47rem;letter-spacing:.08em}.achievement-list{overflow:auto;padding-right:2px}.achievement-group{display:grid;gap:6px;padding:9px;border:1px solid var(--line);border-radius:15px;background:#fff}.achievement-group+.achievement-group{margin-top:8px}.achievement-group-head{display:flex;align-items:center;justify-content:space-between;padding:0 2px 2px}.achievement-group-head div{display:grid;gap:1px}.achievement-group-head small{font-size:.43rem;letter-spacing:.13em;color:#168b9b;font-weight:900}.achievement-group-head b{font-size:.78rem}.achievement-group-head>strong{padding:4px 8px;border-radius:999px;background:#eef7f9;color:#168b9b;font-size:.57rem}.battle-achievements{border-color:#b8cbea;background:linear-gradient(145deg,#f8fbff,#f5f0ff)}.battle-achievements .achievement-group-head small{color:#6b55b7}

/* v0.63 full device/account claim summary */
.claim-summary-modal{width:min(94vw,560px)}
.claim-kicker{display:block;margin-top:8px;text-align:center;font-size:.52rem;letter-spacing:.16em;color:#168b9b;font-weight:900}
.claim-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:14px 0}
.claim-summary-grid>div{min-width:0;padding:10px;border:1px solid var(--line);border-radius:14px;background:#f7fbfc;text-align:center}
.claim-summary-grid span{display:block;font-size:.5rem;letter-spacing:.08em;text-transform:uppercase;color:#168b9b;font-weight:900}
.claim-summary-grid b{display:block;margin-top:4px;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.claim-new-achievements{margin:0 0 12px;padding:10px 12px;border:1px solid #ecd894;border-radius:14px;background:#fff8d9}
.claim-new-achievements small{display:block;font-size:.46rem;letter-spacing:.12em;color:#9a7420;font-weight:900}
.claim-new-achievements b{display:block;margin-top:4px;font-size:.7rem;color:#5f4b21;line-height:1.4}
@media(max-width:520px){.claim-summary-modal{padding:14px}.claim-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.claim-summary-grid>div{padding:8px}.claim-summary-grid b{font-size:.78rem}}


/* v0.67 compact, substantial account and modal controls */
.auth-keep{display:flex!important;grid-template-columns:18px minmax(0,1fr);align-items:center;gap:8px;min-height:34px;padding:4px 2px;color:#405f70!important;font-size:.72rem!important;font-weight:800!important}
.auth-keep input{width:18px!important;height:18px!important;margin:0;padding:0!important;accent-color:#1599cf;box-shadow:none!important}
.auth-tabs button,.support-tabs button{min-height:40px;padding:0 10px}
.auth-form>[data-submit],.auth-cancel{min-height:44px}
.modal-action-btn{min-height:42px!important;padding:0 10px;font-size:.72rem}
.modal-close-btn{display:block;width:auto;min-width:112px;min-height:40px;margin:12px auto 0;padding:0 16px}
.leader-filter button{min-height:36px;padding:0 11px;white-space:nowrap}
.achievement-modal .modal-close-btn,.leaderboard-modal .modal-close-btn{flex:0 0 auto}
@media(max-width:520px){.account-actions{gap:5px}.account-actions .modal-action-btn{min-height:40px!important;padding:0 5px;font-size:.63rem}.auth-card{padding:15px}.auth-tabs{gap:5px}.auth-tabs button{min-height:39px;padding:0 6px}.leader-filter{margin:8px 0}.leader-filter button{min-height:35px;padding:0 9px;font-size:.66rem}}

/* v0.67 leaderboard: no thin horizontal scroller on desktop. */
.leaderboard-modal{width:min(760px,94vw)}
.leader-filter{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;overflow:visible}
.leader-filter button{width:100%;min-width:0;white-space:normal;line-height:1.1}
.error-state{color:#a64b42}
@media(max-width:520px){.leader-filter{grid-template-columns:repeat(2,minmax(0,1fr))}.leaderboard-modal{width:min(96vw,520px)}}

/* v0.68 expanded achievement library stays dense despite the larger milestone set. */
.achievement-modal{width:min(900px,95vw)}
.achievement-list{display:block;min-height:0;margin:10px 0 12px}
.achievement-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.achievement-row{grid-template-columns:32px minmax(0,1fr) auto;gap:7px;padding:7px 8px;border-radius:11px}
.achievement-medal{width:28px;height:28px;font-size:.72rem}
.achievement-row b{font-size:.7rem}.achievement-row small{font-size:.56rem;line-height:1.25}.achievement-row>strong{font-size:.52rem}
.achievement-group{padding:8px}.achievement-group-head{margin-bottom:4px}
@media(max-width:650px){
  .achievement-modal{width:min(96vw,560px)}
  .achievement-grid{grid-template-columns:1fr}
  .achievement-row{grid-template-columns:30px minmax(0,1fr);padding:7px}
  .achievement-row>strong{grid-column:2}
}

/* v0.69 mobile Account sheet */
.mobile-account-sheet{width:min(94vw,520px);padding:14px;border:1px solid rgba(255,255,255,.75);border-radius:22px;background:#fff;box-shadow:0 24px 64px rgba(7,42,60,.28)}
.mobile-account-handle{display:none}
.mobile-account-head{display:grid;grid-template-columns:44px minmax(0,1fr) 36px;gap:10px;align-items:center}
.mobile-account-avatar{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:#eef8fa;border:1px solid var(--line)}
.mobile-account-avatar img{width:25px;height:25px}.mobile-account-head>div:nth-child(2){display:grid;gap:1px;min-width:0}.mobile-account-head small{font-size:.46rem;letter-spacing:.14em;color:#168b9b;font-weight:900}.mobile-account-head b{font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-account-head span{font-size:.6rem;color:var(--muted)}
.mobile-sheet-close{width:36px;height:36px;border:1px solid var(--line);border-radius:11px;background:#f8fbfc;color:#496474;font-size:1.15rem;font-weight:850}
.mobile-account-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:10px 0}.mobile-account-stats>span{padding:7px 6px;border:1px solid var(--line);border-radius:11px;background:#f7fbfc;text-align:center}.mobile-account-stats small{display:block;font-size:.42rem;letter-spacing:.1em;color:#168b9b;font-weight:900}.mobile-account-stats b{display:block;margin-top:2px;font-size:.82rem}
.mobile-account-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.mobile-account-actions button{min-width:0;min-height:48px;padding:6px 9px;border:1px solid var(--line);border-radius:12px;background:#fff;color:#315366;display:grid;grid-template-columns:25px minmax(0,1fr) auto;align-items:center;gap:7px;text-align:left;font-weight:850}.mobile-account-actions img{width:21px;height:21px}.mobile-account-actions span{font-size:.7rem}.mobile-account-actions b{font-size:.62rem;color:#168b9b}.mobile-account-auth{width:100%;min-height:43px;margin-top:9px}
@media(max-width:1000px){.mobile-account-layer{place-items:end center;padding:8px 6px max(8px,env(safe-area-inset-bottom));background:rgba(7,32,48,.42)}.mobile-account-sheet{width:min(100%,560px);border-radius:22px 22px 16px 16px;padding:10px 12px 12px;animation:accountSheetIn .18s ease-out}.mobile-account-handle{display:block;width:44px;height:4px;margin:0 auto 8px;border-radius:99px;background:#ccdde4}@keyframes accountSheetIn{from{transform:translateY(24px);opacity:.55}to{transform:translateY(0);opacity:1}}}
@media(max-width:430px){.mobile-account-actions{grid-template-columns:1fr 1fr}.mobile-account-actions button{min-height:46px;padding:5px 7px}.mobile-account-stats{margin:8px 0}.mobile-account-sheet{padding:9px 10px 10px}}


/* v1.0.5 consolidated launch / welcome screen */
.fg-welcome{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;min-height:100dvh;padding:max(18px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));background:#03102d;transition:opacity .36s ease,visibility .36s ease;overflow:hidden}
.fg-welcome::before,.fg-welcome::after{content:"";position:absolute;border-radius:50%;background:rgba(255,255,255,.07)}
.fg-welcome::before{width:150px;height:150px;left:-45px;top:14%}.fg-welcome::after{width:110px;height:110px;right:-22px;top:25%}
.fg-welcome.is-leaving{opacity:0;visibility:hidden;pointer-events:none}
.fg-welcome-inner{position:relative;z-index:1;width:100%;max-width:920px;min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;margin:0 auto;text-align:center}
.fg-welcome-brand-stack{width:min(88vw,760px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;margin:0 auto;animation:fgWelcomeLogo .72s cubic-bezier(.2,.8,.2,1) both}
.fg-welcome-crest{display:block;width:min(44vw,330px);max-height:42vh;object-fit:contain;filter:drop-shadow(0 16px 30px rgba(0,15,40,.32))}
.fg-welcome-byline{margin-top:2px;color:rgba(255,255,255,.88);font-size:clamp(.78rem,2.4vw,1rem);font-weight:750;letter-spacing:.08em;text-transform:uppercase;line-height:1.2;text-align:center;text-shadow:0 4px 14px rgba(0,15,40,.34);animation:fgWelcomeBy .5s .28s ease both}
.fg-welcome-byline b{color:#fff;font-weight:950}
.fg-welcome-flow{width:min(260px,58vw);height:8px;margin-top:4px;padding:2px;border-radius:999px;background:rgba(255,255,255,.18);overflow:hidden;animation:fgWelcomeBy .35s .35s ease both}
.fg-welcome-flow span{display:block;width:42%;height:100%;border-radius:999px;background:linear-gradient(90deg,#25b9eb,#18c6c0);box-shadow:0 0 10px rgba(20,190,221,.45);animation:fgWelcomeFlow 1s .45s ease-in-out infinite}
.fg-welcome.audio-started .fg-welcome-flow{box-shadow:0 0 0 1px rgba(255,255,255,.18),0 0 24px rgba(73,233,255,.28)}
@keyframes fgWelcomeLogo{0%{opacity:0;transform:translateY(18px) scale(.9)}70%{opacity:1;transform:translateY(-3px) scale(1.02)}100%{opacity:1;transform:none}}
@keyframes fgWelcomeBy{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
@keyframes fgWelcomeFlow{0%{transform:translateX(-120%)}50%{transform:translateX(150%)}100%{transform:translateX(150%)}}
@media(max-width:759px){.fg-welcome-inner{gap:12px}.fg-welcome-brand-stack{width:min(92vw,520px);gap:7px}.fg-welcome-crest{width:min(62vw,290px);max-height:44vh}}
@media(prefers-reduced-motion:reduce){.fg-welcome-brand-stack,.fg-welcome-byline,.fg-welcome-flow,.fg-welcome-flow span{animation:none!important}.fg-welcome{transition:opacity .15s linear}}

/* Startup recovery and shared profile / result branding. */
.auth-profile-photo{width:78px;height:78px;margin:0 auto 8px;border-radius:50%;overflow:hidden;border:3px solid #fff;box-shadow:0 8px 20px rgba(18,73,93,.16);background:#eaf6f8}
.auth-profile-photo img{width:100%;height:100%;object-fit:cover;display:block}
.fg-boot-recovery{min-height:100dvh;display:grid;place-items:center;padding:18px;background:linear-gradient(#99dcf7 0 43%,#eef8e8 43% 100%)}
.fg-boot-card{width:min(420px,100%);display:grid;justify-items:center;gap:10px;padding:24px;border:1px solid rgba(48,104,125,.18);border-radius:24px;background:rgba(255,255,255,.96);box-shadow:0 18px 45px rgba(28,73,94,.18);text-align:center}
.fg-boot-card img{width:82px;height:82px;border-radius:20px}.fg-boot-card h1{margin:0;color:#173e54}.fg-boot-card p{margin:0;color:#5c7684}.fg-boot-card button{min-height:44px;padding:0 18px;border:0;border-radius:13px;background:linear-gradient(135deg,#199bc8,#20aaa0);color:#fff;font-weight:900}.fg-boot-card small{max-width:100%;overflow-wrap:anywhere;color:#8b5e5e;font-size:.66rem}
.result-brand{width:min(280px,72vw);height:auto;margin:0 auto 8px;padding:0;background:transparent;border:0;border-radius:0;box-shadow:none;display:flex;justify-content:center;align-items:center}
.result-brand img{display:block;width:100%;height:auto;max-height:118px;padding:0;object-fit:contain;filter:drop-shadow(0 7px 14px rgba(3,35,58,.18))}
.support-brand img{width:150px;height:auto;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;object-fit:contain}

.achievement-sync-note,.leader-sync-note{
  margin:8px 0 0;
  padding:7px 9px;
  border-radius:10px;
  background:#eef8fa;
  color:#55727f;
  font-size:.62rem;
  line-height:1.35;
  text-align:center;
}
.achievement-sync-note[hidden],.leader-sync-note[hidden]{display:none}


/* v1.0.5 clean launch branding: corrected crest + simple maker byline */
.fg-welcome-byline{
  margin-top:2px;
  color:rgba(255,255,255,.88);
  font-size:clamp(.78rem,2.4vw,1rem);
  font-weight:750;
  letter-spacing:.08em;
  text-transform:uppercase;
  line-height:1.2;
  text-align:center;
  text-shadow:0 4px 14px rgba(0,15,40,.34);
  animation:fgWelcomeBy .55s .38s ease both;
}
.fg-welcome-byline b{color:#fff;font-weight:950}
