:root{--bg:#eef4f3;--surface:#fff;--surface-2:#dde9e7;--ink:#0e2a33;--muted:#4a6269;--tide:#0f7c8a;--tide-press:#0b6470;--spray:#2fb5bc;--signal:#c98612;--line:#c6d7d5;--on-tide:#fff;--dot:#9db5b4;--dot-hot:#0f7c8a;--rim:#b9cdcb;--display:"Bricolage Grotesque","Avenir Next","Segoe UI",system-ui,sans-serif;--body:"Instrument Sans","Helvetica Neue","Segoe UI",system-ui,sans-serif;color-scheme:light;box-sizing:border-box;padding-top:env(safe-area-inset-top,0);padding-bottom:env(safe-area-inset-bottom,0)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#071b21;--surface:#0d262d;--surface-2:#123139;--ink:#e3f0ee;--muted:#93aeb0;--tide:#3cc4c9;--tide-press:#64d4d8;--spray:#8be6e7;--signal:#f2b33d;--line:#1f3f47;--on-tide:#04181c;--dot:#4a757d;--dot-hot:#8be6e7;--rim:#24454d;color-scheme:dark}}:root[data-theme=dark]{--bg:#071b21;--surface:#0d262d;--surface-2:#123139;--ink:#e3f0ee;--muted:#93aeb0;--tide:#3cc4c9;--tide-press:#64d4d8;--spray:#8be6e7;--signal:#f2b33d;--line:#1f3f47;--on-tide:#04181c;--dot:#4a757d;--dot-hot:#8be6e7;--rim:#24454d;color-scheme:dark}html{scroll-padding-top:env(safe-area-inset-top,0);scroll-behavior:smooth}*,:after,:before{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--body);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased}canvas,img,svg{max-width:100%}a{color:var(--tide)}:focus-visible{outline:3px solid var(--spray);outline-offset:3px;border-radius:6px}.wrap{max-width:1180px;margin:0 auto;padding:0 24px}[hidden]{display:none!important}.site-head{gap:24px;padding:20px 0;flex-wrap:wrap}.brand,.site-head{display:flex;align-items:center}.brand{gap:10px;font-family:var(--display);font-weight:800;font-size:1.3rem;color:var(--ink);text-decoration:none;letter-spacing:-.01em}.brand svg{width:30px;height:30px}.brand .logo-img{display:block;width:auto;max-width:none;flex:none}.brand .logo-dark{display:none}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .brand .logo-light{display:none}:root:not([data-theme=light]) .brand .logo-dark{display:block}}:root[data-theme=dark] .brand .logo-light{display:none}:root[data-theme=dark] .brand .logo-dark{display:block}.site-head .desk-nav{display:flex;gap:22px;margin-left:auto}.site-head .desk-nav a{color:var(--muted);text-decoration:none;font-weight:500;font-size:.95rem;white-space:nowrap}.site-head .desk-nav a:hover,.theme-btn{color:var(--ink)}.theme-btn{border:1px solid var(--line);background:transparent;width:38px;height:38px;border-radius:50%;cursor:pointer;display:grid;place-items:center}.menu-btn,.menu-panel{display:none}@media (max-width:820px){.site-head{position:relative;flex-wrap:nowrap;gap:12px;min-height:56px;padding:0}.site-head .desk-nav,.site-head>.theme-btn{display:none}.menu-btn{display:grid;place-items:center;margin-left:auto;margin-right:-10px;flex:none;width:44px;height:44px;border:0;border-radius:12px;background:transparent;color:var(--ink);cursor:pointer}.menu-panel{display:block;position:absolute;z-index:30;top:100%;left:-24px;right:-24px;background:var(--surface);border-bottom:1px solid var(--line);box-shadow:0 12px 24px rgba(14,42,51,.1)}.menu-panel[hidden]{display:none}.menu-panel ul{list-style:none;margin:0;padding:4px 0 8px}.menu-panel a,.menu-theme{display:flex;align-items:center;gap:10px;width:100%;min-height:48px;padding:0 24px;color:var(--ink);text-decoration:none;font:500 1rem var(--body);text-align:left;border:0;background:transparent;cursor:pointer}.menu-panel a:hover,.menu-theme:hover{background:var(--surface-2)}.menu-panel :focus-visible{outline-offset:-3px}.menu-theme{border-top:1px solid var(--line);margin-top:4px}}.hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);grid-template-rows:auto auto 1fr;grid-template-areas:"title stage" "lead stage" "panel stage";grid-column-gap:56px;column-gap:56px;grid-row-gap:0;row-gap:0;padding:28px 0 72px;align-items:start}.hero h1{grid-area:title}.hero .lead{grid-area:lead}.stage-col{grid-area:stage;position:-webkit-sticky;position:sticky;top:24px}.panel{grid-area:panel;margin-top:28px}.btn.quick-btn{display:block;margin:14px auto 0}@media (max-width:900px){.hero{grid-template-columns:minmax(0,1fr);grid-template-rows:none;grid-template-areas:"title" "stage" "panel" "lead";padding-top:8px}.hero h1{font-size:clamp(2rem,8.5vw,2.6rem);margin-bottom:12px}.stage-col{position:static}.stage-col .stage{width:min(68vw,320px)}.btn.quick-btn,.stage-col .status{margin-top:10px}.hero .lead,.panel{margin-top:20px}}h1{font-family:var(--display);font-weight:800;font-size:clamp(2.7rem,6.4vw,5rem);line-height:.95;letter-spacing:-.035em;margin:0 0 20px;font-variation-settings:"opsz" 96}.lead{font-size:1.15rem;color:var(--muted);max-width:34em;margin:0}.stage{position:relative;width:100%;max-width:540px;margin:0 auto;aspect-ratio:1}.stage canvas,.stage svg.ring{position:absolute;inset:0;width:100%;height:100%}.stage svg.ring{transform:rotate(-90deg);pointer-events:none}.ring .track{stroke:var(--line)}.ring .prog{stroke:var(--tide);transition:stroke-dashoffset .2s linear}.readout{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none;text-align:center}.readout .big{font-family:var(--display);font-weight:800;font-size:clamp(2rem,5.5vw,3.3rem);line-height:1;letter-spacing:-.03em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.readout .small{color:var(--muted);font-size:.95rem;margin-top:6px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.status{max-width:30em;margin:18px auto 0;text-align:center;color:var(--muted);min-height:3.2em}.panel-box{background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:8px}.tabs{display:flex;gap:4px;background:var(--surface-2);border-radius:16px;padding:4px}.tabs button{flex:1 1;border:0;background:transparent;color:var(--muted);font:600 .97rem var(--body);padding:11px 8px;border-radius:12px;cursor:pointer}.tabs button[aria-selected=true]{background:var(--surface);color:var(--ink);box-shadow:0 1px 0 var(--line),0 2px 10px rgba(14,42,51,.08)}.tabpanel{padding:20px 16px 16px}.tabpanel h2{font-family:var(--display);font-size:1.35rem;margin:0 0 6px;letter-spacing:-.01em}.tabpanel p{margin:0 0 16px;color:var(--muted)}.q{font-weight:600;margin:0 0 12px}.stepcount{color:var(--muted);font-size:.9rem;margin-bottom:6px}.chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.chip{border:1.5px solid var(--line);background:transparent;color:var(--ink);font:500 .97rem var(--body);padding:9px 16px;border-radius:999px;cursor:pointer}.chip:hover{border-color:var(--tide)}.chip[aria-pressed=true]{background:var(--tide);border-color:var(--tide);color:var(--on-tide)}.checks{list-style:none;padding:0;margin:0 0 14px;display:grid;grid-gap:8px;gap:8px}.checks label{display:flex;gap:10px;align-items:center;cursor:pointer}.checks input{width:20px;height:20px;accent-color:var(--tide)}.plan{background:var(--surface-2);border-radius:12px;padding:12px 14px;font-size:.95rem;margin-bottom:16px}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.linkbtn{background:none;color:var(--muted);font:500 .95rem var(--body);text-decoration:underline;padding:6px 2px}.btn,.linkbtn{border:0;cursor:pointer}.btn{background:var(--tide);color:var(--on-tide);font:600 1.05rem var(--body);padding:15px 28px;border-radius:999px;min-width:190px;display:inline-block;text-decoration:none;text-align:center}.btn:hover{background:var(--tide-press)}.btn[aria-pressed=true]{background:var(--signal);color:#1b1200}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.field label{font-weight:600;font-size:.95rem}input[type=number],select{font:500 1rem var(--body);color:var(--ink);background:var(--surface);border:1.5px solid var(--line);border-radius:10px;padding:10px 12px}section.block{padding:72px 0;border-top:1px solid var(--line)}h2.sec{font-family:var(--display);font-weight:700;font-size:clamp(1.8rem,3.4vw,2.6rem);line-height:1.05;letter-spacing:-.025em;margin:0 0 14px;max-width:20em}.sec-lead{color:var(--muted);max-width:38em;margin:0 0 36px}.split{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);grid-gap:56px;gap:56px;align-items:start}@media (max-width:900px){.split{grid-template-columns:minmax(0,1fr);gap:28px}}.instrument{background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:26px}.freq-display{display:flex;align-items:baseline;gap:8px;margin-bottom:14px}.freq-display input{font-family:var(--display);font-weight:800;font-size:clamp(2.6rem,6vw,3.6rem);letter-spacing:-.03em;width:5.2ch;border:0;background:transparent;padding:0;color:var(--ink);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;-moz-appearance:textfield}.freq-display input::-webkit-inner-spin-button,.freq-display input::-webkit-outer-spin-button{-webkit-appearance:none}.freq-display span{font-size:1.2rem;color:var(--muted);font-weight:600}input[type=range]{width:100%;accent-color:var(--tide);margin:4px 0 18px}.seg{display:inline-flex;border:1.5px solid var(--line);border-radius:12px;overflow:hidden;margin-bottom:18px;flex-wrap:wrap}.seg button{border:0;background:transparent;color:var(--muted);font:600 .93rem var(--body);padding:9px 14px;cursor:pointer}.seg button+button{border-left:1.5px solid var(--line)}.seg button[aria-pressed=true]{background:var(--tide);color:var(--on-tide)}.sub{font-weight:600;font-size:.95rem;margin:0 0 8px}.testpad{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:12px;gap:12px;margin-bottom:12px}.sweepbtn,.testpad button{border:1.5px solid var(--line);background:var(--surface);color:var(--ink);font:600 1rem var(--body);padding:22px 10px;border-radius:16px;cursor:pointer}.sweepbtn:hover,.testpad button:hover{border-color:var(--tide)}.sweepbtn[aria-pressed=true],.testpad button[aria-pressed=true]{background:var(--tide);color:var(--on-tide);border-color:var(--tide)}.sweepbtn{width:100%}.test-status{color:var(--muted);margin:14px 0 0;min-height:1.6em}ol.steps{list-style:none;counter-reset:s;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:28px;gap:28px}@media (max-width:900px){ol.steps{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:520px){ol.steps{grid-template-columns:minmax(0,1fr)}}ol.steps li{counter-increment:s;border-top:3px solid var(--tide);padding-top:14px}ol.steps li:before{content:counter(s);font-family:var(--display);font-weight:800;font-size:2.2rem;line-height:1;color:var(--tide);display:block;margin-bottom:10px}ol.steps h3{font-family:var(--display);font-size:1.15rem;margin:0 0 6px}ol.steps p{margin:0;color:var(--muted)}.prose{max-width:38em}.prose h3{font-family:var(--display);font-size:1.3rem;margin:30px 0 8px;letter-spacing:-.01em}.prose h3:first-child{margin-top:0}.prose p,.prose ul{margin:0 0 14px}.prose ul{padding-left:1.2em}.prose li{margin-bottom:6px}.note{border-left:3px solid var(--signal);padding:4px 0 4px 16px;color:var(--ink);margin:20px 0}.devices{display:flex;flex-wrap:wrap;gap:10px;list-style:none;padding:0!important;margin:0}.devices li{border:1.5px solid var(--line);border-radius:999px;padding:8px 16px;font-weight:500;margin:0}.faq{max-width:46em}.faq details{border-bottom:1px solid var(--line)}.faq summary{cursor:pointer;list-style:none;padding:20px 40px 20px 0;font-family:var(--display);font-weight:700;font-size:1.15rem;position:relative}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"+";position:absolute;right:6px;top:16px;font-size:1.6rem;color:var(--tide);transition:transform .2s}.faq details[open] summary:after{transform:rotate(45deg)}.faq details p{margin:0 0 20px;color:var(--muted);max-width:40em}.post-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:44px 28px;gap:44px 28px}@media (max-width:900px){.post-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:560px){.post-grid{grid-template-columns:minmax(0,1fr)}}.pcard a{display:block;color:inherit;text-decoration:none}.pcard .cov{aspect-ratio:16/10;border-radius:16px;overflow:hidden;margin-bottom:14px}.cov .cov-photo,.cov svg{display:block;width:100%;height:100%}.cov .cov-photo{object-fit:cover}.article .cov:has(>.cov-photo),.pcard .cov:has(>.cov-photo){aspect-ratio:16/9}.pcard .meta{color:var(--muted);font-size:.88rem}.pcard h3{font-family:var(--display);font-weight:700;font-size:1.28rem;line-height:1.18;letter-spacing:-.01em;margin:6px 0 8px}.pcard p{margin:0;color:var(--muted);font-size:.97rem}.pcard a:hover h3{color:var(--tide)}.featured a{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);grid-gap:40px;gap:40px;align-items:center}.featured .cov{margin:0}.featured h3{font-size:clamp(1.6rem,3vw,2.3rem);letter-spacing:-.02em}.featured{margin-bottom:64px}@media (max-width:760px){.featured a{grid-template-columns:minmax(0,1fr);gap:16px}}.view{padding:24px 0 80px}.blog-head{max-width:40em;margin:0 0 48px}.blog-head h1{font-size:clamp(2.4rem,5.5vw,4rem)}.article{max-width:42em;margin:0 auto}.crumbs{font-size:.95rem;margin-bottom:28px}.article .meta,.crumbs,.crumbs a{color:var(--muted)}.article .meta{font-size:.95rem;margin-bottom:12px}.article h1{font-size:clamp(2.1rem,5vw,3.4rem);line-height:1.02;margin-bottom:18px}.article .dek{font-size:1.15rem;color:var(--muted);margin:0}.article .cov{aspect-ratio:21/9;border-radius:20px;overflow:hidden;margin:32px 0 36px}.article-body h2{font-family:var(--display);font-weight:700;font-size:1.55rem;letter-spacing:-.015em;line-height:1.15;margin:40px 0 10px}.article-body p{margin:0 0 16px}.article-body ol,.article-body ul{padding-left:1.3em;margin:0 0 16px}.article-body li{margin-bottom:8px}.cta{border:1.5px solid var(--tide);border-radius:20px;padding:24px;margin:44px 0;display:flex;gap:20px;align-items:center;justify-content:space-between;flex-wrap:wrap}.cta p{margin:0;max-width:24em;font-weight:500}.related{border-top:1px solid var(--line);margin-top:56px;padding-top:40px}.morelink{display:inline-block;margin-top:36px;font-weight:600}.page{max-width:42em;padding:24px 0 80px}.page h1{font-size:clamp(2.2rem,5vw,3.4rem)}.page h2{font-family:var(--display);font-size:1.4rem;margin:32px 0 8px}footer{border-top:1px solid var(--line);padding:40px 0 48px;color:var(--muted);font-size:.95rem}footer .row{justify-content:space-between;align-items:flex-start;gap:28px}footer nav{display:flex;gap:12px 18px;flex-wrap:wrap;max-width:30em}footer a{color:var(--muted)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.ring .prog{transition:none}}