:root{--paper:#f4efe5;--ink:#243e4e;--muted:#7c817c;--gold:#af8450;--line:#d9d3c6;--serif:Georgia,'Times New Roman',serif;--sans:Arial,Helvetica,sans-serif;--mono:'Courier New',monospace}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:14px var(--sans)}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}button:focus-visible,a:focus-visible{outline:3px solid #b88139;outline-offset:4px}a{color:inherit}header{height:98px;border-bottom:1px solid var(--line);max-width:1440px;margin:auto;padding:0 46px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;gap:13px;align-items:center;text-decoration:none;font:29px var(--serif);letter-spacing:-1px}.brand em{font-weight:normal;font-style:italic}.brand-icon{font:45px var(--serif);color:var(--gold)}.brand small{display:block;font:8px var(--mono);letter-spacing:2px;margin-top:7px}.header-right{display:flex;gap:28px;align-items:center}#date{font:11px var(--mono);color:var(--muted)}.text-button{background:transparent;border:0;color:var(--ink);font-size:12px}.text-button span{margin-left:10px}.icon{height:34px;width:34px;border:1px solid var(--line);background:transparent;border-radius:50%;color:var(--ink);font-size:19px}main{max-width:1440px;margin:auto;padding:0 46px}.edition-bar{display:flex;align-items:center;justify-content:space-between;height:66px;font:9px var(--mono);letter-spacing:1.6px;color:var(--muted)}.edition-bar>span:first-child{color:var(--ink)}.edition-bar i{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--gold);margin-right:8px}.expedition{display:grid;grid-template-columns:330px minmax(0,1fr);border:1px solid #c8c2b6;border-radius:5px;overflow:hidden;box-shadow:0 8px 28px #21384706;min-height:570px}.case-file{padding:27px 29px 23px;background:#ede7da;display:flex;flex-direction:column;border-right:1px solid #c8c2b6}.file-top{display:flex;justify-content:space-between;font:9px var(--mono);letter-spacing:1.7px;color:#838574}.date-stamp{margin:36px 0 21px}.date-stamp>span{display:block;font:64px/1 var(--serif);letter-spacing:-3px;color:#b08b58}.date-stamp small{font:9px var(--mono);letter-spacing:1px;text-transform:uppercase;display:block;margin-top:10px;color:#858678}h1{font:23px/1.5 var(--serif);margin:0 0 26px;font-weight:normal;letter-spacing:-.25px}.rule{height:1px;background:var(--line);margin-bottom:20px}.small-label{font:8px var(--mono);letter-spacing:1.7px;color:#7b827d}#clue-footer p{font-size:11px;line-height:1.8;color:#85867c;margin:10px 0 24px}.scoreboard{display:flex;align-items:flex-end;justify-content:space-between;margin-top:auto;padding-top:18px}.scoreboard strong{display:block;font:38px/1.2 var(--mono);letter-spacing:-2px;margin-top:6px}.score-outof{font:12px/1.8 var(--mono);color:#7b827d;text-align:right;padding-bottom:3px}.score-outof span{font-size:8px;letter-spacing:1.4px}.progress{display:flex;gap:6px;margin-top:17px}.progress i{height:4px;flex:1;background:#d7d0c1;border-radius:3px}.progress i.current{background:var(--gold)}.progress i.done{background:var(--ink)}.map-panel{position:relative;min-height:570px;background:#0d2130;display:flex;flex-direction:column}.map-top{height:52px;display:flex;justify-content:space-between;align-items:center;padding:0 20px;color:#aebfc4;font:8px var(--mono);letter-spacing:1.6px;z-index:2;pointer-events:none}.map-top button{pointer-events:auto;background:transparent;border:0;color:#cad5d5;font-size:19px}.map-top button span{font:9px var(--mono);margin-left:5px;letter-spacing:0}#map{position:absolute;inset:38px 0 76px;background:#0d2130}.maplibregl-canvas:focus{outline:none}.maplibregl-ctrl-attrib{font:8px var(--sans)!important;background:#0d2130b0!important;color:#b7c8cb!important}.maplibregl-ctrl-attrib a{color:#b7c8cb!important}.maplibregl-ctrl-attrib-button{background-color:#e8ece8!important}.map-tools{position:absolute;right:19px;top:75px;display:flex;flex-direction:column;border:1px solid #64778670;border-radius:5px;overflow:hidden}.map-tools button{width:31px;height:32px;background:#173140dd;color:#c5d1d5;border:0;border-bottom:1px solid #64778640;font-size:21px}.map-tools button:last-child{border:0}.map-tools button:hover{background:#354d5a}.map-guidance{position:absolute;bottom:108px;width:100%;text-align:center;pointer-events:none;font:8px var(--mono);letter-spacing:1.5px;color:#9aafb7;text-shadow:0 1px 3px #000}.map-guidance span{margin:0 9px;color:var(--gold)}.map-center{position:absolute;left:50%;top:calc(50% - 19px);font:16px var(--mono);color:#ffffff60;pointer-events:none;transform:translate(-50%,-50%)}.map-bottom{margin-top:auto;min-height:76px;border-top:1px solid #ffffff13;background:#132b3b;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 20px;z-index:2}#selection{font:10px var(--mono);color:#a5b7be}.primary{background:#d8b781;color:#182f3e;border:0;border-radius:3px;min-height:44px;padding:13px 20px;display:flex;align-items:center;justify-content:space-between;gap:35px;font-size:12px;font-weight:600}.primary:hover:not(:disabled){background:#ebcc9b}.primary:disabled{background:#3b4f5b;color:#9bacb5;opacity:1}.map-error{position:absolute;top:60px;left:60px;right:60px;z-index:5;background:#f4efe5;color:var(--ink);padding:15px;line-height:1.6;font-size:12px}#message{color:#995d33;font-size:12px;margin:10px 0 0}#message:empty{display:none}.under-map{display:flex;justify-content:space-between;align-items:center;padding:20px 0 29px;color:#85867d}.under-map p{font:italic 13px var(--serif);margin:0}.under-map p span{color:var(--gold);font-style:normal;margin-right:8px}.under-map>span{font:8px var(--mono);letter-spacing:1px}.under-map b{font-weight:normal;color:var(--ink);font-size:10px;margin-left:8px;font-variant-numeric:tabular-nums}footer{max-width:1440px;margin:auto;border-top:1px solid var(--line);padding:22px 46px;display:flex;justify-content:space-between;align-items:center;color:#8b8c81;font:8px var(--mono);letter-spacing:1px}footer i{font-style:normal;margin-left:7px;color:#a8a89d}footer button{border:0;background:none;color:#7c827c;font-size:10px;padding:5px 10px}.pin{width:21px;height:21px;background:#d9ae66;border:3px solid #fff9e9;border-radius:50%;box-shadow:0 0 0 6px #d9ae662b,0 3px 8px #0008}.pin.actual{background:#68bfa5;box-shadow:0 0 0 6px #68bfa52b,0 3px 8px #0008}.pin-label{background:#fff7e6;color:#253e4e;border:1px solid #d2b884;box-shadow:0 3px 8px #0003;border-radius:3px;padding:4px 7px;font:9px var(--mono);white-space:nowrap}.answer-dot,.guess-dot{display:inline-block;width:6px;height:6px;background:#68bfa5;border-radius:50%;margin-right:4px}.guess-dot{background:#d9ae66}#legend{font:8px var(--mono);color:#b5c4ca}#legend i:nth-child(2){margin-left:8px}body.revealed h1{font-size:16px;line-height:1.5;margin-bottom:15px}body.revealed .date-stamp{margin:21px 0 16px}body.revealed .date-stamp>span{font-size:40px}#reveal{border-top:1px solid var(--line);padding-top:15px;margin-bottom:8px}#reveal h2{font:23px/1.2 var(--serif);margin:8px 0}#reveal .place{font-size:10px;color:#758073}#reveal p{font:11px/1.7 var(--sans);color:#6c776d;margin:12px 0}#reveal a{font-size:10px;text-underline-offset:3px}.distance{font:10px var(--mono);color:#936b36}.distance strong{color:var(--ink)}#results{background:#ede7da;border:1px solid #c8c2b6;border-radius:5px;padding:35px;max-width:800px;margin:0 auto;text-align:center}#results h1{font-size:35px;margin:10px 0}.results-eyebrow{font:9px var(--mono);letter-spacing:2px;color:var(--gold)}.big-score{font:64px var(--serif);margin:12px;color:var(--ink)}.big-score small{font:14px var(--mono);color:var(--muted)}.result-row{display:flex;align-items:center;justify-content:space-between;text-align:left;padding:13px 0;border-bottom:1px solid var(--line);gap:12px;font-size:12px}.result-row span small{display:block;color:#7e8277;margin-top:4px;font-size:10px}.result-row>strong{font:12px var(--mono);white-space:nowrap}.result-list{margin:22px 0}.share-actions{display:flex;justify-content:center;gap:12px}.secondary{background:none;border:1px solid #b7b5a9;border-radius:3px;color:var(--ink);padding:12px 20px;font-size:12px}.share-preview{text-align:left;white-space:pre-wrap;overflow-wrap:anywhere;background:var(--paper);padding:15px;font:12px/1.7 var(--mono);margin-top:15px}.results-note{font:12px/1.7 var(--serif);color:#7c8279}.ad-space{margin:25px auto 0;max-width:600px;min-height:90px;border:1px dashed #bcbbaa;padding:12px;color:#8c8c7e;font:9px var(--mono);letter-spacing:1px}.ad-space p{font:11px var(--sans);letter-spacing:0}.shared-challenge{padding:15px 0 0;font:12px/1.8 var(--mono);color:#80663f}.shared-challenge span{margin:0 12px}dialog{max-width:500px;width:calc(100% - 32px);border:1px solid #b7b5a9;background:var(--paper);color:var(--ink);border-radius:6px;padding:35px;box-shadow:0 20px 80px #0004}dialog::backdrop{background:#142c3dd9;backdrop-filter:blur(4px)}dialog h2{font:30px var(--serif);margin:10px 30px 20px 0}dialog p,dialog li{font:13px/1.8 var(--sans);color:#6e7b78}dialog li{margin-bottom:9px}.close{position:absolute;right:12px;top:12px}[hidden]{display:none!important}@media(min-height:900px) and (min-width:900px){.expedition,.map-panel{min-height:650px}.date-stamp{margin-top:50px}h1{font-size:25px}}@media(max-width:1000px){header{padding:0 25px}main{padding:0 25px}.expedition{grid-template-columns:290px minmax(0,1fr)}.case-file{padding:24px}h1{font-size:21px}.map-bottom{flex-wrap:wrap;padding:12px 15px}.map-bottom .primary{gap:12px}.map-top{font-size:7px;padding:0 15px}.map-guidance{font-size:7px;letter-spacing:1px}.map-guidance span{margin:0 4px}footer{padding:20px 25px}footer>span:last-child{display:none}.under-map>span{display:none}#selection{font-size:9px}}@media(max-width:680px){header{height:75px;padding:0 18px}.brand{font-size:23px;gap:9px}.brand-icon{font-size:34px}.brand small{font-size:6px;letter-spacing:1.5px}.header-right{gap:9px}#date{display:none}.text-button{font-size:10px}.text-button span{display:none}.icon{width:30px;height:30px}main{padding:0 12px}.edition-bar{height:42px;font-size:8px;letter-spacing:1px}.edition-bar>span:last-child{display:none}.expedition{display:flex;flex-direction:column;min-height:0}.case-file{padding:17px 19px;display:grid;grid-template-columns:1fr 80px;gap:0 12px;border-right:0;border-bottom:1px solid #c8c2b6}.file-top{grid-column:1/-1;font-size:8px}.date-stamp{margin:15px 0 11px;grid-column:1}.date-stamp>span{font-size:34px;letter-spacing:-1px}.date-stamp small{font-size:7px;margin-top:7px}h1{font-size:18px;line-height:1.45;margin:0;grid-column:1/-1}.scoreboard{grid-column:2;grid-row:2;padding:10px 0 0;margin:0;display:block;text-align:right}.scoreboard .small-label{font-size:6px;letter-spacing:.5px}.scoreboard strong{font-size:25px;letter-spacing:-1px}.score-outof{font-size:8px;line-height:1.5}.score-outof span{display:none}#clue-footer{display:none}.progress{grid-column:1/-1;margin-top:15px;gap:5px}.progress i{height:3px}.map-panel{min-height:430px}.map-top{height:41px;font-size:7px}.map-top button span{font-size:8px}.map-tools{top:55px;right:12px}#map{inset:29px 0 75px}.map-guidance{bottom:102px;font-size:6px;letter-spacing:.5px}.map-bottom{min-height:75px;padding:12px;gap:8px}.primary{font-size:11px;padding:12px 14px;min-height:42px}.map-top button{font-size:17px}.under-map{padding:18px 8px 21px}.under-map p{font-size:11px;line-height:1.5}footer{padding:17px 16px;font-size:7px}footer button{font-size:9px;padding:5px 7px}body.revealed .date-stamp{margin:15px 0 11px}body.revealed .date-stamp>span{font-size:34px}body.revealed h1{font-size:14px;margin-bottom:12px}#reveal{grid-column:1/-1;margin:0;padding-top:11px}#reveal h2{font-size:20px}#reveal p{margin:8px 0}#legend{display:none!important}.map-error{left:15px;right:55px;font-size:11px}.map-center{top:calc(50% - 23px)}#results{padding:24px 19px}#results h1{font-size:28px}.big-score{font-size:54px}.result-row{font-size:11px}.share-actions{gap:8px}.share-actions .primary{gap:12px}.secondary{padding:12px;font-size:11px}}

.region-tools{position:absolute;top:63px;left:15px;display:flex;gap:5px;z-index:2}.region-tools button{border:1px solid #aeb5af;background:#f4efe5ef;color:#243e4e;border-radius:3px;padding:7px 9px;font:9px var(--mono)}.region-tools button:hover{background:#dfc28f}@media(max-width:680px){.region-tools{top:47px;left:10px}.region-tools button{padding:6px 7px;font-size:8px}}

/* Satellite map treatment, keeping the history field notes distinct. */
.map-panel,#map{background:#090f12}.map-top{background:#101a1f;color:#a5c0bb}.map-bottom{background:#101a1f}.region-tools button{background:#152124e8;color:#c5d9d2;border:1px solid #73968b66}.region-tools button:hover{background:#29413b}.map-tools button{background:#172725e8;color:#d8e8df}.map-guidance{color:#e1e9df;text-shadow:0 1px 4px #000,0 1px 7px #000}.maplibregl-ctrl-attrib{background:#090f12cf!important}.map-top button{color:#b7d3c8}
/* Pin tip is the click hotspot; retain a drag cursor while panning. */
body:not(.revealed) .maplibregl-canvas-container.maplibregl-interactive,
body:not(.revealed) .maplibregl-canvas-container.maplibregl-interactive .maplibregl-canvas {
  cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='34' viewBox='0 0 28 34'%3E%3Cpath d='M14 2C7.4 2 3 6.8 3 12.5C3 20 14 31 14 31S25 20 25 12.5C25 6.8 20.6 2 14 2Z' fill='%23d8b781' stroke='%23152629' stroke-width='2'/%3E%3Ccircle cx='14' cy='12' r='4' fill='%23f7f1e5' stroke='%23152629' stroke-width='1.5'/%3E%3C/svg%3E") 14 31, crosshair;
}
body:not(.revealed) .maplibregl-canvas-container.maplibregl-interactive:active .maplibregl-canvas { cursor: grabbing; }
/* Readable distance and marker legend at every screen size. */
#selection { font: 500 15px/1.5 var(--sans); color: #edf4f0; }
#legend { font: 500 14px/1.5 var(--sans); color: #edf4f0; }
#legend .guess-dot, #legend .answer-dot { width: 9px; height: 9px; margin-right: 7px; }
#legend i:nth-child(2) { margin-left: 15px; }
.map-bottom { flex-wrap: wrap; gap: 12px 20px; min-height: 86px; }
@media(max-width:680px) {
 #selection { font-size: 14px; }
 #legend { display: inline-block!important; font-size: 13px; }
 #legend[hidden] { display: none!important; }
 body.revealed .map-bottom #selection { flex: 1 0 100%; }
 body.revealed .map-bottom .primary { margin-left: auto; }
 body.revealed .map-bottom { min-height: 120px; }
 body.revealed #map { bottom: 120px; }
 body.revealed .map-guidance { bottom: 151px; }
}

.streak-badge{display:flex;align-items:center;gap:6px;border:1px solid #c9b694;background:#eee2cc;color:#684a24;border-radius:20px;padding:8px 12px;font:12px var(--sans);letter-spacing:0}.streak-strip{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 18px;padding:15px 20px;background:#ede7da;border:1px solid #d9d3c6;border-radius:5px}.streak-strip strong{font:18px var(--serif)}.streak-strip p{font:12px/1.5 var(--sans);color:#626f68;margin:6px 0 0}.streak-week{display:flex;gap:9px}.streak-day{text-align:center;font:9px var(--sans);color:#798179}.streak-day b{display:grid;place-items:center;width:29px;height:29px;border:1px solid #c8c5b6;border-radius:50%;margin-top:5px;font-size:15px}.streak-day.checked b{color:#f7f1e5;background:#426657;border-color:#426657}.streak-day.today b{outline:2px solid #b38c51;outline-offset:2px}.streak-celebration{margin:22px 0;padding:18px;border:1px solid #c7b489;border-radius:5px;background:#f4ecd9;font-size:19px}.streak-celebration p{font:13px/1.6 var(--sans);margin:9px 0}.streak-celebration small{font:11px var(--sans);color:#677369}@media(max-width:680px){.streak-strip{align-items:flex-start;flex-direction:column;padding:14px;gap:12px}.streak-strip strong{font-size:17px}.streak-week{width:100%;justify-content:space-between}.edition-bar{height:52px}.streak-badge{font-size:11px;padding:7px 10px}}

body.welcoming{overflow:hidden}
#welcome{position:fixed;inset:0;z-index:1000;background:var(--paper);overflow:auto;display:flex;align-items:center;justify-content:center;padding:48px 24px;text-align:center;min-height:100dvh}
.welcome-content{width:100%;max-width:560px;margin:auto}
#welcome .welcome-mark{font:72px var(--serif);color:var(--gold);margin-bottom:28px}
#welcome h2{font:46px/1.15 var(--serif);font-weight:normal;margin:22px 0}
#welcome p{font:18px/1.8 var(--sans);color:var(--ink);margin:0 0 36px}
#welcome .primary{width:100%;max-width:300px;margin:auto;justify-content:center;font-size:16px;min-height:54px}
@media(max-width:480px){#welcome{padding:32px 24px}#welcome h2{font-size:36px}#welcome p{font-size:17px}#welcome .welcome-mark{font-size:58px;margin-bottom:22px}}

#welcome .results-eyebrow{font-size:16px;line-height:1.5;letter-spacing:2px;color:#876334}@media(max-width:480px){#welcome .results-eyebrow{font-size:14px;letter-spacing:1.5px}}

#reveal .place{font-size:14px;line-height:1.5}#reveal p{font-size:15px;line-height:1.75}#reveal a{font-size:14px;line-height:1.6}

.share-actions{flex-wrap:wrap}.share-actions button{min-height:44px}

/* Compact mobile clue panel; the map is the main playing surface. */
@media(max-width:680px){
 header{height:52px;padding:0 12px}.brand{font-size:21px}.brand-icon{font-size:27px}.brand small{display:none}.header-right{gap:8px}
 main{padding:0 8px}.edition-bar{height:36px}.edition-bar>span:first-child{font-size:7px}.streak-strip{display:none}
 .expedition{display:grid;grid-template-columns:68px minmax(0,1fr);gap:0;overflow:hidden;min-height:0}
 .case-file{display:contents}
 .file-top{grid-column:2;grid-row:1;padding:7px 10px;background:#d7e5d5;letter-spacing:1px;font-size:10px;color:var(--ink)}
 .file-top>span:first-child{font-size:0}.file-top>span:first-child::after{content:'DAILY CLUE';font-size:9px}
 .date-stamp,#progress{display:none}
 .scoreboard{grid-column:1;grid-row:1 / 3;margin:0;padding:12px 4px;background:#ede7da;border-right:1px solid var(--line);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
 .scoreboard .small-label{font-size:0}.scoreboard .small-label::after{content:'SCORE';font:9px var(--mono);letter-spacing:1px}
 .scoreboard strong{font-size:24px;letter-spacing:-1px;margin-top:5px}.score-outof{font-size:9px;margin-top:4px;padding:0}
 #clue,body.revealed #clue{grid-column:2;grid-row:2;margin:0;padding:9px 11px 12px;background:#ede7da;font:16px/1.4 var(--serif)}
 .map-panel{grid-column:1 / -1;grid-row:3;height:calc(100svh - 230px);min-height:430px}
 .map-top{height:34px;padding:0 10px}.map-top>span{font-size:7px;letter-spacing:.8px}#map{inset:34px 0 88px}
 .region-tools{top:44px;left:10px}.region-tools button{min-height:32px;padding:6px 9px;font-size:10px}
 .map-tools{top:44px;right:10px}.map-tools button{width:36px;height:36px}
 .map-bottom{min-height:88px;padding:8px 10px;display:grid;grid-template-columns:1fr;gap:6px}
 #selection{font-size:13px;line-height:1.3;text-align:center}.map-bottom .primary{width:100%;min-height:42px;justify-content:center;font-size:14px}
 .map-guidance{display:none}.map-center{top:calc(50% - 27px)}
 #reveal{grid-column:1 / -1;grid-row:4;background:#ede7da;padding:18px;margin:0;border-top:1px solid var(--line)}
 #reveal h2{font-size:24px}.under-map{padding:16px 8px}footer{padding:16px 12px}
}

.edition-bar>span:first-child{font-size:12px;letter-spacing:1px}.streak-badge{padding:10px 16px;min-height:40px;gap:7px;white-space:nowrap;flex-shrink:0;font-size:13px}.edition-bar{gap:10px}@media(max-width:680px){.edition-bar{height:56px}.edition-bar>span:first-child{font-size:11px;letter-spacing:.6px}.edition-bar i{margin-right:5px}.streak-badge{padding:10px 13px;font-size:12px;gap:5px;min-height:40px}.map-panel{height:calc(100svh - 250px)}}@media(max-width:360px){.edition-bar>span:first-child{font-size:10px;letter-spacing:.3px}.streak-badge{padding:10px 11px}}
