@import url('https://fonts.googleapis.com/css2?family=Fraunces:wght@500;600;700&family=Nunito:wght@400;600;700;800&display=swap');
:root{--navy:#071a3d;--gold:#f2b82b;--teal:#20b8d0;--ivory:#f8f3e7;--paper:#efe4cc;--ink:#1a2b41}*{box-sizing:border-box}body{margin:0;background:#f5efdf;color:var(--ink);font:15px/1.55 Nunito,system-ui,sans-serif}button,input{font:inherit}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid #008ea9;outline-offset:3px}[hidden]{display:none!important}.skip{position:absolute;top:-90px;left:10px;background:white;padding:10px;z-index:20}.skip:focus{top:10px}
.header{background:var(--navy);color:var(--ivory);min-height:83px;display:flex;justify-content:space-between;gap:15px;align-items:center;padding:12px clamp(16px,4vw,55px)}.logo{display:flex;align-items:center;gap:12px;color:white;text-decoration:none;font-weight:800;font-size:10px;letter-spacing:.2em}.logo img{height:43px;width:43px;border-radius:50%}.logo small{display:block;font-size:9px;color:var(--gold)}.header-links{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.header-links a{color:#f9e0a7;font-size:13px;font-weight:800;padding:8px 10px}.header-links a.hub-link{color:var(--navy);background:var(--gold);border-radius:40px;padding:9px 15px;text-decoration:none}.header-links a.hub-link:hover{background:#ffd36b}main{max-width:1380px;margin:auto;padding:32px clamp(16px,3vw,42px) 70px}.intro{display:flex;gap:28px;justify-content:space-between;align-items:end}.intro>div:first-child{max-width:690px}.eyebrow{font-size:11px;letter-spacing:.18em;font-weight:800;color:#946612;margin:0 0 7px}.intro h1{font:600 clamp(37px,5vw,65px) Fraunces,Georgia,serif;line-height:1.15;margin:0}.intro h1 em{font-style:normal;color:#b27d17}.intro p:last-child{color:#43556b;font-size:17px;margin:12px 0 0}.modes{display:flex;gap:9px;flex-wrap:wrap}.modes button{border:1px solid #b4ad9d;border-radius:30px;background:#fff;padding:13px 16px;font-size:13px;font-weight:800;white-space:nowrap}.modes button[aria-pressed=true]{background:var(--navy);color:white;border-color:var(--navy)}.notice{margin:24px 0 20px;background:#fff8e7;border-left:5px solid var(--gold);border-radius:8px;padding:14px 20px}.notice b{font:600 21px Fraunces,Georgia,serif}.notice p{margin:4px 0;color:#44546b}.notice a{color:#005d6f;font-weight:800}
.map-section{border:6px solid #fff8e9;border-radius:20px;overflow:hidden;box-shadow:0 12px 35px #172c3e22;background:var(--paper)}.map-board{position:relative;width:100%;min-height:620px;aspect-ratio:1200/780;background:radial-gradient(ellipse at 20% 18%,#e9d5a8a6,transparent 38%),radial-gradient(ellipse at 79% 81%,#d7e6b1a8,transparent 43%),repeating-linear-gradient(31deg,#eee2c7 0,#eee2c7 4px,#f1e6cd 5px,#f1e6cd 10px);overflow:hidden}.map-board:before{content:'';position:absolute;inset:17px;border:3px dashed #b6956490;border-radius:20px;pointer-events:none}.map-gold-thread{position:absolute;inset:0;pointer-events:none}.map-gold-thread svg{width:100%;height:100%}.map-gold-thread path{fill:none;stroke:#bd976d;stroke-width:38;stroke-linecap:round;opacity:.48;stroke-dasharray:2 1}.map-gold-thread path.side{stroke:#869d79;stroke-width:18;opacity:.33;stroke-dasharray:4 5}.map-stars{position:absolute;inset:0;color:#c69a47;font-size:70px;opacity:.13;display:flex;align-items:center;justify-content:space-around;pointer-events:none}.map-stars span{margin-top:200px}.north{position:absolute;right:27px;top:24px;text-align:center;font:800 16px/1 Nunito;color:#896932}.map-title{position:absolute;left:34px;bottom:28px;font:600 27px/1 Fraunces,Georgia,serif;color:#8a6935;opacity:.83}.map-title small{display:block;font:700 11px Nunito;letter-spacing:.14em;margin-top:10px;text-transform:uppercase}

.intro-actions{display:flex;flex-direction:column;align-items:flex-end;gap:12px}
.surprise{border:0;border-radius:40px;background:var(--gold);color:var(--navy);font:800 19px Nunito,sans-serif;padding:15px 26px;box-shadow:0 5px 0 #b98410,0 10px 22px #b9841040;display:inline-flex;gap:10px;align-items:center;min-height:56px}
.surprise:hover{background:#ffcd52}.surprise:active{transform:translateY(3px);box-shadow:0 2px 0 #b98410}
.surprise .dice{font-size:26px;display:inline-block}.surprise.rolling .dice{animation:roll .45s linear infinite}
@keyframes roll{to{transform:rotate(360deg)}}
.notice a{display:inline-block;margin-top:6px;background:var(--navy);color:#fff;text-decoration:none;padding:9px 15px;border-radius:30px}
.map-section{position:relative}
.pin{position:absolute;transform:translate(-50%,-50%);width:112px;display:flex;align-items:center;flex-direction:column;gap:3px;color:var(--ink);background:none;border:0;padding:4px 1px;z-index:1}
.pin-icon{position:relative;width:68px;height:68px;display:block;overflow:hidden;box-shadow:0 5px 11px #4d35194c;border:4px solid #fff8eb;border-radius:50%;background:#e1cfb1;transition:transform .15s}
.pin-icon img{width:100%;height:100%;object-fit:cover}
.pin.hub .pin-icon{width:80px;height:80px;border-color:var(--gold);box-shadow:0 0 0 3px #fff8eb,0 6px 16px #b17f2b80}
.pin-check,.pin-star{position:absolute;top:0;width:25px;height:25px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:13px;border:2px solid #fff}
.pin-check{right:14px;background:#1e7f4f;color:#fff}.pin-star{left:12px;background:var(--navy);color:var(--gold)}
.pin-label{background:#fffaf0ee;border:1px solid #bba174ad;border-radius:30px;padding:3px 9px;font-size:11.5px;font-weight:800;white-space:nowrap;box-shadow:0 3px 6px #0001}
.pin.hub .pin-label{background:var(--navy);color:var(--gold);border-color:var(--navy)}
.pin:hover .pin-icon,.pin.selected .pin-icon,.pin.flash .pin-icon{border-color:var(--gold);box-shadow:0 2px 22px #f2b82bf0;transform:scale(1.12)}
.pin.flash .pin-label{background:var(--gold);color:var(--navy)}
.pin:focus-visible{outline:3px solid #007b91;border-radius:10px}
.pop{position:absolute;left:50%;transform:translateX(-50%);width:min(560px,calc(100% - 28px));background:#fffaf0;border:3px solid var(--gold);border-radius:18px;box-shadow:0 18px 50px #071a3d55;display:grid;grid-template-columns:200px 1fr;overflow:hidden;z-index:5}
.pop.bottom{bottom:16px}.pop.top{top:16px}
.pop img{width:100%;height:100%;min-height:190px;object-fit:cover}
.pop-body{padding:16px 18px}.pop h2{font:600 27px/1.1 Fraunces,Georgia,serif;margin:0 0 4px}.pop .eyebrow{margin:0 0 4px}
.pop-guide{margin:0 0 6px;font-weight:800;color:#946612;font-size:13px}.pop-body p{margin:0 0 12px}
.pop-actions{display:flex;gap:9px;flex-wrap:wrap}
.pop-close{position:absolute;right:8px;top:8px;width:36px;height:36px;border-radius:50%;border:0;background:#071a3d1a;font-size:16px;font-weight:800;color:var(--navy)}
.enter{display:inline-block;text-align:center;border-radius:40px;background:var(--navy);color:#fff;text-decoration:none;font-weight:800;font-size:17px;padding:12px 22px;min-height:48px}
.enter:hover{background:#12305f}
.again{border:2px solid var(--navy);background:#fff;border-radius:40px;padding:10px 16px;font-weight:800;color:var(--navy);min-height:48px}
.directory{margin-top:34px}.directory h2{font:600 32px Fraunces,Georgia,serif;margin:0}
.directory-head{display:flex;justify-content:space-between;gap:10px;align-items:end;margin-bottom:16px}.directory-head label{font-size:12px;font-weight:800}
.directory-head input{display:block;border:1px solid #b7aca1;border-radius:7px;background:#fff;padding:10px;margin-top:5px;max-width:190px}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}
.card{position:relative;border:1px solid #d4c19d;border-radius:14px;overflow:hidden;background:#fffaf0;display:flex;flex-direction:column;text-decoration:none;color:var(--ink)}
.card img{width:100%;height:115px;object-fit:cover}.card-body{padding:11px 12px;display:block}
.card strong{font:600 18px Fraunces,Georgia,serif;display:block;line-height:1.2}.card small{display:block;margin:4px 0 0;color:#637083;font-size:12px}
.card.hub{border:2px solid var(--gold);background:#fff4d6}.card.hub small{color:#8a5c00;font-weight:800}
.card-check{position:absolute;top:8px;right:8px;background:#1e7f4f;color:#fff;border-radius:20px;padding:2px 9px;font-size:11px;font-weight:800}
.card:hover{border-color:#bc8a23;box-shadow:0 3px 14px #b17f2b44;transform:translateY(-2px)}
footer{text-align:center;font-size:13px;background:var(--navy);color:white;padding:25px}footer a{color:var(--gold)}
@media(max-width:900px){.intro{flex-wrap:wrap}.intro-actions{align-items:flex-start;width:100%}}
@media(max-width:700px){
 .header{flex-wrap:wrap}.header-links{width:100%;justify-content:space-between;gap:6px}.header-links a{font-size:12px;padding:7px 9px}.header-links a.hub-link{padding:8px 11px}
 .intro{display:block}.surprise{width:100%;justify-content:center}
 .map-board{aspect-ratio:auto;height:700px;min-height:0}
 .map-board:before{inset:8px}.map-title,.north,.map-stars{display:none}
 .pin{width:24vw;gap:2px}.pin-icon{width:52px;height:52px;border-width:3px}.pin.hub .pin-icon{width:60px;height:60px}
 .pin-label{font-size:10px;padding:2px 6px;white-space:normal;text-align:center;line-height:1.15;max-width:23vw}
 .pin-check,.pin-star{width:20px;height:20px;font-size:11px}.pin-check{right:4px}.pin-star{left:4px}
 .pop{grid-template-columns:1fr;width:calc(100% - 20px)}.pop img{min-height:0;height:130px}.pop h2{font-size:23px}
 .pop .enter{flex:1}
 .cards{grid-template-columns:repeat(2,minmax(0,1fr))}.card img{height:100px}
}
@media(prefers-reduced-motion:reduce){*,*:after,*:before{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
