:root{--paper:#f3efe7;--ink:#1e201c;--line:#c9c2b6;--muted:#706b62;--red:#ad452f;--ochre:#d49b54;--green:#536759;--navy:#263644;--white:#fffdf8;--max:1240px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.62 Manrope,Arial,sans-serif}body.menu-open{overflow:hidden}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}button{font:inherit;color:inherit}::selection{background:var(--red);color:white}.shell{width:min(calc(100% - 48px),var(--max));margin:auto}.serif,h1,h2,h3{font-family:Newsreader,Georgia,serif;font-weight:400;line-height:.98}.mono,.eyebrow,.meta{font-family:"DM Mono",monospace;text-transform:uppercase;letter-spacing:.08em}.eyebrow,.meta{font-size:.74rem}.eyebrow{color:var(--red)}h1{font-size:clamp(4rem,9vw,8.5rem);letter-spacing:-.06em}h2{font-size:clamp(2.8rem,5.7vw,5.7rem);letter-spacing:-.045em}h3{font-size:clamp(2rem,3.5vw,3.8rem);letter-spacing:-.025em}p,h1,h2,h3{margin-top:0}.lede{font-family:Newsreader,Georgia,serif;font-size:clamp(1.35rem,2.2vw,2rem);line-height:1.28}.muted{color:var(--muted)}
.topbar{position:sticky;top:0;z-index:1000;background:rgba(243,239,231,.96);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}.nav{height:70px;display:flex;align-items:center;justify-content:space-between}.brand{font-family:Newsreader,serif;font-size:1.25rem}.brand b{font-weight:400;color:var(--red)}.navlinks{display:flex;align-items:center;gap:25px;font-size:.86rem}.navlinks a{padding:7px 0;border-bottom:1px solid transparent}.navlinks a:hover,.navlinks a.active{border-color:var(--red)}.navlinks .contact-link{padding:9px 14px;border:1px solid var(--ink)}.menu-button{display:none;border:1px solid;background:transparent;padding:9px 12px;min-width:70px;position:relative;z-index:1002}.mobile-note{display:none}.page-band{padding:13px 0;color:white;background:var(--red)}.page-band.green{background:var(--green)}.page-band.navy{background:var(--navy)}.page-band.ochre{background:var(--ochre);color:var(--ink)}.page-band .shell{display:flex;justify-content:space-between;gap:20px}.page-band span:last-child{opacity:.75}
.hero{padding:9vh 0 7vh;min-height:calc(100vh - 96px);display:grid;align-content:space-between}.hero-grid{display:grid;grid-template-columns:1.45fr .55fr;gap:6vw;align-items:end}.hero h1{margin:.08em 0 .16em}.hero h1 span{display:block}.hero h1 .second{color:var(--red);font-style:italic;padding-left:12%}.hero-intro{padding-bottom:4vh}.buttons{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}.button{display:inline-flex;align-items:center;gap:18px;border:1px solid;padding:12px 17px;transition:.2s}.button:hover{background:var(--ink);color:var(--paper)}.button.filled{background:var(--ink);color:var(--paper)}.button.filled:hover{background:var(--red);border-color:var(--red)}.hero-bottom{margin-top:70px;padding-top:17px;border-top:1px solid;display:flex;justify-content:space-between;gap:30px}.hero-bottom p{margin:0}
section{padding:105px 0;border-top:1px solid var(--line)}.section-head{display:grid;grid-template-columns:.45fr 1.55fr;gap:35px;margin-bottom:55px}.section-head h2{max-width:970px}.summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--ink);border:1px solid var(--ink)}.summary-card{background:var(--paper);padding:30px;min-height:300px;display:flex;flex-direction:column;justify-content:space-between}.summary-card.featured{grid-column:span 2;background:var(--ink);color:var(--paper)}.summary-card h3{font-size:2.4rem}.arrow{font-size:1.5rem;color:var(--red)}.featured .arrow{color:var(--ochre)}
.method-strip{background:var(--ink);color:var(--paper)}.method-strip .eyebrow{color:var(--ochre)}.method-sequence{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid #565850}.method-step{padding:25px;border-right:1px solid #565850;min-height:180px;display:flex;flex-direction:column;justify-content:space-between}.method-step:last-child{border-right:0}.method-step strong{font-family:Newsreader;font-size:1.6rem;font-weight:400}.method-step span{color:var(--ochre)}.proof-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:7vw}.metric-row{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid;border-bottom:1px solid;margin:35px 0}.metric{padding:23px 18px;border-right:1px solid}.metric:last-child{border:0}.metric strong{font-family:Newsreader;font-size:2.4rem;color:var(--red);font-weight:400;display:block}.work-links a{display:grid;grid-template-columns:90px 1fr 30px;gap:20px;padding:17px 0;border-top:1px solid}.quote-section{background:#d8b57d}.quote-section blockquote{font:400 clamp(2.7rem,6vw,6.5rem)/.98 Newsreader,serif;letter-spacing:-.04em;margin:0;max-width:1050px}.quote-section blockquote em{color:var(--red)}.quote-footer{display:grid;grid-template-columns:1fr 1fr;gap:6vw;margin-top:50px}.route-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}.route-card{border:1px solid;padding:22px;min-height:250px;display:flex;flex-direction:column;justify-content:space-between;transition:.25s}.route-card:hover{transform:translateY(-4px);background:var(--white)}.route-card:nth-child(1){border-top:8px solid var(--red)}.route-card:nth-child(2){border-top:8px solid var(--green)}.route-card:nth-child(3){border-top:8px solid var(--navy)}.route-card:nth-child(4){border-top:8px solid var(--ochre)}.route-card:nth-child(5){border-top:8px solid var(--red)}.route-card h3{font-size:1.75rem}
.page-hero{padding:70px 0 55px}.page-hero h1{font-size:clamp(4rem,8vw,8rem);max-width:1100px;margin:.15em 0}.intro-grid{display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:end}.page-tabs{position:sticky;top:70px;z-index:20;background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.page-tabs .shell{display:flex;overflow-x:auto;scrollbar-width:none}.page-tabs a{white-space:nowrap;padding:14px 22px 14px 0;margin-right:25px;font-size:.78rem;font-family:"DM Mono";text-transform:uppercase}.case-grid{display:grid;grid-template-columns:.42fr 1.58fr;gap:55px}.case-aside{align-self:start;position:sticky;top:140px}.case-grid h2{font-size:clamp(3.1rem,6vw,6.4rem)}.case-lede{font:400 1.6rem/1.28 Newsreader,serif}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--ink);border:1px solid;margin:42px 0}.metrics>div{background:var(--paper);padding:25px}.metrics strong{font:400 2.6rem/1 Newsreader,serif;display:block;color:var(--red);margin:9px 0}.flow{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:30px 0}.flow span,.chip{border:1px solid;padding:7px 11px;border-radius:30px;font-size:.83rem}.flow i{font-style:normal;color:var(--red)}.substory{padding:32px;background:var(--white);margin:35px 0}.substory h3{font-size:2.2rem}.architecture{background:var(--ink);color:var(--paper);padding:30px;margin:35px 0}.layer{display:grid;grid-template-columns:150px 1fr;gap:18px;padding:18px 0;border-top:1px solid #565850}.layer:first-child{border:0}.chips{display:flex;gap:7px;flex-wrap:wrap}.chip{border-color:#73746f;border-radius:0;padding:5px 9px;font-size:.76rem}.layer.human .chip{color:var(--ochre);border-color:var(--ochre)}.project-gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--ink);border:1px solid}.project-card{background:var(--paper);padding:35px;min-height:370px;display:flex;flex-direction:column;justify-content:space-between}.project-card h3{font-size:3rem}.project-card.dark{background:var(--ink);color:var(--paper)}.project-card.red{background:var(--red);color:white}.project-card.image{padding:0;min-height:420px}.project-card.image img{width:100%;height:100%;object-fit:cover}
.theme-intro{background:var(--navy);color:white}.theme-intro .eyebrow{color:#bcd1da}.theme-bars{display:grid;gap:8px}.theme-bar{display:grid;grid-template-columns:65px 1fr 1fr 35px;gap:25px;align-items:center;padding:24px;border:1px solid #71808b}.theme-bar h3{font-family:Manrope;font-size:1.1rem;text-transform:uppercase;letter-spacing:.03em;margin:0}.theme-bar p{margin:0;color:#c8d2d6}.theme-bar:hover{background:#314756}.article-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.article{border:1px solid;padding:26px;min-height:280px;display:flex;flex-direction:column;justify-content:space-between}.article h3{font-size:2rem}.article .tag{color:var(--red)}
.about-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:8vw}.pullquote{font:400 clamp(2.5rem,5vw,5.2rem)/1.02 Newsreader,serif;letter-spacing:-.035em}.origin-box{border:1px solid;padding:30px}.island{font:400 4rem/1 Newsreader,serif;margin:30px 0}.origin-list{display:grid;grid-template-columns:1fr 1fr;gap:8px}.origin-list span{border-top:1px solid;padding-top:7px}.personal-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:16px}.personal-card{border:1px solid;padding:30px;min-height:330px;display:flex;flex-direction:column;justify-content:space-between}.span7{grid-column:span 7}.span5{grid-column:span 5}.dark{background:var(--ink);color:white}.green-card{background:var(--green);color:white}.personal-card h3{font-size:2.6rem}.tags{display:flex;flex-wrap:wrap;gap:7px}.tags span{border:1px solid;padding:5px 8px;border-radius:30px;font-size:.75rem}.timeline-row{display:grid;grid-template-columns:150px 1fr 2fr;gap:30px;padding:30px 0;border-top:1px solid}.timeline-row strong{font:400 1.5rem Newsreader,serif}.capabilities{display:grid;grid-template-columns:repeat(5,1fr);gap:20px}.capability h3{font:500 .8rem "DM Mono";text-transform:uppercase;color:var(--red)}.capability ul{list-style:none;padding:0}.capability li{padding:6px 0;border-bottom:1px solid var(--line);font-size:.85rem}.principles-list{counter-reset:n}.principle{counter-increment:n;display:grid;grid-template-columns:75px 1fr;padding:22px 0;border-top:1px solid}.principle:before{content:"0" counter(n);font-family:"DM Mono";color:var(--red)}.principle p{font:400 clamp(1.7rem,3vw,3rem)/1 Newsreader,serif;margin:0}.contact-page{min-height:calc(100vh - 96px);display:grid;align-content:center}.contact-page h1 em{font-weight:400;color:var(--red)}.contact-options{max-width:620px;margin-left:auto}.contact-options a{display:flex;justify-content:space-between;border-top:1px solid;padding:20px 0}.footer{padding:35px 0;border-top:1px solid}.footer .shell{display:flex;justify-content:space-between;gap:25px;font-size:.78rem}.reveal{opacity:0;transform:translateY(18px);transition:.6s}.reveal.visible{opacity:1;transform:none}
@media(max-width:900px){.shell{width:min(calc(100% - 30px),var(--max))}.nav{height:64px}.menu-button{display:block}.navlinks{position:fixed;inset:64px 0 0;z-index:1001;background:var(--paper);display:none!important;overflow-y:auto;padding:26px 20px 60px;flex-direction:column;align-items:stretch;gap:0;border-top:1px solid var(--ink)}.menu-open .navlinks{display:flex!important}.navlinks a{font:400 2.2rem/1.1 Newsreader,serif;padding:18px 4px;border-bottom:1px solid var(--line)!important}.navlinks .contact-link{border:0;padding:18px 4px}.mobile-note{display:block!important;margin-top:20px;font:400 1rem/1.5 Manrope;color:var(--muted)}.page-band{padding:9px 0}.page-band span:last-child{display:none}.hero{min-height:auto;padding:70px 0 40px}.hero-grid,.section-head,.proof-grid,.quote-footer,.intro-grid,.case-grid,.about-grid{grid-template-columns:1fr}.hero h1{font-size:clamp(3.4rem,16vw,7rem)}.hero h1 .second{padding-left:0}.hero-bottom{flex-direction:column;gap:8px}.summary-grid{grid-template-columns:1fr 1fr}.summary-card.featured{grid-column:span 2}.method-sequence{grid-template-columns:1fr 1fr}.method-step:nth-child(2){border-right:0}.metric-row,.metrics{grid-template-columns:1fr}.metric{border-right:0;border-bottom:1px solid}.route-grid{grid-template-columns:1fr 1fr}.page-hero h1{font-size:clamp(3.6rem,15vw,7rem)}.page-tabs{top:64px}.case-aside{position:static}.project-gallery{grid-template-columns:1fr}.theme-bar{grid-template-columns:45px 1fr 30px}.theme-bar p{display:none}.article-grid{grid-template-columns:1fr 1fr}.span7,.span5{grid-column:span 12}.timeline-row{grid-template-columns:1fr;gap:8px}.capabilities{grid-template-columns:repeat(2,1fr)}section{padding:75px 0}.contact-options{margin-left:0}.footer .shell{flex-direction:column}}
@media(max-width:560px){.summary-grid,.route-grid,.article-grid{grid-template-columns:1fr}.summary-card.featured{grid-column:auto}.method-sequence{grid-template-columns:1fr}.method-step{border-right:0;border-bottom:1px solid #565850}.method-step:last-child{border-bottom:0}.work-links a{grid-template-columns:60px 1fr 20px}.capabilities{grid-template-columns:1fr}.page-tabs a{padding-right:12px;margin-right:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}}

/* Identity and homepage hero */
.logo{display:inline-flex;align-items:center;gap:11px;font-family:Manrope,Arial,sans-serif}.logo-monogram{display:grid;place-items:center;width:34px;height:34px;background:var(--ink);color:var(--paper);font:500 .7rem "DM Mono",monospace;letter-spacing:.06em;transform:rotate(-3deg)}.logo-name{font-family:Newsreader,Georgia,serif;font-size:1.28rem;letter-spacing:-.025em;white-space:nowrap}.logo-name strong{font-weight:500;color:var(--red)}
.hero{padding-top:clamp(34px,5vh,62px);min-height:calc(100vh - 70px)}.hero-grid{grid-template-columns:minmax(0,1.22fr) minmax(340px,.78fr);gap:3vw;align-items:center}.hero-copy{align-self:start}.hero h1{font-size:clamp(4rem,7.8vw,7.7rem);margin:.02em 0 .2em}.hero h1 .second{padding-left:8%}.hero-intro{max-width:690px;padding:0}.hero-intro .lede{max-width:630px}.hero-portrait{position:relative;align-self:stretch;min-height:610px;display:flex;align-items:flex-end;justify-content:center;isolation:isolate;overflow:hidden}.hero-portrait img{position:relative;z-index:3;width:min(100%,590px);height:auto;filter:drop-shadow(0 24px 24px rgba(30,32,28,.14))}.portrait-shape{position:absolute;display:block;z-index:1}.shape-one{width:78%;height:76%;right:2%;bottom:2%;background:var(--navy);border-radius:47% 47% 8% 8%;transform:rotate(5deg)}.shape-two{width:180px;height:180px;left:1%;top:10%;background:var(--ochre);border-radius:50%;z-index:2}.hero-bottom{margin-top:28px}
@media(max-width:900px){.logo{gap:8px}.logo-monogram{width:30px;height:30px}.logo-name{font-size:1.05rem}.hero{padding:35px 0 38px}.hero-grid{grid-template-columns:1fr}.hero-copy{align-self:auto}.hero h1{font-size:clamp(3.3rem,15.5vw,6.4rem)}.hero h1 .second{padding-left:0}.hero-portrait{min-height:460px;max-width:570px;width:100%;margin:15px auto 0}.hero-portrait img{width:min(96%,520px)}.shape-one{width:78%;height:74%;right:8%}.shape-two{width:130px;height:130px;left:2%;top:12%}}
@media(max-width:560px){.logo-name{font-size:.98rem}.hero-portrait{min-height:360px}.hero-portrait img{width:100%}.shape-two{width:92px;height:92px}.hero-bottom{margin-top:18px}}

/* Compact, above-the-fold hero refinement */
.hero{height:calc(100svh - 70px);min-height:620px;max-height:850px;padding:22px 0 14px;grid-template-rows:minmax(0,1fr) auto}.hero-grid{height:100%;min-height:0}.hero-copy{align-self:center}.hero h1{font-size:clamp(3.8rem,6.8vw,6.85rem);line-height:.8;margin:.03em 0 .16em}.hero h1 span{line-height:.87}.hero h1 .second{margin-top:-.08em}.hero-intro .lede{font-size:clamp(1.2rem,1.7vw,1.65rem);margin-bottom:.35em}.hero-intro .muted{margin-bottom:.45em}.hero .buttons{margin-top:16px}.hero-portrait{height:100%;min-height:0;max-height:590px}.hero-bottom{margin-top:8px;padding-top:11px}
@media(min-width:701px) and (max-width:900px){.hero{height:calc(100svh - 64px);min-height:590px;padding:18px 0 12px}.hero-grid{grid-template-columns:minmax(0,1.12fr) minmax(250px,.88fr);gap:2vw}.hero h1{font-size:clamp(3.35rem,8vw,4.45rem)}.hero-intro .lede{font-size:1.18rem}.hero-intro .muted{font-size:.9rem;line-height:1.45}.hero .button{padding:9px 12px;font-size:.82rem}.hero-portrait{height:100%;min-height:0;max-height:510px;margin:0}.hero-portrait img{width:min(100%,460px)}.shape-two{width:105px;height:105px}.hero-bottom{font-size:.64rem}}
@media(max-width:700px){.hero{height:auto;min-height:calc(100svh - 64px);max-height:none;padding:24px 0 12px;display:block}.hero-grid{grid-template-columns:1fr;height:auto}.hero-copy{align-self:auto}.hero h1{font-size:clamp(3.1rem,14.5vw,5rem);line-height:.8}.hero h1 .second{margin-top:-.07em}.hero-intro .lede{font-size:1.18rem}.hero-intro .muted{font-size:.9rem;line-height:1.45}.hero .buttons{margin-top:13px}.hero .button{padding:9px 12px;font-size:.8rem}.hero-portrait{height:240px;min-height:240px;max-width:400px;margin:8px auto 0}.hero-portrait img{width:auto;height:100%;max-width:100%;object-fit:contain}.shape-one{width:66%;height:78%;right:16%}.shape-two{width:74px;height:74px;left:12%;top:9%}.hero-bottom{margin-top:6px;padding-top:8px;font-size:.62rem}}
@media(min-width:901px) and (max-height:720px){.hero{min-height:calc(100svh - 70px);height:calc(100svh - 70px);padding-top:14px}.hero h1{font-size:clamp(3.4rem,6.2vw,5.5rem)}.hero-intro .lede{font-size:1.18rem}.hero-intro .muted{font-size:.88rem}.hero-portrait{max-height:500px}.hero .button{padding:9px 13px}.hero-bottom{font-size:.65rem}}

/* About: a grounded editorial opening */
.about-hero{display:grid;grid-template-columns:.78fr 1.22fr;gap:clamp(30px,5vw,80px);align-items:center;padding-top:54px;padding-bottom:62px}
.about-hero-copy h1{font-size:clamp(4.4rem,8.8vw,9rem);line-height:.82;max-width:650px;margin:.16em 0 .24em}
.about-hero-copy .lede{font-size:clamp(1.2rem,1.8vw,1.55rem);max-width:600px}
.about-hero-copy>p:last-child{max-width:530px;color:var(--muted)}
.about-hero-image{margin:0;min-width:0}
.about-hero-image img{display:block;width:100%;height:clamp(440px,58vw,650px);object-fit:cover;object-position:48% center;filter:saturate(.92) contrast(.98)}
.about-hero-image figcaption{display:flex;justify-content:space-between;gap:20px;border-top:1px solid;padding-top:10px;margin-top:10px;font:400 .72rem/1.4 "DM Mono",monospace;text-transform:uppercase;letter-spacing:.03em;color:var(--muted)}
.photo-constellation{position:relative;min-height:610px;isolation:isolate}
.photo-constellation:before{content:"";position:absolute;inset:8% 8% 9% 10%;border:1px solid var(--line);border-radius:50%;transform:rotate(-7deg);z-index:-1}
.photo-bubble{position:absolute;margin:0;border-radius:50%;overflow:hidden;border:4px solid var(--paper);box-shadow:0 18px 45px rgba(30,32,28,.15);transition:transform .25s ease}
.photo-bubble:hover{transform:translateY(-5px)}
.photo-bubble img{width:100%;height:100%;display:block;object-fit:cover;filter:saturate(.9) contrast(1.02)}
.photo-bubble figcaption{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);white-space:nowrap;padding:6px 9px;background:rgba(249,246,239,.92);border:1px solid rgba(30,32,28,.35);font:500 .62rem/1 "DM Mono",monospace;text-transform:uppercase;letter-spacing:.08em;color:var(--ink)}
.bubble-mauritius{width:275px;height:275px;left:2%;top:3%;background:var(--green)}
.bubble-mauritius img{object-position:50% 68%}
.bubble-world{width:225px;height:225px;right:3%;top:5%;background:var(--navy)}
.bubble-world img{object-position:38% 23%}
.bubble-work{width:190px;height:190px;right:10%;bottom:5%;background:var(--ochre)}
.bubble-work img{object-position:50% 32%}
.bubble-life{width:155px;height:155px;left:26%;bottom:3%;background:var(--red)}
.bubble-life img{object-position:50% 32%}
.bubble-note{position:absolute;left:38%;top:42%;width:210px;padding:20px;background:var(--paper);border:1px solid var(--ink);transform:rotate(-3deg);z-index:3}
.bubble-note p{font:400 1.55rem/1.05 Newsreader,serif;margin:14px 0 0}

/* Resume: visible progression, with formal foundations */
.resume-section{padding-top:30px}
.career-list{border-top:1px solid var(--ink)}
.career-company{display:grid;grid-template-columns:minmax(240px,.62fr) 1.38fr;gap:clamp(28px,6vw,90px);padding:44px 0;border-bottom:1px solid var(--ink)}
.career-company-head{align-self:start;position:sticky;top:110px}
.career-company-head h3{font-size:clamp(2.2rem,4vw,4rem);line-height:.95;margin:10px 0 14px}
.career-company-head>p{color:var(--muted)}
.career-roles{border-left:1px solid var(--line);padding-left:34px}
.career-role{display:grid;grid-template-columns:145px 1fr;gap:25px;padding:0 0 34px 18px;position:relative}
.career-role:last-child{padding-bottom:0}
.career-role:before{content:"";position:absolute;left:-39px;top:7px;width:8px;height:8px;border-radius:50%;background:var(--red);outline:6px solid var(--paper)}
.career-date{font:400 .72rem/1.45 "DM Mono",monospace;text-transform:uppercase;color:var(--muted)}
.career-role h4{font:400 clamp(1.45rem,2.4vw,2rem)/1.05 Newsreader,serif;margin:0 0 10px}
.career-role p{margin:0;color:var(--muted)}
.resume-foundations{background:var(--ink);color:var(--paper)}
.resume-foundations-grid{display:grid;grid-template-columns:.72fr 1.28fr;gap:clamp(35px,8vw,120px)}
.resume-foundations h2,.language-section h2{font-size:clamp(3rem,6vw,6rem);line-height:.92}
.education-list article{padding:25px 0;border-top:1px solid #565850}
.education-list article:first-child{padding-top:0;border-top:0}
.education-list h3{font-size:clamp(1.5rem,2.4vw,2.1rem);margin:8px 0}
.education-list p{margin:0;color:#c9cac4}
.language-grid{display:grid;grid-template-columns:.72fr 1.28fr;gap:clamp(35px,8vw,120px);align-items:end}
.language-list{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--ink)}
.language-list span{padding:20px 0;border-bottom:1px solid var(--ink);font:400 clamp(1.3rem,2.5vw,2rem)/1.1 Newsreader,serif}
.language-list span:nth-child(odd){border-right:1px solid var(--ink)}
.language-list span:nth-child(even){padding-left:24px}

/* Resume: self-directed product and systems work */
.builder-section{background:var(--white)}
.builder-projects{border-top:1px solid var(--ink)}
.builder-project{display:grid;grid-template-columns:120px minmax(0,1.45fr) minmax(250px,.55fr);gap:clamp(25px,4vw,55px);padding:44px 0;border-bottom:1px solid var(--ink)}
.builder-index{display:flex;flex-direction:column;justify-content:space-between;min-height:250px}
.builder-index>span{font:400 4.6rem/1 Newsreader,serif;color:var(--red)}
.builder-index small{font:500 .68rem/1.35 "DM Mono",monospace;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.builder-main h3{font-size:clamp(2.8rem,5.4vw,5.6rem);line-height:.88;margin-bottom:18px}
.builder-thesis{font:400 clamp(1.25rem,2vw,1.65rem)/1.3 Newsreader,serif;max-width:760px}
.builder-map{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:34px}
.builder-map>div{border-top:1px solid var(--line);padding-top:12px}
.builder-map p{margin:10px 0 0;color:var(--muted)}
.builder-capabilities{align-self:end}
.builder-tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px}
.builder-tags span{border:1px solid var(--line);padding:7px 10px;font-size:.78rem}
.builder-pattern{display:grid;grid-template-columns:120px 1fr;gap:clamp(25px,4vw,55px);padding-top:32px;margin-bottom:0}
.builder-pattern strong{font:400 clamp(1.5rem,2.8vw,2.7rem)/1.12 Newsreader,serif}

/* Work: consistent editorial project imagery */
.project-showcase{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.project-feature{border:1px solid var(--ink);background:var(--paper);overflow:hidden;transition:transform .25s ease,box-shadow .25s ease}
.project-feature:hover{transform:translateY(-4px);box-shadow:0 20px 45px rgba(30,32,28,.1)}
.project-visual{height:330px;margin:0;padding:16px;background:#e6dfd3;border-bottom:1px solid var(--ink);overflow:hidden;position:relative}
.project-visual:after{content:"";position:absolute;inset:0;background:rgba(212,155,84,.08);pointer-events:none;mix-blend-mode:multiply}
.project-visual img{width:100%;height:100%;object-fit:contain;filter:saturate(.62) contrast(1.03) sepia(.05);transition:filter .25s ease,transform .4s ease}
.project-feature:hover .project-visual img{filter:saturate(.88) contrast(1.02);transform:scale(1.01)}
.project-feature:nth-child(3) .project-visual{padding:0;background:var(--ink)}
.project-feature:nth-child(3) .project-visual img{object-fit:cover;filter:saturate(.55) contrast(1.04)}
.project-feature:nth-child(3):hover .project-visual img{filter:saturate(.82) contrast(1.02)}
.project-feature-copy{display:grid;grid-template-columns:.8fr 1.2fr;gap:28px;padding:28px}
.project-feature-copy h3{font-size:clamp(2.4rem,4vw,4rem);margin:10px 0 0}
.project-feature-copy p{margin:0}
.project-feature-copy .project-line{font:400 1.3rem/1.15 Newsreader,serif;color:var(--red);margin-top:18px}
.project-jump{display:inline-block;margin-top:22px;padding-bottom:3px;border-bottom:1px solid;font:500 .72rem/1 "DM Mono",monospace;text-transform:uppercase;letter-spacing:.07em}

/* Product development systems */
.product-cases{margin-top:110px}
.product-case{padding:110px 0;border-top:1px solid var(--ink);scroll-margin-top:120px}
.product-case-header{display:grid;grid-template-columns:1.25fr .75fr;gap:8vw;align-items:end;margin-bottom:55px}
.product-case-header h2{font-size:clamp(4.2rem,8vw,8rem);margin:.1em 0}
.product-case-header>p{font:400 clamp(1.25rem,2vw,1.7rem)/1.32 Newsreader,serif;margin:0}
.product-question{display:grid;grid-template-columns:.35fr 1.15fr .75fr;gap:35px;padding:32px 0;border-top:1px solid;border-bottom:1px solid;align-items:start}
.product-question blockquote{font:400 clamp(1.8rem,3.5vw,3.35rem)/1.03 Newsreader,serif;letter-spacing:-.025em;margin:0}
.product-question>p{margin:0;color:var(--muted)}
.system-label{display:flex;justify-content:space-between;gap:25px;margin:55px 0 16px}
.system-label span:last-child{font-size:.78rem;color:var(--muted)}
.system-sequence{display:grid;gap:1px;background:var(--ink);border:1px solid var(--ink)}
.system-sequence.five{grid-template-columns:repeat(5,1fr)}
.system-sequence.four{grid-template-columns:repeat(4,1fr)}
.system-sequence.seven{grid-template-columns:repeat(4,1fr)}
.system-step{background:var(--paper);padding:22px;min-height:245px}
.system-step>span{font:500 .67rem/1.3 "DM Mono",monospace;text-transform:uppercase;letter-spacing:.06em;color:var(--red)}
.system-step h3{font-size:1.55rem;line-height:1.05;margin:45px 0 12px}
.system-step p{font-size:.84rem;line-height:1.5;margin:0;color:var(--muted)}
.system-step.accent{background:var(--red);color:white}
.system-step.accent>span,.system-step.accent p{color:white}
.product-case-bottom{display:grid;grid-template-columns:1.35fr .65fr;gap:30px;margin-top:42px}
.what-built{padding-top:16px;border-top:1px solid}
.deliverable-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 28px;margin-top:18px}
.deliverable-grid span{padding:9px 0;border-top:1px solid var(--line);font-size:.84rem}
.principle-card{background:var(--ink);color:var(--paper);padding:28px}
.principle-card>p{font:400 1.3rem/1.25 Newsreader,serif;margin:20px 0}
.principle-card blockquote{font:400 clamp(1.45rem,2.5vw,2.2rem)/1.05 Newsreader,serif;margin:24px 0}
.principle-card small{display:block;color:#c9cac4;line-height:1.5}
.next-life{display:flex;align-items:stretch;margin:45px 0;gap:7px}
.next-life>span{flex:1;border:1px solid;padding:18px 12px;font:500 .72rem/1.2 "DM Mono",monospace;text-transform:uppercase}
.next-life small{display:block;font:400 .7rem/1.35 Manrope,sans-serif;text-transform:none;margin-top:9px;color:var(--muted)}
.next-life i{align-self:center;font-style:normal;color:var(--red)}
.boundary-box{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--ink);border:1px solid var(--ink);margin-top:28px}
.boundary-box>div{background:var(--paper);padding:22px}
.boundary-box p{font:400 1.25rem/1.3 Newsreader,serif;margin:12px 0 0}
.dark-case{background:var(--ink);color:var(--paper)}
.dark-case .eyebrow,.dark-case .system-step>span{color:var(--ochre)}
.dark-case .product-question>p,.dark-case .system-label span:last-child,.dark-case .system-step p{color:#c9cac4}
.dark-case .system-sequence{background:#62645d;border-color:#62645d}
.dark-case .system-step{background:#292b27}
.dark-case .system-step.accent{background:var(--ochre);color:var(--ink)}
.dark-case .system-step.accent>span,.dark-case .system-step.accent p{color:var(--ink)}
.dark-case .deliverable-grid span{border-color:#565850}
.dark-case .principle-card{background:var(--paper);color:var(--ink)}
.dark-case .principle-card small{color:var(--muted)}
.green-case{background:var(--green);color:white}
.green-case .eyebrow{color:var(--ochre)}
.green-case .product-question>p,.green-case .system-label span:last-child,.green-case .system-step p{color:#dce4de}
.green-case .system-sequence{background:#839187;border-color:#839187}
.green-case .system-step{background:#5e7464;color:white}
.green-case .system-step>span{color:var(--ochre)}
.green-case .system-step.accent{background:var(--ochre);color:var(--ink)}
.green-case .system-step.accent>span,.green-case .system-step.accent p{color:var(--ink)}
.green-case .boundary-box{background:#8b988e;border-color:#8b988e}
.green-case .boundary-box>div{background:#5e7464}
.green-case .deliverable-grid span{border-color:#829085}
.green-case .principle-card{background:var(--paper);color:var(--ink)}
.green-case .principle-card small{color:var(--muted)}

@media(max-width:900px){
  .about-hero,.resume-foundations-grid,.language-grid{grid-template-columns:1fr}
  .about-hero{padding-top:45px}
  .about-hero-copy h1{font-size:clamp(4rem,15vw,7.2rem)}
  .about-hero-image img{height:min(72vw,620px)}
  .photo-constellation{min-height:540px;max-width:650px;width:100%;margin:auto}
  .career-company{grid-template-columns:1fr}
  .career-company-head{position:static}
  .career-company-head h3{font-size:3.2rem}
  .builder-project{grid-template-columns:80px 1fr}
  .builder-capabilities{grid-column:2}
  .builder-index{min-height:0}
  .builder-index small{margin-top:130px}
  .builder-pattern{grid-template-columns:80px 1fr}
  .project-visual{height:280px}
  .project-feature-copy{grid-template-columns:1fr;gap:14px}
  .product-case-header,.product-question,.product-case-bottom{grid-template-columns:1fr}
  .product-question{gap:20px}
  .system-sequence.five,.system-sequence.four,.system-sequence.seven{grid-template-columns:repeat(2,1fr)}
  .system-step{min-height:220px}
  .next-life{display:grid;grid-template-columns:1fr 20px 1fr}
  .next-life i{text-align:center}
}

@media(max-width:620px){
  .about-hero{padding-bottom:42px;gap:28px}
  .about-hero-image img{height:92vw;object-position:40% center}
  .about-hero-image figcaption{display:block}
  .about-hero-image figcaption span{display:block}
  .about-hero-image figcaption span+span{margin-top:5px}
  .photo-constellation{min-height:430px}
  .bubble-mauritius{width:190px;height:190px}
  .bubble-world{width:150px;height:150px}
  .bubble-work{width:140px;height:140px;right:3%}
  .bubble-life{width:112px;height:112px;left:16%}
  .photo-bubble figcaption{font-size:.54rem;bottom:8px;padding:5px 7px}
  .bubble-note{width:165px;left:33%;top:43%;padding:14px}
  .bubble-note p{font-size:1.2rem}
  .career-roles{padding-left:22px}
  .career-role{grid-template-columns:1fr;gap:7px;padding-left:12px}
  .career-role:before{left:-27px}
  .language-list{grid-template-columns:1fr}
  .language-list span:nth-child(odd){border-right:0}
  .language-list span:nth-child(even){padding-left:0}
  .builder-project{grid-template-columns:1fr;gap:20px}
  .builder-index{display:block}
  .builder-index>span{font-size:3.3rem}
  .builder-index small{display:block;margin:8px 0 0}
  .builder-capabilities{grid-column:auto}
  .builder-map{grid-template-columns:1fr}
  .builder-pattern{grid-template-columns:1fr;gap:12px}
  .project-showcase{grid-template-columns:1fr}
  .project-visual{height:245px;padding:10px}
  .project-feature-copy{padding:22px}
  .product-cases{margin-top:75px}
  .product-case{padding:75px 0;scroll-margin-top:90px}
  .product-case-header{gap:20px;margin-bottom:38px}
  .product-case-header h2{font-size:clamp(3.4rem,16vw,5.2rem)}
  .system-label{display:block;margin-top:38px}
  .system-label span{display:block}
  .system-label span+span{margin-top:8px}
  .system-sequence.five,.system-sequence.four,.system-sequence.seven{grid-template-columns:1fr}
  .system-step{min-height:auto}
  .system-step h3{margin-top:25px}
  .deliverable-grid,.boundary-box{grid-template-columns:1fr}
  .next-life{grid-template-columns:1fr}
  .next-life i{transform:rotate(90deg)}
}

/* Compact, right-aligned navigation for tablet and mobile. */
@media(max-width:900px){
  .menu-button{
    min-width:58px;
    padding:7px 9px;
    font:600 .7rem/1 Manrope,Arial,sans-serif;
    letter-spacing:.08em;
  }
  .navlinks{
    inset:64px 0 0 auto;
    width:clamp(280px,58vw,360px);
    padding:10px 18px 28px;
    border-top:1px solid var(--ink);
    border-left:1px solid var(--ink);
    box-shadow:-18px 22px 45px rgba(30,32,28,.14);
  }
  .navlinks a{
    padding:13px 2px;
    font:400 1.2rem/1.2 Newsreader,Georgia,serif;
  }
  .navlinks .contact-link{
    padding:13px 2px;
    border:0;
    border-bottom:1px solid var(--line)!important;
  }
  .mobile-note{
    margin-top:auto;
    padding-top:24px;
    font:400 .78rem/1.45 Manrope,Arial,sans-serif;
  }
}

@media(max-width:620px){
  .navlinks{
    width:min(82vw,310px);
    padding:8px 16px 22px;
  }
  .navlinks a{
    padding:12px 2px;
    font-size:1.08rem;
  }
  .navlinks .contact-link{padding:12px 2px}
}

/* Keep the fixed mobile menu independent of the sticky header's backdrop filter. */
@media(max-width:900px){
  .topbar{
    -webkit-backdrop-filter:none;
    backdrop-filter:none;
  }
}
