@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,500;0,600;0,700;1,500;1,600&display=swap');
:root{--paper:#f8f7f1;--green:#233f35;--red:#b54b3c;--muted:#81857b;--line:#dedfd5;--serif:'Playfair Display',Georgia,serif}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--green);font-family:'DM Sans',sans-serif;font-size:14px}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button{border:0;background:none}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:3px solid #b54b3c;outline-offset:5px}button:hover{filter:brightness(.9)}a{color:inherit;text-decoration:none}.topbar{max-width:1600px;margin:auto;padding:23px 4.3%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;gap:10px;align-items:center;font-family:var(--serif);font-weight:700;font-size:29px;line-height:1}.brand-star{font-size:49px;color:var(--red);font-weight:400}.brand-small{display:block;font:9px 'DM Sans',sans-serif;letter-spacing:5.3px;margin-top:7px}.topbar nav{display:flex;gap:32px;align-items:center}.nav{font-size:13px;padding:12px 0;color:#70776e}.nav.active{color:var(--green)}.nav.active:after{content:'';display:block;width:20px;border-bottom:2px solid var(--red);margin:8px auto -10px}.nav span{margin-left:6px}#nav-count{border:1px solid #d9dccf;border-radius:50%;padding:2px 6px;font-size:10px}.edition{font-size:10px;letter-spacing:1.8px}.edition span{color:var(--red);margin-left:13px}main{max-width:1600px;margin:auto;padding:0 4.3%}.intro{display:flex;justify-content:space-between;align-items:center;padding:49px 0 39px;gap:30px}.eyebrow{font-size:10px;letter-spacing:2px;display:flex;align-items:center;gap:9px}.eyebrow>span{width:6px;height:6px;background:var(--red);border-radius:100%}h1{font-family:var(--serif);font-size:clamp(44px,4.5vw,68px);font-weight:500;line-height:1.09;letter-spacing:-2.7px;margin:19px 0 19px;position:relative}h1 em{color:var(--red);font-weight:500}h1 svg{width:53px;height:59px;margin-left:26px;transform:rotate(12deg);stroke:#b54b3c;stroke-width:2}p{line-height:1.8;color:#798075}.intro p{font-size:13px;margin:0}.progress-card{width:300px;border:1px solid #d8dbce;border-radius:5px;padding:23px 25px;background:#f0f1e8;position:relative;margin-top:32px}.progress-top,.progress-bottom{display:flex;justify-content:space-between;font-size:9px;letter-spacing:1.2px}.progress-top>span:last-child{letter-spacing:0;font-size:11px}.progress-copy{display:flex;align-items:center;gap:16px;margin:15px 0 18px}.progress-copy strong{font:51px var(--serif);line-height:1}.progress-copy>div{font-size:12px;line-height:1.9}.progress-copy div span{font-size:9px;color:#848a7b}.progress-track{height:4px;background:#dfe2d4;border-radius:5px;overflow:hidden}#progress-fill{height:100%;width:0;background:var(--green);transition:width .5s}.progress-bottom{letter-spacing:0;margin-top:13px;color:#7b8373}.progress-bottom>span:last-child{color:var(--red)}.explorer{border:1px solid #d8ddcf;border-radius:10px;overflow:hidden}.map-toolbar{display:flex;align-items:center;justify-content:space-between;background:#fffef9;padding:16px 22px;gap:12px}.map-title{font-size:13px;font-weight:600;display:flex;align-items:center;gap:9px}.live-dot{height:7px;width:7px;background:var(--green);border-radius:50%}.map-subtitle{font-size:11px;font-weight:400;color:#8a8d81;margin-left:13px;border-left:1px solid var(--line);padding-left:20px}.toolbar-actions{display:flex;gap:16px;align-items:center}.toolbar-actions button{display:flex;align-items:center;gap:8px;font-size:11px}.switch{width:26px;height:15px;border-radius:12px;background:#d7dace;position:relative}.switch:after{content:'';position:absolute;width:9px;height:9px;border-radius:50%;background:#fff;left:3px;top:3px}#mode[aria-pressed=true] .switch{background:var(--red)}#mode[aria-pressed=true] .switch:after{left:14px}#list-toggle{border-left:1px solid var(--line);padding-left:17px;font-size:15px}#list-toggle span{font-size:11px}.map-stage{position:relative;height:620px;overflow:hidden;background:#eaeadd;touch-action:none}#city-map{width:100%;height:100%;display:block;cursor:grab;user-select:none}#city-map.dragging{cursor:grabbing}.map-caption{position:absolute;left:29px;top:27px;pointer-events:none}.map-caption>span{font-size:10px;letter-spacing:2.5px}.map-caption small{display:block;font-family:var(--serif);font-size:14px;font-style:italic;margin-top:6px;color:#7e8979}.compass{position:absolute;right:28px;top:24px;text-align:center;font-size:9px}.compass div{font-size:45px;font-weight:400;line-height:1.2}.map-controls{position:absolute;right:20px;bottom:75px;display:flex;flex-direction:column;border-radius:6px;overflow:hidden;box-shadow:0 2px 9px #233f3514;background:#fffef6}.map-controls button{width:35px;height:35px;font-size:22px;border-bottom:1px solid #e7e7dc}.map-controls button:last-child{border:0}.map-legend{position:absolute;left:24px;bottom:21px;display:flex;gap:20px;background:#fffdf4eb;padding:12px 17px;border-radius:4px;font-size:9px}.map-legend>span{display:flex;align-items:center;gap:7px}.legend-dot{height:8px;width:8px;display:inline-block;border-radius:50%}.available{background:var(--red)}.done{background:var(--green)}.locked{background:#a9b09c}.map-credit{position:absolute;right:18px;bottom:9px;font-size:8px;color:#526c63}.map-footer{display:flex;justify-content:space-between;padding:16px 22px;background:#fffef9;font-size:10px;color:#858a7e}.map-footer strong{font-weight:400;color:var(--green)}.map-footer>span:first-child{display:flex;gap:8px}.red{color:var(--red);margin-left:8px}.today-card{position:absolute;left:24px;bottom:87px;width:262px;background:#fffdf6f5;border:1px solid #e2dfcf;padding:20px 21px;border-radius:7px;box-shadow:0 6px 20px #233f350b}.tiny-label{font-size:9px;letter-spacing:1.8px;color:var(--red)}.today-card h2{font:23px/1.2 var(--serif);margin:10px 0}.today-card p{font-size:10px;margin:0 0 16px}.today-card button{width:100%;background:var(--green);color:#fffef6;border-radius:4px;text-align:left;padding:12px;font-size:10px;display:flex;justify-content:space-between}.below{padding:49px 0 44px;display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:45px;border-bottom:1px solid var(--line)}.below h2{font:29px/1.3 var(--serif);margin:12px 0 0}.below h2 em{font-weight:400;color:#869079}.step-number{font:italic 23px var(--serif);color:#abaf99}.below h3{font-weight:500;font-size:13px;margin:13px 0 6px}.below p{font-size:11px;max-width:220px;margin:0}footer{display:flex;justify-content:space-between;align-items:center;padding:23px 0 30px;color:#94988c;font-size:9px}.footer-logo{font-family:var(--serif);font-size:16px;color:var(--green)}.footer-logo span{color:var(--red);padding-left:8px}footer button{font-size:9px}.map-pin{cursor:pointer;outline:none}.map-pin .pin-disc{transition:fill .2s,stroke-width .2s}.map-pin:hover .pin-disc,.map-pin:focus .pin-disc{stroke:#fff;stroke-width:5;fill:#b54b3c}.map-pin text{font:600 12px 'DM Sans',sans-serif;fill:white;text-anchor:middle;pointer-events:none}.map-pin .pin-shadow{fill:#384d3822}.map-pin.locked-pin .pin-disc{fill:#919c81}.map-pin.open-pin .pin-disc{fill:#b54b3c}.map-pin.complete-pin .pin-disc{fill:#294d3e}.map-pin .pin-disc{stroke:#fff9e7;stroke-width:2}.map-label{font:italic 13px Georgia,serif;fill:#58654e;paint-order:stroke;stroke:#eeedde;stroke-width:4px;stroke-linejoin:round}.street-label{font:8px 'DM Sans',sans-serif;fill:#929783;letter-spacing:2px}.place-list{position:absolute;inset:0;background:#f8f7f1f5;padding:24px;overflow:auto;touch-action:pan-y;z-index:5;display:grid;grid-template-columns:repeat(3,1fr);gap:12px;align-content:start}.place-list[hidden]{display:none}.list-item{display:flex;text-align:left;gap:12px;align-items:center;padding:16px;border:1px solid #dcded0;border-radius:6px;background:#fffdf6}.list-item>span:first-child{background:#e8ebdf;border-radius:50%;padding:9px;font-family:var(--serif)}.list-item strong{display:block;font-size:12px}.list-item small{display:block;font-size:10px;color:#858c7a;margin-top:4px}dialog{width:min(540px,calc(100% - 32px));border:1px solid #d8dbcc;border-radius:14px;padding:0;background:#faf9f2;color:var(--green);max-height:90dvh;box-shadow:0 25px 100px #132d3540}dialog::backdrop{background:#152f2dc9;backdrop-filter:blur(5px)}.close-dialog{position:absolute;top:12px;right:12px;width:32px;height:32px;border-radius:50%;background:#faf9f2db;z-index:2;font-size:24px}.modal-hero{text-align:center;padding:30px 25px 20px;background:#e6ebdc;position:relative;overflow:hidden}.modal-hero .big-icon{font-size:52px;line-height:1.3;display:block}.modal-hero .tiny-label{display:block;margin-top:10px}.modal-body{padding:26px 30px 30px}.modal-body h2{font:33px/1.15 var(--serif);margin:0 0 10px}.modal-body p{font-size:13px}.location-tag{font-size:10px;color:#7c8774;margin:12px 0 20px}.clue-box{background:#eceee2;border-left:2px solid #a4ad8e;padding:15px 17px;margin:19px 0}.clue-box p{margin:5px 0 0;color:var(--green)}.primary{background:var(--green);color:#fff;padding:13px 18px;border-radius:5px;font-size:12px}.secondary{border:1px solid #cdd3c1;padding:11px 15px;border-radius:5px;font-size:12px}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}label.answer-label{display:block;font-size:11px;margin:20px 0 8px}.answer-row{display:flex;gap:8px}.answer-row input{min-width:0;flex:1;border:1px solid #cfd5c6;border-radius:5px;padding:12px;background:#fffef9;color:var(--green);font:13px 'DM Sans',sans-serif}.answer-row button{white-space:nowrap}.answer-feedback{font-size:12px!important;margin:10px 0 0;color:var(--red)}.stamp-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:22px 0}.stamp{aspect-ratio:1;border:1px dashed #c6cdbc;border-radius:50%;display:grid;place-items:center;color:#9aa38e;font:20px var(--serif)}.stamp.earned{background:#e0e7d8;color:var(--green);border:1px solid #a7b49b}.demo-note{background:#f5e7d8;padding:10px 13px;font-size:11px;color:#946444;border-radius:5px}#notification{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:var(--green);color:white;padding:13px 22px;border-radius:6px;z-index:20;box-shadow:0 5px 25px #0002;font-size:12px;display:none}#notification.show{display:block}#map-toast{position:absolute;top:20px;left:50%;transform:translateX(-50%);font-size:10px;background:#fff8e6;padding:8px 13px;border-radius:4px;pointer-events:none;white-space:nowrap;display:none}#map-toast.show{display:block}.source-links{display:grid;gap:12px;font-size:12px}.source-links a{text-decoration:underline}.how-list{padding-left:20px;font-size:13px;line-height:1.8}.how-list li{margin:14px 0}@media(min-width:1550px){.map-stage{height:700px}}@media(max-width:1000px){.map-subtitle{display:none}.map-stage{height:580px}.intro{padding-top:35px}.below{gap:25px;grid-template-columns:1.3fr 1fr 1fr 1fr}.map-footer>span:last-child{display:none}.topbar nav{gap:20px}.progress-card{width:270px}.map-caption{top:20px;left:20px}}@media(max-width:700px){.topbar{padding:17px 5%}.brand{font-size:23px}.brand-star{font-size:38px}.brand-small{font-size:7px;letter-spacing:4px}.edition{display:none}.topbar nav{gap:16px}.nav{font-size:11px}.nav.active{display:none}.intro{display:block;padding:30px 0 25px}.eyebrow{font-size:8px;letter-spacing:1.1px}h1{font-size:48px;letter-spacing:-2px}h1 svg{width:38px;margin-left:16px}.intro p{font-size:11px}.progress-card{width:100%;margin-top:25px;padding:14px 18px}.progress-copy{margin:8px 0;gap:12px}.progress-copy strong{font-size:35px}.progress-copy>div{font-size:11px}.progress-copy div span{display:none}.progress-bottom{margin-top:8px}.progress-top{font-size:8px}.map-toolbar{padding:13px 12px}.map-title{font-size:11px;gap:6px}.toolbar-actions{gap:8px}.toolbar-actions button{font-size:9px;gap:5px}#list-toggle{padding-left:8px}#list-toggle span{display:none}.map-stage{height:660px}.map-caption{left:15px;top:16px}.map-caption>span{font-size:8px}.map-caption small{font-size:12px}.compass{right:15px;top:15px}.today-card{left:15px;bottom:80px;width:220px;padding:16px}.today-card h2{font-size:21px}.map-legend{left:12px;bottom:27px;gap:13px;font-size:8px;padding:10px}.map-controls{right:12px;bottom:88px}.map-footer{padding:13px;font-size:9px}.map-footer>span:first-child{display:block;line-height:1.7}.below{grid-template-columns:1fr 1fr;gap:25px;padding:30px 0}.below h2{font-size:24px}.below p{font-size:10px}footer{gap:15px;flex-wrap:wrap}footer>span{display:none}.place-list{grid-template-columns:1fr;padding:15px}.modal-body{padding:23px}.modal-body h2{font-size:29px}.answer-row{flex-wrap:wrap}.answer-row input{width:100%}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

@media(max-width:700px){h1 svg{display:none}#map-toast{top:58px;font-size:8px}.map-stage{height:600px}}

@media(max-width:1024px){
 .map-controls button{width:44px;height:44px}
 .toolbar-actions button,.nav{min-height:44px}
 .close-dialog{width:44px;height:44px}
 .answer-row input{font-size:16px}
 .primary,.secondary{min-height:44px}
}
@media(max-width:700px){
 .topbar{flex-wrap:wrap;gap:6px 12px}.topbar nav{gap:14px}
 .map-stage{height:clamp(380px,62svh,600px)}
 .answer-row input{flex-basis:100%}.answer-row button{width:100%}
}

/* Extended V1 atlas, with the original paper palette. */
.art-house{stroke:#a39f80;stroke-width:1.5;stroke-linejoin:round}.art-house .window{fill:#7d8b78;stroke:none}
.map-neighborhood{font:600 13px 'DM Sans',sans-serif;fill:#65745b;paint-order:stroke;stroke:#f2f0e3;stroke-width:3px;stroke-linejoin:round}.street-name{font:10px 'DM Sans',sans-serif;fill:#818b74}
.zone-toolbar{display:flex;align-items:center;gap:15px;flex-wrap:wrap;padding:8px 20px;background:#f3f3e8;border-top:1px solid var(--line);font-size:12px}.zone-toolbar select{font:inherit;font-size:16px;min-height:44px;max-width:100%;border:1px solid #d8dbce;border-radius:5px;padding:8px;background:#fffef9;color:var(--green)}.zone-toolbar>span{margin-left:auto;font-size:11px;color:#798075}
@media(max-width:700px){.zone-toolbar{padding:8px 12px;gap:6px}.zone-toolbar label{font-size:11px}.zone-toolbar>span{display:none}.zone-toolbar select{flex:1;min-width:0}.map-caption{display:none}}

.today-card{position:static;width:auto;margin:0;padding:18px 24px;border:0;border-top:1px solid var(--line);border-radius:0;box-shadow:none;display:grid;grid-template-columns:1fr auto;gap:6px 24px}.today-card h2{margin:0;grid-column:1}.today-card p{margin:0;grid-column:1}.today-card button{grid-column:2;grid-row:1/4;align-self:center;width:240px;min-height:44px}.today-card .tiny-label{grid-column:1}@media(max-width:700px){.today-card{padding:16px;display:block}.today-card h2{margin:8px 0}.today-card p{margin-bottom:12px}.today-card button{width:100%}}
