.btn--fav[data-saved=true]{--btn-bg:var(--favorite);--btn-fg:var(--ink)}@media (hover:hover) and (pointer:fine){.btn--fav[data-saved=true]:hover:not(:disabled){--btn-bg:var(--favorite-hover)}}.save-menu{z-index:var(--z-toast);gap:var(--space-2);max-height:calc(100dvh - 24px);padding:var(--space-3);border:var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--pop-big);color:var(--text);line-height:var(--leading-body);transform-origin:100% 0;animation:save-menu-in var(--dur-fast) var(--ease-out);display:grid;position:fixed;overflow-y:auto}.save-menu--up{transform-origin:100% 100%}@keyframes save-menu-in{0%{opacity:0;transform:scale(.96)}}@media (prefers-reduced-motion:reduce){.save-menu{animation:none}}.save-menu-title{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-1) 0;font-weight:var(--weight-bold);font-size:var(--text-md);margin:0;display:flex}.save-menu-check{border:var(--line);border-radius:var(--radius-pill);background:var(--favorite);width:22px;height:22px;color:var(--ink);font-size:var(--text-xs);place-items:center;line-height:1;display:grid}.save-menu-lists{gap:2px;max-height:260px;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.save-row{align-items:center;gap:var(--space-3);min-height:44px;padding:0 var(--space-2);border-radius:var(--radius-md);cursor:pointer;display:flex}@media (hover:hover) and (pointer:fine){.save-row:hover{background:var(--sun-50)}}.save-row input{width:20px;height:20px;accent-color:var(--ink);flex:none;margin:0}.save-row input:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.save-row-name{min-width:0;font-weight:var(--weight-medium);overflow-wrap:anywhere;flex:1}.save-row small{color:var(--text-muted);font-size:var(--text-xs);flex:none}.save-menu-new.btn{padding:0 var(--space-2);font-weight:var(--weight-medium);justify-content:flex-start}.save-menu-new span{text-align:center;width:20px;font-size:var(--text-lg)}.save-new{gap:var(--space-2);display:flex}.save-new .input{min-width:0}.save-menu-foot{padding-top:var(--space-2);border-top:var(--line-soft);justify-content:flex-end;display:flex}.lists{min-height:0;margin:0 calc(-1 * var(--space-3));padding:var(--space-3);overscroll-behavior:contain;gap:var(--space-3);border-top:var(--line-soft);line-height:var(--leading-body);scrollbar-width:thin;scrollbar-color:var(--ink-20) transparent;flex-direction:column;flex:1;display:flex;overflow-y:auto}.lists-shown{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--sea-50);font-size:var(--text-sm);flex-wrap:wrap;display:flex}.lists-shown>span{flex:1;min-width:0}.list-card{border:var(--line);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--pop-sm);flex:none}.list-card--shown{box-shadow:0 0 0 3px var(--sea), var(--pop-sm)}.list-head{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-1) var(--space-1) 0;display:flex}.list-fold{align-items:center;gap:var(--space-2);min-width:0;min-height:52px;padding:var(--space-2) var(--space-2) var(--space-2) var(--space-3);border-radius:var(--radius-md);color:inherit;text-align:left;background:0 0;border:0;flex:1;display:flex}.list-chevron{width:8px;height:8px;transition:transform var(--dur-fast) var(--ease-out);border-bottom:2px solid;border-right:2px solid;flex:none;transform:rotate(-45deg)}.list-fold[aria-expanded=true] .list-chevron{transform:translateY(-2px)rotate(45deg)}.list-title{gap:2px;min-width:0;display:grid}.list-title h3{font-size:var(--text-md);font-weight:var(--weight-bold);line-height:var(--leading-tight);overflow-wrap:anywhere;margin:0}.list-title small{color:var(--text-muted);font-size:var(--text-xs);font-weight:var(--weight-medium)}.list-more.btn{font-size:var(--text-xl);letter-spacing:1px;flex:none}.list-tools,.list-actions{gap:var(--space-2);padding:0 var(--space-3) var(--space-3);flex-wrap:wrap;display:flex}.list-actions .btn{flex:auto}.list-delete.btn{color:var(--danger-text)}.list-confirm{gap:var(--space-2);margin:0 var(--space-3) var(--space-3);padding:var(--space-3);border-radius:var(--radius-md);background:var(--coral-50);font-size:var(--text-sm);display:grid}.list-confirm p{margin:0}.list-confirm div{gap:var(--space-2);display:flex}.list-rename{align-items:center;gap:var(--space-2);padding:var(--space-2) 0 var(--space-2) var(--space-3);flex:1;display:flex}.list-rename .input{min-width:0}.list-empty{padding:0 var(--space-4) var(--space-3);color:var(--text-muted);font-size:var(--text-sm);margin:0}.list-spots{padding:0 var(--space-2) var(--space-2);margin:0;list-style:none;display:grid}.list-leg{align-items:center;gap:var(--space-2);height:22px;color:var(--text-muted);font-size:var(--text-xs);font-weight:var(--weight-medium);font-variant-numeric:tabular-nums;padding-left:13px;display:flex}.list-leg:before{content:"";border-left:2px dotted var(--ink-40);width:0;height:100%}.list-spot{align-items:center;gap:var(--space-2);display:flex}.list-num{border:var(--line);border-radius:var(--radius-pill);background:var(--sun-50);width:28px;height:28px;font-size:var(--text-sm);font-weight:var(--weight-bold);font-variant-numeric:tabular-nums;flex:none;place-items:center;display:grid}.list-spot-link{min-width:0;min-height:48px;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);color:inherit;transition:background-color var(--dur-fast) ease;flex:1;align-content:center;gap:2px;text-decoration:none;display:grid}@media (hover:hover) and (pointer:fine){.list-spot-link:hover{background:var(--sun-50)}}.list-spot-link--on{background:var(--current)}.list-spot-name{font-size:var(--text-md);font-weight:var(--weight-bold);line-height:var(--leading-tight);overflow-wrap:anywhere}.list-remove{width:var(--hit);height:var(--hit);border-radius:var(--radius-pill);color:var(--text-muted);transition:transform var(--dur-press) var(--ease-out), background-color var(--dur-fast) ease, color var(--dur-fast) ease;background:0 0;border:0;flex:none;place-items:center;padding:0;display:grid}@media (hover:hover) and (pointer:fine){.list-remove:hover{background:var(--coral-50);color:var(--danger-text)}}.list-remove:active{transform:scale(.92)}.list-move{gap:var(--space-2);flex:none;display:flex}.list-add{gap:var(--space-1);padding:var(--space-1) var(--space-3) var(--space-3);display:grid}.list-add .list-empty{padding:var(--space-1) var(--space-1) 0}.list-add-hits{gap:2px;margin:0;padding:0;list-style:none;display:grid}.list-add-hits button{column-gap:var(--space-2);width:100%;min-height:44px;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);color:inherit;text-align:left;background:0 0;border:0;grid-template-columns:20px 1fr;align-items:center;display:grid}@media (hover:hover) and (pointer:fine){.list-add-hits button:hover{background:var(--sun-50)}}.list-add-hits button>span:first-child{font-size:var(--text-lg);font-weight:var(--weight-bold);text-align:center;grid-row:span 2}.list-add-name{font-weight:var(--weight-bold);font-size:var(--text-sm)}.list-add-hits small{color:var(--text-muted);font-size:var(--text-xs)}.lists-add-list.btn{flex:none;align-self:flex-start}.lists-add-list span{font-size:var(--text-lg)}.lists-new{gap:var(--space-2);flex:none;justify-items:start;display:grid}.lists-new-label{font-weight:var(--weight-bold);font-size:var(--text-sm)}.lists-new-row{gap:var(--space-2);width:100%;display:flex}.lists-new-row .input{min-width:0}.lists-note{padding:0 var(--space-1);color:var(--text-muted);font-size:var(--text-xs);flex:none;margin:0}@media (pointer:coarse){.list-move .btn{--btn-h:var(--hit)}}.wx-canvas{pointer-events:none;transform-origin:0 0;position:absolute;top:0;left:0}.wx-heat{will-change:transform}.tl{z-index:var(--z-panel);left:calc(var(--edge) * 2 + var(--rail-w));right:var(--edge);bottom:var(--edge);gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--surface-2);border:var(--line);border-radius:var(--radius-lg);box-shadow:var(--pop-big);-webkit-user-select:none;user-select:none;flex-direction:column;display:flex;position:absolute}.tl--off{padding:var(--space-2);right:auto}.tl-top{align-items:center;gap:var(--space-4);min-width:0;display:flex}.tl-play{width:var(--control-md);height:var(--control-md);border:var(--line);background:var(--selected);color:var(--selected-ink);box-shadow:var(--pop-sm);transition:transform var(--dur-press) var(--ease-out), background-color var(--dur-fast) ease;border-radius:50%;flex:none;place-items:center;padding:0;display:grid}.tl-play svg{width:18px;height:18px}.tl-play:active{box-shadow:var(--pop-press);transform:translate(1px,1px)scale(.96)}.tl-play[aria-pressed=true]{background:var(--sun);color:var(--ink)}.tl-when{min-width:164px;line-height:var(--leading-tight);flex-direction:column;flex:none;gap:2px;display:flex}.tl-when strong{font-size:var(--text-md);font-weight:var(--weight-bold);white-space:nowrap;font-variant-numeric:tabular-nums}.tl-hour{margin-left:var(--space-2)}.tl-when small{font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--text-muted)}.tl-when--muted{font-weight:var(--weight-bold);font-size:var(--text-sm);color:var(--text-muted)}.tl-legend{align-items:center;gap:var(--space-2) var(--space-4);min-width:0;display:flex}.tl-scale{align-items:center;gap:var(--space-2);flex:0 400px;min-width:0;display:flex}.tl-unit{text-align:right;min-width:2.4em;font-size:var(--text-xs);font-weight:var(--weight-black);white-space:nowrap;flex:none}.tl-grad{border-radius:var(--radius-pill);border:1.5px solid var(--border);flex:auto;min-width:0;height:20px;position:relative}.tl-grad>span{font-size:var(--text-2xs);font-weight:var(--weight-bold);font-variant-numeric:tabular-nums;white-space:nowrap;line-height:1;position:absolute;top:50%;transform:translate(-50%,-50%)}.tl-mark-track{pointer-events:none;position:absolute;inset:0}.tl-mark{opacity:0;transition:transform var(--dur-fast) var(--ease-out), opacity var(--dur-fast) ease;position:absolute;inset:0}.tl-mark[data-on=true]{opacity:1}.tl-mark:before{content:"";border-left:6px solid #0000;border-right:6px solid #0000;border-top:7px solid var(--text);position:absolute;top:-9px;left:-6px}.tl-mark:after{content:"";background:var(--text);width:3px;box-shadow:0 0 0 1.5px var(--surface);border-radius:2px;position:absolute;top:-3px;bottom:-3px;left:-1.5px}.tl-key{align-items:center;gap:var(--space-3);min-width:0;font-size:var(--text-2xs);font-weight:var(--weight-medium);line-height:var(--leading-tight);color:var(--text-muted);white-space:nowrap;margin:0;display:flex;overflow:hidden}.tl-key-marks{align-items:center;gap:var(--space-1);color:var(--text);display:inline-flex}.tl-key-hint{text-overflow:ellipsis;overflow:hidden}.tl-hint-touch{display:none}.tl-hint-row{font-size:var(--text-2xs);font-weight:var(--weight-medium);color:var(--text-muted);white-space:nowrap;margin-left:auto;display:none}@media (hover:none){.tl-hint-hover{display:none}.tl-hint-touch{display:inline}}.tl-layers{border:var(--line);border-radius:var(--radius-md);background:var(--surface);flex:none;gap:2px;margin-left:auto;padding:3px;display:flex}.tl-layer{min-height:calc(var(--control-md) - 6px);border-radius:calc(var(--radius-md) - 4px);padding:0 var(--space-3);justify-content:center;align-items:center;gap:var(--space-1);font-weight:var(--weight-bold);font-size:var(--text-sm);white-space:nowrap;transition:background-color var(--dur-fast) ease, color var(--dur-fast) ease, transform var(--dur-press) var(--ease-out);background:0 0;border:0;display:flex}.tl-layer svg{flex:none}.tl-layer:active{transform:scale(.96)}.tl-layer--on{background:var(--selected);color:var(--selected-ink)}@media (hover:hover) and (pointer:fine){.tl-layer:not(.tl-layer--on):hover{background:var(--ink-5)}}.tl-track{touch-action:none;cursor:pointer;border-radius:var(--radius-sm);height:50px;position:relative}.tl-days{height:18px;position:relative}.tl-day{font-size:var(--text-xs);font-weight:var(--weight-bold);color:var(--text-muted);text-align:center;white-space:nowrap;text-overflow:clip;padding:0 4px;position:absolute;top:0;overflow:hidden;container-type:inline-size}.tl-day--on{color:var(--text)}.tl-day-short{display:none}@container (width<=4.4em){.tl-day-long{display:none}.tl-day-short{display:inline}}@container (width<=3.4em){.tl-day--today>span{visibility:hidden}}@container (width<=2.6em){.tl-day>span{visibility:hidden}}.tl-bar{border-radius:var(--radius-sm);background:var(--surface);border:var(--line);height:26px;position:absolute;top:20px;left:0;right:0}.tl-fill{border-radius:calc(var(--radius-sm) - 2px) 0 0 calc(var(--radius-sm) - 2px);background:var(--sea-100);position:absolute;top:0;bottom:0;left:0}.tl-tick{background:var(--ink-20);width:1px;height:6px;position:absolute;bottom:0}.tl-tick--noon{background:var(--ink-40);height:10px}.tl-tick--day{background:var(--text);width:1.5px;height:auto;top:0}.tl-now{background:var(--coral);border-radius:1px;width:2px;margin-left:-1px;position:absolute;top:-5px;bottom:-5px}.tl-now span{font-size:var(--text-3xs);font-weight:var(--weight-black);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--danger-text);position:absolute;top:7px;left:10px}.tl-thumb{border-radius:var(--radius-pill);background:var(--sun);border:var(--line);width:14px;box-shadow:var(--pop-sm);margin-left:-7px;position:absolute;top:-7px;bottom:-7px}.tl-track:active .tl-thumb{background:var(--orange)}.app .maplibregl-ctrl-bottom-right{right:var(--edge);bottom:calc(var(--tl-h,0px) + var(--edge) + var(--space-3));margin:0}.app .maplibregl-ctrl-bottom-right .maplibregl-ctrl{margin:0}.maplibregl-ctrl-top-right{margin:calc(var(--edge) + env(safe-area-inset-top,0px)) var(--edge) 0 0}.maplibregl-ctrl-top-right .maplibregl-ctrl{margin:0 0 var(--space-3) 0}@media (hover:none) and (pointer:coarse){.maplibregl-ctrl-group:has(.maplibregl-ctrl-zoom-in){display:none}}@media (width>=721px) and (width<=1100px) and (height>=501px){.tl-top{gap:var(--space-2) var(--space-3);flex-wrap:wrap}.tl-layers{order:-1;width:100%;margin-left:0}.tl--off .tl-layers{width:auto}.tl-layer{padding:0 var(--space-1);flex:1}.tl-dm{display:none}.tl-legend{gap:var(--space-1) var(--space-3);flex-wrap:wrap}.tl-scale{flex:100%}}@media (width<=720px),(height<=500px) and (width<=950px){.tl{left:var(--edge);right:var(--edge);bottom:calc(var(--edge) + env(safe-area-inset-bottom,0px));padding:var(--space-2) var(--space-3) var(--space-3);gap:var(--space-2);border-radius:var(--radius-md);box-shadow:var(--pop)}.tl--off,.tl-layers{display:none}.tl-top{gap:var(--space-2) var(--space-3);flex-wrap:wrap}.tl-when{min-width:0}.tl-when strong{font-size:var(--text-sm)}.tl-hour{margin-left:var(--space-1)}.tl-dm{display:none}.tl-legend{align-items:stretch;gap:var(--space-1);flex-direction:column}.tl-scale{flex:none}.tl-unit{min-width:0}.tl-grad>span{font-size:var(--text-3xs)}.tl-key{display:none}.tl-track{height:46px}.tl-days{height:16px}.tl-day{font-size:var(--text-2xs);padding:0 2px}.tl-day-long{display:none}.tl-day-short{display:inline}.tl-bar{height:24px;top:17px}.tl-now span{display:none}.app[data-panel=closed] .panel-toggles{left:calc(var(--edge) + env(safe-area-inset-left,0px));bottom:calc(var(--tl-h,0px) + var(--edge) + var(--space-3) + env(safe-area-inset-bottom,0px));transform:none}.app[data-panel=closed] .panel-toggles .btn{min-height:var(--control-lg)}.app[data-panel=closed] .panel-toggle{padding-inline:var(--space-4) var(--space-5)}.app .maplibregl-ctrl-bottom-right{right:var(--edge);bottom:calc(var(--tl-h,0px) + var(--edge) + var(--space-3) + var(--control-lg) + var(--space-2) + env(safe-area-inset-bottom,0px))}.tl:not(.tl--off){align-items:center;gap:var(--space-2) var(--space-3);grid-template-columns:auto auto minmax(0,1fr);display:grid}.tl-top{display:contents}.tl-play{grid-area:1/1}.tl-when{grid-area:1/2}.tl-hint-row{display:none}.tl:not(.tl--off) .tl-legend{grid-area:1/3;min-width:0}.tl-grad>span:nth-of-type(2n){display:none}@media (width<=359px){.tl-grad>span:not(:first-of-type):not(:last-of-type){display:none}}.tl-track{grid-area:2/1/auto/-1;margin-bottom:0}@media (width>=721px){.tl,.tl--off{width:min(460px,60%);left:auto}.tl--off{width:auto}.app[data-panel=closed] .panel-toggles{left:calc(var(--edge) + env(safe-area-inset-left,0px));bottom:calc(var(--edge) + env(safe-area-inset-bottom,0px));transform:none}.app .maplibregl-ctrl-bottom-right{bottom:calc(var(--tl-h,0px) + var(--edge) + var(--space-2) + env(safe-area-inset-bottom,0px))}}}.wx-card{z-index:9600;pointer-events:none;padding:var(--space-2) var(--space-3);background:var(--surface-2);color:var(--text);border:var(--line);border-radius:var(--radius-md);box-shadow:var(--pop-sm);font-size:var(--text-xs);line-height:var(--leading-tight);white-space:nowrap;will-change:transform;position:absolute;top:0;left:0}.wx-card[hidden],.wx-card [hidden],.wx-pin-dot[hidden]{display:none!important}.wx-card-head{align-items:center;gap:var(--space-1);font-size:var(--text-3xs);font-weight:var(--weight-black);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--text-muted);display:flex}.wx-swatch{border:1.5px solid var(--border);border-radius:3px;width:10px;height:10px}.wx-main{font-variant-numeric:tabular-nums;margin-top:2px}.wx-main b{font-size:var(--text-lg);font-weight:var(--weight-black)}.wx-main span{margin-left:var(--space-1);font-size:var(--text-sm);font-weight:var(--weight-bold)}.wx-dir{align-items:center;gap:var(--space-1);font-weight:var(--weight-bold);font-variant-numeric:tabular-nums;margin-top:2px;display:flex}.wx-arrow{display:inline-flex}.wx-extra{font-weight:var(--weight-medium);color:var(--text-muted);margin-top:2px}.wx-pin{z-index:9601;pointer-events:auto;padding-right:var(--space-7);box-shadow:var(--pop);transform-origin:50% 100%;animation:wx-pop var(--dur-base) var(--ease-out)}.wx-pin--below{transform-origin:50% 0}.wx-pin:after{content:"";left:calc(var(--pin-x,50%) - 6px);background:var(--surface-2);border-right:var(--line);border-bottom:var(--line);width:10px;height:10px;position:absolute;bottom:-7px;transform:rotate(45deg)}.wx-pin--below:after{border:0;border-left:var(--line);border-top:var(--line);top:-7px;bottom:auto}@keyframes wx-pop{0%{opacity:0;scale:.94}}.wx-close{width:24px;height:24px;color:var(--text);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;padding:0;display:grid;position:absolute;top:4px;right:4px}.wx-close:before{content:"";position:absolute;inset:-8px}.wx-close:focus-visible{outline:2px solid var(--focus);outline-offset:1px}@media (hover:hover) and (pointer:fine){.wx-close:hover{background:var(--ink-10)}}.wx-pin-dot{z-index:9599;background:var(--paper);border:3px solid var(--ink);pointer-events:none;border-radius:50%;width:14px;height:14px;margin:-7px 0 0 -7px;position:absolute;top:0;left:0;box-shadow:0 0 0 2px #fffaf0cc}.wx-sr{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){.wx-pin{animation:none}.tl-mark{transition:none}}.peek{z-index:var(--z-overlay);width:280px;max-width:calc(100vw - 16px);color:var(--text);font-size:var(--text-sm);line-height:var(--leading-body);pointer-events:none;position:fixed;top:0;left:-9999px}.peek-frame{background:var(--surface);border:var(--line);border-radius:var(--radius-md);box-shadow:var(--pop);position:absolute;inset:0}.peek-body{gap:var(--space-3);padding:calc(var(--space-3) + var(--border-w));display:grid;position:relative}.peek-ghost{position:absolute;inset:0}.peek-ghost .mk-card:after{display:none}.peek-still{aspect-ratio:16/9;border-radius:var(--radius-sm);background:var(--night);position:relative;overflow:hidden}.peek-still img{object-fit:cover;width:100%;height:100%;display:block;position:absolute;inset:0}.peek-still img+img{opacity:0;transition:opacity var(--dur-base) var(--ease-out)}.peek-still img.is-sharp{opacity:1}.peek-head{align-items:flex-start;gap:var(--space-2);display:flex}.peek-title{flex:1;min-width:0;display:grid}.peek-name{font-size:var(--text-md);font-weight:var(--weight-bold);line-height:var(--leading-tight);overflow-wrap:anywhere}.peek-where{color:var(--text-muted);font-size:var(--text-xs);line-height:var(--leading-tight);margin-top:2px}.peek-cam{align-items:center;gap:var(--space-1);height:22px;padding:0 var(--space-2);border:1.5px solid var(--border);border-radius:var(--radius-pill);font-size:var(--text-xs);font-weight:var(--weight-bold);flex:none;display:inline-flex}.peek-now{align-items:center;gap:var(--space-1) var(--space-2);flex-wrap:wrap;display:flex}.peek-verdict{height:24px;padding:0 var(--space-2);border:1.5px solid var(--ink);border-radius:var(--radius-sm);font-weight:var(--weight-bold);align-items:center;line-height:1;display:inline-flex}.peek-surf{font-weight:var(--weight-bold);font-variant-numeric:tabular-nums}.peek-wind{color:var(--text-muted)}.peek-days{gap:var(--space-1);display:grid}.peek-cap{justify-content:space-between;gap:var(--space-2);color:var(--text-muted);font-size:var(--text-xs);line-height:var(--leading-tight);display:flex}.peek-cap span:first-child{font-weight:var(--weight-bold);color:var(--text)}.peek-strip{gap:var(--space-1);grid-template-columns:repeat(7,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}.peek-strip li{text-align:center;gap:2px;display:grid}.peek-day{color:var(--text-muted);font-size:var(--text-2xs);font-weight:var(--weight-medium);line-height:var(--leading-tight);white-space:nowrap}.peek-block{border:1.5px solid var(--ink);border-radius:var(--radius-sm);height:24px;font-size:var(--text-2xs);font-weight:var(--weight-bold);font-variant-numeric:tabular-nums;place-items:center;line-height:1;display:grid}.peek-block--none{border-color:var(--border-soft);color:var(--text-muted)}.peek-facts{padding:var(--space-2) 0 0;border-top:var(--line-soft);gap:var(--space-2) var(--space-1);grid-template-columns:repeat(auto-fit,minmax(46px,1fr));margin:0;list-style:none;display:grid}.peek-facts li{justify-items:center;gap:var(--space-1);text-align:center;display:grid}.peek-icon{border:1.5px solid var(--ink);border-radius:var(--radius-pill);width:28px;height:28px;color:var(--ink);place-items:center;display:grid;position:relative}.peek-icon svg{width:16px;height:16px}.peek-icon b{border:1.5px solid var(--ink);border-radius:var(--radius-pill);background:var(--paper);width:14px;height:14px;color:var(--ink);font-size:8.5px;font-weight:var(--weight-black);place-items:center;line-height:1;display:grid;position:absolute;bottom:-3px;right:-5px}.peek-icon--good{background:var(--lime)}.peek-icon--meh{background:var(--sun)}.peek-icon--bad{background:var(--coral)}.peek-icon--unknown{background:var(--surface-sunk);color:var(--text-muted)}.peek-fact{font-size:var(--text-2xs);font-weight:var(--weight-medium);line-height:var(--leading-tight)}.peek-loading{color:var(--text-muted);align-self:center}.peek-tags{margin:calc(var(--space-1) * -1) 0 0;color:var(--text-muted);font-size:var(--text-xs);line-height:var(--leading-body)}.peek-hint{padding-top:var(--space-2);border-top:var(--line-soft);color:var(--text-muted);font-size:var(--text-xs);line-height:var(--leading-body);margin:0}.mk{width:0;height:0;font:inherit;color:var(--text);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;margin:0;padding:0;position:absolute;top:0;left:0}.mk:focus-visible{outline:none}@media (pointer:coarse){.mk:before{content:"";border-radius:50%;width:36px;height:36px;position:absolute;top:0;left:0;transform:translate(-50%,-50%)}}.mk:focus-visible .mk-dot{box-shadow:0 0 0 2px var(--paper), 0 0 0 5px var(--focus)}.mk:focus-visible .mk-card{outline:3px solid var(--focus);outline-offset:2px}.mk-dot{width:calc(12px * var(--mk-s,1));height:calc(12px * var(--mk-s,1));border:2px solid var(--ink);background:var(--mk-fill,var(--sun));color:var(--ink);transition:transform var(--dur-fast) var(--ease-out);border-radius:50%;place-items:center;display:grid;position:absolute;top:0;left:0;transform:translate(-50%,-50%)}.mk--cam .mk-dot{width:calc(22px * var(--mk-s,1));height:calc(22px * var(--mk-s,1))}.mk-dot svg{width:calc(13px * var(--mk-s,1));height:calc(13px * var(--mk-s,1))}.mk--b0 .mk-dot,.mk--b1 .mk-dot,.mk--bx .mk-dot{border-width:1.5px;border-color:color-mix(in srgb, var(--ink) 55%, transparent);opacity:.85}.mk--b0 .mk-dot svg,.mk--b1 .mk-dot svg,.mk--bx .mk-dot svg{opacity:.7}.mk--b4 .mk-dot,.mk--b5 .mk-dot{box-shadow:var(--pop-sm)}.mk--card .mk-dot{opacity:1;width:12px;height:12px}.mk--card .mk-dot svg{display:none}.mk--fav .mk-dot{opacity:1;box-shadow:0 0 0 2px var(--paper), 0 0 0 4px var(--favorite)}@media (hover:hover) and (pointer:fine){.mk:hover .mk-dot{transform:translate(-50%,-50%)scale(1.2)}}.mk:focus-visible .mk-dot,.mk--active .mk-dot{opacity:1}@media (hover:hover) and (pointer:fine){.mk:hover .mk-dot{opacity:1}}.mk--active .mk-dot{box-shadow:0 0 0 3px var(--sun), 0 0 0 4.5px var(--ink);transform:translate(-50%,-50%)scale(1.25)}.mk-label{left:calc(11px * var(--mk-s,1) + 4px);background:var(--surface);border:1.5px solid var(--border);height:24px;box-shadow:1.5px 1.5px 0 var(--ink);font-size:12px;font-weight:var(--weight-bold);white-space:nowrap;border-radius:7px;align-items:center;gap:6px;padding:0 8px 0 3px;line-height:1;display:none;position:absolute;top:0;transform:translateY(-50%)}.mk--nocam .mk-label{left:calc(6px * var(--mk-s,1) + 4px)}.mk--flip .mk-label{left:auto;right:calc(11px * var(--mk-s,1) + 4px)}.mk--nocam.mk--flip .mk-label{left:auto;right:calc(6px * var(--mk-s,1) + 4px)}.mk--label .mk-label{display:inline-flex}.mk-surf{border:1px solid var(--ink);height:15px;font-size:10.5px;font-weight:var(--weight-bold);font-variant-numeric:tabular-nums;border-radius:4px;flex:none;align-items:center;padding:0 5px;line-height:1;display:inline-flex}.mk-label .mk-surf:empty{display:none}.mk-card{transform-origin:50% calc(100% + 12px);background:var(--surface);border:var(--line);border-radius:var(--radius-sm);width:max-content;min-width:160px;max-width:260px;box-shadow:var(--pop-sm);transition:transform var(--dur-fast) var(--ease-out);flex-direction:column;display:none;position:absolute;bottom:12px;left:0;transform:translate(-50%)}.mk--card .mk-card{display:flex}.mk-card:after{content:"";background:var(--surface);border-right:2px solid var(--border);border-bottom:2px solid var(--border);width:10px;height:10px;margin-left:-5px;position:absolute;bottom:-7px;left:50%;transform:rotate(45deg)}.mk-still{background:var(--night);border-radius:5px;height:82px;margin:3px 3px 0;position:relative;overflow:hidden}.mk-still img{object-fit:cover;visibility:hidden;width:100%;height:100%;display:block;position:absolute;inset:0}.mk-live{border:1px solid var(--ink);background:var(--coral);color:var(--ink);font-size:9.5px;font-weight:var(--weight-black);letter-spacing:.06em;border-radius:4px;padding:1px 4px;position:absolute;top:4px;left:4px}.mk-cap{z-index:1;min-height:24px;font-size:12px;font-weight:var(--weight-bold);align-items:center;gap:6px;padding:4.5px 6px 4.5px 4px;line-height:13px;display:flex;position:relative}.mk-cap .mk-name{text-wrap:pretty;min-width:0}.mk-cap .mk-surf:empty{display:none}.mk--fav .mk-card,.mk--fav .mk-card:after{background:var(--orange-50)}@media (hover:hover) and (pointer:fine){.mk:hover .mk-card{transform:translate(-50%)scale(1.05)}}.mk--active .mk-card,.mk--active .mk-card:after{background:var(--sun)}.mk--active .mk-card{box-shadow:var(--pop);transform:translate(-50%)scale(1.05)}@media (prefers-reduced-motion:reduce){.mk-dot,.mk-card{transition:none}}.maplibregl-ctrl.mk-names{clear:both;float:right;width:var(--control-lg);padding:var(--space-2) 2px 3px;border:var(--line);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--pop-sm);color:var(--text);flex-direction:column;align-items:stretch;gap:2px;display:flex}.mk-names-title{font-size:var(--text-3xs);font-weight:var(--weight-black);letter-spacing:calc(var(--tracking-caps) / 2);text-transform:uppercase;text-align:center;margin-bottom:2px;line-height:1}.mk-names>button{min-height:24px;padding:0 var(--space-1);border-radius:calc(var(--radius-md) - 3px - var(--border-w));color:inherit;font:inherit;font-size:var(--text-3xs);font-weight:var(--weight-bold);letter-spacing:var(--tracking-caps);text-transform:uppercase;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background-color var(--dur-fast) ease, color var(--dur-fast) ease, transform var(--dur-press) var(--ease-out);background:0 0;border:0;line-height:1}.mk-names>button:active{transform:scale(var(--press-scale))}.mk-names>button:focus-visible{outline:3px solid var(--focus);outline-offset:1px}@media (hover:hover) and (pointer:fine){.mk-names>button:not([aria-pressed=true]):hover{background:var(--ink-5)}}.maplibregl-ctrl.mk-names>button[aria-pressed=true],.maplibregl-ctrl.mk-names>button[aria-pressed=true]:hover{background:var(--selected);color:var(--selected-ink)}@media (pointer:coarse){.mk-names>button{min-height:32px}}.maplibregl-ctrl.mk-legend{clear:both;float:right;position:relative}.maplibregl-ctrl-top-right{z-index:9100}.mk-legend-btn{align-items:center;gap:var(--space-1);width:var(--control-lg);padding:var(--space-2) 0;border:var(--line);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--pop-sm);color:var(--text);font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform var(--dur-press) var(--ease-out), box-shadow var(--dur-press) var(--ease-out);flex-direction:column;display:flex}.mk-legend-btn:active{box-shadow:var(--pop-press);transform:translate(1px,1px)}.mk-legend-btn:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.mk-legend--open .mk-legend-btn{background:var(--current,var(--surface))}.mk-legend-title{font-size:var(--text-3xs);font-weight:var(--weight-black);letter-spacing:var(--tracking-caps);text-transform:uppercase;text-align:center;line-height:1}.mk-legend-scale{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.mk-legend-scale li,.mk-legend-cam{justify-content:center;align-items:center;min-height:16px;display:flex}.mk-legend-cam{padding-top:var(--space-2);border-top:var(--line-soft);align-self:stretch;min-height:24px;margin-top:2px}.mk-legend-dot{width:calc(16px * var(--mk-s,1));height:calc(16px * var(--mk-s,1));margin:0 calc((18px - 16px * var(--mk-s,1)) / 2);border:1.5px solid var(--ink);border-radius:50%;flex:none;place-items:center;display:grid}.mk-legend-dot--cam{background:var(--surface-sunk);width:18px;height:18px;color:var(--text);margin:0}.mk-legend-panel{top:0;right:calc(100% + var(--space-2));width:min(300px, calc(100vw - var(--control-md) - 40px));max-height:min(70vh,100dvh - 140px);padding:var(--space-3);border:var(--line);border-radius:var(--radius-md);background:var(--surface);color:var(--text);box-shadow:var(--pop);text-align:left;transform-origin:100% 0;animation:mk-legend-in var(--dur-fast) var(--ease-out);position:absolute;overflow-y:auto}.mk-legend-panel[hidden]{display:none}@keyframes mk-legend-in{0%{opacity:0;transform:scale(.96)}}.mk-legend-head{margin:0 0 var(--space-2);font-size:var(--text-xs);font-weight:var(--weight-black);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--text-muted)}.mk-legend-rows{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.mk-legend-rows li,.mk-legend-more p{align-items:start;gap:var(--space-2);grid-template-columns:18px minmax(0,1fr);margin:0;display:grid}.mk-legend-rows .mk-legend-dot{margin-top:calc((18px - 16px * var(--mk-s,1)) / 2 + 1px)}.mk-legend-rows li>span,.mk-legend-more p>span{font-size:var(--text-xs);line-height:var(--leading-body);color:var(--text-muted);gap:2px;display:grid}.mk-legend-rows strong{font-size:var(--text-sm);line-height:var(--leading-tight);color:var(--text)}.mk-legend-more{gap:var(--space-2);margin-top:var(--space-3);padding-top:var(--space-3);border-top:var(--line-soft);display:grid}.mk-legend-more p:last-child{gap:var(--space-1);grid-template-columns:minmax(0,1fr)}.mk-legend-pill{border:1px solid var(--ink);background:var(--rating-good);height:18px;color:var(--ink);font-size:10.5px;font-weight:var(--weight-bold);border-radius:4px;justify-self:start;align-items:center;padding:0 6px;display:inline-flex}@media (hover:hover) and (pointer:fine){.mk-legend-btn:hover{background:var(--sun-50)}}@media (height<=520px){.maplibregl-ctrl.mk-legend{display:none}}@media (width<=720px){.mk-names>button:not([aria-pressed=true]){display:none}.mk-legend-btn{height:var(--control-lg);justify-content:center;padding:0}.mk-legend-title,.mk-legend-scale,.mk-legend-cam{display:none}}.mk-legend-info{display:none}@media (width<=720px){.mk-legend-info{display:flex}}@media (width<=720px),(height<=500px) and (width<=950px){.maplibregl-ctrl.mk-names{display:none}}@media (prefers-reduced-motion:reduce){.mk-legend-btn{transition:none}.mk-legend-panel{animation:none}}.mk--active .mk-card{--text:var(--on-bright-text);--text-muted:var(--on-bright-muted);color:var(--text)}html,body,#root{height:100%}html,body{overscroll-behavior:none}.app{--rail-w:360px;--edge:var(--space-4);height:100dvh;position:fixed;inset:0;overflow:hidden}@media (width<=1100px){.app{--rail-w:320px}}.map{z-index:var(--z-map);isolation:isolate;background:var(--map-land);position:absolute;inset:0}.rail{z-index:var(--z-panel);top:calc(var(--edge) + env(safe-area-inset-top,0px));left:calc(var(--edge) + env(safe-area-inset-left,0px));bottom:var(--edge);width:var(--rail-w);gap:var(--space-3);pointer-events:none;flex-direction:column;display:flex;position:absolute}.rail>*{pointer-events:auto}.topbar{align-items:center;gap:var(--space-3);min-height:64px;padding:var(--space-2) var(--space-2) var(--space-2) var(--space-3);flex:none;display:flex}.logo{min-width:0;color:inherit;border-radius:var(--radius-sm);--logo-w:196px;flex-direction:column;gap:2px;text-decoration:none;display:flex}.logo .logo-art{width:var(--logo-w)}.topbar-meta{margin-top:calc(var(--logo-w) * -.02);padding-left:calc(var(--logo-w) * .255);font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--text-muted);white-space:nowrap;font-variant-numeric:tabular-nums}.topbar-nav{align-items:center;gap:var(--space-1);margin-left:auto;display:flex}.spots{min-height:0;padding:var(--space-3);flex-direction:column;flex:1;display:flex}.spots-tools{gap:var(--space-3);padding:var(--space-1) var(--space-1) var(--space-3);display:grid;container-type:inline-size}.search-row{gap:var(--space-2);display:flex}.search-row>.search{flex:1;min-width:0}.quick-filters{gap:var(--space-2);display:flex}@container (width<=330px){.quick-filters{gap:var(--space-1)}}.quick-filters .chip{justify-content:center;gap:var(--space-1);min-width:0;min-height:var(--control-sm);padding:0 var(--space-2);border-radius:var(--radius-md);flex:auto}.quick-filters .chip svg{flex:none}@container (width<=330px){.quick-filters .chip{padding:0 var(--space-1);font-size:var(--text-xs)}}.filters-toggle{align-items:center;gap:var(--space-1);min-height:var(--control-md);padding:0 var(--space-3);border:var(--line);border-radius:var(--radius-md);background:var(--surface);color:var(--text);font:inherit;font-size:var(--text-sm);font-weight:var(--weight-bold);cursor:pointer;transition:transform var(--dur-press) var(--ease-out), background-color var(--dur-fast) ease;flex:none;display:inline-flex}.filters-toggle:active{transform:scale(.97)}.filters-toggle[aria-expanded=true]{background:var(--selected);color:var(--selected-ink)}.filters-toggle[aria-expanded=true] .chip-count{background:color-mix(in srgb, var(--selected-ink) 20%, transparent)}@media (hover:hover) and (pointer:fine){.filters-toggle[aria-expanded=false]:hover{background:var(--sun-50)}}.filter-panel{gap:var(--space-3);overscroll-behavior:contain;max-height:min(52vh,460px);padding:var(--space-3);border:var(--line);border-radius:var(--radius-md);background:var(--surface-2);transform-origin:100% 0;transition:opacity var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out);display:grid;overflow-y:auto}@starting-style{.filter-panel{opacity:0;transform:translateY(-6px)scale(.98)}}.filter-group{gap:var(--space-2);display:grid}.filter-label{color:var(--text-muted);font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:.04em;text-transform:uppercase}.filter-where{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(130px,1fr));display:grid}.filter-where .select{width:100%}.filter-chips{gap:var(--space-2);flex-wrap:wrap;display:flex}.filter-n{color:var(--text-muted);font-size:var(--text-xs);font-weight:var(--weight-medium);font-variant-numeric:tabular-nums}.filter-panel .chip[aria-pressed=true] .filter-n{color:inherit;opacity:.75}.filter-panel .chip:disabled{color:var(--text-muted);opacity:.6;cursor:default;border-style:dashed}.filter-panel .chip:disabled .filter-n{display:none}.filter-foot{bottom:calc(-1 * var(--space-3));justify-content:space-between;gap:var(--space-2);margin:0 calc(-1 * var(--space-3)) calc(-1 * var(--space-3));padding:var(--space-3);border-top:1.5px solid var(--ink-10);background:var(--surface-2);display:flex;position:sticky}@media (pointer:coarse){.filter-panel .chip,.filter-where .select{min-height:40px}}@media (prefers-reduced-motion:reduce){.filter-panel{transition:none}}@media (width<=720px){.filter-panel{max-height:40dvh}}.spot-list{min-height:0;margin:0 calc(-1 * var(--space-3));padding:var(--space-1) var(--space-3) var(--space-3);overscroll-behavior:contain;gap:var(--space-2);border-top:var(--line-soft);scrollbar-width:thin;scrollbar-color:var(--ink-20) transparent;flex-direction:column;flex:1;list-style:none;display:flex;overflow-y:auto}.spot-list>li{position:relative}.spot-list>li:first-child{margin-top:var(--space-2)}.spot-list--intro>li:nth-child(-n+10){animation:rise-in var(--dur-slow) var(--ease-out) backwards}.spot-list--intro>li:nth-child(2){animation-delay:30ms}.spot-list--intro>li:nth-child(3){animation-delay:60ms}.spot-list--intro>li:nth-child(4){animation-delay:90ms}.spot-list--intro>li:nth-child(5){animation-delay:.12s}.spot-list--intro>li:nth-child(6){animation-delay:.15s}.spot-list--intro>li:nth-child(7){animation-delay:.18s}.spot-list--intro>li:nth-child(8){animation-delay:.21s}.spot-list--intro>li:nth-child(9){animation-delay:.24s}.spot-list--intro>li:nth-child(10){animation-delay:.27s}.spot-card{align-items:center;gap:var(--space-3);width:100%;min-height:64px;padding:var(--space-2) calc(var(--hit) + var(--space-3)) var(--space-2) var(--space-2);border:var(--line);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--pop-sm);text-align:left;color:inherit;-webkit-touch-callout:none;transition:transform var(--dur-press) var(--ease-out), box-shadow var(--dur-press) var(--ease-out), background-color var(--dur-fast) ease;text-decoration:none;display:flex}.spot-card:active{box-shadow:var(--pop-press);transform:translate(1px,1px)}@media (hover:hover) and (pointer:fine){.spot-card:hover{background:var(--sun-50)}}.spot-card--on,.spot-card--on:hover{background:var(--sun)}.spot-card--on{--text:var(--on-bright-text);--text-muted:var(--on-bright-muted);--border:var(--ink);color:var(--text)}.spot-thumb{border-radius:var(--radius-sm);border:var(--line);background:var(--sea-50);width:80px;height:48px;color:var(--deep);flex:none;place-items:center;display:grid;position:relative;overflow:hidden}.spot-thumb img{object-fit:cover;width:100%;height:100%;display:block}.spot-thumb svg{width:22px;height:22px}.spot-thumb--none{background:repeating-linear-gradient(-45deg, transparent 0 7px, color-mix(in srgb, var(--sea) 16%, transparent) 7px 14px), var(--sea-50)}.spot-info{gap:var(--space-1);flex-direction:column;flex:1;min-width:0;display:flex}.spot-name{font-size:var(--text-md);font-weight:var(--weight-bold);line-height:var(--leading-tight);-webkit-line-clamp:2;overflow-wrap:anywhere;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.spot-meta{align-items:center;gap:var(--space-2);min-width:0;display:flex}.spot-meta small{min-width:0;color:var(--text-muted);font-weight:var(--weight-medium);font-size:var(--text-xs);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.spot-card--on .spot-meta small{color:var(--ink)}.spot-fav{top:50%;right:var(--space-2);width:var(--hit);height:var(--hit);border-radius:var(--radius-pill);color:var(--text);transition:transform var(--dur-press) var(--ease-out);background:0 0;border:0;place-items:center;padding:0;display:grid;position:absolute;transform:translateY(-50%)}.spot-fav span{border:var(--line);border-radius:var(--radius-pill);background:var(--surface);width:32px;height:32px;transition:background-color var(--dur-fast) ease;place-items:center;font-size:16px;line-height:1;display:grid}.spot-fav:active{transform:translateY(-50%)scale(.9)}@media (hover:hover) and (pointer:fine){.spot-fav:hover span{background:var(--orange-50)}}.spot-fav--on span,.spot-fav--on:hover span{background:var(--favorite);color:var(--ink)}.spots-foot{justify-content:space-between;align-items:center;gap:var(--space-2);margin:0 calc(-1 * var(--space-3)) calc(-1 * var(--space-3));padding:var(--space-2) var(--space-4);border-top:var(--line-soft);font-size:var(--text-xs);color:var(--text-muted);flex:none;display:flex}.spots-foot-links{gap:var(--space-3);display:flex}.spots-foot a{color:inherit;font-weight:var(--weight-bold);border-radius:var(--radius-sm);text-decoration:none}@media (hover:hover) and (pointer:fine){.spots-foot a:hover{color:var(--text);text-decoration:underline}}.spot-skeleton{align-items:center;gap:var(--space-3);height:64px;padding:var(--space-2);border:var(--line-soft);border-radius:var(--radius-md);background:var(--surface);display:flex}.spot-skeleton .skeleton:first-child{flex:none;width:80px;height:48px}.spot-skeleton div{flex:1}.panel-toggles,.sheet-handle,.sheet-scrim{display:none}.viewer-backdrop{z-index:var(--z-overlay);padding:var(--space-6);background:var(--scrim);animation:fade-in var(--dur-base) var(--ease-out);place-items:center;display:grid;position:absolute;inset:0}.viewer,.guide{--section-gap:var(--space-7);--card-pad:var(--space-5)}.viewer{overscroll-behavior:contain;background:var(--surface-2);border:var(--line);border-radius:var(--radius-lg);width:min(1040px,100%);max-height:100%;box-shadow:var(--pop-big);padding:var(--space-6);scrollbar-width:thin;scrollbar-color:var(--ink-20) transparent;animation:viewer-in var(--dur-base) var(--ease-out);position:relative;overflow:auto}@keyframes viewer-in{0%{opacity:0;transform:translateY(8px)scale(.97)}}@keyframes viewer-out{to{opacity:0;transform:translateY(6px)scale(.98)}}@keyframes fade-out{to{opacity:0}}.viewer-backdrop--closing{animation:fade-out var(--dur-fast) var(--ease-out) forwards;pointer-events:none}.viewer-backdrop--closing .viewer{animation:viewer-out var(--dur-fast) var(--ease-out) forwards}@media (prefers-reduced-motion:reduce){.viewer{animation-name:fade-in}.viewer-backdrop--closing .viewer{animation-name:fade-out}}.viewer-head{justify-content:space-between;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-4);display:flex}.viewer-bar{float:right;z-index:3;margin-left:var(--space-4);position:relative}.viewer-head+*{clear:both}.viewer-grab{display:none}.viewer-titles{min-width:0}.viewer-title{margin:0 0 var(--space-2);font-family:var(--display);font-weight:var(--weight-regular);font-size:var(--text-3xl);letter-spacing:var(--tracking-display);overflow-wrap:anywhere;text-wrap:balance;line-height:1}.viewer-actions{gap:var(--space-2);flex:none;display:flex}.btn--fav[aria-pressed=true]{--btn-bg:var(--favorite);--btn-fg:var(--ink)}.btn--fav[aria-pressed=true] svg{color:var(--ink)}@media (hover:hover) and (pointer:fine){.btn--fav[aria-pressed=true]:hover:not(:disabled){--btn-bg:var(--favorite-hover)}}.tags{gap:var(--space-2);flex-wrap:wrap;display:flex}.tag{text-transform:capitalize}.tag--region{background:var(--sea-50);text-transform:none}.tag--beginner{background:var(--lime);color:var(--ink)}.tag--intermediate{background:var(--sun);color:var(--ink)}.tag--advanced{background:var(--orange);color:var(--ink)}.tag--expert{background:var(--coral);color:var(--ink)}.tag--verdict{text-transform:none}.cam-tabs{gap:var(--space-2);margin:0 0 var(--space-3);scrollbar-width:none;padding-bottom:2px;display:flex;overflow-x:auto}.cam-tabs::-webkit-scrollbar{display:none}.cam-tabs .chip{flex:none;max-width:260px}.cam-tabs .chip span{text-overflow:ellipsis;overflow:hidden}.stage{border:var(--line);border-radius:var(--radius-md);background:var(--night);aspect-ratio:16/9;box-shadow:var(--pop);position:relative;overflow:hidden}.live-media{object-fit:contain;background:var(--night);border:0;width:100%;height:100%;display:block}.live-media.empty{padding:var(--space-6);color:var(--text-on-dark);font-weight:var(--weight-medium);text-align:center;text-wrap:balance;place-items:center;display:grid}.stage-badge{top:var(--space-3);left:var(--space-3);pointer-events:none;height:26px;padding:0 var(--space-2);border:var(--line);border-radius:var(--radius-sm);background:var(--paper);color:var(--ink);font-size:var(--text-xs);font-weight:var(--weight-black);letter-spacing:var(--tracking-caps);box-shadow:var(--pop-sm);align-items:center;gap:6px;display:inline-flex;position:absolute}.stage-badge i{background:var(--coral);width:8px;height:8px;box-shadow:0 0 0 1.5px var(--ink);border-radius:50%;animation:2s ease-in-out infinite live-dot}.stage-badge--clip i{background:var(--sea);border-radius:1px;animation:none}@keyframes live-dot{50%{opacity:.35}}@media (prefers-reduced-motion:reduce){.stage-badge i{animation:none}}.stage-action{right:var(--space-3);bottom:var(--space-3);position:absolute}.replay{height:100%;position:relative}.replay-bar{left:var(--space-3);right:var(--space-3);bottom:var(--space-3);align-items:center;gap:var(--space-3);padding:var(--space-1) var(--space-3) var(--space-1) var(--space-1);background:var(--glass);border:var(--line);border-radius:var(--radius-md);display:flex;position:absolute}.replay-bar input{min-width:0;accent-color:var(--text);flex:1}.replay-time{font-weight:var(--weight-bold);font-size:var(--text-sm);font-variant-numeric:tabular-nums}@media (pointer:coarse){.replay-bar .btn{width:var(--hit);height:var(--hit)}.replay-bar input{height:32px}}.viewer-foot{justify-content:space-between;align-items:center;gap:var(--space-3);margin-top:var(--space-4);flex-wrap:wrap;display:flex}.credit{align-items:center;gap:var(--space-2);min-height:var(--hit);min-width:0;font-weight:var(--weight-bold);font-size:var(--text-sm);color:var(--link);overflow-wrap:anywhere;text-decoration:none;display:inline-flex}.credit svg{flex:none;width:16px;height:16px}.watch-real-foot{display:none}@media (hover:hover) and (pointer:fine){.credit:hover{text-decoration:underline}}.nocam{align-items:center;gap:var(--space-3);padding:var(--space-4);border:2px dashed var(--ink-40);border-radius:var(--radius-md);background:var(--surface);font-size:var(--text-sm);display:flex}.nocam-icon{border-radius:var(--radius-pill);background:var(--sea-50);width:44px;height:44px;color:var(--deep);flex:none;place-items:center;display:grid}.nocam-icon svg{width:22px;height:22px}.nocam strong{font-size:var(--text-md);display:block}.nocam span{color:var(--text-muted)}.stage:has(.live-link){aspect-ratio:auto}.live-link{place-content:center;justify-items:center;gap:var(--space-3);min-height:200px;padding:var(--space-6);text-align:center;color:var(--text-on-dark);display:grid}.live-link p{max-width:36ch;margin:0}.spot-view-error{z-index:var(--z-toast);place-content:center;justify-items:center;gap:var(--space-3);padding:var(--space-6);color:var(--text-on-dark);font-weight:var(--weight-bold);text-align:center;background:#1d1b3fe6;display:grid;position:fixed;inset:0}.guide{margin-top:var(--space-7);gap:var(--space-5);display:grid}.guide>.sabout:first-child{border-top:0;margin-top:0;padding-top:0}.guide-lede{max-width:68ch;font-size:var(--text-lg);line-height:var(--leading-body);text-wrap:pretty;margin:0}.crowd{letter-spacing:2px;font-size:var(--text-2xs);color:var(--deep)}.crowd-off{color:var(--ink-20)}.months-strip{grid-template-columns:repeat(12,minmax(0,1fr));gap:3px;margin:0;padding:0;list-style:none;display:grid}.months-strip li{border:var(--line-soft);border-radius:var(--radius-sm);background:var(--surface);height:34px;color:var(--text-subtle);font-size:var(--text-xs);font-weight:var(--weight-bold);place-items:center;display:grid}.months-strip li.on{border:var(--line);background:var(--sea);color:var(--ink)}.months-strip li.is-now{box-shadow:inset 0 -3px 0 var(--coral)}.trip-notes{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(240px,1fr));margin:0;display:grid}.trip-note{padding:var(--space-3);border:1.5px solid var(--ink-10);border-radius:var(--radius-md);background:var(--surface)}.trip-note dt{justify-content:space-between;align-items:baseline;gap:var(--space-2);margin-bottom:var(--space-1);color:var(--text-muted);font-size:var(--text-2xs);font-weight:var(--weight-black);letter-spacing:var(--tracking-caps);text-transform:uppercase;display:flex}.trip-note-extra{color:var(--deep);font-variant-numeric:tabular-nums}.trip-note dd{font-size:var(--text-sm);line-height:var(--leading-body);text-wrap:pretty;margin:0}.spot-ideal{gap:var(--space-5);padding:var(--space-4);border:var(--line);border-radius:var(--radius-md);background:var(--surface);grid-template-columns:176px 1fr;align-items:start;display:grid}.rose{width:168px;height:168px;display:block}.rose,.rose-key{--rose-swell-ok:#a9dceb;--rose-wind-ok:#d6f0b4;--rose-wind-best:#5bbf3a;--rose-land:#f3e2c6;--rose-coast:#c9a46a}:root[data-theme=dark] :is(.rose,.rose-key){--rose-swell-ok:#2a6c86;--rose-wind-ok:#3c5f34;--rose-wind-best:#7ad65a;--rose-land:#3d3328;--rose-coast:#a8875a}.rose-sea{fill:var(--sea-50)}.rose-land{fill:var(--rose-land)}.rose-coast{stroke:var(--rose-coast)}.rose-place{letter-spacing:.06em;text-transform:uppercase;fill:var(--text-muted);font-size:7px;font-weight:700}.rose-rim{stroke:var(--border)}.rose-track{stroke:var(--ink-5)}.rose-swell-ok{stroke:var(--rose-swell-ok)}.rose-swell-best{stroke:var(--swell)}.rose-wind-ok{stroke:var(--rose-wind-ok)}.rose-wind-best{stroke:var(--rose-wind-best)}.rose-label{fill:var(--text)}.rose-now{stroke:var(--ink)}.rose-now--swell{fill:var(--swell)}.rose-now--swell2{fill:#2fb3c9}.rose-now--swell3{fill:#8fd8e3}.rose-now--wind{fill:var(--white)}.rose-key{gap:var(--space-1);margin:var(--space-1) 0 0;font-size:var(--text-sm);line-height:var(--leading-tight);color:var(--text);padding:0;list-style:none;display:grid}.rose-key li{align-items:center;gap:var(--space-2);display:flex}.rose-key b{font-weight:800}.rose-key-soft{font-size:var(--text-xs);color:var(--text-muted)}.rose-sw{border-radius:var(--radius-pill);flex:none;width:22px;height:8px}.rose-sw--swell{background:linear-gradient(90deg, var(--swell) 0 60%, var(--rose-swell-ok) 60%)}.rose-sw--wind{background:linear-gradient(90deg, var(--rose-wind-best) 0 60%, var(--rose-wind-ok) 60%)}.rose-key-arrows{flex:none;width:22px;height:22px}.ideal{gap:var(--space-2) var(--space-4);font-size:var(--text-sm);line-height:var(--leading-body);grid-template-columns:max-content 1fr;margin:0;display:grid}.ideal dt{font-weight:var(--weight-black);text-transform:uppercase;font-size:var(--text-2xs);letter-spacing:var(--tracking-caps);color:var(--text-muted);padding-top:2px}.ideal dd{margin:0}.hazards{gap:var(--space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.hazards li{align-items:center;gap:var(--space-2);min-height:28px;padding:2px var(--space-3);border:var(--line);border-radius:var(--radius-pill);background:var(--orange-50);font-size:var(--text-sm);font-weight:var(--weight-bold);display:inline-flex}.hazards li:first-letter{text-transform:uppercase}.forecast{margin-top:var(--section-gap);padding-top:var(--section-gap);border-top:2px dashed var(--ink-40)}.forecast.empty{justify-items:center;gap:var(--space-1);padding:var(--space-7) var(--space-4);text-align:center;font-weight:var(--weight-medium);color:var(--text-muted);display:grid}.forecast-head{justify-content:space-between;align-items:center;gap:var(--space-2) var(--space-3);margin-bottom:var(--space-5);flex-wrap:wrap;display:flex}.forecast-head h3{font-family:var(--display);font-weight:var(--weight-regular);font-size:var(--text-2xl);letter-spacing:var(--tracking-display);margin:0;line-height:1}.arrow{color:var(--sea);flex:none}.metrics,.models{padding:0 var(--space-4);border:var(--line);border-radius:var(--radius-md);background:var(--surface);grid-column:1/-1}.models{margin-top:var(--space-3)}.metrics summary,.models summary{align-items:center;gap:2px var(--space-2);min-height:var(--control-lg);padding:var(--space-2) 0;font-weight:var(--weight-black);cursor:pointer;flex-wrap:wrap;list-style:none;display:flex}.metrics summary::-webkit-details-marker{display:none}.models summary::-webkit-details-marker{display:none}.metrics summary:before,.models summary:before{content:"";width:8px;height:8px;margin:0 var(--space-1) 0 2px;border-right:2px solid var(--text);border-bottom:2px solid var(--text);transition:transform var(--dur-fast) var(--ease-out);flex:none;transform:rotate(-45deg)}.metrics[open] summary:before,.models[open] summary:before{transform:rotate(45deg)}.metrics[open],.models[open]{padding-bottom:var(--space-4)}.metrics ul{margin:var(--space-1) 0 0;gap:var(--space-2);padding:0;list-style:none;display:grid}.metrics li{gap:var(--space-3);font-size:var(--text-sm);grid-template-columns:110px 90px 1fr;align-items:center;display:grid}.metric-label{font-weight:var(--weight-bold)}.metric-bar{border:1.5px solid var(--border);border-radius:var(--radius-pill);background:var(--ink-5);height:10px;overflow:hidden}.metric-bar span{height:100%;display:block}.metric-detail{color:var(--text-muted)}.model-panel{margin-top:var(--space-2)}.model-head{justify-content:space-between;gap:var(--space-2);font-size:var(--text-sm);display:flex}.agree{color:var(--success);font-weight:var(--weight-bold)}.disagree{color:var(--warning);font-weight:var(--weight-bold)}.model-chart{border-bottom:var(--line-soft);width:100%;height:80px;display:block}.model-keys{gap:2px var(--space-3);margin-top:var(--space-1);font-size:var(--text-2xs);flex-wrap:wrap;display:flex}.model-keys i{width:10px;height:3px;margin-right:var(--space-1);vertical-align:middle;display:inline-block}.forecast-src{margin:var(--space-3) 0 0;font-size:var(--text-xs);color:var(--text-muted)}.forecast-src a{color:var(--link);font-weight:var(--weight-bold)}:root .maplibregl-map{font-family:var(--body)}.maplibregl-ctrl-group{overflow:hidden;border:var(--line)!important;border-radius:var(--radius-md)!important;box-shadow:var(--pop-sm)!important;background:var(--surface)!important}.maplibregl-ctrl-group button{width:var(--control-md)!important;height:var(--control-md)!important}.maplibregl-ctrl-group button+button{border-top:var(--line-soft)!important}.maplibregl-ctrl-group button:focus-visible{outline-offset:-3px;outline:3px solid var(--focus)!important;box-shadow:none!important}@media (hover:hover) and (pointer:fine){.maplibregl-ctrl-group button:not(:disabled):hover{background-color:var(--sun-50)!important}}.maplibregl-ctrl-attrib{font-size:var(--text-2xs)}.maplibregl-ctrl-attrib.maplibregl-compact{color:var(--text);border-radius:var(--radius-pill)!important;background:var(--glass)!important}.maplibregl-ctrl-attrib a{color:var(--text-muted)}:root[data-theme=dark] .maplibregl-ctrl-icon,:root[data-theme=dark] .maplibregl-ctrl-attrib-button{filter:invert()hue-rotate(180deg)}:root[data-theme=dark] .maplibregl-ctrl-attrib:not(.maplibregl-compact){background:var(--glass)}@media (width<=1100px) and (width>=721px){.viewer{padding:var(--space-5)}.viewer-title{font-size:var(--text-2xl)}.viewer-bar{top:var(--space-3);position:sticky}}@media (width<=720px){.viewer-backdrop{align-items:end;padding:0}.viewer{max-height:calc(100% - 24px - env(safe-area-inset-top,0px));padding:var(--space-2) var(--space-4) calc(var(--space-6) + env(safe-area-inset-bottom,0px));border-radius:var(--radius-lg) var(--radius-lg) 0 0;box-shadow:var(--lift);animation:sheet-in var(--dur-slow) var(--ease-drawer);border-bottom:0;flex-direction:column;display:flex}.viewer>*{flex-shrink:0}.viewer,.guide{--section-gap:var(--space-6);--card-pad:var(--space-4)}.viewer-bar{float:none;top:calc(-1 * var(--space-2));margin:calc(-1 * var(--space-2)) calc(-1 * var(--space-4)) var(--space-2);padding:18px var(--space-4) var(--space-2);background:var(--surface-2);box-shadow:0 6px 6px -6px var(--ink-20);touch-action:none;-webkit-user-select:none;user-select:none;justify-content:flex-end;display:flex;position:sticky}.viewer-grab{border-radius:var(--radius-pill);background:var(--ink-20);width:40px;height:5px;margin-left:-20px;display:block;position:absolute;top:7px;left:50%}.viewer-backdrop--closing .viewer{animation:sheet-out var(--dur-base) var(--ease-out) forwards}.viewer-title{font-size:var(--text-2xl)}.viewer-head{margin-bottom:var(--space-3)}.viewer-actions .btn--save .btn-text{display:none}.viewer-actions .btn--save{width:var(--btn-h);padding:0}.stage{margin:0 calc(-1 * var(--space-2));box-shadow:none}.replay-bar{left:var(--space-2);right:var(--space-2);bottom:var(--space-2)}.viewer-foot{margin-top:var(--space-3);gap:var(--space-2) var(--space-3)}.viewer-foot .seg{--seg-pad:2px;box-shadow:none}.viewer-foot .seg>button{min-height:30px;padding:0 var(--space-3);font-size:var(--text-xs)}.viewer-foot .credit{min-height:34px;font-size:var(--text-xs)}.stage-badge{top:var(--space-2);left:var(--space-2);height:22px;font-size:var(--text-2xs);box-shadow:none;gap:5px;padding:0 6px}.replay-bar{gap:var(--space-2);padding:2px var(--space-2) 2px 2px;border-width:1.5px}.replay-bar .btn{width:34px;height:34px;min-height:0}.replay-time{font-size:var(--text-xs)}.viewer-foot--live-only .seg{display:none}.viewer-foot .credit{flex:1 1 0;justify-content:flex-end}.viewer-foot--live-only .credit{justify-content:flex-start}.credit span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.watch-real-foot{min-width:0;max-width:100%;min-height:var(--hit);text-align:center;white-space:normal;text-wrap:balance;flex:100%;justify-content:center;text-decoration:none;display:flex}.stage:has(.sv--inline){aspect-ratio:4/3}.guide{margin-top:var(--space-6)}.guide-lede{font-size:var(--text-md)}.months-strip li{height:30px;font-size:var(--text-2xs)}.spot-ideal{justify-items:center;gap:var(--space-4);grid-template-columns:1fr}.metrics li{grid-template-columns:90px 1fr}.metric-detail{grid-column:1/-1}.forecast-head h3{font-size:var(--text-xl)}}@media (height<=500px) and (width>=721px) and (width<=950px){.viewer-backdrop{padding:0}.viewer{width:100%;height:100%;max-height:100%;padding:var(--space-3) calc(var(--space-5) + env(safe-area-inset-right,0px)) calc(var(--space-5) + env(safe-area-inset-bottom,0px)) calc(var(--space-5) + env(safe-area-inset-left,0px));border:0;border-radius:0}.viewer-bar{position:sticky;top:0}.stage{width:min(100%, calc((100dvh - var(--space-6)) * 16 / 9));margin-inline:auto}}@media (width<=720px),(height<=500px) and (width<=950px){.app{--edge:var(--space-3)}.rail{display:contents}.topbar{z-index:var(--z-panel);top:calc(var(--edge) + env(safe-area-inset-top,0px));left:calc(var(--edge) + env(safe-area-inset-left,0px));max-width:calc(100% - 2 * var(--edge) - 56px);gap:var(--space-2);min-height:52px;padding:var(--space-1) var(--space-1) var(--space-1) var(--space-3);border-radius:var(--radius-md);box-shadow:var(--pop);position:absolute}.logo{--logo-w:136px}.topbar-meta{display:none}.panel-toggles{gap:var(--space-2);z-index:calc(var(--z-panel) + 1);left:50%;bottom:calc(var(--space-4) + env(safe-area-inset-bottom,0px));display:flex;position:absolute;transform:translate(-50%)}.panel-toggle{font-size:var(--text-md);font-variant-numeric:tabular-nums}.panel-search{aspect-ratio:1;justify-content:center;padding:0}.layer-cycle{gap:var(--space-2);padding-inline:var(--space-3) var(--space-4)}.layer-cycle-text{text-align:left;font-size:var(--text-sm);font-weight:var(--weight-bold);white-space:nowrap;line-height:1.1;display:grid}.layer-cycle-text small{font-size:var(--text-3xs);font-weight:var(--weight-black);letter-spacing:calc(var(--tracking-caps) / 2);text-transform:uppercase;color:var(--text-muted)}@media (width<=359px){.layer-cycle{aspect-ratio:1;justify-content:center;padding:0}.layer-cycle-text{display:none}}.app:has(.spots--open .search input:focus) .panel-toggles{display:none}.spots{z-index:var(--z-panel);height:min(78dvh,640px);padding:0 var(--space-3) calc(72px + env(safe-area-inset-bottom,0px));border-radius:var(--radius-lg) var(--radius-lg) 0 0;box-shadow:var(--lift);visibility:hidden;transition:transform var(--dur-slow) var(--ease-drawer), visibility 0s linear var(--dur-slow), height var(--dur-base) var(--ease-out);border-bottom:0;position:absolute;bottom:0;left:0;right:0;transform:translateY(calc(100% + 24px))}.spots--open{visibility:visible;transition:transform var(--dur-slow) var(--ease-drawer), visibility 0s, height var(--dur-base) var(--ease-out);transform:none}:is(.spots--open:has(.search input:focus),.spots--filtering){height:calc(100dvh - var(--space-2) - env(safe-area-inset-top,0px))}.spots:has(.search input:focus){padding-bottom:var(--space-3)}@media (height<=500px){.spots{height:calc(100dvh - var(--space-2) - env(safe-area-inset-top,0px))}}.sheet-handle{width:calc(100% + 2 * var(--space-3));height:var(--space-7);margin:0 calc(-1 * var(--space-3)) var(--space-1);border-radius:var(--radius-lg) var(--radius-lg) 0 0;cursor:grab;touch-action:none;background:0 0;border:0;flex:none;justify-content:center;align-items:center;padding:0;display:flex}.sheet-handle span{border-radius:var(--radius-pill);background:var(--ink-20);width:40px;height:5px;transition:background-color var(--dur-fast) ease}.sheet-handle:active span{background:var(--ink-40)}.sheet-handle:focus-visible{outline:3px solid var(--focus);outline-offset:-3px}.sheet-scrim:not([hidden]){z-index:var(--z-panel);display:block;position:absolute;inset:0}.spots-foot{display:none}.spots--filtering .spots-tools{flex:1;grid-template-rows:auto auto minmax(0,1fr);min-height:0;padding-bottom:0}.spots--filtering .filter-panel{min-height:0;max-height:none}.spots--filtering .spot-list{display:none}.search-clear:after{content:"";width:var(--hit);height:var(--hit);position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%)}@media (width>=721px){.spots{border-radius:0 var(--radius-lg) 0 0;width:440px;right:auto}.panel-toggles{left:220px}}}@keyframes sheet-in{0%{transform:translateY(100%)}}@keyframes sheet-out{to{transform:translateY(100%)}}@media (prefers-reduced-motion:reduce){.spot-list--intro>li:nth-child(-n+10){animation-name:fade-in}@media (width<=720px),(height<=500px) and (width<=950px){.spots,.spots--open{transition:visibility}}@media (width<=720px){.viewer{animation-name:fade-in}.viewer-backdrop--closing .viewer{animation-name:fade-out}}}
