:root{color-scheme:dark;--ink:#102e32;--panel:#16383c;--gold:#e8bd73;--paper:#fff0cd;--muted:#b4c6bf;--font:16px}*{box-sizing:border-box}body{margin:0;background:#0a2228;color:var(--paper);font:var(--font)/1.5 Georgia,serif}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:1px solid #72918c66;border-radius:8px;background:#25484c;color:var(--paper);padding:10px 16px;min-height:44px;transition:background .18s}button:hover{background:#3d6263}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:3px solid #ffcf77;outline-offset:3px}button:disabled{opacity:.48;cursor:default}.primary{background:var(--gold);color:#172f31;border-color:var(--gold);font-weight:bold}.primary:hover{background:#ffe0a3}.ghost{background:transparent}h1,h2,h3,p{margin:0 0 14px}h1{font-size:clamp(38px,5vw,74px);line-height:1.05;font-weight:normal}h2{font-size:30px;font-weight:normal}h3{font-size:21px;font-weight:normal}small,.eyebrow{font:11px/1.5 system-ui,sans-serif;letter-spacing:2px;color:var(--gold)}header{height:90px;padding:16px 4vw;display:flex;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid #e8bd7330;background:#102e32}nav{display:flex;gap:8px}.brand{text-decoration:none;color:var(--paper);display:flex;align-items:center;gap:12px;line-height:1.1;font-size:21px}.brand b{font-weight:normal}.brand small{display:block;font-size:9px;margin-top:8px;letter-spacing:2.3px}.brandmark{font-size:42px;color:var(--gold)}#pieceCount{font:12px system-ui;color:var(--gold)}.hero{min-height:calc(100dvh - 90px);position:relative;display:flex;align-items:center;background:linear-gradient(90deg,#071a22eb 0%,#071a2299 40%,#071a2200 80%),url('assets/scene-0.jpg') center/cover;padding:6vw}.hero-copy{max-width:570px}.hero p{font-size:19px;max-width:480px;color:#e4e0ce}.hero h1 em{color:#efc681;font-style:normal}.hero .eyebrow{display:block;margin-bottom:20px}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}.stamp{margin-top:40px;font:12px system-ui;text-transform:uppercase;letter-spacing:2px;color:#ddd0ad}.map-page{max-width:1400px;margin:auto;padding:28px 4vw}.page-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:24px}.page-heading p{color:var(--muted);margin:0}.map-layout{display:grid;grid-template-columns:1fr 290px;gap:24px}.town{border:1px solid #b4975d66;position:relative;border-radius:14px;overflow:hidden;min-height:680px;background:radial-gradient(ellipse at 20% 35%,#aeb488 0%,#c3b788 27%,transparent 28%),radial-gradient(ellipse at 68% 40%,#c5b888 0%,#b1ac7c 40%,transparent 41%),linear-gradient(145deg,#306f79,#173f50);box-shadow:inset 0 0 65px #091a2c}.town:before{content:'L A N T E R N   C O V E';position:absolute;bottom:22px;left:20px;color:#dfddbd;font-size:16px;letter-spacing:4px}.map-roads{position:absolute;width:100%;height:100%;opacity:.5;pointer-events:none}.pin{position:absolute;width:27%;padding:7px;background:#16383cf2;box-shadow:0 4px 14px #0006;text-align:left;line-height:1.2;transform:translate(-50%,-50%)}.pin img{width:100%;height:70px;object-fit:cover;border-radius:4px}.pin b{font-size:14px;display:block;margin:6px 2px}.pin span{font:11px system-ui;color:var(--gold)}.pin.locked img{filter:grayscale(1);opacity:.45}.map-sidebar{background:#15383c;border:1px solid #e8bd7330;border-radius:14px;padding:24px;height:fit-content}.map-sidebar p{color:var(--muted)}.meter{height:6px;background:#091c24;border-radius:10px;margin:15px 0;overflow:hidden}.meter i{height:100%;background:var(--gold);display:block}.scene-page{height:calc(100dvh - 90px);display:grid;grid-template-rows:auto 1fr;overflow:hidden}.scene-heading{padding:12px 24px;display:flex;align-items:center;justify-content:space-between;gap:12px}.scene-heading h2{font-size:24px;margin:0}.scene-heading small{letter-spacing:1px}.scene-body{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:0;min-height:0}.viewport{position:relative;overflow:hidden;touch-action:none;background:#07191d;border-top:1px solid #b4975d66}.viewport canvas{display:block;width:100%;height:100%;touch-action:none;cursor:crosshair}.view-controls{position:absolute;bottom:14px;left:14px;display:flex;gap:6px}.view-controls button{background:#102e32eb;padding:6px 13px;min-width:44px}.view-tip{position:absolute;top:12px;left:12px;font:12px system-ui;background:#102e32c9;padding:7px 10px;border-radius:6px;pointer-events:none}.clues{background:#133237;overflow:auto;padding:20px;border-left:1px solid #b4975d44}.clues h3{margin:6px 0}.clue{display:block;width:100%;text-align:left;margin:10px 0;padding:13px 14px;background:#1b3c40;border:1px solid #72857e55;position:relative}.clue.active{border-color:var(--gold);background:#294b4c}.clue.done{opacity:.65}.clue .count{font:11px system-ui;color:var(--gold);display:block;margin-top:7px}.clue p{margin:0;line-height:1.4;font-size:16px;white-space:pre-line}.hintbar{display:flex;gap:6px}.hintbar button{flex:1;padding:8px}.hint-text{font-size:14px;color:#e6d2aa;min-height:40px;margin-top:12px}.location-story{font-size:14px;color:var(--muted);margin-top:18px}.round-tabs{display:flex;gap:6px;margin-top:12px}.round-tabs span{border:1px solid #83938555;border-radius:50%;width:27px;height:27px;display:grid;place-content:center;font:12px system-ui}.round-tabs .current{background:var(--gold);color:#16383c}.round-tabs .finished{color:var(--gold)}#toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);border:1px solid #dab97455;border-radius:10px;background:#09292cf2;color:#fff1d0;padding:13px 22px;z-index:20;opacity:0;transition:opacity .2s;pointer-events:none;width:max-content;max-width:90vw;text-align:center}#toast.show{opacity:1}dialog{border:1px solid #b69a65;background:#16363c;color:var(--paper);border-radius:16px;width:min(740px,94vw);max-height:90dvh;padding:30px;box-shadow:0 30px 100px #000a}dialog::backdrop{background:#04191dc9;backdrop-filter:blur(5px)}.close{float:right;font:26px system-ui;padding:0;width:44px;margin:-14px -14px 0 10px}.dialog-art{width:100%;height:210px;object-fit:cover;border-radius:9px;margin-bottom:20px}.journal-entry{padding:13px 0;border-top:1px solid #b4c6bf33}.journal-entry p{color:var(--muted);font-size:15px;margin:0}.fragments{display:grid;grid-template-columns:repeat(6,1fr);gap:7px;margin:18px 0}.fragment{aspect-ratio:1.4;background:#091f26;border:1px dashed #b89b5d;display:grid;place-content:center;font-size:22px;color:#728b80}.fragment.owned{background:#dcc28a;color:#25474a;border-style:solid}.setting{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:14px 0;border-bottom:1px solid #a5b5aa33}.setting select{max-width:55%;padding:7px}.setting input[type=range]{width:130px}.setting input[type=checkbox]{width:24px;height:24px}.puzzle-art{background:#0a252c;border:1px solid #ad945d66;border-radius:12px;padding:24px;text-align:center;margin:18px 0}.symbol-row{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.symbol{font-size:28px;min-width:70px;min-height:68px}.slots{min-height:60px;letter-spacing:8px;font-size:28px;padding:10px;background:#091f26;margin-bottom:15px;border-radius:8px}.lamp-grid{display:grid;grid-template-columns:repeat(3,70px);justify-content:center;gap:12px}.lamp{width:70px;height:70px;border-radius:50%;background:#14272d;box-shadow:inset 0 2px 8px #000}.lamp.on{background:#f3cf7f;box-shadow:0 0 25px #efc67466;color:#233c3d}.dial{font-size:32px;min-width:65px;min-height:65px}.clock{width:190px;height:190px;margin:auto auto 20px;border:10px solid #bb9354;border-radius:50%;background:#eddfbd;position:relative;color:#1d353a;box-shadow:0 5px 20px #0006}.clock span{position:absolute;font:17px Georgia;left:50%;top:50%;transform:translate(-50%,-50%)}.hand{position:absolute;left:calc(50% - 2px);bottom:50%;width:4px;background:#1e4148;transform-origin:50% 100%;border-radius:4px}.map-puzzle{width:270px;display:grid;grid-template-columns:repeat(3,90px);margin:auto}.tile{width:90px;height:90px;border-radius:0;padding:0;overflow:hidden;background:#d5bf83;border:1px solid #816c48}.tile.selected{outline:4px solid #f9efb8;z-index:1}.tile svg{width:100%;height:100%}.route-grid{display:grid;grid-template-columns:repeat(4,58px);margin:auto;justify-content:center}.route-cell{width:58px;height:58px;border:1px solid #9fbcba44;display:grid;place-content:center;font-size:22px;background:#276572}.route-cell.rock{background:#776f5b}.route-cell.boat{background:#edc77a;color:#193b3f}.win{animation:glow 1s ease-in-out}.ending{max-width:800px;margin:0 auto;padding:40px 24px;text-align:center}.ending img{width:100%;border-radius:12px;max-height:440px;object-fit:cover}.treasure{font-size:64px;color:#efcc87}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}@keyframes glow{50%{box-shadow:inset 0 0 80px #f6dc8a66}}body.reduced *,body.reduced *:before{animation:none!important;transition:none!important}@media(max-width:900px){header{padding:12px 16px;height:80px}.brand{font-size:17px}.brandmark{font-size:28px}nav{gap:5px}nav button{padding:8px 10px;font-size:13px}.scene-page{height:calc(100dvh - 80px)}.scene-body{grid-template-columns:minmax(0,1fr) 265px}.clues{padding:12px}.map-layout{grid-template-columns:1fr}.map-sidebar{order:-1}.town{min-height:700px}.hero{min-height:calc(100dvh - 80px)}}@media(max-width:650px){header{height:75px;padding:10px}.brandmark{display:none}.brand{font-size:16px}.brand b{display:block}.brand small{display:none}nav button{padding:7px 8px;font-size:12px}.scene-page{height:calc(100dvh - 75px)}.scene-heading{padding:9px 12px}.scene-heading h2{font-size:19px}.scene-heading button{font-size:12px;padding:6px 9px}.scene-body{grid-template-columns:1fr;grid-template-rows:minmax(190px,1fr) 235px}.clues{border-left:0;border-top:1px solid #b4975d44;display:grid;grid-template-columns:1fr 1fr;gap:5px 10px;padding:10px 12px;overflow:auto}.clues>h3,.clues>.eyebrow,.round-tabs,.location-story{display:none}.clue{margin:0;padding:8px 10px}.clue p{font-size:14px}.clue .count{margin-top:3px}.hintbar{grid-column:1}.hint-text{grid-column:2;font-size:12px;margin:0;min-height:0}.clues>.primary{grid-column:1/-1}.view-controls{bottom:8px;left:8px}.view-tip{font-size:10px}.hero{padding:30px 24px;min-height:calc(100dvh - 75px);background-position:60%}.hero-copy{padding-top:40px}.hero p{font-size:17px}.stamp{font-size:10px}.town{min-height:670px}.pin{width:29%;padding:5px}.pin img{height:52px}.pin b{font-size:12px}.pin span{font-size:10px}.page-heading{display:block}.map-page{padding:20px 12px}.map-sidebar{padding:16px}.map-sidebar h3{margin:0}.fragments{grid-template-columns:repeat(6,1fr)}dialog{padding:22px}.symbol{min-width:52px;padding:6px}.setting{font-size:15px}.setting select{font-size:14px}}@media(max-height:500px) and (orientation:landscape){header{height:60px}.scene-page{height:calc(100dvh - 60px)}.scene-body{grid-template-columns:1fr 250px;grid-template-rows:1fr}.clues{display:block}.clue{margin:5px 0}.scene-heading{padding:5px 12px}.view-tip{display:none}}

.clue p{font-size:var(--font)}body:has(#text option[value="20"]:checked) .clues{font-size:20px}@media(max-width:650px){.clue p{font-size:calc(var(--font) - 2px)}}
/* Keep every search pixel clear of interface controls. */
.viewport canvas{height:calc(100% - 56px)}
.view-controls{bottom:6px;left:12px;height:44px;align-items:center}

.clue-switcher{display:none}
@media(max-width:650px){
.scene-body{grid-template-rows:minmax(160px,1fr) 285px}
.clues{display:flex;flex-direction:column;gap:7px}
.clue{display:none;flex-shrink:0}
.clue.active{display:block;order:1}
.clue-switcher{display:flex;gap:6px;order:0}
.clue-switcher button{flex:1;padding:4px 7px;min-height:36px;font:12px system-ui}
.hintbar{order:2;flex-shrink:0}
.hint-text{order:3;flex-shrink:0}
.clues>.primary{order:4;flex-shrink:0}
}

/* Games navigation uses normal header/menu flow, never the playfield overlay. */
a.return-games{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:6px 10px;box-sizing:border-box;color:inherit;font:600 13px/1.25 system-ui,sans-serif;letter-spacing:normal;text-decoration:underline;text-underline-offset:3px;white-space:nowrap;border-radius:5px}
a.return-games:hover{background:#ffffff14}a.return-games:focus-visible{outline:2px solid currentColor;outline-offset:2px}
header nav{flex-wrap:wrap;align-items:center;justify-content:flex-end}@media(max-width:600px){header{height:auto;min-height:75px}header nav{max-width:265px}}
