@charset "UTF-8";
:root{--paper:#fff;--ink:#161616;--orange:#ff6a21;--muted:#686866;--line:#d9d9d5;--green:#dcf4cb;--header:88px;--max:1440px;color-scheme:light;scroll-padding-top:110px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}button,a,input{touch-action:manipulation}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default}button,a,summary,input{outline-offset:6px}:focus-visible{outline:2px solid var(--orange)}[hidden]{display:none!important}::selection{background:var(--orange);color:var(--ink)}.skip-link{position:fixed;top:10px;left:20px;z-index:100;background:var(--ink);color:white;padding:14px;transform:translateY(-200%)}.skip-link:focus{transform:none}
.site-header{height:var(--header);display:flex;align-items:center;gap:26px;padding:0 4.3vw;border-bottom:1px solid var(--line);position:fixed;inset:0 0 auto;background:rgba(255,255,255,.96);backdrop-filter:blur(16px);z-index:20}.brand{display:flex;gap:16px;align-items:center;margin-right:auto}.brand-mark{font-size:46px;line-height:1;letter-spacing:-5px;font-weight:800}.brand-mark span{color:var(--orange)}.brand-name{font-size:10px;line-height:1.35;letter-spacing:1.8px;font-weight:700}.desktop-nav{display:flex;gap:26px;height:100%;align-items:center}.desktop-nav a{font-size:12px;position:relative;padding:14px 0}.desktop-nav a::after{content:"";height:3px;background:var(--orange);position:absolute;bottom:3px;left:0;right:100%;transition:right .25s}.desktop-nav a:hover::after,.desktop-nav a[aria-current]::after{right:0}.motion-toggle{background:none;border:1px solid var(--line);border-radius:50px;display:flex;gap:7px;align-items:center;padding:8px 11px;font-size:11px}.motion-toggle>span:first-child{font-size:15px}.reading-progress{position:absolute;bottom:-1px;left:0;width:100%;height:2px;pointer-events:none}.reading-progress span{display:block;height:100%;background:var(--orange);width:0}.menu-toggle{display:none}#mobile-nav{position:absolute;top:var(--header);left:0;right:0;background:var(--paper);padding:20px 24px;border-bottom:1px solid var(--line)}#mobile-nav a{display:block;padding:12px;font-size:18px}
main{padding-top:var(--header)}.scrolly{display:grid;grid-template-columns:49% 51%;max-width:var(--max);margin:auto}.visual-stage{position:sticky;top:var(--header);height:calc(100svh - var(--header));min-height:540px;align-self:start;padding:36px 32px 26px 4.3vw;display:flex;flex-direction:column;overflow:hidden;--stage-accent:var(--orange);transition:background .65s,color .65s}.stage-top{display:flex;justify-content:space-between;gap:15px;align-items:center}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:600;line-height:1.7;text-transform:uppercase;margin:0 0 26px}.stage-top .eyebrow{margin:0;font-size:8px;letter-spacing:1.7px}.stage-index{font-family:monospace;font-size:10px;white-space:nowrap;color:var(--muted)}.visual-frame{position:relative;flex:1;min-height:340px;margin:14px -24px 0;display:grid;place-items:center}#portrait-canvas{width:100%;height:100%;position:absolute;inset:0}#portrait-video,#portrait-poster{width:100%;height:100%;object-fit:contain;position:absolute;inset:0}.orbit{position:absolute;border:1px solid currentColor;opacity:.12;border-radius:50%;width:80%;height:80%;max-height:460px;transform:rotate(-28deg) scaleY(.61);pointer-events:none}.orbit-two{transform:rotate(40deg) scaleY(.61);width:88%;height:88%}.coordinate{position:absolute;font:9px/1.8 monospace;letter-spacing:1px;opacity:.5;pointer-events:none}.coordinate-a{left:28px;top:20%}.coordinate-b{right:28px;bottom:15%;writing-mode:vertical-rl}.stage-bottom{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding-top:14px}.stage-word{font-size:10px;font-weight:700;letter-spacing:2px;max-width:55%;line-height:1.6}.stage-caption{font-size:10px;color:var(--muted);text-align:right;max-width:45%;line-height:1.5}.chapter-track{display:flex;gap:6px;margin-top:24px}.chapter-track span{height:3px;background:var(--line);flex:1;transition:background .4s}.chapter-track .active{background:var(--stage-accent)}.visual-stage[data-scene="tech"]{background:#171719;color:#f7f7f5}.visual-stage[data-scene="tech"] .stage-caption,.visual-stage[data-scene="tech"] .stage-index{color:#aaa}.visual-stage[data-scene="tech"] .chapter-track span:not(.active){background:#444}.visual-stage[data-scene="pride"]{--stage-accent:#ad529c}.visual-stage[data-scene="universe"]{background:var(--green);--stage-accent:#2b5b39}.no-js-orb{width:62%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 30% 25%,#eee,#888 30%,#171717 68%)}
.chapter{min-height:100svh;padding:90px 5vw 90px 48px;display:flex;flex-direction:column;justify-content:center;border-left:1px solid var(--line);position:relative;scroll-margin-top:0}.chapter-intro{min-height:calc(100svh - var(--header));padding-top:55px;padding-bottom:52px}.chapter h1{font-size:clamp(54px,5.8vw,88px);line-height:.98;letter-spacing:-5px;font-weight:700;margin:0 0 30px}.chapter h2,.section-heading h2{font-size:clamp(45px,4.7vw,68px);line-height:1.04;letter-spacing:-3.5px;margin:0 0 32px;font-weight:600}mark{background:var(--orange);color:var(--ink);padding:0 .055em;box-decoration-break:clone;-webkit-box-decoration-break:clone}p{font-size:15px;line-height:1.85;margin:0 0 20px}.intro-copy{font-size:18px;line-height:1.6;max-width:430px}.muted{color:var(--muted);font-size:13px;max-width:430px}.text-link{font-size:12px;font-weight:700;border-bottom:1px solid currentColor;padding:8px 0;align-self:flex-start;display:inline-block;margin-top:14px;transition:color .2s}.text-link:hover{color:#bc3e00}.scroll-cue{display:flex;align-items:center;gap:12px;font-size:8px;letter-spacing:2px;margin-top:50px;color:var(--muted)}.scroll-line{display:block;width:34px;height:1px;background:var(--ink)}.lead{font-size:20px;line-height:1.6;letter-spacing:-.4px;margin-bottom:24px}.chapter-tech{background:#171719;color:var(--paper);border-color:#333}.chapter-tech>.eyebrow,.chapter-tech .mobile-heading-group>.eyebrow{color:#aaa}.chapter-tech>p:not(.eyebrow):not(.lead){color:#bcbcbc}.chapter-tech mark{color:#171719}.expertise-tabs{display:flex;margin-top:22px;border-bottom:1px solid #454545;gap:20px}.expertise-tabs button{padding:14px 0;font-size:11px;line-height:1.6;white-space:nowrap;border:0;background:none;color:#aaa;position:relative}.expertise-tabs button[aria-selected="true"]{color:var(--paper)}.expertise-tabs button[aria-selected="true"]::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--orange)}.expertise-panel{padding-top:24px;min-height:272px}.panel-number{font:11px monospace;color:var(--orange)}h3{font-size:24px;line-height:1.3;letter-spacing:-.8px;font-weight:600;margin:14px 0}h4{font-size:11px;text-transform:uppercase;letter-spacing:1.8px;margin:0 0 16px}.expertise-panel p{font-size:13px;color:#bcbcbc}.tags{display:flex;gap:7px;flex-wrap:wrap}.tags span{border:1px solid #454545;padding:6px 8px;font:9px monospace}.rainbow-text{background:linear-gradient(90deg,#bf302b,#b4640c,#638428,#258765,#3e69b8,#98578e);background-clip:text;-webkit-background-clip:text;color:transparent}.chapter-people blockquote{font-size:27px;line-height:1.4;letter-spacing:-1px;padding-left:24px;border-left:3px solid var(--orange);margin:20px 0 28px}.story-note{display:flex;align-items:center;gap:15px;font-size:10px;letter-spacing:.5px;margin-top:12px}.rainbow-line{height:4px;width:50px;background:linear-gradient(90deg,#dc3f3b,#ee913b,#efd453,#55a55e,#4287c7,#ae69b1)}.chapter-universe{background:var(--green);border-color:#bfdbb1}.chapter-universe mark{background:transparent;border-bottom:5px solid var(--orange);padding:0}.interest-map{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:24px 0}.interest{display:flex;flex-direction:column;align-items:center;gap:12px;border:1px solid #a7c297;background:transparent;padding:17px 2px;font-size:10px;transition:background .2s,color .2s}.interest span{font-size:26px;font-family:monospace;line-height:1}.interest.active{background:var(--ink);color:var(--paper);border-color:var(--ink)}.interest:hover:not(.active){background:#c6e4b5}.interest-copy{min-height:185px;border-top:1px solid #a7c297;padding-top:24px}.interest-copy .eyebrow{font-size:9px;margin-bottom:4px}.interest-copy p:last-child{font-size:13px}
.projects-section,.writing-section{padding:100px 7vw;max-width:var(--max);margin:auto;scroll-margin-top:var(--header)}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:40px;margin-bottom:56px}.section-heading .eyebrow{margin-bottom:20px}.section-heading h2{margin:0}.section-heading>p{font-size:13px;margin:0 0 5px;max-width:340px;color:var(--muted)}.projects-list{border-top:1px solid var(--ink)}.project{border-bottom:1px solid var(--line)}.project summary{display:flex;align-items:center;gap:30px;cursor:pointer;list-style:none;padding:33px 0}.project summary::-webkit-details-marker{display:none}.project-index{font:12px monospace;color:var(--muted);align-self:flex-start;margin-top:4px}.project summary .eyebrow{font-size:8px;margin-bottom:8px}.project summary h3{font-size:32px;margin:0;font-weight:500;line-height:1.2;letter-spacing:-1px}.project-symbol{margin-left:auto;font-size:30px;color:var(--muted)}.project[open] .project-symbol{transform:rotate(45deg);color:var(--orange)}.project-body{display:grid;grid-template-columns:repeat(3,1fr);gap:38px;padding:8px 0 38px 48px}.project-body p{font-size:13px;color:var(--muted);margin:0}.personal-projects{margin-top:70px;padding:38px;background:var(--orange);display:grid;grid-template-columns:1fr 1fr;gap:0 50px}.personal-projects .eyebrow{grid-column:1/-1;font-size:9px;margin-bottom:12px}.personal-projects h3{font-size:29px;margin:0}.personal-projects>p{font-size:13px;margin:0}.personal-project-links{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:20px;margin-top:25px}.writing-section{background:#171719;color:var(--paper)}.writing-section .section-heading>p{color:#aaa}.outline-text{color:transparent;-webkit-text-stroke:1px var(--paper)}.writing-section .text-link:hover{color:var(--orange)}.empty-writing{display:flex;justify-content:space-between;gap:30px;align-items:center;border-top:1px solid #4e4e4e;border-bottom:1px solid #4e4e4e;padding:30px 0;margin-bottom:25px}.empty-writing p{font-size:13px;color:#aaa;margin:0}.empty-writing span{font:10px monospace;color:var(--orange);white-space:nowrap}.post-card{display:block;border-top:1px solid #555;padding:25px 0}.post-card:hover h3{color:var(--orange)}.post-card .eyebrow{color:#aaa;margin-bottom:5px}.post-card p{font-size:13px;color:#aaa;max-width:700px}.site-footer{padding:44px 7vw;max-width:var(--max);margin:auto;display:flex;gap:40px;align-items:center}.site-footer p{font-size:12px;font-weight:600;margin:0}.site-footer span:not(.brand-mark span){font-size:10px;color:var(--muted)}.site-footer .footer-year{margin-left:auto}.contact-links{display:flex;gap:18px;font-size:12px}.contact-links a{border-bottom:1px solid var(--line)}
.document-main{max-width:850px;margin:0 auto;padding:calc(var(--header) + 64px) 28px 90px;min-height:calc(100vh - 130px)}.document-main h1{font-size:clamp(40px,6vw,64px);letter-spacing:-3px;line-height:1.1;margin:24px 0 25px}.document-main .deck{font-size:20px;color:var(--muted);margin-bottom:44px}.document-main article h2{font-size:30px;letter-spacing:-1px;margin:48px 0 20px}.document-main article h3{margin-top:32px}.document-main article p,.document-main article li{font-size:17px;line-height:1.9}.document-main article a{text-decoration:underline;text-underline-offset:4px}.document-main article blockquote{border-left:3px solid var(--orange);margin:30px 0;padding:0 24px}.document-main article pre{padding:20px;background:#eee;overflow:auto;line-height:1.6}.document-main article code{font-size:.85em}.document-main article img,.document-main article video{max-width:100%;border:1px solid var(--line)}.article-meta{font:11px monospace;color:var(--muted);margin:20px 0 45px}.light-post-list .post-card{border-color:var(--line)}.light-post-list .post-card p,.light-post-list .post-card .eyebrow{color:var(--muted)}.back-link{font-size:12px;text-decoration:underline;text-underline-offset:6px}.not-found{padding:180px 28px;text-align:center}
@media(min-width:1440px){.visual-stage{padding-left:62px}.chapter{padding-right:72px}.site-header{padding-left:max(4.3vw,calc((100vw - 1440px)/2 + 62px));padding-right:max(4.3vw,calc((100vw - 1440px)/2 + 62px))}}
@media(max-width:1100px){.desktop-nav{gap:16px}.site-header{gap:18px}.brand-name{display:none}.chapter{padding:65px 30px}.chapter h1{letter-spacing:-3px}.chapter h2{letter-spacing:-2.5px}.expertise-tabs{gap:12px}.expertise-tabs button{font-size:10px}.visual-stage{padding-left:28px;padding-right:22px}.stage-top .eyebrow{font-size:7px;letter-spacing:1px}.stage-caption{font-size:9px}.project-body{gap:22px}}
@media(max-width:760px){:root{--header:72px;scroll-padding-top:90px}.site-header{padding:0 22px;gap:16px}.brand-mark{font-size:39px}.brand-name{display:block;font-size:8px}.desktop-nav{display:none}.menu-toggle{display:flex;background:none;border:0;gap:8px;padding:9px 0;font-size:12px}.motion-label{display:none}.motion-toggle{padding:6px 9px}.scrolly{display:flex;flex-direction:column}.visual-stage{position:sticky;top:var(--header);width:100%;height:190px;min-height:0;padding:10px 20px;z-index:5;border-bottom:1px solid var(--line);background:var(--paper)}.stage-top .eyebrow{font-size:7px}.stage-top{position:relative;z-index:2}.visual-frame{position:absolute;inset:5px 24%;margin:0;min-height:0}.coordinate,.orbit{display:none}.stage-bottom{padding:0;margin-top:auto;z-index:2;pointer-events:none}.stage-word{font-size:8px;max-width:38%;letter-spacing:1px}.stage-caption{font-size:8px;max-width:29%}.chapter-track{margin-top:10px;z-index:2;width:28%}.chapter{min-height:auto;padding:50px 24px 65px;border-left:0;scroll-margin-top:calc(var(--mobile-reading-offset,286px) - 2px)}.chapter-intro{min-height:calc(100svh - var(--mobile-reading-offset,286px) + 24px);padding-top:40px}.chapter h1{font-size:clamp(52px,11vw,80px);line-height:1;letter-spacing:-3px;margin-bottom:25px}.chapter h2{font-size:clamp(42px,10vw,60px);letter-spacing:-2.5px}.intro-copy{font-size:17px}.scroll-cue{margin-top:30px}.chapter-tech{padding-top:55px}.expertise-tabs{gap:19px}.expertise-tabs button{font-size:11px}.expertise-panel{min-height:280px}.chapter-people blockquote{font-size:25px}.interest-copy{min-height:200px}.projects-section,.writing-section{padding:60px 24px}.section-heading{flex-direction:column;align-items:flex-start;gap:24px;margin-bottom:38px}.section-heading h2{font-size:50px;letter-spacing:-2.5px}.section-heading>p{font-size:12px}.project summary{gap:18px;padding:26px 0}.project summary h3{font-size:27px}.project summary .eyebrow{font-size:7px;letter-spacing:1.4px}.project-body{grid-template-columns:1fr;padding:6px 0 30px 34px;gap:24px}.personal-projects{padding:26px;margin-top:46px;grid-template-columns:1fr;gap:20px}.personal-projects .eyebrow{margin:0}.personal-projects h3{font-size:27px}.empty-writing{align-items:flex-start;flex-direction:column;gap:16px}.site-footer{padding:34px 24px;gap:25px;flex-wrap:wrap}.contact-links{width:100%;order:3}.document-main{padding-top:calc(var(--header) + 42px)}.document-main h1{letter-spacing:-2px}.document-main article p,.document-main article li{font-size:16px}}
@media(max-width:370px){.expertise-tabs{gap:10px}.expertise-tabs button{font-size:10px}.brand-name{display:none}.chapter h1{font-size:50px}.interest{font-size:9px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}
html.motion-paused{scroll-behavior:auto}html.motion-paused *,html.motion-paused *::after{transition:none!important}
@media print{.site-header,.visual-stage,.scroll-cue,.interest-map{display:none}main{padding:0}.scrolly{display:block}.chapter{min-height:0;background:white;color:black;padding:25px 0;border:0;break-inside:avoid}.chapter h1,.chapter h2{font-size:34px}.chapter-tech>p,.expertise-panel p,.muted{color:black!important}.expertise-panel[hidden]{display:block!important}.expertise-tabs{display:none}.projects-section,.writing-section{background:white;color:black;padding:25px 0}.project-body{display:block}.project-body>div{margin-bottom:15px}.site-footer{padding:20px 0}.outline-text{color:black;-webkit-text-stroke:0}}
.chapter img,.chapter video{display:block;max-width:100%;height:auto}.chapter figure{margin:24px 0}.chapter figcaption{font-size:11px;line-height:1.7;color:var(--muted);margin-top:10px}

.language-switch{display:flex;gap:7px;align-items:center;flex-shrink:0;font:10px monospace}.language-switch a{padding:7px 2px;color:var(--muted)}.language-switch a[aria-current]{color:var(--ink);border-bottom:2px solid var(--orange)}.soon-badge{display:inline-block;font:10px/1.4 monospace!important;letter-spacing:1.2px;text-transform:uppercase;border:1px solid currentColor;padding:6px 10px;white-space:nowrap}.story-note{flex-wrap:wrap}.pending-content{grid-column:1/-1;margin:20px 0 0!important}.personal-projects .pending-content{margin:0!important}.document-main .empty-writing{border-color:var(--line)}.document-main .empty-writing p{color:var(--muted)}.site-footer .contact-links{overflow-wrap:anywhere}.site-footer{flex-wrap:wrap}.desktop-nav{gap:22px}.site-header{gap:20px}
@media(max-width:1100px){.desktop-nav{gap:14px}.site-header{gap:15px}.chapter h2{overflow-wrap:normal}}
@media(max-width:760px){.site-header{gap:12px}.language-switch{gap:5px}.chapter-people h2{font-size:clamp(37px,9.5vw,60px)}.site-footer .contact-links{width:100%}.site-footer .footer-year{margin-left:auto}}

/* Real portrait: common crop preserves the face and crossed arms. */
.visual-stage.portrait-pending .orbit,.visual-stage.portrait-ready .orbit,.visual-stage.portrait-pending .coordinate,.visual-stage.portrait-ready .coordinate{display:none}
.visual-stage.portrait-pending .visual-frame,.visual-stage.portrait-ready .visual-frame{flex:1;min-height:0;margin:14px 0 0;background:#fff;overflow:hidden}
.visual-stage.portrait-pending #portrait-canvas{opacity:0}
.visual-stage.portrait-ready #portrait-canvas{opacity:1}
.portrait-poster-picture{position:absolute;inset:0;display:block}
.visual-stage.portrait-pending #portrait-poster{display:block;object-fit:contain}
.visual-stage.portrait-ready #portrait-poster[hidden]{display:none}
/* White brushes follow the contained portrait, with 6% bands on both sides. */
.portrait-edge-fade{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none;display:none}
.visual-stage.portrait-pending .portrait-edge-fade,.visual-stage.portrait-ready .portrait-edge-fade{display:block}
@media(max-width:760px){
 .visual-stage.portrait-pending .visual-frame,.visual-stage.portrait-ready .visual-frame{position:absolute;inset:3px 0 3px auto;left:auto;transform:none;height:184px;width:132px;margin:0}
}
@media(max-height:560px) and (min-width:761px){
 .visual-stage{min-height:0;padding-top:18px;padding-bottom:14px}
 .visual-stage .chapter-track{margin-top:12px}.visual-stage .stage-caption{display:none}
}


/* More scroll distance for the glasses transition on the desktop layout. */
@media screen and (min-width:761px){.chapter-universe{min-height:160svh}}

.mobile-heading-range,.mobile-heading-group{display:contents}
.mobile-heading-group>h1,.mobile-heading-group>h2,.mobile-heading-group>.eyebrow{position:relative;z-index:2}

/* The mobile portrait starts centered and docks right beside the original headings. */
@media screen and (max-width:760px){
 :root{--mobile-reading-offset:264px;--mobile-portrait-width:clamp(90px,28vw,112px);scroll-padding-top:0}
 .scrolly .visual-stage{position:sticky;top:var(--header);height:240px;min-height:0;padding:0;background:transparent;color:var(--ink);z-index:5;transition:none;overflow:visible;pointer-events:none}
 html[data-background] .scrolly .visual-stage{background:transparent}
 .scrolly .visual-stage::before{content:"";position:absolute;inset:0 0 auto;height:var(--mobile-stage-height,240px);background:#fff;z-index:0}
 .visual-stage .stage-top,.visual-stage .stage-bottom,.visual-stage .chapter-track,.reading-progress{display:none}
 .scrolly .visual-stage .visual-frame{position:absolute;inset:var(--mobile-portrait-y,3px) auto auto 0;left:0;transform:translateX(var(--mobile-portrait-x,calc((100vw - 168px) / 2))) scale(var(--mobile-portrait-scale,1));transform-origin:0 0;height:234px;width:168px;margin:0;min-height:0;z-index:1}
 .visual-stage .portrait-rainbow{position:absolute;inset:0 0 auto;height:var(--mobile-stage-height,240px);clip-path:none}
 .scrolly .chapters{isolation:auto}
 .chapter{justify-content:flex-start;scroll-margin-top:calc(var(--mobile-reading-offset) - 2px)}
 .chapter-intro{min-height:calc(100svh - var(--header) - 240px);padding-top:26px}
 .chapter h1,.chapter h2{font-size:clamp(26px,7.4vw,34px);line-height:1.04;font-weight:600;letter-spacing:-1px;width:100%;max-width:100%;overflow-wrap:normal;margin-bottom:30px;z-index:8}
 .chapter h1 br,.chapter h2 br{display:none}
 .chapter .mobile-heading-range{display:block;flex:none;position:relative;z-index:8;width:calc(100% - var(--mobile-portrait-width) - 12px + 24px);height:var(--mobile-title-range-height,auto);margin-bottom:var(--mobile-title-flow-margin,30px);overflow-anchor:none;pointer-events:none}
 .chapter .mobile-heading-group{display:flow-root;position:sticky;top:var(--mobile-heading-dock-top,calc(var(--header) + 20px));background:transparent;pointer-events:auto}
 .chapter .mobile-heading-group>.eyebrow{font-size:8px;line-height:1.5;letter-spacing:1.5px;margin:0 0 8px}
 .chapter .mobile-heading-group h1,.chapter .mobile-heading-group h2{position:relative;margin:0;background:transparent;transform:none}
}

/* Decorative social icon retains the visible, accessible link label. */
.contact-links .contact-link{display:inline-flex;align-items:center;gap:7px}
.contact-icon{display:block;width:16px;height:16px;flex:none}
.contact-links .contact-link:hover{color:var(--orange)}
