@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');
:root{--dark:#111111;--paper:#f4f2ec;--ink:#171717;--red:#ed3e35;--line:#363634;--muted:#b5b5ae;--display:'Space Grotesk','Arial',sans-serif;--body:'DM Sans','Arial',sans-serif;--pad:clamp(1.25rem,5.4vw,6rem)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:6rem}body{margin:0;background:var(--dark);color:var(--paper);font-family:var(--body);font-size:1rem;line-height:1.65;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,a,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,summary:focus-visible{outline:3px solid currentColor;outline-offset:6px}::selection{background:var(--red);color:var(--dark)}h1,h2,h3,h4,p{margin:0}h1,h2,h3,h4{font-family:var(--display);font-weight:500;letter-spacing:-.05em}h2{font-size:clamp(2.4rem,4.6vw,4.3rem);line-height:1.07}h3{font-size:clamp(1.8rem,2.6vw,2.6rem);line-height:1.14}p{max-width:70ch}.section-wrap{width:100%;max-width:1600px;padding-left:var(--pad);padding-right:var(--pad);margin-inline:auto}.eyebrow{font-size:.8125rem;letter-spacing:.085em;text-transform:uppercase;font-weight:600;line-height:1.5}.red{color:var(--red)}.skip-link{position:fixed;top:-6rem;left:1rem;z-index:100;background:var(--paper);color:var(--ink);padding:.8rem 1rem}.skip-link:focus{top:1rem}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.site-header{max-width:1600px;margin:auto;display:flex;justify-content:space-between;align-items:center;gap:2rem;padding:1.3rem var(--pad);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:1rem}.brand-mark{font-family:var(--display);font-size:2.5rem;line-height:1;letter-spacing:-.12em;font-weight:700}.brand-mark span{color:var(--red)}.brand-name{font-size:.9rem;font-weight:550}.site-header nav{display:flex;gap:2rem;align-items:center;font-size:.9rem}.site-header nav a{padding:.5rem 0;position:relative}.site-header nav a:after{content:'';position:absolute;left:0;bottom:.15rem;height:1px;width:0;background:var(--red);transition:width .25s}.site-header nav a:hover:after{width:100%}.site-header nav .nav-contact{padding:.45rem 1rem;border:1px solid #72726b;border-radius:2px}.site-header nav .nav-contact:after{display:none}.site-header nav .nav-contact:hover{background:var(--paper);color:var(--ink)}
.hero{padding-top:2.3rem;overflow:hidden}.hero-topline{display:flex;align-items:center;justify-content:space-between;gap:1rem}.location{font-size:.8125rem;color:var(--muted)}.hero-grid{display:grid;grid-template-columns:1.08fr 1fr;gap:1rem;align-items:center;padding:3.5rem 0 4.5rem}.hero-copy{position:relative;z-index:1}.hero h1{font-size:clamp(5rem,9.2vw,9rem);letter-spacing:-.072em;line-height:.87;margin-left:-.05em}.hero-subtitle{font-family:var(--display);font-size:clamp(1.4rem,2.05vw,2rem);line-height:1.25;letter-spacing:-.04em;margin-top:2.3rem}.hero-intro{font-size:1rem;max-width:31rem;color:var(--muted);margin-top:1rem;line-height:1.65}.button{display:inline-flex;align-items:center;justify-content:center;min-height:3.3rem;padding:.85rem 1.6rem;font-size:.9375rem;font-weight:600;border-radius:2px;transition:transform .2s,background .2s,color .2s}.button:hover{transform:translateY(-3px)}.button-light{background:var(--paper);color:var(--ink);margin-top:1.8rem}.button-light:hover{background:var(--red);color:var(--dark)}.hero-art{position:relative;align-self:stretch;display:flex;flex-direction:column;justify-content:center;min-width:0}.hero-art img{display:block;width:113%;max-width:none;margin-left:-7%;height:auto;aspect-ratio:1;object-fit:contain;mix-blend-mode:lighten;animation:float 10s ease-in-out infinite}.art-caption{display:flex;justify-content:space-between;gap:1rem;color:var(--muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;padding-top:1.2rem;border-top:1px solid var(--line)}.hero-bottom{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding:1.5rem 0 1.7rem;font-size:.875rem}.edition{font-size:.8125rem;color:var(--muted)}
.light-section{background:var(--paper);color:var(--ink)}.work{padding:6.6rem 0}.section-heading{margin-bottom:3.6rem}.section-heading .eyebrow{margin-bottom:1.3rem}.case{border-top:1px solid #aaa9a3;padding-top:1.4rem}.case-primary{display:grid;grid-template-columns:1.5fr 1fr;gap:3.5rem;padding-bottom:4.3rem}.case-meta{display:flex;justify-content:space-between;gap:1rem;line-height:1.5;font-size:.8125rem;margin-bottom:2.5rem;color:#575752}.case h3{margin-bottom:1.5rem}.case-main>p{max-width:39rem;color:#50504c}.tags{display:flex;flex-wrap:wrap;gap:.5rem;margin:1.8rem 0}.tags span{font-size:.75rem;padding:.3rem .75rem;border:1px solid #bdbdb5;border-radius:2rem}.case-stat{background:var(--red);padding:2.3rem;display:flex;flex-direction:column;justify-content:space-between;position:relative;min-height:28rem}.case-stat .big-stat{font-family:var(--display);font-size:clamp(5rem,9vw,9rem);font-weight:500;letter-spacing:-.08em;line-height:1;margin:2rem 0}.big-stat span{font-weight:400;font-size:.75em}.case-stat>p:not(.eyebrow){font-size:1.25rem;line-height:1.3}.platform-path{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;font-size:.8125rem;margin-top:2.5rem}.platform-path span{border:1px solid #62251f;padding:.3rem;text-align:center}.platform-path i{grid-column:1/-1;height:1.3rem;border-bottom:1px solid #62251f;border-left:1px solid #62251f;border-right:1px solid #62251f;margin-inline:25%;position:relative}.platform-path i:after{content:'';position:absolute;left:50%;top:100%;height:1rem;border-left:1px solid #62251f}.platform-path strong{grid-column:1/-1;text-align:center;padding:.45rem;border:1px solid #62251f;margin:1rem 25% 0;font-weight:500}.case-grid{display:grid;grid-template-columns:1fr 1fr;gap:3.5rem}.case-secondary>p{color:#50504c;max-width:38rem}.case-secondary .case-meta{margin-bottom:2.4rem}.stack-line{display:flex;flex-wrap:wrap;gap:.6rem;margin:2rem 0 2.2rem;font-family:var(--display)}.stack-line span{padding:.5rem .9rem;background:#e3e1da;font-size:.875rem}.tool-list{margin:1.75rem 0;padding:0;list-style:none}.tool-list li{display:flex;gap:1rem;padding:.8rem 0;border-bottom:1px solid #d4d3cc}.tool-list li>span{color:#a6362f;font-size:.8125rem;padding-top:.15rem}.tool-list strong{font-size:1rem;font-weight:600}.tool-list p{font-size:.875rem;line-height:1.5;color:#565650;margin-top:.2rem}details{margin-top:1.5rem;border-top:1px solid #c1c1b9;border-bottom:1px solid #c1c1b9}summary{cursor:pointer;list-style:none;font-size:.9375rem;font-weight:600;display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:3.6rem;padding:.7rem 0}summary::-webkit-details-marker{display:none}.detail-icon{width:1rem;height:1rem;position:relative;flex:none}.detail-icon:before,.detail-icon:after{content:'';height:1px;width:100%;background:currentColor;position:absolute;left:0;top:50%}.detail-icon:after{transform:rotate(90deg);transition:transform .2s}details[open] .detail-icon:after{transform:rotate(0)}.detail-body{padding:.4rem 0 1.6rem;color:#50504c;font-size:.9375rem}.detail-body p+p{margin-top:1rem}.recognition{display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center;gap:2rem;margin-top:4.5rem;padding:1.7rem 0;border-top:1px solid #aaa9a3;border-bottom:1px solid #aaa9a3}.recognition>div{display:flex;flex-direction:column}.recognition strong{font-family:var(--display);font-size:1.25rem;font-weight:500;letter-spacing:-.035em}.recognition span{font-size:.8125rem;color:#65655e}
.experience{padding-top:6.6rem;padding-bottom:6.6rem}.split-heading{display:grid;grid-template-columns:1.25fr 1fr;gap:5rem;align-items:end}.split-heading>p{max-width:33rem;color:var(--muted)}.timeline{border-top:1px solid var(--line)}.timeline-row{display:grid;grid-template-columns:1fr 3fr;gap:3rem;border-bottom:1px solid var(--line);padding:2.4rem 0}.timeline-dates{font-size:.9rem;color:var(--muted);padding-top:.4rem}.timeline-content h3{font-size:1.8rem}.company-line{display:flex;align-items:center;gap:1.5rem}.current-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;padding:.2rem .6rem;color:var(--red);border:1px solid #8c302b;border-radius:2px}.timeline-summary{color:var(--muted);margin:.6rem 0 1.8rem}.roles{display:grid;gap:.9rem}.roles>div{display:grid;grid-template-columns:1.4fr 1fr;gap:1rem}.roles h4{font-family:var(--body);font-size:1rem;letter-spacing:-.015em;font-weight:500}.roles span{font-size:.875rem;color:var(--muted);text-align:right}.timeline-note{margin-top:1.8rem;color:var(--muted);font-size:.9375rem;max-width:48rem}.timeline-content .role{font-size:1rem;margin:.6rem 0 .8rem}.role span{margin-left:1rem;color:var(--muted);font-size:.8125rem;white-space:nowrap}.timeline-content>p:not(.role):not(.timeline-summary){color:var(--muted);max-width:48rem}.education{display:grid;grid-template-columns:1fr 1.5fr 1.5fr;gap:3rem;padding-top:2.5rem}.education strong{font-weight:500}.education p:not(.eyebrow){font-size:.875rem;color:var(--muted);margin-top:.4rem}.about{padding:6.5rem 0}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:7rem}.about h2{margin-top:1.3rem;margin-bottom:1.8rem}.about-intro>p:not(.eyebrow){color:#50504c;max-width:30rem}.text-link{display:inline-block;font-size:.9375rem;border-bottom:1px solid var(--ink);padding:.3rem 0;margin-top:1.5rem}.text-link:hover{color:#ad2b24;border-color:currentColor}.interest{display:grid;grid-template-columns:2.5rem 1fr;column-gap:1rem;padding:1.3rem 0;border-top:1px solid #aaa9a3;align-items:baseline}.interest:last-child{border-bottom:1px solid #aaa9a3}.interest-number{font-size:.8125rem;color:#a6362f}.interest h3{font-size:2.1rem;letter-spacing:-.04em}.interest p{grid-column:2;font-size:.875rem;color:#65655e;margin-top:.3rem}.contact{background:var(--red);color:var(--ink);padding:4rem 0 5rem}.contact-grid{display:grid;grid-template-columns:1.7fr 1fr;align-items:end;gap:3rem;margin-top:2rem}.contact h2{font-size:clamp(3rem,6.4vw,6rem);line-height:.98;letter-spacing:-.065em}.contact h2 span{color:var(--paper)}.contact-copy{max-width:22rem;margin-bottom:.3rem}.contact-copy>p{font-size:1.15rem;line-height:1.5;margin-bottom:1.7rem}.button-dark{background:var(--ink);color:var(--paper)}.button-dark:hover{background:var(--paper);color:var(--ink)}.site-footer{display:flex;align-items:center;gap:2rem;padding-top:1.8rem;padding-bottom:1.8rem;font-size:.8125rem;color:var(--muted)}.site-footer .brand-mark{color:var(--paper)}.site-footer>p{margin-right:auto}.site-footer>a:last-child{border-bottom:1px solid #66665f;padding:.4rem 0}
@keyframes float{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-12px) rotate(1deg)}}
@media(min-width:1600px){.hero-art img{max-height:670px;width:100%;margin:0;object-fit:contain}}@media(max-width:1000px){.hero h1{font-size:clamp(5.2rem,10vw,7rem)}.hero-grid{grid-template-columns:1.15fr 1fr;padding-top:3rem}.hero-art img{width:130%;margin-left:-15%}.hero-subtitle{font-size:1.55rem}.case-primary,.case-grid{gap:2rem}.case-stat{padding:1.7rem}.split-heading{gap:3rem}.about-grid{gap:3.5rem}.roles>div{grid-template-columns:1fr}.roles span{text-align:left}.roles{gap:1.2rem}.timeline-row{grid-template-columns:1fr 3.5fr;gap:2rem}.contact-grid{grid-template-columns:1.5fr 1fr}.brand-name{display:none}}
@media(max-width:700px){html{scroll-padding-top:1.5rem}.site-header{padding-top:1.1rem;padding-bottom:1.1rem;gap:1rem}.brand-mark{font-size:2.2rem}.site-header nav{gap:1.1rem;font-size:.8125rem}.site-header nav .nav-contact{display:none}.hero{padding-top:1.6rem}.hero-topline{align-items:start;flex-direction:column;gap:.35rem}.hero-grid{grid-template-columns:1fr;padding:3rem 0 1.8rem;gap:.5rem}.hero h1{font-size:clamp(5rem,20vw,8.5rem);line-height:.88}.hero-subtitle{font-size:1.7rem;margin-top:1.8rem}.hero-intro{max-width:34rem}.button{min-height:3.3rem}.hero-art{margin-top:1rem}.hero-art img{width:100%;max-width:27rem;margin:-.5rem auto;aspect-ratio:1;max-height:24rem;object-fit:contain}.art-caption{font-size:.75rem;padding-top:1rem}.hero-bottom{align-items:start;padding:1.3rem 0 1.5rem;font-size:.8125rem}.hero-bottom>p{max-width:14rem}.edition{display:none}.work,.experience,.about{padding-top:4rem;padding-bottom:4rem}.section-heading{margin-bottom:2.5rem}.section-heading h2{font-size:clamp(2rem,8vw,3rem)}.case-primary{grid-template-columns:1fr;gap:2rem;padding-bottom:3rem}.case h3{font-size:2rem}.case-meta{margin-bottom:1.8rem}.case-stat{min-height:23rem;padding:1.8rem}.case-stat .big-stat{font-size:7rem;margin:1.2rem 0}.platform-path{max-width:22rem;align-self:end;width:64%;margin-top:-4.5rem}.case-stat>p:not(.eyebrow){font-size:1rem;max-width:40%}.case-grid{grid-template-columns:1fr;gap:3rem}.recognition{grid-template-columns:1fr 1fr;gap:1.5rem;margin-top:3rem}.recognition>.eyebrow{grid-column:1/-1}.recognition strong{font-size:1.1rem}.split-heading{grid-template-columns:1fr;gap:1.5rem}.timeline-row{grid-template-columns:1fr;gap:.8rem;padding:2rem 0}.timeline-dates{font-size:.8125rem}.timeline-content h3{font-size:1.7rem}.roles>div{gap:.15rem}.timeline-content .role{font-size:.9375rem}.role span{display:block;margin:.2rem 0 0}.education{grid-template-columns:1fr;gap:1.5rem}.education p:not(.eyebrow){margin-top:.15rem}.about-grid{grid-template-columns:1fr;gap:2.5rem}.about h2{font-size:2.6rem}.interest{padding:1.2rem 0}.interest h3{font-size:1.85rem}.contact{padding:3rem 0}.contact-grid{grid-template-columns:1fr;gap:2rem}.contact h2{font-size:clamp(2.9rem,11.6vw,4.5rem)}.contact-copy{max-width:26rem}.site-footer{display:grid;grid-template-columns:auto 1fr;gap:1rem 1.5rem;font-size:.75rem}.site-footer>p{margin:0}.site-footer>span{grid-column:2}.site-footer>a:last-child{grid-column:2;justify-self:start}.site-footer .brand-mark{grid-row:1/4;align-self:start}}
@media(max-width:360px){.site-header nav{gap:.75rem;font-size:.75rem}.hero h1{font-size:4.8rem}.hero-topline .eyebrow{font-size:.75rem}.case-meta{font-size:.75rem}.platform-path{width:59%}.recognition{grid-template-columns:1fr}.recognition>.eyebrow{grid-column:auto}.contact h2{font-size:2.8rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
@media print{body{background:#fff;color:#000}.hero-art,.site-header nav,.button,.contact,.skip-link{display:none}.hero-grid,.case-primary,.case-grid,.split-heading,.about-grid{display:block}.hero h1{font-size:4rem}.light-section{background:#fff}.section-wrap{padding:1rem}.case,.timeline-row{break-inside:avoid}.hero,.experience,.work,.about{padding-block:1.5rem}.case-stat{min-height:0;margin-top:1rem;background:#eee;color:#000}.case-stat .big-stat{font-size:3rem}.platform-path{display:none}.timeline-content p,.hero-intro,.timeline-dates{color:#333}.site-footer{color:#333}}

/* Full-stack scope extends the established editorial system. */
.technical-scope{margin:4rem 0;padding:2.4rem 0 2.8rem;border-top:1px solid #aaa9a3}.scope-heading{display:grid;grid-template-columns:1fr 1.35fr;gap:3.5rem;align-items:end;margin-bottom:2rem}.scope-heading h3{font-size:2.2rem}.scope-heading>p{max-width:43rem;color:#50504c}.scope-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}.scope-grid>div{border-top:1px solid #c1c1b9;padding-top:1rem}.scope-grid h4{font-family:var(--body);font-size:1rem;letter-spacing:-.015em;font-weight:600;margin-bottom:.65rem}.scope-grid p{font-size:.9375rem;line-height:1.65;color:#50504c}.technical-scope+.case-primary{padding-bottom:0}
@media(max-width:700px){.technical-scope{margin:3rem 0;padding:2rem 0}.scope-heading{grid-template-columns:1fr;gap:1.2rem;margin-bottom:1.7rem}.scope-heading h3{font-size:2rem}.scope-grid{grid-template-columns:1fr;gap:1.5rem}.scope-grid p{font-size:1rem}}
@media print{.scope-heading,.scope-grid{display:block}.technical-scope{margin:1rem 0;padding:1rem 0}.scope-grid>div{break-inside:avoid;padding-bottom:1rem}}

/* Portfolio delivery context follows the existing case-study layout. */
.delivery-context{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));gap:3.5rem}
@media(max-width:700px){.delivery-context{grid-template-columns:1fr;gap:1.5rem}}
@media print{.delivery-context{display:block}}

/* Contact options and personal site credit. */
.contact-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem}.button-outline{border:1px solid var(--ink);color:var(--ink)}.button-outline:hover{background:var(--ink);color:var(--paper)}.footer-credit{display:block;margin-top:.35rem;font-size:.8125rem;line-height:1.5}
