:root{--bg:#0c0d0f;--surface:#14161a;--surface-2:#1b1e23;--text:#f3efe6;--muted:#aaa9a3;--faint:#747671;--line:color-mix(in srgb, var(--text) 15%, transparent);--work:#4b84ff;--lab:#9b6dff;--tools:#c6ff38;--writing:#ff8a3d;--about:#ff688d;--contact:#ffd84a;--accent:var(--work);--serif:Georgia, "Times New Roman", serif;--sans:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--mono:"SFMono-Regular", Consolas, "Liberation Mono", monospace;--space-1:.375rem;--space-2:.75rem;--space-3:1rem;--space-4:1.5rem;--space-5:2rem;--space-6:3rem;--space-7:5rem;--space-8:clamp(6rem, 12vw, 11rem);--content:78rem;--prose:46rem;--radius-sm:.35rem;--radius:.8rem;--shadow:0 24px 80px #00000047;--focus:0 0 0 3px var(--bg), 0 0 0 5px var(--accent);--duration:.22s;--duration-slow:.68s;--duration-cinematic:1.1s;--ease:cubic-bezier(.22, 1, .36, 1);--ease-spring:cubic-bezier(.16, 1, .3, 1)}[data-accent=work]{--accent:var(--work)}[data-accent=lab]{--accent:var(--lab)}[data-accent=tools]{--accent:var(--tools)}[data-accent=writing]{--accent:var(--writing)}[data-accent=about]{--accent:var(--about)}[data-accent=contact]{--accent:var(--contact)}
.lab-index{padding-block:var(--space-7)}.lab-card{gap:var(--space-6);padding-block:var(--space-6);border-bottom:1px solid var(--line);grid-template-columns:1.25fr .75fr;align-items:center;text-decoration:none;display:grid}.lab-card:nth-child(2n) .lab-art{order:2}.lab-art{--tilt-x:0deg;--tilt-y:0deg;--spot-x:50%;--spot-y:50%;isolation:isolate;background:var(--lab-accent);color:#0a0b0d;min-height:28rem;transform:perspective(80rem) rotateX(var(--tilt-x)) rotateY(var(--tilt-y));transform-style:preserve-3d;transition:transform .18s ease-out, box-shadow .5s var(--ease);flex-direction:column;justify-content:space-between;padding:1rem;display:flex;position:relative;overflow:hidden}.lab-art:before{content:"";z-index:-1;background:radial-gradient(circle at var(--spot-x) var(--spot-y), #fff6, transparent 32%), repeating-linear-gradient(90deg, transparent 0 3rem, #0000000a 3rem calc(3rem + 1px));opacity:.52;position:absolute;inset:0}.lab-card:hover .lab-art{box-shadow:0 2.5rem 6rem color-mix(in srgb, var(--lab-accent) 24%, transparent)}.lab-art span:first-child{font:800 clamp(5rem, 12vw, 12rem)/.72 var(--sans);letter-spacing:-.1em;transition:transform .7s var(--ease-spring), letter-spacing .7s var(--ease-spring);transform:translate(-5%)}.lab-art span:last-child{font:5rem/1 var(--serif);transition:transform .7s var(--ease-spring);align-self:flex-end}.lab-card:hover .lab-art span:first-child{letter-spacing:-.06em;transform:translate(1%)}.lab-card:hover .lab-art span:last-child{transform:rotate(8deg)scale(1.08)}.lab-card h2{font:400 clamp(3rem, 6vw, 6rem)/.9 var(--serif);margin:.5rem 0 1rem}.experiment-hero{padding-block:var(--space-7) var(--space-6)}.experiment-hero h1{font:400 clamp(4rem, 10vw, 9rem)/.86 var(--serif);margin:.7rem 0 1rem}.experiment-shell{border:1px solid var(--line);background:var(--surface)}.experiment-ui{grid-template-columns:1fr 18rem;min-height:36rem;display:grid}.experiment-controls{border-left:1px solid var(--line);flex-direction:column;justify-content:flex-end;gap:1rem;padding:1rem;display:flex}.experiment-controls label{font:.75rem var(--mono);gap:.5rem;display:grid}.type-field-stage{background:var(--lab);color:#09070c;font-family:var(--sans);flex-direction:column;justify-content:center;padding:1rem;font-size:clamp(3.5rem,10vw,10rem);line-height:.72;display:flex;overflow:hidden}.type-field-stage span:nth-child(2){font-family:var(--serif);align-self:flex-end;font-style:italic}.chromatic-stage{color:#fff;min-height:36rem;font:.75rem var(--mono);flex-direction:column;justify-content:space-between;padding:1rem;display:flex}.chromatic-stage span:last-child{font:400 clamp(3rem, 8vw, 7rem)/1 var(--serif);align-self:center;margin-block:auto}.spring-stage{flex-direction:column;justify-content:center;padding:2rem;display:flex;overflow:hidden}.spring-stage button{border:0;border-top:1px solid var(--line);color:var(--text);text-align:left;cursor:pointer;transition:color var(--duration), background .42s var(--ease), padding-inline .42s var(--ease-spring);background:0 0;grid-template-columns:3rem 1fr auto;align-items:center;padding:1.2rem 0;display:grid}.spring-stage button:hover,.spring-stage button:focus-visible{background:linear-gradient(90deg, color-mix(in srgb, var(--tools) 8%, transparent), transparent);padding-inline:.75rem}.spring-stage strong{font:400 clamp(2rem, 5vw, 4.5rem)/1 var(--serif)}.spring-stage button[aria-pressed=true] strong{color:var(--tools)}.experiment-notes{grid-template-columns:repeat(3,1fr);gap:1rem;display:grid}.experiment-notes>div{border-top:1px solid var(--line);padding:1rem}.experiment-notes code{overflow-wrap:anywhere}.writing-controls{margin-bottom:var(--space-6);grid-template-columns:1fr 11rem 11rem auto auto;align-items:end;gap:1rem;display:grid}.writing-list{border-top:1px solid var(--line)}.writing-list article>a{border-bottom:1px solid var(--line);transition:padding-inline .42s var(--ease-spring), background .42s var(--ease);grid-template-columns:3rem 1fr auto;gap:1rem;padding:1.7rem 0;text-decoration:none;display:grid}.writing-list article>a:hover,.writing-list article>a:focus-visible{background:linear-gradient(90deg, color-mix(in srgb, var(--accent) 7%, transparent), transparent);padding-inline:.8rem}.writing-list article>a>span:last-child{transition:transform .42s var(--ease-spring)}.writing-list article>a:hover>span:last-child{transform:translate(.25rem,-.25rem)}.writing-list h2{font:400 clamp(2rem, 4vw, 4.3rem)/.95 var(--serif);margin:.4rem 0}.writing-list p{color:var(--muted)}.writing-hero{padding-block:var(--space-7)}.writing-hero h1{max-width:16ch;font:400 clamp(3.8rem, 9vw, 8rem)/.88 var(--serif);letter-spacing:-.05em;margin:.7rem 0 1rem}.writing-layout{gap:var(--space-7);grid-template-columns:15rem minmax(0,1fr);align-items:start;display:grid}.writing-layout aside{border-top:1px solid var(--line);padding-top:1rem;position:sticky;top:7rem}.writing-prose{padding-bottom:var(--space-8)}.loading-shell{text-align:center;place-content:center;min-height:70vh;display:grid}.loading-mark{border:1px solid var(--line);border-top-color:var(--accent);border-radius:50%;width:4rem;height:4rem;margin-inline:auto;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width:760px){.lab-card,.experiment-ui,.writing-layout{grid-template-columns:1fr}.lab-card:nth-child(2n) .lab-art{order:0}.lab-art{min-height:22rem}.experiment-controls{border-left:0;border-top:1px solid var(--line)}.experiment-notes,.writing-controls{grid-template-columns:1fr 1fr}.writing-controls .field:first-child{grid-column:1/-1}.writing-layout aside{position:static}}@media (max-width:420px){.experiment-notes,.writing-controls{grid-template-columns:1fr}.writing-controls .field:first-child{grid-column:auto}}
*,:before,:after{box-sizing:border-box}html{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;scroll-behavior:smooth}body{isolation:isolate;background:var(--bg);color:var(--text);font-family:var(--sans);margin:0;font-size:1rem;line-height:1.65}.scroll-progress{z-index:120;background:var(--accent);height:2px;box-shadow:0 0 1.25rem color-mix(in srgb, var(--accent) 68%, transparent);transform-origin:0;pointer-events:none;position:fixed;inset:0 0 auto}.ambient-cursor{z-index:-1;aspect-ratio:1;opacity:0;pointer-events:none;background:radial-gradient(circle, color-mix(in srgb, var(--accent) 11%, transparent), transparent 68%);width:26rem;transition:opacity .5s var(--ease);border-radius:50%;position:fixed;top:0;left:0;translate:-50% -50%}.ambient-cursor.is-active{opacity:1}.motion-ready main>[data-accent]{animation:route-enter var(--duration-cinematic) var(--ease-spring) both}.motion-ready .motion-reveal{opacity:0;filter:blur(8px);transition:opacity var(--duration-slow) var(--ease-spring), filter var(--duration-slow) var(--ease-spring), transform var(--duration-cinematic) var(--ease-spring);transition-delay:var(--reveal-delay,0s);transform:translateY(2.5rem)scale(.985)}.motion-ready .motion-reveal.is-visible{opacity:1;filter:blur();transform:translate(0,0)scale(1)}@keyframes route-enter{0%{opacity:0;transform:translateY(1.2rem)}to{opacity:1;transform:translate(0,0)}}body:before{content:"";pointer-events:none;z-index:-2;background:radial-gradient(circle at 80% 5%, color-mix(in srgb, var(--accent) 10%, transparent), transparent 30rem), linear-gradient(90deg, transparent 49.95%, #ffffff05 50%, transparent 50.05%);background-size:auto,10rem 100%;position:fixed;inset:0}::selection{background:var(--accent);color:#08090a}a{color:inherit;text-underline-offset:.18em;text-decoration-thickness:.08em}a:hover{color:var(--accent)}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}:focus-visible{box-shadow:var(--focus);border-radius:var(--radius-sm);outline:none}img,svg{max-width:100%}main{min-height:70vh}h1,h2,h3,p{margin-top:0}h1,h2,h3{text-wrap:balance}p{text-wrap:pretty}.container{width:min(calc(100% - 2rem), var(--content));margin-inline:auto}.prose{width:min(100%, var(--prose))}.prose h2{font:500 clamp(2rem, 4vw, 3.4rem)/1.05 var(--serif);margin-top:3.5rem}.prose h3{margin-top:2.5rem;font-size:1.15rem}.prose p,.prose li{color:#d2d0c9}.prose pre{border:1px solid var(--line);border-radius:var(--radius);background:#090a0c;padding:1.25rem;overflow-x:auto}.prose code:not(pre code){font:.9em var(--mono);background:var(--surface-2);border-radius:.2rem;padding:.15rem .3rem}.page-shell{padding-block:var(--space-7) var(--space-8)}.page-intro{gap:var(--space-6);padding-block:var(--space-7);border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1.7fr) minmax(15rem,.7fr);align-items:end;display:grid}.eyebrow{color:var(--accent);font:600 .72rem/1.2 var(--mono);letter-spacing:.12em;text-transform:uppercase}.display{max-width:15ch;font:400 clamp(3.25rem, 8vw, 8.7rem)/.88 var(--serif);letter-spacing:-.055em;margin:.5rem 0 1rem}.lede{color:#d0cec6;max-width:48rem;font-size:clamp(1.05rem,2vw,1.35rem)}.section{padding-block:var(--space-8);border-top:1px solid var(--line)}.section-heading{gap:var(--space-5);margin-bottom:var(--space-6);grid-template-columns:minmax(10rem,.65fr) minmax(0,2fr);display:grid}.section-heading h2{max-width:15ch;font:400 clamp(2.7rem, 6vw, 6.2rem)/.95 var(--serif);letter-spacing:-.04em;margin:0}.meta{font:.72rem/1.5 var(--mono);color:var(--muted);letter-spacing:.07em;text-transform:uppercase}.muted{color:var(--muted)}.button-row{flex-wrap:wrap;gap:.75rem;margin-top:2rem;display:flex}.button{isolation:isolate;border:1px solid var(--accent);background:var(--accent);color:#08090a;border-radius:var(--radius-sm);cursor:pointer;min-height:3rem;transition:transform var(--duration) var(--ease), background var(--duration), box-shadow var(--duration), border-color var(--duration);justify-content:center;align-items:center;gap:.6rem;padding:.65rem 1rem;font-weight:700;text-decoration:none;display:inline-flex;position:relative;overflow:hidden}.button:before{content:"";z-index:-1;transition:transform .7s var(--ease-spring);background:linear-gradient(105deg,#0000 22%,#ffffff6b,#0000 68%);position:absolute;inset:-2px;transform:translate(-125%)skew(-12deg)}.button:hover:before,.button:focus-visible:before{transform:translate(125%)skew(-12deg)}.button:hover{color:#08090a;box-shadow:0 .8rem 2.4rem color-mix(in srgb, var(--accent) 17%, transparent);transform:translateY(-2px)}.button.secondary{color:var(--text);border-color:var(--line);background:0 0}.button.secondary:hover{color:var(--accent);border-color:var(--accent)}.button.secondary:before{background:linear-gradient(105deg, transparent 20%, color-mix(in srgb, var(--accent) 22%, transparent), transparent 70%)}.tag-list{flex-wrap:wrap;gap:.45rem;padding:0;list-style:none;display:flex}.tag{border:1px solid var(--line);color:var(--muted);font:.72rem var(--mono);border-radius:999px;padding:.28rem .5rem}.status{font:.75rem var(--mono);color:var(--muted);align-items:center;gap:.55rem;display:inline-flex}.status:before{content:"";background:var(--accent);width:.55rem;height:.55rem;box-shadow:0 0 0 .22rem color-mix(in srgb, var(--accent) 18%, transparent);animation:status-pulse 2.8s var(--ease) infinite;border-radius:50%}@keyframes status-pulse{50%{box-shadow:0 0 0 .45rem color-mix(in srgb, var(--accent) 4%, transparent);transform:scale(.82)}}.grid-2{gap:var(--space-5);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.grid-3{gap:var(--space-5);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.rule-list{margin:0;padding:0;list-style:none}.rule-list>li{border-top:1px solid var(--line);padding:1rem 0}.field{gap:.45rem;display:grid}.field label,.field-label{font-weight:700}.field small{color:var(--muted)}.input,.textarea,.select{width:100%;color:var(--text);border:1px solid var(--line);border-radius:var(--radius-sm);transition:border-color var(--duration), background var(--duration), box-shadow var(--duration), transform var(--duration) var(--ease);background:#0a0b0d;padding:.8rem .9rem}.textarea{resize:vertical;min-height:12rem;font:.9rem/1.55 var(--mono)}.input:focus,.textarea:focus,.select:focus{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 4%, #0a0b0d);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 10%, transparent);outline:none}.notice{border-left:3px solid var(--accent);background:color-mix(in srgb, var(--accent) 7%, var(--surface));color:#d8d6cf;padding:1rem}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:100;background:var(--text);color:var(--bg);padding:.7rem 1rem;position:fixed;top:.5rem;left:.5rem;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}@media (max-width:760px){.container{width:min(calc(100% - 1.25rem), var(--content))}.page-intro,.section-heading,.grid-2,.grid-3{grid-template-columns:1fr}.page-intro{padding-top:4rem}.section{padding-block:5rem}.display{font-size:clamp(3rem,16vw,5rem)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.scroll-progress,.ambient-cursor{display:none}.motion-reveal,.motion-reveal.is-visible{opacity:1!important;filter:none!important;transform:none!important}}@media print{body{color:#000;background:#fff;font-size:10.5pt}header,footer,.no-print,.button-row{display:none!important}main{min-height:auto}a{color:#000;text-decoration:none}.section{break-inside:avoid;padding-block:1rem}.container{width:100%}}
.site-header{z-index:50;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);transition:background .42s var(--ease), border-color .42s var(--ease), box-shadow .42s var(--ease);background:#0c0d0fe0;position:sticky;top:0}.site-header.is-scrolled{border-color:color-mix(in srgb, var(--accent) 24%, var(--line));background:#0c0d0ff2;box-shadow:0 1rem 3rem #0000002e}.header-inner{justify-content:space-between;align-items:center;gap:2rem;min-height:4.8rem;display:flex}.wordmark{font:700 .85rem/.9 var(--sans);text-transform:uppercase;letter-spacing:-.02em;text-decoration:none;display:grid}.wordmark span:last-child{color:var(--accent)}.wordmark span{transition:transform .42s var(--ease-spring), letter-spacing .42s var(--ease-spring)}.wordmark:hover span:first-child,.wordmark:focus-visible span:first-child{letter-spacing:.03em;transform:translate(-.16rem)}.wordmark:hover span:last-child,.wordmark:focus-visible span:last-child{letter-spacing:.03em;transform:translate(.16rem)}.desktop-nav{align-items:center;gap:clamp(1rem,2.3vw,2.25rem);display:flex}.desktop-nav a{font-size:.86rem;text-decoration:none;position:relative}.desktop-nav a:after{content:"";background:var(--accent);transform-origin:100%;height:1px;transition:transform .42s var(--ease-spring);position:absolute;inset:auto 0 -.4rem;transform:scaleX(0)}.desktop-nav a:hover:after,.desktop-nav a:focus-visible:after{transform-origin:0;transform:scaleX(1)}.desktop-nav .contact-link{border:1px solid var(--contact);color:var(--contact);padding:.45rem .7rem}.mobile-nav{display:none}.site-footer{padding-block:var(--space-7);border-top:1px solid var(--line)}.footer-grid{gap:var(--space-5);grid-template-columns:1.6fr repeat(3,1fr);display:grid}.footer-grid>div:not(:first-child){flex-direction:column;align-items:flex-start;gap:.5rem;display:flex}.footer-mark{font:400 3.5rem/1 var(--serif);margin:0}.footer-mark span{color:var(--accent)}.contact-cta h2{max-width:19ch;font:400 clamp(3rem, 7vw, 7rem)/.94 var(--serif);letter-spacing:-.045em;margin:1rem 0 0}.project-visual{--tilt-x:0deg;--tilt-y:0deg;--spot-x:50%;--spot-y:50%;isolation:isolate;border:1px solid var(--line);background:color-mix(in srgb, var(--accent) 10%, var(--surface));min-height:28rem;box-shadow:var(--shadow);transform:perspective(80rem) rotateX(var(--tilt-x)) rotateY(var(--tilt-y));transform-style:preserve-3d;transition:transform .18s ease-out, border-color .5s var(--ease), box-shadow .5s var(--ease);grid-template-rows:auto 1fr auto;padding:1rem;display:grid;position:relative;overflow:hidden}.project-visual:before{content:"";z-index:-1;opacity:0;background:radial-gradient(circle at var(--spot-x) var(--spot-y), color-mix(in srgb, var(--accent) 24%, transparent), transparent 34%);transition:opacity .5s var(--ease);position:absolute;inset:0}.project-visual:hover{border-color:color-mix(in srgb, var(--accent) 58%, var(--line));box-shadow:var(--shadow), 0 0 4rem color-mix(in srgb, var(--accent) 11%, transparent)}.project-visual:hover:before{opacity:1}.visual-top{font:.68rem var(--mono);text-transform:uppercase;color:var(--muted);justify-content:space-between;display:flex}.visual-stage{min-height:20rem;position:relative}.visual-orbit{aspect-ratio:1;border:1px solid color-mix(in srgb, var(--accent) 70%, transparent);width:min(20rem,55%);box-shadow:0 0 5rem color-mix(in srgb, var(--accent) 18%, transparent);border-radius:50%;animation:16s linear infinite visual-orbit;position:absolute;top:8%;right:10%}.visual-orbit:before,.visual-orbit:after{content:"";border:inherit;border-radius:inherit;position:absolute;inset:20%}.visual-orbit:after{background:var(--accent);animation:visual-signal 3.6s var(--ease) infinite;inset:40%}.visual-block{background:var(--text);mix-blend-mode:difference;display:block;position:absolute}.block-a{width:22%;height:44%;animation:block-drift 6s var(--ease) infinite alternate;bottom:8%;left:8%}.block-b{background:var(--accent);width:14%;height:26%;animation:block-drift 4.8s .6s var(--ease) infinite alternate-reverse;bottom:8%;left:34%}.visual-line{background:var(--accent);transform-origin:50%;height:1px;animation:visual-line 5s var(--ease) infinite alternate;position:absolute;top:52%;left:8%;right:8%;transform:rotate(-8deg)}.project-visual p{font:.67rem var(--mono);color:var(--muted);margin:0}.home-hero{gap:var(--space-6);min-height:calc(100svh - 4.8rem);padding-block:var(--space-7);grid-template-columns:minmax(0,1.65fr) minmax(18rem,.75fr);align-items:center;display:grid}.hero-copy h1{max-width:14ch;font:400 clamp(3.7rem, 7.5vw, 8.5rem)/.88 var(--serif);letter-spacing:-.055em;margin:.6rem 0 1.5rem}.hero-copy .status{margin-top:2rem}.hero-instrument{--tilt-x:0deg;--tilt-y:0deg;--spot-x:50%;--spot-y:50%;isolation:isolate;border:1px solid var(--line);background:linear-gradient(145deg, color-mix(in srgb, var(--work) 13%, var(--surface)), var(--surface));min-height:34rem;transform:perspective(80rem) rotateX(var(--tilt-x)) rotateY(var(--tilt-y));transition:transform .18s ease-out, border-color .5s var(--ease), box-shadow .5s var(--ease);grid-template-rows:auto 1fr auto;padding:1rem;display:grid;position:relative;overflow:hidden}.hero-instrument:before{content:"";z-index:-1;background:radial-gradient(circle at var(--spot-x) var(--spot-y), color-mix(in srgb, var(--work) 24%, transparent), transparent 30%), linear-gradient(105deg, transparent 35%, #ffffff09, transparent 65%);background-size:auto,220% 100%;animation:8s linear infinite instrument-scan;position:absolute;inset:0}.hero-instrument:hover{border-color:color-mix(in srgb, var(--work) 60%, var(--line));box-shadow:0 2.5rem 7rem color-mix(in srgb, var(--work) 12%, transparent)}.instrument-label{font:.7rem var(--mono);color:var(--muted);text-transform:uppercase;justify-content:space-between;display:flex}.instrument-core{aspect-ratio:1;border:1px solid var(--work);border-radius:50%;align-self:center;place-items:center;animation:9s ease-in-out infinite alternate drift;display:grid;position:relative}.instrument-core:before,.instrument-core:after{content:"";border:1px solid #ffffff4d;position:absolute;inset:21%;transform:rotate(45deg)}.instrument-core:before{animation:8s linear infinite core-square}.instrument-core:after{background:var(--work);animation:core-pulse 3.4s var(--ease) infinite;border:0;inset:39%}.instrument-core span{background:var(--surface);font:.66rem var(--mono);padding:.15rem .3rem;position:absolute}.instrument-core span:first-child{top:5%}.instrument-core span:nth-child(2){right:-1rem}.instrument-core span:nth-child(3){bottom:5%}.instrument-core span:nth-child(4){left:-1rem}.hero-instrument>p{color:var(--muted);margin:0;font-size:.82rem}@keyframes drift{to{transform:rotate(7deg)scale(.96)}}@keyframes core-square{to{transform:rotate(405deg)}}@keyframes core-pulse{50%{box-shadow:0 0 3rem color-mix(in srgb, var(--work) 45%, transparent);inset:36%;transform:rotate(90deg)}}@keyframes instrument-scan{to{background-position:0 0,-220% 0}}@keyframes visual-orbit{to{transform:rotate(360deg)}}@keyframes visual-signal{50%{box-shadow:0 0 2.5rem color-mix(in srgb, var(--accent) 60%, transparent);border-radius:30%;inset:34%}}@keyframes block-drift{to{translate:0 -8%;scale:.92 1.08}}@keyframes visual-line{to{opacity:.45;transform:rotate(8deg)scaleX(.8)}}.credibility{border-block:1px solid var(--line);background:var(--text);color:var(--bg);padding-block:1.5rem}.credibility p{font:400 clamp(1.35rem, 2.7vw, 2.6rem)/1.2 var(--serif);margin:0}.featured-project{gap:var(--space-6);grid-template-columns:.8fr 1.35fr;align-items:center;display:grid}.featured-copy h3{font:400 clamp(3rem, 6vw, 6.5rem)/.9 var(--serif);margin:.6rem 0 1rem}.text-arrow{-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);transition:color var(--duration), transform .42s var(--ease-spring), text-decoration-color var(--duration);margin-top:1rem;font-weight:700;display:inline-block}.text-arrow:hover,.text-arrow:focus-visible{transform:translate(.35rem)}.project-strips{margin-top:var(--space-7);border-bottom:1px solid var(--line)}.project-strips>a{border-top:1px solid var(--line);transition:padding-inline .42s var(--ease-spring), background .42s var(--ease);grid-template-columns:3rem 1fr auto;align-items:start;gap:1rem;padding:1.2rem 0;text-decoration:none;display:grid;position:relative}.project-strips>a:hover,.project-strips>a:focus-visible{background:linear-gradient(90deg, color-mix(in srgb, var(--accent) 8%, transparent), transparent);padding-inline:.75rem}.project-strips strong,.project-strips small{display:block}.project-strips small{color:var(--muted);margin-top:.25rem}.capability-list{border-top:1px solid var(--line);grid-template-columns:repeat(2,1fr);margin:0;padding:0;list-style:none;display:grid}.capability-list li{border-bottom:1px solid var(--line);transition:background .42s var(--ease), padding-inline .42s var(--ease-spring);grid-template-columns:3rem 1fr 1.3fr;gap:1rem;padding:1.6rem 0;display:grid}.capability-list li:hover{background:linear-gradient(90deg, color-mix(in srgb, var(--accent) 6%, transparent), transparent)}.capability-list li:nth-child(odd){border-right:1px solid var(--line);padding-right:2rem}.capability-list li:nth-child(2n){padding-left:2rem}.capability-list h3{margin:0;font-size:1.1rem}.capability-list p{color:var(--muted);margin:0}.experience-band h2,.about-opening h2,.now-preview h2{font:400 clamp(3rem, 6vw, 6rem)/.95 var(--serif);letter-spacing:-.04em}.experiment-preview{gap:var(--space-6);grid-template-columns:1.5fr .65fr;align-items:center;display:grid}.type-preview{background:var(--lab);color:#0a0810;flex-direction:column;justify-content:center;min-height:30rem;padding:1rem;text-decoration:none;display:flex;overflow:hidden}.type-preview span{font:800 clamp(4rem, 10vw, 10rem)/.7 var(--sans);letter-spacing:-.09em;transition:transform .4s var(--ease);animation:type-breathe 7s var(--ease) infinite alternate}.type-preview span:nth-child(2){font-family:var(--serif);align-self:flex-end;font-style:italic;animation-delay:-2.2s}.type-preview:hover span:nth-child(odd){transform:translate(3%)}@keyframes type-breathe{to{letter-spacing:-.055em;transform:translate(1.5%)}}.tool-lines{border-top:1px solid var(--line)}.tool-lines a{border-bottom:1px solid var(--line);transition:padding-inline .42s var(--ease-spring), background .42s var(--ease), color var(--duration);grid-template-columns:3rem .7fr 1fr auto;align-items:baseline;gap:1rem;padding:1.6rem 0;text-decoration:none;display:grid;position:relative}.tool-lines a:hover,.tool-lines a:focus-visible{background:linear-gradient(90deg, color-mix(in srgb, var(--accent) 8%, transparent), transparent);padding-inline:.75rem}.tool-lines a>span:last-child{transition:transform .42s var(--ease-spring)}.tool-lines a:hover>span:last-child,.tool-lines a:focus-visible>span:last-child{transform:translate(.25rem,-.25rem)}.tool-lines h3,.tool-lines p{margin:0}.tool-lines h3{font:400 1.7rem var(--serif)}.tool-lines p{color:var(--muted)}.work-index{padding-block:var(--space-7)}.work-row{gap:var(--space-5);padding-block:var(--space-6);border-bottom:1px solid var(--line);transition:border-color .5s var(--ease);grid-template-columns:minmax(0,1fr) minmax(20rem,.65fr);display:grid}.work-row:hover{border-color:color-mix(in srgb, var(--accent) 55%, var(--line))}.work-row-copy h2{transition:color .35s var(--ease), transform .5s var(--ease-spring)}.work-row:hover .work-row-copy h2{color:var(--accent);transform:translate(.4rem)}.work-row-copy{grid-template-columns:3rem 1fr auto;gap:1.5rem;text-decoration:none;display:grid}.work-row h2{font:400 clamp(2.7rem, 5vw, 5.5rem)/.95 var(--serif);margin:.5rem 0 1rem}.work-row-end{flex-direction:column;justify-content:space-between;align-items:flex-end;display:flex}.work-row .project-visual{min-height:21rem}.work-row .visual-stage{min-height:14rem}.breadcrumbs{color:var(--muted);font:.75rem var(--mono);flex-wrap:wrap;gap:.55rem;margin-bottom:4rem;display:flex}.project-hero{padding-block:var(--space-7) var(--space-6)}.project-hero h1{max-width:15ch;font:400 clamp(4rem, 10vw, 10rem)/.86 var(--serif);letter-spacing:-.06em;margin:.6rem 0 1rem}.project-meta{grid-template-columns:repeat(4,1fr);gap:1rem;padding-top:3rem;display:grid}.project-meta>div{border-top:1px solid var(--line);gap:.4rem;padding-top:1rem;display:grid}.project-meta strong{font-size:.85rem}.disclosure{margin:1rem 0 var(--space-7)}.case-layout{gap:var(--space-7);grid-template-columns:15rem minmax(0,1fr);align-items:start;display:grid}.case-layout aside{gap:.5rem;display:grid;position:sticky;top:7rem}.case-layout aside a{color:var(--muted)}.case-prose{padding-bottom:var(--space-8)}.project-pagination{border-top:1px solid var(--line);padding-block:2rem var(--space-7);grid-template-columns:1fr 1fr;gap:1rem;display:grid}.project-pagination>div:last-child{text-align:right}.project-pagination a{font:400 1.5rem var(--serif);flex-direction:column;display:inline-flex}.about-opening{align-items:start}.about-opening h2{margin:0}.timeline{margin:0;padding:0;list-style:none}.timeline>li{gap:var(--space-6);border-top:1px solid var(--line);grid-template-columns:.65fr 1.8fr;padding:2.5rem 0;display:grid}.timeline-date{align-items:flex-start;gap:1rem;display:flex}.timeline h3{font:400 clamp(2rem, 4vw, 3.5rem)/1 var(--serif)}.timeline li li{color:var(--muted)}.strength-groups>div{border-top:1px solid var(--line);grid-template-columns:14rem 1fr;gap:2rem;padding:2rem 0;display:grid}.strength-groups h3{font:400 clamp(1.7rem, 3.4vw, 3.2rem)/1.2 var(--serif);margin:0}.beliefs{grid-template-columns:repeat(3,1fr);margin:0;padding:0;list-style:none;display:grid}.beliefs li{border-top:1px solid var(--line);border-right:1px solid var(--line);min-height:15rem;padding:1rem}.beliefs p{font:400 1.55rem/1.2 var(--serif);margin-top:2.5rem}.now-list article{gap:var(--space-5);border-top:1px solid var(--line);grid-template-columns:.55fr 2fr;padding:2rem 0;display:grid}.now-list h2{max-width:27ch;font:400 clamp(2rem, 4.5vw, 4.5rem)/1 var(--serif);margin:0}.resume-actions{padding-top:2rem}.resume{padding-block:var(--space-6) var(--space-8)}.resume>section{border-top:1px solid var(--line);padding-block:2rem}.resume h2{font:400 2.5rem var(--serif)}.resume-role{border-top:1px solid var(--line);grid-template-columns:.8fr 1fr 1fr;gap:2rem;padding:1.5rem 0;display:grid}.resume-role h3{margin:0}.contact-layout{gap:var(--space-7);grid-template-columns:.7fr 1.5fr;display:grid}.contact-email{font:400 clamp(1.4rem, 3vw, 2.7rem) var(--serif);margin:1rem 0 2rem;display:inline-block}.contact-form{grid-template-columns:1fr 1fr;gap:1.5rem;display:grid}.field-wide,.form-error{grid-column:1/-1}.honeypot{position:absolute;left:-9999px}.not-found{flex-direction:column;justify-content:center;min-height:75vh;display:flex}.not-found h1{max-width:15ch;font:400 clamp(4rem, 10vw, 9rem)/.88 var(--serif);margin:.7rem 0 1rem}.tools-directory{gap:var(--space-7);grid-template-columns:18rem 1fr;align-items:start;display:grid}.directory-controls{gap:1.4rem;display:grid;position:sticky;top:7rem}.directory-controls fieldset{border:0;margin:0;padding:0}.filter-row{flex-wrap:wrap;gap:.4rem;margin-top:.7rem;display:flex}.filter-row button,.segmented button{border:1px solid var(--line);color:var(--muted);cursor:pointer;transition:color var(--duration), background var(--duration), border-color var(--duration), transform .35s var(--ease-spring);background:0 0;padding:.45rem .65rem}.filter-row button:hover,.segmented button:hover{color:var(--text);border-color:var(--accent);transform:translateY(-2px)}.filter-row button[aria-pressed=true],.segmented button[aria-pressed=true]{background:var(--accent);color:#08090a;border-color:var(--accent)}.directory-summary{justify-content:space-between;align-items:center;gap:1rem;display:flex}.tool-directory-list{border-top:1px solid var(--line)}.tool-directory-list>a{border-bottom:1px solid var(--line);transition:padding-inline .42s var(--ease-spring), background .42s var(--ease);grid-template-columns:3rem 1fr auto;gap:1rem;padding:1.5rem 0;text-decoration:none;display:grid}.tool-directory-list>a:hover,.tool-directory-list>a:focus-visible{background:linear-gradient(90deg, color-mix(in srgb, var(--accent) 7%, transparent), transparent);padding-inline:.8rem}.tool-directory-list>a>span:last-child{transition:transform .42s var(--ease-spring)}.tool-directory-list>a:hover>span:last-child{transform:translate(.25rem,-.25rem)}.tool-directory-list h2{font:400 clamp(1.8rem, 3vw, 3rem)/1 var(--serif);margin:.25rem 0 .4rem}.tool-directory-list p{color:var(--muted);margin:0}.empty-state{padding:var(--space-6);border:1px solid var(--line)}.empty-state h2{font:400 3rem/1 var(--serif)}.tool-hero{padding-block:var(--space-7) var(--space-6)}.tool-hero h1{max-width:14ch;font:400 clamp(4rem, 10vw, 9rem)/.86 var(--serif);letter-spacing:-.055em;margin:.7rem 0 1rem}.tool-hero .status{margin-top:1.5rem}.workbench{padding:var(--space-5);border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);transition:border-color .5s var(--ease), box-shadow .5s var(--ease)}.workbench:focus-within{border-color:color-mix(in srgb, var(--accent) 45%, var(--line));box-shadow:var(--shadow), 0 0 5rem color-mix(in srgb, var(--accent) 7%, transparent)}.tool-stack{gap:1.25rem;display:grid}.tool-grid{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.tool-editor{min-height:18rem}.field label small,.field-label small{color:var(--muted);margin-left:.5rem;font-weight:400}.tool-actions,.tool-options{flex-wrap:wrap;align-items:center;gap:.7rem;display:flex}.tool-options{justify-content:space-between}.tool-options label{align-items:center;gap:.6rem;display:flex}.compact{width:auto;min-width:5rem}.tool-feedback:empty{display:none}.tool-error,.tool-success{background:#ff6c6c14;border-left:3px solid #ff6c6c;margin:0;padding:.7rem 1rem}.tool-success{border-color:var(--tools);background:#c6ff3812}.tree-output{border:1px solid var(--line);min-height:18rem;max-height:32rem;font:.82rem/1.7 var(--mono);background:#0a0b0d;padding:1rem;overflow:auto}.json-node>div{padding-left:1.2rem}.json-node summary{cursor:pointer}.json-leaf{padding-left:1.2rem}.json-leaf span{color:var(--muted)}.regex-row{grid-template-columns:1fr 8rem;gap:1rem;display:grid}.code-input{font-family:var(--mono)}.match-preview{border:1px solid var(--line);white-space:pre-wrap;overflow-wrap:anywhere;min-height:6rem;font-family:var(--mono);background:#0a0b0d;padding:1rem}.match-preview mark{color:#08090a;background:var(--tools)}.match-list{margin:0;padding:0;list-style:none}.match-list li{border-top:1px solid var(--line);grid-template-columns:1fr .6fr 1fr;gap:1rem;padding:.7rem 0;display:grid}.match-list span{color:var(--muted)}.color-controls{grid-template-columns:8rem 1fr 1fr;align-items:end;gap:1rem;display:grid}.color-picker{border:1px solid var(--line);background:0 0;width:100%;height:3rem;padding:0}.color-preview{color:#fff;text-shadow:0 1px 4px #000;align-items:flex-end;min-height:14rem;padding:1rem;display:flex}.color-values,.value-list{border-top:1px solid var(--line);display:grid}.color-values button,.value-list button{text-align:left;color:var(--text);border:0;border-bottom:1px solid var(--line);cursor:pointer;background:0 0;grid-template-columns:1fr auto;gap:1rem;padding:.85rem 0;display:grid}.value-list button{grid-template-columns:8rem 1fr auto}.contrast-grid{grid-template-columns:1fr 1fr;display:grid}.contrast-grid div{align-items:end;min-height:6rem;padding:1rem;display:flex}.color-scale{grid-template-columns:repeat(6,1fr);display:grid}.color-scale span{color:#fff;min-height:6rem;font:.65rem var(--mono);padding:.4rem}.jwt-grid{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.jwt-grid section{border:1px solid var(--line);min-width:0;padding:1rem}.jwt-grid pre{color:#d8d6cf;overflow:auto}.segmented{display:inline-flex}.side-diff{background:var(--line);grid-template-columns:1fr 1fr;gap:1px;display:grid}.side-diff pre,.diff-output{white-space:pre-wrap;background:#0a0b0d;min-height:14rem;margin:0;padding:1rem;overflow:auto}.diff-output{display:grid}.diff-output span{padding-inline:.3rem}.diff-output b{width:1rem;display:inline-block}.diff-added{background:#c6ff3817}.diff-removed{background:#ff6c6c1a}.diff-unchanged{color:var(--muted)}.result-hero{text-align:center;border:1px solid var(--line);background:#0a0b0d;place-content:center;min-height:10rem;padding:1rem;display:grid}.result-hero code{color:var(--accent);overflow-wrap:anywhere;font-size:clamp(1.2rem,3vw,2.2rem)}.uuid-list{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.uuid-list li{border-bottom:1px solid var(--line);grid-template-columns:1fr auto;gap:1rem;padding:.65rem 0;display:grid}.uuid-list button{color:var(--accent);cursor:pointer;background:0 0;border:0}.markdown-workspace{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.markdown-workspace.mode-editor,.markdown-workspace.mode-preview{grid-template-columns:1fr}.markdown-preview{border:1px solid var(--line);background:#0a0b0d;max-width:none;min-height:18rem;padding:1rem;overflow:auto}.tool-copy{gap:var(--space-6);grid-template-columns:repeat(2,1fr);display:grid}.tool-copy h2{font:400 3rem/1 var(--serif)}.related-links{grid-template-columns:repeat(3,1fr);gap:1rem;display:grid}.related-links a{border-top:1px solid var(--line);flex-direction:column;gap:.5rem;padding:1rem;text-decoration:none;display:flex}.related-links span{color:var(--muted)}@media (max-width:760px){.desktop-nav{display:none}.mobile-nav{display:block}.menu-trigger{min-width:5.4rem;min-height:2.8rem;color:var(--text);border:1px solid var(--line);background:0 0;justify-content:space-between;align-items:center;gap:.8rem;padding:.5rem .7rem;display:flex}.mobile-panel{top:4.8rem;background:var(--bg);flex-direction:column;justify-content:space-between;height:calc(100dvh - 4.8rem);padding:1rem;display:flex;position:fixed;inset-inline:0}.mobile-panel nav{display:grid}.mobile-panel nav a{border-bottom:1px solid var(--line);font:400 clamp(2.7rem, 14vw, 4.5rem)/1 var(--serif);animation:mobile-link-enter .56s var(--ease-spring) both;padding:.65rem 0;text-decoration:none}.mobile-panel nav a:nth-child(2){animation-delay:45ms}.mobile-panel nav a:nth-child(3){animation-delay:90ms}.mobile-panel nav a:nth-child(4){animation-delay:.135s}.mobile-panel nav a:nth-child(5){animation-delay:.18s}.mobile-panel nav a:nth-child(6){animation-delay:.225s}.mobile-panel nav a:nth-child(7){animation-delay:.27s}.mobile-panel nav a:nth-child(8){animation-delay:.315s}.footer-grid{grid-template-columns:1fr 1fr}.footer-grid>div:first-child{grid-column:1/-1}.project-visual{min-height:21rem}.home-hero,.featured-project,.experiment-preview,.work-row,.contact-layout{grid-template-columns:1fr}.home-hero{min-height:auto;padding-top:5rem}.hero-copy h1{font-size:clamp(3.5rem,16vw,5.7rem)}.hero-instrument{min-height:26rem}.capability-list{grid-template-columns:1fr}.capability-list li{grid-template-columns:2rem 1fr;border-right:0!important;padding:1.4rem 0!important}.capability-list li p{grid-column:2}.type-preview{min-height:22rem}.tool-lines a{grid-template-columns:2rem 1fr auto}.tool-lines a p{grid-column:2/-1}.work-row-copy{grid-template-columns:2rem 1fr}.work-row-end{flex-direction:row;grid-column:2;align-items:center}.project-meta{grid-template-columns:1fr 1fr}.case-layout{grid-template-columns:1fr}.case-layout aside{grid-template-columns:repeat(3,auto);position:static}.breadcrumbs{margin-bottom:2rem}.timeline>li,.strength-groups>div,.now-list article,.resume-role{grid-template-columns:1fr;gap:1rem}.beliefs{grid-template-columns:1fr 1fr}.beliefs li{min-height:12rem}.contact-form{grid-template-columns:1fr}.field-wide,.form-error{grid-column:auto}.project-strips>a{grid-template-columns:2rem 1fr}.project-strips>a>span:last-child{grid-column:2}.tools-directory{grid-template-columns:1fr}.directory-controls{position:static}.tool-grid,.markdown-workspace,.jwt-grid,.tool-copy,.related-links,.color-controls{grid-template-columns:1fr}.workbench{padding:1rem}.tool-options{justify-content:flex-start}.match-list li,.contrast-grid,.side-diff{grid-template-columns:1fr}.color-scale{grid-template-columns:repeat(3,1fr)}.value-list button{grid-template-columns:1fr auto}.value-list code{overflow-wrap:anywhere;grid-column:1/-1}.regex-row{grid-template-columns:1fr}}@keyframes mobile-link-enter{0%{opacity:0;transform:translate(-1.5rem)}}@media (max-width:420px){.footer-grid,.beliefs,.project-meta,.project-pagination{grid-template-columns:1fr}.project-pagination>div:last-child{text-align:left}}
