:root{--bg:#0c0a08;--bg-raised:#120f0b;--panel:#17130f;--panel-2:#1e1812;--line:#3b3024;--line-2:#5b4831;--gold:#c9a24e;--gold-bright:#ecd08a;--text:#e9dfc9;--muted:#9b8f78;--correct:#6fae4f;--close:#d6b84a;--near:#d08a3a;--far:#b85a3a;--wrong:#c0533a;--display:"Cinzel", "Trajan Pro", Georgia, serif;--body:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--radius:10px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);font:15px/1.5 var(--body);-webkit-font-smoothing:antialiased;margin:0}body{background:radial-gradient(ellipse 120% 60% at 50% -10%, #261c12 0%, transparent 60%), var(--bg);min-height:100dvh}button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--gold-bright);outline-offset:2px}h1,h2,h3{margin:0;font-weight:600}.muted{color:var(--muted)}.small{font-size:13px}.app{flex-direction:column;min-height:100dvh;display:flex}.topbar{padding:10px max(16px, env(safe-area-inset-right)) 10px max(16px, env(safe-area-inset-left));border-bottom:1px solid var(--line);z-index:2;background:linear-gradient(#1b150e 0%,#110d09 100%);align-items:center;gap:12px;display:flex;position:relative;box-shadow:0 1px #c9a24e14}.brand{align-items:baseline;gap:8px;min-width:0;display:flex}.wordmark{font-family:var(--display);letter-spacing:.14em;text-transform:uppercase;color:var(--gold-bright);text-shadow:0 0 14px #c9a24e4d;font-size:21px;font-weight:700}.brand__num{font-family:var(--display);color:var(--muted);font-size:14px}.dots{gap:6px;margin:0 auto;padding:0;list-style:none;display:flex}.dot{border:1.5px solid var(--line-2);background:0 0;border-radius:50%;width:11px;height:11px}.dot--current{border-color:var(--gold-bright);box-shadow:0 0 8px #ecd08a99}.dot--perfect{background:var(--correct);border-color:var(--correct)}.dot--close{background:var(--close);border-color:var(--close)}.dot--near{background:var(--near);border-color:var(--near)}.dot--far{background:var(--far);border-color:var(--far)}.dot--miss{background:#4a2a22;border-color:#9a5444}.topbar__actions{gap:8px;display:flex}.icon-btn{border:1px solid var(--line-2);width:36px;height:36px;color:var(--gold-bright);cursor:pointer;background:linear-gradient(#241c14,#17120d);border-radius:8px;place-items:center;font-size:17px;line-height:1;display:inline-grid}.icon-btn:hover{border-color:var(--gold)}.btn{border-radius:var(--radius);border:1px solid var(--line-2);min-height:44px;color:var(--text);letter-spacing:.02em;cursor:pointer;background:linear-gradient(#2a2117,#1a140e);justify-content:center;align-items:center;gap:8px;padding:0 20px;font-weight:600;display:inline-flex}.btn:hover:not(:disabled){border-color:var(--gold)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn--primary{color:#1a1209;font-family:var(--display);letter-spacing:.08em;text-transform:uppercase;background:linear-gradient(#d9b45e 0%,#a9822f 100%);border-color:#8a6a2c;font-weight:700;box-shadow:inset 0 0 0 1px #0006,0 4px 14px #c9a24e2e}.btn--primary:hover:not(:disabled){border-color:var(--gold-bright);background:linear-gradient(#e8c66f 0%,#b88f37 100%)}.btn--wide{width:100%}.chip{border:1px solid var(--line-2);min-height:36px;color:var(--text);cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#120e0ad9;border-radius:999px;padding:0 14px;font-size:13px;font-weight:600}.chip.is-active{border-color:var(--gold);color:var(--gold-bright);box-shadow:0 0 10px #c9a24e40}.game{flex:1;grid-template-columns:1fr;min-height:0;display:grid}.stage{border-bottom:1px solid var(--line);background:#050403;height:52dvh;min-height:280px;position:relative}.panel{background:linear-gradient(180deg, var(--panel) 0%, var(--bg-raised) 100%)}@media (width>=900px){.app{height:100dvh}.game{grid-template-columns:minmax(0,1fr) 430px}.stage{border-bottom:0;height:auto}.panel{border-left:1px solid var(--line);min-height:0;overflow-y:auto}.game--done{overflow-y:auto}}.game--done{grid-template-columns:1fr}.center-note{text-align:center;color:var(--muted);grid-column:1/-1;align-content:center;place-items:center;gap:12px;padding:48px 16px;display:grid}.viewer{position:absolute;inset:0}.viewer__frame{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;background:#050403;position:absolute;inset:0;overflow:hidden}.viewer__frame:active{cursor:grabbing}.viewer__frame:focus-visible{outline-offset:-3px}.viewer__img{transform-origin:0 0;opacity:0;will-change:transform;pointer-events:none;max-width:none;transition:opacity .35s;position:absolute;top:0;left:0}.viewer__img.is-loaded{opacity:1}.viewer__vignette{pointer-events:none;position:absolute;inset:0;box-shadow:inset 0 0 90px #000000bf}.viewer__loading{background:linear-gradient(100deg,#0b0907 30%,#16110c 50%,#0b0907 70%) 0 0/300% 100%;animation:1.4s linear infinite shimmer;position:absolute;inset:0}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.viewer__hint{border:1px solid var(--line-2);color:var(--text);text-align:center;pointer-events:none;background:#0a0806d1;border-radius:999px;width:max-content;max-width:calc(100% - 128px);padding:8px 14px;font-size:13px;animation:.4s both hint-in;position:absolute;bottom:18px;left:50%;transform:translate(-50%)}@keyframes hint-in{0%{opacity:0;transform:translate(-50%,6px)}}.viewer__tabs{z-index:1;gap:8px;display:flex;position:absolute;top:12px;left:50%;transform:translate(-50%)}.viewer__zoom{z-index:1;flex-direction:column;gap:6px;display:flex;position:absolute;bottom:12px;right:12px}.viewer__zoom .icon-btn{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#120e0ad9}.panel-body{padding:16px max(16px, env(safe-area-inset-right)) 0 max(16px, env(safe-area-inset-left));flex-direction:column;gap:12px;min-height:100%;display:flex}.panel-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.panel-head h2{font-family:var(--display);letter-spacing:.05em;color:var(--gold-bright);font-size:19px}.act-tabs{border:1px solid var(--line);border-radius:var(--radius);background:#100c09;grid-template-columns:repeat(10,minmax(0,1fr));gap:4px;padding:4px;display:grid}.act-tab{min-height:38px;color:var(--muted);font-family:var(--display);cursor:pointer;background:0 0;border:0;border-radius:7px;font-size:15px;font-weight:700;position:relative}.act-tab:hover{color:var(--text);background:#1d1711}.act-tab.is-active{color:#1a1209;background:linear-gradient(#d9b45e,#a9822f)}.act-tab.has-pick:after{content:"";background:var(--gold-bright);border-radius:50%;width:6px;height:6px;position:absolute;top:5px;right:6px}.act-tab.is-active.has-pick:after{background:#1a1209}.map-scroll{border:1px solid var(--line);border-radius:var(--radius);background:radial-gradient(at 50% 0,#c9a24e12,#0000 70%),repeating-linear-gradient(0deg,#ffffff03 0 1px,#0000 1px 22px),#0f0c09;padding:6px 4px 4px}.map-caption{font-family:var(--display);letter-spacing:.08em;color:var(--gold);margin:2px 10px 0;font-size:13px}.act-map{width:100%;height:auto;display:block}.edge{stroke:#4d3e2b;stroke-width:2px}.edge--path{stroke:var(--gold-bright);stroke-width:3.5px;stroke-dasharray:7 5;animation:1s linear infinite march}@keyframes march{to{stroke-dashoffset:-12px}}.node__hit{fill:#0000}.node__mark{fill:#2b2219;stroke:#8a7454;stroke-width:2px;transition:fill .15s,stroke .15s}.node--town .node__mark{fill:#3a2d1d;stroke:var(--gold)}.node__ring{fill:none;stroke:var(--gold-bright);stroke-width:2px;opacity:.8}.node__label{fill:#c9bda4;font-size:12px;font-family:var(--body);text-anchor:middle;pointer-events:none;font-weight:500}.is-interactive .node{cursor:pointer;outline:none}.is-interactive .node:hover .node__mark,.is-interactive .node:focus-visible .node__mark{stroke:var(--gold-bright);fill:#4a3a24}.is-interactive .node:focus-visible .node__hit{stroke:var(--gold-bright);stroke-width:1.5px;stroke-dasharray:3 3}.node--selected .node__mark{fill:var(--gold-bright);stroke:#fff2c8}.node--selected .node__label,.node--guess .node__label{fill:var(--gold-bright);font-weight:700}.node--answer .node__mark{fill:var(--correct);stroke:#d6f5c6}.node--answer .node__ring{stroke:var(--correct)}.node--answer .node__label{fill:#b7e59e;font-weight:700}.node--guess .node__mark{fill:var(--gold-bright);stroke:#fff2c8}.node--miss .node__mark{fill:var(--wrong);stroke:#f2b4a4}.node--miss .node__label{fill:#f0a08c;font-weight:700}.guess-bar{margin:auto calc(-1 * max(16px, env(safe-area-inset-left))) 0;padding:12px max(16px, env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));border-top:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#100c09f0;align-items:center;gap:12px;display:flex;position:sticky;bottom:0}.guess-bar__pick{flex-direction:column;flex:1;min-width:0;line-height:1.25;display:flex}.guess-bar__pick strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.guess-bar__pick .muted{font-size:12px}.error-text{color:#f0a08c;margin:0 0 12px}.result-score{font-family:var(--display);margin:0;font-size:40px;line-height:1}.result-score strong{color:var(--gold-bright)}.result-score .muted{font-size:18px}.result-facts{gap:6px;margin:0;display:grid}.result-facts div{align-items:baseline;gap:10px;display:flex}.result-facts dt{min-width:86px;color:var(--muted);font-size:13px}.result-facts dd{margin:0}.text-correct{color:#b7e59e}.summary{text-align:center;width:min(640px,100%);margin:0 auto;padding:28px 16px 40px}.eyebrow{font-family:var(--display);letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin:0 0 6px;font-size:13px}.summary__total{font-family:var(--display);color:var(--gold-bright);font-size:46px}.summary__total .muted{font-size:20px}.summary__emoji{letter-spacing:4px;margin:6px 0 18px;font-size:26px}.summary__rounds{text-align:left;gap:8px;margin:0 0 20px;padding:0;list-style:none;display:grid}.summary__rounds li{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);grid-template-columns:96px 1fr auto;align-items:center;gap:12px;padding:8px;display:grid}.summary__rounds img{object-fit:cover;background:#050403;border-radius:6px;width:96px;height:54px}.summary__rounds div{flex-direction:column;min-width:0;display:flex}.summary__rounds strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.summary__rounds .muted{font-size:12px}.summary__score{white-space:nowrap;font-weight:600}.summary__actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.share-fallback{border-radius:var(--radius);border:1px solid var(--line-2);width:100%;color:var(--text);font:14px/1.4 var(--body);resize:none;background:#0f0c09;margin-top:12px;padding:10px}.summary__next{color:var(--muted);margin-top:22px}.summary__next strong{font-family:var(--display);color:var(--text);font-variant-numeric:tabular-nums}.modal-backdrop{z-index:10;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#040302b8;place-items:center;padding:16px;animation:.2s both fade;display:grid;position:fixed;inset:0}@keyframes fade{0%{opacity:0}}.modal{border:1px solid var(--line-2);background:linear-gradient(#1d1711 0%,#120e0a 100%);border-radius:14px;width:min(480px,100%);max-height:calc(100dvh - 32px);overflow-y:auto;box-shadow:0 20px 60px #0009,inset 0 0 0 1px #c9a24e14}.modal__head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.modal__head h2{font-family:var(--display);color:var(--gold-bright);letter-spacing:.06em;font-size:19px}.modal__body{padding:16px}.modal__body p{margin:0 0 12px}.help-steps{gap:8px;margin:0 0 14px;padding-left:20px;display:grid}.score-table{border-collapse:collapse;width:100%;margin-bottom:14px;font-size:14px}.score-table caption{text-align:left;color:var(--gold);font-family:var(--display);letter-spacing:.06em;padding-bottom:6px}.score-table td{border-top:1px solid var(--line);padding:6px 4px}.score-table td:last-child{text-align:right;font-variant-numeric:tabular-nums}.stat-tiles{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin-bottom:16px;display:grid}.stat-tile{border:1px solid var(--line);text-align:center;background:#110d0a;border-radius:8px;flex-direction:column;align-items:center;padding:8px 2px;display:flex}.stat-tile strong{font-family:var(--display);color:var(--gold-bright);font-size:18px}.stat-tile span{color:var(--muted);font-size:11px}.small-heading{font-family:var(--display);letter-spacing:.06em;color:var(--gold);margin-bottom:8px;font-size:14px}.dist{gap:6px;margin:0 0 12px;padding:0;list-style:none;display:grid}.dist li{grid-template-columns:112px 1fr;align-items:center;gap:8px;font-size:12px;display:grid}.dist__label{color:var(--muted);text-align:right;font-variant-numeric:tabular-nums}.dist__bar{color:#1a1209;text-align:right;background:linear-gradient(90deg,#6d5530,#a9822f);border-radius:4px;padding:2px 6px;font-weight:700}.site-footer{padding:10px 16px calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--line);color:var(--muted);text-align:center;background:#0a0806;font-size:11.5px}.site-footer p{margin:0}.site-footer a{color:var(--gold)}@media (width<=420px){.wordmark{letter-spacing:.1em;font-size:17px}.dots{gap:4px}.dot{width:9px;height:9px}.stat-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}.summary__rounds li{grid-template-columns:72px 1fr auto}.summary__rounds img{width:72px;height:44px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
