:root{color-scheme:light;--bg:#f6f4ee;--paper:#fffefa;--ink:#202c28;--muted:#55635c;--line:#d5dbd0;--green:#20634a;--soft:#e5eedc;--accent:#e8fa96;--shadow:0 12px 36px #243c2410}
[data-theme=dark]{color-scheme:dark;--bg:#151e1a;--paper:#202d26;--ink:#f2f4e9;--muted:#bac9bd;--line:#435348;--green:#b8e58f;--soft:#2c4031;--accent:#d5f98c;--shadow:0 12px 36px #0002}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.6}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:var(--green)}button{border:1px solid var(--green);border-radius:10px;background:var(--green);color:var(--paper);padding:.65rem 1rem;font-weight:700;cursor:pointer;line-height:1.35;min-height:44px}[data-theme=dark] button{color:#18261d}button:hover{filter:brightness(.95)}button:disabled{opacity:.5;cursor:default}.quiet{color:var(--ink)!important;background:transparent;border-color:var(--line)}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--green);outline-offset:4px}button[aria-pressed=true]{box-shadow:inset 0 0 0 2px currentColor}button.finish{margin-top:1.5rem}.actions{display:flex;align-items:center;flex-wrap:wrap;gap:.6rem}.small{font-size:.85rem;color:var(--muted)}.eyebrow{font-size:.74rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--green);margin:0 0 .6rem}.topbar{max-width:1320px;margin:auto;padding:1.25rem 2rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;border-bottom:1px solid var(--line);font-size:.85rem}.topbar>a{font-weight:750;text-decoration:none}.topbar>span{color:var(--muted)}.topbar button{font-size:.8rem}main{max-width:1280px;margin:auto;padding:0 2rem}.hero{display:flex;align-items:center;justify-content:space-between;gap:3rem;padding:3.5rem 0 2.5rem}h1{font-size:clamp(3.5rem,7vw,6.6rem);line-height:1;letter-spacing:-.07em;margin:.5rem 0 1.25rem;font-weight:800}h1 em{font-style:normal;color:var(--green)}.intro{font-size:1.2rem;max-width:33rem;color:var(--muted)}.chips{display:flex;flex-wrap:wrap;gap:.5rem}.chips>span{font-size:.8rem;background:var(--soft);padding:.3rem .7rem;border-radius:6px}.ticket{flex:0 0 270px;border:1px solid var(--line);border-radius:4px;background:var(--accent);color:#23391c;padding:1.4rem 1.6rem;transform:rotate(3deg);box-shadow:var(--shadow)}.ticket>span{font-size:.67rem;letter-spacing:.1em;font-weight:800}.ticket strong{display:block;font-size:1.8rem;line-height:1.2;margin:1rem 0}.ticket p{font-size:.8rem}.ticket-line{border-top:1px dashed #516840;margin:1rem -1.6rem}.briefing{margin:0 0 2rem;background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:1rem 1.25rem}summary{cursor:pointer;font-weight:700;min-height:28px}details p:last-child{margin-bottom:0}.playground{display:grid;grid-template-columns:250px minmax(0,1fr);gap:2rem;align-items:start}.route{position:sticky;top:1rem}.route nav{display:grid;gap:.4rem}.route nav a{display:flex;align-items:center;gap:.75rem;text-decoration:none;padding:.7rem .6rem;border:1px solid transparent;border-radius:10px;color:var(--ink);font-size:.9rem;min-height:64px}.route nav a[aria-current=step]{background:var(--soft);border-color:var(--line)}.route small{display:block;color:var(--muted);font-size:.75rem}.route-number{font-size:.74rem;font-weight:800;color:var(--green)}.seal{margin-left:auto;font-size:1.2rem;color:var(--green)}#progress{border-top:1px solid var(--line);padding-top:1rem;font-size:.85rem;font-weight:700}.stage{min-width:0}.timerbar{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:1rem 1.25rem;display:flex;flex-wrap:wrap;align-items:center;gap:1rem;justify-content:space-between;margin-bottom:1rem}.timerbar .eyebrow{display:block;margin:0;font-size:.65rem}.timerbar output{font-variant-numeric:tabular-nums;font-size:1.8rem;font-weight:800;line-height:1.2}.timerbar p{flex-basis:100%;margin:0}.timerbar button{font-size:.85rem}.timerbar.is-done{border-color:var(--green);background:var(--soft)}.game{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:2rem;box-shadow:var(--shadow);margin-bottom:1rem;scroll-margin-top:1rem}h2{font-size:clamp(1.8rem,3vw,2.6rem);line-height:1.12;letter-spacing:-.04em;margin:.4rem 0 1.25rem}h3{line-height:1.3;margin:.6rem 0}.steps{padding-left:1.4rem}.steps li{padding-left:.25rem;margin-bottom:.65rem}.taboo-card{border:2px dashed var(--line);border-radius:14px;background:var(--soft);padding:1.5rem;text-align:center;margin:1.5rem 0;min-height:185px;display:flex;flex-direction:column;align-items:center;justify-content:center}.taboo-card h3{font-size:2.4rem;color:var(--green)}.taboo-card .chips{justify-content:center}.taboo-card .chips>span{background:var(--paper);border:1px solid var(--line)}.game>details,.lock details{border-top:1px solid var(--line);padding-top:.9rem;margin-top:1.2rem}.print-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;margin-top:1rem}.print-cards>div{padding:.8rem;border:1px dashed var(--line);border-radius:8px}.print-cards p{font-size:.85rem}.lock{border:1px solid var(--line);padding:1.2rem;border-radius:12px;margin:1rem 0}.lock-tag{font-size:.7rem;letter-spacing:.1em;font-weight:800;color:var(--green)}.cipher{font-size:2rem;font-weight:800;letter-spacing:.2em}.sequence{display:flex;gap:.7rem;margin:1.25rem 0}.sequence>span{display:grid;place-items:center;border:1px solid var(--line);background:var(--soft);border-radius:8px;min-width:52px;min-height:50px}label{display:block;font-weight:650;font-size:.9rem;margin:1rem 0 .4rem}input,textarea{display:block;width:100%;border:1px solid var(--line);border-radius:9px;padding:.7rem .85rem;color:var(--ink);background:var(--bg);min-height:46px}textarea{min-height:110px;resize:vertical}input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}.feedback:empty{display:none}.feedback{background:var(--soft);padding:.6rem .85rem;border-radius:8px;font-size:.9rem}.feedback.good{border-left:4px solid var(--green)}.solutions{font-size:.9rem}.memory-area{display:grid;grid-template-columns:minmax(160px,280px) minmax(0,1fr);gap:1.5rem;align-items:start;margin:1.5rem 0}.pixel-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.pixel-grid button{aspect-ratio:1;min-width:0;min-height:0;border:2px solid var(--line);border-radius:7px;background:var(--bg);color:var(--ink);padding:0;opacity:1;font-size:1.4rem}.pixel-grid button.is-on{background:var(--green);border-color:var(--green);color:var(--paper)}[data-theme=dark] .pixel-grid button.is-on{color:#15231b}.pixel-grid button:disabled{cursor:default}.vertical{align-items:stretch;flex-direction:column}.vertical button{width:100%}.rule-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem}.rule-grid>div{background:var(--soft);padding:1rem;border-radius:10px;font-size:.9rem}.rule-grid p{margin-bottom:0}.invention-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem;margin:1.5rem 0}.invention-cards>div{background:var(--soft);border:1px solid var(--line);padding:1rem;border-radius:10px;min-height:145px}.invention-cards span{display:block;font-size:.65rem;letter-spacing:.1em;margin-bottom:.8rem;color:var(--muted);font-weight:800}.invention-cards strong{font-size:1.1rem;overflow-wrap:anywhere}.farewell-prompts{border-left:3px solid var(--green);padding:.2rem 1.2rem;margin:1.5rem 0;font-size:1.2rem;font-weight:600}.closing{background:var(--accent);color:#23391c;text-align:center;padding:2rem;border-radius:12px;margin-top:1.5rem}.closing>span{font-size:.7rem;letter-spacing:.1em}.closing h3{font-size:2.8rem;letter-spacing:-.05em;margin:1rem 0}.closing p{max-width:25rem;margin:auto}footer{margin:3rem 0 2rem;border-top:1px solid var(--line);padding-top:1rem;color:var(--muted);font-size:.8rem}body:not(.enhanced) .timerbar,body:not(.enhanced) #restart,body:not(.enhanced) .finish,body:not(.enhanced) #taboo-reveal,body:not(.enhanced) #taboo-correct,body:not(.enhanced) #taboo-pass,body:not(.enhanced) #escape-form>button,body:not(.enhanced) #invention-draw{display:none}[hidden]{display:none!important}
@media(max-width:1000px){.topbar>span{display:none}.playground{grid-template-columns:210px minmax(0,1fr);gap:1rem}.game{padding:1.5rem}.hero{gap:1.5rem}.ticket{flex-basis:230px}.rule-grid{grid-template-columns:1fr}.memory-area{grid-template-columns:1fr}.pixel-grid{max-width:280px}.invention-cards{grid-template-columns:1fr}.invention-cards>div{min-height:0}}
@media(max-width:650px){.topbar{padding:1rem;align-items:flex-start}.topbar>a{max-width:10rem}.topbar button{padding:.5rem .7rem}main{padding:0 1rem}.hero{padding:2rem 0;display:block}.hero h1{font-size:3.6rem}.intro{font-size:1.05rem}.ticket{transform:none;margin-top:1.5rem;padding:1rem 1.25rem}.ticket strong{font-size:1.5rem;margin:.7rem 0}.ticket strong br{display:none}.ticket p{margin:.5rem 0}.ticket-line{margin:.8rem -1.25rem}.playground{grid-template-columns:1fr}.route{position:static}.route nav{grid-template-columns:repeat(2,minmax(0,1fr))}.route nav a{padding:.6rem .5rem;gap:.4rem;font-size:.8rem}.route nav .seal{font-size:1rem}.route #progress{margin-bottom:.5rem}.route #restart{font-size:.8rem}.route>p.small{margin:.5rem 0}.timerbar{padding:1rem}.game{padding:1.2rem}.timerbar>.actions{gap:.4rem}.timerbar button{padding:.6rem .7rem;font-size:.8rem}.print-cards{grid-template-columns:1fr}.sequence{gap:.5rem}.sequence>span{min-width:45px}.cipher{font-size:1.7rem}.farewell-prompts{font-size:1rem}.closing{padding:1.5rem}.closing h3{font-size:2.3rem}}
@media(max-width:360px){.topbar{flex-wrap:wrap}.topbar .actions{margin-left:auto}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media print{:root,[data-theme=dark]{--bg:#fff;--paper:#fff;--ink:#111;--muted:#333;--line:#aaa;--green:#111;--soft:#eee}}
@media print{details>.print-cards,details>.paper-cards{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))}.paper-cards ul{padding-left:1rem}}
@media print{html{color-scheme:light!important}body{background:#fff!important;color:#111!important;font-size:10pt}.topbar,.route,.timerbar,button,.ticket,.taboo-card,.memory-area,.invention-cards,.small,#progress,.feedback,#escape-status,.closing{display:none!important}main{max-width:none;padding:0}.hero{padding:0 0 1rem}.hero h1{font-size:34pt}.hero .intro{color:#222}.chips>span{background:#eee!important;color:#111!important}.briefing{margin-bottom:1rem;padding:.7rem}.playground{display:block}.game,.game[hidden]{display:block!important;padding:1rem;margin:0 0 1rem;border:1px solid #aaa;box-shadow:none;break-inside:auto}.game h2{font-size:22pt}details{display:block}details>*{display:block!important}details>summary{font-weight:bold}details.solutions{break-before:auto;background:#f6f6f6;padding:.7rem}.lock,.rule-grid>div,.print-cards>div{break-inside:avoid}.print-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.sequence>span,.rule-grid>div{background:#eee!important;color:#111!important}.eyebrow,.lock-tag,h1 em{color:#111!important}input,textarea{background:white;color:#111;border:1px solid #aaa}input::placeholder,textarea::placeholder{color:transparent}.rule-grid{grid-template-columns:repeat(3,minmax(0,1fr))}footer{margin-top:1rem;color:#333}.cipher{font-size:20pt}}
