@font-face{font-family:Caprasimo;font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/caprasimo-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Caprasimo;font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/caprasimo-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Figtree;font-style:normal;font-weight:400 700;font-display:swap;src:url(../fonts/figtree-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Figtree;font-style:normal;font-weight:400 700;font-display:swap;src:url(../fonts/figtree-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--color-bg: #f5ead8;--color-surface: #ebddc5;--color-text: #201e1d;--color-accent: #c67139;--color-accent-2: #7a8a5e;--color-divider: color-mix(in srgb, #201e1d 16%, transparent);--color-neutral-100: #f9f4ed;--color-neutral-200: #eee7db;--color-neutral-300: #dcd3c4;--color-neutral-400: #c0b6a5;--color-neutral-500: #a19786;--color-neutral-600: #82796a;--color-neutral-700: #645c50;--color-neutral-800: #474238;--color-neutral-900: #2e2b25;--color-accent-100: #fff2eb;--color-accent-200: #ffe1d0;--color-accent-300: #ffc6a5;--color-accent-400: #f6a06b;--color-accent-500: #d67f48;--color-accent-600: #b2622d;--color-accent-700: #8c491a;--color-accent-800: #643312;--color-accent-900: #402310;--color-accent-2-100: #f0fae1;--color-accent-2-200: #e1eecc;--color-accent-2-300: #ccdbb2;--color-accent-2-400: #aebf92;--color-accent-2-500: #8fa073;--color-accent-2-600: #728157;--color-accent-2-700: #56633f;--color-accent-2-800: #3d472b;--color-accent-2-900: #272e1b;--font-heading: "Caprasimo", system-ui, sans-serif;--font-heading-weight: 400;--font-body: "Figtree", system-ui, sans-serif;--space-1: 4.4px;--space-2: 8.8px;--space-3: 13.2px;--space-4: 17.6px;--space-6: 26.4px;--space-8: 35.2px;--radius-sm: 8px;--radius-md: 16px;--radius-lg: 28px;--shadow-sm: 0 1px 2px color-mix(in srgb, #2e2b25 14%, transparent);--shadow-md: 0 3px 10px color-mix(in srgb, #2e2b25 16%, transparent);--shadow-lg: 0 12px 32px color-mix(in srgb, #2e2b25 22%, transparent)}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-body)}h1,h2,h3,h4{font-family:var(--font-heading);font-weight:var(--font-heading-weight)}*,*:before,*:after{box-sizing:border-box}body{margin:0;font-size:15px;line-height:1.55;font-weight:400}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:var(--font-heading-weight);line-height:1.12;letter-spacing:-.015em;margin:0 0 var(--space-2)}h1{font-size:42px}h2{font-size:32px}p{margin:0 0 var(--space-3)}a{color:var(--color-accent);text-underline-offset:3px}:focus{outline:none}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}::selection{background:color-mix(in srgb,var(--color-accent) 30%,transparent)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;text-decoration:none;font-family:var(--font-heading);font-weight:var(--font-heading-weight);font-size:14px;line-height:1.2;color:var(--color-text);background:transparent;border:1px solid transparent;padding:var(--space-2) calc(var(--space-3) * 1.2);border-radius:999px}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--color-accent);color:var(--color-bg)}.btn-primary:hover{background:var(--color-accent-600)}.btn-primary:active{background:var(--color-accent-700)}.btn-secondary{border-color:var(--color-divider)}.btn-secondary:hover{background:color-mix(in srgb,var(--color-text) 7%,transparent)}.btn-secondary:active{background:color-mix(in srgb,var(--color-text) 14%,transparent)}.btn-ghost{color:var(--color-accent);padding-inline:var(--space-1)}.btn-ghost:hover{background:color-mix(in srgb,var(--color-accent) 10%,transparent)}.btn-ghost:active{background:color-mix(in srgb,var(--color-accent) 18%,transparent)}.tag{display:inline-flex;align-items:center;font-size:11px;letter-spacing:.02em;padding:3px 10px;border-radius:999px}.tag-accent{background:var(--color-accent-100);color:var(--color-accent-800)}.tag-accent-2{background:var(--color-accent-2-100);color:var(--color-accent-2-800)}.tag-neutral{background:var(--color-neutral-100);color:var(--color-neutral-800)}:root{--space-5: 22px;--font-mono: ui-monospace, Menlo, monospace}html,body{margin:0;height:100%;overflow:hidden;background:var(--color-bg)}a{color:var(--color-accent-700)}a:hover{color:var(--color-accent-800)}[hidden]{display:none!important}@keyframes bh-pulse{0%{transform:scale(1);opacity:.8}to{transform:scale(1.75);opacity:0}}@keyframes bh-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.app{position:fixed;top:0;right:0;bottom:0;left:0;font-family:var(--font-body);color:var(--color-text);background:var(--color-bg)}.eyebrow{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-neutral-700)}.stars{display:flex;gap:4px;line-height:1}.star{color:var(--color-neutral-400)}.star.is-on{color:var(--color-accent-500)}.heading{margin:0;font-family:var(--font-heading);font-weight:400;line-height:1.05}.row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.actions{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-2)}.map-screen{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4) var(--space-5)}.map-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3)}.map-title{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.map-title h1{margin:0;font-size:34px;line-height:1.05}.map-selection{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;background:var(--color-surface);border-radius:999px;padding:8px 18px}.map-selection h2{margin:0;font-size:20px;line-height:1.1}.map-selection .stars{font-size:18px}.map-selection-detail{font-size:14px;color:var(--color-neutral-800);line-height:1.4;text-wrap:pretty}.map-stage{flex:1;min-height:0;display:flex;align-items:center;justify-content:center}.map-board{position:relative;width:min(100%,calc((100vh - 120px) * 16 / 9));aspect-ratio:16 / 9;border-radius:var(--radius-lg);background:var(--color-surface);overflow:hidden;box-shadow:var(--shadow-md)}.map-blob{position:absolute;border-radius:999px}.map-edge{position:absolute;height:0;margin-top:-4px;transform-origin:0 4px}.map-node{position:absolute;width:0;height:0;cursor:pointer}.map-node-pulse{position:absolute;left:-34px;top:-34px;width:68px;height:68px;border-radius:999px;border:4px solid var(--color-accent-400);animation:bh-pulse 1.6s ease-out infinite}.map-node-ring{position:absolute;left:-41px;top:-41px;width:82px;height:82px;border-radius:999px;border:3px solid var(--color-neutral-900)}.map-node-disc{position:absolute;left:-30px;top:-30px;width:60px;height:60px;border-radius:999px;display:flex;align-items:center;justify-content:center}.icon-mask{-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}.map-node-icon{width:28px;height:28px}.map-node-num{position:absolute;left:14px;top:-38px;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:var(--color-neutral-900);color:var(--color-neutral-100);font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center}.map-node-stars{position:absolute;left:-40px;width:80px;top:33px;justify-content:center;gap:1px;font-size:17px}.map-avatar{position:absolute;width:0;height:0;transition:left .35s ease,top .35s ease;pointer-events:none}.map-avatar-body{position:absolute;left:-17px;top:-88px;width:34px;animation:bh-bob 1.2s ease-in-out infinite}.map-avatar-head{width:34px;height:34px;border-radius:999px;background:var(--color-accent-500);border:3px solid var(--color-neutral-100);box-shadow:var(--shadow-md);display:flex;align-items:center;justify-content:center}.map-avatar-icon{width:16px;height:16px;background:var(--color-neutral-100)}.map-avatar-pin{width:0;height:0;margin:-1px auto 0;border-left:7px solid transparent;border-right:7px solid transparent;border-top:9px solid var(--color-accent-500)}.game-screen{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column}.hud{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 16px;background:var(--color-neutral-900);color:var(--color-neutral-100);font-size:14px}.hud-pill{display:flex;gap:6px;align-items:baseline;background:var(--color-neutral-800);border-radius:999px;padding:6px 14px}.hud-pill>span{color:var(--color-neutral-300)}.hud-pill>strong{font-size:16px}.hud-par{color:var(--color-neutral-400)!important;font-size:13px}.hud-ammo{color:var(--color-accent-300)}.hud-meter{color:var(--color-accent-2-300)}.hud-spacer{flex:1;min-width:8px}.hud-sound{border:none;color:var(--color-neutral-100);font:inherit;font-size:14px;cursor:pointer}.hud-sound:hover{background:var(--color-neutral-700)}.hud-sound>strong{font-size:14px}.hud-clues{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.hud-zone{font-weight:700;font-size:13px;color:var(--color-neutral-300)}.hud-clue{padding:4px 12px;border-radius:999px;font-size:12px;font-weight:700}.hud-clue.is-found{background:var(--color-accent-500);color:var(--color-neutral-100)}.hud-clue.is-missing{padding:2px 12px;border:2px solid var(--color-neutral-600);color:var(--color-neutral-400)}.hud-hint{font-size:12px;color:var(--color-neutral-400)}.stage{position:relative;flex:1;min-height:0}.stage canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain;display:block}.toast{position:absolute;top:16px;left:50%;transform:translate(-50%);background:var(--color-neutral-900);color:var(--color-neutral-100);border-radius:999px;padding:8px 18px;font-size:14px;font-weight:600;box-shadow:var(--shadow-md);white-space:nowrap;pointer-events:none}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;overflow:auto;padding:var(--space-4);background:color-mix(in srgb,var(--color-neutral-900) 35%,transparent)}.overlay.is-light{background:color-mix(in srgb,var(--color-neutral-900) 30%,transparent)}.panel{margin:auto;width:100%;max-width:480px;background:var(--color-bg);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-3)}.panel.is-narrow{max-width:420px}.panel.is-wide{max-width:560px}.panel .tag{align-self:flex-start}.panel .row .tag{align-self:auto}.panel-lead{margin:0;font-weight:700;font-size:17px}.panel-text{margin:0;line-height:1.5;color:var(--color-neutral-800);text-wrap:pretty}.panel-note{margin:0;font-size:13px;color:var(--color-neutral-700)}.box{display:flex;flex-direction:column;gap:6px;background:var(--color-surface);border-radius:var(--radius-md);padding:12px 16px}.box-body{font-size:14px}.box-small{font-size:13px;color:var(--color-neutral-700)}.evidence,.code-block{display:flex;flex-direction:column;gap:4px;background:var(--color-neutral-900);color:var(--color-neutral-100);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);font-family:var(--font-mono);font-size:13px;line-height:1.5}.code-block{gap:6px;overflow-x:auto}.code-line{display:flex;flex-wrap:wrap;align-items:center;min-height:28px}.code-text{white-space:pre}.slot{font:inherit;background:none;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:2px 12px;margin:0 2px;border-radius:999px;font-size:12px;cursor:pointer}.slot.is-empty{min-width:84px;border:2px dashed var(--color-accent-400);color:var(--color-accent-300);font-family:var(--font-body)}.slot.is-empty:hover,.slot.is-empty.is-over{background:color-mix(in srgb,var(--color-accent-400) 20%,transparent)}.slot.is-filled{border:2px solid var(--color-accent-500);background:var(--color-accent-500);color:var(--color-neutral-100);font-weight:700;font-size:13px}.slot-x{font-size:10px;opacity:.8}.chip{cursor:grab;font-family:var(--font-mono);font-size:13px}.btn-answer{font-family:var(--font-body);font-weight:600}.option-list{display:flex;flex-direction:column;gap:var(--space-2)}.option-wrap{display:flex;flex-wrap:wrap;gap:var(--space-2)}.option-wide{white-space:normal;text-align:left;justify-content:flex-start;height:auto;border-radius:var(--radius-md);padding:10px 16px;font-size:14px;line-height:1.4}.option-wide.is-mono{font-family:var(--font-mono);font-size:13px}.option-short{min-width:64px}.order-box{min-height:40px;padding:var(--space-3) var(--space-4)}.order-step{display:flex;gap:10px;align-items:center;font-size:15px}.order-num{width:24px;height:24px;border-radius:999px;background:var(--color-accent);color:var(--color-neutral-100);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex:none}.classify-item{display:flex;flex-direction:column;gap:8px;background:var(--color-surface);border-radius:var(--radius-md);padding:10px 14px}.classify-text{font-size:14px;line-height:1.4}.classify-opts{display:flex;flex-wrap:wrap;gap:6px}.classify-opts .btn{height:auto;padding:5px 12px;font-size:13px;white-space:nowrap;flex:none}.feedback{margin:0;background:var(--color-accent-100);color:var(--color-accent-800);border-radius:var(--radius-md);padding:10px 14px;font-size:14px;line-height:1.45}.stack{display:flex;flex-direction:column;gap:var(--space-3)}.result-stars{font-size:44px}.result-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);background:var(--color-surface);border-radius:var(--radius-md);padding:10px 14px}.result-label{font-size:12px;color:var(--color-neutral-700)}.result-value{font-family:var(--font-heading);font-size:22px}.result-row .stars{font-size:20px}.splash{position:absolute;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);padding:var(--space-5);background:var(--color-bg);cursor:pointer}.splash-title{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);text-align:center;opacity:0;flex-shrink:0}.splash-title h1{margin:0;font-size:clamp(30px,min(6vw,9vh),72px);line-height:1}.splash-title p{margin:0;font-size:18px;color:var(--color-neutral-800);text-wrap:pretty}.splash-frame{width:min(100%,960px,calc((100vh - 300px) * 960 / 360));flex-shrink:0;aspect-ratio:960 / 360;border-radius:var(--radius-lg);overflow:hidden;background:var(--color-surface);box-shadow:var(--shadow-md)}.splash-frame canvas{display:block;width:100%;height:100%}.splash-prompt{flex-shrink:0;animation:bh-bob 1.2s ease-in-out infinite}.cover{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:var(--color-bg);cursor:pointer}.cover img{display:block;width:100%;height:100%;object-fit:contain}@media(prefers-reduced-motion:reduce){.map-node-pulse,.map-avatar-body,.splash-prompt{animation:none}.map-avatar{transition:none}}.settings-host>.overlay{position:fixed;z-index:40}.map-audio{white-space:nowrap}.audio-box{gap:12px}.audio-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px 12px}.audio-label{font-weight:700}.audio-toggle{min-width:72px}.audio-slider{grid-column:1;width:100%;accent-color:var(--color-accent-500)}.audio-value{font-size:13px;color:var(--color-neutral-700);text-align:right;min-width:40px}.audio-row.is-off .audio-slider,.audio-row.is-off .audio-value{opacity:.45}.boss-items{display:flex;flex-wrap:wrap;gap:6px}.boss-item{display:inline-flex;align-items:center;gap:6px;padding:4px 12px 4px 6px;border-radius:999px;background:var(--color-neutral-200);color:var(--color-neutral-600);font-size:13px;font-weight:600}.boss-item.is-owned{background:var(--color-accent-2-600);color:var(--color-neutral-100)}.boss-item-icon{width:18px;height:18px;background:currentColor}.boss-item-state{font-size:12px}.tip-steps{gap:10px}.tip-step{display:flex;align-items:baseline;gap:10px;font-size:14px;line-height:1.4}.tip-keys{flex:none;min-width:72px;justify-content:center;font-weight:700}.hud-items{align-items:center}.hud-item-icons{display:flex;gap:6px}.hud-item{width:16px;height:16px;background:var(--color-accent-2-300)}
