@font-face{font-family:Instrument Sans Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/assets/instrument-sans-latin-ext-wght-normal-B5bTHO_g.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Instrument Sans Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/assets/instrument-sans-latin-wght-normal-BbzFLZTg.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Instrument Sans Variable;font-style:italic;font-display:swap;font-weight:400 700;src:url(/assets/instrument-sans-latin-ext-wght-italic-CTF9u33F.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Instrument Sans Variable;font-style:italic;font-display:swap;font-weight:400 700;src:url(/assets/instrument-sans-latin-wght-italic-BlcgWI5J.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Monaspace Argon;src:url(/fonts/ta-human-v1.301.woff2) format("woff2");font-weight:200 800;font-stretch:100% 125%;font-style:oblique -11deg 0deg;font-display:swap}@font-face{font-family:Monaspace Krypton;src:url(/fonts/ta-mechanical-v1.301.woff2) format("woff2");font-weight:200 800;font-stretch:100% 125%;font-style:oblique -11deg 0deg;font-display:swap}@font-face{font-family:Monaspace Neon;src:url(/fonts/ta-neo-v1.301.woff2) format("woff2");font-weight:200 800;font-stretch:100% 125%;font-style:oblique -11deg 0deg;font-display:swap}@font-face{font-family:Monaspace Radon;src:url(/fonts/ta-hand-v1.301.woff2) format("woff2");font-weight:200 800;font-stretch:100% 125%;font-style:oblique -11deg 0deg;font-display:swap}@font-face{font-family:Monaspace Xenon;src:url(/fonts/ta-slab-v1.301.woff2) format("woff2");font-weight:200 800;font-stretch:100% 125%;font-style:oblique -11deg 0deg;font-display:swap}:root{--canvas: oklch(.966 .009 99.984);--ink: oklch(.191 .002 106.586);--dark-warm: oklch(.359 .005 106.652);--olive: oklch(.424 .009 88.712);--stone: oklch(.523 .009 99.011);--border: oklch(.914 .015 98.299);--brand: oklch(.333 .077 257.706);--material-nav: oklch(.966 .009 99.984 / .82);--surface-hover: oklch(.191 .002 106.586 / .04);--surface-active: oklch(.191 .002 106.586 / .07);--soft-shadow: oklch(.191 .002 106.586 / .14);--ambient-glow-cyan: oklch(.82 .08 205 / .2);--ambient-glow-violet: oklch(.76 .12 285 / .16);--ambient-glow-pink: oklch(.8 .11 335 / .12);--text-caption: .8125rem;--text-code: .875rem;--text-label: .9375rem;--text-body: 1rem;--text-body-lg: 1.125rem;--text-heading-sm: 1.25rem;--text-title: 1.5rem;--text-section: clamp(1.625rem, 2.5vw, 2rem);--text-display: clamp(1.5rem, 3vw, 1.875rem);--text-article-display: clamp(min(2.75rem, 12vw), 3.5vw, 4rem);--leading-body: 1.55;--leading-heading: 1.1;--font-sans: "Instrument Sans Variable", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-debug: Menlo, Monaco, "SFMono-Regular", Consolas, monospace;--font-site-body: "Monaspace Neon", var(--font-debug);--font-site-display: "Monaspace Krypton", var(--font-site-body);--ease-out: cubic-bezier(.23, 1, .32, 1);color:var(--ink);background:var(--canvas);font-family:var(--font-sans);font-size:100%;font-optical-sizing:auto;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html,body{min-height:100%;overscroll-behavior-y:none}@media(prefers-color-scheme:dark){:root{--canvas: oklch(.203 .006 106.906);--ink: oklch(.937 .017 91.556);--dark-warm: oklch(.855 .016 90.251);--olive: oklch(.85 .016 86.44);--stone: oklch(.77 .014 86.858);--border: oklch(.331 .01 106.949);--brand: oklch(.85 .065 252.564);--material-nav: oklch(.203 .006 106.906 / .82);--surface-hover: oklch(.937 .017 91.556 / .06);--surface-active: oklch(.937 .017 91.556 / .1);--soft-shadow: oklch(0 0 0 / .36);--ambient-glow-cyan: oklch(.68 .09 205 / .22);--ambient-glow-violet: oklch(.64 .13 285 / .2);--ambient-glow-pink: oklch(.7 .12 335 / .16)}}*{box-sizing:border-box}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;border:0;padding:0;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap}.skip-link{position:fixed;z-index:100;inset-block-start:12px;inset-inline-start:12px;min-height:44px;align-items:center;border-radius:999px;padding-inline:16px;color:var(--canvas);background:var(--ink);box-shadow:0 8px 24px -16px var(--soft-shadow);font-size:var(--text-label);font-weight:650;translate:0 calc(-100% - 24px)}.skip-link:focus-visible{display:inline-flex;outline:2px solid;outline-offset:2px;text-decoration:none;translate:0}body{margin:0;isolation:isolate;color:var(--ink);background:var(--canvas);font-size:var(--text-body);line-height:var(--leading-body)}#main-content{position:relative;z-index:1}.glimm-glow{position:fixed;z-index:0;inset:0;overflow:hidden;pointer-events:none;background:radial-gradient(ellipse 34% 62% at 104% 24%,var(--ambient-glow-cyan),transparent 72%),radial-gradient(ellipse 28% 54% at 100% 54%,var(--ambient-glow-violet),transparent 74%),radial-gradient(ellipse 26% 46% at 104% 82%,var(--ambient-glow-pink),transparent 76%)}.glimm-glow-canvas{display:block;width:100%;height:100%;opacity:.72;filter:blur(32px) saturate(.84);-webkit-mask-image:linear-gradient(to right,transparent 46%,black 78%);mask-image:linear-gradient(to right,transparent 46%,black 78%)}@media(max-width:720px){.glimm-glow-canvas{opacity:.46;-webkit-mask-image:linear-gradient(to right,transparent 62%,black 88%);mask-image:linear-gradient(to right,transparent 62%,black 88%)}}@media(prefers-contrast:more){.glimm-glow{opacity:.42}.glimm-glow-canvas{opacity:.28}}.ocean-banner{position:relative;width:100%;height:clamp(160px,16vw,220px);overflow:hidden;background:var(--canvas);background-image:url(/media/waves-fallback.png);background-position:center bottom;background-size:cover;-webkit-mask-image:linear-gradient(to bottom,oklch(0 0 0) 0%,oklch(0 0 0) 72%,transparent 100%);mask-image:linear-gradient(to bottom,oklch(0 0 0) 0%,oklch(0 0 0) 72%,transparent 100%)}.ocean-banner canvas{display:block;width:100%;height:100%;opacity:0;image-rendering:pixelated;transition:opacity .2s var(--ease-out)}.ocean-banner canvas[data-render-state=ready]{opacity:1}.ocean-banner-motion-control,.project-media-motion-control{position:absolute;z-index:1;inset-block-start:12px;inset-inline-end:12px;display:grid;justify-items:end;gap:8px}.ocean-banner-motion-toggle,.project-media-motion-toggle{width:44px;height:44px;display:grid;place-items:center;border:1px solid color-mix(in oklch,var(--ink) 18%,transparent);border-radius:50%;padding:0;color:var(--ink);background:color-mix(in oklch,var(--canvas) 82%,transparent);box-shadow:0 8px 24px -16px var(--soft-shadow);cursor:pointer;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.ocean-banner-motion-toggle:hover,.project-media-motion-toggle:hover{background:color-mix(in oklch,var(--canvas) 92%,transparent)}.ocean-banner-motion-toggle:focus-visible,.project-media-motion-toggle:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.ocean-banner-motion-toggle svg,.project-media-motion-toggle svg{width:20px;height:20px;fill:currentColor}.ocean-banner-motion-tooltip,.project-media-motion-tooltip{max-width:calc(100vw - 32px);border-radius:8px;padding:6px 10px;color:var(--canvas);background:var(--ink);box-shadow:0 8px 24px -16px var(--soft-shadow);font-size:var(--text-caption);line-height:1.35;overflow-wrap:break-word;text-align:start;opacity:0;pointer-events:none}.ocean-banner-motion-control:not([data-tooltip-dismissed]):hover .ocean-banner-motion-tooltip,.ocean-banner-motion-control:not([data-tooltip-dismissed]):focus-within .ocean-banner-motion-tooltip,.project-media-motion-control:not([data-tooltip-dismissed]):hover .project-media-motion-tooltip,.project-media-motion-control:not([data-tooltip-dismissed]):focus-within .project-media-motion-tooltip{opacity:1;pointer-events:auto}@media(prefers-reduced-motion:reduce){.ocean-banner canvas{opacity:.85;transition:none}}main{width:720px;margin:0 auto;padding-top:64px}.site-header{margin-bottom:52px}.not-found{width:min(720px,calc(100% - 48px));min-height:50vh}.not-found-label{margin:0 0 12px;color:var(--brand);font-family:SFMono-Regular,Consolas,monospace;font-size:var(--text-caption);font-variant-numeric:tabular-nums;font-weight:650}.not-found h1{margin:0;color:var(--ink);font-size:var(--text-section);line-height:var(--leading-heading);letter-spacing:-.03em;text-wrap:balance}.not-found>p:last-of-type{max-width:42ch;margin:20px 0 0;color:var(--olive);text-wrap:pretty}.not-found a{display:inline-flex;min-height:44px;align-items:center;margin-top:24px;margin-inline-start:-10px;border-radius:999px;padding-inline:10px;font-weight:550}.wordmark{color:var(--ink);font-size:var(--text-body);font-weight:600;letter-spacing:-.015em}.hero-intro{margin-bottom:0}.hero-intro p{max-width:34ch;margin:0;color:var(--ink);font-size:var(--text-display);line-height:1.3;letter-spacing:-.025em;text-wrap:balance}::selection{color:var(--canvas);background:var(--brand)}.bio{margin-top:72px;color:var(--dark-warm);font-size:var(--text-body);font-weight:400;line-height:var(--leading-body)}h1,h2,.bio-heading time,.bio-copy p,.writing h2,.writing h3,.writing p,.work h2,.work h3,.work p,.work ul,footer p{margin:0}.page{position:relative;width:min(920px,calc(100% - 48px));margin-top:8px;margin-bottom:28px;padding:38px 44px 0}.page .bio{display:grid;grid-template-columns:minmax(160px,.8fr) minmax(0,1.2fr);align-items:start;gap:48px;margin-top:88px}.page .bio-copy p:first-child{padding-top:0}.page .contact-links{margin-top:44px}.page footer{margin-top:44px;padding-bottom:44px}.bio h2{margin:0;font-size:var(--text-title);font-weight:600;line-height:var(--leading-heading);letter-spacing:-.02em;text-wrap:balance}.bio-heading time{display:block;margin-top:16px;color:var(--stone);font-size:var(--text-caption);font-family:SFMono-Regular,Consolas,monospace;font-variant-numeric:tabular-nums;white-space:normal}.bio-copy p{padding-top:20px;overflow-wrap:break-word;text-wrap:pretty}a{color:var(--brand);text-decoration:none;text-decoration-skip-ink:auto;text-decoration-thickness:from-font;text-underline-position:from-font;text-underline-offset:3px;transition:color .16s var(--ease-out),opacity .1s ease-out}a:hover{text-decoration:underline;text-underline-offset:2px}a:focus-visible{outline:2px solid;outline-offset:2px;text-decoration:underline}a:active{opacity:.68}.back-link{display:inline-flex;min-height:44px;align-items:center;gap:6px;margin-inline-start:-10px;border-radius:999px;padding-block:0;padding-inline:8px 12px;color:var(--ink);font-size:var(--text-label);font-weight:550;transition:background-color .16s var(--ease-out),opacity .1s ease-out,transform .1s ease-out}.back-link:active{background:var(--surface-active);opacity:1;transform:scale(.96)}.back-link-icon{width:1.125rem;height:1.125rem;flex:0 0 auto;transition:translate .18s var(--ease-out)}.contact-links{display:flex;flex-wrap:wrap;gap:8px 24px;margin-top:28px;padding-top:12px}.contact-links a{display:inline-flex;min-height:44px;align-items:center;border-radius:999px;padding-inline:10px;font-size:var(--text-label);font-weight:500;transition:background-color .16s var(--ease-out),opacity .1s ease-out,transform .1s ease-out}.contact-links a:hover{background:var(--surface-hover);text-decoration:none}.contact-links a:active{background:var(--surface-active);opacity:1;transform:scale(.96)}.writing,.work{margin-top:88px}.writing-header,.work-header{display:flex;align-items:baseline;justify-content:space-between;gap:16px}.writing-header h2,.work-header h2{margin:0}.writing-header h2,.work-header h2{padding:0;color:var(--ink);font-size:var(--text-title);font-weight:600;line-height:var(--leading-heading);letter-spacing:-.02em;text-wrap:balance}.writing-header>a{color:var(--stone);font-size:var(--text-caption);font-weight:500}.writing-list{display:grid;gap:12px;margin-top:20px}.writing-row{display:grid;grid-template-columns:minmax(0,1fr) auto;min-height:104px;align-items:center;gap:32px;margin-inline:-16px;border-radius:16px;padding:20px 16px;color:var(--ink);transition:background-color .18s var(--ease-out),transform .1s ease-out,opacity .1s ease-out}.writing-row:hover{background:var(--surface-hover);text-decoration:none}.writing-row:active{background:var(--surface-active);opacity:1;transform:scale(.96)}.writing-row h3,.writing-row p{line-height:1.4}.writing-row h3{color:var(--ink);font-size:var(--text-body-lg);font-weight:600;letter-spacing:-.018em;view-transition-name:article-title}.writing-row p{max-width:52ch;margin-top:6px;color:var(--olive);font-size:var(--text-label);text-wrap:pretty;view-transition-name:article-deck}.writing-row-meta{display:flex;align-items:center;gap:20px}.writing-row time{color:var(--stone);font-family:SFMono-Regular,Consolas,monospace;font-size:var(--text-caption);font-variant-numeric:tabular-nums;white-space:nowrap;view-transition-name:article-date}.writing-row-icon{width:1.125rem;height:1.125rem;flex:0 0 auto;color:var(--stone);transition:color .18s var(--ease-out),transform .18s var(--ease-out)}.writing-row:hover .writing-row-icon{color:var(--ink);transform:translate(2px,-2px)}.work ul{display:grid;gap:4px;margin-top:20px;padding:0;list-style:none}.work-row{display:grid;grid-template-columns:minmax(0,1fr) auto;min-height:68px;align-items:baseline;gap:32px;padding:14px 0;color:var(--ink)}.work-row h3,.work-row p,.work-row time{font-size:var(--text-label);font-weight:400;line-height:1.45}.work-row h3{color:var(--ink);font-weight:500}.work-row p{margin-top:2px;color:var(--olive);text-wrap:pretty}.work-row time{color:var(--stone);font-family:SFMono-Regular,Consolas,monospace;font-size:var(--text-caption);font-variant-numeric:tabular-nums;text-align:start;white-space:nowrap}footer{margin-top:88px;border-top:1px solid var(--border);padding:24px 0 32px}footer p{color:var(--stone);font-size:var(--text-caption)}.page>footer{position:relative;border-top:0}.page>footer:before{position:absolute;top:0;left:0;width:100%;height:1px;content:"";background:var(--border);transform-origin:left center;animation:footer-rule-enter 1ms linear both;animation-range:entry 0% entry 55%;animation-timeline:view(block)}@keyframes footer-rule-enter{0%{opacity:.25;transform:scaleX(.18)}to{opacity:1;transform:scaleX(1)}}.endless-footer{position:relative;z-index:0;width:100%;height:200svh;background:var(--canvas)}.endless-footer-canvas{position:fixed;z-index:0;top:0;left:50%;display:block;width:100%;max-width:1728px;height:100vh;height:100dvh;opacity:0;pointer-events:none;transform:translate(-50%)}.endless-footer-canvas[data-active]{opacity:1}.site-nav{display:flex;flex-wrap:wrap;gap:8px 24px;margin-block-end:72px}.site-nav a{display:inline-flex;min-height:44px;align-items:center;font-size:var(--text-label);font-weight:500}.blog-index,.blog-post{width:min(70rem,calc(100% - clamp(3rem,8vw,8rem)));margin-inline:auto;padding-block:clamp(4rem,8vw,7rem) 9.5rem;font-family:var(--font-site-body)}.blog-post{--article-body-font-size: var(--text-body);--article-reading-width: 70ch;--article-wide-width: min(96ch, calc(100vw - clamp(2rem, 8vw, 8rem)) )}.blog-index{display:grid;grid-template-columns:clamp(9rem,16vw,12.5rem) minmax(0,1fr);column-gap:clamp(2.5rem,6vw,5.5rem)}.blog-index .site-nav{grid-column:1 / -1}.editorial-nav{position:static;display:flex;min-height:44px;align-items:center;justify-content:space-between;margin-bottom:64px;font-size:var(--text-label)}.editorial-nav-back,.editorial-nav-end{display:flex;align-items:center}.editorial-nav a{display:inline-flex;min-height:44px;align-items:center}.editorial-nav-brand{color:var(--ink);font-size:var(--text-label);font-weight:560}.blog-header{display:grid;min-width:0;max-width:none;grid-column:1 / -1;grid-template-columns:subgrid}.blog-header h1{margin:0;color:var(--ink);font-family:var(--font-site-display);font-size:var(--text-title);font-weight:560;line-height:1.2;letter-spacing:-.02em;text-wrap:balance;grid-column:1}.blog-header p{max-width:48ch;margin:0;color:var(--olive);font-size:var(--text-body);line-height:1.62;text-wrap:pretty;grid-column:2}.post-list{container:post-list / inline-size;min-width:0;margin-block-start:80px;grid-column:2}.post-list ol{display:grid;gap:24px;margin:0;padding:0;list-style:none}.post-list li{margin-inline:-16px}.post-list a{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 24px;border-radius:12px;padding-block:18px 20px;padding-inline:16px;color:var(--ink);transition:background-color .15s ease}.post-list-heading{display:grid;grid-template-columns:minmax(0,1fr) 1.125rem;align-items:center;gap:12px}.post-list a:active{background:var(--surface-active);opacity:1;transform:scale(.96)}.post-list-title{font-size:var(--text-body);font-weight:540;line-height:1.48;letter-spacing:0;text-wrap:balance;view-transition-name:article-title}.post-list-icon{width:1.125rem;height:1.125rem;flex:0 0 auto;color:var(--stone);transition:translate .16s var(--ease-out)}@media(hover:hover)and (pointer:fine){.back-link:hover{background:var(--surface-hover);text-decoration:none}.back-link:hover .back-link-icon{translate:-2px 0}.post-list a:hover{background:var(--surface-hover);text-decoration:none}.post-list a:hover .post-list-title{text-decoration:underline;text-decoration-thickness:from-font;text-underline-offset:3px}.post-list a:hover .post-list-icon{translate:3px 0}}:dir(rtl) .back-link-icon,:dir(rtl) .post-list-icon{scale:-1 1}@media(hover:hover)and (pointer:fine){:dir(rtl) .back-link:hover .back-link-icon{translate:2px 0}:dir(rtl) .post-list a:hover .post-list-icon{translate:-3px 0}}.post-list-meta{display:flex;gap:12px;color:var(--stone);font-family:var(--font-site-body);font-size:var(--text-caption);white-space:nowrap}.post-list-meta time{view-transition-name:article-date}.post-list p{max-width:62ch;margin:0;color:var(--olive);font-size:var(--text-body);line-height:1.6;grid-column:1}@container post-list (max-width: 40rem){.post-list a{grid-template-columns:1fr;gap:8px}.post-list-meta,.post-list p{grid-column:1}}.article-header{width:min(var(--article-reading-width),100%);margin-inline:auto}.article-header-content{width:100%}.article-header h1{max-width:18ch;margin:0;color:var(--ink);font-family:var(--font-site-display);font-size:clamp(2rem,4vw,3rem);font-weight:560;line-height:1.08;letter-spacing:-.025em;text-wrap:balance;view-transition-name:article-title}.article-deck{max-width:56ch;margin:24px 0 0;color:var(--olive);font-size:var(--text-body);line-height:1.62;text-wrap:pretty;view-transition-name:article-deck}.article-byline{display:flex;flex-wrap:wrap;gap:8px 64px;margin:24px 0 0;color:var(--stone);font-family:var(--font-site-body);font-size:var(--text-caption);font-variant-numeric:tabular-nums}.article-dates{display:flex;flex-wrap:wrap;gap:8px 24px;view-transition-name:article-date}.article-reading-controls{display:grid;width:min(38rem,100%);min-width:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin:32px auto 0;border:0;border-radius:14px;padding:16px;color:var(--ink);background:color-mix(in srgb,var(--border) 24%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--border) 72%,transparent);font-family:var(--font-site-body)}.article-reading-control{display:grid;min-width:0;align-items:center;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px}.article-reading-control label,.article-reading-control output{font-size:var(--text-caption);line-height:1.4}.article-reading-control label{font-weight:560}.article-reading-control output{color:var(--stone);font-variant-numeric:tabular-nums}.article-reading-control input{width:100%;min-height:44px;margin:0;accent-color:var(--ink);cursor:pointer;grid-column:1 / -1}.article-reading-control input:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.article-audio{display:grid;gap:12px;margin-block-start:32px;border-block:1px solid var(--border);padding-block:20px}.article-audio h2{margin:0;color:var(--ink);font-family:var(--font-site-display);font-size:var(--text-body);font-weight:560;line-height:var(--leading-heading)}.article-audio-controls{display:grid;align-items:center;grid-template-columns:auto auto minmax(80px,1fr) auto;gap:12px}.article-audio-controls button{min-width:72px;min-height:44px;border:1px solid var(--ink);border-radius:999px;padding-inline:16px;color:var(--canvas);background:var(--ink);font:inherit;font-size:var(--text-label);font-weight:650;cursor:pointer}.article-audio-controls button:hover:not(:disabled){opacity:.82}.article-audio-controls button:active:not(:disabled){transform:scale(.97)}.article-audio-controls button:focus-visible,.article-audio-controls input:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.article-audio-controls button:disabled,.article-audio-controls input:disabled{cursor:not-allowed;opacity:.48}.article-audio-controls input{width:100%;min-height:44px;margin:0;accent-color:var(--ink);cursor:pointer}.article-audio-time{color:var(--stone);font-family:var(--font-site-body);font-size:var(--text-caption);font-variant-numeric:tabular-nums}.article-audio-status{margin:0;color:var(--stone);font-size:var(--text-caption)}@media(max-width:480px){.article-audio-controls{grid-template-columns:auto 1fr auto}.article-audio-controls input{grid-column:1 / -1;grid-row:2}.article-audio-controls .article-audio-time:first-of-type{justify-self:end}}::view-transition-old(root),::view-transition-new(root){animation-duration:.24s;animation-timing-function:var(--ease-out)}::view-transition-group(article-title){animation-duration:.24s;animation-timing-function:var(--ease-out)}::view-transition-group(article-deck),::view-transition-group(article-date){animation-duration:.22s;animation-timing-function:var(--ease-out)}@keyframes route-enter-forward{0%{opacity:0;transform:translateY(10px)}}@keyframes route-enter-backward{0%{opacity:0;transform:translateY(-10px)}}html[data-route-transition=forward] .blog-post{animation:route-enter-forward .24s var(--ease-out) both}html[data-route-transition=backward] .page,html[data-route-transition=backward] .blog-index{animation:route-enter-backward .24s var(--ease-out) both}.article-shell{width:min(var(--article-reading-width),100%);margin:56px auto 0}.article-body{width:100%;margin:0;color:var(--olive);font-size:var(--article-body-font-size);line-height:1.7;overflow-wrap:break-word}.article-body>p{margin:0 0 1.5em}.article-body>.article-break{width:3.5rem;height:1px;margin:3.5em 0;border:0;background:var(--border)}.article-summary{margin:0 0 48px;border-block:1px solid var(--ink);padding:24px 0;color:var(--ink);font-size:var(--text-body);line-height:var(--leading-body)}.article-summary-label{margin:0 0 12px;color:var(--brand);font-size:var(--text-caption);font-weight:700;letter-spacing:.04em;text-transform:uppercase}.article-summary-question{max-width:34ch;margin:0 0 18px;color:var(--ink);font-size:var(--text-heading-sm);font-weight:650;line-height:1.3;letter-spacing:-.025em;text-wrap:balance}.article-summary ol{margin:0;padding-inline-start:1.4em}.article-summary li+li{margin-block-start:8px}.article-body h2{scroll-margin-top:88px;margin:3em 0 .9em;color:var(--ink);font-family:var(--font-site-display);font-size:var(--text-title);font-weight:560;line-height:1.2;letter-spacing:-.02em;text-wrap:balance}.article-body>h3{scroll-margin-top:88px;margin:2.4em 0 .7em;color:var(--ink);font-family:var(--font-site-display);font-size:var(--text-body-lg);font-weight:560;line-height:1.35;letter-spacing:-.02em;text-wrap:balance}.article-decisions{display:grid;gap:12px;margin:0 0 1.5em;font-family:var(--font-site-body)}.article-decisions section{border-radius:14px;padding:18px 20px;background:color-mix(in srgb,var(--border) 22%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--border) 72%,transparent)}.article-decisions h3{margin:0 0 8px;color:var(--ink);font-size:var(--text-body-lg);line-height:var(--leading-heading)}.article-decisions p{margin:0;font-size:var(--text-body);line-height:var(--leading-body)}.article-body code{font-family:SFMono-Regular,Consolas,monospace;font-size:.84em}.article-body p code{padding:.1em .3em;border:1px solid var(--border);border-radius:4px;background:color-mix(in srgb,var(--border) 35%,transparent)}.article-body pre{max-width:100%;margin:2em 0;overflow-x:auto;border:0;border-radius:14px;padding:20px;color:var(--ink);background:color-mix(in srgb,var(--border) 25%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--border) 72%,transparent),0 16px 36px -30px var(--soft-shadow);font-size:var(--text-code);line-height:var(--leading-body)}.article-body pre code{font-size:inherit}.article-body blockquote{margin:2.2em 0;border-block:1px solid var(--border);padding:1.5em 0;color:var(--ink);font-size:1.35em;line-height:1.35;letter-spacing:-.02em}.article-body blockquote p{margin:0}.article-ernie-cta{display:grid;width:var(--article-wide-width);align-items:center;grid-template-columns:minmax(0,1fr) auto;gap:32px;margin-block:3em;margin-inline:calc((100% - var(--article-wide-width)) / 2);padding:clamp(28px,5vw,48px);color:var(--canvas);background:var(--ink);box-shadow:0 24px 64px -48px var(--soft-shadow)}.article-body .article-ernie-cta h2{margin:0;color:inherit;font-size:var(--text-section)}.article-ernie-cta p{max-width:28ch;margin:12px 0 0;color:color-mix(in oklch,var(--canvas) 78%,transparent);font-size:var(--text-body-lg);line-height:var(--leading-body)}.article-ernie-cta-copy ul{display:flex;flex-wrap:wrap;gap:8px;margin:24px 0 0;padding:0;list-style:none}.article-ernie-cta-copy li{border:1px solid color-mix(in oklch,var(--canvas) 32%,transparent);border-radius:999px;padding:5px 10px;color:color-mix(in oklch,var(--canvas) 72%,transparent);font-family:var(--font-site-body);font-size:var(--text-caption);line-height:1.2;white-space:nowrap}.article-ernie-actions{display:grid;min-width:11.5rem;gap:10px}.article-ernie-actions a{display:inline-flex;min-height:48px;align-items:center;justify-content:center;gap:10px;border:1px solid var(--canvas);padding:0 18px;color:var(--ink);background:var(--canvas);font-family:var(--font-site-body);font-size:var(--text-label);font-weight:650;transition:opacity .1s ease-out,transform .1s ease-out}.article-ernie-actions a:hover{text-decoration:none}.article-ernie-actions a:focus-visible{outline-color:var(--canvas);outline-offset:4px;text-decoration:none}.article-ernie-actions a:active{opacity:.84;transform:scale(.96)}.article-ernie-actions .article-ernie-secondary{color:var(--canvas);background:transparent}.story-demo{margin:2.8em 0;border-block:1px solid var(--ink);padding:1.6em 0;color:var(--olive)}.story-demo h3{margin:0 0 .45em;color:var(--ink);font-family:var(--font-site-display);font-size:var(--text-heading-sm);font-weight:600;line-height:1.25;letter-spacing:-.02em}.story-demo>p{margin:0 0 1.25em}.story-demo-form{margin:0}.story-demo-form label{display:block;margin-bottom:.5em;color:var(--ink);font-size:var(--text-label);font-weight:650}.story-demo-controls{display:flex;gap:10px}.story-demo-controls input{min-width:0;min-height:48px;flex:1;border:1px solid var(--stone);border-radius:0;padding:0 14px;color:var(--ink);background:transparent;font:inherit}.story-demo-controls button{min-height:48px;border:1px solid var(--ink);border-radius:0;padding:0 18px;color:var(--canvas);background:var(--ink);font:inherit;font-weight:650;cursor:pointer}.story-demo-controls input:focus-visible,.story-demo-controls button:focus-visible{outline:2px solid var(--brand);outline-offset:3px}.story-demo-controls button:disabled{cursor:wait;opacity:.58}.story-demo-count{display:block;margin-top:.45em;color:var(--stone);font-family:var(--font-site-body);font-size:var(--text-caption);text-align:end}.story-demo-result{min-height:4.5em;margin-top:1.2em}.story-demo-result>p{margin:0;color:var(--stone);font-size:var(--text-label)}.story-demo-result blockquote{margin:0;border:0;padding:0;font-size:var(--text-body-lg)}.vpo-page{width:min(1760px,calc(100% - clamp(32px,6vw,112px)));margin-inline:auto;padding:clamp(28px,3vw,44px) 0 80px;font-family:var(--font-site-body)}.vpo-nav{display:flex;min-height:44px;align-items:center;justify-content:space-between;padding-bottom:18px;border-bottom:1px solid var(--border)}.vpo-brand{display:inline-flex;min-height:44px;align-items:center;color:var(--ink);font-size:var(--text-label);font-weight:560}.vpo-header{margin-top:clamp(34px,3.5vw,52px)}.vpo-header h1{max-width:none;margin:0;color:var(--ink);font-family:var(--font-site-display);font-size:clamp(2rem,2.7vw,3rem);font-weight:560;line-height:1.06;letter-spacing:-.035em;text-wrap:balance}.vpo-header p{max-width:72ch;margin:20px 0 0;color:var(--olive);font-size:var(--text-body-lg);line-height:1.55;text-wrap:pretty}.vpo-workspace{display:grid;grid-template-columns:minmax(270px,.78fr) minmax(520px,2.26fr);margin-top:clamp(34px,3vw,48px);border-top:1px solid var(--border)}.vpo-composer,.vpo-results{min-width:0;padding-top:26px}.vpo-model-result{min-width:0}.vpo-composer{padding-inline-end:clamp(24px,2.8vw,48px)}.vpo-composer label{display:block;margin-bottom:12px;color:var(--ink);font-size:var(--text-body);font-weight:650}.vpo-composer textarea{display:block;width:100%;min-height:164px;resize:vertical;border:1px solid var(--stone);border-radius:0;padding:15px 16px;color:var(--ink);background:transparent;font-family:var(--font-site-body);font-size:var(--text-body);line-height:1.55}.vpo-composer textarea:focus-visible,.vpo-composer button:focus-visible,.vpo-candidate:focus-visible{outline:2px solid var(--brand);outline-offset:3px}.vpo-character-count{display:block;margin-top:7px;color:var(--stone);font-size:var(--text-caption);font-variant-numeric:tabular-nums;text-align:end}.vpo-composer>button{width:100%;min-height:56px;margin-top:22px;border:1px solid var(--ink);border-radius:0;padding:0 18px;color:var(--canvas);background:var(--ink);font-family:var(--font-site-body);font-size:var(--text-body-lg);font-weight:650;cursor:pointer}.vpo-composer>button:disabled{cursor:wait;opacity:.58}.vpo-cold-start,.vpo-error{margin:18px 0 0;color:var(--stone);font-size:var(--text-label);line-height:1.5}.vpo-error{color:var(--ink)}.vpo-results{border-inline-start:1px solid var(--border);padding-inline:clamp(28px,3.4vw,58px)}.vpo-model-tabs{display:grid;width:min(420px,100%);grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid var(--ink)}.vpo-model-tabs button{min-height:48px;border:0;border-radius:0;padding:0 16px;color:var(--ink);background:transparent;font-family:var(--font-site-body);font-size:var(--text-label);font-weight:650;cursor:pointer}.vpo-model-tabs button+button{border-inline-start:1px solid var(--ink)}.vpo-model-tabs button[aria-selected=true]{color:var(--canvas);background:var(--ink)}.vpo-model-tabs button:focus-visible{position:relative;outline:2px solid var(--brand);outline-offset:3px}.vpo-results [role=tabpanel] .vpo-model-result{padding-top:28px}.vpo-thinking{display:flex;min-height:220px;align-items:center;gap:22px;border-bottom:1px solid var(--border);padding:36px 0;color:var(--ink)}.vpo-thinking canvas{flex:0 0 auto}.vpo-thinking p{display:grid;gap:7px;margin:0}.vpo-thinking strong{font-size:var(--text-body-lg);font-weight:650}.vpo-thinking span{max-width:40ch;color:var(--stone);font-size:var(--text-label);line-height:1.5}.vpo-model-result h2{margin:0;color:var(--brand);font-family:var(--font-site-display);font-size:var(--text-heading-sm);font-weight:600;line-height:1.3;letter-spacing:-.015em}.vpo-model-description{margin:10px 0 0;color:var(--stone);font-size:var(--text-caption);line-height:1.55}.vpo-model-result blockquote{margin:30px 0 0;border-inline-start:3px solid var(--brand);padding-inline-start:clamp(22px,2vw,34px);color:var(--ink);font-size:clamp(1.05rem,1.25vw,1.28rem);line-height:1.75;text-wrap:pretty}.vpo-model-result>.vpo-scores{margin-top:24px}.vpo-empty{max-width:42ch;margin:30px 0 0;color:var(--stone);font-size:var(--text-body);line-height:1.65}.vpo-chosen-note{margin:24px 0 0;color:var(--stone);font-size:var(--text-label)}.vpo-same-story{margin:28px 0 0;border-top:1px solid var(--border);padding-top:18px;color:var(--brand);font-size:var(--text-label);line-height:1.5}.vpo-trace{margin-top:30px;border-top:1px solid var(--border);padding-top:20px}.vpo-trace h3{margin:0;color:var(--ink);font-size:var(--text-label);font-weight:650}.vpo-trace p{margin:10px 0 0;color:var(--stone);font-size:var(--text-caption);line-height:1.55}.vpo-candidate-list{margin-top:22px;border-top:1px solid var(--border)}.vpo-candidate{display:grid;width:100%;grid-template-columns:minmax(0,1fr) minmax(150px,.72fr);gap:clamp(20px,2vw,36px);border:0;border-bottom:1px solid var(--border);border-radius:0;padding:22px 0;color:var(--ink);background:transparent;font-family:var(--font-site-body);text-align:start;cursor:pointer}.vpo-candidate[data-selected]{box-shadow:inset 3px 0 0 var(--brand);padding-inline-start:20px}.vpo-candidate-copy{display:grid;min-width:0;gap:10px}.vpo-candidate-copy strong{color:var(--ink);font-size:var(--text-body);font-weight:650}.vpo-candidate[data-selected] .vpo-candidate-copy strong{color:var(--brand)}.vpo-candidate-copy>span:not(.vpo-contract){display:-webkit-box;color:var(--olive);font-size:var(--text-label);line-height:1.5;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:4}.vpo-contract{color:var(--stone);font-size:var(--text-caption)}.vpo-scores{min-width:0;font-size:var(--text-caption);font-variant-numeric:tabular-nums}.vpo-score-row{display:flex;justify-content:space-between;gap:16px;border-bottom:1px solid var(--border);padding:4px 0 6px}.vpo-prompt-help{margin:10px 0 0;color:var(--stone);font-size:var(--text-caption);line-height:1.5}.article-vpo-demo{--article-vpo-width: min(1480px, calc(100vw - clamp(32px, 8vw, 112px)) );width:var(--article-vpo-width);margin-block:2.8em;margin-inline:calc((100% - var(--article-vpo-width)) / 2)}.article-vpo-demo .vpo-workspace{margin-top:0}@media(hover:hover)and (pointer:fine){.vpo-candidate:hover{background:var(--surface-hover)}}@media(max-width:1240px){.vpo-workspace{grid-template-columns:minmax(250px,.72fr) minmax(0,1.28fr)}.vpo-candidate-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.vpo-candidate{display:block;padding-inline:22px}.vpo-candidate+.vpo-candidate{border-inline-start:1px solid var(--border)}.vpo-candidate[data-selected]{box-shadow:inset 0 3px 0 var(--brand);padding-inline-start:22px}.vpo-scores{margin-top:18px}}@media(max-width:760px){.vpo-page{width:calc(100% - 40px);padding-top:36px}.vpo-header{margin-top:44px}.vpo-header h1{font-size:clamp(2rem,11vw,3rem)}.vpo-header p{font-size:var(--text-body)}.vpo-workspace{display:block;margin-top:40px}.vpo-composer{padding-inline-end:0}.vpo-results{margin-top:36px;border-top:1px solid var(--border);border-inline:0;padding-inline:0}.vpo-chosen{margin-top:42px;border-top:1px solid var(--border);border-inline:0;padding-inline:0}.vpo-comparison{margin-top:42px}.vpo-candidate-list{display:block}.vpo-candidate{display:grid;grid-template-columns:1fr;padding-inline:0}.vpo-candidate+.vpo-candidate{border-inline-start:0}.vpo-candidate[data-selected]{box-shadow:inset 3px 0 0 var(--brand);padding-inline-start:18px}}@media(max-width:520px){.article-vpo-demo{width:100%;margin-inline:0}.story-demo-controls{align-items:stretch;flex-direction:column}}.article-research-findings{display:grid;gap:1em;margin:0 0 1.8em;padding-inline-start:1.25em}.article-research-findings li{padding-inline-start:.35em}.article-research-findings strong{color:var(--ink)}.soundcloud-embed{margin:2.4em 0}.soundcloud-embed iframe{display:block;border:0;border-radius:14px;background:color-mix(in srgb,var(--border) 25%,transparent)}.soundcloud-embed figcaption{margin-top:10px;color:var(--stone);font-family:var(--font-site-body);font-size:var(--text-caption);line-height:1.5;overflow-wrap:anywhere}.soundcloud-embed figcaption a{color:inherit}.article-product-figure{width:var(--article-wide-width);margin-block:2.8em;margin-inline:calc((100% - var(--article-wide-width)) / 2)}.article-product-figure a{display:inline}.article-product-figure a:focus-visible{outline:2px solid;outline-offset:4px}.article-product-figure img{display:block;width:100%;height:auto;outline:1px solid oklch(0 0 0 / .1);outline-offset:-1px}@media(prefers-color-scheme:dark){.article-product-figure img{outline-color:#ffffff1a}}.article-product-figure figcaption{margin-top:10px;color:var(--stone);font-family:var(--font-site-body);font-size:var(--text-caption);line-height:1.5}.article-table-wrap{width:var(--article-wide-width);margin-block:2.5em;margin-inline:calc((100% - var(--article-wide-width)) / 2);overflow-x:auto}.article-table-wrap:focus-visible{outline:2px solid;outline-offset:4px}.article-table-hint{display:none}.article-body table{width:100%;min-width:680px;border-collapse:collapse;color:var(--dark-warm);font-family:var(--font-site-body);font-size:var(--text-label);line-height:1.45}.article-body th,.article-body td{padding:14px 16px;border-bottom:1px solid var(--border);text-align:start;vertical-align:top}.article-body thead th{border-top:1px solid var(--border);color:var(--ink);font-weight:650}.article-body tbody th{width:22%;color:var(--ink);font-weight:600}.article-scorecard table{min-width:0;table-layout:fixed}.article-scorecard th:nth-child(1){width:23%}.article-scorecard th:nth-child(2){width:33%}.article-scorecard th:nth-child(3){width:44%}@media(max-width:600px){.article-scorecard{overflow:visible}.article-scorecard table,.article-scorecard tbody,.article-scorecard tr,.article-scorecard th,.article-scorecard td{display:block;width:100%}.article-scorecard thead{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.article-scorecard tbody{border-top:1px solid var(--border)}.article-scorecard tr{padding:18px 0;border-bottom:1px solid var(--border)}.article-scorecard th,.article-scorecard td{border:0;padding:0}.article-scorecard tbody th{margin-bottom:14px;font-size:var(--text-body)}.article-scorecard td+td{margin-top:12px}.article-scorecard td:before{display:block;margin-bottom:2px;color:var(--stone);content:attr(data-label);font-size:var(--text-caption);font-weight:600}}.article-footer{display:flex;width:min(var(--article-reading-width),100%);align-items:baseline;justify-content:space-between;gap:24px;margin:96px auto 0;border-block-start:1px solid var(--border);padding-block-start:20px;color:var(--stone);font-size:var(--text-body)}.article-footer p{margin:0;font-size:var(--text-caption)}.article-footer-link{display:inline-flex;min-height:44px;align-items:center;margin-inline-start:-10px;border-radius:999px;padding-inline:10px;font-size:var(--text-caption);transition:background-color .16s var(--ease-out),opacity .1s ease-out,transform .1s ease-out}@media(hover:hover)and (pointer:fine){.article-footer-link:hover{background:var(--surface-hover);text-decoration:none}}.article-footer-link:active{background:var(--surface-active);opacity:1;transform:scale(.96)}@media(max-width:48rem){.blog-index,.blog-post{width:calc(100% - 32px);padding-block:40px 112px}.blog-index{display:block}.editorial-nav,.site-nav{margin-block-end:48px}.blog-header{display:block}.blog-header h1{margin-block-end:24px}.post-list{margin-block-start:64px}.post-list li{margin-inline:0}.post-list a{padding-inline:12px}.article-shell{margin-block-start:64px}.article-product-figure,.article-ernie-cta,.article-table-wrap{width:100%;margin-inline:0}.article-ernie-cta{align-items:start;grid-template-columns:1fr;gap:24px}.article-ernie-cta a{width:100%;justify-content:space-between}.article-ernie-actions{width:100%}}@media(max-width:720px){.page .bio{grid-template-columns:1fr;gap:32px;margin-top:72px}.page .bio-copy p:first-child{padding-top:0}.article-table-hint{position:sticky;inset-inline-start:0;display:block;width:max-content;margin:0 0 8px;color:var(--brand);font-size:var(--text-caption);font-weight:650;letter-spacing:.01em}}@media(min-width:481px)and (max-width:900px){main{width:calc(100% - 128px);padding-top:64px}}@media(max-width:480px){.ocean-banner{height:132px}main{width:calc(100% - 48px);padding-top:32px}.site-header{margin-bottom:36px}.hero-intro p{font-size:var(--text-title)}.bio{margin-top:64px}.page{width:calc(100% - 20px);padding:28px 24px 0}.article-header h1{font-size:clamp(1.875rem,10vw,2.5rem);line-height:1.1}.article-reading-controls{grid-template-columns:1fr;gap:12px}.article-summary{padding:20px 0}.article-footer{align-items:flex-start;flex-direction:column}.page .bio{display:block}.page .bio-copy p:first-child{padding-top:20px}.writing,.work{margin-top:64px}.writing-row,.work-row{align-items:flex-start;grid-template-columns:1fr;gap:12px}.writing-row{min-height:0;margin-inline:-8px;border-radius:12px;padding:16px 8px}.writing-row-meta{width:100%;justify-content:space-between;gap:16px}.work-row{gap:4px;padding-block:10px}footer{margin-top:64px}}@media(prefers-reduced-transparency:reduce){.editorial-nav{background:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}}@media(prefers-contrast:more){.editorial-nav{border-bottom:1px solid var(--ink)}.article-decisions section,.article-body pre{box-shadow:inset 0 0 0 1px var(--ink)}}@media(prefers-reduced-motion:reduce){html[data-route-transition] .blog-post,html[data-route-transition] .page,html[data-route-transition] .blog-index{animation:none}.page>footer:before{opacity:1;transform:none;animation:none}.endless-footer{height:100vh;height:100dvh}.writing-row{transition:opacity .1s ease-out}.back-link,.contact-links a,.article-ernie-cta a,.article-footer-link,.post-list a{transition-duration:.1s;transition-property:color,background-color,box-shadow,opacity}.back-link:active,.contact-links a:active,.article-ernie-cta a:active,.article-footer-link:active,.writing-row:active,.post-list a:active{transform:none}.back-link:hover .back-link-icon,.post-list a:hover .post-list-icon{translate:none}.writing-row h3,.writing-row p,.writing-row time,.article-header h1,.article-deck,.article-dates,.post-list-title,.post-list-meta time{view-transition-name:none}::view-transition-old(root),::view-transition-new(root),::view-transition-group(article-title),::view-transition-group(article-deck),::view-transition-group(article-date){animation:none}.post-list-icon{transition:none}}.portfolio-page{width:min(1120px,calc(100% - 48px));padding-inline:44px}.portfolio-header{display:flex;align-items:center;justify-content:space-between;gap:32px}.portfolio-brand-controls{display:flex;align-items:center;gap:16px}.portfolio-header .wordmark{margin:0;font-size:var(--text-body);line-height:1}.portfolio-header .wordmark a{min-height:44px;display:inline-flex;align-items:center;color:var(--ink)}.portfolio-header .wordmark a:hover{text-decoration:none}.portfolio-nav{display:flex;flex-wrap:wrap;gap:8px 24px}.portfolio-nav a{display:inline-flex;min-height:44px;align-items:center;color:var(--stone);font-size:var(--text-label);font-weight:500}.portfolio-nav a:hover{color:var(--ink)}.portfolio-hero{display:grid;gap:clamp(18px,2vw,24px);padding-block:clamp(32px,5vw,72px) clamp(88px,12vw,152px)}.portfolio-hero>p{max-width:38ch;margin:0;color:var(--ink);font-size:clamp(1.35rem,2.8vw,1.875rem);line-height:1.32;letter-spacing:-.025em;text-wrap:balance}.portfolio-hero-copy,.portfolio-hero-signoff{display:grid}.portfolio-hero-copy>span,.portfolio-hero-signoff>span{grid-area:1 / 1;display:block}.portfolio-hero-copy>span[aria-hidden=true],.portfolio-hero-signoff>span[aria-hidden=true]{pointer-events:none;-webkit-user-select:none;user-select:none}.debug-hero-copy{font-family:var(--font-debug)}.debug-hero-word,.debug-hero-letter{display:inline-block}.debug-hero-word{white-space:pre}.debug-hero-letter{transform-origin:center bottom}.debug-hero-stagger[data-phase=enter] .debug-hero-letter{animation:debug-hero-letter-hop .32s var(--ease-out) both;animation-delay:calc(80ms + var(--debug-hero-letter-index) * 8ms)}.debug-hero-stagger[data-phase=exit] .debug-hero-letter{animation:debug-hero-letter-exit .18s var(--ease-out) both;animation-delay:calc((var(--debug-hero-letter-count) - var(--debug-hero-letter-index)) * 4ms)}@keyframes debug-hero-letter-hop{0%{opacity:0;transform:translateY(.22em) rotate(0)}48%{opacity:1;transform:translateY(-.18em) rotate(-2deg)}76%{transform:translateY(.04em) rotate(1deg)}to{opacity:1;transform:translateY(0) rotate(0)}}@keyframes debug-hero-letter-exit{0%{opacity:1;transform:translateY(0) rotate(0)}to{opacity:0;transform:translateY(-.12em) rotate(-1deg)}}.projects,.open-directory{scroll-margin-top:88px}.section-heading{display:grid;grid-template-columns:minmax(180px,.72fr) minmax(0,1.28fr);align-items:start;gap:48px}.section-heading h2,.section-heading p{margin:0}.section-heading h2{color:var(--ink);font-size:var(--text-title);font-weight:600;line-height:var(--leading-heading);letter-spacing:-.02em}.section-heading p{max-width:48ch;color:var(--olive);text-wrap:pretty}.project-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:20px;margin-top:44px}.project-card{--project-surface: color-mix(in oklch, var(--border) 54%, var(--canvas));--project-accent: var(--brand);min-width:0;overflow:hidden;border-radius:16px;background:var(--project-surface);grid-column:span 6}.project-card:first-child,.project-card:nth-child(4){grid-column:span 7}.project-card:nth-child(2),.project-card:nth-child(3){grid-column:span 5}.project-card[data-project=pai-bot]{--project-surface: oklch(.91 .045 93);--project-accent: oklch(.42 .11 76)}.project-card[data-project=garden]{--project-surface: oklch(.9 .045 139);--project-accent: oklch(.38 .1 143)}.project-card[data-project=skills]{--project-surface: oklch(.91 .043 318);--project-accent: oklch(.42 .12 315)}.project-card[data-project=ship-llm]{--project-surface: oklch(.91 .04 202);--project-accent: oklch(.4 .1 214)}.project-artwork{position:relative;min-height:clamp(210px,28vw,310px);overflow:hidden;background:color-mix(in oklch,var(--project-surface) 88%,white)}.project-artwork canvas,.project-artwork img{position:absolute;inset:0;width:100%;height:100%}.project-artwork canvas{z-index:1;display:block;opacity:0;image-rendering:pixelated;transition:opacity .18s var(--ease-out)}.project-artwork canvas[data-render-state=ready]{opacity:1}.project-artwork img{object-fit:cover;filter:grayscale(1) contrast(1.1)}.project-media-motion-control{inset-block-start:12px;inset-inline-end:12px}.project-media-motion-toggle{color:var(--project-accent);background:color-mix(in oklch,var(--project-surface) 86%,transparent)}.project-media-motion-toggle:hover{background:color-mix(in oklch,var(--project-surface) 96%,transparent)}.debug-grid-overlay{position:fixed;z-index:75;inset:0;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(8px,1.2vw,20px);padding-inline:clamp(16px,4vw,64px);background-image:repeating-linear-gradient(to bottom,color-mix(in oklch,var(--brand) 20%,transparent) 0 1px,transparent 1px 8px);pointer-events:none}.debug-grid-overlay>span{border-inline:1px solid color-mix(in oklch,var(--brand) 28%,transparent);background:color-mix(in oklch,var(--brand) 5%,transparent)}.dev-fps-counter{position:fixed;z-index:90;top:12px;right:12px;display:inline-flex;min-width:72px;min-height:28px;align-items:center;justify-content:center;gap:7px;border:1px solid var(--border-strong);border-radius:999px;padding-inline:10px;color:var(--ink);background:var(--material-nav);box-shadow:0 8px 24px var(--soft-shadow);backdrop-filter:blur(14px) saturate(130%);font-family:SFMono-Regular,Consolas,monospace;font-size:var(--text-caption);line-height:1;pointer-events:none;-webkit-backdrop-filter:blur(14px) saturate(130%)}.dev-fps-counter>span{width:6px;height:6px;border-radius:50%;background:var(--brand)}.debug-wordmark{display:inline-flex}.debug-wordmark-letter{display:inline-block;transform-origin:center bottom}.debug-wordmark[data-phase=enter] .debug-wordmark-letter{animation:debug-letter-hop .36s var(--ease-out) both;animation-delay:calc(var(--debug-letter-index) * 50ms)}.debug-wordmark[data-phase=exit] .debug-wordmark-letter{animation:debug-letter-return .4s cubic-bezier(.22,.82,.26,1.12) both;animation-delay:calc((var(--debug-letter-count) - var(--debug-letter-index) - 1) * 50ms)}@keyframes debug-letter-hop{0%{font-family:inherit;transform:translateY(0) rotate(0)}42%{font-family:inherit;transform:translateY(-.42em) rotate(-4deg)}58%,to{font-family:SFMono-Regular,Consolas,monospace}72%{transform:translateY(.08em) rotate(2deg)}to{transform:translateY(0) rotate(0)}}@keyframes debug-letter-return{0%,24%{font-family:SFMono-Regular,Consolas,monospace;transform:translateY(0) rotate(0)}46%{font-family:inherit;transform:translateY(.1em) rotate(-2deg) scaleY(.94)}68%{font-family:inherit;transform:translateY(-.3em) rotate(3deg) scaleY(1.04)}86%{font-family:inherit;transform:translateY(.06em) rotate(-1deg)}to{font-family:inherit;transform:translateY(0) rotate(0) scaleY(1)}}.debug-mode-control{position:relative;align-self:center;flex:0 0 44px;width:44px;height:44px}.debug-mode-tooltip{position:absolute;z-index:81;top:calc(100% + 4px);left:50%;padding:7px 10px;border:1px solid var(--border-strong);border-radius:8px;color:var(--ink);background:var(--material-nav);box-shadow:0 8px 24px var(--soft-shadow);font-size:var(--text-caption);line-height:1;opacity:0;pointer-events:none;transform:translate(-50%,-4px) scale(.96);transform-origin:50% 0;transition:opacity .14s var(--ease-out),transform .18s var(--ease-out),visibility 0s linear .18s;visibility:hidden;white-space:nowrap}.debug-mode-toggle:hover+.debug-mode-tooltip,.debug-mode-toggle:focus-visible+.debug-mode-tooltip{opacity:1;transform:translate(-50%) scale(1);transition-delay:0s;visibility:visible}.debug-mode-menu-motion{position:absolute;z-index:80;top:calc(100% - 9px);left:0;width:min(344px,calc(100vw - 16px));transform-origin:22px -24px}.debug-mode-menu{position:relative;display:grid;width:100%;max-height:min(76vh,640px);gap:0;overflow:auto;overscroll-behavior:contain;padding:0;scrollbar-width:none;border:1px solid color-mix(in oklab,var(--border-strong) 56%,rgb(255 255 255 / .72));border-radius:min(var(--debug-glass-radius, 24px),14px);color:var(--ink);background:linear-gradient(180deg,rgb(255 255 255 / var(--debug-glass-sheen-opacity, .18)),transparent 42%),color-mix(in oklab,color-mix(in oklab,var(--material-nav) calc(100% - var(--debug-glass-tint-mix, 50%)),var(--debug-glass-tint-color, #030507) var(--debug-glass-tint-mix, 50%)) var(--debug-glass-opacity, 90%),transparent);box-shadow:0 var(--debug-glass-shadow-y, 18px) var(--debug-glass-shadow-blur, 54px) rgb(20 19 16 / var(--debug-glass-shadow-opacity, .18)),inset 0 1px rgb(255 255 255 / var(--debug-glass-rim-opacity, .52)),inset 0 -1px #14131014;backdrop-filter:blur(var(--debug-glass-blur, 25px)) saturate(var(--debug-glass-saturation, 150%));cursor:default;font-family:var(--font-debug);font-size:var(--text-caption);line-height:1.4;transition:border-radius .16s var(--ease-out),box-shadow .16s var(--ease-out),padding .16s var(--ease-out),width .18s var(--ease-out),scale .16s var(--ease-out);-webkit-backdrop-filter:blur(var(--debug-glass-blur, 25px)) saturate(var(--debug-glass-saturation, 150%))}.debug-mode-menu::-webkit-scrollbar{display:none}.debug-mode-tabs{display:grid;min-width:0;width:100%;flex:1 1 auto;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px}.debug-mode-tabs>button{min-width:0;min-height:38px;overflow:hidden;border:0;border-radius:8px 8px 0 0;padding-inline:8px;color:var(--stone);background:transparent;font:inherit;font-weight:600;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;transition:color .14s var(--ease-out),background-color .14s var(--ease-out),box-shadow .14s var(--ease-out)}.debug-mode-tabs>button[aria-selected=true]{color:var(--ink);background:transparent;box-shadow:inset 0 -2px color-mix(in oklab,var(--ink) 72%,transparent)}.debug-mode-tabs>button:not([aria-selected=true]):hover{color:var(--ink);background:color-mix(in oklab,var(--canvas) 10%,transparent)}.debug-mode-tabs>button:focus-visible{outline:2px solid var(--ink);outline-offset:-2px}.debug-mode-tab-panel{display:grid;min-width:0;gap:10px}.debug-mode-menu>#debug-mode-menu-content{display:grid;gap:10px;padding:12px 14px 14px}.debug-mode-menu>#debug-mode-menu-content[hidden]{display:none}.debug-mode-dialkit{margin:0 -6px -6px}.debug-mode-dialkit .dialkit-root,.debug-mode-dialkit .dialkit-panel,.debug-mode-dialkit .dialkit-panel-wrapper{width:100%;max-height:none}.debug-mode-dialkit .dialkit-panel-inner{border:0;border-radius:0;padding:0;background:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}.debug-mode-menu-header{position:relative;display:flex;min-height:44px;align-items:stretch;padding:6px 8px 0 12px;border-bottom:1px solid color-mix(in oklab,var(--border-strong) 48%,transparent);color:var(--ink);cursor:grab}.debug-mode-menu[data-folded]{animation:none;width:40px;gap:0;margin-inline-start:auto;padding:0;border-radius:10px}.debug-mode-menu[data-folded] .debug-mode-menu-header{min-height:40px;align-items:center;justify-content:center;padding:3px;border-bottom:0}.debug-mode-menu[data-folded] .debug-mode-menu-fold-toggle{margin-inline-start:0;cursor:grab;touch-action:none}.debug-mode-menu-fold-toggle{display:grid;width:34px;height:34px;flex:0 0 auto;margin-inline-start:6px;place-items:center;border:0;border-radius:8px;padding:0;color:var(--stone);background:transparent;cursor:pointer;transition:color .12s var(--ease-out),background-color .12s var(--ease-out),scale .12s var(--ease-out)}.debug-mode-menu-position-reset{min-height:34px;width:100%;margin-top:4px;border:0;border-radius:6px;padding-inline:8px;color:var(--stone);background:transparent;font:inherit;font-size:var(--text-caption);cursor:pointer}.debug-mode-menu-position-reset:hover{color:var(--ink);background:color-mix(in oklab,var(--surface-hover) 64%,transparent)}.debug-mode-menu-position-reset:focus-visible{outline:2px solid var(--ink);outline-offset:-2px}.debug-mode-menu-fold-toggle:hover{color:var(--ink);background:color-mix(in oklab,var(--surface-hover) 64%,transparent)}.debug-mode-menu-fold-toggle:focus-visible{outline:2px solid var(--ink);outline-offset:-2px}.debug-mode-menu-fold-toggle:active{scale:.96}.debug-mode-menu-fold-toggle svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2;transition:transform .16s var(--ease-out)}.debug-mode-menu-fold-toggle[aria-expanded=false] svg{transform:rotate(180deg)}.debug-mode-menu.neodrag-dragging{scale:1.01}.debug-mode-menu.neodrag-dragging .debug-mode-menu-header,.debug-mode-menu[data-folded].neodrag-dragging .debug-mode-menu-fold-toggle{cursor:grabbing}.debug-mode-debugger-tab>label{display:flex;min-height:28px;align-items:center;gap:9px;margin-inline:-6px;padding-inline:6px;border-radius:8px;cursor:pointer;transition:background-color .12s var(--ease-out)}.debug-mode-debugger-tab>label:hover{background:color-mix(in oklab,var(--surface-hover) 70%,transparent)}.debug-mode-menu input{width:16px;height:16px;margin:0;accent-color:var(--brand)}.ui-select-trigger{display:inline-flex;width:100%;min-height:34px;align-items:center;justify-content:space-between;gap:8px;border:1px solid var(--border-strong);border-radius:8px;padding:0 9px;color:var(--ink);background:var(--canvas);font:inherit;cursor:pointer}.ui-select-trigger:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.ui-select-trigger:disabled{cursor:not-allowed;opacity:.55}.ui-select-icon,.ui-select-icon svg,.ui-select-item-indicator svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}.ui-select-content{z-index:100;min-width:var(--radix-select-trigger-width);overflow:hidden;border:1px solid var(--border-strong);border-radius:9px;color:var(--ink);background:var(--material-nav);box-shadow:0 14px 34px var(--soft-shadow);backdrop-filter:blur(18px) saturate(130%);-webkit-backdrop-filter:blur(18px) saturate(130%)}.ui-select-viewport{padding:4px}.ui-select-item{position:relative;display:flex;min-height:32px;align-items:center;border-radius:6px;padding:5px 28px 5px 9px;outline:none;cursor:default;-webkit-user-select:none;user-select:none}.ui-select-item[data-highlighted]{background:var(--surface-hover)}.ui-select-item-indicator{position:absolute;right:8px;display:grid;place-items:center}.debug-mode-menu small{color:var(--stone);line-height:1.35}.debug-mode-toggle{position:relative;width:44px;height:44px;padding:0;border:0;border-radius:999px;color:var(--stone);background:transparent;cursor:pointer}.debug-mode-toggle-track{position:absolute;inset:10px 0;border:1px solid var(--border-strong);border-radius:inherit;background:var(--surface-hover);transition:background-color .14s var(--ease-out)}.debug-mode-toggle-icon{position:absolute;top:2px;left:2px;display:grid;width:20px;height:20px;place-items:center;border-radius:50%;background:var(--canvas);box-shadow:0 2px 8px var(--soft-shadow);transition:transform .18s var(--ease-out)}.debug-mode-toggle svg,.canvas-debug-panel svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.6}.debug-mode-toggle[data-active]{color:var(--canvas)}.debug-mode-toggle[data-active] .debug-mode-toggle-track{background:var(--brand)}.debug-mode-toggle[data-active] .debug-mode-toggle-icon{color:var(--brand);transform:translate(20px)}.debug-mode-toggle:active .debug-mode-toggle-icon{scale:.9}.debug-mode-toggle:focus-visible{outline:2px solid var(--ink);outline-offset:4px}.canvas-debug-panel{display:grid;gap:10px;padding:14px 16px;border:1px solid var(--border-strong);border-radius:12px;color:var(--ink);background:var(--material-nav);box-shadow:0 16px 38px var(--soft-shadow);backdrop-filter:blur(18px) saturate(130%);font-size:var(--text-caption);line-height:1.4;-webkit-backdrop-filter:blur(18px) saturate(130%)}.canvas-debug-panel header{display:grid;grid-template-columns:24px minmax(0,1fr) auto 32px;align-items:center;gap:8px}.canvas-debug-panel-icon{display:grid;width:24px;height:24px;place-items:center;border-radius:7px;color:var(--brand);background:var(--surface-hover)}.canvas-debug-panel-status{color:var(--brand);font-family:SFMono-Regular,Consolas,monospace;white-space:nowrap}.canvas-debug-panel header button{display:grid;width:32px;height:32px;place-items:center;border:0;border-radius:8px;color:var(--stone);background:transparent;cursor:pointer}.canvas-debug-panel header button:hover{color:var(--ink);background:var(--surface-hover)}.canvas-debug-panel header button:active{transform:scale(.92)}.canvas-debug-panel header button:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.canvas-debug-recorder{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.8fr) 108px;align-items:end;gap:8px;padding-block:2px}.canvas-debug-recorder>button{display:inline-flex;min-height:34px;align-items:center;justify-content:center;gap:8px;border:1px solid var(--border-strong);border-radius:8px;padding-inline:10px;color:var(--ink);background:var(--canvas);font:inherit;cursor:pointer}.canvas-debug-recorder>button:disabled{cursor:not-allowed;opacity:.5}.canvas-debug-recorder>button>span{width:8px;height:8px;border-radius:50%;background:var(--brand)}.canvas-debug-recorder>button[data-recording]>span{border-radius:2px;animation:debug-recording-pulse 1s ease-in-out infinite}.canvas-debug-recorder-interval{display:grid;gap:4px;color:var(--stone)}@keyframes debug-recording-pulse{50%{opacity:.45}}.canvas-debug-panel p,.canvas-debug-panel dl,.canvas-debug-panel dt,.canvas-debug-panel dd{margin:0}.canvas-debug-panel p{color:var(--olive);text-wrap:pretty}.canvas-debug-panel dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 16px}.canvas-debug-panel dl>div{min-width:0;display:grid;grid-template-columns:6.5rem minmax(0,1fr);gap:8px}.canvas-debug-panel dt{color:var(--stone)}.canvas-debug-panel dd{overflow-wrap:anywhere;font-family:SFMono-Regular,Consolas,monospace}.project-media-diagnostics-disclosure{border-block-start:1px solid color-mix(in oklch,var(--project-accent) 18%,transparent)}.project-media-diagnostics-disclosure>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 16px;color:color-mix(in oklch,var(--project-accent) 82%,var(--ink));font-size:var(--text-caption);font-weight:650;line-height:1.4;cursor:pointer;list-style:none}.project-media-diagnostics-disclosure>summary::-webkit-details-marker{display:none}.project-media-diagnostics-disclosure>summary small{color:var(--stone);font:inherit;font-weight:450}.project-media-diagnostics-disclosure>summary svg{width:16px;height:16px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.7;transition:transform .16s var(--ease-out)}.project-media-diagnostics-disclosure[open]>summary svg{transform:rotate(180deg)}.project-media-diagnostics-disclosure>summary:focus-visible{outline:2px solid var(--project-accent);outline-offset:-3px}.project-media-diagnostics{border-inline:0;border-block-start:1px solid color-mix(in oklch,var(--project-accent) 14%,transparent);border-radius:0;background:color-mix(in oklch,var(--project-surface) 88%,var(--canvas));box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}.ocean-banner-debug,.endless-footer-debug{position:fixed;z-index:65;left:16px;width:min(430px,calc(100vw - 32px));max-height:min(42vh,360px);overflow:auto}.ocean-banner-debug{top:16px}.endless-footer-debug{bottom:16px}.project-copy{padding:26px 28px 30px}.project-copy h3,.project-copy p{margin:0}.project-copy h3{color:#1c1b13;font-size:var(--text-heading-sm);font-weight:650;line-height:1.25;letter-spacing:-.025em;text-wrap:pretty}.project-copy h3 span{color:color-mix(in oklch,var(--project-accent) 72%,oklch(.22 .015 100));font-size:var(--text-caption);font-weight:580;letter-spacing:0}.project-copy>p{max-width:48ch;margin-top:12px;color:#434031;line-height:1.52;text-wrap:pretty}.project-copy>a{min-height:44px;display:inline-flex;align-items:center;gap:8px;margin-top:18px;color:var(--project-accent);font-size:var(--text-label);font-weight:650}.project-copy>a:hover{text-decoration:none}.project-copy>a .writing-row-icon{width:16px;height:16px;color:currentColor}.project-copy>a:hover .writing-row-icon{transform:translate(2px,-2px)}.open-directory{margin-top:clamp(88px,11vw,132px)}.directory-heading{align-items:baseline}.directory-heading>a{justify-self:end;color:var(--stone);font-size:var(--text-caption);font-weight:500}.directory-list{display:grid;grid-template-columns:minmax(130px,.55fr) minmax(0,1.45fr) 11ch 18px;column-gap:24px;margin:32px 0 0;padding:0;border-top:1px solid var(--border);list-style:none}.directory-list li{display:grid;grid-column:1 / -1;grid-template-columns:subgrid;border-bottom:1px solid var(--border)}.directory-list a{display:grid;grid-column:1 / -1;grid-template-columns:subgrid;min-height:76px;align-items:center;gap:24px;margin-inline:-12px;border-radius:12px;padding:14px 12px;color:var(--ink)}.directory-list a:hover{background:var(--surface-hover);text-decoration:none}.directory-name{font-weight:620;letter-spacing:-.015em}.directory-detail{color:var(--olive);font-size:var(--text-label);text-wrap:pretty}.directory-language{justify-self:end;color:var(--stone);font-family:SFMono-Regular,Consolas,monospace;font-size:var(--text-caption);white-space:nowrap}.directory-list .writing-row-icon{width:18px;height:18px;color:var(--stone)}.directory-list a:hover .writing-row-icon{color:var(--ink);transform:translate(2px,-2px)}.portfolio-page .writing,.portfolio-page .work{margin-top:clamp(88px,11vw,132px)}.portfolio-page .bio{scroll-margin-top:88px;margin-top:clamp(88px,11vw,132px)}.portfolio-page .projects-heading,.portfolio-page .directory-heading,.portfolio-page .writing-header,.portfolio-page .bio,.portfolio-page .work-header{border-top:1px solid var(--border);padding-top:18px}@media(prefers-color-scheme:dark){.project-card[data-project=pai-bot]{--project-surface: oklch(.28 .055 85);--project-accent: oklch(.78 .12 82)}.project-card[data-project=garden]{--project-surface: oklch(.255 .05 145);--project-accent: oklch(.78 .13 143)}.project-card[data-project=skills]{--project-surface: oklch(.265 .05 318);--project-accent: oklch(.79 .12 318)}.project-card[data-project=ship-llm]{--project-surface: oklch(.25 .045 220);--project-accent: oklch(.79 .11 214)}.project-artwork{background:color-mix(in oklch,var(--project-surface) 80%,black)}.project-copy h3,.project-copy>p{color:var(--ink)}.project-copy h3 span{color:color-mix(in oklch,var(--project-accent) 72%,var(--ink))}}@media(max-width:760px){.portfolio-header{align-items:flex-start;flex-direction:column;gap:8px}.portfolio-nav{gap:4px 20px}.debug-mode-tooltip{top:50%;left:calc(100% + 8px);transform:translate(4px,-50%) scale(.96);transform-origin:0 50%}.debug-mode-toggle:hover+.debug-mode-tooltip,.debug-mode-toggle:focus-visible+.debug-mode-tooltip{transform:translateY(-50%) scale(1)}.portfolio-hero{padding-top:28px}.section-heading{grid-template-columns:1fr;gap:16px}.project-card,.project-card:first-child,.project-card:nth-child(2),.project-card:nth-child(3),.project-card:nth-child(4),.project-card:nth-child(5),.project-card:nth-child(6),.project-card:nth-child(7),.project-card:nth-child(8){grid-column:1 / -1}.project-artwork{min-height:220px}.canvas-debug-panel dl{grid-template-columns:1fr}.ocean-banner-debug,.endless-footer-debug{left:8px;width:calc(100vw - 16px);max-height:34vh}.directory-heading>a{justify-self:start}.directory-list a{grid-template-columns:minmax(0,1fr) auto 18px;gap:4px 16px}.directory-detail{grid-column:1 / -1;grid-row:2}.directory-language{grid-column:2;grid-row:1}.directory-list .writing-row-icon{grid-column:3;grid-row:1}}@media(max-width:480px){.portfolio-page{width:calc(100% - 20px);padding-inline:24px}.project-grid{gap:16px;margin-top:32px}.project-artwork{min-height:180px}.project-copy{padding:22px 22px 24px}.directory-list a{margin-inline:-8px;padding-inline:8px}.directory-language{display:none}.directory-list a{grid-template-columns:minmax(0,1fr) 18px}.directory-list .writing-row-icon{grid-column:2}}@media(prefers-reduced-motion:reduce){.project-artwork canvas,.project-copy>a .writing-row-icon,.directory-list .writing-row-icon{transition:none}.project-copy>a:hover .writing-row-icon,.directory-list a:hover .writing-row-icon{transform:none;translate:none}}@media(prefers-reduced-motion:reduce){.debug-wordmark-letter{font-family:SFMono-Regular,Consolas,monospace;animation:none}.debug-hero-letter{animation:none}.debug-mode-tooltip{transition:none}.canvas-debug-recorder>button[data-recording]>span{animation:none}.debug-mode-menu{animation:none;transition:none}.debug-mode-menu.neodrag-dragging{scale:1}}@media(prefers-reduced-transparency:reduce){.debug-mode-menu{background:var(--material-nav);box-shadow:0 14px 38px var(--soft-shadow);backdrop-filter:none;-webkit-backdrop-filter:none}}@media(prefers-contrast:more){.debug-mode-menu{border-color:var(--ink);background:var(--canvas);box-shadow:0 12px 32px var(--soft-shadow)}}
