body{background-color:#101012;background-image:linear-gradient(#ffffff03 1px,transparent 1px),linear-gradient(90deg,#ffffff03 1px,transparent 1px);background-size:72px 72px}.hero-narrative{padding:50px 0 0;min-height:calc(100svh - 86px);display:flex;flex-direction:column;justify-content:space-between}.hero-kicker{display:flex;justify-content:space-between;gap:20px;font:10px monospace;letter-spacing:2px;color:var(--muted)}.name-title{max-width:none;margin:55px 0 30px;font-size:clamp(80px,14vw,195px);line-height:.86;letter-spacing:-.085em;font-weight:800}.name-title>span{display:block}.name-first{position:relative}.name-star{display:inline-block;font-size:.4em;line-height:1;color:var(--accent);vertical-align:top;margin:10px 0 0 45px;animation:spin-star 24s linear infinite}.name-last{text-align:right;margin-top:14px}.name-period{color:var(--accent)}.hero-description{display:flex;justify-content:space-between;align-items:end;margin:40px 0 55px;gap:35px}.hero-description p{font-size:clamp(20px,2.2vw,29px);line-height:1.45;letter-spacing:-.7px;margin:0;color:var(--muted)}.hero-description strong{color:var(--ink);font-weight:500}.hero-description>div{display:flex;flex-direction:column;gap:18px}.hero-description>div>span{font:9px monospace;letter-spacing:1px;color:var(--muted)}.hero-description a{display:flex;justify-content:space-between;gap:30px;font-size:13px;border-bottom:1px solid var(--line);padding-bottom:10px}.hero-description b{font-size:22px;color:var(--accent)}.hero-rule{display:flex;justify-content:space-between;padding:22px 0;border-top:1px solid var(--line);font:9px monospace;letter-spacing:1px;color:var(--muted)}.hero-narrative+.meta{display:none}.focus-section{min-height:150svh;padding:0;border:0;position:relative}.focus-sticky{position:sticky;top:120px;padding:95px 0 60px}.focus-layout{display:grid;grid-template-columns:1fr 1.15fr;gap:40px;align-items:center;margin:45px 0}.focus-layout h2{font-size:clamp(30px,4.2vw,64px);font-weight:400;line-height:1.12}.focus-words{font-size:clamp(50px,7.4vw,108px);font-weight:650;line-height:1.15;letter-spacing:-.06em}.focus-words span{display:block;color:#55515c;transition:color .4s,transform .5s;transform:translateX(15px)}.focus-words span.focus-active{color:var(--accent);transform:translateX(0)}.focus-copy{font-size:17px;color:var(--muted);max-width:500px;margin-left:auto}.light-panel{color:#1b1820;background:#eeece7;position:relative}.statement{margin-left:calc((100vw - 100%)/-2);margin-right:calc((100vw - 100%)/-2);padding:100px max(6vw,calc((100vw - 1280px)/2));border:0;min-height:100svh;display:flex;flex-direction:column;justify-content:center}.light-panel .eyebrow{color:#72558d}.scroll-statement{font-size:clamp(35px,5.3vw,78px);line-height:1.15;letter-spacing:-.055em;max-width:1180px;margin:50px 0 65px}.scroll-statement .word{color:#23202a;transition:color .15s}.scroll-statement.word-motion .word{color:#bfbac4}.scroll-statement.word-motion .word.lit{color:#23202a}.statement-bottom{display:flex;justify-content:space-between;border-top:1px solid #c9c4cd;padding-top:22px;font:10px monospace;letter-spacing:1px}#work{border-top:0;padding-bottom:45px}#work>.sectionhead{margin-bottom:55px}#work .sectionhead h2{font-size:clamp(38px,5vw,72px)}.work-scroll{position:relative}.project-story{padding:45px 48px 0;color:var(--ink);position:relative;z-index:2}.project-story>span{font:9px monospace;letter-spacing:2px;color:#eee9f4aa}.project-story h3{font-size:clamp(30px,3.5vw,50px);line-height:1.12;letter-spacing:-.05em;max-width:660px;margin:24px 0 20px}.project-story p{max-width:500px;color:#e9e2f0aa;font-size:15px}.projects{gap:30px}.project{border-radius:8px;overflow:hidden;background:#2c2338;border:1px solid #ffffff12;position:relative}.project-1{background:#233c32}.project-2{background:#353141}.project .art{background:transparent!important;min-height:410px!important;flex:1;padding-top:20px}.project .art:before{display:none}.project .projectline{padding:20px 35px;background:#0002;border:0}.projectline h3{font-size:24px}.projectline p{max-width:none}.mock{min-height:270px}.chart{height:135px}.phone{min-height:330px}.system{padding:35px}.system h3{font-size:35px}.work-footer{display:flex;justify-content:space-between;padding-top:25px;font:9px monospace;letter-spacing:1px;color:var(--muted)}.case-index{padding:40px 0 90px;border:0}.case-index>a{display:grid;grid-template-columns:1fr 1fr 50px;gap:20px;align-items:center;padding:32px 0;border-bottom:1px solid var(--line);transition:padding .3s,color .3s}.case-index>a:hover{padding-left:15px;color:var(--accent)}.case-index>a>span{font-size:clamp(24px,3vw,42px);font-weight:600;letter-spacing:-1px}.case-index small{font:10px monospace;color:var(--muted);margin-right:30px;letter-spacing:0}.case-index p{font:11px monospace;color:var(--muted)}.case-index b{font-size:36px;font-weight:400}.contact.light-panel{margin-left:calc((100vw - 100%)/-2);margin-right:calc((100vw - 100%)/-2);padding:110px max(6vw,calc((100vw - 1280px)/2));border-radius:20px 20px 0 0}.contact.light-panel h2{color:#211b29}.contact.light-panel em{color:#76548d}.contact.light-panel p.intro{color:#6c6573}.contact.light-panel .button{background:#211b29;color:#eee7f6;border-color:#211b29}.contact.light-panel:after{color:#72558d24;right:6vw}.contact.light-panel .button:hover{background:#77568f;border-color:#77568f}.has-horizontal .work-scroll{height:300svh}.has-horizontal .projects{position:sticky;top:105px;display:flex;width:100%;height:calc(100svh - 135px);gap:24px;will-change:transform}.has-horizontal .project{flex:0 0 100%;display:flex;flex-direction:column;max-height:800px}.has-horizontal #work{overflow:clip}.has-horizontal #work:has(.projects){overflow:visible}.has-horizontal .project .art{min-height:180px!important}.has-horizontal .project-story{padding-top:30px}.has-horizontal .project-story h3{font-size:clamp(28px,3.5vw,48px);margin:14px 0}.has-horizontal .project-story p{margin:0}.has-horizontal .project .mock{max-height:290px;min-height:230px}.has-horizontal .project .phone{min-height:260px;max-width:180px;padding:25px 14px}.has-horizontal .phone h3{font-size:25px}.has-horizontal .tile{padding:10px}.has-horizontal .project .system{max-width:600px;padding:25px}.horizontal-clip{overflow:clip;position:sticky;top:105px;height:calc(100svh - 135px);border-radius:8px}.has-horizontal .horizontal-clip .projects{position:relative;top:0;height:100%}.name-title>span{animation:opening-name 1s cubic-bezier(.16,1,.3,1) both}.name-title .name-last{animation-delay:.12s}@keyframes opening-name{from{opacity:0;transform:translateY(45px)}to{opacity:1;transform:translateY(0)}}@keyframes spin-star{to{transform:rotate(360deg)}}@media(max-width:800px){.hero-narrative{min-height:85svh;padding-top:30px}.hero-kicker{font-size:8px;letter-spacing:1px}.name-title{font-size:15vw;margin:60px 0 25px}.name-star{margin:0 0 0 15px}.hero-description{align-items:start;flex-direction:column;margin:30px 0}.hero-description p{font-size:23px}.hero-description>div{width:100%}.hero-rule{font-size:8px;gap:20px}.hero-rule span:last-child{max-width:160px;text-align:right}.focus-sticky{top:115px;padding-top:70px}.focus-layout{grid-template-columns:1fr;gap:20px}.focus-layout h2{font-size:32px}.focus-words{font-size:15vw}.focus-copy{font-size:15px;margin-left:0}.statement{padding-top:80px;padding-bottom:80px;min-height:80svh}.scroll-statement{font-size:9vw}.statement-bottom{font-size:8px;gap:15px}.project-story{padding:30px 25px 0}.project-story h3{font-size:31px}.project-story p{font-size:14px}.project .art{min-height:360px!important}.case-index>a{grid-template-columns:1fr 30px;padding:27px 0}.case-index p{grid-column:1;grid-row:2;font-size:10px;margin:0 0 0 40px}.case-index small{margin-right:20px}.case-index b{grid-column:2;grid-row:1/3}.contact.light-panel{padding-top:80px;padding-bottom:80px}.project .projectline{padding:18px 24px}.project .projectline p{font-size:8px;max-width:140px}.project .projectline h3{font-size:23px}}@media(prefers-reduced-motion:reduce){.name-title>span{animation:none}.focus-section{min-height:auto}.focus-sticky{position:static}.focus-words span{color:var(--accent);transform:none}.scroll-statement.word-motion .word{color:#23202a}.hero-narrative{min-height:85svh}}

/* Obsidian / ivory: higher contrast, a quiet dot field instead of a grid. */
:root{--bg:#050505;--ink:#f7f5ef;--muted:#b6b6b0;--accent:#e4dfcf;--line:#343432}
body{background-color:#050505;background-image:radial-gradient(circle,#ffffff16 .8px,transparent 1px);background-size:22px 22px;background-position:11px 11px}
body:before{opacity:.018}header{background:#050505ed;border-color:#30302e}.logo span,em,.eyebrow,.cross,.step small,.service small,.case-meta small,.card-bottom small,.focus-words span.focus-active{color:#e4dfcf}
.button{background:#e4dfcf;border-color:#e4dfcf;color:#090909}.button:hover{background:#fffdf6;color:#090909;box-shadow:0 8px 40px #ffffff15}.reading-progress{background:#e4dfcf}::selection{background:#e4dfcf;color:#050505}
.hero-index,.hero-description>div>span,.hero-rule,.hero-bottom,.meta,.work-footer{color:#b6b6b0}.hero-description b{color:#f1eee4}.focus-words span{color:#666661}.focus-words span.focus-active{color:#f5f1e5}.step-number{color:#89877f}
.art,.project:nth-child(2) .art,.project:nth-child(3) .art{background:radial-gradient(ellipse at 40% 10%,#454641,#141514 72%)}
.project{background:#191a18;border-color:#45463f}.project-1{background:#20221e}.project-2{background:#292923}.project .art{background:transparent!important}.project-story>span{color:#deddd4}.project-story p{color:#c6c7bd}.project .projectline{background:#0005}.projectline p{color:#c6c7bd}
.mock,.phone,.system,.decision-visual,.sculpture{filter:grayscale(1)}.mock{border-color:#73756a;background:#111310}.mockside{color:#bbbdb0}.chart i{background:linear-gradient(#ede9d9,#858b76)}.chart{border-color:#767c6d}.phone{background:#eceee5;color:#141812;border-color:#121610}.tile{background:#dce0d0;border-color:#adb5a1}.system{background:#e9e8de;color:#22251e}.pill{background:#464d3b}.swatches i{background:#747b66}.swatches i:nth-child(2){background:#b5bba6}.swatches i:nth-child(3){background:#252b20}
.designer-card{background:#151613;border-color:#494b42}.card-top,.card-bottom div{border-color:#44473d}.monogram{color:#e4dfcf;background:radial-gradient(ellipse,#464a3a,transparent 65%)}.service:hover{background:#e4dfcf09}.decision-visual{background:linear-gradient(130deg,#35382d,#12140f);border-color:#646b57}.decision-visual span{color:#e4dfcf}
.light-panel{background:#eeeee7;color:#131511}.light-panel .eyebrow{color:#565d49}.scroll-statement .word,.scroll-statement.word-motion .word.lit{color:#151712}.scroll-statement.word-motion .word{color:#aaa99e}.statement-bottom{border-color:#b8baad}.contact.light-panel h2{color:#151712}.contact.light-panel em{color:#5c654e}.contact.light-panel p.intro{color:#50564a}.contact.light-panel:after{color:#424c3524}.contact.light-panel .button{background:#171b12;border-color:#171b12;color:#f6f7ee}.contact.light-panel .button:hover{background:#414b34;border-color:#414b34}.faq summary span{color:#e4dfcf}
@media(prefers-reduced-motion:reduce){.focus-words span{color:#f5f1e5}.scroll-statement.word-motion .word{color:#151712}}

/* About: career and education */
.about{align-items:start}.about .about-lead{font-size:21px;line-height:1.65;margin-top:20px}.about-copy{font-size:16px;line-height:1.8;color:var(--muted)}.credentials{margin:30px 0;border-top:1px solid var(--line)}.credentials>div{padding:18px 0;border-bottom:1px solid var(--line)}.credentials small{display:block;font:10px monospace;letter-spacing:1px;text-transform:uppercase;color:var(--muted);margin-bottom:7px}.credentials strong{display:block;font-size:16px;font-weight:500;line-height:1.5;color:var(--ink)}.credentials>div:first-child strong{font-size:32px;letter-spacing:-1px}@media(max-width:700px){.about .about-lead{font-size:19px}.credentials strong{font-size:15px}}

.hero-bio{display:flex;align-items:center;justify-content:space-between;gap:35px;padding:25px 0 30px;border-top:1px solid var(--line)}.hero-bio p{font-size:15px;line-height:1.7;max-width:760px;color:var(--muted);margin:0}.hero-bio strong{font-weight:500;color:var(--ink)}.hero-bio a{font-size:12px;white-space:nowrap;color:var(--accent)}@media(max-width:700px){.hero-bio{display:block}.hero-bio p{font-size:14px}.hero-bio a{display:inline-block;margin-top:15px}}
