*{box-sizing:border-box;margin:0}html,body{height:100%;overflow:hidden;font-family:Segoe UI,system-ui,sans-serif;background:radial-gradient(ellipse 70% 70% at 50% 50%,#2a2438,#1d1a26 55%,#0f0d16)}#game{position:fixed;top:0;right:0;bottom:0;left:0}#game canvas{image-rendering:pixelated}#game:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:repeating-linear-gradient(to bottom,transparent 0px,transparent 3px,rgba(0,0,0,.06) 3px,rgba(0,0,0,.06) 4px);z-index:1}#ui{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none}#ui>*{pointer-events:auto}#screen-root:empty{display:none}.screen{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;text-align:center;background:#1d1a26;color:#f5efe0;padding:24px;z-index:30}.screen h1{font-size:clamp(28px,6vw,48px);color:#ffd97a}.title-hero{width:min(80vw,420px);image-rendering:pixelated;border:3px solid #5a5374;border-radius:8px;box-shadow:0 8px 32px #00000080}.title-scene{position:relative;width:min(80vw,420px);aspect-ratio:3/2;overflow:hidden;border:3px solid #5a5374;border-radius:8px;box-shadow:0 8px 32px #00000080}.title-scene img{image-rendering:pixelated;display:block}.ts-mountain{width:100%;height:100%}.ts-fog{position:absolute;left:0;width:100%;overflow:hidden;pointer-events:none}.ts-fog img{width:200%;height:100%;animation:fog-drift 75s linear infinite}.ts-fog-a{top:42%;height:30%;opacity:.5}.ts-fog-b{top:6%;height:24%;opacity:.75}.ts-mascot{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;image-rendering:pixelated}.ts-fog-b img{animation-duration:120s;animation-direction:reverse}@keyframes fog-drift{0%{transform:translate(0)}to{transform:translate(-50%)}}@media(prefers-reduced-motion:reduce){.ts-fog img{animation:none}}.screen .tagline{color:#b8aed4}.screen button,.menu-opt{font:inherit;font-size:18px;padding:10px 28px;cursor:pointer;background:#ffd97a;color:#3a2b16;border:0;border-radius:8px}.screen button.ghost,.screen a.ghost{background:transparent;color:#b8aed4;border:1px solid #5a5374;text-decoration:none;display:inline-block}.phone{max-width:340px;width:100%;background:#2a2640;border-radius:14px;padding:14px;text-align:left;max-height:60vh;overflow-y:auto}.msg{margin:6px 0;padding:8px 12px;border-radius:12px;max-width:85%;font-size:15px;line-height:1.35}.msg.jules{background:#4a4070}.msg.you{background:#2e6b4f;margin-left:auto}#dialogue{position:absolute;left:50%;transform:translate(-50%);bottom:max(12px,env(safe-area-inset-bottom));width:min(92vw,560px);background:#f5efe0;color:#2b2333;border:3px solid #2b2333;border-radius:6px;padding:10px 14px 18px;font-size:16px;line-height:1.4;z-index:20}#dialogue .speaker{font-weight:700;color:#7a4d8f;margin-bottom:2px}#dialogue:after{content:"▼";position:absolute;right:10px;bottom:2px;font-size:11px;animation:bob .8s infinite alternate}@keyframes bob{to{transform:translateY(2px)}}#toast{position:absolute;top:10px;left:50%;transform:translate(-50%);width:min(92vw,420px);background:#2a2640;color:#f5efe0;border-radius:12px;padding:10px 14px;font-size:14px;z-index:25;box-shadow:0 4px 16px #0006}#toast .from{color:#ffd97a;font-weight:700;font-size:12px}#menu[hidden]{display:none}#menu{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:#f5efe0;color:#2b2333;border:3px solid #2b2333;border-radius:6px;padding:12px;display:flex;flex-direction:column;gap:8px;z-index:22}.menu-opt[disabled]{opacity:.5;cursor:not-allowed}.menu-opt.menu-hi{outline:2px solid #2b2333;background:#e6d9c0}#album[hidden],#help[hidden]{display:none}#album{position:absolute;top:0;right:0;bottom:0;left:0;background:#14101eeb;display:flex;align-items:center;justify-content:center;z-index:28}.album-page{background:#f5efe0;color:#2b2333;width:min(92vw,480px);border-radius:8px;padding:18px}.album-page .vignette{width:100%;aspect-ratio:3/2;border-radius:4px;background:#cfc4ad;display:flex;align-items:center;justify-content:center;font-size:40px;overflow:hidden}.album-page .vignette img{width:100%;height:100%;object-fit:cover;image-rendering:pixelated}.album-page h3{margin:10px 0 2px}.album-page .hint{color:#8a7f6a;font-style:italic}.album-page .jules-note{background:#efe2f7;border-radius:8px;padding:8px;margin-top:8px;font-size:14px}.album-page .factoid{font-size:12px;color:#6a5f4a;margin-top:8px}.album-page .credit{font-size:11px;color:#9a8f7a;margin-top:4px}.album-nav{display:flex;justify-content:space-between;margin-top:10px}.album-nav button{font-size:16px;padding:6px 14px;min-height:44px}#hud{position:absolute;top:8px;right:8px;display:flex;gap:8px;z-index:15}#hud button{font-size:16px;padding:6px 10px;background:#14101eb3;color:#f5efe0;border:1px solid #5a5374;border-radius:8px;cursor:pointer}#dpad{position:absolute;left:14px;bottom:max(14px,env(safe-area-inset-bottom));display:grid;grid-template:repeat(3,52px) / repeat(3,52px);z-index:18;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}#dpad button{font-size:18px;background:#14101e8c;color:#f5efe0;border:1px solid #5a5374;border-radius:10px;touch-action:none}#dpad [data-dir=up]{grid-area:1 / 2}#dpad [data-dir=left]{grid-area:2 / 1}#dpad [data-dir=right]{grid-area:2 / 3}#dpad [data-dir=down]{grid-area:3 / 2}#btn-action{position:absolute;right:18px;bottom:max(26px,env(safe-area-inset-bottom));width:64px;height:64px;border-radius:50%;font-size:22px;font-weight:700;background:#ffd97ad9;color:#3a2b16;border:0;z-index:18;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}@media(pointer:fine){#dpad,#btn-action{display:none!important}}#help{position:absolute;top:0;right:0;bottom:0;left:0;background:#14101ecc;z-index:28;display:flex;align-items:center;justify-content:center}.help-page{background:#f5efe0;color:#2b2333;width:min(92vw,480px);max-height:92vh;overflow-y:auto;border-radius:8px;padding:18px;font-size:14px}.help-page h3{margin-bottom:8px}.help-page h4{margin:10px 0 2px;color:#6a5f4a;font-size:12px;text-transform:uppercase;letter-spacing:.06em}.help-page ul{padding-left:18px}.help-page .help-now{background:#efe2f7;border-radius:8px;padding:8px 10px;margin-top:8px}.help-page .help-links a{color:#5a3e8a}body.trip{background:#1d1a26;color:#f5efe0;font-family:system-ui,sans-serif;line-height:1.55;display:block;overflow:auto}html.trip,body.trip{height:auto;min-height:100%;overflow:visible}body.trip main{max-width:740px;margin:0 auto;padding:1.5rem 1.25rem 4rem}.trip-hero{text-align:center}.trip-hero h1{color:#ffd97a;font-size:clamp(28px,6vw,44px)}.trip-hero .tagline{color:#b8aed4}.trip .map{position:relative;margin:1rem auto;max-width:480px}.trip .map img{width:100%;display:block;image-rendering:pixelated;border-radius:8px}.trip .pin{position:absolute;transform:translate(-50%,-50%);width:22px;height:22px;border-radius:50%;background:#ffd97a;color:#2b2333;font-weight:700;font-size:12px;display:grid;place-items:center;box-shadow:0 1px 3px #00000080}.trip-btn{display:inline-block;margin-top:.5rem;padding:8px 16px;border-radius:8px;background:#ffd97a;color:#2b2333;border:0;font-weight:700;cursor:pointer;text-decoration:none}.trip .chapter{background:#2b2333;border-radius:8px;padding:1rem 1.25rem;margin-top:1.5rem}.trip .chapter h2{color:#ffd97a;margin-bottom:.5rem}.trip .stops{list-style:none;padding:0}.trip .stops li{display:flex;gap:12px;padding:.6rem 0;border-top:1px solid #332b3f}.trip .stops .n{flex:0 0 26px;height:26px;border-radius:50%;background:#ffd97a;color:#2b2333;font-weight:700;display:grid;place-items:center}.trip .stops h3{font-size:16px}.trip .stops h3 small{color:#b8aed4;font-weight:400}.trip .addr{color:#b8aed4;font-size:13px}.trip .jules{background:#3a2f4f;border-radius:6px;padding:6px 8px;font-size:13px;margin:4px 0}.trip .note,.trip .links,.trip .events{font-size:13px}.trip a{color:#ffd97a}.trip .moments{margin-top:.5rem;padding-left:18px;color:#b8aed4;font-size:13px}.trip .unexplored{margin-top:1.5rem;color:#b8aed4;text-align:center}.trip-foot{margin-top:2rem;text-align:center;color:#9e96b4;font-size:12px}@media print{body.trip{background:#fff;color:#222}.trip-hero h1,.trip .chapter h2{color:#222}.trip .chapter{background:none;border:1px solid #ccc;break-inside:avoid}.trip .stops li{border-top-color:#ddd}.trip .jules{background:#f1ecf7}.trip a{color:#222}.trip .links a:after{content:" (" attr(href) ")";font-size:11px;color:#666}.trip-btn,.trip .unexplored a{display:none}.trip .map{max-width:100%}.trip .pin{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
