@import "https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,500;9..144,600;9..144,700&family=IBM+Plex+Mono:wght@400;500&family=Manrope:wght@400;500;600&display=swap";:root{--bg:#f7f4ee;--surface:#fffcf7;--ink:#1f1d19;--muted:#6e675d;--line:#d9d2c6;--accent:#b94b18;--accent-ink:#fffaf4;--serif:"Fraunces", Georgia, serif;--sans:"Manrope", Arial, sans-serif;--mono:"IBM Plex Mono", monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--bg:#11110f;--surface:#181815;--ink:#f4f0e8;--muted:#b8b0a3;--line:#302f2a;--accent:#d96528;--accent-ink:#19110c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);min-width:320px;color:var(--ink);font-family:var(--sans);margin:0;font-size:16px;line-height:1.65}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}.portfolio-shell{padding-top:70px;overflow:clip}.skip-link{z-index:100;background:var(--accent);color:var(--accent-ink);border-radius:4px;padding:10px 14px;transition:top .2s;position:fixed;top:-70px;left:16px}.skip-link:focus{top:16px}.site-header{z-index:20;border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--bg) 93%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);height:70px;position:fixed;inset:0 0 auto}.header-inner{justify-content:space-between;align-items:center;width:100%;max-width:1080px;height:100%;margin:0 auto;padding:0 36px;display:flex}.wordmark{font-family:var(--serif);letter-spacing:-.05em;font-size:24px;font-weight:700;line-height:1}.wordmark span{color:var(--accent)}.nav-links{gap:26px;margin-left:auto;margin-right:32px;display:flex}.nav-links a{color:var(--muted);font-size:13px;transition:color .2s}.nav-links a:hover,.nav-links a:focus-visible,.nav-links a.active{color:var(--ink)}.header-controls{align-items:center;gap:9px;display:flex}.language-switcher{border:1px solid var(--line);border-radius:5px;padding:2px;display:flex}.language-switcher button{color:var(--muted);font:500 10px var(--mono);background:0 0;border:0;border-radius:3px;padding:4px 7px}.language-switcher button.active{background:var(--ink);color:var(--bg)}.icon-button{border:1px solid var(--line);width:34px;height:34px;color:var(--ink);background:0 0;border-radius:5px;place-items:center;transition:background .2s,color .2s;display:grid}.icon-button:hover{background:var(--surface)}.icon{flex:none;width:16px;height:16px}.menu-button{display:none}main{max-width:1080px;margin:0 auto;padding:0 36px}.hero{align-items:center;min-height:calc(100svh - 70px);padding:clamp(84px,15vh,174px) 11% 96px;display:flex;position:relative}.hero-copy{z-index:1;max-width:690px;position:relative}.hero-kicker,.section-index,.card-label,.timeline-date{color:var(--muted);font:500 11px var(--mono);letter-spacing:.11em;text-transform:uppercase}.hero-kicker{margin:0 0 13px}.hero h1{font:600 clamp(48px,7.5vw,84px)/.98 var(--serif);letter-spacing:-.055em;max-width:670px;margin:0}.hero h1 em{color:var(--muted);margin-top:8px;font-size:.58em;font-style:normal;font-weight:500;line-height:1.06;display:block}.hero-summary{font:400 16px/1.65 var(--sans);max-width:550px;margin:30px 0 10px}.hero-intro{color:var(--muted);max-width:550px;margin:0}.hero-actions{gap:12px;margin:32px 0 25px;display:flex}.button{border:1px solid var(--line);border-radius:5px;justify-content:center;align-items:center;gap:10px;min-height:43px;padding:9px 15px;font-size:13px;font-weight:600;transition:background .2s,color .2s,border-color .2s;display:inline-flex}.button.primary{border-color:var(--accent);background:var(--accent);color:var(--accent-ink)}.button.primary:hover{filter:brightness(1.09)}.button.secondary:hover{border-color:var(--ink)}.hero-meta{color:var(--muted);font:400 11px var(--mono)}.hero-mark{width:195px;height:195px;color:var(--line);border:1px solid var(--line);border-radius:50%;place-items:center;display:grid;position:absolute;top:24%;right:6%}.hero-mark span{font:600 65px/1 var(--serif);color:var(--line);letter-spacing:-.1em}.hero-mark i{background:var(--line);width:84%;height:1px;position:absolute;transform:rotate(-42deg)}.hero-mark b{color:var(--accent);font:500 11px var(--mono);position:absolute;bottom:17px;right:24px}section{border-top:1px solid var(--line);padding:112px 0}.section-grid{grid-template-columns:1fr 1.35fr 1fr;gap:54px;display:grid}.section-heading h2,.section-top h2,.contact-intro h2{font:600 clamp(34px,4vw,48px)/1 var(--serif);letter-spacing:-.045em;margin:8px 0 0}.about-content{max-width:460px}.about-content p{color:var(--muted);margin:0 0 22px}.about-content .lead{color:var(--ink);font-size:18px;line-height:1.6}.glance-card{border:1px solid var(--line);background:var(--surface);align-self:start;padding:26px}.card-label{margin:0 0 15px}.glance-card dl{margin:0}.glance-card dl div{border-top:1px solid var(--line);justify-content:space-between;gap:20px;padding:14px 0;display:flex}.glance-card dt{color:var(--muted);font:400 11px var(--mono)}.glance-card dd{text-align:right;font:500 12px var(--mono);margin:0}.section-top{justify-content:space-between;align-items:end;gap:32px;margin-bottom:48px;display:flex}.section-top>div>p:last-child{color:var(--muted);max-width:610px;margin:12px 0 0}.text-link,.project-link{color:var(--accent);font:500 12px var(--mono);white-space:nowrap;align-items:center;gap:8px;display:inline-flex}.text-link:hover .icon,.project-link:hover .icon{transform:translate(4px)}.text-link .icon,.project-link .icon{transition:transform .2s}.project-grid{grid-template-columns:repeat(3,1fr);gap:18px;display:grid}.project-card{border:1px solid var(--line);background:var(--surface);flex-direction:column;align-items:flex-start;min-height:305px;padding:24px;transition:transform .25s,border-color .25s;display:flex}.project-card:hover{border-color:var(--accent);transform:translateY(-4px)}.project-number{color:var(--accent);font:500 11px var(--mono)}.project-card h3,.timeline h3,.education-card h3,.skill-group h3{font:600 21px/1.2 var(--serif);letter-spacing:-.025em;margin:34px 0 10px}.project-card p{color:var(--muted);margin:0;font-size:14px;line-height:1.55}.tags{flex-wrap:wrap;gap:7px;margin-top:18px;display:flex}.tags span{border:1px solid var(--line);color:var(--muted);font:400 10px var(--mono);border-radius:999px;padding:3px 8px}.project-link{margin-top:auto;padding-top:29px}.timeline{border-left:1px solid var(--line);margin-left:15%}.timeline article{grid-template-columns:180px 1fr;gap:34px;padding:0 0 65px 34px;display:grid;position:relative}.timeline article:last-child{padding-bottom:0}.timeline-dot{border:2px solid var(--bg);background:var(--accent);border-radius:50%;width:11px;height:11px;position:absolute;top:4px;left:-6px}.timeline h3{margin:0 0 10px}.timeline p{color:var(--muted);max-width:620px;margin:0}.skill-groups{grid-template-columns:repeat(2,1fr);gap:36px 72px;display:grid}.skill-group{border-top:1px solid var(--line);padding-top:18px}.skill-group h3{font:500 11px var(--mono);color:var(--muted);text-transform:uppercase;letter-spacing:.1em;margin:0}.education-card{border:1px solid var(--line);background:var(--surface);gap:20px;max-width:530px;padding:27px;display:flex}.education-card>p{color:var(--accent);font:500 15px var(--mono);margin:0}.education-card h3{margin:0 0 8px}.education-card div p{color:var(--muted);margin:0}.contact-section{grid-template-columns:1.15fr 1fr;gap:56px;padding-bottom:120px;display:grid}.contact-intro{grid-column:1}.contact-intro>p:last-child{max-width:420px;color:var(--muted)}.contact-form{grid-area:1/2/span 2}.contact-form label{color:var(--muted);font:500 11px var(--mono);letter-spacing:.05em;margin-bottom:17px;display:block}.contact-form input,.contact-form textarea{border:0;border-bottom:1px solid var(--line);width:100%;color:var(--ink);resize:vertical;background:0 0;border-radius:0;outline:0;padding:10px 0}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--accent)}.contact-form .button{margin-top:10px}.form-note,.form-success{color:var(--muted);margin:15px 0 0;font-size:12px}.form-success{color:var(--accent)}.direct-contact{flex-direction:column;align-items:flex-start;gap:8px;display:flex}.direct-contact p{color:var(--muted);font:500 11px var(--mono);margin:0 0 5px}.direct-contact a{border-bottom:1px solid #0000;font-size:14px}.direct-contact a:hover{border-color:var(--accent);color:var(--accent)}footer{border-top:1px solid var(--line);max-width:1080px;color:var(--muted);font:400 10px var(--mono);justify-content:space-between;gap:20px;margin:0 auto;padding:26px 36px 36px;display:flex}footer a{color:var(--accent);font-size:16px}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.reveal{animation:.55s both appear}@keyframes appear{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{animation:none}.project-card,.text-link .icon,.project-link .icon{transition:none}}@media (width<=850px){.nav-links{gap:16px;margin-right:20px}.hero{padding-left:4%}.hero-mark{opacity:.55;right:-25px}.section-grid{grid-template-columns:1fr 1.35fr}.glance-card{grid-column:2}.timeline{margin-left:0}.timeline article{grid-template-columns:135px 1fr}.contact-section{gap:36px}}@media (width<=640px){.portfolio-shell{padding-top:62px}.site-header{height:62px}.header-inner{padding:0 20px}.nav-links{border-bottom:1px solid var(--line);background:var(--bg);flex-direction:column;gap:2px;margin:0;padding:20px;display:none;position:fixed;top:62px;left:0;right:0}.nav-links.open{display:flex}.nav-links a{color:var(--ink);padding:11px 0;font-size:16px}.menu-button{display:grid}main{padding:0 20px}.hero{align-items:flex-start;min-height:calc(100svh - 62px);padding:82px 0 64px}.eyebrow{margin-bottom:35px}.hero h1{font-size:clamp(44px,14vw,62px)}.hero-summary{margin-top:26px}.hero-mark{width:150px;height:150px;top:auto;bottom:48px;right:-55px}.hero-mark span{font-size:50px}.hero-actions{margin-top:28px}.hero-meta{max-width:260px}.section-grid,.contact-section{grid-template-columns:1fr;gap:28px}.glance-card{grid-column:auto}.section-top{align-items:flex-start;margin-bottom:32px}.section-top .text-link{display:none}.project-grid{grid-template-columns:1fr}.project-card{min-height:268px}.timeline article{grid-template-columns:1fr;gap:10px;padding-bottom:42px;padding-left:25px}.timeline-date{font-size:10px}.skill-groups{grid-template-columns:1fr;gap:26px}.contact-form{grid-area:auto}.contact-intro h2{font-size:40px}.direct-contact{grid-row:auto}section{padding:74px 0}.contact-section{padding-bottom:78px}footer{flex-wrap:wrap;padding:22px 20px 30px}.language-switcher button{padding:4px 6px}.blog-section .section-top{flex-wrap:wrap;gap:16px}.blog-section .section-top>div{flex-basis:100%}.blog-section .section-top .text-link{display:inline-flex}}.hero-portrait{border:1px solid var(--line);background:linear-gradient(145deg, color-mix(in srgb, var(--surface) 72%, var(--accent)), var(--surface) 56%);border-bottom:0;justify-content:center;align-items:flex-end;width:min(32vw,350px);height:min(59vw,560px);margin:0;display:flex;position:absolute;bottom:0;right:1%;overflow:hidden}.hero-portrait:before{content:"";aspect-ratio:1;border:1px solid var(--line);border-radius:50%;width:78%;position:absolute;top:13%;left:50%;transform:translate(-50%)}.hero-portrait img{object-fit:contain;object-position:center bottom;z-index:1;filter:drop-shadow(0 18px 25px #00000026);width:122%;max-width:none;height:100%;position:relative}@media (width<=850px){.hero-portrait{opacity:.73;right:-5%}}@media (width<=640px){.hero-portrait{opacity:.42;width:178px;height:275px;bottom:0;right:-72px}.hero-portrait:before{top:17%}}.hero{grid-template-columns:minmax(0,1fr) 285px;align-items:end;gap:56px;padding-left:4%;padding-right:4%;display:grid}.hero-copy{max-width:none;padding-bottom:56px}.hero h1{max-width:650px;font-size:clamp(56px,6.1vw,82px)}.hero h1 em{font-size:44px}.hero-summary{max-width:540px}.hero-portrait{opacity:1;background:0 0;border:0;border-radius:0;align-self:center;width:100%;height:465px;position:relative;bottom:0;right:auto;overflow:visible}.hero-portrait:before{aspect-ratio:auto;background:radial-gradient(ellipse at 50% 72%, color-mix(in srgb, var(--accent) 38%, transparent), transparent 70%);border:0;border-radius:52% 52% 8% 8%;width:84%;height:74%;top:auto;bottom:0;left:8%;transform:none}.hero-portrait img{width:118%}@media (width<=850px){.hero{grid-template-columns:minmax(0,1fr) 235px;gap:34px}.hero-portrait{opacity:1;align-self:center;height:380px;bottom:0;right:auto}.hero-copy{padding-bottom:35px}.hero h1{font-size:clamp(47px,7.1vw,64px)}.hero h1 em{font-size:37px}}@media (width<=640px){.hero{flex-direction:column;align-items:stretch;gap:26px;min-height:auto;padding:76px 0 0;display:flex}.hero-copy{padding-bottom:0}.hero-portrait{opacity:1;align-self:center;width:min(236px,72vw);height:290px;margin:0 auto;position:relative;bottom:0;right:auto}.hero-portrait:before{width:90%;left:50%;transform:translate(-50%)}.hero-portrait img{width:100%}.hero h1{font-size:clamp(44px,13vw,60px)}.hero h1 em{font-size:35px}}.hero-summary,.hero-intro,.about-content p,.about-content .lead,.section-top>div>p:last-child,.project-card p,.timeline p,.education-card div p,.contact-intro>p:last-child{font:400 16px/1.65 var(--sans)}.timeline p.timeline-organisation{color:var(--ink);margin-bottom:6px;font-weight:500}.education-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.education-grid .education-card{max-width:none}@media (width<=640px){.education-grid{grid-template-columns:1fr}}.skill-group .tags{gap:8px;margin-top:20px}.skill-group .tags span{padding:5px 10px;font-size:11px;transition:transform .18s,color .18s,border-color .18s,background .18s}@media (hover:hover){.skill-group .tags span:hover{color:var(--accent);border-color:var(--accent);background:color-mix(in srgb, var(--accent) 10%, transparent);transform:translateY(-2px)}}.blog-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.blog-card{border:1px solid var(--line);background:var(--surface);flex-direction:column;align-items:flex-start;min-height:276px;padding:27px;transition:transform .25s,border-color .25s;display:flex}.blog-card:hover{border-color:var(--accent);transform:translateY(-4px)}.blog-card.featured{grid-column:span 2;min-height:292px}.blog-meta{color:var(--muted);font:400 11px var(--mono);flex-wrap:wrap;align-items:center;gap:9px;margin:0 0 28px;display:flex}.blog-meta span{color:var(--accent)}.blog-card h3{max-width:680px;font:600 26px/1.18 var(--serif);letter-spacing:-.03em;margin:0 0 13px}.blog-card.featured h3{max-width:760px;font-size:clamp(30px,3.4vw,42px)}.blog-card>div>p:last-child{max-width:620px;color:var(--muted);margin:0;font-size:15px;line-height:1.6}.blog-card .project-link{padding-top:24px}.blog-soon{color:var(--muted);font:400 11px var(--mono);margin-top:auto;padding-top:24px}@media (width<=640px){.blog-grid{grid-template-columns:1fr}.blog-card,.blog-card.featured{grid-column:auto;min-height:250px;padding:23px}.blog-card.featured h3{font-size:31px}.blog-meta{margin-bottom:23px}}.project-link{text-align:left;background:0 0;border:0;padding-left:0;padding-right:0}.project-dialog-backdrop{z-index:60;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0a0a08b8;padding:28px;position:fixed;inset:0;overflow-y:auto}.project-dialog{background:var(--bg);border:1px solid var(--line);width:min(1040px,100%);margin:0 auto;position:relative;box-shadow:0 24px 80px #0000004d}.project-dialog-close{float:right;z-index:2;border:1px solid var(--line);width:38px;height:38px;color:var(--ink);background:color-mix(in srgb, var(--bg) 87%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:50%;place-items:center;margin:18px 18px 0 0;display:grid;position:sticky;top:18px}.project-dialog-close:hover{color:var(--accent);border-color:var(--accent)}.case-study-hero{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr);align-items:center;min-height:410px;padding:72px;display:grid}.case-study-hero h2{font:600 clamp(48px, 6vw, 76px)/.96 var(--serif);letter-spacing:-.06em;margin:8px 0 6px}.case-study-subtitle{color:var(--accent);font:500 12px var(--mono);letter-spacing:.03em;margin:0 0 28px}.case-study-hero>div>p:not(.section-index):not(.case-study-subtitle){max-width:570px;color:var(--muted);margin:0 0 27px;font-size:16px}.case-study-overview{border:0;border-bottom:1px solid var(--line);grid-template-columns:1.25fr 1fr;gap:56px;padding:48px 72px;display:grid}.case-study-overview .card-label{margin:0 0 14px}.case-study-overview dl{margin:0}.case-study-overview dl div{border-top:1px solid var(--line);grid-template-columns:115px 1fr;gap:20px;padding:12px 0;display:grid}.case-study-overview dt{color:var(--muted);font:400 10px var(--mono);text-transform:uppercase;letter-spacing:.08em}.case-study-overview dd{margin:0;font-size:14px}.case-study-results{grid-template-columns:repeat(3,1fr);align-content:start;gap:10px;display:grid}.case-study-results .card-label{grid-column:1/-1}.case-study-results div{border-top:1px solid var(--line);padding-top:12px}.case-study-results strong{color:var(--accent);font:600 25px/1 var(--serif);letter-spacing:-.04em;display:block}.case-study-results span{color:var(--muted);font:400 10px/1.4 var(--mono);margin-top:6px;display:block}.case-study-system{border:0;border-bottom:1px solid var(--line);grid-template-columns:.75fr 1.2fr;gap:42px;padding:70px 72px;display:grid}.case-study-system h3,.case-study-gallery h3{font:600 clamp(31px, 4vw, 45px)/1 var(--serif);letter-spacing:-.045em;margin:8px 0 0}.case-study-system-content{min-width:0}.case-study-system-content>ul{gap:0;margin:0;padding:0;list-style:none;display:grid}.case-study-system-content>ul li{border-top:1px solid var(--line);grid-template-columns:146px 1fr;gap:20px;padding:16px 0;display:grid}.case-study-system-content>ul strong{font:500 11px/1.5 var(--mono);color:var(--accent);text-transform:uppercase;letter-spacing:.05em}.case-study-system-content>ul span{color:var(--muted);white-space:pre-line;font-size:14px;line-height:1.6}.case-study-flow{border-top:1px solid var(--line);margin-top:18px;padding-top:16px}.case-study-flow .card-label{margin:0 0 14px}.case-study-flow ol{flex-wrap:wrap;gap:10px;margin:0;padding:0;list-style:none;display:flex}.case-study-flow li{border:1px solid var(--line);color:var(--muted);font:400 10px var(--mono);border-radius:999px;align-items:center;gap:8px;padding:6px 10px;display:flex}.case-study-flow li span{color:var(--accent)}.case-study-gallery{border:0;padding:70px 72px}.case-study-gallery-heading{margin-bottom:30px}.pending-gallery>p{max-width:540px;color:var(--muted);margin:0;font-size:15px}.gallery-grid{flex-direction:column;align-items:flex-start;gap:18px;display:flex}.gallery-grid figure{border:1px solid var(--line);background:var(--surface);width:fit-content;min-width:0;max-width:100%;margin:0}.gallery-grid figure:first-child{width:100%}.gallery-grid figure.portrait-shot{width:min(344px,100%)}.gallery-image-button{background:#0d1322;border:0;width:auto;max-width:100%;padding:0;display:block}.gallery-grid figure:first-child .gallery-image-button{width:100%}.gallery-grid img{background:#0d1322;width:auto;max-width:100%;height:auto;transition:opacity .2s;display:block}.gallery-image-button:hover img{opacity:.86}.gallery-lightbox{z-index:80;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#000000db;place-items:center;padding:48px;display:grid;position:fixed;inset:0}.gallery-lightbox>img{object-fit:contain;width:auto;max-width:100%;height:auto;max-height:calc(100svh - 96px);display:block;box-shadow:0 18px 55px #00000073}.gallery-lightbox-close{z-index:1;color:#fff;background:#00000061;border:1px solid #ffffff59;border-radius:50%;place-items:center;width:40px;height:40px;display:grid;position:fixed;top:20px;right:20px}.gallery-lightbox-close:hover{color:var(--accent);border-color:var(--accent)}.gallery-grid figcaption{flex-direction:column;gap:5px;width:100%;min-width:0;padding:15px;display:flex}.gallery-grid strong{font:600 19px/1.1 var(--serif);letter-spacing:-.025em;overflow-wrap:anywhere}.gallery-grid span{color:var(--muted);overflow-wrap:anywhere;font-size:13px;line-height:1.45}.blog-archive-page{border-top:0;padding:60px 0 120px}.blog-archive-actions{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;min-height:74px;display:flex}.blog-archive-actions .project-dialog-close{float:none;margin:0;position:static}.blog-archive-header{max-width:760px;padding:76px 0 54px}.blog-archive-header h2{font:600 clamp(54px, 7vw, 86px)/.92 var(--serif);letter-spacing:-.065em;margin:8px 0 18px}.blog-archive-header>p:last-child{max-width:490px;color:var(--muted);margin:0;font-size:16px}.blog-topic-filter{border-top:1px solid var(--line);padding:24px 0 34px}.blog-topic-filter .card-label{margin:0 0 13px}.blog-topic-filter>div,.archive-card-tags{flex-wrap:wrap;gap:8px;display:flex}.blog-topic-filter button,.archive-card-tags button{border:1px solid var(--line);color:var(--muted);font:400 11px var(--mono);background:0 0;border-radius:999px;transition:color .18s,border-color .18s,background .18s}.blog-topic-filter button{padding:6px 10px}.blog-topic-filter button:hover,.blog-topic-filter button.active{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent);color:var(--accent)}.blog-archive-grid{grid-template-columns:repeat(12,minmax(0,1fr));align-items:stretch;gap:18px;display:grid}.archive-card{border:1px solid var(--line);background:var(--surface);flex-direction:column;align-items:flex-start;min-width:0;padding:28px;transition:transform .25s,border-color .25s;display:flex;position:relative;overflow:hidden}.archive-card:hover{border-color:var(--accent);transform:translateY(-4px)}.archive-card .blog-meta{margin-bottom:26px}.archive-card h3{max-width:680px;font:600 28px/1.1 var(--serif);letter-spacing:-.04em;margin:0 0 14px}.archive-card>p:not(.blog-meta){max-width:570px;color:var(--muted);margin:0;font-size:15px;line-height:1.62}.archive-card-tags{margin-top:20px}.archive-card-tags button{cursor:pointer;padding:3px 7px}.archive-card-tags button:hover{color:var(--accent);border-color:var(--accent)}.archive-card .project-link{margin-top:auto;padding-top:30px}.archive-card-1{background:linear-gradient(135deg, color-mix(in srgb, var(--surface) 78%, var(--accent)), var(--surface) 68%);grid-column:span 7;min-height:440px;padding:38px;overflow:hidden}.archive-card-index{z-index:0;color:color-mix(in srgb, var(--accent) 22%, transparent);font:600 clamp(82px, 10vw, 140px)/.8 var(--serif);letter-spacing:-.1em;pointer-events:none;position:absolute;bottom:-14px;right:22px}.archive-card>:not(.archive-card-index){z-index:1;position:relative}.archive-card-1 .archive-card-index{font-size:170px}.archive-card-1 h3{font-size:clamp(38px,4vw,56px)}.archive-card-2{grid-column:span 5;min-height:440px}.archive-card-2 h3{font-size:clamp(32px,3vw,43px)}.archive-card-3,.archive-card-4,.archive-card-5{grid-column:span 4;min-height:250px}.archive-card-3 h3,.archive-card-5 h3{font-size:25px}.archive-card-4{background:color-mix(in srgb, var(--surface) 88%, var(--accent))}.archive-card-4 h3{font-size:31px}.archive-card-6{grid-column:span 7;min-height:300px}.archive-card-6 h3{font-size:clamp(30px,3vw,42px)}.archive-card-7{grid-column:span 5;min-height:300px}.archive-card-8{grid-column:span 5;min-height:275px}.archive-card-9{grid-column:span 7;min-height:275px}.archive-card-9 h3{font-size:32px}.archive-card-10{grid-column:span 4;min-height:250px}.archive-card-11{grid-column:span 8;min-height:250px}.blog-article-page{padding:20px 0 112px}.blog-article-actions{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;min-height:74px;display:flex}.blog-article-back{color:var(--accent);font:500 12px var(--mono);background:0 0;border:0;padding:8px 0}.blog-article-actions .project-dialog-close{float:none;margin:0;position:static}.blog-article-header{max-width:820px;padding:48px 0}.blog-article-header .blog-meta{margin-bottom:22px}.blog-article-header h2{font:600 clamp(44px, 6vw, 76px)/.98 var(--serif);letter-spacing:-.06em;margin:0 0 24px}.blog-article-header>p:last-child{max-width:700px;color:var(--muted);margin:0;font-size:18px;line-height:1.65}.blog-article-cover{border:1px solid var(--line);background:linear-gradient(130deg, color-mix(in srgb, var(--surface) 75%, var(--accent)), var(--surface) 63%);flex-direction:column;justify-content:space-between;min-height:290px;padding:30px;display:flex;position:relative;overflow:hidden}.blog-article-cover:before{content:"";opacity:.28;background-image:linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px);background-size:40px 40px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(90deg,#000,#0000 80%);mask-image:linear-gradient(90deg,#000,#0000 80%)}.blog-article-cover p{z-index:1;color:var(--muted);font:500 11px var(--mono);letter-spacing:.1em;text-transform:uppercase;margin:0;position:relative}.blog-article-cover.has-image{aspect-ratio:16/9;background:var(--surface);min-height:0;padding:0}.blog-article-cover.has-image:before{display:none}.blog-article-cover.has-image img{object-fit:cover;width:100%;height:100%;display:block}.blog-article-layout{grid-template-columns:180px minmax(0,680px);justify-content:space-between;gap:72px;padding-top:60px;display:grid}.blog-table-of-contents{align-self:start;max-height:calc(100svh - 118px);padding-right:10px;position:sticky;top:94px;overflow-y:auto}.blog-table-of-contents .card-label{margin:0 0 14px}.blog-table-of-contents ol{gap:8px;margin:0;padding:0;list-style:none;display:grid}.blog-table-of-contents a{color:var(--muted);border-left:1px solid #0000;padding:4px 0 4px 11px;font-size:13px;line-height:1.4;transition:color .18s,border-color .18s;display:block}.blog-table-of-contents a:hover,.blog-table-of-contents a.active{border-color:var(--accent);color:var(--accent)}.blog-article-content section{border:0;margin:0 0 54px;padding:0;scroll-margin-top:92px}.blog-article-content h3{font:600 clamp(30px, 3.4vw, 42px)/1.05 var(--serif);letter-spacing:-.045em;margin:0 0 17px}.blog-article-content p{color:var(--muted);margin:0 0 17px;font-size:16px;line-height:1.76}.blog-article-content blockquote{border-left:2px solid var(--accent);color:var(--ink);font:500 clamp(22px, 2.7vw, 30px)/1.35 var(--serif);letter-spacing:-.025em;margin:62px 0;padding:26px 0 26px 28px}.blog-article-tags{border-top:1px solid var(--line);flex-wrap:wrap;gap:8px;padding-top:25px;display:flex}.blog-article-tags span{border:1px solid var(--line);color:var(--muted);font:400 10px var(--mono);border-radius:999px;padding:4px 8px}.blog-article-like{border-top:1px solid var(--line);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;margin-top:34px;padding:20px 0;display:flex}.blog-article-like p{color:var(--ink);margin:0 0 4px;font-size:14px;line-height:1.4}.blog-article-like small{color:var(--muted);font:400 10px/1.4 var(--mono)}.blog-article-like button{border:1px solid var(--line);color:var(--ink);font:500 12px var(--sans);background:0 0;border-radius:999px;flex:none;align-items:center;gap:8px;padding:9px 13px;transition:background .18s,border-color .18s,color .18s;display:inline-flex}.blog-article-like button:hover,.blog-article-like button.liked{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent);color:var(--accent)}.blog-article-like .icon{width:15px;height:15px}.blog-article-nav{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;gap:20px;margin-top:62px;padding-top:25px;display:grid}.blog-article-nav a:last-child{text-align:right}.blog-article-nav small{color:var(--muted);font:400 10px var(--mono);margin-bottom:7px;display:block}.blog-article-nav strong{color:var(--accent);font:500 13px/1.45 var(--sans);display:block}@media (width<=720px){.blog-article-page{padding:0 0 48px}.blog-archive-page{padding:36px 0 76px}.blog-archive-header{padding:58px 0 40px}.blog-archive-grid{grid-template-columns:1fr}.archive-card,.archive-card-1,.archive-card-2,.archive-card-3,.archive-card-4,.archive-card-5,.archive-card-6,.archive-card-7,.archive-card-8,.archive-card-9,.archive-card-10,.archive-card-11{grid-column:auto;min-height:250px;padding:24px}.archive-card-1 h3{font-size:38px}.archive-card-1 .archive-card-index{font-size:132px}.blog-article-header{padding:38px 0 40px}.blog-article-header h2{font-size:clamp(42px,13vw,58px)}.blog-article-header>p:last-child{font-size:16px}.blog-article-cover{min-height:210px;padding:22px}.blog-article-layout{grid-template-columns:1fr;gap:34px;padding-top:40px}.blog-table-of-contents{border:1px solid var(--line);background:var(--surface);padding:18px;position:static}.blog-article-content section{margin-bottom:42px}.blog-article-content blockquote{margin:48px 0;padding-left:20px}.blog-article-like{flex-direction:column;align-items:flex-start}.blog-article-nav{grid-template-columns:1fr;margin-top:46px}.blog-article-nav a:last-child{text-align:left}.project-dialog-backdrop{padding:0}.project-dialog{border-width:0;min-height:100%}.project-dialog-close{position:absolute}.case-study-hero{min-height:auto;padding:82px 24px 44px}.case-study-overview,.case-study-system{grid-template-columns:1fr;gap:30px;padding:42px 24px}.case-study-results{gap:14px}.case-study-system-content>ul li{grid-template-columns:1fr;gap:5px}.case-study-gallery{padding:42px 24px}.gallery-lightbox{padding:20px}.gallery-lightbox>img{max-height:calc(100svh - 40px)}}.hero-portrait.id-card-stage{opacity:0;pointer-events:none;background:0 0;border:0;width:100%;height:465px;margin:0;display:block;position:relative;overflow:hidden}.hero-portrait.id-card-stage:before{display:none}.id-card-overlay{z-index:15;pointer-events:none;position:fixed;inset:0;overflow:hidden}.id-card-canvas{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.id-card-canvas canvas{touch-action:none;pointer-events:none;width:100%;height:100%;display:block}.id-card-canvas canvas.is-dragging{cursor:grabbing}.id-card-stage .sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=850px){.hero-portrait.id-card-stage{height:380px}}@media (width<=640px){.hero-portrait.id-card-stage{width:min(250px,78vw);height:340px;margin:0 auto}}.id-card-loading{flex-direction:column;justify-content:center;align-items:center;width:100%;height:465px;padding-top:45px;display:flex;position:relative}.id-card-loading:before{content:"";background:repeating-linear-gradient(0deg,#242934 0 2px,#191d27 2px 4px);border-left:8px solid #191d27;border-right:8px solid #303642;width:46px;height:29%;position:absolute;top:0;left:50%;transform:translate(-50%)}.id-card-loading img{z-index:1;object-fit:cover;object-position:center 30%;background:#eee4ce;border:5px solid #171d2b;border-radius:16px;width:min(76%,225px);height:72%;padding:7px;position:relative;box-shadow:0 18px 45px #00000047}.id-card-loading span{z-index:2;color:#fff8e9;max-width:74%;font:700 10px/1.3 var(--mono);text-align:center;background:#172b45;padding:8px 10px;position:absolute;bottom:16%}@media (width<=850px){.id-card-loading{height:380px}}@media (width<=640px){.id-card-loading{height:340px}}.id-card-overlay{opacity:1;visibility:visible;transition:opacity .22s,visibility .22s}.id-card-overlay.is-hidden{opacity:0;visibility:hidden}
