@font-face{font-family:Anybody;src:url('/assets/fonts/Anybody-Variable.ttf') format('truetype');font-style:normal;font-weight:100 900;font-stretch:50% 150%;font-display:swap}
:root{--ink:#0c0d0c;--panel:#131412;--paper:#f0eade;--muted:#aaa79f;--brass:#c7a675;--line:#ffffff29;--display:Anybody,'Arial Black',sans-serif;--sans:Arial,Helvetica,sans-serif;--mono:'SFMono-Regular',Consolas,'Liberation Mono',monospace;--gutter:clamp(22px,3.6vw,72px);color-scheme:dark;scroll-behavior:smooth;scroll-padding-top:105px}
*{box-sizing:border-box}
body{margin:0;background:var(--ink);color:var(--paper);font:16px/1.5 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:clip}
::selection{background:var(--brass);color:var(--ink)}
a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default}img{display:block;max-width:100%;height:auto}button[hidden],[hidden]{display:none!important}
a:focus-visible,button:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--brass);outline-offset:7px}
.skip-link{position:fixed;top:12px;left:var(--gutter);z-index:100;background:var(--paper);color:var(--ink);padding:12px 20px;transform:translateY(-160%)}.skip-link:focus{transform:none}
.site-header{position:fixed;z-index:50;inset:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:28px var(--gutter);height:90px;transition:background .35s,border-color .35s;isolation:isolate;border-bottom:1px solid transparent}
.site-header.is-scrolled{background:#0c0d0ced;backdrop-filter:blur(18px);border-bottom-color:#ffffff13}
.wordmark{font:750 clamp(19px,2vw,28px)/1 var(--display);font-variation-settings:'wdth' 85;letter-spacing:-.025em;white-space:nowrap}.wordmark span{color:var(--brass)}
.site-header nav{display:flex;align-items:center;gap:38px;font:11px/1 var(--mono);letter-spacing:.13em;text-transform:uppercase}.site-header nav a{position:relative;padding:10px 0}.site-header nav a:after{content:'';position:absolute;left:0;right:0;bottom:2px;height:1px;background:var(--brass);transform:scaleX(0);transform-origin:left;transition:transform .3s}.site-header nav a:hover:after,.site-header nav a[aria-current]:after{transform:scaleX(1)}.site-header nav a>span{margin-left:5px;color:var(--brass)}
.section-pad{padding-inline:var(--gutter)}
.eyebrow,.figure-label,.pointer-hint,.scroll-cue,.rail-note,.project-caption,.visual-index,.flow-number,.visual-caption,.reel-footnote,.story-label,.service-number,.service-body>span,.note-tag,.internal-status,.method-figure-label,.internal-label{font:10px/1.5 var(--mono);text-transform:uppercase;letter-spacing:.1em;font-weight:400}
.eyebrow{margin:0;color:var(--brass)}.signal-dot{display:inline-block;width:5px;height:5px;flex-shrink:0;margin-right:10px;background:var(--brass);border-radius:50%}
.hero{--hero-size:clamp(680px,76svh,860px);height:var(--hero-size);position:relative;display:flex;align-items:center;padding:118px var(--gutter) 90px;overflow:clip;isolation:isolate;background:linear-gradient(180deg,transparent 70%,var(--ink) 100%),radial-gradient(ellipse at 76% 58%,#1a1a15 0,transparent 62%)}
/* Keep both edge masks on the actual 3:2 image, including ultrawide layouts. */
.hero-art{--art-height:var(--hero-size);position:absolute;z-index:-1;right:-3%;top:0;width:80%;height:100%;pointer-events:none;isolation:isolate}
.art-transform{position:absolute;left:50%;top:50%;width:min(100%,calc(var(--art-height)*1.56));aspect-ratio:3/2;transform:translate(-50%,-50%) perspective(1600px) rotateX(var(--art-rx,0deg)) rotateY(var(--art-ry,0deg)) translate3d(var(--art-x,0px),var(--art-y,0px),0);mask-image:linear-gradient(90deg,transparent 0,#000 8%,#000 93%,transparent 100%)}
.art-surface,.art-reveal{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;mask-image:linear-gradient(180deg,transparent 0,#000 8%,#000 80%,transparent 96%)}
.art-reveal{opacity:0}.hero.sculpture-3d .art-reveal{opacity:1}.hero.sculpture-3d .art-surface{visibility:hidden}

.hero-copy{position:relative;width:58%;max-width:860px;pointer-events:none}.hero-copy a{pointer-events:auto}.hero-eyebrow{margin-bottom:34px;font-size:9px;color:#b1afa6}.hero h1{font:850 clamp(115px,14.3vw,240px)/.82 var(--display);font-variation-settings:'wdth' 83;letter-spacing:-.025em;margin:0 0 27px -8px;position:relative}.title-line{display:block;white-space:nowrap}.title-dot{color:var(--brass);margin-left:-.035em}.hero-lede{font-size:clamp(16px,1.45vw,23px);font-weight:400;letter-spacing:.006em;margin:0 0 12px;max-width:570px}.hero-description{color:var(--muted);font-size:14px;line-height:1.65;max-width:350px;margin:0 0 30px}
.button{min-height:52px;display:inline-flex;align-items:center;justify-content:space-between;gap:45px;padding:14px 20px;font-size:12px;letter-spacing:.025em;position:relative;isolation:isolate;transition:color .3s,border-color .3s}.button:before{content:'';position:absolute;inset:0;background:var(--paper);z-index:-1;transform:scaleY(0);transform-origin:bottom;transition:transform .35s cubic-bezier(.2,.7,.2,1)}.button-outline{border:1px solid #e9e1d391;background:#0c0d0c26}.button-outline:hover{color:var(--ink);border-color:var(--paper)}.button:hover:before{transform:scaleY(1)}.button-arrow{font-size:21px;line-height:1;transition:transform .3s}.button:hover .button-arrow{transform:translate(3px,3px)}
.hero-bottom{position:absolute;bottom:25px;left:var(--gutter);right:var(--gutter);display:flex;justify-content:space-between;align-items:flex-end;gap:24px}.scroll-cue{display:flex;align-items:center;color:var(--muted);gap:12px;font-size:9px}.scroll-line{position:relative;width:1px;height:31px;background:#ffffff33;overflow:hidden}.scroll-line:after{content:'';position:absolute;inset:-100% 0 100%;background:var(--brass);animation:scroll-tick 3s ease-in-out infinite}@keyframes scroll-tick{to{transform:translateY(200%)}}
.art-control{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px 18px;max-width:520px}.figure-label{font-size:9px;color:#ddd6c8;flex-basis:100%;text-align:right}.pointer-hint{font-size:8px;color:var(--muted);order:1}.reveal-button{display:flex;align-items:center;gap:8px;border:1px solid #a99e864d;padding:7px 10px;background:#0c0d0c94;color:#c4bbaa;font:9px var(--mono);letter-spacing:.035em;transition:border-color .25s,color .25s}.reveal-button:hover,.reveal-button[aria-pressed=true]{border-color:var(--brass);color:var(--paper)}.reveal-icon{font-size:15px;line-height:1}
.contact-section{background:var(--paper);color:var(--ink);padding-top:85px;padding-bottom:55px;color-scheme:light}.contact-section .eyebrow{color:#76644a}.contact-section h2{font:850 clamp(70px,12vw,195px)/.87 var(--display);font-variation-settings:'wdth' 78;letter-spacing:-.025em;margin:43px 0 45px}.contact-section h2>span{color:#9b855d}.contact-bottom{display:flex;justify-content:space-between;gap:40px;align-items:end;padding-bottom:35px;border-bottom:1px solid #0c0d0c40}.contact-bottom p{font-size:15px;color:#676258;line-height:1.8;max-width:390px;margin:0}.button-solid{background:var(--ink);color:var(--paper);border:1px solid var(--ink);min-width:250px}.button-solid:before{background:#b59b70}.button-solid:hover{color:var(--ink);border-color:#b59b70}.contact-email{display:inline-block;font:12px var(--mono);letter-spacing:-.025em;margin-top:25px}.contact-email>span{margin-left:15px}.site-footer{display:flex;justify-content:space-between;align-items:center;padding:40px var(--gutter);gap:25px}.site-footer .wordmark{font-size:21px}.site-footer>span{font:9px var(--mono);color:var(--muted)}.site-footer>div{display:flex;gap:30px;font:9px var(--mono);color:var(--muted)}.site-footer a:hover{color:var(--brass)}
/* Enhancement only: content is visible when scripting or observers are unavailable. */

.legacy-anchor{display:block;height:0;scroll-margin-top:100px}
/* Personal homepage: introduction, writing, and a single contact section. */
.hero{--hero-size:clamp(660px,82svh,820px)}
.hero-copy{width:65%;max-width:900px}
.hero h1{font-size:clamp(80px,10.3vw,165px);line-height:.9;letter-spacing:-.055em;margin-left:-5px}
.hero-lede{font-size:clamp(17px,1.5vw,23px);margin-top:25px}
.hero-description{max-width:360px;font-size:14px}
.hero-actions{display:flex;align-items:center;gap:28px}
.hero-actions .text-link{font-size:10px}
.text-link{display:inline-flex;align-items:center;gap:16px;font:10px/1.5 var(--mono);border-bottom:1px solid #c7a67566;padding-bottom:7px;transition:color .25s,border-color .25s}
.text-link:hover{color:var(--brass);border-color:var(--brass)}
.display-heading{font:650 clamp(38px,4.7vw,72px)/1.04 var(--display);font-variation-settings:'wdth' 85;letter-spacing:-.055em;margin:17px 0 0}
.brands-section{padding-block:32px 42px;max-width:1140px;margin:auto}
.brands-heading{display:flex;justify-content:center;align-items:center;gap:20px;margin-bottom:25px}
.brands-heading .eyebrow{color:var(--muted);font-size:9px}
.brands-toggle{border:0;background:none;color:var(--muted);font:9px var(--mono);padding:10px}
.brands-toggle span{margin-left:7px;color:var(--brass)}
.brand-window{overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.brand-track{display:flex;width:max-content}
.brand-group{display:flex;align-items:center;justify-content:center;list-style:none;padding:0;margin:0;flex:none}
.brand-group li{flex:none;width:260px;min-height:70px;display:flex;align-items:center;justify-content:center;gap:12px;color:#c6c2b7}
.brand-mercedes{font:23px Georgia,serif;letter-spacing:-.7px}
.brand-illuvium{font:600 29px/1 var(--display);font-variation-settings:'wdth' 95;letter-spacing:-.04em}
.brand-socgen{font:650 15px/1.1 var(--sans);letter-spacing:.14em}
.brand-group li[aria-hidden]{display:none}
.brand-window:not(.is-ready) .brand-track{width:100%}
.brand-window:not(.is-ready) .brand-group{width:100%;flex-wrap:wrap}
.brand-window.is-ready .brand-group li[aria-hidden]{display:flex}
.brand-window.is-ready .brand-track{animation:brand-drift 32s linear infinite}
.brand-window:is(:hover,:focus-within,.is-paused) .brand-track{animation-play-state:paused}
@keyframes brand-drift{to{transform:translateX(-50%)}}
.writing-section{padding-top:80px;padding-bottom:70px;max-width:1240px;margin:auto}
.writing-heading{display:flex;align-items:end;justify-content:space-between;gap:25px;margin-bottom:40px}
.writing-heading>.text-link{white-space:nowrap;margin-bottom:6px}
.writing-list{border-top:1px solid var(--line)}
.writing-entry{display:grid;grid-template-columns:180px 1fr;gap:36px;padding:30px 0;border-bottom:1px solid var(--line);align-items:center}
.writing-image{display:block;overflow:hidden;aspect-ratio:1.2;background:#1c1d19}
.writing-image img{width:100%;height:100%;object-fit:cover;filter:saturate(.65);transition:transform .5s,filter .5s}
.writing-entry:hover .writing-image img{transform:scale(1.035);filter:saturate(1)}
.writing-book{background:radial-gradient(ellipse at center,#414037,#1a1c17)}
.writing-book img{object-fit:contain;padding:10px;transform:rotate(-7deg)}
.writing-entry:hover .writing-book img{transform:rotate(-4deg) scale(1.035)}
.entry-meta{font:9px/1.6 var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--brass);margin:0 0 11px}
.writing-entry h3{font:400 clamp(23px,2.5vw,34px)/1.16 Georgia,serif;letter-spacing:-.025em;max-width:770px;margin:0 0 13px}
.writing-entry h3 a:hover,.entry-link:hover{color:var(--brass)}
.writing-entry h3 span{font:20px var(--sans);color:var(--brass);white-space:nowrap}
.writing-entry p:not(.entry-meta){font-size:13px;line-height:1.8;max-width:650px;margin:0;color:var(--muted)}
.entry-link{display:inline-block;font:10px/1.5 var(--mono);margin-top:15px;color:#c9bdab}
.elsewhere{font-size:12px;color:var(--muted);margin:30px 0 0}.elsewhere a{color:var(--paper);border-bottom:1px solid var(--line);padding-bottom:3px}
.contact-section h2{font-size:clamp(75px,10vw,155px)}
.contact-bottom p{max-width:470px}
.contact-links{display:flex;align-items:center;justify-content:space-between;gap:25px;margin-top:25px}
.contact-links .contact-email{margin:0}.contact-links .text-link{border-color:#76644a66}
/* Keep desktop sections on one centered frame as the viewport grows. */
@media(min-width:901px){
 :root{--page-width:1360px;--content-gutter:max(var(--gutter),calc((100% - var(--page-width))/2 + var(--gutter)));--art-center:calc(50% + min(23vw,313px))}
 .site-header,.hero,.contact-section,.site-footer{padding-inline:var(--content-gutter)}
 .hero{background:linear-gradient(180deg,transparent 70%,var(--ink) 100%),radial-gradient(ellipse at var(--art-center) 58%,#1a1a15 0,transparent 62%)}
 .hero h1{font-size:clamp(80px,10.3vw,144px)}
 .hero-art{left:var(--art-center);right:auto;width:min(80%,1088px);transform:translateX(-50%)}
 .hero-bottom{left:var(--content-gutter);right:var(--content-gutter)}
 .writing-section{max-width:var(--page-width)}
}
@media(max-width:900px){
 :root{--gutter:24px;scroll-padding-top:90px}
 .site-header{height:76px;padding-block:22px}.wordmark{font-size:21px}.site-header nav{gap:24px;font-size:9px;letter-spacing:.05em}
 .hero{height:auto;min-height:890px;padding-top:125px;padding-bottom:90px;display:block;background:radial-gradient(ellipse at 60% 64%,#21201933,transparent 65%)}
 .hero-copy{width:100%;max-width:none}.hero-eyebrow{margin-bottom:24px;font-size:8px}
 .hero h1{font-size:clamp(65px,11vw,98px);margin-left:-3px;line-height:.9}
 .hero-lede{font-size:18px;margin-top:22px}.hero-description{font-size:13px;max-width:340px;margin-bottom:25px}
 .hero-art{--art-height:350px;z-index:0;top:470px;left:5%;right:auto;height:350px;width:90%}
 .hero-bottom{bottom:25px}.scroll-cue{font-size:8px;max-width:150px}.figure-label{font-size:7px}.pointer-hint{display:none}.art-control{max-width:220px;gap:8px}
 .reveal-button{min-height:36px;padding:8px 10px}.effects-toggle{min-width:36px}
 .brands-section{padding-block:25px 30px}.brand-group li{width:230px}.brand-mercedes{font-size:21px}
 .writing-section{padding-top:50px;padding-bottom:50px}.writing-heading{margin-bottom:30px}.display-heading{font-size:clamp(37px,6.5vw,60px)}
 .writing-entry{grid-template-columns:130px 1fr;gap:24px}.writing-entry h3{font-size:26px}
 .contact-section{padding-top:60px;padding-bottom:35px}.contact-section h2{font-size:clamp(70px,12vw,115px);margin-block:30px}
 .contact-bottom p{font-size:14px}.button-solid{min-width:200px}.contact-links{align-items:start;flex-wrap:wrap}
 .site-footer{padding-block:30px;flex-wrap:wrap;gap:22px}.site-footer .wordmark{font-size:20px}.site-footer>span{font-size:8px}.site-footer>div{font-size:9px}
}
@media(max-width:540px){
 .site-header nav{gap:18px;font-size:8px}.site-header nav a>span{display:none}.wordmark{font-size:19px}
 .hero{min-height:800px;padding-top:115px}.hero h1{font-size:14.5vw}.hero-lede{font-size:16px}.hero-description{max-width:310px}
 .hero-actions{gap:22px}.hero .button{min-height:48px;padding:12px 16px;gap:26px}.hero-actions .text-link{font-size:9px}
 .hero-art{top:414px;left:-9%;width:118%;height:330px;--art-height:330px}
 .hero-bottom{gap:12px;bottom:20px;align-items:end}.scroll-cue{font-size:7px;max-width:110px;gap:8px}.art-control{max-width:200px}.figure-label{font-size:6px}
 .brands-heading{gap:6px;margin-bottom:15px}.brands-heading .eyebrow{font-size:8px}.brand-group li{width:215px}.brand-mercedes{font-size:20px}.brand-socgen{font-size:13px}.brand-mercedes svg{width:36px;height:36px}
 .writing-heading{display:block}.writing-heading>.text-link{margin-top:22px}.display-heading{font-size:42px}
 .writing-entry{grid-template-columns:1fr 80px;gap:17px;padding-block:26px;align-items:start}.writing-entry>div{grid-column:1;grid-row:1}.writing-image{grid-column:2;grid-row:1;aspect-ratio:1;margin-top:28px}
 .writing-entry h3{font-size:25px}.writing-entry p:not(.entry-meta){font-size:12px;line-height:1.75}.entry-meta{font-size:8px;letter-spacing:.03em}.entry-link{font-size:9px}
 .contact-section h2{font-size:17vw}.contact-bottom{display:block;padding-bottom:27px}.contact-bottom p{font-size:13px;margin-bottom:25px}.contact-bottom .button{width:100%}.contact-links .contact-email{font-size:10px}.contact-links .text-link{font-size:9px}.site-footer>div{width:100%;justify-content:space-between}
}
@media(max-width:360px){:root{--gutter:20px}.site-header nav{gap:14px}.wordmark{font-size:17px}.hero-art{top:420px}.hero-description{max-width:280px}.hero-actions{gap:15px}.hero .button{gap:20px;font-size:11px}.writing-entry{grid-template-columns:1fr 60px;gap:12px}.writing-entry h3{font-size:23px}.display-heading{font-size:37px}}
@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.art-transform{transform:translate(-50%,-50%)!important;will-change:auto}.scroll-line:after{inset:0 0 50%}.brand-window.is-ready .brand-track{width:100%;transform:none}.brand-window.is-ready .brand-group{width:100%;flex-wrap:wrap}.brand-window.is-ready .brand-group[aria-hidden],.brand-window.is-ready .brand-group li[aria-hidden]{display:none}}
.effects-toggle{display:grid;place-items:center;min-width:30px;min-height:30px;padding:0;font-size:13px;letter-spacing:0}

.hero-flow{position:absolute;inset:0;width:100%;height:100%;z-index:-2;pointer-events:none;mask-image:linear-gradient(180deg,transparent 0,#000 10%,#000 87%,transparent 100%)}
.hero-copy{z-index:2}.hero-bottom{z-index:3}

.art-reveal,.hero-flow{background:transparent}

.hero-art{transition:opacity .3s}
.sculpture-3d .art-surface{opacity:0;transition:none}.sculpture-3d .art-transform{transform:translate(-50%,-50%)!important}.sculpture-3d .art-reveal{opacity:1;transition:none;mask-image:linear-gradient(180deg,transparent 0,#000 5%,#000 86%,transparent 100%)}

.sculpture-3d .art-reveal{pointer-events:auto;cursor:grab;touch-action:pan-y;user-select:none}
.sculpture-3d .art-reveal.is-dragging{cursor:grabbing}

/* The homepage artwork passes over the header glass; links stay accessible. */
.home-page .site-header.is-scrolled{background:transparent;backdrop-filter:none;border-bottom-color:transparent}
.header-backdrop{position:fixed;z-index:1;inset:0 0 auto;height:90px;pointer-events:none;opacity:0;background:#0c0d0ced;backdrop-filter:blur(18px);border-bottom:1px solid #ffffff13;transition:opacity .35s}
.site-header.is-scrolled+.header-backdrop{opacity:1}
.home-page .hero{z-index:2}
@media(max-width:760px){.header-backdrop{height:76px}}

/* Hide scrolling hero text beneath the navbar without masking the torus. */
.home-page .hero-copy,.home-page .hero-bottom{clip-path:inset(var(--header-overlap,0px) -16px -16px -16px)}

/* One viewport-sized WebGL surface carries the same checker cells down the page. */
.sculpture-stage{position:fixed;inset:0;z-index:3;pointer-events:none;overflow:hidden}
.sculpture-stage .art-reveal{position:absolute;inset:0;width:100%;height:100%;opacity:1;mask-image:none;pointer-events:none;touch-action:pan-y}
.has-page-sculpture .hero{cursor:var(--sculpture-cursor,auto)}
.page-sculpture-controls{position:fixed;z-index:60;right:var(--gutter);bottom:20px;padding:8px;background:#0c0d0ce8;border:1px solid #ffffff18;backdrop-filter:blur(12px)}
.page-sculpture-controls .art-control{max-width:none;gap:8px}
.page-sculpture-controls .figure-label,.page-sculpture-controls .pointer-hint{display:none}
@media(max-width:760px){.page-sculpture-controls{right:14px;bottom:14px;padding:6px}}

/* Section backgrounds sit below the fragments; all reading surfaces sit above. */
.has-page-sculpture .hero{isolation:auto;z-index:auto}
.has-page-sculpture .hero-flow{z-index:0}
.has-page-sculpture .hero-copy,.has-page-sculpture .hero-bottom{z-index:4}
.has-page-sculpture main>section:not(.hero)>*,.has-page-sculpture .site-footer>*{position:relative;z-index:4;clip-path:inset(var(--header-overlap,0px) -16px -16px -16px)}

/* The word stays in the sentence; its interaction uses the same 3D tile morph. */
.break-trigger{appearance:none;display:inline;margin:0;padding:0;border:0;border-radius:0;background:none;color:inherit;font:inherit;letter-spacing:inherit;line-height:inherit;pointer-events:auto;vertical-align:baseline}
.break-trigger:enabled{cursor:pointer;text-decoration:underline;text-decoration-style:dashed;text-decoration-color:#c7a67588;text-underline-offset:.2em;text-decoration-thickness:1px;transition:color .2s,text-shadow .2s}
.break-trigger:enabled:hover,.break-trigger.is-breaking{color:var(--brass);text-shadow:1px 0 #c7a67555,-1px 0 #b9cde844}
.break-trigger:focus-visible{outline:1px solid var(--brass);outline-offset:5px;color:var(--brass)}
