/* Slack Water · built on the M3 Signal Flags language, over K2 Wrack Line. Tokens come from pk/packages/M3_signal_flags.py unchanged. */
:root{--bg:#F6F7FB;--surface:#ECEFF8;--raised:#FFFFFF;--line:#D2D8EB;--line-strong:#5E6787;--ink:#0D1433;--ink-2:#303959;--ink-3:#475072;--brand:#1F2BB0;--on-brand:#FFFFFF;--brand-ink:#1F2BB0;--brand-tint:#E2E5F8;--accent:#1F2BB0;--accent-ink:#1F2BB0;--on-accent:#FFFFFF;--yes:#1F2BB0;--yes-tint:#E2E5F8;--caution:#5B6170;--caution-tint:#E9EBF0;--no:#101A48;--no-tint:#EEF0F7;--focus:#0D1433;--flag:#1F2BB0;--sail:#FFFFFF;--pennant:#C9D0F3;color-scheme:light}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--bg:#0F1942;--surface:#142050;--raised:#1A275C;--line:#2C3A78;--line-strong:#8490C4;--ink:#F4F6FC;--ink-2:#D0D6EE;--ink-3:#AFB8DC;--brand:#B8CBFF;--on-brand:#0F1942;--brand-ink:#B8CBFF;--brand-tint:#24337A;--accent:#B8CBFF;--accent-ink:#B8CBFF;--on-accent:#0F1942;--yes:#B8CBFF;--yes-tint:#24337A;--caution:#9194A1;--caution-tint:#172355;--no:#F4F6FC;--no-tint:#1A275C;--focus:#F4F6FC;--flag:#5868F5;--sail:#F4F6FC;--pennant:#F4F6FC;color-scheme:dark}}
:root[data-theme="dark"]{--bg:#0F1942;--surface:#142050;--raised:#1A275C;--line:#2C3A78;--line-strong:#8490C4;--ink:#F4F6FC;--ink-2:#D0D6EE;--ink-3:#AFB8DC;--brand:#B8CBFF;--on-brand:#0F1942;--brand-ink:#B8CBFF;--brand-tint:#24337A;--accent:#B8CBFF;--accent-ink:#B8CBFF;--on-accent:#0F1942;--yes:#B8CBFF;--yes-tint:#24337A;--caution:#9194A1;--caution-tint:#172355;--no:#F4F6FC;--no-tint:#1A275C;--focus:#F4F6FC;--flag:#5868F5;--sail:#F4F6FC;--pennant:#F4F6FC;color-scheme:dark}
:root{--f-display:"Sofia Sans Condensed", system-ui, sans-serif;--f-text:"Source Sans 3", system-ui, sans-serif;--f-ui:"Source Sans 3", system-ui, sans-serif;--f-mono:"Martian Mono", ui-monospace, monospace;--f-readable:"Atkinson Hyperlegible Next", system-ui, sans-serif;--fvs-display:normal;--fvs-text:normal;--fvs-ui:normal;--fvs-mono:normal;--w-display:760;--w-text:400;--w-ui:600;--lh-text:1.58;--track-display:-0.005em;--measure:64ch;--t-cap:13px;--t-sm:15px;--t-base:18px;--t-lg:21px;--t-xl:30px;--t-2xl:44px;--t-3xl:64px;--t-hero:96px}
:root[data-font="readable"]{--f-text:var(--f-readable);--f-ui:var(--f-readable);--fvs-text:normal;--fvs-ui:normal}
:root{--r-1:4px;--r-2:8px;--r-3:14px;--r-pill:999px;--bw:1px;--shadow:none;--s-0:0px;--s-1:6px;--s-2:12px;--s-3:18px;--s-4:24px;--s-5:36px;--s-6:48px;--s-7:72px;--s-8:96px;--dur-hover:120ms;--dur-press:60ms;--dur-disclose:220ms;--ease:cubic-bezier(.25,.7,.2,1)}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--f-text);font-variation-settings:var(--fvs-text);font-weight:var(--w-text);font-size:var(--t-base);line-height:var(--lh-text)}
a{color:var(--brand-ink);text-underline-offset:.18em}
code,kbd,pre{font-family:var(--f-mono);font-variation-settings:var(--fvs-mono)}
.pk-wrap{max-width:1120px;margin:0 auto;padding-inline:24px}
.pk-bar{border-bottom:var(--bw) solid var(--line);background:var(--surface);font-family:var(--f-ui);font-variation-settings:var(--fvs-ui);font-size:var(--t-sm)}
.pk-bar .pk-wrap{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;padding-block:10px}
.pk-bar .pk-id{font-weight:600;color:var(--ink)}
.pk-bar .pk-id span{color:var(--ink-2);font-weight:400}
.pk-bar nav{display:flex;flex-wrap:wrap;gap:4px 14px;order:5;flex-basis:100%;min-width:0;padding-top:2px}
.pk-bar .pk-id{flex:1;min-width:min(100%,260px)}
.pk-bar nav a{color:var(--ink-2);text-decoration:none;display:inline-flex;align-items:center;min-height:44px}
.pk-bar .pk-sib a{display:inline-flex;align-items:center;min-height:44px}
.pk-bar nav a:hover{color:var(--ink);text-decoration:underline}
.pk-tg{display:inline-flex;gap:2px;padding:2px;border:var(--bw) solid var(--line-strong);border-radius:var(--r-pill)}
.pk-tg button{all:unset;cursor:pointer;box-sizing:border-box;min-height:44px;min-width:44px;display:inline-flex;align-items:center;justify-content:center;padding:5px 14px;border-radius:var(--r-pill);font-family:var(--f-ui);font-size:var(--t-sm);color:var(--ink-2)}
.pk-tg button[aria-pressed="true"]{background:var(--ink);color:var(--bg)}
.pk-tg button:focus-visible,.k-btn:focus-visible,a:focus-visible,.pk-play:focus-visible,.k-field input:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.pk-sib{display:flex;gap:10px;font-family:var(--f-ui)}
.pk-sib a{color:var(--ink-2)}
section.pk{padding-block:clamp(40px,6vw,72px);border-top:var(--bw) solid var(--line)}
.pk-h{font-family:var(--f-ui);font-variation-settings:var(--fvs-ui);font-size:var(--t-cap);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);margin:0 0 6px;font-weight:600}
.pk-t{font-family:var(--f-display);font-variation-settings:var(--fvs-display);font-weight:var(--w-display);font-size:var(--t-2xl);line-height:1.1;letter-spacing:var(--track-display);margin:0 0 18px;text-wrap:balance}
.pk-lede{max-width:var(--measure);color:var(--ink-2);margin:0 0 28px}
.pk-grid{display:grid;gap:18px}
@media (min-width:760px){.pk-2{grid-template-columns:1fr 1fr}.pk-3{grid-template-columns:repeat(3,1fr)}}
/* kit */
.k-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:18px}
.k-btn{font-family:var(--f-ui);font-variation-settings:var(--fvs-ui);font-weight:var(--w-ui);font-size:var(--t-base);line-height:1.2;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;border-radius:var(--r-2);border:var(--bw) solid transparent;cursor:pointer;text-decoration:none;transition:background var(--dur-hover) var(--ease),color var(--dur-hover) var(--ease),border-color var(--dur-hover) var(--ease)}
.k-btn-primary{background:var(--brand);color:var(--on-brand)}
.k-btn-secondary{background:transparent;color:var(--brand-ink);border-color:var(--brand-ink)}
.k-btn-quiet{background:transparent;color:var(--brand-ink);text-decoration:underline;text-underline-offset:.2em;padding-inline:6px}
.k-btn[disabled]{background:var(--raised);color:var(--ink-3);border-color:var(--line-strong);cursor:not-allowed}
.k-btn.is-focus{outline:3px solid var(--focus);outline-offset:2px}
.k-yn{display:grid;grid-template-columns:1fr 1fr;gap:10px;max-width:420px}
.k-yn .k-btn{width:100%}
.k-yn.k-opts{grid-template-columns:1fr 1fr;max-width:520px}
.k-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
.k-chip{display:inline-flex;align-items:center;gap:6px;font-family:var(--f-ui);font-variation-settings:var(--fvs-ui);font-size:var(--t-sm);font-weight:600;padding:5px 11px;border-radius:var(--r-pill);background:var(--raised);color:var(--ink);border:var(--bw) solid var(--line)}
.k-chip svg{width:14px;height:14px;flex:none}
.k-chip-yes{background:var(--yes-tint);color:var(--yes);border-color:transparent}
.k-chip-caution{background:var(--caution-tint);color:var(--caution);border-color:transparent}
.k-chip-no{background:var(--no-tint);color:var(--no);border-color:transparent}
.k-field{display:grid;gap:6px;max-width:460px;margin-bottom:16px;font-family:var(--f-ui)}
.k-field label{font-weight:600;font-size:var(--t-sm);color:var(--ink)}
.k-field input{font:inherit;font-family:var(--f-ui);font-size:var(--t-base);padding:11px 13px;border-radius:var(--r-1);border:var(--bw) solid var(--line-strong);background:var(--surface);color:var(--ink)}
.k-field small{font-size:var(--t-sm);color:var(--ink-2)}
.k-field.is-error input{border-color:var(--no);border-width:2px}
.k-field.is-error small{color:var(--no);font-weight:600}
.k-note{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:var(--r-2);background:var(--raised);border:var(--bw) solid var(--line);font-size:var(--t-sm);max-width:560px;margin-bottom:10px;font-family:var(--f-ui)}
.k-note svg{width:18px;height:18px;flex:none;margin-top:1px}
.k-note-yes{background:var(--yes-tint);border-color:transparent;color:var(--yes)}
.k-note-yes b,.k-note-no b{color:inherit}
.k-note-no{background:var(--no-tint);border-color:transparent;color:var(--no)}
.k-kit-grid{display:grid;gap:28px}
@media (min-width:860px){.k-kit-grid{grid-template-columns:1fr 1fr}}
.k-kit-grid > div{min-width:0}
.k-kit-grid h3{font-family:var(--f-ui);font-size:var(--t-sm);font-weight:600;color:var(--ink-2);margin:0 0 10px}
/* sheet */
.pk-sw{border-radius:var(--r-3);padding:18px;border:1px solid}
.pk-sw h4{margin:0 0 12px;font-family:var(--f-ui);font-size:var(--t-sm);font-weight:600}
.pk-sw .g{margin:0 0 12px}
.pk-sw .g p{margin:0 0 6px;font-family:var(--f-ui);font-size:var(--t-cap);letter-spacing:.1em;text-transform:uppercase}
.pk-sw ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.pk-sw li{display:flex;gap:8px;align-items:center;font-family:var(--f-mono);font-size:12px;line-height:1.3}
.pk-sw li i{width:30px;height:30px;border-radius:6px;flex:none;border:1px solid rgb(128 128 128 / .35)}
.pk-sw li b{display:block;font-family:var(--f-ui);font-size:12.5px;font-weight:600}
.pk-table{width:100%;border-collapse:collapse;font-family:var(--f-ui);font-size:var(--t-sm);font-variant-numeric:tabular-nums}
.pk-table th,.pk-table td{text-align:left;padding:7px 10px;border-bottom:var(--bw) solid var(--line);vertical-align:top}
.pk-table th{color:var(--ink-2);font-weight:600}
.pk-scroll{overflow-x:auto}
.pk-ok{color:var(--ink);font-weight:600}.pk-bad{color:var(--no);font-weight:700}
.pk-type .spec{border-bottom:var(--bw) solid var(--line);padding-block:14px}
.pk-type .spec small{display:block;font-family:var(--f-ui);font-size:var(--t-cap);color:var(--ink-2);letter-spacing:.08em;text-transform:uppercase;margin-bottom:6px}
.pk-scale{display:grid;gap:6px}
.pk-scale div{display:flex;gap:16px;align-items:baseline;border-bottom:var(--bw) dashed var(--line);padding-block:4px;overflow:hidden}
.pk-scale code{font-size:12px;color:var(--ink-2);min-width:140px;flex:none}
.pk-scale span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pk-radii{display:flex;flex-wrap:wrap;gap:14px}
.pk-radii div{width:92px;height:64px;background:var(--brand-tint);border:var(--bw) solid var(--brand-ink);display:flex;align-items:flex-end;padding:6px;font-family:var(--f-mono);font-size:11px;color:var(--brand-ink)}
.pk-space{display:grid;gap:5px}
.pk-space div{display:flex;align-items:center;gap:12px;font-family:var(--f-mono);font-size:12px;color:var(--ink-2)}
.pk-space i{display:block;height:12px;background:var(--brand);border-radius:2px}
.pk-marks{display:flex;flex-wrap:wrap;gap:22px;align-items:flex-end}
.pk-marks figure{margin:0;display:grid;gap:6px;justify-items:center;font-family:var(--f-mono);font-size:11px;color:var(--ink-2)}
.pk-marks .tile{display:grid;place-items:center;border-radius:var(--r-2)}
.pk-lock{display:flex;flex-wrap:wrap;gap:16px;margin-top:22px}
.pk-lock div{padding:22px 26px;border-radius:var(--r-3)}
.pk-voice ul{margin:0;padding-left:1.1em}
.pk-voice li{margin-bottom:6px}
.pk-hl{font-family:var(--f-display);font-variation-settings:var(--fvs-display);font-weight:var(--w-display);font-size:var(--t-xl);line-height:1.2;margin:0 0 10px;letter-spacing:var(--track-display)}
.pk-code{background:var(--raised);border:var(--bw) solid var(--line);border-radius:var(--r-2);padding:14px 16px;font-size:12.5px;line-height:1.55;overflow-x:auto;white-space:pre;color:var(--ink)}
.pk-call{border:var(--bw) solid var(--line-strong);border-radius:var(--r-3);padding:20px 22px;background:var(--surface)}
.pk-call h3{margin:0 0 8px;font-family:var(--f-ui);font-size:var(--t-base)}
.pk-call ul{margin:0 0 6px;padding-left:1.1em}
.pk-motion-demo{display:flex;flex-wrap:wrap;align-items:center;gap:18px;padding:22px;border:var(--bw) dashed var(--line-strong);border-radius:var(--r-3);margin-top:14px;min-height:120px}
.pk-play{font-family:var(--f-ui);font-size:var(--t-sm);font-weight:600;padding:8px 14px;border-radius:var(--r-pill);border:var(--bw) solid var(--ink-2);background:transparent;color:var(--ink);cursor:pointer}
.pk-foot{padding-block:28px 48px;font-family:var(--f-ui);font-size:var(--t-sm);color:var(--ink-2);border-top:var(--bw) solid var(--line)}
@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}}

