:root{
  --paper:#f5f1e6;--card:#fffdf7;--ink:#16251a;--muted:#6f786f;--forest:#10291a;--forest2:#183b27;
  --lime:#dff77d;--line:rgba(19,46,29,.12);--gold:#f5c95e;--danger:#c66b4a;--shadow:0 18px 56px rgba(28,53,35,.12);
  font-family:Inter,"Hiragino Sans","Yu Gothic",system-ui,-apple-system,sans-serif;color:var(--ink);background:var(--paper);
}
*{box-sizing:border-box}html{background:var(--paper)}body{margin:0;min-height:100vh;background:radial-gradient(circle at 100% 0,#dfebcb 0,transparent 30%),var(--paper)}button{font:inherit;color:inherit;-webkit-tap-highlight-color:transparent}.app{min-height:100vh}.shell{width:min(100%,820px);margin:auto;padding:0 16px calc(88px + env(safe-area-inset-bottom))}.topbar{height:64px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:30;background:linear-gradient(var(--paper) 74%,rgba(245,241,230,0));padding:0 2px 8px}.brand{font-size:12px;letter-spacing:.16em;font-weight:950}.pill-row{display:flex;gap:7px;align-items:center}.pill{border:1px solid var(--line);background:rgba(255,253,247,.9);border-radius:999px;padding:8px 10px;font-size:11px;font-weight:900}.pill.dark{background:var(--forest);color:#fff;border-color:transparent}.icon-btn{border:1px solid var(--line);background:rgba(255,253,247,.92);width:42px;height:42px;border-radius:50%;display:grid;place-items:center;cursor:pointer}
.hero{padding:34px 4px 22px}.eyebrow{font-size:10px;letter-spacing:.16em;font-weight:950;color:#506b57}.hero h1{font-size:clamp(46px,15vw,80px);line-height:.9;letter-spacing:-.065em;margin:12px 0 16px}.hero p{font-size:16px;line-height:1.7;color:var(--muted);margin:0;max-width:620px}.hero strong{color:var(--ink)}
.stage{border:0;background:var(--forest);color:white;border-radius:30px;padding:20px;text-align:left;position:relative;overflow:hidden;box-shadow:var(--shadow);cursor:pointer;min-height:214px;width:100%}.stage:before{content:"";position:absolute;inset:-50% -30% auto auto;width:210px;height:210px;border:1px solid rgba(255,255,255,.1);border-radius:50%;box-shadow:0 0 0 42px rgba(255,255,255,.035),0 0 0 84px rgba(255,255,255,.02)}.stage .region{font-size:11px;letter-spacing:.13em;font-weight:950;color:rgba(255,255,255,.6)}.stage .emoji{font-size:64px;margin:20px 0 12px}.stage .name{font-size:29px;font-weight:950;letter-spacing:-.045em}.stage .desc{font-size:12px;color:rgba(255,255,255,.62);margin-top:6px}.stage .play{position:absolute;right:18px;bottom:18px;background:var(--lime);color:#17351f;border-radius:999px;padding:10px 13px;font-size:11px;font-weight:950;letter-spacing:.08em}.section-title{display:flex;align-items:end;justify-content:space-between;margin:30px 2px 12px}.section-title h2{font-size:19px;margin:0;letter-spacing:-.03em}.section-title small{font-size:11px;color:var(--muted);font-weight:800}.soon-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.soon{border:1px solid var(--line);background:rgba(255,253,247,.55);border-radius:20px;padding:15px 10px;text-align:center;color:#7a817a}.soon .e{font-size:29px}.soon .n{font-size:10px;font-weight:900;margin-top:7px}
.status-card{display:grid;grid-template-columns:84px 1fr;gap:16px;align-items:center;background:var(--forest);color:white;border-radius:28px;padding:16px;margin:10px 0 18px;overflow:hidden;position:relative}.progress-ring{--p:0;width:78px;height:78px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--lime) calc(var(--p)*1%),rgba(255,255,255,.11) 0);position:relative}.progress-ring:after{content:"";position:absolute;inset:7px;background:var(--forest);border-radius:50%}.progress-ring strong{position:relative;z-index:1;font-size:18px}.status-card h2{font-size:18px;margin:0 0 5px;letter-spacing:-.03em}.status-card p{font-size:11px;line-height:1.55;color:rgba(255,255,255,.62);margin:0}.streak{margin-top:7px;font-size:10px;font-weight:950;color:var(--lime);letter-spacing:.08em}
.game-head{padding:8px 2px 12px}.crumb{font-size:11px;color:var(--muted);font-weight:850}.subject-row{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-top:5px}.subject-row h1{font-size:clamp(46px,13vw,74px);line-height:1;letter-spacing:-.065em;margin:0}.kind{font-size:10px;font-weight:950;border-radius:999px;background:#e6eadf;padding:8px 10px;white-space:nowrap}.kind.producer{background:#e6f4b9;color:#36501f}.current-chain{display:flex;gap:6px;overflow-x:auto;padding:0 2px 12px;scrollbar-width:none}.current-chain::-webkit-scrollbar{display:none}.node-chip{flex:0 0 auto;background:#fffaf0;border:1px solid var(--line);border-radius:999px;padding:7px 9px;font-size:10px;font-weight:850;display:flex;align-items:center;gap:5px}.node-chip .dot{width:6px;height:6px;background:#5b8663;border-radius:50%}.chev{align-self:center;color:#9aa39a;font-size:10px}
.image-search{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:112px;gap:5px;border-radius:26px;overflow:hidden;background:#d9ddd2;box-shadow:0 12px 36px rgba(31,54,36,.08)}.image-cell{position:relative;overflow:hidden;background:linear-gradient(135deg,#dce5d1,#a9bca5);display:grid;place-items:center}.image-cell:first-child{grid-column:span 2;grid-row:span 2}.image-cell img{width:100%;height:100%;object-fit:cover;display:block}.fallback-mark{font-size:42px}.image-cell:first-child .fallback-mark{font-size:72px}.search-badge{position:absolute;left:9px;bottom:9px;background:rgba(12,31,19,.76);color:white;border-radius:999px;padding:6px 8px;font-size:9px;font-weight:900;backdrop-filter:blur(7px)}.loading-shimmer{animation:pulse 1.25s ease-in-out infinite alternate}@keyframes pulse{to{filter:brightness(.86)}}
.question{margin:24px 2px 10px}.question .small{font-size:10px;letter-spacing:.14em;font-weight:950;color:#5e725f}.question h2{font-size:24px;letter-spacing:-.04em;margin:4px 0}.question p{font-size:11px;color:var(--muted);line-height:1.5;margin:0}.choices{display:grid;gap:9px}.choice{border:1px solid var(--line);background:var(--card);border-radius:23px;padding:9px;display:grid;grid-template-columns:88px 1fr 34px;gap:13px;align-items:center;text-align:left;cursor:pointer;min-height:100px;box-shadow:0 8px 26px rgba(27,48,31,.055);transition:transform .12s ease,box-shadow .12s ease}.choice:active{transform:scale(.985)}.choice-img{height:80px;border-radius:16px;overflow:hidden;background:linear-gradient(135deg,#dce7cf,#acbea4);display:grid;place-items:center;font-size:35px}.choice-img img{width:100%;height:100%;object-fit:cover}.choice .label{font-size:20px;font-weight:950;letter-spacing:-.035em}.choice .hint{font-size:10px;color:var(--muted);font-weight:750;margin-top:5px}.choice .arrow{font-size:23px;font-weight:950;color:#839084}.choice.memory-miss{animation:shake .34s ease;background:#fff6ef;border-color:rgba(198,107,74,.35)}@keyframes shake{25%{transform:translateX(-7px)}50%{transform:translateX(6px)}75%{transform:translateX(-3px)}}
.route-complete{text-align:center;padding:18px 0}.route-complete .sun{font-size:88px;animation:float 2.7s ease-in-out infinite;filter:drop-shadow(0 14px 24px rgba(198,144,35,.2))}@keyframes float{50%{transform:translateY(-5px) rotate(2deg)}}.route-complete h1{font-size:39px;letter-spacing:-.055em;margin:8px 0 5px}.route-complete .lead{font-size:13px;line-height:1.65;color:var(--muted);margin:0 auto 17px;max-width:460px}.route-preview{background:var(--forest);color:white;border-radius:30px;padding:18px 15px;text-align:left;transition:filter .5s,opacity .5s,transform .5s}.route-preview.hiding{filter:blur(9px);opacity:.12;transform:scale(.96)}.route-node{display:grid;grid-template-columns:44px 1fr auto;gap:10px;align-items:center;padding:8px}.route-node .emo{width:44px;height:44px;border-radius:14px;background:rgba(255,255,255,.1);display:grid;place-items:center;font-size:25px}.route-node strong{font-size:16px}.route-node small{color:rgba(255,255,255,.55);font-size:9px;font-weight:750}.route-arrow{text-align:center;color:var(--lime);font-size:12px}.new-links{display:inline-flex;gap:6px;align-items:center;background:#ecf5c9;color:#36501f;border-radius:999px;padding:8px 10px;font-size:10px;font-weight:950;margin-top:12px}.action{width:100%;border:0;border-radius:21px;padding:17px 14px;font-weight:950;cursor:pointer;background:var(--forest);color:#fff;margin-top:13px}.action.lime{background:var(--lime);color:#1e3824}.action.secondary{background:#fffaf0;color:var(--ink);border:1px solid var(--line)}
.memory-overlay{position:fixed;inset:0;z-index:90;display:grid;place-items:center;pointer-events:none}.memory-burst{background:rgba(16,41,26,.94);color:white;border-radius:24px;padding:18px 22px;text-align:center;box-shadow:0 20px 70px rgba(0,0,0,.25);animation:pop .9s ease forwards}.memory-burst strong{display:block;font-size:22px;letter-spacing:-.03em}.memory-burst small{display:block;color:rgba(255,255,255,.62);margin-top:4px;font-weight:800}@keyframes pop{0%{opacity:0;transform:scale(.82)}20%{opacity:1;transform:scale(1.04)}70%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.96)}}
.complete{padding:22px 0;text-align:center}.complete .big{font-size:92px}.complete h1{font-size:37px;white-space:nowrap;letter-spacing:-.06em;margin:5px 0 8px}.complete p{color:var(--muted);line-height:1.7;margin:0 auto 18px;max-width:500px}.web-card{background:var(--forest);border-radius:30px;padding:12px;overflow:hidden;box-shadow:var(--shadow)}.web-card svg{width:100%;height:auto;display:block}.web-line{stroke:rgba(223,247,125,.38);stroke-width:2}.web-node circle{fill:#fffdf7}.web-node text{font-size:17px;text-anchor:middle;dominant-baseline:middle}.web-node.root circle{fill:var(--lime)}.web-node.producer circle{fill:#f3d76f}.complete .stats{display:flex;justify-content:center;gap:8px;margin:13px 0}.complete .stat{background:#fffaf0;border:1px solid var(--line);border-radius:17px;padding:10px 13px;min-width:110px}.complete .stat strong{display:block;font-size:23px}.complete .stat small{font-size:9px;font-weight:900;color:var(--muted)}
.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,30px);background:#10291a;color:white;border-radius:999px;padding:11px 14px;font-size:11px;font-weight:850;opacity:0;pointer-events:none;transition:.2s;z-index:200;white-space:nowrap}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(min-width:700px){.shell{padding-left:24px;padding-right:24px}.image-search{grid-auto-rows:145px}.choices{grid-template-columns:repeat(3,1fr)}.choice{grid-template-columns:1fr;grid-template-rows:145px auto;min-height:272px;padding:9px}.choice-img{height:145px}.choice .arrow{display:none}.choice .label,.choice .hint{padding:0 5px}.soon-grid{grid-template-columns:repeat(5,1fr)}}
