:root{color-scheme:light;font-family:Inter,Segoe UI,sans-serif;color:#191b20;background:#fafafb;--green:#48515d;--line:#d2d5da;--muted:#5c626c }*{box-sizing:border-box}body{margin:0;background:#fafafb;color:#191b20;line-height:1.7}a{color:inherit;text-decoration:none}@media(hover:hover){a:hover{color:var(--green)}}a:focus-visible,[role=link]:focus-visible,button:focus-visible{outline:2px solid var(--green);outline-offset:6px}::selection{background:#d8dde5}.page{min-height:100vh;background:#fafafb}.site-header{position:sticky;top:0;background:#fafafbf2;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--line);z-index:20}.nav{max-width:1280px;margin:auto;display:flex;justify-content:space-between;align-items:center;padding:25px 60px;gap:28px}.logo{font-size:21px;font-weight:700;letter-spacing:-.7px;opacity:1!important}.logo:after{content:".";color:#48515d}.nav-links{display:flex;gap:25px;font-size:12px;color:var(--muted)}.button{display:inline-flex;align-items:center;justify-content:center;padding:12px 21px;background:var(--green);border:1px solid var(--green);color:#fff;border-radius:4px;font-size:13px;font-weight:500;transition:background-color .15s ease-out}@media(hover:hover){.button:hover{background:#2a3039;color:#fff}}.button.outline,.button.ghost{background:transparent;color:var(--green);border-color:var(--line)}.button.ghost{border-color:transparent;padding-inline:10px}.button-text-short,.hamburger{display:none}.hero{max-width:1160px;margin:auto;padding:94px 0 65px;position:relative}.hero-content{max-width:850px;text-align:left}.eyebrow{font-size:10px;letter-spacing:1.8px;font-weight:600;text-transform:uppercase;color:var(--green);margin:0 0 25px}.hero .eyebrow:before{content:"●";font-size:9px;color:#48515d;margin-right:12px}.hero h1{font-size:clamp(48px,6.4vw,84px);letter-spacing:-4.5px;font-weight:500;line-height:1.13;margin:0}.hero .secondary-heading{color:#656d78}.lead{font-size:18px;line-height:1.8;color:#5c626c;max-width:620px;margin:30px 0}.hero-actions{display:flex;align-items:center;gap:18px;margin-top:28px}.scroll-indicator{display:none}.section{max-width:1160px;margin:auto;padding:65px 0;scroll-margin-top:120px}.section-header{margin-bottom:38px;text-align:left}.section-header h2{font-size:33px;font-weight:500;letter-spacing:-1.2px;line-height:1.3;margin:0 0 15px}.section-header p:not(.eyebrow){font-size:14px;color:var(--muted)}.project-cards{display:grid;grid-template-columns:1fr}.project-card{display:grid;grid-template-columns:1.05fr 1fr;align-items:center;gap:65px;position:relative;border-top:1px solid var(--line);padding:35px 0;cursor:pointer}.project-card img{width:100%;height:280px;object-fit:cover;object-position:top;border-radius:4px;border:0;transition:none}@media(hover:hover){.project-card:hover img{transform:none}}.project-card img.experiment-cover{object-fit:contain;object-position:center;background:#fff}.project-card:nth-child(2) img{border-color:#edf0f3}.project-card:nth-child(3) img{border-color:#edf0f3}.project-overlay{padding:0;color:#191b20}.project-subtitle{font-size:26px;font-weight:500;line-height:1.4;letter-spacing:-.8px;margin:0 0 18px}.project-tech{font-size:12px;color:var(--muted);line-height:1.8}.project-overlay:after{content:"Read case study →";display:block;font-size:13px;color:var(--green);margin-top:28px}.timeline-item{display:grid;grid-template-columns:54px 180px 1fr;gap:25px;border-top:1px solid var(--line);padding:30px 0}.timeline-logo{width:44px;height:44px;background:#e9ecf0;border-radius:4px;padding:5px}.timeline-date{font-size:12px;color:var(--muted)}.timeline-content h3{font-size:18px;font-weight:550;margin:0 0 9px;letter-spacing:-.4px}.timeline-content p,.timeline-content li{font-size:14px;color:var(--muted)}.timeline-content ul{padding-left:18px;margin-bottom:0}.timeline-content li{margin-bottom:8px}.skill-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:35px}.skill-group{border-top:1px solid var(--line);padding:22px 0}.skill-group h4{font-weight:550;font-size:14px;margin:0 0 16px}.chips{display:flex;flex-wrap:wrap;gap:8px}.chips span{font-size:12px;color:#505761;border:1px solid var(--line);padding:5px 10px;border-radius:3px;background:#eef0f3}.education-card{display:grid;grid-template-columns:1fr 1fr;gap:60px;border-top:1px solid var(--line);padding:26px 0}.education-card h3{font-size:19px;font-weight:550;margin:0 0 12px}.education-card p,.coursework p{font-size:14px;color:var(--muted)}.coursework h4{font-size:13px;font-weight:550;margin:0 0 12px}.contact{max-width:none;background:#edf0f3;padding:65px max(40px,calc((100vw - 1160px)/2));margin-top:45px;text-align:left}.contact-title{font-size:46px;letter-spacing:-1.6px;font-weight:500;margin:0 0 20px}.contact-email{font-size:clamp(17px,3vw,28px);letter-spacing:-.7px}.contact-phone{font-size:13px;color:var(--muted)}.social-links{display:flex;gap:23px;margin-top:25px}.social-links svg{width:22px;height:22px}.contact-divider{display:none}.footer{max-width:1160px;padding:25px 0;margin:auto;font-size:11px;color:var(--muted)}.project-page{max-width:1160px;margin:auto;padding-top:55px}.project-hero{padding:25px 0 55px;text-align:left}.project-hero h1{font-size:64px;letter-spacing:-3px;font-weight:500;line-height:1.2;margin:0 0 18px}.project-hero .subtitle{font-size:23px;color:var(--muted)}.project-actions{margin-top:26px}.project-description{font-size:18px;line-height:1.9;max-width:820px;color:var(--muted);margin-bottom:30px}.content-row{display:grid;grid-template-columns:1fr 1fr;gap:55px;align-items:center;padding:40px 0;border-top:1px solid var(--line)}.content-row.image-right .content-image{order:2}.content-image img{width:100%;height:auto;border-radius:4px;border:1px solid var(--line)}.content-text{font-size:16px;line-height:1.9;color:var(--muted)}.theme-gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:25px}.theme-item img{width:100%;border-radius:4px}.cards{display:grid;grid-template-columns:1fr 1fr;gap:25px}.card{padding:28px;border:1px solid var(--line);background:#eef0f3;border-radius:4px;cursor:pointer}.card h3{font-weight:500;font-size:24px;margin:0 0 15px}.tag{font-size:13px;color:var(--muted)}.card-arrow{font-size:23px;color:var(--green)}@media(max-width:1280px){.hero,.section,.footer,.project-page{max-width:calc(100% - 100px)}.contact{max-width:none;padding-inline:50px}.project-page .section{max-width:100%}}@media(max-width:850px){.nav{padding:22px 30px;gap:20px}.nav-links{gap:14px;font-size:11px}.hero,.section,.footer,.project-page{max-width:calc(100% - 60px)}.hero{padding-top:70px}.project-card{gap:30px}.project-card img{height:230px;border-width:0}.project-subtitle{font-size:21px}.timeline-item{grid-template-columns:44px 140px 1fr;gap:18px}.education-card{gap:30px}.contact{max-width:none;padding-inline:30px}}@media(max-width:620px){.nav{padding:18px 20px;flex-wrap:wrap;gap:16px}.logo{font-size:19px}.nav-links{order:3;width:100%;justify-content:space-between;gap:9px;font-size:10px}.nav .button{padding:7px 12px;font-size:11px}.hero,.section,.footer,.project-page{max-width:calc(100% - 40px)}.hero{padding:45px 0 25px}.hero h1{font-size:46px;letter-spacing:-2.6px}.hero .eyebrow{font-size:9px;letter-spacing:1.2px}.lead{font-size:16px;margin-block:25px}.hero-actions{gap:8px}.hero-actions .button{font-size:12px;padding:11px 13px}.section{padding-block:38px}.section-header{margin-bottom:25px}.section-header h2{font-size:28px}.project-card{grid-template-columns:1fr;gap:23px;padding-block:28px}.project-card img{height:230px;border-width:0}.project-subtitle{font-size:23px;margin-bottom:12px}.project-overlay:after{margin-top:15px}.timeline-item{grid-template-columns:38px 1fr;gap:15px}.timeline-date{align-self:center;font-size:11px}.timeline-content{grid-column:2}.timeline-content h3{font-size:17px}.timeline-content p,.timeline-content li{font-size:13px}.skill-grid,.education-card{grid-template-columns:1fr;gap:15px}.contact{max-width:none;padding:45px 20px;margin-top:20px}.contact-title{font-size:36px}.footer{padding-block:25px}.project-hero{padding-bottom:20px}.project-hero h1{font-size:46px;letter-spacing:-2px}.project-hero .subtitle{font-size:20px}.content-row{grid-template-columns:1fr;gap:20px;padding-block:30px}.content-row.image-right .content-image{order:0}.content-text{font-size:15px}.cards,.theme-gallery{grid-template-columns:1fr}.project-description{font-size:16px}.project-page{padding-top:25px}.project-hero .eyebrow{line-height:1.9;letter-spacing:.7px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}.project-summary{font-size:14px;color:var(--muted);line-height:1.8;margin:0 0 18px;max-width:450px}.hero-actions{flex-wrap:wrap}.nav-links{gap:28px}@media(hover:hover){.project-card[role=link]:hover .project-subtitle{color:var(--green)}}.skip-link{position:fixed;top:-100px;left:20px;background:#e9ecf0;padding:12px;z-index:100}.skip-link:focus{top:10px}.contact-note{font-size:15px;color:var(--muted)}.back-link{display:block;font-size:12px;color:var(--muted);margin-bottom:40px}.project-hero{border-bottom:1px solid var(--line)}.case-intro{max-width:800px;padding-bottom:55px}.case-intro h2,.case-chapter h2{font-size:30px;font-weight:500;letter-spacing:-1px;line-height:1.35;margin:0 0 22px}.case-intro>p:not(.eyebrow){font-size:19px;line-height:1.85;color:#505761}.case-scope{display:grid;grid-template-columns:85px 1fr;gap:20px;border-top:1px solid var(--line);padding-top:24px;margin-top:30px;font-size:13px}.case-scope dt{color:var(--green);text-transform:uppercase;font-size:10px;letter-spacing:1.5px}.case-scope dd{margin:0;color:var(--muted)}.case-chapter{display:grid;grid-template-columns:220px 1fr;gap:55px;border-top:1px solid var(--line);padding:50px 0}.chapter-label{font-family:ui-monospace,Consolas,monospace;font-size:10px;letter-spacing:1px;color:var(--green);padding-top:8px}.case-chapter p{font-size:15px;line-height:1.9;color:var(--muted);margin:0 0 22px}.system-flow{list-style:none;margin:30px 0 15px;padding:0;display:flex;flex-wrap:wrap;gap:10px}.system-flow li{border:1px solid #c6ccd4;background:#eef0f3;padding:13px 16px;font-family:ui-monospace,Consolas,monospace;font-size:11px;flex:1;min-width:125px;position:relative}.system-flow li:not(:last-child):after{content:"→";color:var(--green);position:absolute;right:-10px;z-index:1;background:#fafafb}.case-chapter .diagram-note{font-size:10px;color:#656d78}.decision{display:grid;grid-template-columns:30px 1fr;gap:15px;padding:25px 0;border-top:1px solid var(--line)}.decision-index{font-family:ui-monospace,Consolas,monospace;font-size:11px;color:var(--green);padding-top:4px}.decision h3,.next-step h3{font-size:18px;font-weight:500;margin:0 0 12px}.decision p{margin-bottom:0}.next-step{padding:25px 28px;border-left:2px solid var(--green);background:#eef0f3;margin-top:30px}.next-step p{margin-bottom:0}.case-gallery figure{margin:0}.case-gallery figcaption{font-family:ui-monospace,Consolas,monospace;font-size:10px;color:var(--muted);padding-top:10px}.case-gallery img{width:100%;border:1px solid var(--line);border-radius:4px}.chips span{border-radius:0}.contact{border-block:1px solid var(--line)}@media(max-width:850px){.case-chapter{grid-template-columns:150px 1fr;gap:30px}}@media(max-width:620px){.case-chapter{grid-template-columns:1fr;gap:20px;padding-block:35px}.case-intro>p:not(.eyebrow){font-size:16px}.case-intro h2,.case-chapter h2{font-size:26px}.case-scope{grid-template-columns:1fr;gap:8px}.system-flow{flex-direction:column;gap:15px}.system-flow li:not(:last-child):after{content:"↓";right:15px;bottom:-17px}.next-step{padding:20px}.back-link{margin-bottom:28px}}.timeline-item{grid-template-columns:84px 155px minmax(0,1fr);gap:28px}.timeline-logo{width:76px;height:76px;padding:7px;background:#eef0f3;border:1px solid var(--line);border-radius:6px}.hero h1{font-size:clamp(44px,5.8vw,76px)}.hero .secondary-heading{color:#66707d}@media(max-width:850px){.timeline-item{grid-template-columns:76px 120px minmax(0,1fr);gap:20px}}@media(max-width:620px){.timeline-item{grid-template-columns:68px minmax(0,1fr);gap:16px}.timeline-logo{width:64px;height:64px;padding:6px}.timeline-content{grid-column:1 / -1}.hero h1{font-size:clamp(34px,8vw,46px);letter-spacing:-2px}}@media(max-width:620px){.nav{padding:12px 20px 8px;gap:6px 16px}.nav-links{gap:0;justify-content:space-between}.nav-links a{display:flex;align-items:center;min-height:44px;font-size:12px}.nav .button{min-height:40px;padding:8px 14px;font-size:12px}.hero{padding-top:36px}.hero h1{font-size:clamp(30px,8.3vw,46px);letter-spacing:-1.5px;line-height:1.17}.hero-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px;max-width:360px}.hero-actions .button{min-height:44px;font-size:13px;padding:11px 10px}.hero-actions .ghost{justify-content:flex-start;padding-left:0}.project-card img{height:auto;aspect-ratio:16/10;object-fit:cover}.project-subtitle{font-size:22px;line-height:1.4;text-wrap:pretty}.project-tech{line-height:1.9}.timeline-content h3{line-height:1.5;text-wrap:pretty}.timeline-content p,.timeline-content li{font-size:14px}.timeline-content li{margin-bottom:12px}.education-card{gap:24px}.contact-email{font-size:clamp(15px,4.25vw,22px);letter-spacing:-.35px;overflow-wrap:anywhere}.contact-phone{line-height:1.8}.social-links a{display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px}.social-links{gap:12px}.project-hero h1{font-size:clamp(36px,10vw,46px);overflow-wrap:anywhere}.project-hero .subtitle{font-size:19px;line-height:1.55;text-wrap:pretty}.project-page .project-content{padding-top:30px}.case-intro{padding-bottom:32px}.case-chapter{gap:16px}.case-chapter h2{margin-bottom:18px}.case-chapter p{line-height:1.8}.decision{grid-template-columns:22px minmax(0,1fr);gap:10px;padding-block:22px}.decision h3{line-height:1.5}.system-flow li{flex:initial;min-width:0}.case-gallery{padding-top:28px}.case-gallery .theme-gallery{gap:28px}.case-scope dd,.case-chapter>div,.project-overlay{min-width:0}.section{scroll-margin-top:125px}}@media(min-width:621px)and (max-width:760px){.project-card{gap:24px}.project-subtitle{font-size:21px}.case-chapter{grid-template-columns:1fr;gap:18px}}:root{--accent:#48515d}.logo{font-weight:600;letter-spacing:-1px}.logo:after{content:" /";font-weight:300;color:#939ba6}.hero{isolation:isolate}.hero-content{position:relative;z-index:1}.hero-sigil{position:absolute;width:215px;height:330px;right:0;top:82px;opacity:.85;pointer-events:none}.hero .eyebrow:before{content:"✧";font-size:16px;color:#6b7481;vertical-align:middle}.hero h1{font-weight:500;letter-spacing:-3.8px}.hero .secondary-heading{color:#626b78}@supports (background-clip:text){.hero .secondary-heading{background:linear-gradient(115deg,#303944 5%,#7a8491 38%,#4c5664 58%,#8a939e 82%,#424c59);background-clip:text;-webkit-background-clip:text;color:transparent}}.eyebrow,.chapter-label{font-family:ui-monospace,Consolas,monospace;letter-spacing:1.5px}.button{border-radius:0;background:#252c36;border-color:#252c36;color:#fff}@media(hover:hover){.button:hover{background:#414a57;border-color:#414a57;color:#fff}}.button.outline{color:#343d49;border-color:#bfc5cd;background:linear-gradient(135deg,#fff,#edf0f3 48%,#fafbfc)}@media(hover:hover){.button.outline:hover{background:#e5e9ee;color:#191b20}}.button.ghost{color:#3d4652;background:transparent;border-color:transparent}@media(hover:hover){.button.ghost:hover{color:#11151b;background:#eef0f3}}.project-card img,.case-gallery img{border-radius:0}.project-overlay:after{font-family:ui-monospace,Consolas,monospace;font-size:11px;text-transform:uppercase;letter-spacing:.8px}.contact{background:linear-gradient(115deg,#f0f2f5,#fafbfd 35%,#e4e8ed 68%,#f4f6f8)}.section-header{position:relative}.next-step{border-left-color:#8f99a6;background:#eef0f3}.system-flow li{background:linear-gradient(135deg,#fff,#e8ecf1)}.timeline-item{grid-template-columns:124px 145px minmax(0,1fr);gap:28px}.timeline-logo{width:116px;height:116px;padding:0;background:transparent;border:0;border-radius:0}.timeline-logo img{width:100%;height:100%;object-fit:contain}@media(max-width:1100px){.hero-sigil{width:140px;height:220px;top:58px;opacity:.45}.hero-content{max-width:750px}}@media(max-width:850px){.hero-sigil{width:100px;height:150px;top:40px;right:0;opacity:.32}.timeline-item{grid-template-columns:104px 120px minmax(0,1fr);gap:20px}.timeline-logo{width:100px;height:100px}}@media(max-width:620px){.hero-sigil{width:62px;height:96px;top:44px;opacity:.4}.hero h1{letter-spacing:-1.5px}.hero-content{max-width:none}.hero .eyebrow{max-width:240px;font-size:8px;letter-spacing:1px}.timeline-item{grid-template-columns:100px minmax(0,1fr);gap:20px}.timeline-logo{width:96px;height:96px}.timeline-content{grid-column:1 / -1}}.engineering-evidence{margin:32px 0}.engineering-evidence img{display:block;width:100%;height:auto;border:1px solid #ccd2da}.engineering-evidence figcaption{font-size:12px;line-height:1.8;color:var(--muted);margin-top:14px}.engineering-evidence figcaption strong{font-weight:600;color:#343d49}.evaluation-evidence{background:#fff;padding:14px;border:1px solid #d2d5da}.evaluation-evidence img{border:0}@media(max-width:620px){.engineering-evidence{margin:24px 0}.evaluation-evidence{padding:8px}.engineering-evidence figcaption{font-size:12px}}.case-chapter{display:block}.case-chapter>div{max-width:820px}.decision{display:block}:root{--image-outline:oklch(0 0 0 / .1)}.project-card img,.content-image img,.case-gallery img,.engineering-evidence img{border:0;outline:1px solid var(--image-outline);outline-offset:-1px}.button{-webkit-tap-highlight-color:transparent;transition:background-color .15s ease-out,border-color .15s ease-out,color .15s ease-out,opacity .15s ease-out}.button:active{opacity:.8}.button[aria-disabled=true]{opacity:.5;pointer-events:none}.nav-links a,.social-links a{transition:color .15s ease-out}.card:focus-visible{background:#e5e9ee;outline:2px solid #48515d;outline-offset:4px}@media(hover:hover){.card:hover{background:#e5e9ee}.project-card:hover .project-overlay:after{text-decoration:underline;text-underline-offset:4px}.nav-links a:hover{text-decoration:underline;text-underline-offset:5px}}@media(prefers-reduced-motion:no-preference){.button:not(.static):not(:disabled):not([aria-disabled=true]){transition-property:background-color,border-color,color,opacity,scale;transition-duration:.15s;transition-timing-function:ease-out}.button:not(.static):not(:disabled):not([aria-disabled=true]):active{scale:.96}}@media(prefers-reduced-motion:reduce){.button{transition:opacity .15s ease-out!important}.nav-links a,.social-links a{transition:none}}