/* M3 package CSS (K2 structure, Signal Flags dress) */

/* Wrack Line (K2). Tokens only. */
body{font-feature-settings:"kern","liga"}
h1,h2,h3,.pk-t,.pk-hl{font-feature-settings:"kern","liga","lnum"}
.pk-h{font-family:var(--f-ui);font-size:13px;letter-spacing:.16em;font-weight:700}
.pk-t{font-weight:760;letter-spacing:-.005em}
.pk-t em,.pk-type em,.pk-hl em{font-style:normal;color:var(--brand-ink);text-decoration:underline;text-decoration-color:var(--line-strong);text-decoration-thickness:3px;text-underline-offset:.14em}
/* the drawn QR code */
.k2-qr{display:block;width:84px;height:84px;flex:none}
.k2-qr .k2-qr-bg{fill:var(--raised)}
.k2-qr .k2-qr-m{fill:var(--ink)}
/* the badge */
.k2-badge{position:relative;display:grid;gap:6px;width:100%;max-width:300px;padding:34px 18px 16px;background:var(--raised);color:var(--ink);border:1.5px solid var(--line-strong);border-radius:var(--r-3);overflow:hidden}
.k2-slot{position:absolute;z-index:1;top:10px;left:50%;width:44px;height:9px;margin-left:-22px;border-radius:5px;background:var(--bg);box-shadow:inset 0 0 0 1.5px var(--line-strong)}
.k2-stripe{position:absolute;left:0;right:0;top:0;height:6px;background:var(--line)}
.k2-wait .k2-stripe{height:8px;background:repeating-linear-gradient(90deg,var(--caution) 0 10px,transparent 10px 16px)}
.k2-yes .k2-stripe{height:24px;background:var(--accent)}
.k2-yes .k2-slot{top:7px;background:var(--bg)}
.k2-no .k2-stripe,.k2-left .k2-stripe,.k2-lapsed .k2-stripe{height:6px;background:var(--line-strong)}
.k2-yes{padding-top:40px}
.k2-ev{margin:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:0 8px;font-family:var(--f-display);font-weight:800;font-size:17px;letter-spacing:.06em;text-transform:uppercase;line-height:1.15}
.k2-ev .k2-yr{font-family:var(--f-mono);font-size:12px;letter-spacing:0;font-weight:500}
.k2-ev .k2-dates{flex-basis:100%;font-family:var(--f-ui);font-weight:600;font-size:13px;letter-spacing:.02em;text-transform:none;color:var(--ink-2)}
.k2-name{margin:8px 0 0;font-family:var(--f-display);font-weight:800;font-size:var(--t-xl);line-height:1.02;letter-spacing:-.005em;overflow-wrap:anywhere}
.k2-role{margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;font-family:var(--f-ui);font-size:14px;font-weight:600;color:var(--ink-2)}
.k2-role > span:first-child{font-family:var(--f-display);font-weight:760;font-size:15px;letter-spacing:.08em;text-transform:uppercase}
.k2-bfoot{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin-top:10px;padding-top:12px;border-top:1px dashed var(--line-strong)}
.k2-bstate{margin:0;display:inline-flex;align-items:center;gap:6px;font-family:var(--f-ui);font-size:14.5px;font-weight:700;line-height:1.25;padding:4px 9px;border-radius:var(--r-1);color:var(--caution);background:var(--caution-tint);border:1px dashed var(--caution)}
.k2-bstate svg{width:15px;height:15px;flex:none}
.k2-yes .k2-bstate{color:var(--yes);background:var(--yes-tint);border:1px solid var(--yes)}
.k2-no .k2-bstate{color:var(--no);background:var(--no-tint);border:1px solid transparent}
.k2-left .k2-bstate{color:var(--ink-2);background:var(--surface);border:1px solid var(--line-strong)}
.k2-bnote{display:grid;gap:6px;margin:6px 0 0;font-family:var(--f-ui);font-size:13.5px;color:var(--ink-2);line-height:1.4}
.k2-bnote > p{margin:0}
/* the lanyard */
.k2-lanyard{display:grid;justify-items:center;width:100%;max-width:300px}
.k2-strap{display:block;width:62%;height:74px;margin-bottom:-12px;position:relative;z-index:1}
.k2-strap path{fill:none;stroke:var(--brand);stroke-width:9;stroke-linecap:round}
.k2-strap .k2-clip{fill:var(--line-strong)}
/* the strand line */
.k2-strand{position:relative;overflow:hidden;padding-bottom:4px}
.k2-shore{display:block;width:100%;height:44px}
.k2-shore .k2-sea{fill:var(--sea)}
.k2-shore .k2-sand{fill:var(--sand)}
.k2-shore .k2-wrack{fill:none;stroke:var(--kelp);stroke-width:3.2;stroke-linecap:round;stroke-dasharray:14 7 4 7}
.k2-line{list-style:none;margin:0;padding:14px 0 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px 12px}
.k2-w{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;padding:8px 12px 8px 10px;background:var(--raised);border:1px solid var(--line);border-left:4px solid var(--line-strong);border-radius:var(--r-1);min-width:0}
.k2-w .k2-float{width:12px;height:12px;border-radius:50%;flex:none;border:2px solid var(--line-strong);background:transparent}
.k2-w-yes{border-left-color:var(--accent)}
.k2-w-yes .k2-float{background:var(--accent);border-color:var(--accent)}
.k2-w-wait{border:1px dashed var(--caution);border-left:4px dashed var(--caution);background:transparent}
.k2-w-wait .k2-float{border-style:dashed;border-color:var(--caution)}
.k2-w-no,.k2-w-left{opacity:1;background:var(--surface)}
.k2-wn{display:inline-flex;flex-wrap:wrap;align-items:baseline;gap:2px 8px}
.k2-wn b{font-family:var(--f-display);font-weight:760;font-size:var(--t-lg);line-height:1.1}
.k2-wst{display:inline-flex;align-items:center;gap:4px;font-family:var(--f-ui);font-size:13.5px;font-weight:700;color:var(--ink-2)}
.k2-wst svg{width:13px;height:13px}
.k2-w-yes .k2-wst{color:var(--yes)}
.k2-w-wait .k2-wst{color:var(--caution)}
.k2-w-no .k2-wst{color:var(--no)}
.k2-wsub{flex-basis:100%;font-family:var(--f-ui);font-size:14px;color:var(--ink-2);line-height:1.4}
.k2-water{position:absolute;inset:0;background:var(--sea);transform:translateX(101%);pointer-events:none}
.k2-strand.is-playing .k2-water,.k2-play .k2-strand .k2-water{animation:k2ebb 1100ms var(--ease) both}
@keyframes k2ebb{from{transform:translateX(0)}to{transform:translateX(101%)}}
@media (prefers-reduced-motion: reduce){.k2-water{animation:none!important;transform:translateX(101%)!important}}
.k2-mini .k2-wn b{font-size:var(--t-base)}
/* the tide */
.k2-tide{display:block;width:100%;height:auto}
.k2-tide .k2-tide-sea{fill:var(--sea)}
.k2-tide .k2-tide-edge{fill:none;stroke:var(--ink-2);stroke-width:2}
.k2-tide .k2-tide-mark{fill:none;stroke:var(--kelp);stroke-width:3;stroke-dasharray:12 6 3 6}
.k2-tide .k2-stn line{stroke:var(--line-strong);stroke-width:1.5;stroke-dasharray:3 4}
.k2-tide .k2-stn circle{fill:var(--raised);stroke:var(--brand);stroke-width:3}
.k2-tide .k2-stn.is-on circle{fill:var(--brand)}
.k2-tide .k2-stn.is-on line{stroke:var(--brand);stroke-dasharray:none;stroke-width:2}
/* a program sheet: a panel pinned to a post */
.k2-sheet{background:var(--raised);border:1px solid var(--line);border-left:6px solid var(--brand);border-radius:0 var(--r-2) var(--r-2) 0;padding:20px 22px}
.k2-day{font-family:var(--f-display);font-weight:800;font-size:15px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2)}
/* kit, restyled */
.k-btn{border-radius:var(--r-2);font-size:17px;padding:13px 22px;font-weight:700}
.k-btn-primary:hover{background:var(--ink-2);color:var(--on-brand)}
.k-btn-secondary{border-width:2px;color:var(--brand-ink);border-color:var(--brand-ink)}
.k-btn-secondary:hover{background:var(--brand-tint)}
.k-btn-quiet{color:var(--brand-ink)}
.k-yn{max-width:460px}
.k-chip{border-radius:var(--r-1);font-weight:700}
.k-chip-yes{border:1px solid var(--yes)}
.k-chip-caution{background:transparent;border:1px dashed var(--caution)}
.k-chip-no{border:0}
.k-ver{display:inline-flex;align-items:center;gap:6px;font-family:var(--f-ui);font-size:var(--t-sm);font-weight:600;line-height:1.3;color:var(--ink-2);padding:2px 8px 3px 7px;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-1);white-space:nowrap}
.k-ver svg{width:15px;height:15px;flex:none;color:var(--brand-ink)}
.k-ver-unverified{color:var(--caution);border:1px dashed var(--caution);background:transparent}
.k-ver-unverified svg{color:var(--caution)}
.k-note{border-radius:var(--r-1);background:var(--surface);border-color:var(--line);border-left:4px solid var(--line-strong)}
.k-note-yes{background:var(--yes-tint);border:1px solid var(--yes);border-left:4px solid var(--accent)}
.k-note-no{background:var(--no-tint)}
.k-field input{border-radius:var(--r-1);background:var(--raised)}
.k-field.is-error small::before{content:"\00D7";display:inline-block;font-weight:700;margin-right:6px}
.pk-radii div{background:var(--brand-tint)}
.pk-ok{color:var(--ink-2)}
/* hero: the gate on Friday, and the beach a month later */
.k2-hero{background:var(--bg)}
.k2-gate{display:grid;gap:30px 56px;padding-block:clamp(30px,5vw,60px) 26px;align-items:start}
@media (min-width:900px){.k2-gate{grid-template-columns:minmax(0,1fr) 300px}}
.k2-kick{margin:0 0 14px;display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;font-family:var(--f-display);font-weight:800;font-size:15px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2)}
.k2-kick svg{width:28px;height:28px;color:var(--brand-ink)}
.k2-hero h1{font-family:var(--f-display);font-weight:820;font-size:clamp(50px,8.4vw,var(--t-hero));line-height:.92;letter-spacing:-.01em;margin:0 0 20px;color:var(--ink);text-wrap:balance}
.k2-hero h1 em{font-style:normal;color:var(--brand-ink);background:linear-gradient(transparent 78%,var(--sand) 78%)}
.k2-lede{font-size:var(--t-lg);line-height:1.5;color:var(--ink-2);margin:0 0 22px;max-width:34em}
.k2-ctas{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:12px}
.k2-free{margin:0;font-family:var(--f-ui);font-size:var(--t-sm);color:var(--ink-2)}
.k2-after{padding-block:8px 36px}
.k2-after-h{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px;margin:0 0 4px}
.k2-after-h b{font-family:var(--f-display);font-weight:800;font-size:15px;letter-spacing:.14em;text-transform:uppercase}
.k2-after-h span{font-family:var(--f-ui);font-size:var(--t-sm);color:var(--ink-2)}
/* feature */
.k2-feat{display:grid;gap:26px}
@media (min-width:980px){.k2-feat{grid-template-columns:300px minmax(0,1fr);align-items:start}}
.k2-days{display:grid;gap:14px}
.k2-daycards{display:grid;gap:14px}
@media (min-width:760px){.k2-daycards{grid-template-columns:repeat(3,minmax(0,1fr))}}
.k2-dc{padding:16px 16px 14px;display:grid;gap:8px;align-content:start}
.k2-dc h3{margin:0;font-family:var(--f-display);font-weight:780;font-size:var(--t-lg);line-height:1.1}
.k2-dc p{margin:0;font-size:16px;line-height:1.5;color:var(--ink-2)}
.k2-dc .k2-day{font-size:13px}
.k2-dc.is-on{border-left-color:var(--accent)}
.k2-dc ul{margin:0;padding-left:1.1em;font-size:15.5px;color:var(--ink-2)}
@media (max-width:560px){
 .k2-hero h1{font-size:clamp(44px,13vw,60px)}
 .k2-lede{font-size:19px}
 .k2-qr{width:70px;height:70px}
 .k2-shore{height:34px}
}

