body{overflow:hidden}.viewport{position:fixed;inset:0;overflow:hidden;cursor:grab;background:var(--bg-deep);touch-action:none;-webkit-tap-highlight-color:transparent}.viewport:active{cursor:grabbing}.map{position:absolute;left:50%;top:50%;width:1600px;height:1000px;transform:translate(-50%,-50%) scale(1);transition:transform .6s cubic-bezier(.3,.7,.2,1)}.map svg{width:1600px;height:1000px;display:block}.sea{fill:var(--bg-deep)}.grat line{stroke:#7896be0f;stroke-width:1}.rhumb line{stroke:#e8b84b0e;stroke-width:1}.sound text{font-family:var(--mono);font-size:11px;fill:#7896be38}.coasthalo{fill:none;stroke:#e8b84b2e;stroke-width:7;filter:url(#coastglow)}.bands path{stroke:none}.iso{fill:none;stroke:#e8b84b21;stroke-width:.8}.iso.idx{stroke:#e8b84b42;stroke-width:1}.coast{fill:none;stroke:var(--gold);stroke-width:1.5;stroke-linejoin:round}.rivers path{fill:none;stroke:#639ce88c;stroke-linecap:round;stroke-linejoin:round}.feat{font-family:var(--serif);font-style:italic;font-size:15px;fill:var(--gold);opacity:.62;text-anchor:middle;letter-spacing:.04em}.rsub{font-family:var(--mono);font-size:10px;letter-spacing:.3em;fill:var(--gold);opacity:.7;text-anchor:middle}.rlabel{font-family:var(--serif);font-size:27px;fill:var(--ink);opacity:.48;text-anchor:middle;letter-spacing:.03em}.road{fill:none;stroke:#e7e8ec29;stroke-width:1;stroke-dasharray:1.5 4.5}.road.close{stroke:#e8b84b57;stroke-width:1.2;stroke-dasharray:2 3.5}.place{cursor:pointer}.leader{stroke:#e8b84b80;stroke-width:.8;stroke-dasharray:1.5 2.5}.city .ring{fill:var(--land);stroke:var(--gold);stroke-width:1.6}.city .core{fill:var(--gold)}.city .playmark{fill:#081424}.city .nm{font-family:var(--serif);font-size:19px;fill:var(--ink)}.city .dm{font-family:var(--mono);font-size:8px;letter-spacing:.14em;text-transform:uppercase;fill:var(--gold);opacity:.9}.city .est{font-family:var(--mono);font-size:8.5px;letter-spacing:.12em;text-transform:uppercase;fill:var(--play-a);opacity:0;transition:opacity .18s}.city:hover .ring,.city:focus-visible .ring{stroke:url(#rg);stroke-width:2.6}.city:hover .est,.city:focus-visible .est{opacity:1}.city .nm,.city .dm,.city .est,.town .tnm,.feat{paint-order:stroke;stroke:#060f1dd9;stroke-width:3px;stroke-linejoin:round}.town .ring{fill:none;stroke:var(--muted);stroke-width:1.2}.town .core{fill:var(--ink-soft)}.town .tnm{font-family:var(--sans);font-weight:300;font-size:12.5px;fill:var(--ink-soft)}.town:hover .tnm{fill:var(--ink)}.town:hover .ring{stroke:var(--gold)}.place.dim{opacity:.34;transition:opacity .5s}.place.lit .ring{stroke:var(--gold-light);stroke-width:2.6;filter:drop-shadow(0 0 9px rgba(232,184,75,.6))}.place.lit .tnm,.place.lit .nm{fill:var(--ink)}.route{fill:none;stroke:url(#rg);stroke-width:3;stroke-linecap:round;pathLength:1;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.1s ease}.route.draw{stroke-dashoffset:0}.stop{fill:var(--gold);stroke:#081424;stroke-width:1}.stopn{font-family:var(--mono);font-size:12px;fill:#081424;font-weight:600}.rose .rring{fill:none;stroke:#e8b84b66;stroke-width:1}.rose .rstar{fill:#e8b84b24;stroke:var(--gold);stroke-width:1;stroke-linejoin:round}.rose .rn{font-family:var(--mono);font-size:12px;fill:var(--gold);letter-spacing:.1em}.neat rect{fill:none;stroke:#e8b84b80;stroke-width:1}.neat line{stroke:#e8b84b73;stroke-width:1}.cartouche{position:fixed;top:34px;left:42px;z-index:20;max-width:366px;background:linear-gradient(160deg,#002766d1,#060f1dc7);border:1px solid rgba(232,184,75,.4);border-radius:4px;padding:22px 26px;backdrop-filter:blur(7px);box-shadow:0 0 0 1px #060f1d99,0 18px 50px #00000080}.cartouche:before{content:"";position:absolute;inset:5px;border:1px solid rgba(232,184,75,.18);border-radius:2px;pointer-events:none}.brand{font-family:var(--serif);font-size:24px;margin-bottom:7px}.d{color:var(--gold)}.eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:none;color:var(--gold);margin-bottom:12px}.cartouche h1{font-family:var(--serif);font-weight:400;font-size:32px;line-height:1.06}.cartouche h1 em{font-style:italic;color:var(--gold)}.sub{margin-top:11px;color:var(--ink-soft);font-size:13.5px;line-height:1.55}.rule{height:1px;background:linear-gradient(90deg,rgba(232,184,75,.5),transparent);margin:18px 0 14px}.cart-rule{height:1px;background:linear-gradient(90deg,rgba(232,184,75,.4),transparent);margin:16px 0 12px}.way-h{font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:10px}.lenses{display:flex;flex-wrap:wrap;gap:7px;scroll-snap-type:x proximity}.lens{flex:none;white-space:nowrap;scroll-snap-align:start}.lenses.fade-r{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 34px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 34px),transparent)}.lenses.fade-l{-webkit-mask-image:linear-gradient(90deg,transparent,#000 34px);mask-image:linear-gradient(90deg,transparent,#000 34px)}.lenses.fade-l.fade-r{-webkit-mask-image:linear-gradient(90deg,transparent,#000 34px,#000 calc(100% - 34px),transparent);mask-image:linear-gradient(90deg,transparent,#000 34px,#000 calc(100% - 34px),transparent)}.lens{font-family:var(--mono);font-size:10px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft);background:#060f1d80;padding:9px 12px;border-radius:24px;cursor:pointer;transition:.2s;box-shadow:inset 0 0 0 1px var(--rule)}.lens:hover{color:var(--ink);box-shadow:inset 0 0 0 1px #e8b84b80}.lens.on{color:#081424;background:linear-gradient(90deg,var(--play-a),var(--play-b));box-shadow:none;font-weight:500}.framing{margin-top:14px;font-family:var(--serif);font-style:italic;font-size:15.5px;color:var(--gold-light);line-height:1.45;min-height:1.45em}.lens-status{display:none;margin-top:9px;font-family:var(--mono);font-size:9.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-soft)}.lens-status.on{display:flex;align-items:baseline;gap:10px}.ls-showing{flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ls-clear{flex:none}.ls-showing em{font-style:normal;color:var(--ink)}.ls-clear{font:inherit;letter-spacing:inherit;text-transform:inherit;color:var(--gold);background:none;border:none;padding:0;cursor:pointer;text-decoration:underline;text-underline-offset:3px;text-decoration-color:#e8b84b73}.ls-clear:hover{color:var(--gold-light);text-decoration-color:var(--gold)}.signin{position:fixed;top:34px;right:42px;z-index:20;font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);text-decoration:none;border:1px solid var(--rule);padding:9px 15px;border-radius:2px;background:#060f1d99}.signin:hover{border-color:#e8b84b80;color:var(--ink)}.legend{position:fixed;bottom:26px;left:42px;z-index:20;width:256px;background:linear-gradient(160deg,#002766bd,#060f1dc7);border:1px solid rgba(232,184,75,.28);border-radius:4px;padding:15px 17px;backdrop-filter:blur(7px)}.leg-h{font-family:var(--mono);font-size:9.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);margin-bottom:11px}.leg-row{display:flex;align-items:center;gap:9px;margin-bottom:8px}.swatch{width:18px;height:18px;flex:none}.leg-row span{font-family:var(--sans);font-weight:300;font-size:12px;color:var(--ink-soft)}.scale{margin-top:12px;padding-top:11px;border-top:1px solid var(--rule)}.scalebar{display:flex;height:6px}.scalebar span{flex:1;border:1px solid rgba(232,184,75,.55)}.scalebar span:nth-child(odd){background:#e8b84b8c}.scale-l{display:flex;justify-content:space-between;margin-top:4px;font-family:var(--mono);font-size:8.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft)}.plate{margin-top:11px;font-family:var(--mono);font-size:8.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft)}.whatsnew{position:fixed;top:88px;right:42px;z-index:20;width:264px;background:linear-gradient(160deg,#002766bd,#060f1dc7);border:1px solid rgba(232,184,75,.28);border-radius:4px;padding:15px 17px 11px;backdrop-filter:blur(7px)}.wn-row{display:block;text-decoration:none;padding:8px 0;border-top:1px solid var(--rule)}.leg-h+.wn-row{border-top:none;padding-top:0}.wn-date{display:block;font-family:var(--mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft)}.wn-title{display:block;font-family:var(--serif);font-size:14.5px;line-height:1.25;color:var(--ink);margin-top:3px;transition:color .15s}.wn-row:hover .wn-title,.wn-row:focus-visible .wn-title{color:var(--gold-light)}.mob-new{display:none}.town.fresh .ring{stroke:var(--gold);animation:freshpulse 2.6s ease-in-out infinite}.town.fresh .core{fill:var(--gold)}@keyframes freshpulse{0%,to{stroke-opacity:.95}50%{stroke-opacity:.35}}.hint{position:fixed;bottom:28px;left:50%;transform:translate(-50%);z-index:20;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.hint .h-touch{display:none}@media(hover:none)and (pointer:coarse){.hint .h-mouse{display:none}.hint .h-touch{display:inline}}.sheet-toggle,.mob-key{display:none}@media(max-width:820px),(max-height:500px)and (pointer:coarse){.cartouche{display:flex;flex-direction:column;inset:auto 0 0;max-width:none;border-left:none;border-right:none;border-bottom:none;border-radius:14px 14px 0 0;padding:14px 18px calc(14px + env(safe-area-inset-bottom));max-height:76dvh;overflow-y:auto;overscroll-behavior:contain}.cartouche>*{flex-shrink:0}.cartouche:before{inset:5px 5px 0;border-bottom:none;border-radius:2px 2px 0 0}.brand{order:1;font-size:20px;margin-bottom:2px}.eyebrow{order:2;margin-bottom:8px}.cartouche h1{order:3;font-size:23px;padding-right:48px}.rule{display:none}.way-h{order:4;margin:12px 0 8px}.lenses{order:5;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0 -18px;padding:2px 18px}.lenses::-webkit-scrollbar{display:none}.lens{flex:none;padding:10px 13px}.framing{order:6;min-height:0;margin-top:10px;font-size:14px}.framing:empty{display:none}.lens-status{order:6}.sub{order:7;font-size:13px}.cart-rule{order:8}.cartouche .subscribe{order:9}.mob-new{display:block;order:10;margin-top:16px;padding-top:12px;border-top:1px solid var(--rule)}.mob-key{display:block;order:11;margin-top:16px;padding-top:12px;border-top:1px solid var(--rule)}.whatsnew{display:none}.cartouche:not(.open) :is(.sub,.cart-rule,.subscribe,.mob-new,.mob-key){display:none}.sheet-toggle{display:flex;align-items:center;justify-content:center;position:absolute;top:12px;right:14px;width:40px;height:40px;background:#060f1d8c;border:1px solid rgba(232,184,75,.35);border-radius:50%;color:var(--gold);cursor:pointer;z-index:2}.sheet-toggle svg{transition:transform .3s ease}.cartouche.open .sheet-toggle svg{transform:rotate(180deg)}.legend{display:none}.signin{top:calc(14px + env(safe-area-inset-top));right:14px;padding:8px 12px}.hint{top:calc(18px + env(safe-area-inset-top));bottom:auto;left:18px;transform:none;letter-spacing:.1em}}@media(min-width:821px)and (pointer:fine){.cartouche{padding-bottom:0;display:flex;flex-direction:column}.cartouche>*{flex-shrink:0}.brand{order:1}.eyebrow{order:2}.cartouche h1{order:3}.way-h{order:4;margin-top:16px}.lenses{order:5;flex-wrap:nowrap;overflow-x:auto;margin:0 -26px;padding:2px 26px 8px;scrollbar-width:thin;scrollbar-color:rgba(232,184,75,.35) transparent}.framing{order:6}.lens-status{order:7}.sub{order:8;margin-top:16px}.rule{display:none}.cartouche .subscribe{order:9;position:sticky;bottom:0;margin:14px -26px 0;padding:12px 26px 18px;background:#031028fc;backdrop-filter:blur(6px);border-top:1px solid rgba(232,184,75,.3);border-radius:0 0 4px 4px}.cart-rule,.cartouche .subscribe .sub-copy{display:none}}@media(min-width:821px)and (max-height:820px)and (pointer:fine){.cartouche h1{font-size:30px}.eyebrow{display:none}.way-h{margin-top:10px}.lenses{padding-bottom:4px}.framing{margin-top:8px;font-size:13px}.lens-status{margin-top:7px}.cartouche .subscribe .sub-head{display:none}.cartouche .subscribe .sub-status{min-height:0;margin-top:0}}@media(min-width:821px)and (max-height:960px)and (pointer:fine){.cartouche{max-height:calc(100dvh - 300px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgba(232,184,75,.35) transparent}}@media(prefers-reduced-motion:reduce){.map,.sheet-toggle svg,.place.dim,.route{transition:none}.town.fresh .ring{animation:none}}
