@font-face{font-family:Cinzel;font-style:normal;font-display:swap;font-weight:600;src:url(./cinzel-latin-600-normal-DdCmoF-5.woff2) format("woff2"),url(./cinzel-latin-600-normal-C4M8-_l5.woff) format("woff")}@font-face{font-family:Cinzel;font-style:normal;font-display:swap;font-weight:700;src:url(./cinzel-latin-700-normal-Ca1xIpTQ.woff2) format("woff2"),url(./cinzel-latin-700-normal-DF3_tZ4d.woff) format("woff")}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:400;src:url(./plus-jakarta-sans-latin-400-normal-BEreAzRs.woff2) format("woff2"),url(./plus-jakarta-sans-latin-400-normal-B430qp47.woff) format("woff")}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:500;src:url(./plus-jakarta-sans-latin-500-normal-QJgU3aHP.woff2) format("woff2"),url(./plus-jakarta-sans-latin-500-normal-8oBgpzDE.woff) format("woff")}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:700;src:url(./plus-jakarta-sans-latin-700-normal-ByV-LENh.woff2) format("woff2"),url(./plus-jakarta-sans-latin-700-normal-B-Gqp1pw.woff) format("woff")}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;overflow:hidden;overscroll-behavior:none}body{font-family:var(--body);color:var(--ink);background:var(--backdrop);-webkit-font-smoothing:antialiased;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.disp{font-family:var(--display);font-weight:700;letter-spacing:.06em}#stage{position:fixed;top:0;right:0;bottom:0;left:0;touch-action:none}#stage canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block}#planning{display:none}body.plan #planning{display:block}body.plan #three{visibility:hidden}.top{position:fixed;left:0;right:0;top:0;height:56px;padding-top:env(safe-area-inset-top,0px);background:var(--panel);border-bottom:1px solid var(--line);display:flex;align-items:center;padding-left:max(18px,env(safe-area-inset-left,0px));padding-right:max(12px,env(safe-area-inset-right,0px));gap:16px;z-index:10}.brand{font-size:17px;white-space:nowrap}.sep{width:1px;height:28px;background:var(--line)}.side{display:flex;align-items:center;gap:8px;font-weight:700;font-size:14px}.chip{width:12px;height:12px;border-radius:3px;display:inline-block;flex:none}.date{display:flex;flex-direction:column;gap:1px;min-width:0}.date b{font-size:14px;white-space:nowrap}.date span{font-size:12px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pill{border-radius:99px;font-size:12px;font-weight:700;padding:4px 10px;white-space:nowrap;border:1px solid transparent}.pill.warn{background:var(--warn-bg);color:var(--warn-ink);border-color:var(--warn-line)}.pill.bad{background:var(--bad-bg);color:var(--bad-ink);border-color:var(--bad-line)}.pill.plain{background:var(--ctl);color:var(--ink)}.season{margin-left:auto;display:flex;flex-direction:column;gap:3px;width:156px}.season .row{display:flex;justify-content:space-between;font-size:11px;color:var(--ink-2);font-weight:500}.season b{font-size:14px}.season b.open{color:var(--ok-ink)}.season b.closed{color:var(--bad-ink)}.strip{position:relative;height:6px;background:var(--track);border-radius:3px}.strip i{position:absolute;top:0;bottom:0;background:var(--sailing);border-radius:3px}.strip em{position:absolute;top:-3px;width:3px;height:12px;background:var(--ink);border-radius:2px;transition:left .2s linear}.seg{display:flex;background:var(--ctl);border-radius:10px;padding:4px;gap:2px}.seg button{min-width:36px;height:34px;display:grid;place-items:center;border-radius:7px;font-size:13px;font-weight:500;color:var(--ink-2)}.seg button.on{background:var(--ink);color:#fff;font-weight:700}.menu{width:44px;height:44px;border-radius:10px;display:grid;place-items:center}.menu:hover,.zoombar button:hover,.x:hover{background:var(--ctl)}.rail{position:fixed;left:0;top:56px;bottom:0;width:72px;padding-left:env(safe-area-inset-left,0px);background:var(--panel);border-right:1px solid var(--line);display:flex;flex-direction:column;align-items:center;padding-top:8px;gap:4px;z-index:9}.rb{width:56px;height:56px;border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:11px;color:var(--ink-2)}.rb svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.rb.on{background:var(--tint);color:var(--accent-ink);font-weight:700}.rb:disabled{opacity:.38;cursor:default}.panel{position:fixed;right:max(16px,env(safe-area-inset-right,0px));top:72px;width:340px;max-height:calc(100% - 160px);overflow:auto;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:18px;z-index:8}.ph{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.ph small{font-size:12px;color:var(--ink-2)}.ph h2{font-size:22px;margin-top:2px}.x{width:36px;height:36px;border-radius:8px;background:var(--ctl);display:grid;place-items:center;color:var(--ink-2);flex:none}.rule{height:8px;margin:10px 0 12px;background:var(--rule-bg);opacity:.85}.pills{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px 14px;padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.fig small{display:block;font-size:12px;color:var(--ink-2)}.fig b{font-size:17px;font-variant-numeric:tabular-nums}.sect{font-size:12px;font-weight:700;color:var(--ink-2);margin:12px 0 6px;text-transform:uppercase;letter-spacing:.04em}.rows{display:grid;gap:6px}.rowbtn{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:9px 10px;border:1px solid var(--line);border-radius:10px;font-size:13px;text-align:left;width:100%}.rowbtn:hover{border-color:var(--accent)}.rowbtn span{color:var(--ink-2);font-size:12px;text-align:right}.note{font-size:13px;color:var(--ink-2);line-height:1.5}.btn{height:48px;border-radius:10px;display:grid;place-items:center;font-size:15px;font-weight:700;background:var(--accent);color:#fff;width:100%;margin-top:14px}.btn.sec{background:var(--panel);border:1px solid var(--line);color:var(--ink);font-weight:500;font-size:14px}.legend{position:fixed;left:calc(88px + env(safe-area-inset-left,0px));top:72px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 12px;font-size:12px;z-index:7;display:grid;grid-template-columns:auto auto;gap:6px 14px}.legend div{display:flex;align-items:center;gap:8px;white-space:nowrap}.hint{position:fixed;top:72px;left:50%;transform:translate(-50%);background:var(--ink);color:#fff;font-size:13px;padding:8px 14px;border-radius:99px;z-index:11;transition:opacity .4s;pointer-events:none;max-width:calc(100% - 200px);text-align:center}.hint.hide{opacity:0}.info{position:fixed;left:calc(88px + env(safe-area-inset-left,0px));bottom:max(16px,env(safe-area-inset-bottom,0px));background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 12px;font-size:12px;color:var(--ink-2);z-index:7;display:flex;gap:14px;align-items:center}.scale{display:flex;flex-direction:column;gap:3px}.scale i{display:block;height:6px;border:1.5px solid var(--ink);border-top:none}.zoombar{position:fixed;right:max(16px,env(safe-area-inset-right,0px));bottom:max(16px,env(safe-area-inset-bottom,0px));background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:6px;display:flex;flex-direction:column;gap:4px;z-index:7;align-items:center}.zoombar button{width:44px;height:44px;border-radius:8px;display:grid;place-items:center;font-size:22px}.zoombar small{font-size:10px;color:var(--ink-2);font-weight:700}.labels{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:5;overflow:hidden}.lab{position:absolute;transform:translate(-50%,-50%);white-space:nowrap}.lab.city{background:#fffffff0;border:1px solid var(--line);border-radius:99px;padding:2px 9px;font-weight:700;font-size:12.5px;display:flex;gap:6px;align-items:center}.lab.city.small{font-size:11px;padding:1px 7px}.lab.sel{border:2px solid var(--accent)}.lab.sea{font-size:13px;color:var(--sea-ink);font-style:italic;letter-spacing:.18em;text-transform:uppercase}.pop{position:fixed;top:64px;right:max(12px,env(safe-area-inset-right,0px));width:300px;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px;z-index:12;display:none}.pop.open{display:block}.pop h3{font-size:16px;margin-bottom:4px}.toggle{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid var(--line);font-size:14px}.toggle:last-of-type{border-bottom:0}.sw{width:44px;height:26px;border-radius:99px;background:var(--line);position:relative;flex:none}.sw:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:left .15s}.sw[aria-checked=true]{background:var(--accent)}.sw[aria-checked=true]:after{left:21px}@media (max-width: 1100px){.date span{max-width:220px}.legend{display:none}}@media (max-width: 900px){.brand,.sep{display:none}.season{width:118px}.season .row span:first-child{display:none}.season .row{justify-content:flex-end}.panel{width:300px}.date span{max-width:150px}}@media (prefers-reduced-motion: reduce){.strip em,.hint{transition:none}}
