@font-face{font-family:Fraunces;font-style:italic;font-weight:300 560;font-display:swap;src:url(/fonts/fraunces-italic-300_560-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces;font-style:italic;font-weight:300 560;font-display:swap;src:url(/fonts/fraunces-italic-300_560-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces;font-style:normal;font-weight:300 600;font-display:swap;src:url(/fonts/fraunces-normal-300_600-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces;font-style:normal;font-weight:300 600;font-display:swap;src:url(/fonts/fraunces-normal-300_600-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/jetbrains-mono-normal-400-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/jetbrains-mono-normal-400-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/jetbrains-mono-normal-500-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/jetbrains-mono-normal-500-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/jetbrains-mono-normal-600-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/jetbrains-mono-normal-600-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Manrope;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/manrope-normal-400-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Manrope;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/manrope-normal-400-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Manrope;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/manrope-normal-500-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Manrope;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/manrope-normal-500-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Manrope;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/manrope-normal-600-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Manrope;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/manrope-normal-600-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Manrope;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/manrope-normal-700-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Manrope;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/manrope-normal-700-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.ps{--ps-progress:0;--ps-media-op:.3;padding-block-start:clamp(4rem,8vw,7rem);padding-block-end:clamp(4rem,8vw,7rem);position:relative}.ps-sticky{display:block;position:relative}.ps-enhanced{height:calc(100vh * var(--ps-track,4));padding-block-start:0;padding-block-end:0}.ps-enhanced .ps-sticky{height:calc(100vh - 70px);align-items:stretch;height:calc(100dvh - 70px);padding-block-start:clamp(2.75rem,6vh,5rem);padding-block-end:clamp(1.25rem,3vh,2rem);display:flex;position:sticky;top:70px}.ps-sticky:before{content:"";pointer-events:none;z-index:0;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);opacity:.6;background-size:46px 46px;position:absolute;top:0;bottom:0;left:0;right:0;-webkit-mask-image:radial-gradient(120% 90% at 72% 0,#000 0%,#0000 72%);mask-image:radial-gradient(120% 90% at 72% 0,#000 0%,#0000 72%)}.ps-inner{z-index:1;flex-direction:column;gap:clamp(.85rem,2vh,1.4rem);width:100%;min-height:0;display:flex;position:relative}.ps-lead{flex-direction:column;align-items:flex-start;gap:clamp(.7rem,1.6vh,1.05rem);display:flex}.ps-lead .hero-actions{margin-top:.2rem}.ps-enhanced .ps-lead .hero-sub{display:none}.ps-enhanced .ps-tile{padding:.9rem 1.15rem .95rem}.ps-rail{align-items:center;gap:1rem;display:flex}.ps-rail-cap{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--bone-dim);white-space:nowrap;font-size:.68rem}.ps-rail-line{background:var(--line-2);border-radius:2px;flex:1;height:2px;position:relative}.ps-rail-fill{height:100%;width:calc(var(--ps-progress) * 100%);background:var(--signal);transition:width .45s var(--ease);border-radius:2px;position:absolute;top:0;left:0}.ps-rail-dot{top:50%;left:calc(var(--ps-progress) * 100%);background:var(--signal);width:11px;height:11px;box-shadow:0 0 0 4px color-mix(in srgb,var(--signal) 22%,transparent);transition:left .45s var(--ease);border-radius:50%;position:absolute;transform:translate(-50%,-50%)}.ps-viewport{height:clamp(300px,38vh,460px);position:relative}.ps-enhanced .ps-rail{margin-top:clamp(1.25rem,3vh,2.5rem)}.ps-enhanced .ps-tiles{margin-bottom:auto}.ps-media{border-radius:var(--radius);position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden;-webkit-mask-image:radial-gradient(125% 105% at 50% 45%,#000 42%,#0000 86%);mask-image:radial-gradient(125% 105% at 50% 45%,#000 42%,#0000 86%)}.ps-media-img{object-fit:cover;opacity:0;width:100%;height:100%;transition:opacity .6s var(--ease);position:absolute;top:0;bottom:0;left:0;right:0}.ps-media-img.is-active{opacity:var(--ps-media-op)}.ps[data-active="3"]{--ps-media-op:.42}.ps-terminal{--t-text:#c7d2e4;--t-dim:#5f6e88;--t-comment:#586780;--t-rose:#ce8a97;--t-type:#9db4d6;--t-fn:#eaeff7;--t-str:#93b39c;--t-num:#c7a98c;--t-ok:#84ac8e;--t-warn:#caa23f;background:#0d1522;border:1px solid #223049;border-radius:8px;flex-direction:column;width:min(660px,86%);height:min(100%,460px);display:flex;position:absolute;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%);box-shadow:0 34px 70px -34px #0d15229e,0 6px 18px -12px #0d152266}.ps-term-bar{background:#0b1220;border-bottom:1px solid #1c2840;flex:none;align-items:center;gap:.7rem;height:36px;padding:0 .85rem;display:flex}.ps-dots{gap:.4rem;display:inline-flex}.ps-dots span{background:#30405c;border-radius:50%;width:10px;height:10px}.ps-term-title{font-family:var(--font-mono);letter-spacing:.02em;color:var(--t-dim);font-size:.72rem}.ps-term-body{min-height:0;font-family:var(--font-mono);color:var(--t-text);white-space:pre;-moz-tab-size:2;tab-size:2;background:#0d1522;flex:1;margin:0;padding:.9rem 1.05rem;font-size:clamp(.7rem,1.06vw,.82rem);line-height:1.72;overflow:hidden}.ps-term-body code{font:inherit;color:inherit;display:block}.ps-caret{vertical-align:-.16em;background:var(--t-rose);width:.55em;height:1.02em;margin-left:1px;animation:1.05s step-end infinite ps-blink;display:inline-block}@keyframes ps-blink{50%{opacity:0}}.tok-c{color:var(--t-comment);font-style:italic}.tok-k{color:var(--t-rose)}.tok-t{color:var(--t-type)}.tok-fn{color:var(--t-fn)}.tok-s{color:var(--t-str)}.tok-n{color:var(--t-num)}.tok-p{color:var(--t-dim)}.tok-ok{color:var(--t-ok)}.tok-warn{color:var(--t-warn)}.tok-dim{color:var(--t-dim)}.ps-row{display:block}.ps-bullet{color:var(--t-ok)}.ps-arrow{color:var(--t-warn)}.ps-del-c{color:var(--t-rose)}.ps-note{color:var(--t-dim)}.ps-think{color:var(--t-dim);font-style:italic}.ps-user{color:var(--t-fn)}.ps-user-mark{color:var(--t-rose)}.ps-ln{text-align:right;width:2.2em;color:var(--t-dim);opacity:.65;margin-right:.8em;display:inline-block}.ps-diff-mark{margin-right:.35em}.ps-diff-del,.ps-diff-add{margin-inline-start:-1.05rem;margin-inline-end:-1.05rem;padding-inline-start:1.05rem;padding-inline-end:1.05rem}.ps-diff-del{background:color-mix(in srgb,var(--t-rose) 15%,transparent)}.ps-diff-add{background:color-mix(in srgb,var(--t-ok) 16%,transparent)}.ps-diff-del .ps-diff-mark{color:var(--t-rose)}.ps-diff-add .ps-diff-mark{color:var(--t-ok)}.ps-term-input,.ps-term-status{display:none}.ps-terminal[data-mode=claude_session] .ps-term-input{font-family:var(--font-mono);color:var(--t-text);background:#0b1220;border:1px solid #2a3a54;border-radius:6px;flex:none;align-items:center;gap:.5em;margin:.55rem .7rem .4rem;padding:.5rem .7rem;font-size:clamp(.7rem,1.06vw,.82rem);display:flex}.ps-terminal[data-mode=claude_session] .ps-term-status{font-family:var(--font-mono);letter-spacing:.02em;color:var(--t-dim);flex:none;padding:0 .95rem .55rem;font-size:.6rem;display:block}.ps-in-marker{color:var(--t-rose)}#psInput{white-space:pre}.ps-gha-run{color:var(--t-text)}.ps-gha-step{justify-content:space-between;gap:1.5em;display:flex}.ps-gha-check{color:var(--t-ok);margin-right:.5em}.ps-gha-open{color:var(--t-text)}.ps-gha-chev{color:var(--t-dim);margin-right:.2em}.ps-gha-log{color:var(--t-dim);padding-left:1.6em}.ps-tiles{grid-template-columns:repeat(4,minmax(0,1fr));gap:.6rem;list-style:none;display:grid}.ps-tile{text-align:left;cursor:pointer;width:100%;height:100%;font:inherit;color:inherit;letter-spacing:inherit;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);transition:border-color .25s var(--ease),box-shadow .25s var(--ease),transform .25s var(--ease);flex-direction:column;gap:.45rem;padding:1.05rem 1.15rem 1.15rem;display:flex}.ps-tile:hover{border-color:var(--line-2);transform:translateY(-2px);box-shadow:0 12px 30px -20px #0d152259}.ps-idx{font-family:var(--font-mono);letter-spacing:.05em;color:var(--bone-dim);font-size:.7rem}.ps-name{font-family:var(--font-display);font-variation-settings:"opsz" 60,"wght" 500;letter-spacing:-.005em;font-size:1.3rem;font-weight:500}.ps-desc{font-family:var(--font-mono);color:var(--bone-soft);font-size:.72rem;line-height:1.5}.ps-tile.is-active{border-color:var(--signal);box-shadow:0 14px 34px -20px #7a2f3a80}.ps-tile.is-active .ps-idx,.ps-tile.is-active .ps-name{color:var(--signal)}.ps-tile.is-active .ps-desc{color:var(--bone)}@media (max-width:767px){.ps{padding-block-start:clamp(3rem,7vw,4.5rem);padding-block-end:clamp(3rem,7vw,4.5rem)}.ps-lead h1{font-size:clamp(1.85rem,7.2vw,2.6rem)}.ps-lead-cred{font-size:.72rem}.ps-viewport{height:min(58vh,420px)}.ps-terminal{width:100%;height:100%}.ps-term-body{padding:.8rem .85rem;font-size:.72rem;line-height:1.62}.ps-diff-del,.ps-diff-add{margin-inline-start:-.85rem;margin-inline-end:-.85rem;padding-inline-start:.85rem;padding-inline-end:.85rem}.ps-terminal[data-mode=claude_session] .ps-term-input{font-size:.72rem}.ps-tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.ps-tile{gap:.35rem;padding:.85rem .9rem .95rem}.ps-name{font-size:1.1rem}}@media (max-width:399px){.ps-viewport{height:min(52vh,340px)}.ps-term-body{padding:.7rem .75rem;font-size:.66rem;line-height:1.58}.ps-diff-del,.ps-diff-add{margin-inline-start:-.75rem;margin-inline-end:-.75rem;padding-inline-start:.75rem;padding-inline-end:.75rem}.ps-terminal[data-mode=claude_session] .ps-term-input{font-size:.66rem}.ps-tile{gap:.3rem;padding:.6rem .65rem .7rem}.ps-idx{font-size:.65rem}.ps-name{font-size:1rem}.ps-desc{display:none}}@media (prefers-reduced-motion:reduce){.ps.ps-enhanced{height:auto}.ps-enhanced .ps-sticky{min-height:0;display:block;position:static}.ps-media-img.is-active{opacity:var(--ps-media-op)}}:root{--bg:#ebedf0;--surface:#fff;--surface-2:#f4f5f7;--bone:#0d1522;--bone-soft:#59647a;--bone-dim:#626c7e;--line:#d4d9e0;--line-2:#c3c9d2;--signal:#7a2f3a;--signal-soft:#5f2530;--signal-deep:#6e2a34;--font-display:"Fraunces", Georgia, serif;--font-body:"Manrope", system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, monospace;--maxw:1180px;--gutter:clamp(1.25rem, 5vw, 4rem);--radius:4px;--ease:cubic-bezier(.22,.61,.36,1)}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--bone);font-family:var(--font-body);font-optical-sizing:auto;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-size:17px;font-weight:430;line-height:1.6;overflow-x:hidden}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}::selection{background:var(--signal);color:#fff}.wrap{max-width:var(--maxw);padding-inline:var(--gutter);margin:0 auto}.eyebrow{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--bone-dim);align-items:center;gap:.6em;font-size:.74rem;font-weight:500;display:inline-flex}.eyebrow:before{content:"";background:var(--signal);width:18px;height:1px;display:inline-block}.mono{font-family:var(--font-mono)}.section{min-height:100vh;min-height:100dvh;padding-block-start:clamp(4.5rem,9vw,8rem);padding-block-end:clamp(4.5rem,9vw,8rem)}.section-head{max-width:48rem;margin-bottom:clamp(2.5rem,5vw,4rem)}.section-head h2{font-family:var(--font-display);font-variation-settings:"opsz" 110,"wght" 460;letter-spacing:-.01em;margin-top:1.1rem;font-size:clamp(2rem,4vw,3.3rem);font-weight:460;line-height:1.04}.section-head p{color:var(--bone-soft);max-width:40rem;margin-top:1rem;font-size:1.08rem}a:focus-visible{outline:2px solid var(--signal);outline-offset:3px;border-radius:2px}button:focus-visible{outline:2px solid var(--signal);outline-offset:3px;border-radius:2px}.reveal{opacity:0;filter:blur(5px);transition:opacity .85s var(--ease),transform .85s var(--ease),filter .85s var(--ease);transform:translateY(20px)}.reveal.in{opacity:1;filter:blur();transform:none}.site-header{z-index:50;background:color-mix(in srgb, var(--bg) 84%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);position:sticky;top:0}.header-inner{max-width:var(--maxw);padding:0 var(--gutter);justify-content:space-between;align-items:center;gap:2rem;height:70px;margin:0 auto;display:flex}.brand{font-family:var(--font-display);font-variation-settings:"opsz" 40,"wght" 520;align-items:center;gap:.7rem;font-size:1.12rem;font-weight:520;display:flex}.brand .mark{background:var(--bone);width:30px;height:30px;color:var(--bg);font-family:var(--font-mono);border-radius:5px;place-items:center;font-size:.95rem;font-weight:600;display:grid;position:relative}.brand .mark:after{content:"";background:var(--signal);border-radius:50%;width:4px;height:4px;position:absolute;bottom:5px;right:5px}.brand .tld{color:var(--bone-dim);font-family:var(--font-mono);font-size:.78em;font-weight:400}.nav{align-items:center;gap:1.9rem;display:flex}.nav a{font-family:var(--font-mono);letter-spacing:.02em;color:var(--bone-dim);padding-block-start:.75rem;padding-block-end:.75rem;font-size:.82rem;transition:color .2s;position:relative}.nav a:hover{color:var(--bone)}.nav a:after{content:"";background:var(--signal);width:0;height:1px;transition:width .25s var(--ease);position:absolute;bottom:.35rem;left:0}.nav a:hover:after{width:100%}.status{font-family:var(--font-mono);letter-spacing:.06em;color:var(--bone-dim);text-transform:uppercase;align-items:center;gap:.5rem;font-size:.72rem;display:inline-flex}.dot{background:var(--signal);border-radius:50%;width:7px;height:7px;position:relative}.dot:before{content:"";border:1px solid var(--signal);opacity:.5;animation:ping 2.4s var(--ease) infinite;border-radius:50%;position:absolute;top:-4px;bottom:-4px;left:-4px;right:-4px}@keyframes ping{0%{opacity:.6;transform:scale(.6)}80%,to{opacity:0;transform:scale(1.8)}}.btn{font-family:var(--font-mono);letter-spacing:.02em;border-radius:var(--radius);border:1px solid var(--line-2);color:var(--bone);cursor:pointer;transition:.2s var(--ease);white-space:nowrap;background:0 0;align-items:center;gap:.55rem;padding:.62rem 1.15rem;font-size:.82rem;display:inline-flex}.btn:hover{border-color:var(--bone);background:var(--surface);transform:translateY(-1px)}.btn .arw{transition:transform .2s var(--ease)}.btn:hover .arw{transform:translate(2px,-2px)}.btn.lg{padding:.85rem 1.5rem;font-size:.88rem}.btn.signal{background:var(--signal);border-color:var(--signal);color:#fff;font-weight:600}.btn.signal:hover{background:var(--signal-soft);border-color:var(--signal-soft)}.menu-toggle{border:1px solid var(--line-2);border-radius:var(--radius);cursor:pointer;background:0 0;flex-direction:column;justify-content:center;align-items:center;gap:4px;width:44px;height:44px;display:none}.menu-toggle span{background:var(--bone-soft);width:18px;height:2px;transition:all .25s;display:block}.ps-lead h1{font-family:var(--font-display);font-variation-settings:"opsz" 96,"wght" 520;letter-spacing:-.012em;-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto;max-width:18ch;font-size:clamp(2.1rem,4.6vw,3.6rem);font-weight:520;line-height:1.02}.ps-lead h1 em{font-variation-settings:"opsz" 96,"wght" 540;color:var(--signal);white-space:nowrap;font-style:italic}.ps-lead-cred{font-family:var(--font-mono);letter-spacing:.03em;color:var(--bone-dim);font-size:.78rem}.hero-sub{max-width:42rem;color:var(--bone-soft);font-size:clamp(1.02rem,1.4vw,1.22rem);line-height:1.55}.hero-actions{flex-wrap:wrap;gap:.9rem;display:flex}.proof{border-block:1px solid var(--line);background:var(--surface)}.proof-inner{max-width:var(--maxw);padding:1.5rem var(--gutter);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem 3rem;margin:0 auto;display:flex}.proof-item{font-family:var(--font-mono);letter-spacing:.03em;color:var(--bone-dim);align-items:baseline;gap:.6rem;font-size:.82rem;display:flex}.proof-item b{color:var(--bone);font-weight:500}.proof-item .num{font-family:var(--font-display);font-variation-settings:"opsz" 50,"wght" 560;color:var(--bone);letter-spacing:0;font-size:1.5rem}.cards{background:var(--line);border:1px solid var(--line);border-radius:var(--radius);grid-template-columns:repeat(3,1fr);gap:1px;display:grid;overflow:hidden}.card{background:var(--surface);flex-direction:column;min-height:236px;padding:2rem 1.9rem 2.1rem;transition:background .25s;display:flex;position:relative}.card:hover{background:var(--surface-2)}.card-tag{font-family:var(--font-mono);color:var(--bone-dim);letter-spacing:.08em;text-transform:uppercase;font-size:.7rem}.card h3{font-family:var(--font-display);font-variation-settings:"opsz" 72,"wght" 480;letter-spacing:-.005em;margin-top:.85rem;font-size:1.5rem;font-weight:480}.card p{color:var(--bone-soft);flex:1;margin-top:.7rem;font-size:1.02rem}.card-stack{font-family:var(--font-mono);color:var(--bone-dim);letter-spacing:.02em;margin-top:1.1rem;font-size:.72rem}.card:after{content:"";background:var(--signal);width:0;height:2px;transition:width .3s var(--ease);position:absolute;top:0;left:0}.card:hover:after{width:34px}.work-list{border-top:1px solid var(--line)}.work-item{border-bottom:1px solid var(--line);transition:padding-left .3s var(--ease);grid-template-columns:5.5rem 1fr auto;align-items:baseline;gap:1.5rem 2rem;padding:2rem 0;display:grid;position:relative}.work-item:before{content:"";background:var(--signal);transform-origin:top;width:2px;transition:transform .3s var(--ease);position:absolute;top:0;bottom:0;left:-1.5rem;transform:scaleY(0)}.work-item:hover{padding-left:1.5rem}.work-item:hover:before{transform:scaleY(1)}.work-ref{font-family:var(--font-mono);color:var(--bone-dim);letter-spacing:.04em;padding-top:.5rem;font-size:.76rem}.work-main h3{font-family:var(--font-display);font-variation-settings:"opsz" 90,"wght" 450;letter-spacing:-.01em;font-size:clamp(1.4rem,2.4vw,1.95rem);font-weight:450;line-height:1.12}.work-main .ctx{color:var(--bone-soft);max-width:44rem;margin-top:.6rem;font-size:1.02rem}.work-tags{flex-wrap:wrap;gap:.5rem;margin-top:.9rem;display:flex}.tag{font-family:var(--font-mono);color:var(--bone-soft);border:1px solid var(--line-2);letter-spacing:.03em;border-radius:100px;padding:.18rem .65rem;font-size:.68rem}.work-link{font-family:var(--font-mono);color:var(--bone-dim);white-space:nowrap;align-items:center;gap:.4rem;padding-top:.5rem;font-size:.78rem;transition:color .2s;display:inline-flex}.work-item:hover .work-link{color:var(--signal)}.about-section{flex-direction:column;padding-bottom:0;display:flex}.about-grid{grid-template-columns:1.4fr 1fr;align-items:start;gap:clamp(2.5rem,6vw,5rem);display:grid}.about-grid:not(:has(.portrait)){grid-template-columns:1fr}.about-body p{color:var(--bone-soft);max-width:40rem;margin-top:1.1rem;font-size:1.18rem;line-height:1.6}.about-body p strong{color:var(--bone);font-weight:600}.about-facts{border-top:1px solid var(--line);flex-direction:column;gap:.1rem;margin-top:2rem;display:flex}.fact{border-bottom:1px solid var(--line);font-family:var(--font-mono);justify-content:space-between;gap:1rem;padding:.85rem 0;font-size:.84rem;display:flex}.fact span:first-child{color:var(--bone-dim);letter-spacing:.04em}.fact span:last-child{color:var(--bone)}.portrait{aspect-ratio:4/5;border:1px solid var(--line-2);border-radius:var(--radius);background:linear-gradient(160deg,var(--surface-2),var(--surface));place-items:center;display:grid;position:relative;overflow:hidden}.portrait .ph{font-family:var(--font-mono);color:var(--bone-dim);letter-spacing:.1em;text-align:center;text-transform:uppercase;padding:1rem;font-size:.72rem;line-height:1.8}.portrait .ph b{font-family:var(--font-display);font-variation-settings:"opsz" 144,"wght" 460;color:var(--bone);letter-spacing:0;margin-bottom:.5rem;font-size:3.6rem;display:block}.portrait .corner{border-color:var(--signal);border-style:solid;width:14px;height:14px;position:absolute}.portrait .corner.tl{border-width:1px 0 0 1px;top:10px;left:10px}.portrait .corner.br{border-width:0 1px 1px 0;bottom:10px;right:10px}.cta{background:#0d1522;margin-top:auto;padding-block-start:clamp(2.5rem,5vw,4rem);padding-block-end:clamp(2.5rem,5vw,4rem);position:relative;overflow:hidden}.cta:before{content:"";background-image:linear-gradient(#ece6da08 1px,#0000 1px),linear-gradient(90deg,#ece6da08 1px,#0000 1px);background-size:46px 46px;position:absolute;top:0;bottom:0;left:0;right:0;-webkit-mask-image:radial-gradient(80% 120% at 100% 100%,#000,#0000 70%);mask-image:radial-gradient(80% 120% at 100% 100%,#000,#0000 70%)}.cta>*{position:relative}.cta .eyebrow{color:#9aa6bd}.cta h2{color:#f4f1ea;font-family:var(--font-display);font-variation-settings:"opsz" 120,"wght" 480;letter-spacing:-.012em;max-width:18ch;margin-top:1.1rem;font-size:clamp(2.1rem,5vw,3.6rem);font-weight:480;line-height:1.04}.cta p{color:#9aa6bd;max-width:35rem;margin-top:1.2rem;font-size:1.14rem}.cta-actions{flex-wrap:wrap;align-items:center;gap:1rem;margin-top:2.2rem;display:flex}.cta-email{font-family:var(--font-mono);color:#fff;border-bottom:1px solid var(--signal);padding-bottom:2px;font-size:.9rem}.site-footer{background:var(--surface);border-top:1px solid var(--line)}.footer-inner{max-width:var(--maxw);padding:2.5rem var(--gutter);flex-direction:column;gap:1.8rem;margin:0 auto;display:flex}.foot-cta{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem 1.5rem;padding-bottom:1.8rem;display:flex}.foot-meta{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.5rem 2rem;display:flex}.foot-left{font-family:var(--font-mono);color:var(--bone-dim);flex-wrap:wrap;align-items:center;gap:1.5rem;font-size:.8rem;display:flex}.foot-left a{transition:color .2s}.foot-left a:hover{color:var(--signal)}.foot-copy{color:var(--bone-dim)}.foot-right{font-family:var(--font-mono);color:var(--bone-dim);align-items:center;gap:1.25rem;font-size:.78rem;display:flex}.foot-right a{color:var(--bone-dim);align-items:center;gap:.4rem;display:inline-flex}.foot-right a:hover{color:var(--bone)}@media (max-width:920px){.cards{grid-template-columns:repeat(2,1fr)}.about-grid{grid-template-columns:1fr}.portrait{max-width:340px}}@media (max-width:767px){.nav{display:none}.menu-toggle{display:flex}.nav.open{background:var(--bg);padding:1.5rem var(--gutter) 2rem;border-bottom:1px solid var(--line);flex-direction:column;align-items:flex-start;gap:.4rem;display:flex;position:absolute;top:70px;left:0;right:0}.nav.open a{width:100%;font-size:1rem}.section{min-height:0}.cards{grid-template-columns:1fr}.work-item{grid-template-columns:1fr;gap:.8rem;padding-block-start:1.6rem;padding-block-end:1.6rem}.work-link{padding-top:0}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}.reveal{opacity:1;filter:none;transform:none}}.skip-link{z-index:100;background:var(--bone);color:var(--bg);font-family:var(--font-mono);border-radius:var(--radius);padding:.7rem 1.1rem;font-size:.82rem;position:absolute;top:0;left:-9999px}.skip-link:focus{left:var(--gutter);top:.6rem}.lang-switch{font-family:var(--font-mono);color:var(--bone-dim);align-items:center;gap:.4rem;font-size:.78rem;display:inline-flex}.lang-switch a{border-radius:3px;padding:.1rem .35rem;transition:color .2s;position:relative}.lang-switch a:after{content:"";position:absolute;top:-.75rem;bottom:-.75rem;left:-.4rem;right:-.4rem}.lang-switch a[aria-current=true]{color:var(--bone);font-weight:600}.lang-switch a:not([aria-current=true]):hover{color:var(--signal)}.lang-switch .sep{opacity:.5}.notices{left:var(--gutter);right:var(--gutter);z-index:80;pointer-events:none;flex-direction:column;align-items:center;gap:.8rem;display:flex;position:fixed;bottom:1rem}.notices>*{pointer-events:auto}@media (prefers-reduced-motion:no-preference){.notices>*{animation:bannerIn .4s var(--ease)}}@keyframes bannerIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.lang-banner{background:var(--surface);border:1px solid var(--line-2);border-radius:var(--radius);width:min(34rem,100%);font-family:var(--font-mono);color:var(--bone-soft);justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 1rem .85rem 1.15rem;font-size:.82rem;display:flex;box-shadow:0 14px 40px -22px #0d152266}.lang-banner[hidden]{display:none}.lang-banner a{color:var(--signal);border-bottom:1px solid var(--signal);white-space:nowrap;padding-bottom:1px}.lang-banner button{cursor:pointer;color:var(--bone-dim);font-family:var(--font-mono);background:0 0;border:none;padding:.2rem .3rem;font-size:1.1rem;line-height:1;position:relative}.lang-banner button:after{content:"";position:absolute;top:-.6rem;bottom:-.6rem;left:-.6rem;right:-.6rem}.lang-banner button:hover{color:var(--bone)}.consent{background:var(--surface);border:1px solid var(--line-2);border-radius:var(--radius);width:min(40rem,100%);font-family:var(--font-mono);color:var(--bone-soft);padding:1.1rem 1.2rem;font-size:.82rem;box-shadow:0 18px 50px -24px #0d152273}.consent[hidden]{display:none}.consent:focus{outline:none}.consent:focus-visible{outline:2px solid var(--signal);outline-offset:3px}.consent-head strong{color:var(--bone);letter-spacing:.02em;margin-bottom:.35rem;font-weight:600;display:block}.consent-head p{line-height:1.55}.consent-head a{color:var(--signal);border-bottom:1px solid var(--signal);white-space:nowrap}.consent-cats{border-top:1px solid var(--line);flex-direction:column;gap:.7rem;margin-top:.9rem;padding-top:.9rem;display:flex}.consent-cats[hidden]{display:none}.consent-cat{cursor:pointer;align-items:flex-start;gap:.6rem;display:flex}.consent-cat input{width:15px;height:15px;accent-color:var(--signal);cursor:pointer;flex:none;margin-top:.18rem}.consent-cat input:disabled{cursor:default;opacity:.6}.consent-cat-text{line-height:1.45}.consent-cat-text b{color:var(--bone);font-weight:600;display:block}.consent-actions{flex-wrap:wrap;align-items:center;gap:.55rem;margin-top:1rem;display:flex}.consent-btn{font-family:var(--font-mono);border:1px solid var(--line-2);border-radius:var(--radius);background:var(--surface);color:var(--bone);cursor:pointer;transition:.2s var(--ease);padding:.55rem 1rem;font-size:.8rem}.consent-btn:hover{border-color:var(--bone);transform:translateY(-1px)}.consent-btn[hidden]{display:none}.consent-btn.ghost{color:var(--bone-dim);text-underline-offset:3px;background:0 0;border-color:#0000;margin-right:auto;padding-inline-start:.2rem;padding-inline-end:.2rem;text-decoration:underline}.consent-btn.ghost:hover{color:var(--bone);transform:none}@media (max-width:560px){.consent-actions{grid-template-columns:1fr 1fr;display:grid}.consent-btn.ghost{justify-self:start;margin:0}#consentSettings,#consentSave{grid-column:1/-1}}.linklike{font:inherit;letter-spacing:inherit;color:inherit;cursor:pointer;background:0 0;border:none;margin:0;padding:0}.foot-left .linklike:hover{color:var(--signal)}.legal .section-head h1{font-family:var(--font-display);font-variation-settings:"opsz" 110,"wght" 460;letter-spacing:-.01em;margin-top:1.1rem;font-size:clamp(2rem,4vw,3.3rem);font-weight:460;line-height:1.04}.legal-body{max-width:46rem;color:var(--bone-soft);font-size:1.05rem}.legal-body>:first-child{margin-top:0}.legal-body h2{font-family:var(--font-display);font-variation-settings:"opsz" 72,"wght" 470;color:var(--bone);letter-spacing:-.005em;margin-top:2.4rem;font-size:1.5rem;font-weight:470}.legal-body h3{font-family:var(--font-display);color:var(--bone);margin-top:1.6rem;font-size:1.15rem;font-weight:480}.legal-body p{margin-top:1rem;line-height:1.65}.legal-body a{color:var(--signal);border-bottom:1px solid var(--line-2);transition:border-color .2s}.legal-body a:hover{border-color:var(--signal)}.legal-body ul{flex-direction:column;gap:.4rem;margin-top:1rem;padding-left:1.2rem;display:flex}.legal-body strong{color:var(--bone);font-weight:600}.legal-body .placeholder{border:1px dashed var(--line-2);border-radius:var(--radius);font-family:var(--font-mono);color:var(--bone-dim);background:var(--surface-2);padding:.9rem 1.1rem;font-size:.84rem}.case-back{font-family:var(--font-mono);letter-spacing:.04em;color:var(--bone-dim);align-items:center;gap:.45rem;font-size:.78rem;transition:color .2s;display:inline-flex}.case-back:hover{color:var(--signal)}.case-back .arw{transition:transform .2s var(--ease)}.case-back:hover .arw{transform:translate(-3px)}.case .section-head{max-width:none;margin-top:2rem}.case .section-head p{max-width:none}.case .section-head h1{font-family:var(--font-display);font-variation-settings:"opsz" 110,"wght" 460;letter-spacing:-.012em;max-width:22ch;margin-top:1.1rem;font-size:clamp(2.1rem,4.6vw,3.6rem);font-weight:460;line-height:1.04}.case .section-head h1 em{font-variation-settings:"opsz" 110,"wght" 480;color:var(--signal);font-style:italic}.case-sub{letter-spacing:.02em;color:var(--bone-dim);margin-top:1.2rem;font-size:.82rem}.case-lede{color:var(--bone-soft);text-align:justify;-webkit-hyphens:auto;hyphens:auto;margin-top:1.4rem;font-size:1.18rem;line-height:1.55}.case-cards{grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:clamp(1.6rem,3vw,2.4rem);display:grid}.case-card{background:var(--surface);border:1px solid var(--line-2);border-radius:var(--radius);padding:1.3rem 1.4rem}.case-card.hot{border-color:var(--signal)}.case-card .num{font-family:var(--font-mono);letter-spacing:.1em;color:var(--bone-dim);font-size:.7rem}.case-card.hot .num{color:var(--signal)}.case-card .t{font-family:var(--font-display);font-variation-settings:"opsz" 60,"wght" 480;color:var(--bone);margin-top:.7rem;font-size:1.15rem;font-weight:480;line-height:1.15}.case-card.hot .t{color:var(--signal)}.case-card .s{font-family:var(--font-mono);letter-spacing:.03em;color:var(--bone-dim);margin-top:.55rem;font-size:.66rem;line-height:1.6}.case-fig{margin:clamp(2rem,4vw,3rem) 0}.case-fig svg{width:100%;height:auto;display:block}.case-fig svg text{font-family:var(--font-mono)}.case-fig figcaption{font-family:var(--font-mono);letter-spacing:.06em;color:var(--bone-dim);margin-top:1rem;font-size:.68rem;line-height:1.5}.case-fig figcaption .tick{color:var(--signal)}.case-fig.float{float:right;width:min(44%,22rem);margin:1rem 0 1.4rem 2.5rem}.case-section{margin-top:clamp(3rem,6vw,4.5rem)}.case-section>.eyebrow{margin-bottom:1rem}.case-section .eyebrow .tick{color:var(--signal);margin-right:.1em}.case-section h2{font-family:var(--font-display);font-variation-settings:"opsz" 72,"wght" 470;color:var(--bone);letter-spacing:-.01em;font-size:clamp(1.5rem,2.6vw,2rem);font-weight:470;line-height:1.12}.case-cols{display:flow-root}.case-prose p,.case-cols p{color:var(--bone-soft);text-align:justify;-webkit-hyphens:auto;hyphens:auto;margin-top:1rem;font-size:1.05rem;line-height:1.65}.case-prose strong,.case-cols strong{color:var(--bone);font-weight:600}.case-prose em.code,.case-cols em.code{font-style:normal;font-family:var(--font-mono);color:var(--bone-soft);font-size:.86em}.case-problems{grid-template-columns:repeat(2,1fr);gap:1.6rem 3rem;margin-top:1.8rem;display:grid}.case-problem{grid-template-columns:2.4rem 1fr;gap:.2rem 0;display:grid}.case-problem .n{font-family:var(--font-mono);color:var(--signal);letter-spacing:.06em;padding-top:.15rem;font-size:.78rem}.case-problem h3{font-family:var(--font-body);color:var(--bone);grid-column:2;font-size:1rem;font-weight:600}.case-problem p{color:var(--bone-soft);grid-column:2;margin-top:.35rem;font-size:.96rem;line-height:1.55}.case-callout{background:var(--surface);border-left:2px solid var(--signal);border-radius:0 var(--radius) var(--radius) 0;margin-top:1.8rem;padding:1.2rem 1.5rem}.case-callout p{color:var(--bone-soft);margin:0;font-size:1.02rem;line-height:1.6}.case-callout strong{color:var(--bone);font-weight:600}.case-pull{text-align:center;max-width:38rem;font-family:var(--font-display);font-variation-settings:"opsz" 96,"wght" 460;letter-spacing:-.01em;color:var(--bone);margin:clamp(2.5rem,6vw,4rem) auto;font-size:clamp(1.5rem,3vw,2.1rem);line-height:1.25}.case-pull em{color:var(--signal);font-style:italic}.case-stats{grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:2rem;display:grid}.case-stat{background:var(--surface);border:1px solid var(--line-2);border-radius:var(--radius);padding:1.3rem 1.4rem}.case-stat .v{font-family:var(--font-display);font-variation-settings:"opsz" 60,"wght" 520;color:var(--bone);font-size:2.4rem;line-height:1}.case-stat .v em{color:var(--signal);font-style:italic}.case-stat .k{font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--bone-dim);margin-top:.7rem;font-size:.66rem;line-height:1.5}.case-list{margin-top:1.6rem;list-style:none}.case-list li{color:var(--bone-soft);text-align:justify;-webkit-hyphens:auto;hyphens:auto;padding-left:1.6rem;font-size:1.02rem;line-height:1.6;position:relative}.case-list li+li{margin-top:.9rem}.case-list li:before{content:"—";color:var(--signal);font-family:var(--font-mono);position:absolute;left:0}.case-list strong{color:var(--bone);font-weight:600}.case-stack{font-family:var(--font-mono);letter-spacing:.03em;color:var(--bone-soft);margin-top:clamp(2.5rem,5vw,3.5rem);font-size:.8rem;line-height:2}.case-stack b{color:var(--bone);font-weight:600}.case-cta{background:var(--surface);border:1px solid var(--line-2);border-radius:var(--radius);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.5rem;margin-top:2rem;padding:clamp(1.6rem,3vw,2.4rem);display:flex}.case-cta-txt{max-width:34rem}.case-cta-txt h2{font-family:var(--font-display);font-variation-settings:"opsz" 72,"wght" 470;color:var(--bone);letter-spacing:-.005em;font-size:1.5rem;font-weight:470;line-height:1.15}.case-cta-txt p{color:var(--bone-soft);margin-top:.7rem;font-size:1rem;line-height:1.55}.case-cta-actions{flex-direction:column;align-items:flex-start;gap:.9rem;display:flex}@media (max-width:767px){.case-problems{grid-template-columns:1fr}.case-stats,.case-cards{grid-template-columns:repeat(2,1fr)}.case-fig.float{float:none;width:100%;margin:clamp(2rem,4vw,3rem) 0}.case-lede,.case-prose p,.case-cols p,.case-list li{text-align:left}}@media (max-width:440px){.case-stats,.case-cards{grid-template-columns:1fr}}
