:root{--paper:#eef2ee;--paper-deep:#e6ece7;--ink:#17201c;--ink-soft:#46554e;--ink-muted:#7f9088;--line:#c8d3cc;--line-strong:#aabbb1;--accent:#c95a36;--ready:#397662;--row-hover:#17201c0b;--row-open:#c95a3614;--grid:#364d4413;--row-shadow:0 20px 48px -38px #17201cad;--display:"Space Grotesk", system-ui, sans-serif;--sans:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--pad:clamp(20px, 5vw, 72px);--max-width:1180px;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#111917;--paper-deep:#17221e;--ink:#edf3ee;--ink-soft:#bbc9c1;--ink-muted:#7f9188;--line:#33423b;--line-strong:#50635a;--accent:#ec805b;--ready:#7bb9a2;--row-hover:#edf3ee0b;--row-open:#ec805b1c;--grid:#b8d3c612;--row-shadow:0 24px 54px -38px #000000f2;color-scheme:dark}}:root[data-theme=dark]{--paper:#111917;--paper-deep:#17221e;--ink:#edf3ee;--ink-soft:#bbc9c1;--ink-muted:#7f9188;--line:#33423b;--line-strong:#50635a;--accent:#ec805b;--ready:#7bb9a2;--row-hover:#edf3ee0b;--row-open:#ec805b1c;--grid:#b8d3c612;--row-shadow:0 24px 54px -38px #000000f2;color-scheme:dark}:root[data-theme=light]{--paper:#eef2ee;--paper-deep:#e6ece7;--ink:#17201c;--ink-soft:#46554e;--ink-muted:#7f9088;--line:#c8d3cc;--line-strong:#aabbb1;--accent:#c95a36;--ready:#397662;--row-hover:#17201c0b;--row-open:#c95a3614;--grid:#364d4413;--row-shadow:0 20px 48px -38px #17201cad;color-scheme:light}*{box-sizing:border-box;margin:0;padding:0}html{background:var(--paper);scroll-behavior:smooth}body{isolation:isolate;background:var(--paper);min-width:320px;color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;line-height:1.5;transition:background-color .25s,color .25s;position:relative}body:before,body:after{z-index:0;pointer-events:none;content:"";position:fixed;inset:0}body:before{background-image:linear-gradient(var(--grid) 1px, transparent 1px), linear-gradient(90deg, var(--grid) 1px, transparent 1px);opacity:.52;background-position:0 0,0 0;background-size:64px 64px;animation:36s linear infinite grid-drift}body:after{mix-blend-mode:multiply;opacity:.055;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180' viewBox='0 0 180 180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.3'/%3E%3C/svg%3E");animation:.8s steps(2,end) infinite grain-shift}body>*{z-index:1;position:relative}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}::selection{background:var(--ink);color:var(--paper)}.wrap{width:100%;max-width:var(--max-width);padding-right:var(--pad);padding-left:var(--pad);margin:0 auto}.site-header{z-index:5;border-bottom:1px solid var(--line);position:relative}.header-inner{justify-content:space-between;align-items:center;min-height:72px;display:flex}.brand{width:154px;color:var(--ink);font-family:var(--mono);white-space:nowrap;flex:0 0 154px;align-items:baseline;font-size:19px;line-height:1;text-decoration:none;display:inline-flex}.brand-first{font-weight:600}.brand-second{color:var(--ink-soft);font-weight:400}.brand-space{width:0;transition:width .12s;display:inline-block}.brand-space.inserted{width:.6em}.header-actions,nav,.locale-switch{align-items:center;display:flex}.header-actions,nav{gap:18px}nav a,.locale-switch{font:500 10px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase}nav a{color:var(--ink-soft);border-bottom:1px solid #0000;text-decoration:none;transition:border-color .18s,color .18s,transform .18s}nav a:hover,nav a:focus-visible{border-color:var(--accent);color:var(--ink);transform:translateY(-2px)}.locale-switch{color:var(--ink-muted);gap:5px}.locale-switch a{color:var(--ink-muted);text-decoration:none;transition:color .18s}.locale-switch a.active,.locale-switch a:hover,.locale-switch a:focus-visible{color:var(--ink)}.theme-toggle{width:32px;height:32px;color:var(--ink-soft);cursor:pointer;background:0 0;border:0;flex:0 0 32px;place-items:center end;padding:0;transition:color .18s;display:inline-grid}.theme-toggle:hover{color:var(--accent)}.theme-toggle:focus-visible,.brand:focus-visible,.locale-switch a:focus-visible,nav a:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.theme-mark{border:1px solid;width:11px;height:11px;transition:transform .25s cubic-bezier(.16,1,.3,1);display:block;position:relative}.theme-mark:after{content:"";background:currentColor;width:50%;position:absolute;inset:0 auto 0 0}:root[data-resolved-theme=dark] .theme-mark{transform:rotate(45deg)}.hero{border-bottom:1px solid var(--line);padding-top:clamp(58px,11vh,132px);padding-bottom:0;position:relative;overflow:hidden}.hero:before{top:0;right:max(var(--pad), calc((100vw - var(--max-width)) / 2 + 24%));background:var(--line);content:"";opacity:.65;width:1px;position:absolute;bottom:0}.hero-layout{grid-template-columns:1fr;align-items:end;gap:46px;display:grid}.hero-copy{min-width:0}.eyebrow,.label,.section-label,.project-index,.project-url,.type-line,.status,.open-hint,.detail-fields dt,.notes-empty span,.contact-channel>span,.footer-inner,.telemetry-head,.telemetry-readout,.telemetry-foot,.hero-baseline{font-family:var(--mono)}.eyebrow{color:var(--ink-muted);letter-spacing:.1em;text-transform:uppercase;align-items:baseline;gap:12px;margin-bottom:clamp(30px,5vh,58px);font-size:10px;font-weight:500;line-height:1.6;display:flex}.eyebrow-mark{border-right:1px solid var(--accent);color:var(--accent);padding-right:12px}.hero-name{height:1.88em;font-family:var(--mono);letter-spacing:-.075em;margin-bottom:clamp(34px,6vh,76px);font-size:clamp(62px,17vw,184px);font-weight:500;line-height:.94;position:relative}.hero-final,.hero-editor{display:block}.hero-first{font-family:var(--mono);font-size:1em;font-weight:500}.hero-second,.hero-final-second{color:var(--ink-soft);font-family:var(--mono);font-size:1em;font-weight:400}.hero-editor,html.typing-enabled .hero-final{display:none}html.typing-enabled .hero-editor{display:block}.editor-line{align-items:baseline;width:max-content;min-height:.94em;display:flex;position:relative}.editor-line-two{will-change:padding-left;padding-left:0}.type-caret{align-self:baseline;width:0;height:.72em;display:inline-block;position:relative;overflow:visible}.type-caret:before{z-index:2;background:var(--accent);content:"";width:clamp(1px,.018em,2px);height:.72em;animation:.72s step-end infinite caret-blink;position:absolute;bottom:.08em;left:0}.type-caret.finished:before{opacity:0;transition:opacity .35s;animation:none}.brand .type-caret{height:.9em}.brand .type-caret:before{width:1px;height:.9em;bottom:-.05em}.brand .type-caret:not(.active):before{opacity:0;animation:none}@keyframes caret-blink{0%,46%{opacity:1}47%,to{opacity:0}}.lede{grid-template-columns:1fr;align-items:start;gap:18px;max-width:840px;padding-bottom:clamp(54px,9vh,100px);display:grid}.label{color:var(--accent);letter-spacing:.12em;text-transform:uppercase;padding-top:6px;font-size:10px;font-weight:500;line-height:1.6}.label:before{content:"";vertical-align:middle;border-top:1px solid;width:24px;margin-right:10px;display:inline-block}.lede>div>p:first-child{max-width:31ch;color:var(--ink);font-family:var(--display);letter-spacing:-.045em;font-size:clamp(23px,3.2vw,38px);font-weight:600;line-height:1.12}.lede .small{max-width:50ch;color:var(--ink-soft);margin-top:22px;font-size:15px;line-height:1.7}.hero-telemetry{border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);align-self:end;max-width:410px;padding:18px 0 20px;position:relative}.telemetry-head,.telemetry-readout{color:var(--ink-muted);letter-spacing:.13em;text-transform:uppercase;justify-content:space-between;align-items:center;gap:16px;font-size:9px;line-height:1.3;display:flex}.live-signal{color:var(--ready);align-items:center;gap:7px;display:inline-flex}.live-signal i{background:var(--ready);width:6px;height:6px;box-shadow:0 0 0 0 var(--ready);animation:2.2s ease-out infinite signal-pulse;display:block}.telemetry-graph{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background-image:linear-gradient(var(--grid) 1px, transparent 1px), linear-gradient(90deg, var(--grid) 1px, transparent 1px);background-size:36px 36px;height:176px;margin:18px 0 16px;position:relative;overflow:hidden}.telemetry-graph:after{background:var(--accent);content:"";opacity:.2;width:1px;animation:5s ease-in-out infinite telemetry-scan;position:absolute;top:-1px;bottom:-1px;left:34%}.graph-axis-x,.graph-axis-y,.graph-line,.graph-node{display:block;position:absolute}.graph-axis-x{border-top:1px solid var(--line-strong);bottom:23%;left:8%;right:10%}.graph-axis-y{border-left:1px solid var(--line-strong);top:16%;bottom:18%;left:8%}.graph-line{transform-origin:0;height:1px}.graph-line-a{background:var(--accent);width:62%;top:61%;left:9%;transform:rotate(-22deg)}.graph-line-b{background:var(--ready);width:31%;top:36%;left:57%;transform:rotate(34deg)}.graph-node{border:1px solid var(--paper);background:var(--accent);width:7px;height:7px;box-shadow:0 0 0 1px var(--accent)}.graph-node-a{animation:3.2s ease-in-out infinite node-flicker;top:67%;left:29%}.graph-node-b{background:var(--ready);box-shadow:0 0 0 1px var(--ready);animation:3.2s ease-in-out .6s infinite node-flicker;top:30%;left:57%}.graph-node-c{background:var(--ink);box-shadow:0 0 0 1px var(--ink);animation:3.2s ease-in-out 1.1s infinite node-flicker;top:13%;right:10%}.telemetry-readout{border-bottom:1px solid var(--line);grid-template-columns:repeat(3,1fr);padding-bottom:14px;display:grid}.telemetry-readout span{gap:3px;display:grid}.telemetry-readout span+span{border-left:1px solid var(--line);padding-left:14px}.telemetry-readout b{color:var(--ink);font-family:var(--display);letter-spacing:-.06em;font-size:24px;font-weight:600;line-height:1}.telemetry-readout span:first-child small{color:var(--ready)}.telemetry-readout span:nth-child(2) small{color:var(--accent)}.telemetry-readout small{font:500 9px/1.3 var(--mono);letter-spacing:.1em}.telemetry-foot{color:var(--ink-muted);letter-spacing:.1em;text-align:right;text-transform:uppercase;margin-top:13px;font-size:9px;display:block}.hero-baseline{color:var(--ink-muted);letter-spacing:.11em;text-transform:uppercase;grid-template-columns:1fr auto auto;align-items:center;gap:14px;padding-top:15px;padding-bottom:15px;font-size:9px;line-height:1;display:grid}.baseline-rule{background:var(--line);height:1px}.baseline-scroll{color:var(--accent);animation:2.4s ease-in-out infinite baseline-breathe}main>section{border-bottom:1px solid var(--line)}.section-inner{padding-top:clamp(58px,9vh,108px);padding-bottom:clamp(58px,9vh,108px)}.section-label{color:var(--ink-muted);letter-spacing:.13em;text-transform:uppercase;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:clamp(32px,5vh,58px);font-size:10px;font-weight:500;line-height:1;display:flex}.section-label>span:first-child:before{color:var(--accent);content:"//";margin-right:10px}.section-label .count{color:var(--accent)}.work-list{list-style:none}.work-item{--row-bleed:clamp(10px, 1.8vw, 24px);isolation:isolate;position:relative}.work-item:before{z-index:-1;inset:0 calc(-1 * var(--row-bleed));box-shadow:none;content:"";pointer-events:none;background:0 0;transition:background-color .22s,box-shadow .3s;position:absolute}.work-item:after{z-index:1;border-top:1px solid var(--line);border-bottom:1px solid var(--line);content:"";pointer-events:none;transition:right .28s cubic-bezier(.16,1,.3,1),left .28s cubic-bezier(.16,1,.3,1),border-color .2s;position:absolute;inset:-1px 0 0}.work-item:hover:before,.work-item:focus-within:before,.work-item.spotlight:before{background:var(--row-hover);box-shadow:var(--row-shadow)}.work-item.open:before{background:var(--row-open);box-shadow:var(--row-shadow)}.work-item:hover:after,.work-item:focus-within:after,.work-item.open:after,.work-item.spotlight:after{right:calc(-1 * var(--row-bleed));left:calc(-1 * var(--row-bleed));border-color:var(--line-strong)}.work-trigger{width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"index status""main main""hint hint";align-items:baseline;row-gap:9px;padding:22px 0;display:grid}.work-trigger:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.project-index{color:var(--ink-muted);letter-spacing:.08em;grid-area:index;font-size:11px}.project-main{grid-area:main;min-width:0;display:block;position:relative}.project-main:before{background:var(--ink-muted);content:"";opacity:0;transform-origin:50%;width:3px;height:.9em;transition:opacity .2s,transform .28s cubic-bezier(.16,1,.3,1);position:absolute;top:.25em;left:-14px;transform:scaleY(.4)}.work-item:hover .project-main:before,.work-item:focus-within .project-main:before,.work-item.open .project-main:before,.work-item.spotlight .project-main:before{opacity:1;transform:scaleY(1)}.project-name{color:var(--ink);font-family:var(--display);letter-spacing:-.045em;font-size:clamp(22px,3vw,34px);font-weight:600;line-height:1.05;transition:transform .28s cubic-bezier(.16,1,.3,1);display:block}.work-trigger:hover .project-name,.work-trigger:focus-visible .project-name,.work-item.open .project-name{transform:translate(8px)}.project-url{color:var(--ink-soft);letter-spacing:.03em;overflow-wrap:anywhere;margin-top:8px;font-size:11px;display:block}.type-line{color:var(--ink-muted);letter-spacing:.05em;flex-wrap:wrap;gap:8px 16px;margin-top:10px;font-size:10px;display:flex}.type-line span+span:before{color:var(--line-strong);content:"/";margin-right:16px}.status{color:var(--ready);letter-spacing:.12em;white-space:nowrap;grid-area:status;align-items:center;gap:8px;font-size:10px;font-weight:500;display:inline-flex}.status:before{content:"";background:currentColor;width:5px;height:5px}.status.wip{color:var(--accent)}.open-hint{color:var(--ink-muted);letter-spacing:.08em;opacity:0;grid-area:hint;font-size:9px;transition:opacity .22s,transform .22s;display:block;transform:translate(-5px)}.work-trigger:hover .open-hint,.work-trigger:focus-visible .open-hint,.work-item.open .open-hint{opacity:1;transform:none}.work-item.open .open-hint{color:var(--accent)}.detail{max-height:none;overflow:hidden}html.js .detail{max-height:0;transition:max-height .45s cubic-bezier(.16,1,.3,1)}.detail-inner{border-top:1px solid var(--line);padding:clamp(24px,4vh,42px) 0 clamp(30px,5vh,50px)}.detail-fields{grid-template-columns:6ch minmax(0,1fr);gap:17px 16px;display:grid}.detail-fields dt{color:var(--ink-muted);letter-spacing:.06em;padding-top:2px;font-size:10px}.detail-fields dd{min-width:0;max-width:68ch;color:var(--ink-soft);overflow-wrap:break-word;font-size:14.5px;line-height:1.7}.detail-fields a{color:var(--ink);text-underline-offset:4px;transition:color .18s}.detail-fields a:hover{color:var(--accent)}.detail-fields a span{margin-left:4px;transition:transform .18s;display:inline-block}.detail-fields a:hover span{transform:translate(3px,-3px)}.principles{counter-reset:principle;grid-template-columns:1fr;gap:34px;display:grid}.principles article{border-top:1px solid var(--line-strong);counter-increment:principle;min-height:205px;padding-top:17px;position:relative}.principles article:before{color:var(--accent);content:"0" counter(principle);font:500 10px/1 var(--mono);letter-spacing:.12em;margin-bottom:40px;display:block}.principles h2{max-width:14ch;color:var(--ink);font-family:var(--display);letter-spacing:-.05em;margin-bottom:14px;font-size:clamp(22px,3vw,34px);font-weight:600;line-height:1.08}.principles p{max-width:38ch;color:var(--ink-soft);font-size:14.5px;line-height:1.68}.notes-empty{border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);grid-template-columns:1fr;align-items:baseline;gap:11px;padding:19px 0;display:grid;position:relative}.notes-empty:before{border-top:2px solid var(--accent);content:"";width:44px;position:absolute;top:-1px;left:0}.notes-empty p{color:var(--ink-soft);font-family:var(--display);letter-spacing:-.03em;font-size:clamp(18px,2.1vw,24px);font-weight:500}.notes-empty span{color:var(--ink-muted);letter-spacing:.07em;font-size:9px}.contact{background:var(--paper-deep);position:relative;overflow:hidden}.contact:after{background:var(--accent);content:"";opacity:.6;width:42vw;max-width:560px;height:1px;position:absolute;bottom:0;right:-6vw}.contact-grid{grid-template-columns:1fr;gap:48px;display:grid}.contact .section-label{justify-content:flex-start}.contact h2{max-width:9ch;color:var(--ink);font-family:var(--display);letter-spacing:-.08em;margin-bottom:22px;font-size:clamp(50px,9vw,104px);font-weight:600;line-height:.88}.contact h2+p{max-width:42ch;color:var(--ink-soft);font-size:15px;line-height:1.7}.contact-channel{border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);grid-template-columns:6ch minmax(0,1fr);align-content:start;gap:18px;padding:18px 0;display:grid;position:relative}.contact-channel:before{border-top:2px solid var(--accent);content:"";width:28%;position:absolute;top:-1px;right:0}.contact-channel>span{color:var(--ink-muted);letter-spacing:.1em;text-transform:uppercase;font-size:10px}.contact-channel strong{min-width:0;color:var(--ink);font-family:var(--display);letter-spacing:-.045em;overflow-wrap:anywhere;font-size:clamp(20px,3vw,32px);font-weight:600;line-height:1.05;transition:color .18s}.contact-channel:hover strong{color:var(--accent)}.footer-inner{color:var(--ink-muted);letter-spacing:.06em;flex-wrap:wrap;justify-content:space-between;gap:8px 24px;padding-top:24px;padding-bottom:24px;font-size:10px;display:flex}html.js .reveal{opacity:0;transform:translateY(16px)}html.js .reveal.in{opacity:1;transform:none}.reveal{transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1)}.work-item:nth-child(2),.principles article:nth-child(2){transition-delay:60ms}.work-item:nth-child(3),.principles article:nth-child(3){transition-delay:.12s}.work-item:nth-child(4){transition-delay:.18s}.work-item:nth-child(5){transition-delay:.24s}@keyframes grid-drift{0%{background-position:0 0,0 0}to{background-position:64px 32px,32px 64px}}@keyframes grain-shift{0%{transform:translate(0)}25%{transform:translate(1%,-1%)}50%{transform:translate(-1%,1%)}75%{transform:translate(1%,1%)}to{transform:translate(0)}}@keyframes signal-pulse{0%,60%,to{box-shadow:0 0 #0000}12%{box-shadow:0 0 0 4px color-mix(in srgb, var(--ready) 20%, transparent)}}@keyframes node-flicker{0%,to{opacity:1}50%{opacity:.42}}@keyframes telemetry-scan{0%,to{transform:translate(0)}50%{transform:translate(190px)}}@keyframes baseline-breathe{0%,to{opacity:.55;transform:translateY(0)}50%{opacity:1;transform:translateY(3px)}}@media (width>=650px){nav a:not(.nav-contact){display:block}.lede{grid-template-columns:minmax(110px,.7fr) minmax(0,1.3fr);gap:24px clamp(28px,5vw,76px)}.work-trigger{grid-template-columns:7ch minmax(0,1fr) auto;grid-template-areas:"index main status";gap:12px clamp(20px,4vw,56px);padding-top:24px;padding-bottom:24px}.open-hint{grid-area:2/2}.detail-fields{grid-template-columns:7ch minmax(0,68ch);gap:18px clamp(20px,4vw,56px)}.notes-empty{grid-template-columns:minmax(0,1fr) auto;gap:20px 48px}.contact-channel{grid-template-columns:9ch minmax(0,1fr)}}@media (width>=800px){.hero-layout{grid-template-columns:minmax(0,1fr) minmax(260px,.38fr);gap:clamp(38px,7vw,112px)}.hero-telemetry{margin-bottom:clamp(54px,9vh,100px)}}@media (width>=820px){.principles{grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(28px,4vw,62px)}.principles article:nth-child(2){margin-top:42px}.principles article:nth-child(3){margin-top:84px}}@media (width>=960px){nav{gap:25px}.header-actions{gap:24px}.hero-name{font-size:clamp(84px,12.8vw,184px)}}@media (width<=649px){.header-inner{flex-wrap:wrap;min-height:0;padding-top:12px;padding-bottom:0}.header-actions{display:contents}.locale-switch{order:2;margin-left:auto;padding:12px 0}.theme-toggle{order:3;margin-left:16px}nav{border-top:1px solid var(--line);flex:0 0 100%;order:4;justify-content:space-between;gap:0;margin-top:10px}nav a,nav a:not(.nav-contact){padding:16px 0;font-size:11px;display:block}nav a:hover,nav a:focus-visible{transform:none}.hero-baseline{grid-template-columns:1fr auto}.hero-baseline>span:nth-child(2){display:none}.hero-telemetry{max-width:none}.project-main:before{left:-10px}}@media (width<=420px){.header-inner{min-height:64px}.header-actions{gap:12px}.brand{flex-basis:50px;width:50px}.contact-channel{grid-template-columns:1fr;gap:9px}.contact-channel>span{font-size:9px}}@media (width<=360px){.header-actions{gap:9px}.detail-fields{column-gap:12px}}.note-nav .nav-current{border-color:var(--accent);color:var(--ink)}.note-nav .nav-current:hover,.note-nav .nav-current:focus-visible{transform:none}@media (width>=760px){.note-nav .nav-wide{display:block}}@media (width<=759px){.note-nav .nav-wide{display:none}}@media (width<=649px){.note-nav a:not(.nav-contact):not(.nav-wide){display:block}}.notes-list{list-style:none}.note-row{isolation:isolate;position:relative}.note-row:before{border-top:2px solid var(--accent);content:"";width:44px;position:absolute;top:-1px;left:0}.note-row a{border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);color:inherit;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"date cta""title cta";align-items:center;gap:9px 18px;padding:21px 0;text-decoration:none;transition:background-color .22s;display:grid}.note-row a:hover,.note-row a:focus-visible{background:var(--row-hover)}.note-row a:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.notes-list .note-row+.note-row a{border-top:0}.note-row-date{color:var(--ink-muted);font:500 10px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;grid-area:date}.note-row-title{min-width:0;color:var(--ink);font-family:var(--display);letter-spacing:-.045em;grid-area:title;font-size:clamp(20px,3vw,32px);font-weight:600;line-height:1.12;transition:transform .28s cubic-bezier(.16,1,.3,1)}.note-row-cta{color:var(--accent);grid-area:cta;font-size:clamp(20px,3vw,30px);line-height:1;transition:transform .28s cubic-bezier(.16,1,.3,1)}.note-row a:hover .note-row-title,.note-row a:focus-visible .note-row-title{transform:translate(8px)}.note-row a:hover .note-row-cta{transform:translate(6px)}.brand-static{cursor:pointer}.brand-static .brand-first{font-weight:600}.brand-static .brand-second{transition:color .18s}.brand-static:hover .brand-second,.brand-static:focus-visible .brand-second{color:var(--accent)}.note-hero{border-bottom:1px solid var(--line);padding-top:clamp(52px,10vh,118px);padding-bottom:clamp(48px,8vh,92px);position:relative;overflow:hidden}.note-hero:before{top:0;right:max(var(--pad), calc((100vw - var(--max-width)) / 2 + 24%));background:var(--line);content:"";opacity:.65;width:1px;position:absolute;bottom:0}.note-title{max-width:17ch;color:var(--ink);font-family:var(--display);letter-spacing:-.06em;margin-bottom:clamp(28px,5vh,52px);font-size:clamp(36px,7.4vw,86px);font-weight:600;line-height:.98}.note-meta{border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line);max-width:840px;color:var(--ink-muted);font:500 10px/1.5 var(--mono);letter-spacing:.11em;text-transform:uppercase;flex-wrap:wrap;align-items:baseline;gap:10px 26px;padding:14px 0;display:flex}.note-meta a{color:var(--ink-soft);border-bottom:1px solid #0000;text-decoration:none;transition:border-color .18s,color .18s}.note-meta a:hover,.note-meta a:focus-visible{border-color:var(--accent);color:var(--accent)}.note-units,.note-method{grid-template-columns:1fr;gap:12px;max-width:840px;margin-top:26px;display:grid}.note-units-body,.note-method p:last-child{max-width:62ch;color:var(--ink-soft);font-size:15px;line-height:1.7}.graph-caption{border-bottom:1px solid var(--line-strong);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px 28px;padding-bottom:16px;display:flex}.graph-title{color:var(--ink);font-family:var(--display);letter-spacing:-.04em;font-size:clamp(18px,2.4vw,26px);font-weight:600}.mode-switch{border:1px solid var(--line-strong);flex-wrap:wrap;gap:0;margin-top:16px;display:inline-flex}.mode-btn{color:var(--ink-soft);font:600 9.5px/1 var(--mono);letter-spacing:.13em;text-transform:uppercase;cursor:pointer;background:0 0;border:0;padding:8px 16px;transition:background-color .18s,color .18s}.mode-btn+.mode-btn{border-left:1px solid var(--line-strong)}.mode-btn:hover{color:var(--ink);background:var(--row-hover)}.mode-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.mode-btn[aria-pressed=true]{background:var(--ink);color:var(--paper)}.mode-note{max-width:76ch;color:var(--ink-muted);font:400 12.5px/1.7 var(--mono);margin-top:12px}.graph-scroll{overflow-x:auto}.scatter{width:100%;min-width:620px;height:auto;margin-top:12px;display:block}.svg-grid{stroke:var(--line);stroke-width:1px;opacity:.55}.svg-grid-minor{stroke-dasharray:2 4;opacity:.4}.svg-axis{stroke:var(--line-strong);stroke-width:1px}.svg-tick{fill:var(--ink-muted);font:500 10px var(--mono);letter-spacing:.05em}.axis-title{fill:var(--ink-muted);font:500 9.5px var(--mono);letter-spacing:.12em;text-transform:uppercase}.band-rect{fill:var(--grid);stroke:var(--line);stroke-width:1px;stroke-dasharray:3 4}.band-label{fill:var(--ink-muted);font:600 10px var(--mono);letter-spacing:.16em}.band-sub{fill:var(--ink-muted);font:400 9.5px var(--mono);letter-spacing:.06em;opacity:.8}.noprice-rule{stroke:var(--line);stroke-width:1px;stroke-dasharray:2 4}.noprice-label{fill:var(--ink-muted);font:500 9.5px var(--mono);letter-spacing:.1em;text-transform:uppercase}.dot{cursor:pointer;outline:none}.dot-hit{fill:#0000}.dot-ring{fill:none;stroke:#0000;stroke-width:1.5px;transform-box:fill-box;transform-origin:50%;transition:stroke .18s,transform .18s}.dot-mark{transform-box:fill-box;transform-origin:50%;transition:fill .18s,stroke .18s,transform .18s}.dot-token .dot-mark{fill:var(--accent);stroke:var(--accent);stroke-width:1px}.dot-equivalent .dot-mark{fill:var(--ink);stroke:var(--accent);stroke-width:1.5px}.dot-nontoken .dot-mark{fill:var(--paper);stroke:var(--ink-soft);stroke-width:1.5px}.dot-nontoken.dot-promo .dot-mark{stroke:var(--accent);stroke-dasharray:2.5 2}.dot-noprice .dot-mark{fill:var(--paper);stroke:var(--ink-muted);stroke-width:1.25px}.dot-eq .dot-mark{fill:var(--paper);stroke:var(--accent);stroke-width:1.5px}.scatter[data-mode=published] .layer-equivalent,.scatter[data-mode=equivalent] .layer-published{display:none}.dot-label{fill:var(--ink-muted);font:500 10px var(--mono);letter-spacing:.02em;pointer-events:none;transition:fill .18s}.dot:hover .dot-mark,.dot:focus-visible .dot-mark{transform:scale(1.35)}.dot:hover .dot-ring,.dot:focus-visible .dot-ring{stroke:var(--line-strong)}.dot:hover .dot-label,.dot:focus-visible .dot-label{fill:var(--ink)}.dot[aria-pressed=true] .dot-ring{stroke:var(--accent)}.dot[aria-pressed=true] .dot-label{fill:var(--ink);font-weight:600}.dot:focus-visible .dot-ring{stroke:var(--accent)}.legend{color:var(--ink-muted);font:500 9.5px/1.6 var(--mono);letter-spacing:.07em;text-transform:uppercase;flex-wrap:wrap;gap:10px 26px;margin-top:18px;display:flex}.legend-item{align-items:center;gap:8px;display:inline-flex}.swatch-dot{border-radius:50%;flex:0 0 12px;width:12px;height:12px;display:inline-block}.swatch-token{background:var(--accent)}.swatch-equivalent{background:var(--ink);border:2px solid var(--accent)}.swatch-nontoken{background:var(--paper);border:1.5px solid var(--ink-soft)}.swatch-promo-dot{background:var(--paper);border:1.5px dashed var(--accent)}.swatch-noprice{background:var(--paper);border:1.25px solid var(--ink-muted);border-radius:0;width:9px;height:9px;margin:0 1.5px;transform:rotate(45deg)}.swatch-eq{background:var(--paper);border:1.5px solid var(--accent)}.legend-note{border-top:1px solid var(--line);max-width:76ch;color:var(--ink-muted);font:400 12.5px/1.7 var(--mono);margin-top:12px;padding-top:14px}.scatter-figure{position:relative}.dot-tip{z-index:30;border:1px solid var(--line-strong);background:var(--paper);width:min(320px,78vw);color:var(--ink-soft);font:400 12px/1.6 var(--mono);pointer-events:auto;padding:14px 16px 12px;position:absolute;transform:translate(18px,-50%);box-shadow:0 10px 26px #00000024}.dot-tip.tip-flip{transform:translate(calc(-100% - 18px),-50%)}.tip-name{color:var(--ink);font:600 13px/1.35 var(--sans);margin:0 0 6px}.tip-line{margin:0;padding:2px 0}.tip-warn{border:1px solid var(--accent);color:var(--accent);margin:6px 0 0;padding:6px 8px;font-size:11px}.tip-links{margin:8px 0 0}.tip-links a{color:var(--accent);text-underline-offset:2px;text-decoration:underline}.plan-detail{display:none}.plan-detail.pd-open{display:block}.note-intro{max-width:74ch;color:var(--ink);margin-top:clamp(26px,4vh,40px);font-size:clamp(16px,1.9vw,19px);line-height:1.65}.note-how{grid-template-columns:1fr;gap:12px;max-width:840px;margin-top:26px;display:grid}.note-how ol{counter-reset:how;max-width:66ch;margin:0;padding:0;list-style:none}.note-how li{border-top:1px solid var(--line);color:var(--ink-soft);counter-increment:how;padding:10px 0;font-size:14.5px;line-height:1.7}.note-how li:before{color:var(--accent);content:"0" counter(how);font:500 10px/1 var(--mono);letter-spacing:.12em;margin-right:10px}.view-tabs{border:1px solid var(--line-strong);gap:0;margin-bottom:clamp(22px,3.5vh,34px);display:inline-flex}.view-tab{color:var(--ink-soft);font:600 10.5px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;cursor:pointer;background:0 0;border:0;padding:11px 22px;transition:background-color .18s,color .18s}.view-tab+.view-tab{border-left:1px solid var(--line-strong)}.view-tab:hover{color:var(--ink);background:var(--row-hover)}.view-tab:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.view-tab[aria-selected=true]{background:var(--ink);color:var(--paper)}#compare>.section-inner{flex-direction:column;display:flex}#compare #panel-graph{order:2}#compare #panel-table{order:3}.view-panel:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.view-panel-hint{max-width:62ch;color:var(--ink-muted);font:400 12px/1.7 var(--mono);margin-bottom:16px}.scatter-layout{grid-template-columns:1fr;align-items:start;gap:28px;display:grid}.scatter-figure{min-width:0;margin:0}.plan-detail.pd-open{border:1px solid var(--line-strong);background:var(--paper-deep);min-width:0;padding:20px clamp(16px,2.6vw,26px) 24px;display:block}.pd-hint{color:var(--ink-muted);font:400 12.5px/1.7 var(--mono);margin-top:10px}.pd-name{color:var(--ink);font-family:var(--display);letter-spacing:-.03em;margin-top:12px;font-size:clamp(19px,2.2vw,24px);font-weight:600;line-height:1.15}.pd-blurb{color:var(--ink-soft);margin-top:8px;font-size:14px;line-height:1.65}.pd-fields{border-top:1px solid var(--line);grid-template-columns:minmax(96px,11ch) minmax(0,1fr);gap:9px 16px;margin-top:16px;padding-top:14px;display:grid}.pd-fields dt{color:var(--ink-muted);font:500 9.5px/1.6 var(--mono);letter-spacing:.1em;text-transform:uppercase;padding-top:2px}.pd-fields dd{color:var(--ink-soft);font:400 12.5px/1.6 var(--mono);overflow-wrap:break-word}.pd-fields .pd-flag,.pd-fields .pd-eqwarn{color:var(--accent)}.pd-links-label{color:var(--ink-muted);font:500 9.5px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;margin-top:16px}.pd-links{font:500 11px/1.5 var(--mono);flex-wrap:wrap;gap:8px 18px;margin-top:8px;padding:0;list-style:none;display:flex}.pd-links li{align-items:baseline;gap:3px;display:inline-flex}.pd-links a{border-bottom:1px solid var(--line-strong);color:var(--ink-soft);padding-bottom:2px;text-decoration:none;transition:border-color .18s,color .18s}.pd-links a:hover,.pd-links a:focus-visible{border-color:var(--accent);color:var(--accent)}.pd-links span{transition:transform .18s;display:inline-block}.pd-links a:hover span{transform:translate(2px,-2px)}.method-body{max-width:74ch;color:var(--ink-soft);margin-bottom:14px;font-size:15px;line-height:1.7}.method-note{border-left:2px solid var(--accent);max-width:74ch;color:var(--ink-soft);margin-bottom:14px;padding-left:14px;font-size:14px;line-height:1.7}.method-note a{border-bottom:1px solid var(--line-strong);color:var(--ink);font-weight:500;text-decoration:none;transition:border-color .18s,color .18s}.method-note a:hover,.method-note a:focus-visible{border-color:var(--accent);color:var(--accent)}.method-note a span{margin-left:3px;transition:transform .18s;display:inline-block}.method-note a:hover span{transform:translate(2px,-2px)}.sources-rate a span{margin-left:3px;transition:transform .18s;display:inline-block}.sources-rate a:hover span{transform:translate(2px,-2px)}.sources-heading{max-width:46ch;color:var(--ink);font-family:var(--display);letter-spacing:-.04em;margin-bottom:24px;font-size:clamp(18px,2.6vw,26px);font-weight:600;line-height:1.25}.sources-rate{color:var(--ink-muted);font:400 12px/1.8 var(--mono);margin-top:20px}.sources-rate a{border-bottom:1px solid var(--line-strong);color:var(--ink-soft);text-decoration:none;transition:border-color .18s,color .18s}.sources-rate a:hover,.sources-rate a:focus-visible{border-color:var(--accent);color:var(--accent)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.section-title{max-width:32ch;color:var(--ink);font-family:var(--display);letter-spacing:-.05em;margin-bottom:16px;font-size:clamp(22px,3.4vw,36px);font-weight:600;line-height:1.1}.section-intro{max-width:68ch;color:var(--ink-soft);margin-bottom:clamp(26px,4vh,40px);font-size:15px;line-height:1.7}.compare-wrap{border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);overflow-x:auto}.compare{border-collapse:collapse;width:100%;min-width:1080px;font-size:13px}.compare thead th{border-bottom:1px solid var(--line-strong);color:var(--ink-muted);font:500 9.5px/1.4 var(--mono);letter-spacing:.12em;text-align:left;text-transform:uppercase;white-space:nowrap;padding:14px 14px 12px 0}.compare thead th:first-child{z-index:2;background:var(--paper);position:sticky;left:0}.compare .group-row th{border-bottom:1px solid var(--line);background:var(--paper);color:var(--accent);font:600 10px/1 var(--mono);letter-spacing:.14em;text-align:left;text-transform:uppercase;padding:20px 14px 10px 0}.compare tbody tr:not(.group-row){transition:background-color .18s}.compare tbody tr:not(.group-row):hover{background:var(--row-hover)}.compare th[scope=row]{z-index:1;border-bottom:1px solid var(--line);background:var(--paper);min-width:190px;max-width:240px;color:var(--ink);font-family:var(--display);letter-spacing:-.02em;text-align:left;padding:12px 18px 12px 0;font-size:14px;font-weight:600;line-height:1.35;position:sticky;left:0}.compare tbody tr:not(.group-row):hover th[scope=row]{background:var(--paper-deep)}.plan-name{color:var(--ink-muted);font:400 11px/1.4 var(--mono);letter-spacing:.02em;margin-top:2px;display:block}.compare td{border-bottom:1px solid var(--line);color:var(--ink-soft);vertical-align:top;padding:12px 14px 12px 0;line-height:1.55}.compare .price{color:var(--ink);font:500 12.5px/1.55 var(--mono);white-space:nowrap}.compare .unit,.compare .access,.compare .reset,.compare .region{max-width:240px;font:400 12px/1.6 var(--mono)}.compare .flag{max-width:220px;color:var(--ink-muted);font-size:12.5px}.compare tbody tr:last-child th,.compare tbody tr:last-child td{border-bottom:0}.note-footer{color:var(--ink-muted);font:400 10px/1.7 var(--mono);letter-spacing:.06em;flex-wrap:wrap;justify-content:space-between;gap:10px 24px;padding-top:24px;padding-bottom:24px;display:flex}.note-footer a{color:var(--ink-soft);border-bottom:1px solid #0000;text-decoration:none;transition:border-color .18s,color .18s}.note-footer a:hover,.note-footer a:focus-visible{border-color:var(--accent);color:var(--accent)}@media (width>=650px){.note-row a{grid-template-columns:12ch minmax(0,1fr) auto;grid-template-areas:"date title cta";align-items:baseline;padding-top:24px;padding-bottom:24px}.note-units,.note-method,.note-how{grid-template-columns:minmax(110px,.7fr) minmax(0,1.3fr);gap:24px clamp(28px,5vw,76px)}}@media (width>=700px){.mode-switch{flex-wrap:nowrap}}@media (width>=1080px){.scatter-layout{grid-template-columns:minmax(0,1.55fr) minmax(280px,.45fr);gap:clamp(28px,3.5vw,52px)}.scatter-layout:has(.plan-detail:not(.pd-open)){grid-template-columns:minmax(0,1fr)}.plan-detail.pd-open{position:sticky;top:20px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}body:before,body:after,.live-signal i,.graph-node,.telemetry-graph:after,.baseline-scroll{animation:none}.hero-editor{display:none!important}.hero-final{display:block!important}.type-caret:before{display:none}.reveal{opacity:1;transition:none;transform:none}html.js .detail{transition:none}*{transition-duration:.01ms!important}}
