:root{--ink: #1c2227;--bone: #efe4d1;--bone-dim: #cdbfa8;--clay: #c8683a;--amber: #e9a24b;--teal: #58c2b4;--stone: #8b8579;--serif: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--mono: "Cascadia Mono", "SF Mono", Consolas, "Liberation Mono", monospace}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:var(--ink);color:var(--bone);font-family:var(--serif);-webkit-tap-highlight-color:transparent;overscroll-behavior:none}#scene{position:fixed;inset:0;width:100%;height:100%;display:block;touch-action:none}.landing{position:fixed;left:clamp(20px,6vw,88px);bottom:clamp(24px,9vh,96px);max-width:30rem;max-height:calc(100vh - 48px);overflow-y:auto;padding-right:16px;opacity:0;transform:translateY(14px);pointer-events:none;transition:opacity .5s ease,transform .5s ease}body[data-state=menu] .landing{opacity:1;transform:none;pointer-events:auto}.landing .mark{margin:0 0 18px;font-family:var(--mono);font-size:.78rem;letter-spacing:.32em;text-transform:uppercase;color:var(--bone-dim)}.landing h1{margin:0;font-size:clamp(3rem,9vw,6.2rem);line-height:.92;font-weight:400;font-style:italic;letter-spacing:-.02em;text-shadow:0 2px 22px rgba(18,22,26,.45)}.lede{margin:22px 0 28px;font-size:1.12rem;line-height:1.5;color:var(--bone);text-shadow:0 1px 12px rgba(18,22,26,.7)}.keys{list-style:none;display:flex;flex-wrap:wrap;gap:6px 18px;margin:26px 0 0;padding:0;font-family:var(--mono);font-size:.78rem;color:var(--bone);text-shadow:0 1px 10px rgba(18,22,26,.8)}kbd{display:inline-block;min-width:1.7em;margin-right:3px;padding:1px 5px;border:1px solid var(--bone-dim);border-radius:2px;text-align:center;font:inherit}.hud{position:fixed;top:clamp(14px,3vh,30px);left:clamp(14px,3vw,36px);right:clamp(14px,3vw,36px);display:flex;gap:clamp(14px,3vw,40px);align-items:flex-start;opacity:0;pointer-events:none;transition:opacity .4s ease}.readout{min-width:4.4rem;padding:8px 12px 7px;background:#1c22279e;border-top:1.5px solid var(--bone)}.readout span{display:block;font-family:var(--mono);font-size:clamp(1.15rem,2.6vw,1.9rem);font-variant-numeric:tabular-nums;line-height:1.1}.readout small{display:block;margin-top:3px;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--bone-dim)}.readout.par{margin-left:auto;text-align:right}#callout{position:fixed;left:50%;top:24%;margin:0;transform:translate(-50%,6px);font-style:italic;font-size:clamp(1.3rem,3.4vw,2.2rem);color:var(--bone);text-shadow:0 2px 16px rgba(18,22,26,.8);opacity:0;pointer-events:none;transition:opacity .25s ease,transform .25s ease}#callout.show{opacity:1;transform:translate(-50%)}#callout[data-tone=hit]{color:var(--amber)}#callout[data-tone=close]{color:var(--teal)}#callout[data-tone=zone]{color:var(--bone);letter-spacing:.18em;text-transform:uppercase;font-size:clamp(1rem,2.4vw,1.5rem)}#callout[data-tone=miss]{color:var(--bone-dim)}.panel{position:fixed;left:50%;top:50%;width:min(86vw,24rem);transform:translate(-50%,-46%);padding:26px 28px 22px;background:#1c2227e6;border:1.5px solid var(--bone);border-radius:2px;opacity:0;pointer-events:none;transition:opacity .3s ease,transform .3s ease}.panel.open{opacity:1;pointer-events:auto;transform:translate(-50%,-50%)}.panel h2{margin:0 0 18px;font-size:2rem;font-weight:400;font-style:italic}.panel dl{margin:0}.panel dl div{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid rgba(239,228,209,.22)}.panel dt{color:var(--bone-dim);font-size:.8rem;letter-spacing:.12em;text-transform:uppercase}.panel dd{margin:0;font-family:var(--mono);font-variant-numeric:tabular-nums}.hint{margin:18px 0 0;font-size:.86rem;color:var(--bone-dim)}body[data-state=flying] .hud{opacity:1}@media (max-width: 640px){.hud{flex-wrap:wrap;gap:10px 16px}.readout.par{margin-left:0;text-align:left}}@media (prefers-reduced-motion: reduce){*{transition:none!important}}.levels{list-style:none;margin:0;padding:0;border-top:1px solid rgba(239,228,209,.35)}.card{appearance:none;width:100%;display:grid;grid-template-columns:2rem 1fr auto 1.4rem;align-items:center;gap:8px;padding:13px 4px 12px;border:0;border-bottom:1px solid rgba(239,228,209,.35);background:#1c222780;color:var(--bone);font:inherit;text-align:left;cursor:pointer;transition:background .15s ease,padding .15s ease}.card b{font-family:var(--mono);font-weight:400;font-size:.8rem;color:var(--bone-dim);padding-left:6px}.card .name{font-size:1.25rem;font-style:italic}.card .status{font-family:var(--mono);font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;color:var(--bone-dim)}.card:hover:not(:disabled){background:#e9a24be6;color:var(--ink);padding-left:12px}.card:hover:not(:disabled) b,.card:hover:not(:disabled) .status{color:var(--ink)}.card:disabled{cursor:default;color:var(--stone);background:#1c222757}.medal{display:inline-block;width:.95em;height:.95em;margin-right:.45em;border-radius:50%;border:1.5px solid rgba(28,34,39,.6);vertical-align:-.1em}.card .medal{margin:0;justify-self:end}.medal.bronze{background:#b0733f}.medal.silver{background:#c4c6c8}.medal.gold{background:#e4b84a}.rule{margin:0 0 16px;line-height:1.5}.goals{list-style:none;margin:0 0 8px;padding:0;font-size:.95rem}.goals li{padding:7px 0;border-bottom:1px solid rgba(239,228,209,.22)}.goals span{display:block;margin-left:1.4em;font-size:.82rem;color:var(--bone-dim)}.medal-line{margin:0 0 12px;font-size:1.5rem;font-style:italic}.actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}.actions button{appearance:none;padding:11px 16px 10px;border:1.5px solid var(--bone);background:transparent;color:var(--bone);font:inherit;cursor:pointer;border-radius:2px}.actions button.primary{background:var(--bone);color:var(--ink)}.actions button:hover{background:var(--amber);border-color:var(--amber);color:var(--ink)}.kicker{margin:-6px 0 10px;font-family:var(--mono);font-size:.74rem;letter-spacing:.24em;text-transform:uppercase;color:var(--bone-dim)}.story{margin:0 0 12px;font-size:1.15rem;font-style:italic;line-height:1.4}.route{display:flex;flex-wrap:wrap;gap:4px 14px;list-style:none;margin:0 0 16px;padding:0;font-family:var(--mono);font-size:.76rem;color:var(--bone-dim)}.route li:before{content:"→"}.route li:first-child:before{content:""}.expedition{margin:0 0 22px;font-family:var(--mono);font-size:.85rem;color:var(--bone);text-shadow:0 1px 10px rgba(18,22,26,.8)}.bars i{position:fixed;left:0;right:0;height:0;background:#0d1114;pointer-events:none;transition:height .8s ease;z-index:5}.bars i:first-child{top:0}.bars i:last-child{bottom:0}body[data-state=cinematic] .bars i{height:11vh}#skip-hint{position:fixed;right:clamp(16px,3vw,40px);bottom:calc(11vh + 14px);margin:0;font-family:var(--mono);font-size:.76rem;letter-spacing:.12em;text-transform:uppercase;color:var(--bone-dim);opacity:0;pointer-events:none;z-index:6;transition:opacity .4s ease}body[data-state=cinematic] #skip-hint{opacity:1}@media (min-width: 900px){body[data-state=result] .panel{left:clamp(24px,5vw,80px);transform:translateY(-46%)}body[data-state=result] .panel.open{transform:translateY(-50%)}}