/* Signal Flags (M3), over Wrack Line's structure. Tokens only. */
/* the buoy goes: no water, no sand, no orange anywhere */
.k2-water{display:none}
.k2-hero h1 em,.pk-type em,.pk-hl em{color:var(--brand-ink);background:none;text-decoration:none}
.pk-t em{color:var(--brand-ink);text-decoration:none}
.k2-qr .k2-qr-m{fill:var(--ink)}
/* the dressing line: a halyard and hanging pennants, flag blue and a lighter one, any width */
.m3-bunting{display:block;position:relative;height:34px;border-top:2px solid var(--line-strong);margin-top:6px}
.m3-bunting::before,.m3-bunting::after{content:"";position:absolute;left:0;right:0;top:0;height:30px;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 30'%3E%3Cpath d='M18 0H46L32 30Z'/%3E%3C/svg%3E") 0 0/64px 30px repeat-x;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 30'%3E%3Cpath d='M18 0H46L32 30Z'/%3E%3C/svg%3E") 0 0/64px 30px repeat-x}
.m3-bunting::before{background:var(--flag)}
.m3-bunting::after{background:var(--pennant);-webkit-mask-position:32px 0;mask-position:32px 0}
.k2-line{padding-top:10px}
/* the small flag beside each name: filled for yes, outlined with a cross for no, gray and dashed while waiting */
.k2-w .k2-float{width:16px;height:14px;border:0;border-radius:0;background:var(--line-strong);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 14'%3E%3Cpath d='M1.6 1.9 13.4 7 1.6 12.1Z' fill='none' stroke='black' stroke-width='1.8' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 14'%3E%3Cpath d='M1.6 1.9 13.4 7 1.6 12.1Z' fill='none' stroke='black' stroke-width='1.8' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat}
.k2-w-yes .k2-float{background:var(--accent);border:0;-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 14'%3E%3Cpath d='M1 1 15 7 1 13Z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 14'%3E%3Cpath d='M1 1 15 7 1 13Z'/%3E%3C/svg%3E")}
.k2-w-wait .k2-float{background:var(--caution);border:0;-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 14'%3E%3Cpath d='M1.6 1.9 13.4 7 1.6 12.1Z' fill='none' stroke='black' stroke-width='1.8' stroke-dasharray='2.6 2'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 14'%3E%3Cpath d='M1.6 1.9 13.4 7 1.6 12.1Z' fill='none' stroke='black' stroke-width='1.8' stroke-dasharray='2.6 2'/%3E%3C/svg%3E")}
.k2-w-no .k2-float{background:var(--no);-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 14'%3E%3Cpath d='M1.6 1.9 13.4 7 1.6 12.1Z' fill='none' stroke='black' stroke-width='1.8' stroke-linejoin='round'/%3E%3Cpath d='M3.6 5 7.4 9M7.4 5 3.6 9' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 14'%3E%3Cpath d='M1.6 1.9 13.4 7 1.6 12.1Z' fill='none' stroke='black' stroke-width='1.8' stroke-linejoin='round'/%3E%3Cpath d='M3.6 5 7.4 9M7.4 5 3.6 9' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E")}
.k2-w-no{border-left-color:var(--no)}
/* the hoist over a hero */
.m3-hoist{display:block;width:100%;height:100px}
.m3-hoist .m3-rope{fill:none;stroke:var(--line-strong);stroke-width:2}
.m3-hoist .fb{fill:var(--flag)}
.m3-hoist .fw{fill:var(--sail)}
.m3-hoist .fo{fill:var(--sail);stroke:var(--flag);stroke-width:2;stroke-linejoin:round}
/* dressing the line: it runs out once, left to right */
.k2-play .m3-hoist,.k2-play .m3-bunting,.k2-strand.is-playing .m3-bunting{animation:m3dress 1100ms var(--ease) both}
@keyframes m3dress{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
@media (prefers-reduced-motion: reduce){.m3-hoist,.m3-bunting{animation:none!important;clip-path:none!important}}
/* the badge: three blue stripes for a yes, one dashed gray one while waiting, an outline for a no */
.k2-yes .k2-stripe{height:25px;background:repeating-linear-gradient(180deg,var(--accent) 0 5px,transparent 5px 10px)}
.k2-yes .k2-slot{top:8px;background:var(--raised);box-shadow:inset 0 0 0 1.5px var(--accent)}
.k2-no .k2-stripe{height:8px;background:transparent;border-bottom:2px solid var(--no)}
.k2-no .k2-bstate{color:var(--no);background:transparent;border:1.5px solid var(--no)}
.k2-yes .k2-bstate{color:var(--yes);background:var(--yes-tint);border:1px solid var(--yes)}
/* the lanyard: a striped strap */
.k2-strap path{stroke:var(--brand)}
.k2-strap .m3-pin{stroke:var(--raised);stroke-width:2.2}
/* the tide, in blue */
.k2-tide .k2-tide-sea{fill:var(--brand-tint)}
.k2-tide .k2-tide-edge{stroke:var(--brand-ink)}
.k2-tide .k2-tide-mark{stroke:var(--brand-ink);stroke-width:2.5;stroke-dasharray:12 6 3 6}
/* a program sheet wears a sailor's stripe across its top */
.k2-sheet{border:1px solid var(--line);border-radius:0 0 var(--r-2) var(--r-2);padding:28px 22px 20px;
 background:linear-gradient(var(--brand),var(--brand)) 0 0/100% 6px no-repeat,linear-gradient(var(--brand),var(--brand)) 0 10px/100% 2px no-repeat,var(--raised)}
.k2-dc.is-on{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
/* kit, restyled */
.k-btn-primary:hover{background:var(--ink-2);color:var(--on-brand)}
.k-chip-yes{border:1px solid var(--yes)}
.k-chip-no{background:transparent;border:1.5px solid var(--no)}
.k-note-yes{background:var(--yes-tint);border:1px solid var(--yes);border-left:4px solid var(--accent)}
.k-note-no{background:transparent;border:1.5px solid var(--no)}
.k-ver svg{color:var(--brand-ink)}
.k2-hero h1 em{color:var(--brand-ink)}
.k2-dc h3{color:var(--ink)}


/* Slack Water, on Signal Flags (M3), over Wrack Line (K2) */
html{scroll-padding-top:16px}
[hidden]{display:none!important}
body{overflow-x:hidden}
img,svg{max-width:100%}
.sw-wrap{max-width:1180px;margin:0 auto;padding-inline:24px}
.sw-skip{position:absolute;left:-9999px;top:0;z-index:9;background:var(--raised);color:var(--ink);padding:12px 16px;font-family:var(--f-ui);min-height:44px}
.sw-skip:focus{left:12px;top:12px;outline:3px solid var(--focus)}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
/* example bar */
.sw-exbar{background:var(--brand);color:var(--on-brand);font-family:var(--f-ui);font-size:14px;line-height:1.5}
.sw-exbar p{margin:0;padding:8px 0}
.sw-exbar a{color:var(--on-brand);text-underline-offset:.2em}
/* header: the gate sign */
.sw-head{background:var(--surface);border-bottom:1px solid var(--line)}
.sw-head .sw-wrap{display:flex;flex-wrap:wrap;align-items:center;gap:6px 20px;padding-block:10px}
.sw-brand{display:inline-flex;align-items:center;gap:11px;color:var(--ink);text-decoration:none;min-height:44px;margin-right:auto}
.sw-brand svg{width:34px;height:34px;flex:none;color:var(--brand-ink)}
.sw-brand b{display:block;font-family:var(--f-display);font-weight:820;font-size:27px;letter-spacing:.07em;text-transform:uppercase;line-height:1}
.sw-brand small{display:block;font-family:var(--f-ui);font-size:13.5px;color:var(--ink-2);margin-top:3px}
@media (max-width:1279px){.sw-brand small{display:none}}
.sw-nav{display:flex;flex-wrap:wrap;gap:0 2px;font-family:var(--f-ui);font-size:16px}
.sw-nav a{display:inline-flex;align-items:center;min-height:44px;padding:0 10px;color:var(--ink-2);text-decoration:none;border-bottom:3px solid transparent;font-weight:600}
.sw-nav a:hover{color:var(--ink);text-decoration:underline}
.sw-nav a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--brand-ink);font-weight:700}
.sw-tools{display:flex;gap:8px;flex-wrap:wrap}
.sw-tg{display:inline-flex;gap:2px;padding:2px;border:1px solid var(--line-strong);border-radius:var(--r-2)}
.sw-tg button{all:unset;cursor:pointer;box-sizing:border-box;min-height:44px;min-width:44px;display:inline-flex;align-items:center;justify-content:center;padding:4px 13px;border-radius:var(--r-1);font-family:var(--f-ui);font-size:14.5px;font-weight:600;color:var(--ink-2)}
.sw-tg button[aria-pressed="true"]{background:var(--brand);color:var(--on-brand)}
.sw-tg button:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
/* type helpers */
.sw-kick{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0 0 12px;font-family:var(--f-display);font-size:15px;font-weight:800;letter-spacing:.15em;text-transform:uppercase;color:var(--ink-2)}
.sw-h2{font-family:var(--f-display);font-weight:780;font-size:clamp(32px,4.4vw,var(--t-2xl));line-height:1.02;letter-spacing:-.005em;margin:0 0 14px;text-wrap:balance}
.sw-h2 em{font-style:normal;background:linear-gradient(transparent 80%,var(--sand) 80%)}
.sw-lede{font-size:var(--t-lg);line-height:1.52;color:var(--ink-2);max-width:40em;margin:0 0 24px}
.sw-prose{max-width:var(--measure)}
.sw-prose p{margin:0 0 14px}
.sw-sec{font-family:var(--f-mono);font-size:.78em;white-space:nowrap;letter-spacing:-.02em}
.sw-small{font-family:var(--f-ui);font-size:var(--t-sm);color:var(--ink-2)}
.sw-mono{font-family:var(--f-mono);font-size:13.5px;overflow-wrap:anywhere}
code{font-size:.84em;overflow-wrap:anywhere}
.k-btn{min-height:48px}
.k-btn[disabled],.k-btn[disabled]:hover{background:transparent;color:var(--ink-3);border-color:var(--line);cursor:not-allowed;text-decoration:none}
section.sw{padding-block:clamp(44px,6vw,80px);border-top:1px solid var(--line)}
section.sw.sw-first{border-top:0;padding-top:8px}
.sw-sandband{background:var(--surface)}
.sw-pagehead{padding-block:clamp(26px,4vw,50px) 18px}
.sw-pagehead h1{font-family:var(--f-display);font-weight:820;font-size:clamp(46px,7vw,var(--t-3xl));line-height:.95;letter-spacing:-.01em;margin:0 0 16px;text-wrap:balance}
.sw-pagehead h1 em{font-style:normal;background:linear-gradient(transparent 80%,var(--sand) 80%)}
/* verification (KindlingDemo.levelBadge), restyled as a laminated tag */
.kd-level{display:inline-flex;align-items:center;gap:6px;font-family:var(--f-ui);font-size:14.5px;font-weight:600;line-height:1.3;color:var(--ink-2);padding:2px 8px 3px 7px;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-1);vertical-align:middle;white-space:nowrap}
.kd-level svg{width:15px;height:15px;flex:none;color:var(--brand-ink)}
.kd-level[data-level="unverified"]{color:var(--caution);border-style:dashed;border-color:var(--caution);background:transparent}
.kd-level[data-level="unverified"] svg{color:var(--caution)}
/* state chips: a filled blue is a yes, a no is an outline with a cross, and waiting is gray and dashed */
.sw-chip{display:inline-flex;align-items:center;gap:6px;font-family:var(--f-ui);font-size:14.5px;font-weight:700;line-height:1.25;padding:4px 10px;border-radius:var(--r-1);border:1px solid var(--line-strong);color:var(--ink);background:var(--surface)}
.sw-chip svg{width:15px;height:15px;flex:none}
.sw-chip.yes{color:var(--yes);background:var(--yes-tint);border-color:var(--yes)}
.sw-chip.wait{color:var(--caution);background:var(--caution-tint);border:1px dashed var(--caution)}
.sw-chip.no{color:var(--no);background:var(--no-tint);border-color:transparent}
.sw-chip.quiet{color:var(--caution);background:transparent;border:1px dotted var(--caution)}
.sw-chip.ok{color:var(--ink);background:var(--surface);border-color:var(--line-strong)}
/* hero */
.sw-hero .k2-gate{padding-top:clamp(26px,4vw,56px)}
.sw-hero .k2-kick svg{color:var(--brand-ink)}
.sw-more{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin:14px 0 0}
.sw-more a{display:inline-flex;align-items:center;min-height:44px;font-family:var(--f-ui);font-weight:700}
/* the weekend */
.sw-program{display:grid;gap:18px}
@media (min-width:900px){.sw-program{grid-template-columns:repeat(3,minmax(0,1fr))}}
.sw-program .k2-sheet h3{margin:0 0 10px;font-family:var(--f-display);font-weight:800;font-size:var(--t-xl);line-height:1}
.sw-program ol{list-style:none;margin:0;padding:0}
.sw-program li{display:grid;grid-template-columns:92px minmax(0,1fr);gap:4px 12px;padding:10px 0;border-top:1px solid var(--line)}
.sw-program li .t{font-family:var(--f-mono);font-size:13px;color:var(--ink-2);padding-top:3px}
.sw-program li b{font-weight:700}
.sw-program li span.d{display:block;font-size:16px;color:var(--ink-2);line-height:1.45}
/* why people come back */
.sw-four{display:grid;gap:18px;counter-reset:four}
@media (min-width:760px){.sw-four{grid-template-columns:1fr 1fr}}
@media (min-width:1120px){.sw-four{grid-template-columns:repeat(4,minmax(0,1fr))}}
.sw-four .k2-sheet{display:flex;flex-direction:column;gap:10px}
.sw-four h3{margin:0;font-family:var(--f-display);font-weight:780;font-size:var(--t-xl);line-height:1.02}
.sw-four p{margin:0;font-size:17px;line-height:1.5;color:var(--ink-2)}
.sw-four .fact{font-family:var(--f-ui);font-size:15px;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-1);padding:8px 10px}
.sw-four .go{margin-top:auto}
.sw-four .go a{display:inline-flex;align-items:center;min-height:44px;font-family:var(--f-ui);font-weight:700}
.sw-nots{display:grid;gap:0 28px;margin:28px 0 0;padding:0;list-style:none}
@media (min-width:860px){.sw-nots{grid-template-columns:1fr 1fr}}
.sw-nots li{display:grid;grid-template-columns:22px 1fr;gap:10px;padding:12px 0;border-top:1px solid var(--line);font-size:17px;line-height:1.5}
.sw-nots li svg{width:18px;height:18px;margin-top:4px;color:var(--ink-2)}
.sw-nots b{font-weight:700}
/* the pools */
.sw-pools{display:grid;gap:18px}
@media (min-width:760px){.sw-pools{grid-template-columns:1fr 1fr}}
@media (min-width:1120px){.sw-pools{grid-template-columns:repeat(3,minmax(0,1fr))}}
.sw-pool{display:flex;flex-direction:column;gap:10px;min-width:0}
.sw-pool h3{margin:0;font-family:var(--f-display);font-weight:800;font-size:var(--t-xl);line-height:1}
.sw-pool .top{display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center;margin:0}
.sw-pool p.ch{margin:0;font-size:16.5px;line-height:1.5;color:var(--ink-2)}
.sw-pool dl{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:0;font-family:var(--f-ui);font-size:15px}
.sw-pool dt{color:var(--ink-2);font-weight:600}
.sw-pool dd{margin:0;min-width:0}
.sw-pool .go{margin-top:auto}
.sw-pool .go a{display:inline-flex;align-items:center;min-height:44px;font-family:var(--f-ui);font-weight:700}
.sw-pool.is-quiet{border-left-style:dashed;border-left-color:var(--caution);background:var(--surface)}
/* why this needs an open protocol */
.sw-shifts{list-style:none;margin:0 0 30px;padding:0;display:grid;gap:18px}
@media (min-width:980px){.sw-shifts{grid-template-columns:repeat(3,minmax(0,1fr))}}
.sw-shifts li{border-top:3px solid var(--brand);padding-top:12px}
.sw-shifts h3{margin:0 0 8px;font-family:var(--f-display);font-weight:780;font-size:var(--t-xl);line-height:1.02}
.sw-shifts h3 small{display:block;font-size:14px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);margin-bottom:6px;font-weight:800}
.sw-shifts p{margin:0 0 10px;font-size:17px;line-height:1.5;color:var(--ink-2)}
.sw-doors{display:grid;gap:14px}
@media (min-width:760px){.sw-doors{grid-template-columns:1fr 1fr}}
@media (min-width:1120px){.sw-doors{grid-template-columns:repeat(4,minmax(0,1fr))}}
.sw-door{margin:0;display:flex;flex-direction:column;gap:8px;min-width:0}
.sw-door figcaption{font-family:var(--f-display);font-weight:800;font-size:15px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2)}
.sw-door .face{flex:1;border:1px solid var(--line-strong);border-radius:var(--r-2);background:var(--raised);padding:14px;font-size:15px;line-height:1.45;min-width:0}
.sw-door .face ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.sw-door .face li{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px}
.sw-door .face b{font-weight:700}
.sw-door .paper{font-family:var(--f-mono);font-size:12.5px;background:var(--surface);border-style:dashed}
.sw-door .paper p{margin:0 0 8px}
.sw-door .paper ol{margin:0;padding-left:1.4em}
.sw-door .paper li{display:list-item}
.sw-door .app-h{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 10px;font-family:var(--f-ui);font-weight:700;font-size:14px;color:var(--ink-2);border-bottom:1px solid var(--line);padding-bottom:8px}
.sw-door .note{font-family:var(--f-ui);font-size:14px;color:var(--ink-2)}
.sw-door .face a{font-family:var(--f-ui);font-weight:700}
.sw-apps{margin:22px 0 0;padding:14px 16px;border:1px solid var(--line-strong);border-radius:var(--r-2);background:var(--surface);font-size:17px;max-width:62em}
.sw-apps a{font-weight:700}
/* money */
.sw-money{display:grid;gap:22px}
@media (min-width:900px){.sw-money{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
.sw-money ul{margin:0;padding:0;list-style:none}
.sw-money li{display:grid;grid-template-columns:22px 1fr;gap:10px;padding:9px 0;border-top:1px solid var(--line);font-size:17px}
.sw-money li svg{width:18px;height:18px;margin-top:4px;color:var(--ink-2)}
.sw-money h3{margin:0 0 8px;font-family:var(--f-display);font-weight:800;font-size:var(--t-xl)}
/* the info tent */
.sw-faq{display:grid;gap:0 32px;margin:0}
@media (min-width:860px){.sw-faq{grid-template-columns:1fr 1fr}}
.sw-faq div{padding:14px 0;border-top:1px solid var(--line)}
.sw-faq dt{font-family:var(--f-display);font-weight:780;font-size:var(--t-lg);margin:0 0 6px}
.sw-faq dd{margin:0;font-size:17px;line-height:1.5;color:var(--ink-2)}
/* pool page */
.sw-set{display:grid;gap:22px}
@media (min-width:980px){.sw-set{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)}}
.sw-charter blockquote{margin:0 0 16px;font-size:var(--t-lg);line-height:1.5}
.sw-facts{display:grid;grid-template-columns:minmax(120px,auto) 1fr;margin:0;font-size:16.5px}
.sw-facts dt,.sw-facts dd{padding:8px 0;border-top:1px solid var(--line)}
.sw-facts dt{font-family:var(--f-ui);font-weight:700;font-size:15px;color:var(--ink-2);padding-right:14px}
.sw-facts dd{margin:0;min-width:0}
.sw-facts dd .kd-level{margin-left:4px}
.sw-keepers{display:grid;gap:12px;align-content:start}
.sw-keepers ul{margin:0;padding-left:1.1em;font-size:16.5px;line-height:1.5;color:var(--ink-2)}
.sw-keepers ul li{margin-bottom:6px}
.sw-wall{display:grid;gap:18px;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));align-items:start}
.sw-wall .k2-badge{max-width:none}
.sw-wall .k2-name{font-size:28px}
.sw-wall .about{margin:4px 0 0;font-size:16px;line-height:1.48;color:var(--ink)}
.sw-wall .meta{margin:0;font-family:var(--f-ui);font-size:14.5px;line-height:1.4;color:var(--ink-2)}
.sw-wall .tags{margin:0;font-family:var(--f-mono);font-size:12.5px;color:var(--ink-2);overflow-wrap:anywhere}
.sw-wall .ret{justify-self:start;display:inline-flex;align-items:center;gap:6px;font-family:var(--f-ui);font-size:14px;font-weight:700;padding:2px 8px;border:1px solid var(--line-strong);border-radius:var(--r-1);background:var(--surface)}
.sw-wall .ret svg{width:14px;height:14px}
.sw-wall .k2-bfoot{margin-top:4px}
.sw-wall .k2-badge.is-you{outline:3px dashed var(--line-strong);outline-offset:3px}
.sw-ask{display:grid;gap:10px;max-width:760px}
.sw-ask label{font-family:var(--f-ui);font-weight:700;display:flex;align-items:center;min-height:44px}
.sw-ask .row{display:flex;flex-wrap:wrap;gap:10px}
.sw-ask input{flex:1 1 260px;min-height:48px;font:inherit;font-family:var(--f-ui);font-size:18px;padding:10px 14px;border:1.5px solid var(--line-strong);border-radius:var(--r-2);background:var(--raised);color:var(--ink)}
.sw-try{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.sw-try span{font-family:var(--f-ui);font-size:15px;color:var(--ink-2)}
.sw-try button{min-height:44px;padding:6px 14px;font:inherit;font-family:var(--f-ui);font-size:15.5px;font-weight:600;border:1px solid var(--line-strong);border-radius:var(--r-2);background:var(--surface);color:var(--ink);cursor:pointer}
.sw-try button:hover{background:var(--brand-tint)}
.sw-hits{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:10px;max-width:880px}
.sw-hits li{padding:12px 14px;background:var(--raised);border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:var(--r-1)}
.sw-hits li .who{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}
.sw-hits li .who b{font-family:var(--f-display);font-weight:780;font-size:var(--t-lg)}
.sw-hits li p{margin:6px 0 0;font-size:16.5px;color:var(--ink-2)}
.sw-hits li.sw-empty{border-left:4px dashed var(--caution);color:var(--ink-2)}
/* tables */
.sw-scroll{overflow-x:auto}
.sw-table{width:100%;border-collapse:collapse;font-family:var(--f-ui);font-size:15.5px;line-height:1.45}
.sw-table th,.sw-table td{text-align:left;vertical-align:top;padding:10px 12px 10px 0;border-top:1px solid var(--line)}
.sw-table thead th{font-weight:700;color:var(--ink-2);border-top:0;border-bottom:2px solid var(--line-strong)}
.sw-table tbody th{font-weight:700}
.sw-verdict{display:inline-flex;align-items:center;gap:6px;font-weight:700;white-space:nowrap}
.sw-verdict svg{width:15px;height:15px}
.sw-verdict.ok{color:var(--ink)}
.sw-verdict.held{color:var(--caution)}
.sw-verdict.blocked{color:var(--no)}
/* smaller pools */
.sw-small3{display:grid;gap:18px}
.sw-sp{display:grid;gap:10px}
.sw-sp h3{margin:0;font-family:var(--f-display);font-weight:800;font-size:var(--t-xl);line-height:1}
.sw-sp .ch{margin:0;font-size:17px;line-height:1.5;color:var(--ink-2);max-width:60em}
.sw-sp .kept{margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;font-family:var(--f-ui);font-size:15.5px}
.sw-sp .k2-strand{margin-top:4px}
.sw-sp .kept2{margin:0;font-family:var(--f-ui);font-size:15.5px;color:var(--ink-2)}
/* a member's own screen */
.sw-screen{border:1.5px solid var(--line-strong);border-radius:var(--r-3);background:var(--raised);padding:16px 18px;display:grid;gap:10px;max-width:520px}
.sw-screen .bar{display:flex;justify-content:space-between;gap:8px;margin:0;font-family:var(--f-ui);font-size:14px;font-weight:700;color:var(--ink-2);border-bottom:1px solid var(--line);padding-bottom:8px}
.sw-screen h3{margin:0;font-family:var(--f-display);font-weight:800;font-size:var(--t-xl)}
.sw-screen p{margin:0}
.sw-said{margin:0;font-family:var(--f-ui);font-size:15.5px;color:var(--ink-2);min-height:1.4em}
.sw-member{display:grid;gap:24px}
@media (min-width:900px){.sw-member{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
/* intro page */
.sw-hs{display:grid;gap:26px}
@media (min-width:1000px){.sw-hs{grid-template-columns:320px minmax(0,1fr)}}
.sw-hs-left{display:grid;gap:16px;align-content:start;justify-items:start}
.sw-scan{display:flex;align-items:center;gap:12px;min-height:44px;padding:10px 14px 10px 10px;font:inherit;font-family:var(--f-ui);font-size:16px;font-weight:700;text-align:left;color:var(--ink);background:var(--surface);border:1.5px solid var(--line-strong);border-radius:var(--r-2);cursor:pointer}
.sw-scan .k2-qr{width:56px;height:56px}
.sw-scan:hover{background:var(--brand-tint)}
.sw-letter{padding:clamp(18px,3vw,30px);scroll-margin-top:16px}
.sw-letter h2 em{font-style:normal;background:linear-gradient(transparent 80%,var(--sand) 80%)}
.sw-letter.is-flash{outline:3px solid var(--focus);outline-offset:4px}
.sw-letter h2{font-family:var(--f-display);font-weight:800;font-size:clamp(28px,3.4vw,38px);line-height:1.04;margin:0 0 8px;text-wrap:balance}
.sw-env{display:grid;grid-template-columns:auto 1fr;gap:3px 14px;font-family:var(--f-ui);font-size:15px;color:var(--ink-2);margin:0 0 14px}
.sw-env dt{color:var(--ink-3);font-weight:600}
.sw-env dd{margin:0;overflow-wrap:anywhere}
.sw-terms{display:grid;grid-template-columns:minmax(140px,auto) 1fr;margin:0 0 20px}
.sw-terms dt,.sw-terms dd{padding:10px 0;border-top:1px solid var(--line)}
.sw-terms dt{font-family:var(--f-ui);font-weight:700;font-size:15px;color:var(--ink-2);padding-right:16px;padding-top:12px}
.sw-terms dd{margin:0;font-size:17px;line-height:1.5;min-width:0}
.sw-sign{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px}
.sw-sign b{font-family:var(--f-display);font-weight:780;font-size:var(--t-lg)}
.sw-actions{display:grid;gap:12px}
.sw-state{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0}
.sw-controls{border:1px dashed var(--line-strong);border-radius:var(--r-2);padding:16px 18px;display:grid;gap:10px;background:var(--surface)}
.sw-controls h3{margin:0;font-family:var(--f-display);font-weight:800;font-size:var(--t-lg);letter-spacing:.1em;text-transform:uppercase}
.sw-controls p{margin:0;font-size:16px;color:var(--ink-2)}
.sw-controls .row{display:flex;flex-wrap:wrap;gap:8px}
.sw-disc{border:1px solid var(--line);border-radius:var(--r-2);background:var(--raised);padding:0 14px}
.sw-disc summary{min-height:44px;display:flex;align-items:center;cursor:pointer;font-family:var(--f-ui);font-weight:700}
.sw-events{list-style:none;margin:0 0 12px;padding:0;display:grid;gap:10px}
.sw-events li{border-top:1px solid var(--line);padding-top:10px;min-width:0}
.sw-controls > *,.sw-disc,.sw-disc > *{min-width:0}
.sw-events .t{font-family:var(--f-mono);font-size:12.5px;color:var(--ink-2)}
.sw-events p{margin:4px 0 6px;font-size:16px}
.sw-json{font-family:var(--f-mono);font-size:12.5px;line-height:1.55;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-1);padding:12px 14px;overflow:auto;max-height:420px;white-space:pre;margin:0 0 10px;color:var(--ink)}
.sw-side3{display:grid;gap:18px;margin-top:10px}
@media (min-width:980px){.sw-side3{grid-template-columns:repeat(3,minmax(0,1fr))}}
.sw-side3 > *{min-width:0}
.sw-side3 h3{margin:0 0 8px;font-family:var(--f-display);font-weight:800;font-size:var(--t-xl);line-height:1.02}
.sw-side3 p{margin:0 0 10px;font-size:16.5px;line-height:1.5;color:var(--ink-2)}
.sw-phone{border:2px solid var(--ink-2);border-radius:22px;padding:14px;background:var(--raised);max-width:320px}
.sw-phone p{font-size:15.5px}
.sw-form{display:grid;gap:12px}
.sw-form label{display:grid;gap:6px;font-family:var(--f-ui);font-weight:700;font-size:15.5px}
.sw-form input[type="text"]{min-height:48px;font:inherit;font-family:var(--f-ui);font-size:17px;padding:10px 12px;border:1.5px solid var(--line-strong);border-radius:var(--r-2);background:var(--raised);color:var(--ink)}
.sw-form .check{display:flex;align-items:flex-start;gap:10px;min-height:44px;font-weight:600}
.sw-form .check input{width:24px;height:24px;margin:2px 0 0;accent-color:var(--brand)}
/* after page */
.sw-steps{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 6px}
.sw-steps button{min-height:48px;padding:8px 16px;font:inherit;font-family:var(--f-display);font-weight:800;font-size:17px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink);background:var(--raised);border:1.5px solid var(--line-strong);border-radius:var(--r-2);cursor:pointer}
.sw-steps button[aria-pressed="true"]{background:var(--brand);color:var(--on-brand);border-color:var(--brand)}
.sw-stagehead{display:grid;gap:10px;margin-top:18px}
.sw-stage{display:grid;gap:26px;margin-top:18px}
@media (min-width:1000px){.sw-stage{grid-template-columns:300px minmax(0,1fr)}}
.sw-stage-left{display:grid;gap:14px;align-content:start;justify-items:start}
.sw-stage-main{display:grid;gap:16px;min-width:0;align-content:start}
.sw-when{margin:0;font-family:var(--f-display);font-weight:800;font-size:clamp(28px,3.6vw,40px);line-height:1}
.sw-when small{display:block;font-family:var(--f-mono);font-weight:400;font-size:13px;letter-spacing:0;text-transform:none;color:var(--ink-2);margin-top:6px}
.sw-status{display:flex;flex-wrap:wrap;gap:8px;margin:0}
.sw-panel{border:1px solid var(--line);border-radius:var(--r-2);background:var(--raised);padding:14px 16px;display:grid;gap:10px}
.sw-panel > *,.sw-panel > * > *{min-width:0}
.sw-panel h3{margin:0;font-family:var(--f-display);font-weight:780;font-size:var(--t-lg)}
.sw-panel p{margin:0;font-size:16.5px;line-height:1.5}
.sw-panel ul{margin:0;padding-left:1.1em;font-size:16.5px;line-height:1.5}
.sw-rides{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.sw-rides li{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--r-1)}
.sw-rides li b{font-family:var(--f-display);font-weight:780;font-size:var(--t-lg)}
.sw-rides li span.w{flex-basis:100%;font-size:15.5px;color:var(--ink-2)}
.sw-curators{display:flex;flex-wrap:wrap;gap:10px}
.sw-curators > div{display:grid;gap:4px;padding:10px 12px;border:1px solid var(--line-strong);border-radius:var(--r-2);background:var(--surface);min-width:0}
.sw-curators b{font-family:var(--f-display);font-weight:780;font-size:var(--t-lg)}
.sw-curators span.r{font-family:var(--f-ui);font-size:14px;color:var(--ink-2)}
.sw-write{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.sw-verdictline{margin:0;display:flex;align-items:flex-start;gap:8px;font-family:var(--f-ui);font-size:16px;font-weight:600}
.sw-verdictline svg{width:17px;height:17px;flex:none;margin-top:3px}
.sw-verdictline.ok{color:var(--ink)}
.sw-verdictline.held{color:var(--caution)}
.sw-tidetable{width:100%;border-collapse:collapse;font-size:16px}
.sw-tidetable th,.sw-tidetable td{text-align:left;vertical-align:top;padding:10px 12px 10px 0;border-top:1px solid var(--line)}
.sw-tidetable th{font-family:var(--f-mono);font-weight:500;font-size:13.5px;color:var(--ink-2);white-space:nowrap}
.sw-tidetable td b{font-weight:700}
.sw-cols{display:grid;gap:22px}
@media (min-width:980px){.sw-cols{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
.sw-cols > *{min-width:0}
.sw-cols{align-items:start}
.sw-notice{border:1px solid var(--line-strong);border-left:6px dotted var(--caution);border-radius:var(--r-2);background:var(--raised);padding:16px 18px}
.sw-notice h3{margin:0 0 6px;font-family:var(--f-display);font-weight:800;font-size:var(--t-xl);line-height:1.05}
.sw-notice p{margin:0 0 10px;font-size:16.5px;line-height:1.5}
.sw-notice .from{font-family:var(--f-ui);font-size:14.5px;color:var(--ink-2)}
.sw-vote{display:grid;gap:12px}
.sw-vote .row{display:flex;flex-wrap:wrap;gap:8px}
.sw-vote .row button[aria-pressed="true"]{outline:3px solid var(--line-strong);outline-offset:2px}
.sw-tally{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.sw-tally li{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:6px 0;border-top:1px solid var(--line)}
.sw-tally li b{font-family:var(--f-display);font-weight:780;font-size:var(--t-lg)}
.sw-rule{font-family:var(--f-ui);font-size:16px;font-weight:700;margin:0}
.sw-checks{display:grid;gap:14px}
@media (min-width:900px){.sw-checks{grid-template-columns:1fr 1fr}}
.sw-checks .sw-panel h3 small{display:block;font-family:var(--f-ui);font-weight:600;font-size:14px;color:var(--ink-2);letter-spacing:0;margin-top:4px}
/* under the hood */
.sw-explain{display:grid;gap:18px}
@media (min-width:900px){.sw-explain{grid-template-columns:1fr 1fr}}
.sw-explain h3{margin:0 0 8px;font-family:var(--f-display);font-weight:800;font-size:var(--t-xl)}
.sw-explain p{margin:0;font-size:16.5px;line-height:1.55}
.sw-files{list-style:none;margin:0;padding:0;display:grid;gap:0 24px}
@media (min-width:860px){.sw-files{grid-template-columns:1fr 1fr}}
.sw-files li{padding:10px 0;border-top:1px solid var(--line);font-size:16px}
.sw-files a{font-family:var(--f-mono);font-size:14px;display:inline-flex;align-items:center;min-height:44px;overflow-wrap:anywhere}
.sw-man{margin-bottom:22px}
.sw-man h3{margin:0 0 6px;font-family:var(--f-display);font-weight:800;font-size:var(--t-xl)}
.sw-man .file{margin:0 0 12px;font-size:15px;color:var(--ink-2)}
.sw-man .file a{font-family:var(--f-mono);font-size:14px}
.sw-dl{display:grid;grid-template-columns:minmax(150px,auto) 1fr;margin:0 0 12px;font-size:15.5px}
.sw-dl dt,.sw-dl dd{padding:7px 0;border-top:1px solid var(--line)}
.sw-dl dt{font-family:var(--f-mono);font-size:13px;color:var(--ink-2);padding-right:14px;padding-top:9px}
.sw-dl dd{margin:0;min-width:0;overflow-wrap:anywhere}
.sw-gaps{margin:0;padding-left:1.4em;display:grid;gap:4px;max-width:64em}
.sw-gaps li{padding:10px 0;border-top:1px solid var(--line)}
.sw-gaps b{font-weight:700}
.sw-gaps p{margin:4px 0 0;font-size:16.5px;line-height:1.55;color:var(--ink-2)}
/* footer */
.sw-foot{border-top:1px solid var(--line);background:var(--surface);padding-block:26px 40px;font-family:var(--f-ui);font-size:15px;color:var(--ink-2)}
.sw-foot p{margin:0 0 8px;max-width:70em}
.sw-foot .addr{font-weight:700;color:var(--ink)}
@media (max-width:760px){
 .sw-hs-left{justify-items:stretch}
 .sw-terms{grid-template-columns:1fr}.sw-terms dt{padding-bottom:0}.sw-terms dd{border-top:0;padding-top:2px}
 .sw-facts{grid-template-columns:1fr}.sw-facts dt{padding-bottom:0}.sw-facts dd{border-top:0;padding-top:2px}
 .sw-dl{grid-template-columns:1fr}.sw-dl dt{padding-bottom:0}.sw-dl dd{border-top:0;padding-top:2px}
 table.sw-stack thead{display:none}
 table.sw-stack,table.sw-stack tbody,table.sw-stack tr,table.sw-stack td,table.sw-stack th{display:block;width:100%}
 table.sw-stack tr{border-top:2px solid var(--line-strong);padding:6px 0}
 table.sw-stack td,table.sw-stack th{border-top:0;padding:4px 0}
 table.sw-stack td[data-label]::before{content:attr(data-label);display:block;font-family:var(--f-ui);font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2)}
}
@media (max-width:560px){
 .sw-wrap{padding-inline:16px}
 .sw-program li{grid-template-columns:78px minmax(0,1fr)}
 .sw-lede{font-size:19px}
 .sw-steps button{flex:1 1 100%}
 .sw-head .sw-wrap{gap:4px 12px}
 .sw-nav{font-size:15px}
 .sw-nav a{padding:0 8px}
}


/* Signal Flags (M3): the site's own classes */
.sw-h2 em,.sw-pagehead h1 em,.sw-letter h2 em{background:none;color:var(--brand-ink)}
.sw-chip.no{background:transparent;border:1.5px solid var(--no)}
.sw-pool.is-quiet{border-color:var(--line);background:repeating-linear-gradient(90deg,var(--caution) 0 10px,transparent 10px 16px) 0 0/100% 6px no-repeat,var(--surface)}
.sw-exbar a:focus-visible{outline-color:var(--on-brand)}
.sw-hero .m3-hoist{height:92px;margin:8px 0 -30px}
.sw-hits li.sw-empty{border-left-color:var(--caution)}
@media (max-width:560px){.sw-hero .m3-hoist{height:76px;margin-bottom:-18px}}
