/* Heartwood · built on the H2 End Grain language. Tokens come from pk/packages/H2_end_grain.py unchanged. */
:root{--bg:#F3EDE6;--surface:#FAF6F1;--raised:#FFFFFF;--line:#E2D6CC;--line-strong:#8E766A;--ink:#2A1914;--ink-2:#584139;--ink-3:#6B554B;--brand:#5A2418;--on-brand:#FAF6F1;--brand-ink:#5A2418;--brand-tint:#F1E1D7;--accent:#B0721F;--accent-ink:#87520F;--on-accent:#1E120E;--yes:#935A10;--yes-tint:#F6E7CF;--caution:#6A615C;--caution-tint:#ECE7E3;--no:#405777;--no-tint:#E2E8F0;--focus:#1D5F8A;--grain:#E8DDD2;--ring:#CDB8A8;--heart:#7B3A22;color-scheme:light}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--bg:#251513;--surface:#2E1C18;--raised:#38241F;--line:#4D352E;--line-strong:#9E8074;--ink:#F6ECE4;--ink-2:#DCC8BC;--ink-3:#C4AC9E;--brand:#F2D0B8;--on-brand:#251513;--brand-ink:#F2D0B8;--brand-tint:#462C23;--accent:#E1A04A;--accent-ink:#E8AC5C;--on-accent:#251513;--yes:#E6AF51;--yes-tint:#3F2C17;--caution:#A89C95;--caution-tint:#352622;--no:#97B2D8;--no-tint:#27293A;--focus:#8EC3EE;--grain:#2E1C18;--ring:#654B40;--heart:#C4703F;color-scheme:dark}}
:root[data-theme="dark"]{--bg:#251513;--surface:#2E1C18;--raised:#38241F;--line:#4D352E;--line-strong:#9E8074;--ink:#F6ECE4;--ink-2:#DCC8BC;--ink-3:#C4AC9E;--brand:#F2D0B8;--on-brand:#251513;--brand-ink:#F2D0B8;--brand-tint:#462C23;--accent:#E1A04A;--accent-ink:#E8AC5C;--on-accent:#251513;--yes:#E6AF51;--yes-tint:#3F2C17;--caution:#A89C95;--caution-tint:#352622;--no:#97B2D8;--no-tint:#27293A;--focus:#8EC3EE;--grain:#2E1C18;--ring:#654B40;--heart:#C4703F;color-scheme:dark}
:root{--f-display:"Petrona", Georgia, serif;--f-text:"Petrona", Georgia, serif;--f-ui:"Schibsted Grotesk", system-ui, sans-serif;--f-mono:"Spline Sans 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:640;--w-text:400;--w-ui:560;--lh-text:1.55;--track-display:-0.012em;--measure:62ch;--t-cap:13px;--t-sm:15px;--t-base:19px;--t-lg:22px;--t-xl:30px;--t-2xl:40px;--t-3xl:56px;--t-hero:84px}
: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:10px;--r-3:22px;--r-pill:999px;--bw:1px;--shadow:0 1px 0 rgb(42 25 20 / .06), 0 8px 24px -14px rgb(42 25 20 / .28);--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:240ms;--ease:cubic-bezier(.3,.6,.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}}

/* H2 package CSS */

/* End Grain: planks and rings */
body{font-feature-settings:"kern","liga"}
h1,h2,h3,.pk-t,.pk-hl{font-feature-settings:"kern","liga","lnum"}
.pk-t{font-weight:640}
.pk-t em,.pk-type em,.pk-hl em{font-style:italic;font-weight:500;color:var(--brand-ink)}
.pk-h{letter-spacing:.12em;font-weight:650}
/* the end-grain texture: concentric rings, off center, very faint */
.h2-grain{background-color:var(--surface);background-image:repeating-radial-gradient(ellipse 120% 100% at 88% 118%,transparent 0 17px,var(--grain) 17px 18.5px,transparent 18.5px 31px,var(--grain) 31px 32px)}
.h2-heartgrain{background-color:var(--brand);background-image:repeating-radial-gradient(ellipse 140% 90% at 50% 112%,transparent 0 13px,rgb(255 255 255 / .05) 13px 14.5px)}
:root[data-theme="dark"] .h2-heartgrain{background-image:repeating-radial-gradient(ellipse 140% 90% at 50% 112%,transparent 0 13px,rgb(37 21 19 / .07) 13px 14.5px)}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .h2-heartgrain{background-image:repeating-radial-gradient(ellipse 140% 90% at 50% 112%,transparent 0 13px,rgb(37 21 19 / .07) 13px 14.5px)}}
/* the ring glyph */
.h2-ringic{width:20px;height:20px;flex:none}
/* verdicts: Same, Close, Different */
.h2-verdict{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;white-space:nowrap}
.h2-verdict svg{width:16px;height:16px;flex:none}
.h2-v-same{color:var(--accent-ink)}
.h2-v-near{color:var(--accent-ink)}
.h2-v-diff{color:var(--ink-2)}
/* compatibility rings */
.h2-rings{display:block;width:100%;max-width:240px;height:auto;overflow:visible}
.h2-rings .h2-rg{fill:none}
.h2-rings .h2-rg-same,.h2-rings .h2-rg-near{stroke:var(--accent)}
.h2-rings .h2-rg-track{stroke:var(--ring)}
.h2-rings .h2-rg-diff{stroke:var(--line-strong);stroke-dasharray:3 4}
.h2-rings .h2-rg-heart{fill:var(--heart)}
/* the signature: a ring closes, once */
.h2-sigwrap{display:inline-flex;align-items:center;gap:14px}
.h2-sig .h2-sig-track{fill:none;stroke:var(--ring);stroke-width:2}
.h2-sig .h2-sig-ring{fill:none;stroke:var(--accent);stroke-width:5;stroke-linecap:round;stroke-dasharray:164 164;stroke-dashoffset:0;transform:rotate(-90deg);transform-origin:32px 32px}
.h2-sig .h2-sig-heart{fill:var(--heart)}
.h2-sig.is-playing .h2-sig-ring{animation:h2close 640ms var(--ease) both}
@keyframes h2close{from{stroke-dashoffset:164}to{stroke-dashoffset:0}}
@media (prefers-reduced-motion: reduce){.h2-sig.is-playing .h2-sig-ring{animation:none}}
.h2-sigcap{font-family:var(--f-text);font-size:var(--t-lg);color:var(--ink)}
/* verification, restyled: a quiet line with its icon */
.k-ver{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:560;line-height:1.3;color:var(--ink-2);padding:3px 10px 3px 8px;border:1px solid var(--line);border-radius:var(--r-pill);background:var(--surface);white-space:nowrap}
.k-ver svg{width:15px;height:15px;flex:none;color:var(--brand-ink)}
.k-ver-unverified{color:var(--caution);border:1.5px dashed var(--caution);background:transparent}
.k-ver-unverified svg{color:var(--caution)}
/* kit */
.k-btn{border-radius:var(--r-2);font-weight:600;font-size:17px;min-height:48px;padding:11px 20px}
.k-btn-primary{background:var(--brand);color:var(--on-brand);border:2px solid var(--brand)}
.k-btn-primary:hover{background:var(--ink);border-color:var(--ink);color:var(--bg)}
.k-btn-secondary{background:transparent;color:var(--brand-ink);border:2px solid var(--brand-ink)}
.k-btn-secondary:hover{background:var(--brand-tint)}
.k-btn-quiet{color:var(--brand-ink);border:2px solid transparent}
.k-btn[disabled]{background:transparent;color:var(--ink-3);border:2px dashed var(--line-strong)}
.k-yn{max-width:440px}
.k-chip{border-radius:var(--r-pill);font-weight:600}
.k-chip-caution{background:transparent;border:1.5px dashed var(--caution)}
.k-note{border-radius:var(--r-2);background:var(--surface)}
.k-field input{border-radius:var(--r-2);background:var(--raised);border-width:1.5px}
.k-field.is-error small::before{content:"\00D7";font-weight:700;margin-right:6px}
.pk-radii div{border-color:var(--brand-ink)}
/* yes and no: one fixed size, one color, differing by fill */
.h2-yn{display:grid;grid-template-columns:1fr 1fr;gap:10px;max-width:420px}
.h2-yn .k-btn,.h2-yes,.h2-no{min-height:48px;width:100%}
.h2-yesto{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;min-width:44px;padding:8px 14px;border-radius:var(--r-pill);font-family:var(--f-ui);font-variation-settings:var(--fvs-ui);font-size:15px;font-weight:620;
  background:var(--raised);color:var(--brand-ink);border:2px solid var(--brand-ink);cursor:pointer}
.h2-yesto svg{width:18px;height:18px}
.h2-yesto:hover{background:var(--brand-tint)}
.h2-yesto[aria-pressed="true"]{background:var(--brand);color:var(--on-brand);border-color:var(--brand)}
/* attribution: where a card came from, and who keeps it */
.h2-from{display:flex;align-items:flex-start;gap:8px;margin:0;font-family:var(--f-ui);font-variation-settings:var(--fvs-ui);font-size:var(--t-sm);color:var(--ink-2);line-height:1.4}
.h2-from b{color:var(--ink);font-weight:650}
.h2-from .h2-ringic{color:var(--accent-ink);margin-top:1px}
.h2-from .k-ver,.h2-from .kd-level{margin-left:4px}
/* the plank: a card read top to bottom */
.h2-plank{position:relative;background:var(--raised);border:1px solid var(--line);border-radius:var(--r-3);box-shadow:var(--shadow);overflow:hidden}
.h2-plank::before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--brand)}
.h2-plank-in{padding:18px 20px 22px 26px;display:grid;gap:18px}
.h2-photo{position:relative;margin:0;border-radius:var(--r-3);overflow:hidden;background:var(--surface)}
.h2-photo > svg{display:block;width:100%;height:auto}
.h2-photo::after{content:"";position:absolute;inset:6px;border:1px solid rgb(255 255 255 / .55);border-radius:calc(var(--r-3) - 5px);pointer-events:none}
.h2-photo .h2-yesto{position:absolute;right:12px;bottom:12px;z-index:1;box-shadow:0 2px 10px -2px rgb(0 0 0 / .35)}
.h2-name{margin:0;font-family:var(--f-display);font-variation-settings:var(--fvs-display);font-weight:600;font-size:var(--t-xl);line-height:1.1;letter-spacing:-.01em;color:var(--ink)}
.h2-name small{font-family:var(--f-ui);font-size:var(--t-sm);font-weight:560;color:var(--ink-2);letter-spacing:0;margin-left:8px}
.h2-sub{margin:4px 0 0;font-family:var(--f-ui);font-variation-settings:var(--fvs-ui);font-size:var(--t-sm);color:var(--ink-2)}
.h2-prompt{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-2);padding:16px 18px 14px}
.h2-prompt h3,.h2-prompt .q{margin:0 0 6px;font-family:var(--f-ui);font-variation-settings:var(--fvs-ui);font-size:var(--t-sm);font-weight:650;color:var(--ink-2);letter-spacing:.01em}
.h2-prompt p{margin:0 0 12px;font-family:var(--f-text);font-size:var(--t-lg);line-height:1.42;color:var(--ink)}
.h2-basics{display:flex;flex-wrap:wrap;gap:6px}
.h2-basics span{display:inline-flex;align-items:center;gap:6px;font-family:var(--f-ui);font-variation-settings:var(--fvs-ui);font-size:14.5px;font-weight:540;color:var(--ink);padding:4px 11px;border:1px solid var(--line);border-radius:var(--r-pill);background:var(--surface)}
.h2-basics span b{font-weight:650;color:var(--ink-2)}
/* the reading beside a card */
.h2-reading{background:var(--raised);border:1px solid var(--line);border-radius:var(--r-3);padding:18px}
.h2-reading h3{margin:0 0 4px;font-family:var(--f-display);font-weight:620;font-size:24px;line-height:1.15}
.h2-sum{margin:12px 0 10px;font-family:var(--f-ui);font-variation-settings:var(--fvs-ui);font-size:16px;line-height:1.45}
.h2-sum b{font-family:var(--f-display);font-weight:640;font-size:22px}
.h2-lines{list-style:none;margin:0;padding:0}
.h2-lines li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 10px;padding:9px 0;border-top:1px solid var(--line);font-family:var(--f-ui);font-variation-settings:var(--fvs-ui);font-size:14.5px;line-height:1.4}
.h2-lines li .qt{font-weight:620;color:var(--ink)}
.h2-lines li .ans{grid-column:1/-1;color:var(--ink-2)}
/* layers */
.h2-layer{display:flex;align-items:center;gap:10px;min-height:44px;padding:6px 12px 6px 10px;border-radius:var(--r-pill);border:1.5px solid var(--line-strong);background:var(--raised);color:var(--ink);font-family:var(--f-ui);font-variation-settings:var(--fvs-ui);font-size:15px;font-weight:600;cursor:pointer;text-align:left}
.h2-layer .h2-ringic{color:var(--brand-ink)}
.h2-layer[aria-pressed="false"]{background:transparent;color:var(--ink-2);border-style:dashed}
.h2-layer[aria-pressed="false"] .h2-ringic{color:var(--ink-3)}
.h2-layer small{font-weight:500;color:var(--ink-2);font-size:13px}
/* hero */
.h2-hero{position:relative;overflow:hidden;border-bottom:1px solid var(--line)}
.h2-hero-in{position:relative;display:grid;gap:30px;padding-block:clamp(36px,6vw,78px) clamp(40px,6vw,84px);align-items:center}
@media (min-width:900px){.h2-hero-in{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);column-gap:clamp(30px,5vw,64px)}}
.h2-kick{display:inline-flex;align-items:center;gap:10px;margin:0 0 18px;font-family:var(--f-ui);font-variation-settings:var(--fvs-ui);font-size:14px;font-weight:650;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2)}
.h2-kick svg{width:28px;height:28px;color:var(--brand-ink)}
.h2-hero h1{font-family:var(--f-display);font-variation-settings:var(--fvs-display);font-weight:650;font-size:clamp(48px,7.6vw,var(--t-hero));line-height:.98;letter-spacing:-.022em;margin:0 0 22px;color:var(--ink);text-wrap:balance}
.h2-hero h1 em{font-style:italic;font-weight:480;color:var(--brand-ink)}
.h2-lede{font-family:var(--f-text);font-size:var(--t-lg);line-height:1.5;color:var(--ink-2);margin:0 0 26px;max-width:30em}
.h2-ctas{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 16px}
.h2-free{margin:0;font-family:var(--f-ui);font-size:var(--t-sm);color:var(--ink-2)}
.h2-slice{position:relative;justify-self:center;width:min(100%,460px);aspect-ratio:1}
.h2-slice > svg{position:absolute;inset:0;width:100%;height:100%}
.h2-slice .face{position:absolute;left:31%;top:29%;width:36%;aspect-ratio:1;border-radius:50%;overflow:hidden;border:4px solid var(--raised);box-shadow:0 0 0 2px var(--brand)}
.h2-slice .face svg{display:block;width:100%;height:auto;margin-top:-6%}
.h2-slice .rl{fill:none;stroke:var(--ring);stroke-width:1.4}
.h2-slice .rl-on{stroke:var(--accent);stroke-width:3}
.h2-slice .bark{fill:none;stroke:var(--brand);stroke-width:10}
.h2-slice .lab{font-family:var(--f-ui);font-size:13px;font-weight:650;fill:var(--ink-2);letter-spacing:.04em}
.h2-slice .lab-on{fill:var(--accent-ink)}
.h2-ringlist{list-style:none;margin:0;padding:0;display:grid;gap:6px;font-family:var(--f-ui);font-variation-settings:var(--fvs-ui);font-size:15px;color:var(--ink-2)}
.h2-ringlist li{display:flex;align-items:center;gap:8px}
.h2-ringlist .h2-ringic{color:var(--accent-ink)}
/* feature: the app, one screen */
.h2-feat{display:grid;gap:22px;align-items:start}
@media (min-width:980px){.h2-feat{grid-template-columns:76px minmax(0,1fr) minmax(0,.82fr)}}
.h2-railmini{display:none}
@media (min-width:980px){.h2-railmini{display:flex;flex-direction:column;align-items:center;gap:14px;padding:16px 0;border-radius:var(--r-3);color:var(--on-brand);min-height:520px}}
.h2-railmini svg{width:34px;height:34px}
.h2-railmini span{font-family:var(--f-ui);font-size:12px;font-weight:600;text-align:center;line-height:1.2;opacity:.92}
.h2-railmini span.on{opacity:1;text-decoration:underline;text-underline-offset:4px}
.h2-featcol{display:grid;gap:16px;min-width:0}
.h2-parts{display:grid;gap:14px}
@media (min-width:640px){.h2-parts{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:start}}
.h2-readhead{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.h2-readhead .h2-rings{max-width:130px}
@media (max-width:560px){.h2-plank-in{padding:16px 14px 18px 20px}.h2-slice .lab{font-size:15px}}


/* Heartwood, built on H2 End Grain. */
[hidden]{display:none!important}
html{scroll-padding-top:12px}
body{overflow-x:hidden;font-optical-sizing:auto}
img,svg{max-width:100%}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
:root{--rail-bg:var(--brand);--rail-ink:var(--on-brand);--rail-sel:var(--surface);--rail-sel-ink:var(--brand-ink);--tabh:64px}
:root[data-theme="dark"]{--rail-bg:var(--brand-tint);--rail-ink:var(--ink);--rail-sel:var(--brand);--rail-sel-ink:var(--on-brand)}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--rail-bg:var(--brand-tint);--rail-ink:var(--ink);--rail-sel:var(--brand);--rail-sel-ink:var(--on-brand)}}
.hw-vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.hw-skip{position:absolute;left:-9999px;top:0;z-index:50;background:var(--raised);color:var(--ink);padding:12px 16px;min-height:44px;font-family:var(--f-ui)}
.hw-skip:focus{left:12px;top:12px}
.hw-mono{font-family:var(--f-mono);font-size:.84em;overflow-wrap:anywhere}
.hw-spec{font-family:var(--f-mono);font-size:.8em;white-space:nowrap}
.hw-small{font-family:var(--f-ui);font-variation-settings:var(--fvs-ui);font-size:var(--t-sm);color:var(--ink-2);line-height:1.45}
.hw-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.hw-linkbtn{all:unset;box-sizing:border-box;cursor:pointer;display:inline-flex;align-items:center;min-height:44px;min-width:44px;padding:0 4px;font-family:var(--f-ui);font-size:15px;font-weight:620;color:var(--brand-ink);text-decoration:underline;text-underline-offset:.2em}
.hw-linkbtn:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.k-btn{font-family:var(--f-ui)}
.k-btn-quiet{min-height:44px}
.kd-level{display:inline-flex;align-items:center;gap:6px;font-family:var(--f-ui);font-variation-settings:var(--fvs-ui);font-size:14px;font-weight:560;line-height:1.3;color:var(--ink-2);padding:3px 10px 3px 8px;border:1px solid var(--line);border-radius:var(--r-pill);background:var(--surface);white-space:nowrap;vertical-align:middle}
.kd-level svg{width:14px;height:14px;flex:none;color:var(--brand-ink)}
.kd-level[data-level="unverified"]{color:var(--caution);border:1.5px dashed var(--caution);background:transparent}
.kd-level[data-level="unverified"] svg{color:var(--caution)}
/* the example bar */
.hw-exbar{background:var(--ink);color:var(--bg);font-family:var(--f-ui);font-variation-settings:var(--fvs-ui);font-size:13.5px;line-height:1.4}
.hw-exbar p{margin:0;padding:7px 16px;max-width:1500px}
.hw-exbar a{color:var(--bg);text-underline-offset:.2em}
@media (max-width:560px){.hw-exbar .long{display:none}.hw-exbar p{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12.5px}}
/* the shell */
.hw-shell{display:grid;grid-template-columns:minmax(0,1fr)}
.hw-rail{display:none}
.hw-brand{display:inline-flex;align-items:center;gap:10px;color:var(--brand-ink);text-decoration:none;min-height:44px;font-family:var(--f-display);font-weight:650;font-size:26px;letter-spacing:-.012em}
.hw-brand svg{width:34px;height:34px;flex:none}
.hw-brand span{color:var(--ink)}
.hw-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;padding:10px 16px;background:var(--surface);border-bottom:1px solid var(--line)}
.hw-head .hw-brand{margin-right:auto}
.hw-tools{display:flex;gap:6px;flex-wrap:wrap}
.hw-tg{display:inline-flex;gap:2px;padding:2px;border:1px solid var(--line-strong);border-radius:var(--r-pill);background:var(--raised)}
.hw-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 12px;border-radius:var(--r-pill);font-family:var(--f-ui);font-size:14.5px;font-weight:560;color:var(--ink-2)}
.hw-tg button[aria-pressed="true"]{background:var(--ink);color:var(--bg)}
.hw-tg button:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.hw-topbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:10px 16px;background:var(--surface);border-bottom:1px solid var(--line)}
#hw-top{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;flex:1 1 auto;min-width:0}
.hw-rooms{display:flex;flex-wrap:wrap;gap:3px;padding:3px;border-radius:calc(var(--r-2) + 3px);background:var(--raised);border:1.5px solid var(--brand-ink);max-width:100%}
.hw-rooms button{all:unset;box-sizing:border-box;cursor:pointer;min-height:44px;min-width:44px;padding:6px 14px;border-radius:var(--r-2);font-family:var(--f-ui);font-variation-settings:var(--fvs-ui);font-size:15.5px;font-weight:650;text-align:center;color:var(--brand-ink);display:inline-flex;align-items:center;justify-content:center;gap:6px;flex:1 1 auto;white-space:nowrap}
.hw-rooms button[aria-pressed="true"]{background:var(--brand);color:var(--on-brand)}
.hw-rooms button:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.hw-dot{width:9px;height:9px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 2px var(--raised)}
.hw-blurb{max-width:40em}
.hw-who{display:inline-flex;align-items:center;gap:8px;font-family:var(--f-ui);font-variation-settings:var(--fvs-ui);font-size:14.5px;color:var(--ink-2);font-weight:560}
.hw-who select,.hw-w select,.hw-rform select{font:inherit;font-family:var(--f-ui);font-size:15.5px;font-weight:600;color:var(--ink);background:var(--raised);border:1.5px solid var(--line-strong);border-radius:var(--r-2);min-height:44px;padding:6px 32px 6px 12px;max-width:100%}
/* layers: chips on narrow screens, a panel on wide ones */
.hw-chips{position:relative;display:flex;gap:8px;overflow-x:auto;padding:10px 16px;border-bottom:1px solid var(--line);background:var(--bg);scrollbar-width:thin}
.hw-chips .h2-layer{flex:none;white-space:nowrap;position:relative}
.hw-mx{overflow-x:auto}
.hw-chips .hw-manage{flex:none;display:inline-flex;align-items:center;min-height:44px;padding:0 10px;font-family:var(--f-ui);font-size:14.5px;font-weight:620;color:var(--brand-ink)}
.hw-lhead{margin-bottom:10px}
.hw-panelh{margin:0 0 4px;font-family:var(--f-display);font-variation-settings:var(--fvs-display);font-weight:640;font-size:24px;line-height:1.15;letter-spacing:-.008em}
.hw-llist{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.hw-layer .h2-layer{width:100%;border-radius:var(--r-2);padding:8px 12px 8px 10px}
.hw-lname{display:grid;flex:1;min-width:0}
.hw-lname > span{overflow-wrap:anywhere}
.hw-lstate{font-size:13px;font-weight:650;color:var(--ink-2);padding-left:6px}
.hw-layer.is-off .hw-lstate{color:var(--caution)}
.hw-ldet summary{cursor:pointer;min-height:44px;display:flex;align-items:center;padding:0 6px;font-family:var(--f-ui);font-size:14px;font-weight:600;color:var(--brand-ink)}
.hw-ldet-in{display:grid;gap:12px;padding:4px 6px 8px}
.hw-lpool p{margin:0 0 6px;font-family:var(--f-ui);font-size:14.5px;line-height:1.45}
.hw-lpool .h2-ringic,.hw-lpool svg{width:14px;height:14px;vertical-align:-2px}
.hw-lpool .hw-charter{font-family:var(--f-text);font-size:15.5px;color:var(--ink-2)}
.hw-keeper{display:inline-flex;flex-wrap:wrap;align-items:center;gap:4px 6px}
.hw-inpool{display:flex;gap:6px;align-items:center;color:var(--ink)}
.hw-inpool svg{color:var(--yes)}
.hw-addr{margin-top:16px;padding-top:14px;border-top:1px solid var(--line);font-family:var(--f-ui)}
.hw-addr label{display:flex;align-items:center;min-height:44px;font-weight:650;font-size:15px}
.hw-addr-row{display:flex;gap:8px}
.hw-addr input{flex:1;min-width:0;min-height:44px;font:inherit;font-family:var(--f-mono);font-size:13.5px;padding:8px 10px;border:1.5px solid var(--line-strong);border-radius:var(--r-2);background:var(--raised);color:var(--ink)}
.hw-addr input::placeholder{color:var(--ink-3);opacity:1}
.hw-addr .k-btn{min-height:44px;padding:8px 16px}
/* the view */
#hw-view{min-width:0;padding:14px 16px 24px}
#hw-view.is-in{animation:hwfade 200ms var(--ease) both}
@keyframes hwfade{from{opacity:0}to{opacity:1}}
@media (prefers-reduced-motion: reduce){#hw-view.is-in{animation:none}}
.hw-viewhead{margin:0 0 12px}
.hw-h1{margin:0;font-family:var(--f-display);font-variation-settings:var(--fvs-display);font-weight:650;font-size:clamp(30px,4vw,40px);line-height:1.05;letter-spacing:-.015em;color:var(--ink)}
.hw-h1:focus{outline:none}
.hw-h2{margin:0 0 8px;font-family:var(--f-display);font-variation-settings:var(--fvs-display);font-weight:640;font-size:26px;line-height:1.15}
.hw-count{margin:6px 0 0;font-family:var(--f-ui);font-variation-settings:var(--fvs-ui);font-size:15px;color:var(--ink-2);display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}
.hw-kick{display:flex;align-items:center;gap:8px;margin:0 0 6px;font-family:var(--f-ui);font-size:13px;font-weight:650;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}
.hw-kick svg{width:15px;height:15px}
.hw-appkick{text-transform:none;letter-spacing:.01em;font-size:14.5px;font-weight:600}
.hw-status{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 14px;padding:10px 12px;border-radius:var(--r-2);background:var(--raised);border:1px solid var(--line);font-family:var(--f-ui);font-variation-settings:var(--fvs-ui);font-size:15px;line-height:1.45}
.hw-status > svg{width:18px;height:18px;flex:none;color:var(--brand-ink)}
.hw-status p{margin:0;flex:1 1 240px}
.hw-status.is-both{background:var(--yes-tint);border-color:transparent}
.hw-status.is-both b{color:var(--yes)}
.hw-status .hw-sig{width:44px;height:44px}
.hw-status.is-held{border:1.5px dashed var(--caution);background:transparent}
.hw-status.is-request{border:1.5px solid var(--accent);background:var(--raised)}
.hw-status.is-request > svg{color:var(--accent-ink)}
.hw-status.is-held > svg{color:var(--caution)}
.hw-status .k-btn{min-height:44px;padding:6px 12px}
/* the card */
.hw-card{margin:0;max-width:660px}
.hw-viewhead,.hw-status,.hw-hsb,.hw-hsline{max-width:660px}
.hw-card .h2-plank-in{gap:20px;grid-template-columns:minmax(0,1fr)}
.hw-card .h2-plank-in > *{min-width:0}
.hw-card .kd-level{white-space:normal;max-width:100%}
.hw-cardhead{display:grid;gap:6px;padding-bottom:12px;border-bottom:1px dashed var(--line-strong)}
.hw-cardhead .h2-from{margin:0}
.hw-poolmeta{margin:0;font-family:var(--f-ui);font-size:14px;line-height:1.45;color:var(--ink-2)}
.hw-charter1{font-family:var(--f-text);font-style:italic;font-size:15.5px;color:var(--ink)}
.hw-pooltags{display:block;margin-top:2px;overflow-wrap:anywhere}
.hw-pooltags svg{width:13px;height:13px;vertical-align:-2px}
.hw-three{display:flex;gap:8px;align-items:center;margin:0;font-family:var(--f-ui);font-size:14.5px;font-weight:600;color:var(--ink-2)}
.hw-three > svg{width:16px;height:16px;flex:none;color:var(--brand-ink)}
.hw-three a{display:inline-flex;align-items:center;min-height:44px;color:var(--brand-ink);text-underline-offset:.2em}
.hw-route{display:flex;gap:8px;align-items:flex-start;margin:0;padding:10px 12px;border-radius:var(--r-2);border:1px solid var(--line);background:var(--surface);font-family:var(--f-ui);font-size:14.5px;line-height:1.45}
.hw-route > svg{width:16px;height:16px;flex:none;margin-top:3px;color:var(--brand-ink)}
.hw-route.is-curator{border:1.5px solid var(--accent);background:var(--raised)}
.hw-route.is-curator > svg{color:var(--accent-ink)}
.hw-datal ul{list-style:none;margin:0;padding:0;display:grid;gap:6px;font-family:var(--f-ui);font-size:14.5px;line-height:1.45}
.hw-datal li{padding:8px 10px;border-radius:var(--r-1);background:var(--surface);border:1px solid var(--line)}
.hw-datal .hw-dl-blank{display:flex;gap:8px;align-items:flex-start;background:transparent;border:1.5px dashed var(--caution);color:var(--ink-2)}
.hw-datal .hw-dl-blank svg{width:15px;height:15px;flex:none;margin-top:3px;color:var(--caution)}
.hw-rooms-also{margin:6px 0 0}
.hw-src{font-weight:500;color:var(--ink-2);font-size:12.5px}
.hw-share .ans{grid-column:1/-1}
.hw-stillfoot{position:static}
.hw-stillfoot p{margin:0}
.hw-also{margin:8px 0 0;font-family:var(--f-ui);font-size:14px;color:var(--ink-2)}
.hw-photo{margin:0}
.hw-namebox{display:grid;gap:6px}
.hw-namebox .h2-name{font-size:clamp(28px,3.4vw,34px)}
.hw-namebox .h2-name small{display:inline-block}
.hw-namebox .h2-sub{display:flex;align-items:flex-start;gap:6px;margin:0}
.hw-namebox .h2-sub svg{width:15px;height:15px;flex:none;margin-top:3px;color:var(--ink-2)}
.hw-lv{margin:0;display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center}
.hw-lvnote{font-family:var(--f-ui);font-size:13.5px;color:var(--ink-2)}
.hw-basics{list-style:none;margin:0;padding:0}
.hw-sech{margin:0 0 8px;font-family:var(--f-ui);font-variation-settings:var(--fvs-ui);font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}
.hw-about p{margin:0;font-size:var(--t-base);line-height:1.55}
.hw-tags{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.hw-tags li{font-family:var(--f-ui);font-size:14.5px;padding:3px 11px;border-radius:var(--r-pill);background:var(--brand-tint);color:var(--ink)}
.hw-sameans ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.hw-sameans li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r-2);background:var(--surface)}
.hw-sameans .qt{font-family:var(--f-ui);font-size:14px;color:var(--ink-2);grid-column:1}
.hw-sameans .an{font-family:var(--f-text);font-size:18px;grid-column:1}
.hw-sameans .h2-yesto{grid-column:2;grid-row:1/3}
.hw-sameans .hw-small{margin:8px 0 0}
.hw-ident dl{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:6px 14px;margin:0;font-size:17px}
.hw-ident dt{font-family:var(--f-ui);font-size:14.5px;font-weight:650;color:var(--ink-2);padding-top:2px}
.hw-ident dd{margin:0}
.hw-hh{margin-top:14px;padding:12px 14px;border:1.5px solid var(--accent);border-radius:var(--r-2);background:var(--surface)}
.hw-hh p{margin:0 0 8px}
.hw-hh-h{display:flex;align-items:center;gap:8px;font-family:var(--f-ui);color:var(--ink)}
.hw-hh-h svg{width:16px;height:16px;color:var(--accent-ink)}
.hw-hhm{display:inline-flex;align-items:center;gap:6px;margin:2px 12px 2px 0;font-family:var(--f-ui);font-size:15px;font-weight:600}
.hw-page .hw-url{margin:0 0 6px;font-family:var(--f-mono);font-size:14px;color:var(--ink-2)}
.hw-page p{margin:0 0 6px}
.hw-nophoto{display:flex;align-items:center;gap:14px;padding:14px;border:1.5px dashed var(--caution);border-radius:var(--r-3);background:transparent}
.hw-nophoto p{margin:0;font-family:var(--f-ui);font-size:15px;color:var(--ink-2)}
.hw-blank{display:flex;gap:8px;align-items:flex-start;margin:0;font-family:var(--f-ui);font-size:15px;color:var(--caution);padding:10px 12px;border:1.5px dashed var(--caution);border-radius:var(--r-2)}
.hw-blank svg{width:16px;height:16px;flex:none;margin-top:3px}
.hw-cardfoot{position:sticky;bottom:calc(var(--tabh) + env(safe-area-inset-bottom));z-index:3;padding:12px 20px 12px 26px;background:var(--raised);border-top:1px solid var(--line);border-radius:0 0 var(--r-3) var(--r-3);display:grid;gap:4px}
.hw-cardfoot .h2-yn{max-width:none}
.hw-cardtools{display:flex;flex-wrap:wrap;align-items:center;gap:0 10px}
.hw-keys{display:none;margin-left:auto;font-family:var(--f-ui);font-size:13.5px;color:var(--ink-2)}
/* faces */
.hw-face{display:inline-block;flex:none;width:40px;height:40px;border-radius:50%;overflow:hidden;background:var(--surface);box-shadow:0 0 0 1.5px var(--line-strong)}
.hw-face svg{display:block;width:100%;height:auto;margin-top:-4%}
.hw-face-sm{width:28px;height:28px}
.hw-face-md{width:52px;height:52px}
.hw-face-lg{width:84px;height:84px}
.hw-face-xl{width:96px;height:96px}
.hw-mono.hw-face,.hw-face.hw-mono{display:inline-grid;place-items:center;font-family:var(--f-display);font-weight:640;font-size:20px;color:var(--ink-2);background:transparent;box-shadow:none;border:2px dashed var(--caution)}
.hw-face-xl.hw-mono{font-size:32px}
/* handshake banner and card */
.hw-hsb{margin:0 0 16px;padding:16px 18px;border-radius:var(--r-3);border:1.5px dashed var(--caution);background:var(--surface)}
.hw-hsb-h{margin:0 0 8px;font-family:var(--f-display);font-weight:640;font-size:24px;line-height:1.15}
.hw-hsb p{margin:0 0 12px}
.hw-hsb .hw-kick{color:var(--caution)}
.hw-hsline{display:flex;gap:8px;align-items:flex-start;margin:0 0 14px;padding:10px 12px;border-radius:var(--r-2);background:var(--yes-tint);font-family:var(--f-ui);font-size:15px}
.hw-hsline svg{width:16px;height:16px;flex:none;margin-top:3px;color:var(--yes)}
.hw-terms{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:8px 16px;margin:12px 0 16px}
.hw-terms dt{font-family:var(--f-ui);font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);padding-top:3px}
.hw-terms dd{margin:0;font-size:17px;line-height:1.45;overflow-wrap:anywhere}
.hw-demo{margin:14px 0 0;padding:10px 12px;border:1px dashed var(--line-strong);border-radius:var(--r-2)}
.hw-demoh{margin:0 0 4px;font-family:var(--f-ui);font-size:13px;font-weight:650;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2)}
.hw-log{margin-top:14px;border:1px solid var(--line);border-radius:var(--r-2);background:var(--surface)}
.hw-log summary{cursor:pointer;min-height:44px;display:flex;align-items:center;padding:0 12px;font-family:var(--f-ui);font-weight:650}
.hw-log ol{list-style:none;margin:0;padding:0 12px 10px}
.hw-log li{padding:8px 0;border-top:1px dashed var(--line)}
.hw-log li p{margin:0 0 4px;font-family:var(--f-ui);font-size:14.5px}
.hw-json{margin:6px 0 0;padding:10px;background:var(--raised);border:1px solid var(--line);border-radius:var(--r-1);font-family:var(--f-mono);font-size:12.5px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere;max-height:360px;overflow:auto;color:var(--ink)}
.k-chip-yes{background:var(--yes-tint);color:var(--yes)}
/* the reading */
#hw-side{min-width:0;padding:0 16px 24px}
.hw-reading{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}
.hw-reading > *{min-width:0}
.hw-reading .h2-readhead{display:grid;grid-template-columns:120px minmax(0,1fr);gap:14px;align-items:center}
.hw-reading .h2-rings{max-width:120px}
.hw-reading .h2-sum{margin:4px 0 0}
.hw-formula{margin:0;font-family:var(--f-ui);font-size:14.5px;line-height:1.5;color:var(--ink);padding:10px 12px;border-left:4px solid var(--accent);background:var(--surface);border-radius:0 var(--r-1) var(--r-1) 0}
.hw-math{border:1px solid var(--line);border-radius:var(--r-2);background:var(--surface)}
.hw-math summary{cursor:pointer;min-height:44px;display:flex;align-items:center;padding:0 12px;font-family:var(--f-ui);font-weight:650;color:var(--brand-ink)}
.hw-math-in{padding:0 12px 12px;font-family:var(--f-ui);font-size:14px}
.hw-math-in p{margin:8px 0 0}
.hw-mtable{width:100%;border-collapse:collapse;font-size:13.5px;font-variant-numeric:tabular-nums}
.hw-mtable th,.hw-mtable td{text-align:left;padding:5px 6px;border-bottom:1px solid var(--line);vertical-align:top}
.hw-mtable thead th{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2)}
.hw-mtable .n{text-align:right}
.hw-mtable tfoot th,.hw-mtable tfoot td{font-weight:700;border-bottom:0}
.hw-lines li{grid-template-columns:minmax(0,1fr) auto}
.hw-lines .hw-w{grid-column:1/-1;display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--ink-2)}
.hw-lines .hw-w select{font-size:14.5px;min-height:44px;padding:4px 28px 4px 10px}
.hw-l-blank .qt,.hw-l-blank .ans{color:var(--ink-2)}
.hw-l-blank .hw-w{display:none}
.hw-mine li .ans{grid-column:1/-1}
.hw-cant{margin:4px 0 0}
.hw-yours{display:flex;gap:8px;align-items:flex-start;margin:0;font-family:var(--f-ui);font-size:14.5px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r-2);background:var(--surface)}
.hw-yours svg{width:16px;height:16px;flex:none;margin-top:3px;color:var(--brand-ink)}
.hw-sidebox{padding:16px;border:1px dashed var(--line-strong);border-radius:var(--r-3)}
/* likes you */
.hw-likes{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.hw-like{padding:16px;border:1px solid var(--line);border-radius:var(--r-3);background:var(--raised);box-shadow:var(--shadow);display:grid;gap:12px;position:relative}
.hw-like::before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:5px;border-radius:0 3px 3px 0;background:var(--accent)}
.hw-like.is-sel{border-color:var(--brand-ink)}
.hw-like-top{display:flex;gap:12px;align-items:center}
.hw-like-top p{margin:2px 0 0}
.hw-like-n{margin:0;font-family:var(--f-display);font-weight:640;font-size:24px;line-height:1.1}
.hw-namebtn{all:unset;cursor:pointer;min-height:44px;display:inline-flex;align-items:center;color:var(--ink);text-decoration:underline;text-decoration-color:var(--line-strong);text-underline-offset:.2em}
.hw-namebtn:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.hw-like-what p{margin:0}
.hw-liked{font-family:var(--f-ui);font-weight:650;color:var(--yes)}
.hw-quote{margin:6px 0 6px;padding:10px 14px;border-left:4px solid var(--accent);background:var(--surface);border-radius:0 var(--r-2) var(--r-2) 0}
.hw-quote .q{font-family:var(--f-ui);font-size:13.5px;font-weight:650;color:var(--ink-2)}
.hw-quote p{font-family:var(--f-text);font-size:18px}
.hw-both,.hw-passed{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:0;font-family:var(--f-ui);font-size:15px}
.hw-both{color:var(--yes)}
.hw-both svg,.hw-passed svg{width:16px;height:16px;flex:none}
.hw-passed{color:var(--ink-2)}
.hw-gap{display:flex;gap:10px;margin:18px 0 0;padding:14px 16px;border:1.5px dashed var(--line-strong);border-radius:var(--r-2);font-family:var(--f-ui);font-size:15px;line-height:1.5}
.hw-gap svg{width:18px;height:18px;flex:none;margin-top:2px;color:var(--brand-ink)}
.hw-gap p{margin:0}
.hw-emptyp{font-family:var(--f-ui);color:var(--ink-2);padding:14px 16px;border:1px dashed var(--line-strong);border-radius:var(--r-2)}
.hw-emptyp p{margin:0 0 6px}
/* chats */
.hw-chatlist{list-style:none;margin:0 0 16px;padding:0;display:grid;gap:8px}
.hw-chatrow{all:unset;box-sizing:border-box;cursor:pointer;width:100%;display:flex;gap:12px;align-items:flex-start;padding:12px;border:1px solid var(--line);border-radius:var(--r-2);background:var(--raised)}
.hw-chatrow.is-sel{border-color:var(--brand-ink);box-shadow:inset 4px 0 0 var(--brand)}
.hw-chatrow:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.hw-cr-t{display:grid;gap:3px;min-width:0;font-family:var(--f-ui);font-size:15px}
.hw-cr-l{color:var(--ink);font-family:var(--f-text);font-size:16px;overflow-wrap:anywhere}
.hw-cr-m{color:var(--ink-2);font-size:13.5px}
.hw-cst{display:inline-flex;align-items:center;gap:5px;font-size:13.5px;font-weight:650}
.hw-cst svg{width:14px;height:14px}
.hw-cst.is-both{color:var(--yes)}
.hw-cst.is-wait{color:var(--caution)}
.hw-conv{display:grid;gap:10px;padding:16px;border:1px solid var(--line);border-radius:var(--r-3);background:var(--raised)}
.hw-convhead{display:flex;gap:12px;align-items:center}
.hw-convhead p{margin:2px 0 0}
.hw-email{display:flex;gap:8px;align-items:flex-start;margin:0;font-family:var(--f-ui);font-size:14.5px;color:var(--ink-2)}
.hw-email svg{width:16px;height:16px;flex:none;margin-top:3px;color:var(--brand-ink)}
.hw-rule{display:flex;gap:8px;align-items:flex-start;margin:0;padding:10px 12px;border-radius:var(--r-2);font-family:var(--f-ui);font-size:14.5px;line-height:1.45}
.hw-rule svg{width:16px;height:16px;flex:none;margin-top:3px}
.hw-rule.is-ok{background:var(--yes-tint);color:var(--ink)}
.hw-rule.is-ok svg{color:var(--yes)}
.hw-rule.is-no{background:var(--no-tint);color:var(--ink)}
.hw-rule.is-no svg,.hw-rule.is-no b{color:var(--no)}
.hw-rule.is-req{border:1.5px solid var(--accent);background:var(--raised);color:var(--ink)}
.hw-rule.is-req svg{color:var(--accent-ink)}
.hw-ppterms{margin:10px 0}
.hw-ppterms dd{font-size:16px}
.hw-msgs{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.hw-msg{max-width:88%;padding:10px 12px;border-radius:var(--r-3);background:var(--surface);border:1px solid var(--line)}
.hw-msg p{margin:0;font-size:17px;line-height:1.45}
.hw-msg.is-me{justify-self:end;background:var(--brand-tint);border-color:transparent;border-bottom-right-radius:var(--r-1)}
.hw-msg.is-held{background:transparent;border:1.5px dashed var(--caution)}
.hw-msgm{display:flex;gap:5px;align-items:center;margin-top:4px!important;font-family:var(--f-ui);font-size:12.5px!important;color:var(--ink-2)}
.hw-msgm svg{width:13px;height:13px}
.hw-msgempty{font-family:var(--f-ui);font-size:14.5px;color:var(--ink-2)}
.hw-compose{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end}
.hw-compose textarea{font:inherit;font-size:17px;min-height:48px;padding:10px 12px;border:1.5px solid var(--line-strong);border-radius:var(--r-2);background:var(--raised);color:var(--ink);resize:vertical}
.hw-compose textarea[disabled]{border-style:dashed;background:transparent}
.hw-convtools{display:flex;flex-wrap:wrap;gap:6px}
/* you */
.hw-sec{margin:0 0 16px;padding:16px 18px;border:1px solid var(--line);border-radius:var(--r-3);background:var(--raised)}
.hw-sec p{margin:0 0 10px}
.hw-me{display:flex;gap:16px;align-items:flex-start}
.hw-mypools{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.hw-mypools li{padding:10px 0;border-top:1px solid var(--line)}
.hw-mypools li p{margin:0 0 4px}
.hw-mypools li.is-left p{display:flex;gap:6px;align-items:center;color:var(--ink-2)}
.hw-mypools li.is-left svg{width:16px;height:16px}
.hw-blocked{list-style:none;margin:0;padding:0}
.hw-results{list-style:none;margin:0 0 12px;padding:0;display:grid;gap:8px}
.hw-results li{display:grid;grid-template-columns:22px minmax(0,1fr);gap:8px;padding:10px 12px;border-radius:var(--r-2);font-family:var(--f-ui);font-size:15.5px;line-height:1.45;background:var(--surface);border:1px solid var(--line)}
.hw-results li svg{width:17px;height:17px;margin-top:2px}
.hw-results li.kept{background:var(--yes-tint);border-color:transparent}
.hw-results li.kept svg{color:var(--yes)}
.hw-results li.gone svg{color:var(--ink-2)}
.hw-hs .h2-plank-in{gap:6px}
.hw-end{margin-top:8px}
.hw-end p{margin:0 0 10px}
/* the sheet (dialog) */
.hw-sheet{border:0;padding:0;margin:auto;width:min(560px,calc(100vw - 24px));max-height:calc(100vh - 24px);border-radius:var(--r-3);background:var(--raised);color:var(--ink);box-shadow:0 20px 60px -20px rgb(0 0 0 / .5)}
.hw-sheet::backdrop{background:rgb(30 18 14 / .55)}
.hw-rform{display:grid;gap:10px;padding:20px}
.hw-fl{display:flex;align-items:center;min-height:44px;font-family:var(--f-ui);font-weight:650;font-size:15px;margin-top:4px}
.hw-rform input,.hw-rform textarea{font:inherit;font-size:17px;padding:10px 12px;min-height:48px;border:1.5px solid var(--line-strong);border-radius:var(--r-2);background:var(--raised);color:var(--ink);width:100%}
.hw-rform select{width:100%}
.hw-fs{border:0;margin:0;padding:0;display:grid;gap:2px}
.hw-fs legend{font-family:var(--f-ui);font-weight:650;font-size:15px;margin-bottom:4px}
.hw-radio{display:flex;align-items:center;gap:10px;min-height:44px;font-family:var(--f-ui);font-size:16px;cursor:pointer}
.hw-radio input{width:20px;height:20px;min-height:0;accent-color:var(--brand);margin:0}
.hw-sent{display:flex;gap:8px;align-items:flex-start;margin:0;padding:10px 12px;border-radius:var(--r-2);background:var(--no-tint);font-family:var(--f-ui);font-size:15px}
.hw-sent svg{width:16px;height:16px;flex:none;margin-top:3px;color:var(--no)}
/* tabs: a bottom bar on the phone, a rail on the desktop */
.hw-tabs{display:flex}
.hw-tab{all:unset;box-sizing:border-box;cursor:pointer;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:var(--tabh);min-width:44px;position:relative;text-decoration:none;color:var(--ink-2);font-family:var(--f-ui);font-size:12.5px;font-weight:620}
.hw-tab svg{width:24px;height:24px}
.hw-tab[aria-current="page"]{color:var(--brand-ink)}
.hw-tab:focus-visible{outline:3px solid var(--focus);outline-offset:-3px}
.hw-anchor{position:absolute;width:1px;height:1px;overflow:hidden}
.hw-tab[aria-current="page"]::before{content:"";position:absolute;top:0;left:22%;right:22%;height:3px;border-radius:0 0 3px 3px;background:var(--brand)}
.hw-badge{position:absolute;top:8px;left:calc(50% + 8px);min-width:20px;height:20px;padding:0 5px;border-radius:10px;background:var(--brand);color:var(--on-brand);font-size:12px;font-weight:700;display:grid;place-items:center}
.hw-tabbar{position:fixed;left:0;right:0;bottom:0;z-index:20;background:var(--surface);border-top:1px solid var(--line-strong);padding-bottom:env(safe-area-inset-bottom)}
body{padding-bottom:calc(var(--tabh) + env(safe-area-inset-bottom))}
/* products: any library site's Pools, loaded by #load-<key> */
.hw-prod{padding:8px 16px;border-bottom:1px solid var(--line);background:var(--bg);font-family:var(--f-ui);font-variation-settings:var(--fvs-ui);min-width:0}
.hw-prod-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px}
.hw-prod-lede{margin:0;flex:1 1 280px;font-size:14.5px;line-height:1.45;color:var(--ink-2)}
.hw-prod-lede b{color:var(--ink)}
.hw-prod .k-btn{min-height:44px;padding:8px 14px;font-size:15px}
.hw-prod .k-btn svg{width:16px;height:16px;flex:none}
.hw-prod-btn[aria-expanded="true"]{border-style:dashed}
.hw-ld{display:grid;gap:0;padding:4px 12px 6px 14px;border-left:4px solid var(--accent);border-radius:0 var(--r-2) var(--r-2) 0;background:var(--surface)}
.hw-ld.is-cant{border-left-style:dashed;border-left-color:var(--caution);background:transparent}
.hw-ld1{display:flex;align-items:flex-start;justify-content:space-between;gap:0 10px}
.hw-ld1 > .k-btn{flex:none}
.hw-ldname{margin:0;flex:1 1 auto;display:flex;flex-wrap:wrap;align-items:baseline;gap:0 10px;min-width:0;padding:4px 0}
.hw-ldname:focus{outline:none}
.hw-ldname > span:first-child{flex-basis:100%;display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}
.hw-ldname > span:first-child svg{width:15px;height:15px;color:var(--accent-ink)}
.hw-ld.is-cant .hw-ldname > span:first-child svg{color:var(--caution)}
.hw-ldname b{font-family:var(--f-display);font-variation-settings:var(--fvs-display);font-weight:640;font-size:22px;line-height:1.15;color:var(--ink)}
.hw-ldname small{font-size:14px;color:var(--ink-2)}
.hw-ldctl{display:flex;flex-wrap:wrap;gap:6px 10px;margin:4px 0}
.hw-ldopen{display:flex;flex-wrap:wrap;align-items:center;gap:0 14px}
.hw-ldopen .hw-ldline{flex:1 1 300px;margin:4px 0}
.hw-ldopen .hw-ldline a{color:var(--brand-ink);font-weight:620;text-underline-offset:.2em}
.hw-ldopen .hw-ldctl{margin-left:auto}
.hw-ldctl .k-btn{color:var(--brand-ink)}
.hw-ldline{margin:0 0 2px;font-size:14.5px;line-height:1.45;color:var(--ink-2);max-width:62em}
.hw-ldline b{color:var(--ink)}
.hw-ldrow{display:flex;flex-wrap:wrap;align-items:center;gap:0 14px;margin:0;font-size:14.5px}
.hw-ldrow > span{color:var(--ink-2)}
.hw-ldrow a,.hw-ldrow .hw-linkbtn{display:inline-flex;align-items:center;gap:6px;min-height:44px;font-weight:620;color:var(--brand-ink);text-underline-offset:.2em}
.hw-ldrow a svg,.hw-ldrow .hw-linkbtn svg,.hw-ldctl svg{width:15px;height:15px;flex:none}
.hw-ldrow .hw-ldroom[aria-pressed="true"]{color:var(--ink);text-decoration-thickness:3px}
.hw-ldpools{min-width:0}
.hw-ldpools[open]{flex-basis:100%}
.hw-ldpools summary{cursor:pointer;display:inline-flex;align-items:center;gap:6px;min-height:44px;font-weight:620;color:var(--brand-ink);text-decoration:underline;text-underline-offset:.2em}
.hw-ldpools summary svg{width:15px;height:15px;flex:none}
.hw-ldpools summary::after{content:"";width:7px;height:7px;margin-left:2px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(-45deg)}
.hw-ldpools[open] summary::after{transform:rotate(45deg) translateY(-3px)}
.hw-ldabout2{display:none}
@media (max-width:600px){.hw-ldabout{display:none}.hw-ldabout2{display:block}}
.hw-ldplist{list-style:none;margin:2px 0 8px;padding:0;display:grid;gap:6px}
.hw-ldplist li{display:grid;grid-template-columns:18px minmax(0,1fr);gap:2px 8px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--r-1);background:var(--raised);font-size:14.5px;line-height:1.45}
.hw-ldplist li > svg{width:16px;height:16px;margin-top:3px;color:var(--brand-ink)}
.hw-ldplist li.is-no{border-style:dashed;background:transparent}
.hw-ldplist li.is-no > svg{color:var(--caution)}
.hw-ldplist b{color:var(--ink)}
.hw-ldplist small{display:block;font-size:13.5px;color:var(--ink-2)}
.hw-ldplist a{display:inline-flex;align-items:center;gap:6px;min-height:44px;font-weight:620;color:var(--brand-ink)}
.hw-ldplist a svg{width:15px;height:15px}
.hw-picker{margin:8px 0 4px;padding:12px 14px;border:1px solid var(--line-strong);border-radius:var(--r-3);background:var(--raised)}
.hw-picker > p{margin:0 0 10px;font-size:14.5px;line-height:1.45;color:var(--ink-2);max-width:62em}
.hw-pgrid{display:grid;gap:12px 18px;grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr));align-items:start}
.hw-pcat h3{margin:0 0 4px;font-size:12.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}
.hw-pcat ul{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.hw-pick{box-sizing:border-box;display:grid;gap:1px;min-height:44px;padding:6px 10px;border:1px solid var(--line);border-radius:var(--r-2);background:var(--surface);text-decoration:none;color:var(--ink)}
a.hw-pick:hover{border-color:var(--brand-ink)}
a.hw-pick b{color:var(--brand-ink);text-decoration:underline;text-underline-offset:.2em;font-size:15px}
a.hw-pick[aria-current="true"]{border:2px solid var(--brand-ink)}
.hw-pick small{font-size:13px;line-height:1.4;color:var(--ink-2)}
.hw-pick.is-off{border-style:dashed;background:transparent}
.hw-pick.is-off b{font-size:15px;color:var(--ink-2);font-weight:600}
.hw-pickfoot{display:flex;justify-content:flex-end;margin-top:8px}
.hw-prodnote{list-style:none;margin:0 0 14px;padding:0;display:grid;gap:8px;max-width:660px}
.hw-prodnote li{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:var(--r-2);border:1.5px solid var(--accent);background:var(--raised);font-family:var(--f-ui);font-size:15px;line-height:1.45}
.hw-prodnote li > svg{width:17px;height:17px;flex:none;margin-top:2px;color:var(--accent-ink)}
.hw-prodnote li.is-held{border:1.5px dashed var(--caution);background:transparent}
.hw-prodnote li.is-held > svg{color:var(--caution)}
.hw-prodnote p{margin:0}
.hw-prodnote .k-btn{min-height:44px;padding:6px 12px;margin-top:6px}
.hw-rooms button.is-dim{color:var(--ink-2);font-weight:560}
.hw-rooms button.is-dim[aria-pressed="true"]{color:var(--on-brand)}
[data-framed] .hw-exbar{display:none}
/* any Pool: the Open a Pool control, rooms under their own name, the list, and the card's "in <Pool>" line */
.hw-openpool{min-height:44px;padding:6px 14px;font-size:15px;display:inline-flex;align-items:center;gap:8px}
.hw-openpool svg{width:16px;height:16px;flex:none}
.hw-openpool[aria-expanded="true"]{border-style:dashed}
@media (max-width:1439px){.hw-who span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}}
.hw-rooms button.is-own{white-space:normal;text-align:left;border:1.5px dashed var(--brand-ink);flex:0 1 auto}
.hw-rooms button.is-own[aria-pressed="true"]{border-style:solid;border-color:var(--brand)}
.hw-rooms button.is-own svg{width:16px;height:16px;flex:none}
.hw-ownkick{color:var(--brand-ink)}
.hw-yesin{margin:0;font-family:var(--f-ui);font-variation-settings:var(--fvs-ui);font-size:13.5px;line-height:1.35;color:var(--ink-2);overflow-wrap:anywhere}
.hw-yesin b{color:var(--ink);font-weight:650}
.hw-resting{display:inline-flex;align-items:flex-start;gap:6px;margin-top:6px;padding:4px 10px;border:1.5px dashed var(--caution);border-radius:var(--r-1);font-family:var(--f-ui);font-size:13.5px;line-height:1.4;color:var(--ink-2)}
.hw-resting svg{width:14px;height:14px;flex:none;margin-top:2px;color:var(--caution)}
.hw-ppfind{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin:0 0 12px}
.hw-ppfind label{font-weight:650;font-size:15px;min-height:44px;display:inline-flex;align-items:center}
.hw-ppfind input{flex:1 1 220px;min-width:0;min-height:44px;font:inherit;font-family:var(--f-ui);font-size:15.5px;padding:8px 12px;border:1.5px solid var(--line-strong);border-radius:var(--r-2);background:var(--surface);color:var(--ink)}
.hw-ppfind input::placeholder{color:var(--ink-3);opacity:1}
.hw-ppnone{margin:0 0 10px}
.hw-ppprod{margin:0 0 10px}
.hw-ppprod ul{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.hw-pphost{margin:2px 0 4px;font-size:14px;font-weight:650;color:var(--ink)}
button.hw-pick{font:inherit;font-family:var(--f-ui);width:100%;text-align:left;cursor:pointer;color:var(--ink)}
button.hw-pick:hover{border-color:var(--brand-ink)}
button.hw-pick b{color:var(--brand-ink);text-decoration:underline;text-underline-offset:.2em;font-size:15px}
button.hw-pick[aria-current="true"]{border:2px solid var(--brand-ink)}
.hw-poolpick .hw-addr{margin-top:12px}
.hw-ld .hw-pooltags{font-size:13.5px}
/* footer */
.hw-foot{padding:22px 16px 30px;border-top:1px solid var(--line);font-family:var(--f-ui);font-size:14.5px;color:var(--ink-2);background:var(--surface)}
.hw-foot p{margin:0 0 6px;max-width:72em}
.hw-foot a:not(.uf-credit a){display:inline-flex;align-items:center;min-height:44px}
/* wide: rail, layers, the card, the reading */
@media (min-width:1024px){
 :root{--tabh:0px}
 body{padding-bottom:0}
 .hw-tabbar{display:none}
 .hw-head{display:none}
 .hw-shell{grid-template-columns:88px minmax(0,1fr)}
 .hw-rail{display:flex;flex-direction:column;align-items:stretch;gap:6px;position:sticky;top:0;height:100vh;padding:14px 8px;color:var(--rail-ink);background-color:var(--rail-bg);background-image:repeating-radial-gradient(ellipse 150% 90% at 50% 108%,transparent 0 15px,rgb(255 255 255 / .06) 15px 16.5px)}
 .hw-rail .hw-brand{justify-content:center;color:var(--rail-ink);margin-bottom:10px}
 .hw-rail .hw-brand svg{width:44px;height:44px}
 .hw-rail .hw-tabs{flex-direction:column;gap:4px}
 .hw-rail .hw-tab{color:var(--rail-ink);min-height:68px;border-radius:var(--r-2);font-size:12.5px;text-align:center;line-height:1.2}
 .hw-rail .hw-tab:hover{background:rgb(255 255 255 / .08)}
 .hw-rail .hw-tab[aria-current="page"]{background:var(--rail-sel);color:var(--rail-sel-ink)}
 .hw-rail .hw-tab[aria-current="page"]::before{display:none}
 .hw-rail .hw-badge{top:6px;left:calc(50% + 6px);background:var(--accent);color:var(--on-accent)}
 .hw-rail .hw-tab:focus-visible{outline-color:var(--rail-ink)}
 .hw-rail-links{margin-top:28px;padding-top:14px;border-top:1px solid rgb(255 255 255 / .18);display:grid;gap:2px}
 .hw-rail-links a{display:flex;align-items:center;justify-content:center;min-height:44px;color:var(--rail-ink);font-family:var(--f-ui);font-size:12.5px;font-weight:600;text-align:center;border-radius:var(--r-1)}
 .hw-main{display:grid;grid-template-columns:minmax(0,1fr) 360px;grid-template-areas:"top top" "prod prod" "chips chips" "view side" "layers layers";column-gap:20px;padding-right:20px;align-items:start}
 .hw-topbar{grid-area:top;margin-right:-20px;position:sticky;top:0;z-index:6}
 .hw-prod{grid-area:prod;margin-right:-20px;padding-inline:20px}
 .hw-chips{grid-area:chips;margin-right:-20px}
 #hw-view{grid-area:view;padding:18px 0 32px 20px}
 #hw-side{grid-area:side;padding:18px 0 32px;position:sticky;top:66px;max-height:calc(100vh - 66px);overflow:auto;scrollbar-width:thin}
 #hw-layers{grid-area:layers;padding:0 0 30px 20px}
 .hw-keys{display:inline}
}
@media (min-width:1240px){
 .hw-main{grid-template-columns:260px minmax(0,1fr) 356px;grid-template-areas:"top top top" "prod prod prod" "layers view side"}
 .hw-chips{display:none}
 #hw-layers{grid-area:layers;padding:18px 0 32px 20px;position:sticky;top:66px;max-height:calc(100vh - 66px);overflow:auto;scrollbar-width:thin}
 #hw-view{padding-left:0}
 .hw-lmore{display:none}
}
@media (max-width:1023px){
 #hw-layers{padding:0 16px 24px}
 #hw-layers .hw-lhead{padding-top:18px;border-top:1px solid var(--line)}
 .hw-topbar .hw-tools{display:none}
}
@media (max-width:560px){
 .hw-h1{font-size:30px}
 .hw-card .h2-plank-in{padding:14px 12px 18px 18px}
 .hw-cardfoot{padding:10px 12px 10px 18px}
 .hw-rooms{width:100%}
 .hw-rooms button{padding:6px 10px;font-size:15px}
 .hw-who span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
 .hw-who select{padding-right:26px}
 .hw-mtable{font-size:12.5px}
 .hw-head{padding:8px 16px}
 .hw-head .hw-brand{font-size:23px}
 .hw-head .hw-brand svg{width:30px;height:30px}
 .hw-head .hw-tg button{padding:4px 10px}
 .hw-terms{grid-template-columns:1fr}.hw-terms dt{padding-top:6px}
 .hw-ident dl{grid-template-columns:1fr}
 .hw-me{flex-direction:column}
 .hw-reading .h2-readhead{grid-template-columns:96px minmax(0,1fr)}
 .hw-sameans li{grid-template-columns:1fr}.hw-sameans .h2-yesto{grid-column:1;grid-row:auto;justify-self:start}
 .hw-compose{grid-template-columns:1fr}
}

/* about and under the hood */
.hw-doc{padding-bottom:0}
.hw-docwrap{max-width:1120px;margin:0 auto;padding-inline:24px}
.hw-dochead{border-bottom:1px solid var(--line)}
.hw-dochead-in{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;padding-block:12px}
.hw-dochead-in .hw-brand{margin-right:auto}
.hw-docnav{display:flex;flex-wrap:wrap;gap:0 4px;font-family:var(--f-ui);font-size:15.5px;font-weight:600}
.hw-docnav 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}
.hw-docnav a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--brand)}
.hw-docnav a:hover{color:var(--ink);text-decoration:underline}
.hw-docintro{padding-block:clamp(26px,5vw,56px) clamp(30px,5vw,56px)}
.hw-docintro h1{font-family:var(--f-display);font-variation-settings:var(--fvs-display);font-weight:650;font-size:clamp(40px,6.4vw,var(--t-3xl));line-height:1.02;letter-spacing:-.02em;margin:0 0 16px;max-width:18em;text-wrap:balance}
.hw-docintro h1 em{font-style:italic;font-weight:480;color:var(--brand-ink)}
.hw-lede{font-size:var(--t-lg);line-height:1.5;color:var(--ink-2);margin:0;max-width:36em}
.hw-block{padding-block:clamp(34px,5vw,64px);border-top:1px solid var(--line)}
.hw-block h2{font-family:var(--f-display);font-variation-settings:var(--fvs-display);font-weight:640;font-size:clamp(30px,3.8vw,var(--t-2xl));line-height:1.08;letter-spacing:-.012em;margin:0 0 14px;text-wrap:balance}
.hw-block h3{font-family:var(--f-display);font-weight:620;font-size:22px;line-height:1.2;margin:0 0 8px}
.hw-block p{margin:0 0 12px;max-width:var(--measure)}
.hw-kicker{margin:0 0 10px;font-family:var(--f-ui);font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2)}
.hw-grid2{display:grid;gap:22px}
@media (min-width:880px){.hw-grid2{grid-template-columns:repeat(2,minmax(0,1fr))}}
.hw-grid3{display:grid;gap:18px}
@media (min-width:880px){.hw-grid3{grid-template-columns:repeat(3,minmax(0,1fr))}}
.hw-panel{background:var(--raised);border:1px solid var(--line);border-radius:var(--r-3);padding:18px 20px;min-width:0}
.hw-panel p:last-child{margin-bottom:0}
.hw-promise{list-style:none;margin:0;padding:0;display:grid;gap:12px}
@media (min-width:880px){.hw-promise{grid-template-columns:repeat(2,minmax(0,1fr))}}
.hw-promise li{display:grid;grid-template-columns:26px minmax(0,1fr);gap:4px 12px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--r-2);background:var(--raised)}
.hw-promise li > svg{width:20px;height:20px;margin-top:3px;color:var(--brand-ink)}
.hw-promise b{display:block;font-family:var(--f-ui);font-weight:680;margin-bottom:2px}
.hw-promise span{color:var(--ink-2)}
.hw-promise .instead{grid-column:2;display:block;margin-top:6px;font-family:var(--f-ui);font-size:15px;color:var(--ink)}
.hw-table{width:100%;border-collapse:collapse;font-family:var(--f-ui);font-variation-settings:var(--fvs-ui);font-size:14.5px;line-height:1.45}
.hw-table th,.hw-table td{text-align:left;vertical-align:top;padding:9px 10px;border-bottom:1px solid var(--line)}
.hw-table thead th{font-size:12.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-2);border-bottom:2px solid var(--line-strong)}
.hw-table tbody th{font-weight:650}
.hw-table .n{text-align:right;font-variant-numeric:tabular-nums}
.hw-table code{font-size:12.5px}
.hw-scroll{overflow-x:auto}
@media (max-width:760px){
 table.hw-stack,table.hw-stack tbody,table.hw-stack tr,table.hw-stack td,table.hw-stack th{display:block;width:100%}
 table.hw-stack thead{display:none}
 table.hw-stack tr{border:1px solid var(--line);border-radius:var(--r-2);background:var(--raised);margin:0 0 10px;padding:6px 12px}
 table.hw-stack td,table.hw-stack th{border:0;padding:5px 0}
 table.hw-stack td[data-label]::before{content:attr(data-label);display:block;font-size:12px;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-2);font-weight:650}
 table.hw-stack .n{text-align:left}
}
.hw-code{margin:0;padding:14px;background:var(--raised);border:1px solid var(--line);border-radius:var(--r-2);font-family:var(--f-mono);font-size:12.5px;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere;max-height:520px;overflow:auto}
.hw-gaps{margin:0;padding-left:1.3em;max-width:64em}
.hw-gaps li{margin:0 0 14px;padding-left:4px}
.hw-gaps b{font-family:var(--f-ui);font-weight:680}
.hw-steps{margin:0;padding-left:1.3em;max-width:var(--measure)}
.hw-steps li{margin:0 0 8px}
.hw-money{display:grid;gap:20px;align-items:start}
@media (min-width:880px){.hw-money{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}}
.hw-ledger{list-style:none;margin:0;padding:0}
.hw-ledger li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:11px 0;border-bottom:1px dashed var(--line-strong);font-family:var(--f-ui);font-size:15.5px}
.hw-ledger li b{white-space:nowrap}
.hw-team{display:grid;gap:14px}
.hw-person .k-ver{white-space:normal}
.hw-person > div{min-width:0}
.hw-person{display:flex;gap:14px;align-items:flex-start;padding:14px;border:1px solid var(--line);border-radius:var(--r-3);background:var(--raised)}
.hw-person .hw-face{width:72px;height:72px}
.hw-person p{margin:0 0 6px}
.hw-cta{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.hw-rooms-grid{margin-top:18px}
.hw-roomp h3{margin-bottom:6px}
.hw-rlist{margin:8px 0 0;padding-left:1.1em}
.hw-rlist li{margin:0 0 4px}
.hw-ownlist{margin:10px 0 0;padding-left:1.1em;max-width:64em}
.hw-ownlist li{margin:0 0 6px}
.hw-three-grid{display:grid;gap:22px;margin-top:18px;align-items:start}
@media (min-width:1000px){.hw-three-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr)}}
.hw-three-grid .hw-code{max-height:440px}
.hw-h3card{margin:0 0 10px}
.hw-three-grid .hw-card{max-width:none}
.hw-sharebox{margin-top:22px;max-width:640px;padding:18px;border:1px dashed var(--line-strong);border-radius:var(--r-3)}
.hw-pools td:last-child{min-width:16em}
.hw-rules{list-style:none;margin:6px 0 16px;padding:0;display:grid;gap:10px;max-width:var(--measure)}
.hw-rules li{display:grid;grid-template-columns:44px minmax(0,1fr);gap:12px;align-items:center;padding:12px 14px;border:1.5px solid var(--brand-ink);border-radius:var(--r-2);background:var(--raised)}
.hw-rules li span{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--brand);color:var(--on-brand);font-family:var(--f-display);font-weight:650;font-size:22px}
.hw-rules li b{font-family:var(--f-display);font-variation-settings:var(--fvs-display);font-weight:620;font-size:21px;line-height:1.25}
.hw-ownp{border-style:dashed;border-color:var(--brand-ink)}
@media (max-width:760px){
 table.hw-pools tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:12px}
 table.hw-pools tr > *{grid-column:1/-1}
 table.hw-pools td:nth-child(3),table.hw-pools td:nth-child(4),table.hw-pools td:nth-child(5),table.hw-pools td:nth-child(6){grid-column:auto}
 table.hw-pools td:last-child{min-width:0}
}
.hw-three-grid .hw-sech,.hw-sharebox .hw-sech{margin:0 0 8px;font-family:var(--f-ui);font-variation-settings:var(--fvs-ui);font-size:13px;font-weight:700;line-height:1.4;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}
.hw-three-grid .h2-name{margin:0;font-size:clamp(28px,3.4vw,34px)}
.hw-sharebox .hw-panelh{margin:0 0 4px;font-size:24px;line-height:1.15;letter-spacing:-.008em}
@media (max-width:560px){.hw-docwrap{padding-inline:16px}.hw-dochead .hw-tools{width:100%}}
