:root {
  --paper:#f6eee3;--paper-bright:#fffaf2;--ink:#1a1110;--night:#060202;--cream:#eee0c9;
  --maroon:#3d0000;--crimson:#7e1e25;--orange:#cc4400;--iris-blue:#26aae1;
  --iris-navy:#0d4c6b;--iris-magenta:#aa1b4c;--iris-slate:#5c6ead;--iris-deep:#0e277a;
  --iris-gradient:linear-gradient(90deg,#aa1b4c,#5c6ead,#0e277a);
  --serif:"Playfair Display",Georgia,serif;--sans:"Geist","Segoe UI",sans-serif;--mono:"Geist Mono",Consolas,monospace;
  --section-width:min(1100px,calc(100vw - 4.8rem));
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:112px}
body{margin:0;color:var(--ink);background-color:var(--paper);background-image:radial-gradient(ellipse 55% 45% at 10% 20%,rgba(126,30,37,.075),transparent 70%),radial-gradient(ellipse 45% 55% at 90% 10%,rgba(204,68,0,.045),transparent 65%),radial-gradient(ellipse 60% 50% at 75% 85%,rgba(92,110,173,.05),transparent 70%),repeating-linear-gradient(93deg,rgba(61,0,0,.016) 0 1px,transparent 1px 5px);font-family:var(--sans);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}
body.menu-open{overflow:hidden}img{display:block;max-width:100%}a{color:inherit;text-decoration:none}button{font:inherit}
:focus-visible{outline:2px solid var(--iris-blue);outline-offset:5px}::selection{color:#fff;background:var(--iris-navy)}
.skip-link{position:fixed;z-index:1000;top:12px;left:12px;padding:.7rem 1rem;color:#fff;background:var(--iris-navy);font-family:var(--mono);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;transform:translateY(-160%);transition:transform .2s ease}.skip-link:focus{transform:none}

.site-nav{position:fixed;z-index:300;top:0;right:0;left:0;display:flex;align-items:center;justify-content:space-between;padding:1.2rem 2.4rem;transition:color .4s ease,background .4s ease,box-shadow .4s ease}
.site-nav.over-hero{color:var(--cream);background:linear-gradient(to bottom,rgba(6,2,2,.95),transparent)}
.site-nav.is-scrolled:not(.over-hero){color:var(--ink);background:rgba(246,238,227,.93);box-shadow:0 8px 26px rgba(61,0,0,.08);backdrop-filter:blur(14px)}
.nav-brand{display:flex;align-items:center;gap:.72rem}.nav-brand img{width:68px;height:68px}.brand-dark{display:none}.site-nav:not(.over-hero) .brand-light{display:none}.site-nav:not(.over-hero) .brand-dark{display:block}
.nav-brand>span{display:grid;line-height:.9}.nav-brand strong{font-family:var(--serif);font-size:.92rem;font-weight:800;letter-spacing:-.02em}.nav-brand small{margin-top:.45rem;font-family:var(--mono);font-size:.5rem;letter-spacing:.17em;text-transform:uppercase;opacity:.66}
.menu-button{display:flex;align-items:center;gap:.55rem;padding:.48rem .78rem;color:inherit;background:transparent;border:1px solid currentColor;font-family:var(--mono);font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;opacity:.8;cursor:pointer;transition:border-color .25s ease,color .25s ease,opacity .25s ease}.menu-button:hover{color:var(--iris-blue);opacity:1}.menu-lines{width:15px;display:grid;gap:4px}.menu-lines i{width:100%;height:1px;display:block;background:currentColor}

.menu-overlay{position:fixed;z-index:500;inset:0;display:grid;place-items:center;padding:4rem 2rem 2rem;overflow:hidden;color:var(--cream);background:radial-gradient(circle at 30% 28%,rgba(170,27,76,.26),transparent 30%),radial-gradient(circle at 72% 72%,rgba(14,39,122,.35),transparent 34%),var(--night);opacity:0;visibility:hidden;transform:scale(1.015);transition:opacity .3s ease,visibility .3s ease,transform .3s ease}
.menu-overlay.is-open{opacity:1;visibility:visible;transform:none}
.menu-orbit,.soon-orbit{position:absolute;width:min(64vw,850px);aspect-ratio:1;border:1px solid rgba(38,170,225,.13);border-radius:50%}
.menu-orbit::before,.menu-orbit::after,.soon-orbit::before,.soon-orbit::after{content:"";position:absolute;inset:14%;border:1px solid rgba(170,27,76,.18);border-radius:50%}.menu-orbit::after,.soon-orbit::after{inset:31%;border-color:rgba(92,110,173,.2)}
.menu-close{position:absolute;top:1.6rem;right:2.4rem;width:46px;height:46px;color:var(--cream);background:transparent;border:1px solid rgba(238,224,201,.3);font-size:1.55rem;cursor:pointer}
.menu-overlay nav{position:relative;z-index:1;display:grid;min-width:min(620px,90vw)}
.menu-overlay nav a{display:grid;grid-template-columns:52px 1fr;align-items:center;padding:.62rem 0;border-bottom:1px solid rgba(238,224,201,.12);font-family:var(--serif);font-size:clamp(2.2rem,5vw,4.5rem);font-weight:800;line-height:1.1;transition:color .2s ease,padding-left .2s ease}.menu-overlay nav a:hover{padding-left:.5rem;color:var(--iris-blue)}.menu-overlay nav span{font-family:var(--mono);font-size:.65rem;letter-spacing:.12em;color:var(--iris-blue)}
.menu-meta{position:absolute;right:2.4rem;bottom:2rem;left:2.4rem;display:flex;justify-content:space-between;gap:2rem;padding-top:1rem;border-top:1px solid rgba(238,224,201,.12);font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;opacity:.6}.menu-meta p{margin:0}

.portfolio-hero{position:relative;min-height:100svh;display:flex;align-items:center;overflow:hidden;color:var(--cream);background:var(--night)}
.hero-background,.hero-spectrum,.hero-shadow{position:absolute;inset:0}.hero-background img{width:100%;height:100%;object-fit:cover;object-position:center}.hero-spectrum{z-index:1;background:var(--iris-gradient);opacity:.43;mix-blend-mode:color}.hero-shadow{z-index:2;background:linear-gradient(to right,rgba(6,2,2,.95) 0%,rgba(6,2,2,.74) 43%,rgba(6,2,2,.22) 73%,transparent 100%),linear-gradient(to top,rgba(6,2,2,.9) 0%,rgba(6,2,2,.16) 35%,transparent 68%)}
.hero-inner{position:relative;z-index:3;width:min(1140px,calc(100vw - 4.8rem));display:grid;grid-template-columns:1.12fr .88fr;grid-template-rows:1fr auto;gap:2.5rem 4rem;align-items:center;margin:0 auto;padding:9.5rem 0 3rem}.hero-copy{max-width:680px}
.hero-label,.section-label,.project-label{font-family:var(--mono);font-size:.72rem;letter-spacing:.27em;text-transform:uppercase}.hero-label{margin:0 0 1rem;color:var(--iris-blue)}
.hero-copy h1{margin:0 0 1.35rem;font-family:var(--serif);font-size:clamp(3.3rem,6.2vw,5.4rem);font-weight:900;letter-spacing:-.025em;line-height:1.04}.hero-copy h1 em{display:block;color:var(--iris-blue)}
.hero-description{max-width:620px;margin:0 0 1.75rem;font-size:1.02rem;font-weight:300;line-height:1.85;opacity:.9}.hero-tags{display:flex;flex-wrap:wrap;gap:.55rem;margin-bottom:2rem}.hero-tags span{padding:.28rem .72rem;color:var(--iris-blue);border:1px solid rgba(38,170,225,.52);font-family:var(--mono);font-size:.66rem;letter-spacing:.13em;text-transform:uppercase}
.hero-actions,.soon-actions{display:flex;flex-wrap:wrap;gap:.9rem}.button{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:.95rem 2rem;font-family:var(--mono);font-size:.76rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;transition:transform .2s ease,background .3s ease,border-color .3s ease,box-shadow .3s ease}.button:hover{transform:translateY(-2px)}
.button-primary{color:#fff;background:var(--iris-navy);border:1px solid var(--iris-navy);box-shadow:0 8px 28px rgba(13,76,107,.42)}.button-primary:hover{background:var(--iris-blue);border-color:var(--iris-blue);box-shadow:0 0 55px rgba(38,170,225,.36)}.button-secondary{color:inherit;background:transparent;border:1px solid rgba(238,224,201,.3)}.button-secondary:hover{border-color:currentColor}
.hero-emblem{display:flex;justify-content:flex-end}.emblem-frame{width:min(330px,100%);aspect-ratio:.78;display:flex;flex-direction:column;justify-content:space-between;padding:1.7rem;color:#fff;background:rgba(13,76,107,.79);border:8px solid rgba(255,255,255,.92);box-shadow:0 0 58px rgba(38,170,225,.28)}.emblem-frame span,.emblem-frame small{font-size:1rem;font-weight:600;line-height:1.12}.emblem-frame strong{margin-left:-.12em;font-family:var(--serif);font-size:clamp(6rem,10vw,9rem);font-weight:900;line-height:.75}.emblem-frame small{font-family:var(--mono);font-size:.55rem;letter-spacing:.13em;text-transform:uppercase}
.hero-bar{grid-column:1/-1;display:flex;align-items:center;gap:2rem;padding-top:1.5rem;border-top:1px solid rgba(238,224,201,.16)}.hero-bar>span{flex:0 0 auto;display:flex;align-items:center;gap:.6rem;padding:.38rem .9rem;color:#e9b361;border:1px solid rgba(226,139,38,.5);border-radius:999px;font-family:var(--mono);font-size:.63rem;letter-spacing:.15em;text-transform:uppercase}.hero-bar i{width:8px;height:8px;border-radius:50%;background:#e28b26;box-shadow:0 0 12px rgba(226,139,38,.8)}.hero-bar p{margin:0;font-size:.78rem;font-weight:300;opacity:.66}

.section{width:var(--section-width);margin:0 auto;padding:6.5rem 0}.section-label{position:relative;margin:0 0 1rem;padding-top:1.15rem;color:var(--iris-navy)}.section-label::before{content:"";position:absolute;top:0;left:0;width:3rem;height:2px;background:var(--iris-gradient)}
.section-title{margin:0;font-family:var(--serif);font-size:clamp(2.7rem,5.4vw,5.3rem);font-weight:900;letter-spacing:-.03em;line-height:1.06}.section-title em,.soon-inner h2 em{background:linear-gradient(110deg,#aa1b4c,#5c6ead 35%,#0e277a 65%,#1f8fd0);background-size:180% auto;-webkit-background-clip:text;background-clip:text;color:transparent;font-style:italic}
.profile-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(3rem,8vw,8rem);margin-top:4.2rem}.profile-quote{position:relative;margin:0;padding:2.2rem 0 0 2.2rem;border-top:1px solid rgba(13,76,107,.32);border-left:1px solid rgba(13,76,107,.32)}.profile-quote>span{position:absolute;top:-.55rem;left:.45rem;color:var(--iris-blue);font-family:var(--serif);font-size:3.8rem;line-height:1}.profile-quote p{margin:0;font-family:var(--serif);font-size:clamp(1.45rem,2.7vw,2.1rem);font-style:italic;font-weight:700;line-height:1.32}.profile-copy{font-size:1.02rem;font-weight:300;line-height:1.9}.profile-copy p{margin:0 0 1.4rem}
.profile-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;margin-top:4.2rem}.profile-facts article{min-height:260px;padding:1.55rem;background:rgba(13,76,107,.035);border:1px solid rgba(13,76,107,.2);border-top-width:3px}.profile-facts article:nth-child(1){border-top-color:var(--iris-magenta)}.profile-facts article:nth-child(2){border-top-color:var(--iris-slate)}.profile-facts article:nth-child(3){border-top-color:var(--iris-deep)}
.profile-facts span,.footer-links span{display:block;margin-bottom:1.5rem;color:var(--iris-navy);font-family:var(--mono);font-size:.62rem;letter-spacing:.18em;text-transform:uppercase}.profile-facts strong{display:block;font-family:var(--serif);font-size:1.75rem;font-weight:900;line-height:1.1}.profile-facts p{margin:1rem 0 0;font-size:.86rem;font-weight:300;line-height:1.7}
.section-divider{width:min(1240px,calc(100vw - 3rem));height:1px;margin:0 auto;background:linear-gradient(to right,transparent,rgba(26,17,16,.15),transparent)}
.work-heading{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(3rem,8vw,7rem);align-items:end}.work-heading>p{margin:0 0 .5rem;font-weight:300;line-height:1.85}

.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;margin-top:4rem}.project-card{min-width:0;display:flex;flex-direction:column;overflow:hidden;background:rgba(13,76,107,.035);border:1px solid rgba(13,76,107,.23);border-top-width:3px;transition:transform .32s ease,box-shadow .32s ease,background .32s ease}.project-card:nth-child(1){border-top-color:var(--iris-magenta)}.project-card:nth-child(2){border-top-color:var(--iris-slate)}.project-card:nth-child(3){border-top-color:var(--iris-deep)}.project-card:hover{transform:translateY(-8px);background:rgba(13,76,107,.065);box-shadow:0 18px 40px rgba(13,76,107,.14),0 4px 12px rgba(61,0,0,.07)}
.project-image,.project-visual{min-height:210px;overflow:hidden}.project-image img{width:100%;height:210px;object-fit:cover;filter:grayscale(.3) contrast(1.03);transition:transform .4s ease,filter .4s ease}.project-card:hover .project-image img{transform:scale(1.04);filter:none}.project-visual{position:relative;display:grid;place-items:center;color:var(--cream);background:linear-gradient(135deg,var(--maroon),var(--iris-navy) 55%,var(--iris-deep))}.project-visual>span{position:absolute;right:1rem;bottom:.8rem;left:1rem;font-family:var(--mono);font-size:.55rem;letter-spacing:.13em;text-align:center;text-transform:uppercase;opacity:.66}
.scope-rings{position:relative;width:120px;height:120px}.scope-rings i{position:absolute;inset:0;border:1px solid rgba(38,170,225,.72);border-radius:50%}.scope-rings i:nth-child(2){inset:18%}.scope-rings i:nth-child(3){inset:36%;background:rgba(38,170,225,.75);border:0}.scope-rings i:nth-child(4){width:9px;height:9px;inset:auto;top:8px;right:4px;background:#e28b26;border:0}.scope-rings i:nth-child(5){width:7px;height:7px;inset:auto;bottom:12px;left:2px;background:#aa1b4c;border:0}
.braille-cell{display:grid;grid-template-columns:repeat(2,30px);gap:12px 20px}.braille-cell i{width:30px;height:30px;border:1px solid rgba(238,224,201,.48);border-radius:50%}.braille-cell i:nth-child(1),.braille-cell i:nth-child(4),.braille-cell i:nth-child(5){background:var(--iris-blue);border-color:var(--iris-blue);box-shadow:0 0 18px rgba(38,170,225,.42)}
.project-body{flex:1;display:flex;flex-direction:column;padding:1.55rem}.project-label{margin:0 0 1.35rem;padding-bottom:.65rem;color:var(--iris-navy);border-bottom:1px solid rgba(13,76,107,.18);font-size:.61rem;letter-spacing:.14em}.project-body h3{min-height:3.2rem;margin:0;font-family:var(--serif);font-size:clamp(2rem,3vw,2.6rem);font-weight:900;letter-spacing:-.025em;line-height:1}.project-body>p:not(.project-label){margin:1.2rem 0 1.8rem;font-size:.86rem;font-weight:300;line-height:1.75}.project-body>a{width:fit-content;margin-top:auto;padding-bottom:.25rem;color:var(--iris-navy);border-bottom:1px solid currentColor;font-family:var(--mono);font-size:.63rem;letter-spacing:.1em;text-transform:uppercase}

.soon-section{position:relative;min-height:650px;display:grid;place-items:center;padding:6rem 2rem;overflow:hidden;color:var(--cream);background:radial-gradient(circle at 20% 30%,rgba(170,27,76,.27),transparent 31%),radial-gradient(circle at 80% 72%,rgba(14,39,122,.43),transparent 38%),var(--night)}.soon-orbit{width:min(72vw,820px)}.soon-inner{position:relative;z-index:1;max-width:820px;text-align:center}.section-label-dark{width:fit-content;margin-inline:auto;color:var(--iris-blue)}.section-label-dark::before{left:50%;transform:translateX(-50%)}.soon-inner h2{margin:0;font-family:var(--serif);font-size:clamp(3rem,6.6vw,6.5rem);font-weight:900;letter-spacing:-.03em;line-height:1.03}.soon-inner>p:not(.section-label){max-width:600px;margin:1.6rem auto 2rem;font-weight:300;line-height:1.85;opacity:.78}.soon-actions{justify-content:center}

.site-footer{color:var(--ink);border-top:1px solid rgba(26,17,16,.09)}.footer-inner{width:var(--section-width);display:grid;grid-template-columns:.88fr 1.12fr;gap:3rem;margin:0 auto;padding-top:3.5rem}.footer-brand{display:flex;gap:1rem;padding-right:2.5rem;border-right:1px solid rgba(26,17,16,.1)}.footer-brand img{width:76px;height:76px}.footer-brand strong{font-family:var(--serif);font-size:1.35rem;font-weight:900}.footer-brand p{max-width:300px;margin:.55rem 0 0;font-family:var(--serif);font-size:.88rem;font-style:italic;opacity:.58}.footer-links{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}.footer-links span{margin-bottom:.6rem;color:inherit;opacity:.42}.footer-links a{display:block;margin:.24rem 0;font-size:.8rem;font-weight:300;opacity:.66}.footer-links a:hover{opacity:1}.footer-bottom{grid-column:1/-1;display:flex;justify-content:space-between;gap:1rem;margin-top:.8rem;padding:1rem 0;border-top:1px solid rgba(26,17,16,.09);font-size:.68rem;letter-spacing:.04em;text-transform:uppercase;opacity:.42}
.back-to-top{position:fixed;z-index:120;right:1.8rem;bottom:1.8rem;width:48px;height:48px;display:grid;place-items:center;color:var(--iris-navy);background:rgba(246,238,227,.9);border:1px solid var(--iris-navy);border-radius:50%;opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .25s ease,visibility .25s ease,transform .25s ease}.back-to-top.is-visible{opacity:1;visibility:visible;transform:none}
.js .reveal{opacity:0;transform:translateY(22px);transition:opacity .72s ease,transform .72s ease}.js .reveal.is-visible{opacity:1;transform:none}.project-grid .reveal:nth-child(2){transition-delay:.09s}.project-grid .reveal:nth-child(3){transition-delay:.18s}

@media(max-width:920px){
  :root{--section-width:min(100% - 3rem,760px)}
  .hero-inner{width:min(100% - 3rem,760px);grid-template-columns:1fr;grid-template-rows:auto;gap:1.6rem;padding-top:8rem}.hero-emblem{grid-row:1;justify-content:flex-start}.emblem-frame{width:116px;aspect-ratio:1;padding:.7rem;border-width:4px}.emblem-frame span,.emblem-frame small{display:none}.emblem-frame strong{margin:auto;font-size:3.8rem}.hero-bar{grid-column:auto}
  .profile-grid,.work-heading{grid-template-columns:1fr;gap:2.4rem}.project-grid{grid-template-columns:1fr}.project-card{display:grid;grid-template-columns:.8fr 1.2fr}.project-image,.project-visual,.project-image img{height:100%;min-height:320px}.footer-inner{grid-template-columns:1fr}.footer-brand{padding:0 0 2rem;border-right:0;border-bottom:1px solid rgba(26,17,16,.1)}
}
@media(max-width:640px){
  :root{--section-width:calc(100% - 2.8rem)}html{scroll-padding-top:92px}.site-nav{padding:1rem 1.35rem}.nav-brand img{width:56px;height:56px}.nav-brand>span{display:none}.menu-button{padding:.42rem .62rem;font-size:.62rem}.menu-close{top:1.2rem;right:1.35rem}.menu-overlay nav{min-width:100%}.menu-overlay nav a{grid-template-columns:38px 1fr;font-size:clamp(2rem,11vw,3.1rem)}.menu-meta{right:1.35rem;left:1.35rem;display:grid;gap:.4rem}
  .hero-inner{width:calc(100% - 2.8rem);padding:7.2rem 0 2rem}.hero-copy h1{font-size:clamp(2.8rem,14vw,4.2rem)}.hero-description{font-size:.95rem;line-height:1.75}.hero-actions,.soon-actions{display:grid}.button{width:100%}.hero-bar{align-items:flex-start;flex-direction:column;gap:.9rem}
  .section{padding:4.5rem 0}.section-title{font-size:clamp(2.45rem,12.5vw,3.8rem)}.profile-grid{margin-top:3rem}.profile-facts{grid-template-columns:1fr;margin-top:3rem}.profile-facts article{min-height:210px}.project-grid{margin-top:3rem}.project-card{display:flex}.project-image,.project-visual,.project-image img{min-height:205px;height:205px}.project-body h3{min-height:0;font-size:2.15rem}
  .soon-section{min-height:610px;padding:5rem 1.4rem}.soon-inner h2{font-size:clamp(2.8rem,13vw,4.4rem)}.footer-inner{width:calc(100% - 2.8rem)}.footer-links{grid-template-columns:1fr 1fr}.footer-links div:first-child{display:none}.footer-bottom{align-items:flex-start;flex-direction:column}.back-to-top{right:1rem;bottom:1rem}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
