@font-face{font-family:Manrope;src:url('/assets/Manrope.ttf') format('truetype');font-weight:200 800;font-display:swap}
/* Artwork stays in color; the gallery follows the site's graphite typography. */
.portfolio{border-bottom:1px solid var(--rule);overflow:hidden;--piece-width:calc((100% - 48px)/3);--piece-gap:24px}
.portfolio-heading{display:flex;justify-content:space-between;align-items:end;gap:48px;margin-bottom:48px}
.portfolio-heading .eyebrow{margin-bottom:20px;font-size:13px;letter-spacing:.1em;color:var(--muted)}
.portfolio-heading h2{font-size:clamp(32px,4.2vw,64px);font-weight:200;letter-spacing:-.035em;line-height:1.1}
.portfolio-heading>p{font-size:16px;max-width:380px;color:var(--muted);margin:0}
.portfolio-window{overflow-x:auto;scrollbar-width:thin;scrollbar-color:var(--rule) transparent;padding:8px 0 12px;touch-action:pan-y;outline-offset:4px}
.portfolio-track{display:flex;gap:var(--piece-gap);align-items:start}
.portfolio-card{flex:0 0 var(--piece-width);min-width:0;margin:0}
.portfolio-open{display:block;position:relative;aspect-ratio:4/5;background:var(--alt);border-radius:4px;overflow:hidden;cursor:zoom-in}
.portfolio-open img{width:100%;height:100%;object-fit:contain;transition:filter .3s}
.portfolio-expand{position:absolute;right:14px;bottom:14px;width:40px;height:40px;border-radius:50%;background:#17181ad9;border:1px solid #ffffff55;display:grid;place-items:center;color:#fff;font-size:24px;opacity:0;transform:translateY(5px);transition:opacity .25s,transform .25s}
.portfolio-open:hover .portfolio-expand,.portfolio-open:focus-visible .portfolio-expand{opacity:1;transform:none}
.portfolio-caption{display:flex;flex-direction:column;gap:5px;padding:18px 2px 0;font-size:13px;line-height:1.5}
.portfolio-caption>span:first-child{font-size:16px}.portfolio-caption>span:last-child{color:var(--muted)}
.portfolio-bottom{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-top:32px}
.portfolio-hint{color:var(--muted);font-size:13px;margin:0}
.portfolio-controls{display:flex;align-items:center;gap:12px}.portfolio-controls[hidden]{display:none}
.portfolio-counter{font-size:13px;font-variant-numeric:tabular-nums;min-width:55px;text-align:center}
.portfolio-arrow{width:48px;height:48px;flex-shrink:0;border:1px solid #ffffff42;border-radius:50%;font-size:24px;transition:background .2s,border-color .2s}
.portfolio-arrow:hover{background:#ffffff10;border-color:#ffffffa0}.portfolio-play{font-size:13px;min-height:48px;padding:0 16px;text-decoration:underline;text-underline-offset:5px}
.portfolio.is-ready .portfolio-window{overflow:hidden}.portfolio.is-ready .portfolio-track{transition:transform .5s cubic-bezier(.22,.61,.36,1);will-change:transform}
.portfolio.is-ready .portfolio-track.is-resetting{transition:none}
.portfolio-dialog{background:#17181a;color:var(--text);border:1px solid var(--rule);border-radius:6px;padding:16px 24px;width:min(100% - 32px,1000px);max-height:calc(100svh - 32px);overflow:auto}
.portfolio-dialog::backdrop{background:#000d;backdrop-filter:blur(8px)}
.portfolio-modal-bar{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:12px}
.portfolio-modal-caption{font-size:14px;margin:0}.portfolio-close{width:48px;height:48px;border:1px solid var(--rule);border-radius:50%;flex-shrink:0}
.portfolio-modal-image{height:min(70svh,800px);width:100%;object-fit:contain;margin:auto}
.portfolio-modal-controls{display:flex;justify-content:center;align-items:center;gap:24px;margin-top:16px;font-size:13px}
.portfolio-modal-open{overflow:hidden}
@media(max-width:1000px){.portfolio{--piece-width:calc((100% - 24px)/2)}.portfolio-heading{align-items:start}.portfolio-heading>p{max-width:280px}}
@media(max-width:600px){.portfolio{--piece-width:86%;--piece-gap:16px}.portfolio-heading{display:block;margin-bottom:28px}.portfolio-heading>p{margin-top:24px;max-width:100%;font-size:15px}.portfolio-bottom{align-items:start;flex-direction:column;gap:16px}.portfolio-controls{align-self:flex-end}.portfolio-play{padding-left:0}.portfolio-hint{max-width:230px}.portfolio-expand{opacity:1;transform:none}.portfolio-dialog{padding:12px;width:calc(100% - 16px)}.portfolio-modal-image{height:64svh}.portfolio-modal-caption{font-size:12px}}
@media(prefers-reduced-motion:reduce){.portfolio.is-ready .portfolio-track,.portfolio-expand,.portfolio-arrow,.portfolio-open img{transition:none}}
@font-face{font-family:Cormorant;src:url('/assets/CormorantGaramond-Italic.ttf') format('truetype');font-weight:300 700;font-style:italic;font-display:swap}
:root{--bg:#18191b;--alt:#202124;--text:#f2f0eb;--muted:#b7b4af;--rule:#4a4c50;--pad:6%;--header:100px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:120px}body{margin:0;background:var(--bg);color:var(--text);font-family:Manrope,'Helvetica Neue',Arial,sans-serif;font-size:20px;line-height:1.55;font-weight:400}body:before{content:'';position:fixed;inset:0;pointer-events:none;z-index:-1;opacity:.075;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='150' height='150'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23n)' opacity='.6' d='M0 0h150v150H0z'/%3E%3C/svg%3E")}
a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button{color:inherit;cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--text);outline-offset:6px}p{margin:0 0 26px}h1,h2,h3{font-weight:400;margin:0}button{background:none;border:0}img{display:block;max-width:100%;height:auto}em,.accent{font-family:Cormorant,Georgia,serif;font-weight:400;font-style:italic}::selection{background:#c7c3bb;color:#17181a}
.skip{position:fixed;left:16px;top:-80px;background:var(--text);color:var(--bg);padding:12px;z-index:99}.skip:focus{top:12px}.header{position:fixed;top:0;left:0;right:0;height:var(--header);padding:0 var(--pad);display:flex;justify-content:space-between;align-items:center;z-index:20;transition:background .2s}.header.scrolled{background:#18191bf5;backdrop-filter:blur(10px);border-bottom:1px solid #ffffff18}.identity{font-family:Georgia,serif;font-style:italic;font-size:38px;line-height:1;letter-spacing:-5px;min-width:70px}.identity-slash{font-family:Manrope,Arial,sans-serif;font-weight:200;font-size:48px;margin:0 5px}.identity-dot{font-family:Georgia,serif}.header nav{display:flex;align-items:center;gap:30px;font-size:13px;text-transform:uppercase;font-weight:700;letter-spacing:.02em}.header nav>a{padding:12px 0;position:relative}.header nav>a:after{content:'';position:absolute;bottom:4px;left:0;width:0;height:1px;background:var(--text);transition:width .2s}.header nav>a:hover:after{width:100%}.service-nav{position:relative;display:flex;align-items:center}.submenu-toggle{font-size:19px;width:44px;height:44px}.service-nav>div{position:absolute;top:54px;left:-20px;width:280px;padding:16px 20px;background:#242528;border:1px solid var(--rule);font-weight:400;text-transform:none}.service-nav>div a{display:block;padding:10px 0}.service-nav>div a:hover{text-decoration:underline}.menu-toggle{display:none}
.hero{height:100svh;min-height:660px;display:grid;grid-template-columns:1fr 1fr;position:relative;background:radial-gradient(ellipse at 25% 40%,#ffffff05,transparent 60%)}.hero-copy{padding-left:32%;display:flex;justify-content:center;flex-direction:column;padding-top:30px}.hero h1{font-size:42px;line-height:.98;font-weight:200;letter-spacing:-1.4px;text-transform:uppercase}.hero h1 span{display:block}.muted{color:var(--muted)}.accent{font-size:32px;line-height:1.3}.hero .accent{margin:15px 0 0;max-width:340px}.hero-photo{height:100%;overflow:hidden;background:#101112}.hero-photo img{height:100%;width:100%;object-fit:cover;object-position:50% 28%}.scroll-cue{position:absolute;left:var(--pad);bottom:30px;font-size:30px;transition:transform .2s}.scroll-cue:hover{transform:translateY(6px)}
.editorial{padding:160px var(--pad)}.eyebrow{font-size:16px;line-height:1.4;text-transform:uppercase;letter-spacing:.015em;font-weight:400;margin-bottom:64px}.statement{font-size:37px;font-weight:200;line-height:1.18;text-transform:uppercase;max-width:950px;letter-spacing:-.7px;margin-bottom:72px}.offset-copy{margin-left:50%;max-width:600px;padding-left:16px}.text-link{font-size:17px;display:inline-flex;align-items:center;gap:42px;border-bottom:1px solid var(--rule);padding:12px 0;margin:12px 28px 0 0}.arrow{display:inline-block;transition:transform .2s}.text-link:hover .arrow,.service-row:hover .arrow{transform:translate(5px,-3px)}.text-link:hover{border-color:var(--text)}
.element-feature{margin:0 var(--pad);padding:80px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);display:grid;grid-template-columns:1fr 1fr;gap:32px}.element-feature .eyebrow{margin-bottom:35px}.display{font-size:clamp(55px,8vw,110px);font-weight:200;letter-spacing:-.07em;line-height:1.1;margin-bottom:16px}.element-feature>div:last-child{padding-top:40px}.service-row{display:flex;justify-content:space-between;align-items:center;gap:20px;border-bottom:1px solid var(--rule);padding:24px 0;min-height:88px;font-size:24px;font-weight:300}.services .offset-copy{max-width:none}.contact-block{background:linear-gradient(120deg,#ffffff03,transparent 65%)}.name-band{overflow:hidden;white-space:nowrap;border-block:1px solid var(--rule);padding:45px var(--pad);font-size:clamp(34px,6vw,90px);font-weight:200;letter-spacing:-.04em}.name-band em{margin-left:35px;color:var(--muted)}.footer{display:grid;grid-template-columns:2fr 1fr 1.6fr 1fr;gap:45px;padding:80px var(--pad) 28px;font-size:14px}.footer-name{font-size:25px;font-weight:300}.footer p{color:var(--muted);margin-top:20px}.footer h2{font-size:14px;text-transform:uppercase;margin-bottom:24px}.footer>div>a:not(.footer-name){display:block;margin-bottom:12px}.footer a:hover{text-decoration:underline}.footer-bottom{grid-column:1/-1;border-top:1px solid var(--rule);padding-top:26px;display:flex;justify-content:space-between;color:var(--muted)}.footer-bottom a{display:inline!important}
.page-opening{padding:220px var(--pad) 90px}.page-opening h1{font-size:clamp(40px,5vw,70px);font-weight:200;letter-spacing:-.04em;line-height:1.1;max-width:950px;margin-bottom:35px}.page-opening .accent{max-width:700px}.opening-copy{max-width:620px;color:var(--muted);margin-top:35px}.back-link{display:block;color:var(--muted);font-size:16px;margin-bottom:40px}.about-opening{padding:200px var(--pad) 100px;display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}.about-name{font-size:clamp(60px,9vw,125px);font-weight:200;line-height:1;color:var(--muted);letter-spacing:-.05em}.about-name span{display:block;font-size:16px;letter-spacing:0;margin-top:40px}.about-opening h1{font-size:42px;font-weight:200;line-height:1.2}.about-opening em{display:block;margin-top:22px}.timeline article{display:grid;grid-template-columns:1fr 1fr;gap:32px;padding:40px 0;border-top:1px solid var(--rule)}.timeline article>span{color:var(--muted);font-size:17px}.timeline h3{font-size:25px;margin-bottom:20px}.service-index{padding-top:30px}.service-index article{padding:60px 0;border-top:1px solid var(--rule);display:grid;grid-template-columns:1fr 1fr;gap:50px}.service-index h2{font-size:35px;font-weight:200;line-height:1.2}.detail{max-width:850px;margin:auto;padding:30px 24px 130px}.detail h2{font-size:25px;margin:56px 0 22px}.detail h2:first-child{margin-top:0}.detail p,.detail li{color:#d1ceca}.detail li{margin:14px 0}.detail ul{padding-left:22px}.project-list{padding-top:0}.project-item{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;padding:80px 0;border-block:1px solid var(--rule)}.project-word{font-size:clamp(40px,6vw,90px);font-weight:600;letter-spacing:-.06em}.project-item .eyebrow{margin-bottom:24px;display:block}.project-item h2{font-size:35px;font-weight:200;margin-bottom:25px}.contact-layout{padding:20px var(--pad) 160px;display:grid;grid-template-columns:1fr 1fr;gap:90px}.contact-layout h2:not(.eyebrow){font-size:32px;font-weight:200;max-width:400px;line-height:1.25;margin-bottom:35px}.contact-number{font-size:24px;margin-top:55px}.small{font-size:14px;line-height:1.6;color:var(--muted)}.contact-layout .small{margin-top:35px}.contact-layout label{display:block;font-size:16px;margin:24px 0 8px}.contact-layout input,.contact-layout textarea,.contact-layout select{width:100%;color:var(--text);background:#ffffff04;border:0;border-bottom:1px solid #898b90;border-radius:0;padding:12px;min-height:48px}.contact-layout select option{background:var(--bg)}.submit-link{display:flex;justify-content:space-between;align-items:center;width:100%;padding:20px 0;border-bottom:1px solid var(--text);font-size:18px}.submit-link:hover span{transform:translate(5px,-3px)}#form-status{font-size:15px;margin-top:20px}.menu-open{overflow:hidden}
.element-logo-link{cursor:pointer;transition:opacity .2s,filter .2s}.element-logo-link:hover{opacity:.85;filter:brightness(1.15)}
.element-brand-logo{width:400px;max-width:100%;height:auto;margin-bottom:24px;object-fit:contain}
.element-inline-logo{display:inline-block;width:6em;max-width:100%;height:auto;vertical-align:-.08em;object-fit:contain}
.page-opening h1 .element-inline-logo{width:500px;max-width:100%}
.project-word .element-inline-logo{width:400px;max-width:100%}
.project-list h2 .element-inline-logo{width:230px}
.footer .element-inline-logo{width:90px}
@media(min-width:1700px){.hero h1{font-size:52px}.hero-copy{padding-left:30%}.hero .accent{font-size:38px}}
@media(max-width:1100px){.header nav{gap:20px}.hero h1{font-size:36px}.hero-copy{padding-left:24%}.accent{font-size:29px}.footer{gap:25px}.contact-layout{gap:50px}}
@media(max-width:850px){:root{--header:72px;--pad:24px}.menu-toggle{display:flex;flex-direction:column;justify-content:center;gap:8px;width:44px;height:44px;padding:4px}.menu-toggle span{display:block;width:36px;height:1px;background:var(--text);transition:transform .2s}.header nav{display:none}.header nav.open{position:fixed;inset:72px 0 0;background:var(--bg);display:flex;flex-direction:column;align-items:stretch;padding:50px 24px;gap:20px;font-size:20px;overflow:auto}.service-nav{flex-wrap:wrap}.service-nav>div{position:static;width:100%;margin-top:16px;font-size:17px}.header .menu-toggle[aria-expanded=true] span:first-child{transform:translateY(4.5px) rotate(45deg)}.header .menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-4.5px) rotate(-45deg)}.hero{height:auto;min-height:0;display:flex;flex-direction:column}.hero-copy{padding:150px 24px 70px;min-height:460px}.hero h1{font-size:40px}.hero-photo{width:100%;height:auto}.hero-photo img{height:auto;aspect-ratio:4/5;object-fit:contain}.scroll-cue{display:none}.hero .accent{max-width:none;font-size:30px}.editorial{padding:80px var(--pad)}.eyebrow{font-size:14px;margin-bottom:40px}.statement{font-size:29px;line-height:1.22;margin-bottom:45px}.offset-copy{margin-left:0;padding-left:0;max-width:none}.element-feature{padding:60px 0;grid-template-columns:1fr;gap:15px}.element-feature>div:last-child{padding-top:0}.service-row{font-size:21px}.footer{grid-template-columns:1fr 1fr;gap:45px 20px;padding-top:55px}.footer>div:first-child{grid-column:1/-1}.footer-bottom{gap:20px;flex-wrap:wrap}.name-band{font-size:38px;padding-block:30px}.name-band em{margin-left:22px}.page-opening{padding-top:160px;padding-bottom:60px}.about-opening{padding:160px 24px 70px;grid-template-columns:1fr;gap:65px}.about-opening h1{font-size:32px}.timeline article{grid-template-columns:1fr;gap:18px}.service-index article{grid-template-columns:1fr;gap:30px;padding:40px 0}.service-index{padding-top:0}.project-item{grid-template-columns:1fr;gap:50px;padding:50px 0}.contact-layout{grid-template-columns:1fr;gap:80px;padding-bottom:80px}.contact-layout .contact-number{margin-top:30px}.detail{padding-bottom:80px}body{font-size:18px}.identity{font-size:30px}.identity-slash{font-size:38px}}
@media(max-width:360px){:root{--pad:16px}.hero-copy{padding-inline:16px}.hero h1{font-size:34px}.hero .accent{font-size:26px}.statement{font-size:27px}.service-row{font-size:19px}.footer{grid-template-columns:1fr}.footer>div:first-child{grid-column:auto}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

.experience-identity{display:flex;flex-direction:column;gap:22px}.experience-years{color:var(--muted);font-size:17px}.experience-logos{display:flex;align-items:center;flex-wrap:wrap;gap:24px;max-width:100%}.experience-logo{display:block;object-fit:contain;max-width:100%;height:auto}.experience-logo.square{width:160px}.experience-logo.wide{width:300px}.experience-logos:has(img+img) .experience-logo.square{width:125px}.experience-logos:has(img+img) .experience-logo.wide{width:180px}.experience-copy{min-width:0}
@media(max-width:850px){.experience-identity{gap:16px}.experience-logos{gap:20px}.experience-logo.square{width:130px}.experience-logo.wide{width:260px}.experience-logos:has(img+img) .experience-logo.square{width:110px}.experience-logos:has(img+img) .experience-logo.wide{width:155px}}

.experience-logos .element-logo-link{display:block;max-width:100%}
/* Neutral graphite, editorial rhythm and restrained interactions. */
:root{--bg:#17181a;--alt:#202225;--text:#f3f3f3;--muted:#b9bbc0;--rule:#484b50}
body{background-image:radial-gradient(ellipse at 12% 28%,#ffffff04,transparent 65%);-webkit-font-smoothing:antialiased}
body:before{opacity:.04}
.header.scrolled{background:#17181aed;backdrop-filter:blur(18px)}
.statement,.page-opening h1,.about-opening h1{text-wrap:balance}
.detail p,.detail li{color:#d1d3d7}
.editorial{padding-block:clamp(90px,10vw,144px)}
.timeline article{transition:border-color .25s ease}
.service-row{position:relative;transition:border-color .25s ease,background-color .25s ease}
.text-link{transition:border-color .25s ease,color .25s ease}
.header nav a[aria-current=page]:after{width:100%}
.motion-enter{opacity:0;transform:translateY(12px);transition:opacity .6s ease,transform .6s cubic-bezier(.2,.7,.2,1)}
.motion-enter:is(.motion-arrived,:focus-within){opacity:1;transform:none}
.contact-layout textarea{resize:none;min-height:140px}
.contact-layout [aria-invalid=true]{border-color:#eee;background:#ffffff0a}
.field-error{display:block;font-size:14px;margin-top:8px;color:var(--text)}
@media(hover:hover) and (pointer:fine){
 .service-row:hover{background:#ffffff03;border-color:#a1a5ac}
 .timeline article:hover{border-color:#a1a5ac}
 .text-link:hover{color:#fff}
}
@media(max-width:850px){.editorial{padding-block:80px}.header.scrolled{backdrop-filter:blur(10px)}}
@media(prefers-reduced-motion:reduce){.motion-enter{opacity:1;transform:none;transition:none}.arrow{transform:none!important}}

.field-error[hidden]{display:none}

/* Persistent shortcuts, matching the site's graphite and silver palette. */
.quick-actions{position:fixed;right:clamp(16px,2.5vw,36px);bottom:calc(20px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:10px;z-index:18}
.quick-action{display:grid;place-items:center;width:48px;height:48px;border:1px solid #ffffff30;border-radius:50%;color:var(--text);background:#17181aee;box-shadow:0 4px 18px #00000025;transition:border-color .2s,background-color .2s,transform .2s}
.quick-action svg{width:23px;height:23px}
.quick-action:focus-visible{outline:2px solid var(--text);outline-offset:4px}
.menu-open .quick-actions{visibility:hidden}
.footer{padding-bottom:96px}
@media(hover:hover) and (pointer:fine){.quick-action:hover{border-color:#ffffff80;background:#282a2e;transform:translateY(-2px)}}
@media(max-width:850px){.quick-actions{gap:8px;right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px))}}
@media(prefers-reduced-motion:reduce){.quick-action{transition:none}.quick-action:hover{transform:none}}
