/* Adventure UI: touch first, no external assets required. */
:root{--ink:#443a58;--muted:#83768e;--purple:#8060aa;--cream:#fffaf1}body{color:var(--ink);background:#faf5f0}button,a,input{touch-action:manipulation}button:focus-visible,a:focus-visible{outline:3px solid #654298;outline-offset:4px}#app.home-screen{max-width:1120px;padding:24px;margin:auto}.journey-home{padding:0 12px 24px}.journey-top{display:flex;justify-content:space-between;align-items:center;gap:12px}.studio-mark{font-size:12px;letter-spacing:2px;font-weight:800;color:var(--purple)}.profile-chip{border:1px solid #e5d8ea;border-radius:30px;background:white;padding:10px 18px;min-height:44px;color:var(--ink)}.journey-hero{display:grid;grid-template-columns:1.2fr 1fr;align-items:center;gap:24px;padding:34px 0 20px}.journey-kicker{font-size:13px;color:var(--purple);letter-spacing:2px;font-weight:800}.journey-hero h1{font-size:clamp(40px,5.5vw,66px);line-height:1.25;letter-spacing:-2px;margin:16px 0;color:#514064}.journey-hero h1 span{color:#b77a99}.journey-hero p{color:#7d7081;line-height:1.9;max-width:430px}.hero-scene{position:relative;min-height:300px;display:grid;place-items:center;border-radius:50% 50% 45% 45%;background:radial-gradient(ellipse,#e4edd4 10%,#f3eddf 64%,transparent 65%)}.hero-scene img{width:85%;max-height:280px;object-fit:contain;filter:drop-shadow(0 18px 12px #8a6c7720)}.hero-float{position:absolute;font-size:38px}.hero-float.one{top:8%;left:5%}.hero-float.two{top:12%;right:12%}.hero-float.three{bottom:6%;right:0}.journey-primary{display:inline-flex;align-items:center;justify-content:center;gap:16px;background:#8060aa;color:white;border:0;border-radius:18px;min-height:56px;padding:14px 28px;font-size:18px;font-weight:700;box-shadow:0 5px #61477f}.journey-primary small{font-size:12px;opacity:.8}.journey-summary{display:grid;grid-template-columns:repeat(3,1fr);background:#fffdf8;border:1px solid #eadddf;border-radius:22px;margin:16px 0 28px;padding:18px;text-align:center}.journey-summary b{font-size:25px;color:#796095;display:block}.journey-summary small{color:var(--muted)}.section-caption{display:flex;align-items:center;justify-content:space-between;margin-top:26px}.section-caption h2{font-size:21px;margin:0}.section-caption span{font-size:12px;color:var(--muted)}.mode-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:16px 0}.mode-tile{text-align:left;display:flex;align-items:center;gap:14px;padding:20px;background:white;border:1px solid #eadfea;border-radius:20px;min-height:100px;color:var(--ink)}.mode-tile>span{font-size:30px}.mode-tile b,.mode-tile small{display:block}.mode-tile small{color:var(--muted);margin-top:5px}.journey-links{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;padding-top:18px}.journey-links button{background:transparent;color:#796886;min-height:44px;padding:8px 14px}.world-teaser{margin:12px 0;display:flex;align-items:center;gap:16px;background:#f1e9f8;border-radius:18px;padding:16px}.world-teaser>span{font-size:36px}.world-teaser p{margin:3px 0;font-size:13px;color:#84738e}.journey-map{max-width:900px;margin:auto;padding:20px 16px 40px}.journey-nav{display:flex;align-items:center;justify-content:space-between;gap:10px}.journey-nav button{min-height:44px;background:white;border:1px solid #e2d7e7;border-radius:14px;padding:8px 14px;color:var(--ink)}.world-tabs{display:flex;gap:8px;overflow:auto;padding:18px 2px}.world-tabs button{flex:0 0 60px;min-height:60px;border-radius:18px;background:white;border:2px solid transparent;color:var(--muted)}.world-tabs button[aria-pressed=true]{border-color:var(--purple);background:#f0e7fa}.world-tabs span{display:block;font-size:24px}.world-tabs small{font-size:10px}.world-heading{text-align:center;padding:16px 8px}.world-heading .world-icon{font-size:45px}.world-heading h1{font-size:32px;margin:6px 0}.world-heading p{color:var(--muted);margin:6px}.world-heading small{font-size:12px;color:var(--muted)}.world-map{position:relative;isolation:isolate;min-height:920px;max-width:500px;margin:auto;border-radius:180px 180px 40px 40px;background:linear-gradient(#ffffff90,var(--world-bg));border:1px solid #fff}.world-road{position:absolute;inset:40px 0 0;width:100%;height:840px;z-index:-1}.world-road path{fill:none;stroke:white;stroke-width:45;stroke-linecap:round}.world-road .dots{stroke:var(--world-color);stroke-width:3;stroke-dasharray:1 12;opacity:.5}.journey-node{position:absolute;left:var(--left);top:var(--top);transform:translateX(-50%);text-align:center;width:92px}.journey-node button{position:relative;width:64px;height:64px;border-radius:23px;background:var(--world-color);color:#fff;border:4px solid #fff;font-weight:800;font-size:24px;box-shadow:0 5px #8e7e9d55,0 9px 20px #71667b18}.journey-node button:disabled{background:#e1dce4;color:#a9a0af;box-shadow:0 4px #c6bfcb}.journey-node.current button{outline:3px solid var(--purple);outline-offset:4px}.journey-node .node-stars{position:static;transform:none;justify-content:center;margin-top:9px;filter:none}.journey-node .star{width:23px;height:23px}.journey-node small{display:block;font-size:10px;color:#84738d;margin-top:2px}.journey-node.finale button{border-radius:50%;width:74px;height:74px}.node-mascot{position:absolute;width:56px;height:50px;object-fit:contain;top:-41px;left:-15px}.world-bottom{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin:18px 0}.world-bottom button{background:white;border:1px solid #e5dce7;min-height:44px;border-radius:14px;padding:9px 16px;color:var(--ink)}.mission-card{padding:22px;background:#fffdf8;border:1px solid #e9ddeb;border-radius:24px;max-width:460px;text-align:center}.mission-card h2{font-size:26px}.mission-card>img{height:100px;width:110px;object-fit:contain}.mission-pills{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin:15px 0}.mission-pills span{padding:7px 10px;border-radius:12px;background:#f1ebf7;font-size:12px}.mission-card .journey-primary{width:100%;margin-top:10px}.mission-description{color:#82758c;font-size:14px;line-height:1.8}.adventure-mission{max-width:700px;margin:0 auto 12px;background:#fffdf7;padding:10px 15px;border-radius:16px;text-align:center;color:#796087;font-size:14px}.quest-progress{height:8px;border-radius:10px;background:#e8e0ef;overflow:hidden;margin:8px 0 0}.quest-progress span{display:block;height:100%;background:#b5cf97;border-radius:10px;transition:width .2s}.oauth-options{display:grid;gap:10px;margin:15px 0}.oauth-options button,.oauth-options a{display:block;text-align:center;min-height:48px;background:#fff;border:1px solid #dcd3e5;border-radius:14px;padding:12px;color:#4c4059;text-decoration:none}.oauth-options button:disabled{opacity:.65}.oauth-options small{display:block;font-size:11px;color:#94839f}.account-dialog{max-width:460px}.account-dialog .stats-tabs{flex-wrap:wrap}.login-note{font-size:12px;color:#82758c;line-height:1.7}.journey-profile{font-size:12px;color:var(--muted);margin-top:15px}.journey-home footer{text-align:center;color:#a496aa;font-size:11px;padding-top:24px}dialog{max-height:90dvh;overflow:auto}body:has(dialog[open]){overflow:hidden}
@media(max-width:600px){#app.home-screen{padding:16px 8px}.journey-top{gap:7px}.studio-mark{font-size:10px;letter-spacing:1px}.profile-chip{font-size:12px;padding:8px 12px}.journey-hero{grid-template-columns:1fr;gap:0;padding-top:22px;text-align:center}.journey-hero h1{font-size:42px;margin:10px 0}.journey-hero p{font-size:14px;margin:10px auto 18px}.hero-scene{grid-row:2;min-height:180px;margin-top:15px}.hero-scene img{height:190px;width:65%}.hero-float{font-size:27px}.journey-summary{margin-top:8px;padding:14px 5px}.journey-summary b{font-size:21px}.journey-summary small{font-size:11px}.mode-tiles{grid-template-columns:1fr;gap:10px}.mode-tile{min-height:76px;padding:14px 18px}.section-caption h2{font-size:19px}.section-caption span{font-size:10px}.journey-map{padding:12px 8px}.world-heading h1{font-size:28px}.world-heading p{font-size:13px}.journey-nav{font-size:12px}.journey-nav button{font-size:12px}.world-map{min-height:920px}.world-tabs{padding-top:14px}.journey-node{width:80px}.journey-node button{width:60px;height:60px}.mission-card{padding:18px}.game-nav{gap:5px}.game-nav button{min-height:44px}body{padding-bottom:env(safe-area-inset-bottom)}}
@media(prefers-reduced-motion:reduce){.quest-progress span{transition:none}}
@media(max-width:600px){.journey-hero h1{font-size:34px;letter-spacing:-1px}.journey-kicker{font-size:10px;letter-spacing:1px}}
