.uplot,.uplot *,.uplot :before,.uplot :after{box-sizing:border-box}.uplot{width:min-content;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}.u-title{text-align:center;font-size:18px;font-weight:700}.u-wrap{user-select:none;position:relative}.u-over,.u-under{position:absolute}.u-under{overflow:hidden}.uplot canvas{width:100%;height:100%;display:block;position:relative}.u-axis{position:absolute}.u-legend{text-align:center;margin:auto;font-size:14px}.u-inline{display:block}.u-inline *{display:inline-block}.u-inline tr{margin-right:16px}.u-legend th{font-weight:600}.u-legend th>*{vertical-align:middle;display:inline-block}.u-legend .u-marker{width:1em;height:1em;margin-right:4px;background-clip:padding-box!important}.u-inline.u-live th:after{content:":";vertical-align:middle}.u-inline:not(.u-live) .u-value{display:none}.u-series>*{padding:4px}.u-series th{cursor:pointer}.u-legend .u-off>*{opacity:.3}.u-select{pointer-events:none;background:#00000012;position:absolute}.u-cursor-x,.u-cursor-y{pointer-events:none;will-change:transform;position:absolute;top:0;left:0}.u-hz .u-cursor-x,.u-vt .u-cursor-y{border-right:1px dashed #607d8b;height:100%}.u-hz .u-cursor-y,.u-vt .u-cursor-x{border-bottom:1px dashed #607d8b;width:100%}.u-cursor-pt{pointer-events:none;will-change:transform;border:0 solid;border-radius:50%;position:absolute;top:0;left:0;background-clip:padding-box!important}.u-axis.u-off,.u-select.u-off,.u-cursor-x.u-off,.u-cursor-y.u-off,.u-cursor-pt.u-off{display:none}:root{color-scheme:light;--paper:#efece3;--surface:#f6f3ec;--ink:#233f7a;--ink-2:#3d5690;--ink-3:#6273a0;--rule:#cfd1d9;--rule-strong:#a3abc6;--seal:#e2557c;--accent:#e2557c;--third:#f0b419;--misreg:#f0b419b0;--link:#233f7a;--focus:#e2557c;--hover:#2f63b50f;--p1:#2f63b5;--p2:#e2557c;--obs:#233f7a;--total:#2f63b51a;--total-line:#2f63b566;--good:#00678f;--fair:#9aa0b4;--poor:#c9690c;--none:#b9bccb;--night:#2b519c0d;--grid:#d6d9e3;--tide:#2b519c;--tide-fill:#2b519c14;--s1:#2f4e94;--s2:#e2557c;--s3:#2a86c4;--s4:#bf8d00;--s5:#a8402e;--s6:var(--p1);--s7:var(--p2);--s8:#bf8d00;--s9:#1d8a6e;--spot:#e2557c;--buoy:#233f7a;--buoy-ink:#f3f1ea;--callout-bg:#f3f1ea;--callout-ink:#233f7a;--callout-line:#e2557c;--map-land:#f6f3ec;--map-land-2:#e3e1e4;--map-sea-0:#d3def2;--map-sea-1:#c0d0ec;--map-sea-2:#a8bee4;--map-sea-3:#93addb;--map-sea-4:#809fd3;--map-contour:#e2557c;--map-coast:#233f7a;--map-road:#f3d98f;--map-label:#233f7a;--rose-face:#f3f1ea;--rose-window:#e2557c16;--rose-window-core:#e2557c2a;--rose-land:#dad8d2;--rose-ring:1.5;--rose-cardinals:"北 東 南 西";--rose-ticks:16;--font-display:"Bricolage Grotesque";--font-num:"Bricolage Grotesque";--font-body:"Bricolage Grotesque";--font-zh:"Noto Serif TC";--font:var(--font-body), var(--font-zh), system-ui, sans-serif;--radius:0px}*{box-sizing:border-box}html{background:var(--paper);color:var(--ink);font-family:var(--font-body), var(--font-zh), system-ui, sans-serif;font-variant-numeric:tabular-nums;font-variation-settings:"opsz" 14;-webkit-font-smoothing:antialiased;font-size:16px;line-height:1.5}body{margin:0}a{color:var(--link);text-underline-offset:.18em;text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px;text-decoration-color:var(--seal)}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}h1,h2,h3{font-family:var(--font-display), var(--font-zh), serif;letter-spacing:-.01em;font-variation-settings:"opsz" 96, "wdth" 75;margin:0;font-weight:800;line-height:1.1}h2{font-size:1.55rem}h3{font-variation-settings:"opsz" 24, "wdth" 85;font-size:1.1rem}p{max-width:70ch}.zh{font-family:var(--font-zh), sans-serif}small{color:var(--ink-3);margin-left:.12em;font-size:.62em;font-weight:500}.wrap{max-width:1300px;margin:0 auto;padding:0 24px}.note{color:var(--ink-3);margin:4px 0 0;font-size:.86rem}.muted{color:var(--ink-2)}.faint{color:var(--ink-3);font-size:.875rem}header.site{background:var(--paper);border-bottom:6px solid var(--third);position:relative;box-shadow:0 4px #e2557c88}.bar{flex-wrap:wrap;align-items:center;gap:28px;min-height:64px;display:flex}.brand{color:var(--ink);align-items:center;gap:12px;text-decoration:none;display:inline-flex}.brand-mark{background:var(--seal);width:34px;height:34px;box-shadow:inset 0 0 0 2px var(--seal), inset 0 0 0 4px var(--paper), 3px 3px 0 var(--third);border-radius:3px;flex:none;place-items:center;display:grid;transform:rotate(-4deg)}.brand-mark:after{content:"浪";color:var(--paper);font:900 20px/1 Noto Serif TC}.brand-zh{font:900 1.45rem/1 var(--font-zh);color:var(--p1);letter-spacing:.04em;text-shadow:2px 1.5px 0 var(--third);order:-1}.brand-en{color:var(--ink-2);font-size:.95rem;font-weight:600}header.site nav{gap:20px;display:flex}header.site nav a{color:var(--ink-2);border-bottom:2px solid #0000;padding:4px 0;text-decoration:none}header.site nav a:hover{color:var(--ink)}header.site nav a[aria-current=page]{color:var(--ink);border-bottom-color:var(--seal)}.fresh{color:var(--ink-3);margin:0 0 0 auto;font-size:.85rem}.fresh.stale{color:var(--poor)}.headline{flex-wrap:wrap;align-items:baseline;gap:0 18px;display:flex}.headline .zh{letter-spacing:.04em;color:var(--p1);text-shadow:4px 3px #f0b419b8,-2px 2px #e2557c88;order:-1;margin:0;font-size:clamp(3rem,7vw,5rem);font-weight:900}.headline .en{color:var(--ink-2);font-size:clamp(1.5rem,3vw,2rem)}.headline.small .zh{font-size:clamp(2.4rem,5vw,3.6rem)}.sw{vertical-align:0;border-radius:50%;flex:none;width:10px;height:10px;margin-right:7px;display:inline-block}.sw.p1,.lg.p1{background:var(--p1)}.sw.p2,.lg.p2{background:var(--p2)}.sw.obs{background:var(--ink-3)}.lg.obs{background:var(--obs)}.t-good{--tone:var(--good)}.t-fair{--tone:var(--fair)}.t-poor{--tone:var(--poor)}.t-none{--tone:var(--none)}.sw[class*=t-]{background:var(--tone);border-radius:2px}.wind-chip{white-space:nowrap;color:var(--ink);background:color-mix(in srgb, var(--tone) 18%, transparent);align-items:center;gap:5px;padding:4px 8px 4px 6px;font-size:.78rem;font-weight:600;line-height:1;display:inline-flex}.wind-chip:before{content:"";background:var(--tone);border-radius:2px;width:8px;height:8px}.wind-key,.legend{color:var(--ink-2);flex-wrap:wrap;gap:4px 14px;margin:0;padding:0;font-size:.8rem;list-style:none;display:flex}.wind-key li,.legend li{align-items:center;display:inline-flex}.lg{margin-right:6px;display:inline-block}.lg-line{border-radius:2px;width:16px;height:3px}.lg-area{background:var(--total);border-top:2px solid var(--total-line);width:14px;height:10px}.lg-gust{background:linear-gradient(color-mix(in srgb, var(--ink-2) 30%, transparent) 0 50%, var(--ink-2) 50%);width:14px;height:10px}.lg-dot{background:var(--obs);border-radius:50%;width:6px;height:6px}.dir-arrow{fill:currentColor;vertical-align:-2px;flex:none}.panel-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:6px 20px;display:flex}.home-intro{padding:32px 0 24px}.home-intro .lede{color:var(--ink-2);margin:12px 0 0;font-size:1.05rem}.home-grid{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:start;gap:36px;display:grid}.map-frame{margin:0;position:relative}.home-map{position:sticky;top:16px}.map{background:var(--map-sea-0);border:1.5px solid var(--ink);width:100%;height:100%;min-height:300px;overflow:hidden}.home-map .map{height:min(760px,100vh - 40px)}.map-key{color:var(--ink-2);gap:18px;margin-top:8px;font-size:.8rem;display:flex}.map-key span{align-items:center;gap:6px;display:inline-flex}.key-spot{background:var(--spot);border-radius:50%;width:11px;height:11px}.key-buoy{background:var(--buoy);border-radius:2px;width:11px;height:11px}.spots-panel .note{margin-bottom:10px}.region h3{border-bottom:4px double var(--ink);margin-top:22px;padding-bottom:6px}.region ul{margin:0;padding:0;list-style:none}.spot-row{border-bottom:1px solid var(--rule);color:inherit;grid-template-columns:minmax(0,1fr) 4.2em 168px;grid-template-areas:"nm hs strip""chip hs strip";align-items:center;gap:3px 14px;padding:9px 4px;text-decoration:none;display:grid}.spot-row:hover{background:var(--hover)}.spot-row .nm{white-space:nowrap;text-overflow:ellipsis;grid-area:nm;font-weight:600;overflow:hidden}.spot-row .nm .zh,.buoy-row .nm .zh{color:var(--ink-3);font-size:.88em;font-weight:400}.spot-row .hs,.buoy-row .hs{text-align:right;font-family:var(--font-num);font-variation-settings:"opsz" 96, "wdth" 75;font-size:1.45rem;font-weight:800;line-height:1}.spot-row .hs{grid-area:hs}.spot-row .wind-chip{grid-area:chip;justify-self:start}.spot-row .strip-wrap{grid-area:strip}.strip{display:block}.strip rect{fill:var(--tone)}.strip-day{stroke:var(--rule-strong);stroke-width:1px;vector-effect:non-scaling-stroke}.buoys-panel{margin-top:56px}.buoy-list{border-top:1.5px solid var(--ink);grid-template-columns:repeat(auto-fill,minmax(560px,1fr));column-gap:36px;margin:14px 0 0;padding:0;list-style:none;display:grid}.buoy-row{border-bottom:1px solid var(--rule);color:inherit;grid-template-columns:minmax(0,1fr) 4em 3.6em 4.4em 132px;grid-template-areas:"nm hs tp dir sp""meta hs tp dir sp";align-items:center;column-gap:12px;padding:9px 4px;text-decoration:none;display:grid}.buoy-row:hover{background:var(--hover)}.buoy-row .nm{white-space:nowrap;text-overflow:ellipsis;grid-area:nm;font-weight:600;overflow:hidden}.buoy-row .meta{color:var(--ink-3);grid-area:meta;font-size:.78rem}.buoy-row.stale .meta{color:var(--poor)}.buoy-row .hs{grid-area:hs}.buoy-row .tp{text-align:right;color:var(--ink-2);grid-area:tp}.buoy-row .dir{color:var(--ink-2);grid-area:dir;align-items:center;gap:5px;font-size:.88rem;display:inline-flex}.buoy-row .sp{grid-area:sp}.spark{display:block;overflow:visible}.spark path{fill:none;stroke:var(--obs);stroke-width:1.6px;stroke-linejoin:round}.spark circle{fill:var(--obs)}.spark-base{stroke:var(--rule)}.more{margin-top:12px;font-size:.9rem}.maplibregl-map{font-family:var(--font-body), var(--font-zh), sans-serif}.callouts{pointer-events:none;z-index:2;position:absolute;inset:0;overflow:hidden}.callout-lines{position:absolute;inset:0}.callout-lines path{stroke:var(--callout-line);stroke-width:1px;fill:none}.callout{pointer-events:auto;white-space:nowrap;color:var(--callout-ink);background:var(--callout-bg);border:1.5px solid var(--ink);box-shadow:2px 2px 0 var(--seal);align-items:center;gap:6px;padding:3px 7px 3px 8px;font-size:12px;font-weight:600;line-height:1.2;text-decoration:none;display:inline-flex;position:absolute;top:0;left:0}.callout:hover,.callout:focus-visible{z-index:3;box-shadow:2px 2px 0 var(--third)}.co-name{font-variation-settings:"opsz" 14, "wdth" 85;font-weight:600}.co-val{font-family:var(--font-num);font-variation-settings:"opsz" 96, "wdth" 75;font-weight:800}.co-tone{background:var(--tone);width:8px;height:8px;box-shadow:0 0 0 1.5px var(--callout-bg);border-radius:2px}.callout-pin{width:14px;height:14px;position:absolute;top:-7px;left:-7px}.callout-pin:after{content:"";background:var(--spot);border:2px solid var(--paper);border-radius:50%;position:absolute;inset:1px}.buoy-dot{background:var(--buoy);min-width:18px;height:18px;color:var(--buoy-ink);font:700 10.5px/1 var(--font-num), sans-serif;border:1.5px solid var(--map-land);border-radius:2px;align-items:center;gap:1px;padding:0 5px;text-decoration:none;display:inline-flex}.buoy-dot.stale{background:var(--none);min-width:10px;height:10px;padding:0}.buoy-dot .dir-arrow{fill:currentColor}.map-tag{white-space:nowrap;padding:3px 8px;font-size:12px;font-weight:600;text-decoration:none}.map-tag>span{display:block}.maplibregl-marker.map-tag{margin-top:18px;margin-left:-60px}.tag-spot{background:var(--callout-bg);color:var(--callout-ink)}.tag-buoy{background:var(--buoy);color:var(--buoy-ink)}.cond-svg{z-index:1;pointer-events:none;position:absolute;inset:0;overflow:visible}.m-swell{stroke:var(--map-land);stroke-width:1.5px;paint-order:stroke}.m-swell.p1{fill:var(--p1)}.m-swell.p2{fill:var(--p2)}.m-swell.obs{fill:var(--ink-3)}.m-swell-stroke{fill:none;stroke-linecap:round}.m-swell-stroke.p1,.m-swell-stroke.p1 path{stroke:var(--p1)}.m-swell-stroke.p2,.m-swell-stroke.p2 path{stroke:var(--p2)}.m-swell-stroke.obs{stroke:var(--obs)}.m-swell-stroke path{fill:none;stroke-width:2.4px;stroke-linecap:round}.m-wind{fill:none;stroke:var(--ink);stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round}.m-wind-casing{fill:none;stroke:var(--map-land);stroke-width:5.5px;stroke-linecap:round;stroke-linejoin:round;opacity:.9}.m-wind.streak{stroke-width:1.4px;opacity:.5}.m-wind-casing:has(+.streak){opacity:.35;stroke-width:3.5px}.m-label{font:700 12px var(--font-body), var(--font-zh), sans-serif;fill:var(--ink);paint-order:stroke;stroke:var(--map-land);stroke-width:4px;stroke-linejoin:round}.m-face{stroke:var(--ink);stroke-width:2.5px;stroke-linecap:round}.m-spot{fill:var(--spot);stroke:var(--map-land);stroke-width:2.5px}.map-legend{z-index:3;background:var(--surface);width:292px;color:var(--ink);border:1.5px solid var(--ink);box-shadow:3px 3px 0 var(--third);padding:8px 10px 7px;font-size:12px;line-height:1.3;position:absolute;bottom:10px;left:10px}.ml-row{grid-template-columns:30px 64px 1fr;align-items:center;height:22px;display:grid}.ml-glyph svg{display:block}.ml-name{font-variation-settings:"opsz" 14, "wdth" 85;font-weight:700}.ml-val{white-space:nowrap;text-overflow:ellipsis;color:var(--ink-2);overflow:hidden}.ml-val em{color:var(--poor);font-style:normal}.ml-tone{color:var(--ink);align-items:center;gap:3px;font-weight:600;display:inline-flex}.ml-tone:before{content:"";background:var(--tone);border-radius:2px;width:7px;height:7px}.ml-foot{border-top:1px solid var(--rule);color:var(--ink-3);margin-top:4px;padding-top:4px;font-size:10.5px}.map-styles{z-index:3;background:var(--surface);border:1.5px solid var(--ink);box-shadow:3px 3px 0 var(--third);display:flex;position:absolute;top:10px;right:10px;overflow:hidden}.map-styles button{font:600 12px var(--font-body), sans-serif;color:var(--ink);cursor:pointer;background:0 0;border:0;padding:5px 9px}.map-styles button+button{border-left:1px solid var(--rule-strong)}.map-styles button[aria-pressed=true]{background:var(--ink);color:var(--surface)}.wind-icon{vertical-align:-3px;flex:none;margin-right:6px}.wind-icon .m-wind{stroke-width:1.76px}.wind-icon .m-wind-casing{stroke:#0000;stroke-width:4.4px;opacity:1}.maplibregl-ctrl-group{border-radius:0!important}.maplibregl-ctrl-attrib{font-size:10px}.crumb{color:var(--ink-3);margin:24px 0 8px;font-size:.85rem}.detail-head .facts{color:var(--ink-2);margin:10px 0 0}.detail-head .about{max-width:70ch;color:var(--ink);margin-top:10px}.detail-head .about p{margin:0 0 8px}.buoy-pick{color:var(--ink-3);align-items:center;gap:8px;margin-top:12px;font-size:.85rem;display:inline-flex}.buoy-pick select{font:inherit;color:var(--ink);background:var(--surface);border:1.5px solid var(--ink);padding:4px 6px}.detail-now{grid-template-rows:470px;grid-template-columns:minmax(300px,.95fr) minmax(220px,270px) minmax(0,1.3fr);gap:28px;margin-top:26px;display:grid}.detail-now>*{min-width:0;min-height:0}.readout{border:1.5px solid var(--ink);background:var(--paper);padding:14px 18px 10px;overflow:hidden}.ro-when{color:var(--ink-2);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:.9rem;overflow:hidden}.ro-kind{min-width:6.6em;color:var(--ink);font-weight:700;display:inline-block}.ro-pair{grid-template-columns:1.25fr 1fr;gap:14px;margin:8px 0 0;display:grid}.ro-col{min-width:0}.ro-label{color:var(--ink-2);margin:0;font-size:.78rem;font-weight:700}.ro-big{align-items:baseline;gap:4px;margin:0;display:flex}.ro-hs,.ro-unit{font-family:var(--font-num)}.ro-hs{font-variation-settings:"opsz" 96, "wdth" 75;letter-spacing:-.03em;text-shadow:3px 2px 0 var(--misreg);font-size:4.6rem;font-weight:800;line-height:1}.ro-unit{color:var(--ink-2);font-size:1.4rem}.ro-ms .ro-hs{text-shadow:2px 1px 0 var(--misreg);font-size:3rem}.ro-ms .ro-unit{font-size:1.1rem}.ro-ms .ro-big{padding-top:1.4rem}.ro-src{color:var(--ink-3);white-space:nowrap;text-overflow:ellipsis;margin:2px 0 0;font-size:.74rem;overflow:hidden}.ro-list{border-top:1.5px solid var(--ink);margin:0}.ro-item{border-bottom:1px solid var(--rule);grid-template-columns:7.4em minmax(0,1fr);align-content:center;gap:8px;height:46px;font-size:.88rem;display:grid}.ro-item dt{color:var(--ink-2);white-space:nowrap;align-items:center;display:flex}.ro-item dd{min-width:0;margin:0}.ro-main,.ro-sub2{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.ro-sub2{color:var(--ink-3);font-size:.74rem}.ro-main .wind-chip{margin-right:4px}.rose-frame{flex-direction:column;justify-content:center;gap:10px;margin:0;display:flex}.rose svg{width:100%;height:auto;display:block;overflow:visible}.rose-frame figcaption{color:var(--ink-3);font-size:.76rem}.glyph-key{color:var(--ink-2);flex-wrap:wrap;gap:4px 12px;margin:0 0 4px;padding:0;list-style:none;display:flex}.glyph-key li{align-items:center;display:inline-flex}.detail-map .map{height:100%;min-height:0}.explain{grid-template-columns:1fr 1fr;gap:24px;margin-top:10px;display:grid}.explain p{color:var(--ink-2);margin:0;font-size:.9rem}.c-face{fill:var(--rose-face)}.c-ring{fill:none;stroke:var(--ink);stroke-width:var(--rose-ring)}.c-window{fill:var(--rose-window)}.c-window-core{fill:var(--rose-window-core)}.c-tick{stroke:var(--ink-3);stroke-width:1px}.c-tick.major{stroke:var(--ink);stroke-width:2px}.c-card{fill:var(--ink-2);font:900 12px Noto Serif TC,serif}.c-land{fill:var(--rose-land)}.c-coast{stroke:var(--ink);stroke-width:2px}.c-arrow{stroke:var(--rose-face);stroke-width:1.5px;paint-order:stroke}.c-arrow.p1{fill:var(--p1)}.c-arrow.p2{fill:var(--p2)}.c-arrow.obs{fill:var(--ink-3)}.c-wind line,.c-wind path{stroke:var(--ink);stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round;fill:none}.c-wind-casing{fill:none;stroke:var(--rose-face);stroke-width:6px;stroke-linecap:round;stroke-linejoin:round}.c-hub{fill:var(--ink)}.detail-timeline{margin-top:40px}.detail-timeline .legend-row{flex-wrap:wrap;justify-content:space-between;gap:8px 24px;margin:12px 0 6px;display:flex}.timeline-scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}.timeline{width:100%;position:relative}.tl-tip{z-index:4;pointer-events:none;background:var(--surface);min-width:250px;color:var(--ink);border:1.5px solid var(--ink);box-shadow:3px 3px 0 var(--third);grid-template-columns:92px auto;align-items:center;gap:4px 12px;padding:10px 14px 10px 10px;font-size:.82rem;line-height:1.35;display:grid;position:absolute;top:0;left:0}.tl-tip[hidden]{display:none}.tl-tip .tip-rose svg{width:92px;height:92px;display:block;overflow:visible}.tl-tip .c-card{font-size:15px}.tl-tip .tip-hs{font-family:var(--font-num);font-variation-settings:"opsz" 96, "wdth" 75;font-size:1.9rem;font-weight:800;line-height:1}.tl-tip .tip-hs small{font-size:.5em}.tl-tip .tip-line{color:var(--ink-2);white-space:nowrap}.tl-tip .tip-line .sw{width:8px;height:8px;margin-right:5px}.tl-tip .wind-chip{margin:3px 0 1px}.tl{font-family:var(--font-body), var(--font-zh), sans-serif;touch-action:pan-x pan-y;display:block}.tl:focus-visible{outline-offset:4px}.tl-night{fill:var(--night)}.tl-day{stroke:var(--rule-strong);stroke-width:1px}.tl-dayname{fill:var(--ink-2);font-size:12px}.tl-dayname .dn{fill:var(--ink);font-variation-settings:"wdth" 80;font-weight:700}.tl-label{fill:var(--ink);font-size:11.5px;font-weight:700}.tl-tick,.tl-sublabel{fill:var(--ink-3);font-size:10.5px}.tl-grid{stroke:var(--grid);stroke-width:1px}.tl-total{fill:var(--total)}.tl-total-line{fill:none;stroke:var(--total-line);stroke-width:1.5px}.tl-line{stroke-width:2px;stroke-linejoin:round;stroke-linecap:round;fill:none!important}.tl-line.p1,.tl-arrow.p1{stroke:var(--p1);fill:var(--p1)}.tl-line.p2,.tl-arrow.p2{stroke:var(--p2);fill:var(--p2)}.tl-line.obs,.tl-arrow.obs{stroke:var(--obs);fill:var(--obs)}.tl-line.obs{stroke-width:2.4px}.tl-line.faint{stroke-width:1.4px;opacity:.75}.tl-arrow{stroke:none!important}.tl-obs{fill:var(--obs);stroke:var(--surface);stroke-width:1px}.tl-bar{fill:var(--tone)}.tl-gustbar{fill:var(--tone);opacity:.28}.tl-windarrow{fill:var(--ink-2)}.tl-tide{fill:none;stroke:var(--tide);stroke-width:2px}.tl-tide-area{fill:var(--tide-fill)}.tl-tidelabel{fill:var(--ink-2);paint-order:stroke;stroke:var(--paper);stroke-width:3px;stroke-linejoin:round;font-size:10px}.tl-now{stroke:var(--ink-2);stroke-width:1px;stroke-dasharray:3 3}.tl-nowlabel{fill:var(--ink-2);font-size:10.5px;font-weight:600}.tl-cursor line{stroke:var(--ink);stroke-width:1.5px}.tl-cursor-tag{fill:var(--ink)}.tl-cursor-text{fill:var(--paper);font-size:11px;font-weight:700}.tl-hit{cursor:crosshair}.detail-sources{margin-top:48px}.detail-sources .note{margin-bottom:10px}table.data{border-collapse:collapse;width:100%;margin-top:12px;font-size:.86rem}table.data th,table.data td{text-align:left;border-bottom:1px solid var(--rule);vertical-align:top;padding:8px 12px 8px 0}table.data th{color:var(--ink-2);border-bottom:1.5px solid var(--ink);font-size:.8rem;font-weight:600}table.data .n{text-align:right;white-space:nowrap}table.data tbody tr:hover{background:var(--hover)}table.data .old{color:var(--poor)}.scroll{overflow-x:auto}.btn{cursor:pointer;font:600 .86rem var(--font-body), sans-serif;color:var(--ink);border:1.5px solid var(--ink);background:0 0;border-radius:0;align-items:center;gap:6px;padding:6px 12px;text-decoration:none;display:inline-flex}.btn:hover{background:var(--ink);color:var(--paper)}.btn[aria-pressed=true]{background:var(--ink);color:var(--paper);box-shadow:2px 2px 0 var(--third)}.seg{flex-wrap:wrap;gap:6px;display:inline-flex}.downloads{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.loading{color:var(--ink-3)}.notice{border-left:3px solid var(--seal);background:var(--surface);max-width:70ch;padding:8px 14px;font-size:.9rem}.compare{border-top:4px double var(--ink);margin-top:56px;padding-top:18px}.compare>.note{margin-top:6px}.record{margin-top:32px}.controls{z-index:5;background:var(--paper);border-bottom:1px solid var(--rule);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:16px;padding:10px 0;display:flex;position:sticky;top:0}.toggle{align-items:center;gap:6px;font-size:.9rem;display:inline-flex}.toggle input{accent-color:var(--ink)}.panel{margin:28px 0}.panel h2{font-size:1.3rem}.panel .src{color:var(--ink-3);max-width:90ch;margin:2px 0 8px;font-size:.8rem}.plot{width:100%;min-height:220px;position:relative}.plot.loading{opacity:.5}.plot+.plot{margin-top:6px}.plot-title{color:var(--ink-2);font-variation-settings:"opsz" 14;margin:10px 0 2px;font-size:.85rem;font-weight:700}dl.facts-grid{border-top:1.5px solid var(--ink);border-bottom:1px solid var(--rule);grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px 28px;margin:16px 0 0;padding:12px 0;font-size:.875rem;display:grid}dl.facts-grid dt{color:var(--ink-3);font-size:.8rem}dl.facts-grid dd{margin:0}details.raw{margin-top:32px}details.raw summary{cursor:pointer;font-weight:700}details.raw .scroll{margin-top:10px}.uplot{font-family:var(--font);color:var(--ink-2)}.uplot .u-legend{text-align:left;margin-top:4px;font-size:.8rem}.uplot .u-legend .u-marker{vertical-align:middle;border-radius:2px;width:14px;height:0;background:0 0!important;border-width:0 0 3px!important}.uplot .u-legend th{color:var(--ink-2);font-weight:500}.uplot .u-legend td{color:var(--ink);font-weight:650}.uplot .u-legend .u-series:first-child th{color:var(--ink-3)}.uplot .u-cursor-x{border-right:1px solid var(--ink-3)!important}.uplot .u-cursor-y{display:none}.uplot .u-select{background:var(--total)}.site-foot{border-top:4px double var(--ink);color:var(--ink-3);margin-top:64px;padding-top:16px;padding-bottom:48px;font-size:.8rem}.site-foot p{max-width:110ch}:root{--fx-a0:#e3e9f4;--fx-a1:#bccdec;--fx-a2:#8eade2;--fx-a3:#5d88cf;--fx-a4:#2f63b5;--fx-a5:#e2557c;--fx-w0:#e9e6dc;--fx-w1:#f4e2a6;--fx-w2:#f0c34a;--fx-w3:#e9952c;--fx-w4:#c9690c;--fx-w5:#a8402e}body.full{flex-direction:column;height:100dvh;display:flex;overflow:hidden}body.full header.site{z-index:10;flex:none}.full-main{flex:1;min-height:0;position:relative}.ex{--gap:16px;flex-direction:column;display:flex;position:absolute;inset:0}.ex-stage{flex:1;min-height:0;position:relative}.ex-stage>.ex-map{background:var(--map-sea-0);position:absolute;inset:0}.ex-card{z-index:5;left:var(--gap);top:var(--gap);width:320px;max-height:calc(100% - 2 * var(--gap));overscroll-behavior:contain;background:var(--surface);color:var(--ink);border:1.5px solid var(--ink);box-shadow:4px 4px 0 var(--third);position:absolute;overflow:auto}.ex .maplibregl-ctrl-bottom-right{bottom:4px;right:6px}.ec-pick{padding:12px 16px 14px}.ec-kicker{color:var(--ink-2);margin:0;font-size:.78rem;font-weight:700}.ec-kicker .faint{font-weight:400;font-size:inherit}.ec-warn{color:var(--poor);margin:6px 0 0;font-size:.8rem}.ec-region h3{border-bottom:3px double var(--ink);margin-top:14px;padding-bottom:3px;font-size:.95rem}.ec-region ul{margin:0;padding:0;list-style:none}.ec-row{border-bottom:1px solid var(--rule);color:inherit;grid-template-columns:minmax(0,1fr) auto 3.2em;align-items:center;gap:10px;padding:6px 2px;font-size:.88rem;text-decoration:none;display:grid}.ec-row:hover,.ec-row:focus-visible{background:var(--hover)}.ec-row .nm{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.ec-row .nm .zh{color:var(--ink-3);font-size:.85em;font-weight:400}.ec-row .wd{color:var(--ink-3);white-space:nowrap;font-size:.76rem}.ec-row .hs{text-align:right;font-variation-settings:"opsz" 96, "wdth" 75;font-size:1.2rem;font-weight:800;line-height:1}.ec-spot{padding:12px 16px 14px}.ec-head{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.ec-name{flex-wrap:wrap;align-items:baseline;gap:0 10px;display:flex}.ec-name .zh{letter-spacing:.04em;color:var(--p1);text-shadow:3px 2px #f0b419b8,-1.5px 1.5px #e2557c88;font-size:2.2rem;font-weight:900}.ec-name .en{color:var(--ink-2);font-size:1.2rem}.ec-close{border:1.5px solid var(--ink);width:28px;height:28px;color:var(--ink);font:700 18px/1 var(--font-body), sans-serif;cursor:pointer;background:0 0;flex:none}.ec-close:hover{background:var(--ink);color:var(--surface)}.ec-when{color:var(--ink-2);margin:4px 0 0;font-size:.84rem}.ec-when b{min-width:6.4em;color:var(--ink);display:inline-block}.ex.is-future .ec-when b{color:var(--seal)}.ec-top{border-top:1.5px solid var(--ink);grid-template-columns:1fr 1fr;gap:12px;margin:8px 0 0;padding-top:8px;display:grid}.ec-big{align-items:baseline;gap:3px;margin:0;display:flex}.ec-hs{font-family:var(--font-num);font-variation-settings:"opsz" 96, "wdth" 75;letter-spacing:-.03em;text-shadow:3px 2px 0 var(--misreg);font-size:3.8rem;font-weight:800;line-height:1}.ec-unit{color:var(--ink-2);font-size:1.15rem}.ec-cap{color:var(--ink-3);white-space:nowrap;margin:2px 0 0;font-size:.78rem}.ec-more{margin-top:12px;font-size:.84rem;display:inline-block}.ec-more:after{content:" →"}.ex-rose{z-index:2;pointer-events:none;width:0;height:0;position:absolute;top:0;left:0}.ex-rose[hidden]{display:none}.ex-rose svg{width:260px;height:260px;position:absolute;top:-130px;left:-130px;overflow:visible}.ex-rose .c-face{fill:var(--surface);fill-opacity:.45}.ex-rose .c-hub,.ex-rose :is(.c-land,.c-coast){display:none}.ex-rose .c-arrow,.ex-rose .c-wind-casing{stroke:var(--map-land)}.c-tag{font:700 10.5px var(--font-body), var(--font-zh), sans-serif;fill:var(--ink);paint-order:stroke;stroke:var(--map-land);stroke-width:3.5px;stroke-linejoin:round}.c-tag.p1{fill:var(--p1)}.c-tag.p2{fill:var(--p2)}.ex-bar{z-index:6;background:var(--paper);border-top:6px solid var(--third);flex:none;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:18px;padding:10px 24px 8px;display:grid;position:relative;box-shadow:0 -4px #e2557c55}.eb-strip{cursor:crosshair;min-width:0}.eb-now{padding:4px 10px;font-size:.8rem}.ex:not(.is-future) .eb-now{visibility:hidden}.fs{font-family:var(--font-body), sans-serif;display:block;overflow:visible}.fs:focus-visible{outline:2px solid var(--focus);outline-offset:3px}.fs-title{fill:var(--ink);font-size:12px;font-weight:700}.fs-main{fill:var(--ink);font-size:13px;font-weight:700}.fs-sub{fill:var(--ink-2);font-size:11px}.fs-scale{fill:var(--ink-3);font-size:9.5px}.fs-empty{fill:var(--ink-3);font-size:13px}.fs-wave{fill:var(--p1)}.fs-wind{fill:var(--ink-3)}.fs-wave.past,.fs-wind.past{opacity:.4}.fs-tick{fill:var(--ink-2)}.fs-tide{fill:none;stroke:var(--tide);stroke-width:1.8px}.fs-tide-area{fill:var(--tide-fill)}.fs-day{stroke:var(--rule-strong);stroke-width:1px}.fs-dayname{fill:var(--ink-3);font-size:10.5px}.fs-dayname .dn{fill:var(--ink);font-weight:700}.fs-now{stroke:var(--seal);stroke-width:2px}.fs-cursor line{stroke:var(--ink);stroke-width:1.5px}.fs-cursor.is-hover line{stroke-dasharray:3 2}.fs-cursor rect{fill:var(--ink)}.fs-cursor text{fill:var(--surface);font-size:10.5px;font-weight:700}@media (width<=760px){body.full .fresh{display:none}body.full .bar{padding-top:8px;padding-bottom:6px}.ex{--gap:8px}.ex-card{left:var(--gap);right:var(--gap);top:auto;bottom:var(--gap);width:auto;max-height:44%}.ec-hs{font-size:3rem}.ex-rose svg{transform:scale(.75)}.ex-bar{grid-template-columns:minmax(0,1fr);gap:4px;padding:6px 10px}.eb-now{grid-row:1;justify-self:end}.ex .maplibregl-ctrl-bottom-right{display:none}}@media (width<=1100px){.home-grid{grid-template-columns:1fr}.home-map{position:relative;top:0}.home-map .map{height:520px}.detail-now{grid-template-rows:470px 420px;grid-template-columns:minmax(0,1fr) minmax(220px,270px)}.detail-map{grid-column:1/-1}.explain{grid-template-columns:1fr}}@media (width<=640px){.wrap{padding:0 16px}.bar{gap:6px 18px;min-height:0;padding-top:12px;padding-bottom:12px}.fresh{width:100%;margin:0}.home-map .map{height:440px}.buoy-list{grid-template-columns:1fr}.buoy-row{grid-template-columns:minmax(0,1fr) 3.6em 3.4em 72px;grid-template-areas:"nm hs tp sp""meta hs tp sp"}.buoy-row .dir{display:none}.buoy-row .spark{width:72px}.spot-row{grid-template-columns:minmax(0,1fr) 3.6em;grid-template-areas:"nm hs""chip hs""strip strip"}.spot-row .strip{width:100%;height:30px}.detail-now{grid-template-rows:470px auto 400px;grid-template-columns:1fr}.map-legend{width:auto;right:10px}.rose-frame{max-width:300px;margin:0 auto}.ro-hs{font-size:3.8rem}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
