:root{--ink:#112a36;--muted:#536b6b;--line:#d7e0de;--paper:#f5f8f4;--sea:#d5e7e9;--coral:#b34431;--gold:#e7a936;--sage:#bfd1be;--shadow:0 26px 75px #00000017}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#eef2ee;color:var(--ink);font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
button,input{font:inherit}
button{cursor:pointer}
button:focus-visible,input:focus-visible,a:focus-visible,svg:focus-visible{outline:3px solid var(--coral);outline-offset:3px}
[hidden]{display:none!important}
.page{max-width:1500px;margin:auto;padding:0 40px}
.topbar{height:91px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #bfcfcb;gap:20px}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--ink);font-size:18px;font-weight:900;letter-spacing:.04em;white-space:nowrap}.brand em{font-family:Georgia,serif;font-weight:400;color:var(--coral);font-size:25px;letter-spacing:0}.brand-mark{display:grid;place-items:center;width:42px;height:42px;border:2px solid var(--ink);border-radius:50%;font-size:29px;line-height:1;color:var(--coral);transform:rotate(-15deg)}
.topbar-right{display:flex;align-items:center;gap:24px}.archive-badge{font-size:12px;letter-spacing:.04em;font-weight:850;color:#5a7377;white-space:nowrap}.archive-badge i{display:inline-block;width:5px;height:5px;background:var(--coral);border-radius:50%;margin:0 8px 2px}.text-button{border:0;border-bottom:1px solid var(--ink);padding:5px 0;background:none;color:var(--ink);font-size:12px;font-weight:700;white-space:nowrap}.text-button:hover{color:var(--coral);border-color:var(--coral)}
.intro{min-height:300px;display:flex;align-items:center;justify-content:space-between;gap:20px;overflow:hidden;position:relative;padding:35px 0 36px}
.eyebrow,.round-kicker,.section-kicker{font-size:12px;letter-spacing:.21em;font-weight:850;color:var(--coral);margin:0 0 12px}
h1,h2,h3,p,figure{margin-top:0}
h1,h2,h3{font-family:Georgia,"Times New Roman",serif;font-weight:600;letter-spacing:-.045em}
h1{font-size:clamp(46px,5.2vw,80px);line-height:1.05;margin-bottom:14px}h1 em{font-weight:400;color:var(--coral)}.intro-copy{max-width:595px;font-size:15px;line-height:1.65;color:#536971;margin-bottom:0}
.intro-decoration{height:250px;width:310px;flex:0 0 310px;position:relative;display:grid;place-items:center}.orbit{border:1px solid #9eb7ad;border-radius:50%;position:absolute;transform:rotate(-24deg)}.orbit-one{height:190px;width:260px}.orbit-two{height:135px;width:300px;transform:rotate(36deg)}.intro-number{font-family:Georgia,serif;font-size:130px;line-height:1;color:#d3dfd2;z-index:1;font-style:italic}.intro-star{position:absolute;right:36px;top:22px;color:var(--coral);font-size:40px;z-index:2}
.game-panel{background:#fffefa;border:1px solid #cfdbd7;border-radius:18px;padding:29px;box-shadow:var(--shadow)}
.game-header{display:flex;justify-content:space-between;align-items:flex-end;gap:20px}.game-header h2{font-size:41px;line-height:1;margin:0}.round-kicker{margin-bottom:8px}
.game-total{display:flex;align-items:baseline;gap:7px}.game-total span:first-child{font-size:12px;font-weight:850;color:#71847f;letter-spacing:.1em;margin-right:10px}.game-total strong{font-family:Georgia,serif;font-weight:600;font-size:40px;line-height:1}.game-total span:last-child{font-size:13px;color:#80908d}
.progress-dots{display:flex;gap:6px;margin:22px 0 27px}.progress-dot{flex:1;height:5px;border-radius:9px;background:#dbe6e0}.progress-dot.current{background:var(--coral)}.progress-dot.done{background:#7fa99d}
.game-grid{display:grid;grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);gap:27px;align-items:start}.photo-side,.map-side{min-width:0}.section-heading{display:flex;gap:11px;align-items:center;min-height:43px;margin-bottom:13px}.step{display:grid;place-items:center;width:35px;height:35px;border:1px solid #b6cbc3;border-radius:50%;color:var(--coral);font-family:Georgia,serif;font-size:18px;font-style:italic}.section-kicker{font-size:12px;color:#8a9a95;margin-bottom:3px}.section-heading h3{font-size:22px;margin:0;line-height:1}.photo-frame{margin:0;background:#243640;border:9px solid #243640;border-radius:10px;overflow:hidden;box-shadow:0 12px 25px #00000026}.photo-frame img{display:block;width:100%;height:386px;object-fit:contain;filter:sepia(.09)}.photo-frame figcaption{background:#243640;color:#d6e2da;min-height:25px;padding:5px 2px 0;font-size:12px;font-weight:750;letter-spacing:.04em;text-align:center}.photo-tip{font-size:12px;color:#6b7e7d;line-height:1.5;margin:13px 0 0}
.map-tools{display:flex;gap:5px;margin-left:auto}.map-tools button{height:34px;width:34px;border-radius:6px;border:1px solid #9ab2b1;background:#f4f8f3;color:var(--ink);font-size:22px;line-height:1}.map-tools button:hover:not(:disabled){background:#dbe9e2}.map-tools button:disabled{opacity:.45;cursor:default}
.map-frame{position:relative;border:1px solid #a9bfbb;border-radius:9px;overflow:hidden;background:var(--sea)}#world-map{display:block;width:100%;height:auto;aspect-ratio:2/1;cursor:crosshair;touch-action:manipulation}#world-map image,#map-overlays{pointer-events:none}.map-corner{position:absolute;left:10px;bottom:9px;background:#fffefaed;border:1px solid #b5c6c1;border-radius:4px;padding:6px 8px;font-size:12px;letter-spacing:.12em;font-weight:800;color:#577576;pointer-events:none}
.pin-status{margin:9px 0 15px;font-size:12px;color:#5d7478;min-height:19px;display:flex;align-items:center;gap:8px}.pin-status strong{color:var(--ink)}.pin-dot{width:9px;height:9px;flex:0 0 9px;border-radius:50%;background:var(--coral);border:2px solid #ffe3c9;box-shadow:0 0 0 1px var(--coral)}
.guess-form{display:grid;grid-template-columns:auto minmax(110px,1fr) auto;align-items:end;gap:10px;background:#f0f5ef;border:1px solid #d5e0db;border-radius:8px;padding:14px}.guess-form label{display:grid;gap:4px;min-width:145px}.guess-form label strong{font-family:Georgia,serif;font-size:20px;font-weight:600}.guess-form .section-kicker{font-size:12px;letter-spacing:.1em;white-space:nowrap}.guess-form input{width:100%;height:45px;border:1px solid #a2b5ac;background:white;border-radius:5px;padding:0 12px;font-size:17px;color:var(--ink)}.guess-form input::placeholder{font-size:14px;color:#9ba9a4}.guess-form button,.reveal-actions button,.complete button{height:45px;border:0;border-radius:5px;background:var(--coral);color:white;padding:0 18px;font-weight:800;font-size:12px;white-space:nowrap;transition:background .15s,transform .15s}.guess-form button:hover:not(:disabled),.reveal-actions button:hover,.complete button:hover{background:#b94736;transform:translateY(-2px)}.guess-form button:disabled{background:#aab9b1;cursor:default}.guess-form button span,.reveal-actions button span,.complete button span{margin-left:9px;font-size:18px;vertical-align:middle}.form-note{font-size:12px;color:#778c88;margin:8px 0 0}
.reveal{margin-top:26px;padding:25px;border:1px solid #d2dfd4;border-radius:10px;background:linear-gradient(120deg,#f1f5e9,#fff9ed)}.reveal-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.reveal-tag{font-size:12px;letter-spacing:.18em;color:#8f6542;font-weight:900}.round-score{background:#d7eacb;color:#2c654d;border:1px solid #aac6a2;border-radius:999px;padding:8px 12px;font-weight:850;font-size:12px}.reveal h3{font-size:32px;margin:8px 0 8px}.reveal>p{color:#526962;font-size:14px;line-height:1.55;max-width:800px}.answer-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:17px 0}.answer-grid>div{border-top:1px solid #c4d4c5;padding:12px 0}.answer-grid span{display:block;color:#87998a;font-size:12px;letter-spacing:.04em;font-weight:800;margin-bottom:5px}.answer-grid strong{display:block;font-family:Georgia,serif;font-size:20px;font-weight:600}.answer-grid small{display:block;color:#617a71;font-size:12px;margin-top:6px}.score-breakdown{display:flex;gap:8px}.score-breakdown span{background:#e3eee3;border:1px solid #c0d5c2;border-radius:4px;padding:7px 10px;font-size:12px;font-weight:850;letter-spacing:.07em}.reveal-actions{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:19px}.reveal-actions a{font-size:12px;color:#3f6e73;text-decoration:underline;text-underline-offset:3px}.reveal-actions a:hover{color:var(--coral)}
.complete{background:#fffefa;border:1px solid #cfdbd7;border-radius:18px;padding:39px;box-shadow:var(--shadow)}.complete h2{font-size:46px;margin-bottom:9px}.complete>p:not(.eyebrow){color:#657c7a;font-size:15px;margin-bottom:25px}.round-recap{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:24px}.recap-card{display:flex;align-items:center;gap:12px;background:#f2f6f0;border:1px solid #d2dfd7;border-radius:8px;padding:9px;min-width:0}.recap-card img{width:65px;height:55px;object-fit:cover;border-radius:4px}.recap-card div{display:grid;gap:3px;min-width:0}.recap-card span{font-size:12px;color:var(--coral);font-weight:850;letter-spacing:.1em}.recap-card strong{font-family:Georgia,serif;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recap-card small{font-size:12px;color:#708481;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recap-card b{margin-left:auto;color:#2b6c50;font-size:12px;white-space:nowrap}.complete button{font-size:13px}
footer{border-top:1px solid #c7d8d0;margin:34px 0 0;padding:21px 0 30px;display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;color:#788c85;font-size:12px;font-weight:700;letter-spacing:.04em}
@media(max-width:1180px){.game-grid{grid-template-columns:1fr}.photo-frame img{height:370px}.photo-side{max-width:800px}.map-side{width:100%}}
@media(max-width:760px){.page{padding:0 17px}.topbar{height:74px}.brand{font-size:14px}.brand-mark{width:34px;height:34px;font-size:23px}.archive-badge{display:none}.intro{min-height:250px;padding:29px 0}.intro-decoration{position:absolute;right:-65px;opacity:.35}.intro>div:first-child{z-index:1}.intro-copy{font-size:13px;max-width:480px}.game-panel{padding:17px;border-radius:12px}.game-header h2{font-size:31px}.game-total strong{font-size:31px}.game-total span:first-child{display:none}.photo-frame img{height:320px}.guess-form{grid-template-columns:1fr 1fr}.guess-form label{grid-column:1/-1}.guess-form button{padding:0 10px}.round-recap{grid-template-columns:1fr}.complete{padding:24px}.complete h2{font-size:34px}}
@media(max-width:480px){h1{font-size:44px}.game-total span:last-child{font-size:12px}.game-header h2{font-size:27px}.photo-frame img{height:265px}.guess-form{grid-template-columns:1fr}.guess-form label{grid-column:auto}.guess-form button{width:100%}.answer-grid{grid-template-columns:1fr;gap:0}.answer-grid>div{padding:10px 0}.reveal-actions{align-items:flex-start;flex-direction:column}.reveal-actions button{width:100%}.map-corner{font-size:7px}.pin-status{font-size:12px}}
.intro{min-height:230px;padding:24px 0}.intro-decoration{height:190px}.intro-number{font-size:100px}
.game-grid{display:flex;flex-direction:column;gap:25px}.photo-side,.map-side{width:100%}.photo-side{display:grid;grid-template-columns:minmax(260px,420px) 1fr;grid-template-rows:auto 1fr;column-gap:22px;align-items:start}.photo-side .section-heading{grid-column:2;grid-row:1;margin-top:5px}.photo-frame{grid-column:1;grid-row:1/3}.photo-frame img{height:230px}.photo-tip{grid-column:2;grid-row:2;margin-top:0;max-width:320px;font-size:14px}
#world-map,#tile-map{display:block;width:100%}#world-map{height:auto;aspect-ratio:2/1;cursor:crosshair;touch-action:none}#world-map.dragging{cursor:grabbing}#tile-map{height:clamp(440px,58vw,720px)}#tile-map[hidden]{display:none!important}.map-corner{z-index:1}.booth-marker[hidden]{display:none}.booth-marker .booth-art{filter:drop-shadow(0 2px 2px #102a38aa)}.booth-marker.landing .booth-art{animation:booth-land .65s cubic-bezier(.16,1,.3,1)}.booth-marker.landing .booth-shadow{animation:booth-shadow .65s ease-out}@keyframes booth-land{0%{opacity:0;transform:translateY(-60px) scale(.45)}55%{opacity:1;transform:translateY(3px) scale(1.12)}100%{transform:translateY(0) scale(1)}}@keyframes booth-shadow{0%{opacity:0;transform:scale(.3)}100%{opacity:.35;transform:scale(1)}}
@media(max-width:760px){.intro{min-height:210px}.photo-side{grid-template-columns:1fr;display:block}.photo-frame img{height:270px}.photo-tip{margin-top:10px;font-size:12px}#tile-map{height:clamp(360px,75vw,540px)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
.map-frame.vector-map-active .map-corner{top:10px;bottom:auto;left:10px;max-width:calc(100% - 20px)}
#tile-map.loading{position:absolute;inset:0;height:100%;opacity:0;pointer-events:none}
.maplibre-booth{width:42px;height:62px;pointer-events:none;filter:drop-shadow(0 3px 3px #102a38aa)}.maplibre-booth svg{display:block;width:100%;height:100%}.maplibre-booth.landing svg{animation:booth-land .65s cubic-bezier(.16,1,.3,1)}.maplibre-actual{width:20px;height:20px;border:3px solid white;border-radius:50%;background:var(--gold);box-shadow:0 2px 8px #000000aa;pointer-events:none}
.map-corner{font-size:12px;line-height:1.3;letter-spacing:.04em}
@media(max-width:480px){.map-corner{font-size:12px}}

/* Full-screen atlas layout */
html,body{min-height:100%}
body{background:#f5f8f4}
body:before{display:none}
.page{max-width:none;min-height:100dvh;margin:0;padding:0}
.topbar{height:64px;padding:0 24px;background:#f5f8f4;border-color:#d3ddd7}
.brand{font-size:16px}.brand-mark{width:34px;height:34px;font-size:23px}.brand em{font-size:23px}
.archive-badge{color:#536b6b}
.game-panel{height:calc(100dvh - 64px);min-height:520px;padding:0;border:0;border-radius:0;box-shadow:none;display:grid;grid-template-rows:auto auto minmax(0,1fr);background:#f5f8f4}
.game-header{min-height:72px;padding:12px 24px;align-items:center}
.game-header h2{font-size:26px}.game-total strong{font-size:28px}.game-total span:first-child,.game-total span:last-child{color:#536b6b}
.round-kicker{color:#a53e30}
.progress-dots{height:4px;margin:0;gap:3px}
.progress-dot{height:4px;border-radius:0}
.game-grid{min-height:0;display:grid;grid-template-columns:minmax(0,1fr) clamp(320px,29vw,420px);grid-template-areas:"map rail";gap:0;align-items:stretch}
.map-side{grid-area:map;position:relative;min-width:0;min-height:0;width:auto;background:var(--sea)}
.map-side .section-heading{position:absolute;z-index:3;top:18px;left:18px;max-width:calc(100% - 36px);margin:0;padding:12px 14px;border-radius:8px;background:#fffef5f2;box-shadow:0 5px 18px #0000001b;pointer-events:none}
.map-side .section-heading h3{font-size:19px}
.map-side .section-kicker{color:#a53e30}
.map-tools{pointer-events:auto}
.map-tools button{width:36px;height:36px;background:white}
.map-frame{position:absolute;inset:0;border:0;border-radius:0}
#world-map,#tile-map{width:100%;height:100%;aspect-ratio:auto}
.map-corner,.map-frame.vector-map-active .map-corner{top:auto;bottom:28px;left:18px;max-width:calc(100% - 36px);border:0;background:#fffef5ec;color:#344f53;font-size:12px;line-height:1.3;letter-spacing:.045em}
.photo-side{grid-area:rail;display:flex;flex-direction:column;min-width:0;min-height:0;width:auto;max-width:none;overflow-y:auto;padding:22px 24px 30px;background:#f5f8f4;border-left:1px solid #d3ddd7;scrollbar-color:#a6b9ae transparent}
.photo-side .section-heading{display:flex;grid-column:auto;grid-row:auto;min-height:0;margin:0 0 14px}
.photo-side .section-heading h3{font-size:27px}
.photo-side .section-kicker{color:#a53e30}
.photo-frame{grid-column:auto;grid-row:auto;border-width:6px;border-radius:7px}
.photo-frame img{height:clamp(180px,29vh,310px)}
.photo-tip{grid-column:auto;grid-row:auto;max-width:none;margin:12px 0 0;font-size:12px;color:#536b6b}
.pin-status{margin:18px 0 10px;padding-top:12px;border-top:1px solid #d3ddd7;color:#3b5859;line-height:1.4}
.guess-form{grid-template-columns:minmax(0,1fr);gap:10px;align-items:end;padding:0;border:0;border-radius:0;background:none}
.guess-form label{grid-column:1/-1}
.guess-form label strong{font-size:23px}
.guess-form .section-kicker{color:#a53e30}
.guess-form input{height:52px;min-width:0;font-size:20px}
.guess-form input::placeholder{color:#657978}
.guess-form button{height:46px;width:100%;padding:0 14px}
.form-note{color:#536b6b}
.reveal{margin-top:20px;padding:18px 12px 0;border:0;border-top:1px solid #d3ddd7;border-radius:0;background:none}
.reveal h3{font-size:27px}
.reveal>p{font-size:12px;color:#415e59}
.answer-grid{gap:12px}
.answer-grid>div{min-width:0}
.answer-grid strong{font-size:17px;overflow-wrap:anywhere}
.answer-grid span{color:#536b6b}
.reveal-actions{display:grid;gap:12px}
.complete{max-width:900px;margin:48px auto;padding:32px}
footer{display:none}
footer[aria-label="Site policies"]{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:12px;margin:0;background:#092b50;color:#d6edf2;border-top:1px solid #35516d;letter-spacing:normal}
footer[aria-label="Site policies"] a{color:#d6edf2;text-decoration:underline;text-underline-offset:3px}
@media(max-width:850px){
  .game-panel{height:auto;min-height:0}
  .game-grid{display:flex;flex-direction:column}
  .photo-side{order:0;overflow:visible;padding:18px 22px;border-left:0;border-bottom:1px solid #d3ddd7}
  .map-side{order:1;min-height:55dvh}
  .photo-frame img{height:clamp(180px,32vw,280px)}
  .guess-form{max-width:480px}
}
@media(max-width:540px){
  .topbar{height:58px;padding:0 14px}
  .brand{font-size:13px}.brand-mark{width:29px;height:29px;font-size:19px}.brand em{font-size:19px}
  .archive-badge{display:none}
  .game-header{min-height:65px;padding:10px 14px}
  .game-header h2{font-size:22px}.game-total strong{font-size:24px}
  .photo-side{padding:16px 14px 20px}
  .photo-side .section-heading h3{font-size:23px}
  .photo-frame img{height:220px}
  .map-side{min-height:58dvh}
  .map-side .section-heading{top:10px;left:10px;padding:8px;gap:8px}
  .map-side .section-heading h3{font-size:16px}
  .map-tools button{width:32px;height:32px}
  .map-corner,.map-frame.vector-map-active .map-corner{left:10px;bottom:20px;font-size:12px}
  .complete{margin:14px;padding:20px}
  .round-recap{grid-template-columns:1fr}
}
@media(max-width:360px){.guess-form{grid-template-columns:1fr}.guess-form button{width:100%}}

/* TARDIS flight console: blue enamel, brass controls, illuminated roundels. */
:root{--ink:#edf4f4;--muted:#b2c9d8;--line:#365877;--paper:#102f4c;--coral:#efbc70;--gold:#efbc70;--console:#092b50;--console-deep:#071d33}
body,.game-panel{background:var(--console-deep);color:var(--ink)}
::selection{background:#efbc70;color:#071d33}
:focus-visible{outline:3px solid #efbc70;outline-offset:4px}
h1,h2,h3{letter-spacing:-.025em;text-wrap:balance}
.topbar{background:var(--console);border-bottom:1px solid #54728c;position:relative}
.topbar:after{content:"";position:absolute;bottom:0;left:24px;right:24px;height:3px;background:#061a30}
.brand{color:#f3f5ea;letter-spacing:.12em}
.brand em{color:#efbc70;font-style:normal}
.brand-mark{width:27px;height:39px;border:0;border-radius:0;transform:none;color:#83b3de;overflow:visible}
.archive-badge{color:#c4d8e6;font-size:12px;letter-spacing:.04em}
.archive-badge i{background:#efbc70}
.text-button{color:#d4e2e9;border-color:#6c8ca6}
.text-button:hover{color:#efbc70;border-color:#efbc70}
.game-header{background:#103657;position:relative;overflow:hidden}
.game-header:after{content:"";position:absolute;right:265px;top:-32px;width:144px;height:144px;border:1px solid #66849a;border-radius:50%;box-shadow:inset 0 0 0 12px #103657,inset 0 0 0 13px #66849a,inset 0 0 0 33px #103657,inset 0 0 0 34px #66849a;opacity:.35;pointer-events:none}
.game-header>div{position:relative;z-index:1}
.game-header>div:first-child{display:flex;align-items:center;gap:24px}
.round-kicker{color:#efbc70;margin:0;font-size:12px;letter-spacing:.12em;white-space:nowrap}
.game-header h2{font-size:28px;color:#fff2da}
.game-total{font-variant-numeric:tabular-nums}
.game-total strong{color:#efbc70}
.game-total span:first-child,.game-total span:last-child{color:#c4d8e6}
.progress-dot{background:#254761}
.progress-dot.current{background:#efbc70}
.progress-dot.done{background:#8fcbd0}
.photo-side{background:#102f4c;border-color:#365877;scrollbar-color:#5b7d9a #102f4c}
.photo-side .section-heading h3{color:#fff2da;font-size:27px}
.photo-frame{border-color:#061c30;background:#061c30;border-radius:3px;box-shadow:0 8px 20px #00000040;flex-shrink:0}
.photo-frame img{filter:none}
.photo-frame figcaption{background:#061c30;color:#bcd3e4;font-size:12px;letter-spacing:.04em;line-height:1.5;padding:8px}
.photo-tip,.form-note{color:#b9d0df;line-height:1.6}
.pin-status{border-color:#365877;color:#c3d7e4;flex-wrap:wrap;gap:5px}
.pin-status strong{color:#fff2da;font-variant-numeric:tabular-nums}
.pin-dot{background:#efbc70;border-color:#102f4c;box-shadow:none}
.guess-form label strong{font-size:22px;color:#fff2da}
.guess-form input{background:#071d33;border:1px solid #688ca9;color:#f4f6f2;border-radius:3px;caret-color:#efbc70;font-variant-numeric:tabular-nums;color-scheme:dark}
.guess-form input::placeholder{color:#a9c4d7}
.guess-form input:disabled{color:#adc1d0;background:#163651}
.guess-form button,.reveal-actions button,.complete button{background:#efbc70;color:#15283a;border-radius:3px}
.guess-form button:hover:not(:disabled),.reveal-actions button:hover,.complete button:hover{background:#ffdaa0;transform:translateY(-1px)}
.guess-form button:disabled{background:#36536c;color:#bacbd7}
.map-side{color:#112a36}
.map-side .section-heading{background:#092b50;color:#f0f4ed;border-radius:3px;box-shadow:0 5px 18px #00000030}
.map-side .section-heading h3{font-size:18px;letter-spacing:-.02em}
.map-tools button{background:#153e63;color:#e8f3f6;border-color:#6a8ba6;border-radius:3px}
.map-tools button:hover:not(:disabled){background:#28577f}
.map-corner,.map-frame.vector-map-active .map-corner{background:#092b50;color:#d4e4ed;border-radius:2px;font-size:12px;letter-spacing:.04em;padding:8px 10px}
.reveal{border-color:#59758c;padding-left:12px;padding-right:12px}
.reveal-top{flex-wrap:wrap}
.reveal-tag{color:#efbc70;font-size:12px;letter-spacing:.1em}
.round-score{background:#1c454f;border-color:#54858a;color:#c9efdf;white-space:nowrap;font-size:12px}
.reveal h3{color:#fff2da}
.reveal>p,.answer-grid small{color:#bdd2df;line-height:1.6}
.answer-grid>div{border-color:#45647d}
.answer-grid span{color:#bdd2df}
.answer-grid strong{color:#fff2da}
.score-breakdown{flex-wrap:wrap}
.score-breakdown span{background:#183e5a;border-color:#45647d;color:#d2e2ec;font-size:12px}
.reveal-actions a{color:#b8dfe9;line-height:1.5}
.reveal-actions a:hover{color:#efbc70}
.complete{background:#102f4c;border-color:#45647d;box-shadow:none;border-radius:4px}
.complete h2{color:#fff2da}
.complete>p:not(.eyebrow){color:#bdd2df}
.recap-card{background:#092640;border-color:#365877;border-radius:4px}
.recap-card strong{color:#fff2da}
.recap-card small{color:#bdd2df}
.recap-card b{color:#efbc70}
@keyframes booth-land{0%{opacity:.15;filter:blur(3px);transform:translateY(-8px)}25%{opacity:.8}45%{opacity:.25;filter:blur(1px)}75%{opacity:.9}100%{opacity:1;filter:blur(0);transform:translateY(0)}}
.booth-marker.landing .booth-art,.maplibre-booth.landing svg{animation-duration:1.1s}
@media(max-width:1000px){.game-total span:first-child{display:none}.game-header:after{right:150px}}
@media(max-width:540px){
  .game-header>div:first-child{display:block}
  .round-kicker{margin-bottom:6px;font-size:12px}
  .game-header h2{font-size:23px}
  .game-header:after{right:65px;opacity:.2}
  .brand-mark{width:23px;height:35px}
  .brand{letter-spacing:.09em}
  .photo-side .section-heading h3{font-size:25px}
  .map-side .section-heading h3{font-size:17px}
  .map-corner,.map-frame.vector-map-active .map-corner{font-size:12px;max-width:calc(100% - 20px)}
}

/* One reveal sequence: spatial correction, then the calendar catches up. */
.journey{position:absolute;z-index:4;bottom:72px;left:18px;display:grid;grid-template-columns:minmax(0,1fr) 120px;gap:16px 24px;width:min(390px,calc(100% - 36px));padding:20px;background:#092b50;color:#edf4f4;border-radius:6px;box-shadow:0 10px 32px #00000040}
.journey-space,.journey-time{display:flex;flex-direction:column;gap:8px;min-width:0}
.journey span{font-size:12px;color:#c4d8e6;line-height:1.4}
.journey-space>strong{font-size:clamp(25px,3vw,36px);font-variant-numeric:tabular-nums;letter-spacing:-.025em;white-space:nowrap;color:#fff2da}
.journey small{font-size:12px;line-height:1.5;color:#c4d8e6}
.calendar{position:relative;padding:10px 8px 5px;border-top:8px solid #efbc70;border-radius:0;background:#fff2da;color:#092b50;perspective:240px;text-align:center}
.calendar:before,.calendar:after{content:"";position:absolute;width:4px;height:12px;background:#b7d4e3;top:-13px;border-radius:2px}
.calendar:before{left:20px}.calendar:after{right:20px}
.calendar strong{display:block;font-family:Georgia,serif;font-size:36px;font-variant-numeric:tabular-nums;transform-origin:center top;line-height:1.2}
.journey button{grid-column:1/-1;justify-self:start;background:none;border:1px solid #7899b2;border-radius:3px;color:#edf4f4;padding:8px 12px;min-height:36px;font-size:12px}
.journey button:hover{background:#204c70}
.journey-tardis{--aura:#8fe9f4;pointer-events:none;filter:drop-shadow(0 0 7px var(--aura)) drop-shadow(0 0 15px var(--aura))}
.journey-tardis svg{overflow:visible}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
@media(max-width:850px){.map-side:has(.journey:not([hidden])){min-height:640px}.journey{bottom:70px}}
@media(max-width:540px){.journey{left:10px;width:calc(100% - 20px);grid-template-columns:minmax(0,1fr) 110px;gap:12px;padding:16px}.journey-space>strong{font-size:28px}}
@media(prefers-reduced-motion:reduce){.journey-tardis{filter:drop-shadow(0 0 5px var(--aura))}}

.journey .journey-rating{color:var(--rating-color);font-weight:750;font-size:14px}
.journey-rating:before{content:"";display:inline-block;width:8px;height:8px;margin-right:7px;border-radius:50%;background:currentColor}
.journey-original{display:flex;flex-direction:column;gap:2px;padding-bottom:10px;margin-bottom:2px;border-bottom:1px solid #54728c}
.journey-original strong{font-size:25px;font-variant-numeric:tabular-nums;color:#fff2da}

@media(max-width:540px){.topbar-right{gap:14px}#sound-toggle{min-height:36px}}

/* End-of-game debrief: measured results beside an explicitly provisional model. */
.review-verdict{padding:22px 0;border-block:1px solid #45647d;margin-bottom:24px}
.review-verdict h3{font-size:32px;color:#fff2da;margin:0 0 12px}
.review-verdict p{max-width:70ch;line-height:1.6;font-size:14px;color:#c4d8e6}
.review-percentile{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 16px;margin:20px 0 6px}
.review-percentile strong{font-size:21px;color:#efbc70;font-variant-numeric:tabular-nums}
.review-percentile span{font-size:12px}
.review-verdict .review-caveat{font-size:13px;margin-bottom:14px}
.review-method summary{cursor:pointer;color:#cdeaf1;font-size:13px;text-underline-offset:3px;padding:8px 0}
.review-method summary:hover{text-decoration:underline}
.review-method summary:focus-visible{outline:3px solid #efbc70;outline-offset:3px}
.review-method p{font-size:13px;margin:8px 0}
.review-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 32px;margin:0 0 24px}
.review-stats dt{font-size:13px;color:#c4d8e6;margin-bottom:6px}
.review-stats dd{margin:0;color:#fff2da;font-size:24px;font-variant-numeric:tabular-nums}
.review-stats small{display:block;font-size:12px;line-height:1.5;color:#c4d8e6;margin-top:6px}
.complete .review-best{font-size:14px;line-height:1.6;border-bottom:1px solid #45647d;padding-bottom:24px}
.review-rounds-title{font-size:27px;margin:28px 0 12px;color:#fff2da}
.complete .round-recap{display:block}
.complete .recap-card{align-items:flex-start;padding:18px 0;background:none;border:0;border-bottom:1px solid #45647d;border-radius:0;gap:16px}
.complete .recap-card img{width:88px;height:72px;border-radius:2px}
.complete .recap-card>div{flex:1;gap:6px}
.complete .recap-card span{letter-spacing:.04em}
.recap-card h4{margin:0;color:#fff2da;font-family:Georgia,serif;font-size:19px;font-weight:500;line-height:1.3}
.recap-card p{font-size:13px;color:#c4d8e6;line-height:1.5;margin:0}
.complete .recap-card small{white-space:normal;overflow:visible;line-height:1.5}
.complete .recap-card b{font-size:20px;font-variant-numeric:tabular-nums;text-align:right}
.complete .recap-card b small{display:block;font-weight:400;font-size:12px}
.recap-comparison{display:flex;flex-wrap:wrap;gap:12px 24px;margin:6px 0}
.recap-comparison dt{font-size:12px;color:#c4d8e6}
.recap-comparison dd{margin:0;font-size:18px;font-variant-numeric:tabular-nums;color:#fff2da}
@media(max-width:540px){.complete h2{font-size:34px}.complete .recap-card{display:grid;grid-template-columns:minmax(0,1fr) auto}.complete .recap-card img{display:none}.review-stats{gap:20px 16px}.review-stats dd{font-size:21px}}

/* Keep play focused; the debrief leads with one distribution graphic. */
.form-note:empty{display:none}
.map-side .section-heading{gap:0;padding:6px}
.story-detail{margin:12px 0;color:#c4d8e6;font-size:13px;line-height:1.6}
.story-detail summary,.review-rounds summary{cursor:pointer;padding:8px 0}
.story-detail p{margin:10px 0}
.complete{max-width:720px}
.complete>h2{font-size:36px}
.complete #final-score{font-size:20px;color:#fff2da;font-variant-numeric:tabular-nums;margin-bottom:20px}
.review-distribution{margin:0 0 24px}
.review-distribution .review-percentile{margin:0 0 10px}
.review-distribution svg{display:block;width:100%;height:auto}
.review-distribution figcaption{font-size:12px;color:#c4d8e6;text-align:center;line-height:1.5;margin-top:4px}
.review-rounds{margin:8px 0 24px;color:#c4d8e6;font-size:13px}
.review-stats{border-block:1px solid #45647d;padding:18px 0;margin-bottom:12px}
@media(max-width:540px){.complete{padding:18px}.complete>h2{font-size:30px}.review-percentile strong{font-size:19px}}

.lifetime{margin:0 0 20px}
.lifetime h3{font-family:inherit;font-size:13px;font-weight:500;letter-spacing:normal;color:#c4d8e6;margin:0 0 12px}
.lifetime-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0}
.lifetime-stats dt{font-size:12px;color:#c4d8e6;margin-bottom:5px}
.lifetime-stats dd{font-size:25px;font-variant-numeric:tabular-nums;color:#fff2da;margin:0}
