/* ANTHE approved whole-scroll composition. The canvas is continuous; content remains live HTML. */
@font-face{font-family:Anthe;src:url('assets/manrope-extralight.ttf') format('truetype');font-style:normal;font-weight:200;font-display:swap}
@font-face{font-family:Anthe;src:url('assets/manrope-regular.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
:root{color-scheme:dark;--u:calc(100vw / 1920);--edge:4.6875vw;--ink:#f0f1ed;--muted:#d4dde1;--rule:#c3ced240;--ease:cubic-bezier(.22,1,.36,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:40px}body{margin:0;background:#172831 url('assets/scroll-atmosphere.svg') center top/100% 100% no-repeat;color:var(--ink);font:400 max(14px,1.1979vw)/1.52 Anthe,Arial,sans-serif;overflow-x:clip}body.menu-open{overflow:hidden}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:200;line-height:1.12}h2{font-size:max(44px,4.375vw);letter-spacing:-.028em}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}button,a,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}svg{display:block;width:24px;height:24px;flex:none}img{display:block;max-width:100%;height:auto}a,button,summary{touch-action:manipulation}a:focus-visible,button:focus-visible,summary:focus-visible{outline:1px solid #fff;outline-offset:6px}a:hover{color:#fff}::selection{background:#c7a989;color:#122631}.section{margin-inline:var(--edge);scroll-margin-top:30px}.skip{position:fixed;left:16px;top:16px;z-index:100;padding:12px 20px;background:#172831;transform:translateY(-200%)}.skip:focus{transform:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* Small, useful navigation only. It does not float over the lower composition. */
.intro-nav{position:absolute;z-index:20;top:calc(52 * var(--u));left:calc(86 * var(--u));right:calc(60 * var(--u));display:flex;align-items:center;gap:calc(80 * var(--u));min-height:44px}.opening-brand{display:flex;align-items:center;min-height:44px}.opening-brand img{width:calc(208 * var(--u));min-width:135px}.opening-nav-links{display:flex;align-items:center;gap:calc(68 * var(--u));margin-left:auto}.opening-nav-links a{display:flex;align-items:center;gap:18px;min-height:44px;font-size:max(12px,.8333vw)}.opening-nav-links svg{width:14px;height:14px}.intro-menu-toggle{display:grid;place-items:center;border:0;background:none;padding:10px;width:44px;height:44px}.intro-menu-toggle svg{width:21px;height:21px}.menu{position:fixed;inset:0;z-index:15;background:#152933f7;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:14px;padding:90px max(7vw,28px);visibility:hidden;opacity:0;transition:opacity .25s,visibility .25s}.menu a{font-size:clamp(24px,3.1vw,60px);font-weight:200;line-height:1.15;min-height:44px}.menu .menu-email{font-size:clamp(14px,1.2vw,23px);margin-top:18px}.menu-open .menu{visibility:visible;opacity:1}.menu-open .intro-nav{position:fixed}.menu-open .opening-nav-links{visibility:hidden}
/* Opening is the approved mountain/glasshouse composition with a soft ground mask. */
.opening-chapter{position:relative;height:62.5vw;isolation:isolate}.opening-chapter:before{content:"";position:absolute;z-index:-2;pointer-events:none;top:75%;left:0;right:0;height:54.1667%;background:linear-gradient(to bottom,#131a1e,rgba(19,26,30,0))}.opening-scene{position:absolute;inset:0;z-index:-1;overflow:hidden;mask-image:linear-gradient(to bottom,#000 0%,#000 82.6%,rgba(0,0,0,.85) 87.4%,rgba(0,0,0,.51) 92.0%,rgba(0,0,0,.145) 96.4%,transparent 100%);-webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 82.6%,rgba(0,0,0,.85) 87.4%,rgba(0,0,0,.51) 92.0%,rgba(0,0,0,.145) 96.4%,transparent 100%)}.opening-image{width:100%;height:100%;object-fit:cover;object-position:center}.opening-tint{position:absolute;inset:0;background:linear-gradient(180deg,#18232b2e 0%,#18232b0b 53%,#0c111659 100%)}.opening-chapter h1{position:absolute;top:calc(224 * var(--u));left:calc(79 * var(--u));font-size:9.73958vw;line-height:.9626;letter-spacing:-.03743em;font-weight:200}.opening-chapter h1 span{display:block;white-space:nowrap}.opening-chapter h1 span+span{margin-left:calc(169 * var(--u))}.opening-explore{position:absolute;left:calc(84 * var(--u));top:calc(724 * var(--u));display:flex;align-items:center;gap:calc(22 * var(--u));font-size:max(13px,.8854vw);min-height:44px}.opening-action-symbol{border:1px solid #eeeee8a6;border-radius:50%;width:calc(70 * var(--u));height:calc(70 * var(--u));min-width:44px;min-height:44px;display:grid;place-items:center;background:#eeeee80a;transition:background .25s}.opening-action-symbol svg{width:23px;height:23px}.opening-explore:hover .opening-action-symbol{background:#eeeee821}
/* The section metrics follow the approved 1920px composition. */
.studio{padding-top:calc(170 * var(--u));padding-bottom:calc(189 * var(--u));display:grid;grid-template-columns:38.5% 1fr;align-items:start;gap:0}.studio h2{font-size:max(44px,4.2708vw);letter-spacing:-.0244em}.studio>p{font-size:max(16px,1.5625vw);line-height:1.5667;color:var(--muted);max-width:1060px}.services h2{font-size:max(42px,4.0625vw);margin-bottom:calc(76 * var(--u));line-height:1.2}.service-list{border-bottom:1px solid var(--rule)}.service-list article{border-top:1px solid var(--rule);min-height:calc(180 * var(--u));display:grid;grid-template-columns:62.07% 1fr;gap:0;padding-block:calc(28 * var(--u))}.service-list h3{font-size:max(24px,2.2396vw);letter-spacing:-.0163em;line-height:1.4}.service-list p{color:var(--muted);font-size:max(14px,1.1979vw);line-height:1.5217}
.showcase{padding-top:calc(195 * var(--u))}.concept-label{font-size:max(16px,1.40625vw);font-weight:200;line-height:1.4815;margin-bottom:calc(95 * var(--u));color:var(--muted)}.gallery-composition{position:relative}.gallery-composition>h2{position:absolute;z-index:2;left:68.39%;top:calc(-64 * var(--u));font-size:8.02083vw;letter-spacing:-.026em;pointer-events:none;line-height:1.12}.wide-track{display:grid;grid-template-columns:repeat(174,minmax(0,1fr));column-gap:0;row-gap:calc(35 * var(--u));align-items:start}.project{min-width:0;scroll-margin-top:28px}.project-picture{display:block;overflow:hidden}.project-picture img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}.project-picture:hover img{transform:scale(1.02)}.project-caption{display:flex;justify-content:space-between;align-items:center;height:calc(70 * var(--u));min-height:44px;gap:15px}.project-caption h3{font-size:max(16px,1.4583vw);line-height:1.2}.project-caption>a{display:grid;place-items:center;width:44px;height:44px;flex:none}.project-caption svg{width:23px;height:23px}.project:nth-child(3) .project-caption>a{display:none}.project:nth-child(1){grid-column:1/span 131;grid-row:1}.project:nth-child(1) .project-picture{height:calc(510 * var(--u))}.project:nth-child(2){grid-column:19/span 86;grid-row:2;margin-top:calc(225 * var(--u))}.project:nth-child(2) .project-picture{height:calc(510 * var(--u))}.project:nth-child(3){grid-column:119/span 56;grid-row:2}.project:nth-child(3) .project-picture{height:calc(720 * var(--u))}.project:nth-child(n+4){grid-column:1/span 80;margin-top:calc(80 * var(--u))}.project:nth-child(n+4):nth-child(odd){grid-column:95/span 80}.project:nth-child(n+4) .project-picture{aspect-ratio:1.55}.project-empty{grid-column:1/-1;padding:80px 0}.all-works{display:flex;align-items:center;gap:24px;margin-left:10.3448%;margin-top:calc(40 * var(--u));font-size:max(13px,1.0417vw);width:fit-content;min-height:44px}.all-works svg{width:20px;height:20px}
.process{padding-top:calc(128 * var(--u));padding-bottom:calc(350 * var(--u))}.process h2{margin-bottom:calc(62 * var(--u))}.process-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:calc(90 * var(--u));border-top:1px solid #c3ced26b;position:relative;padding-top:calc(36 * var(--u))}.process-steps:after{content:"";position:absolute;right:0;top:-11px;height:20px;border-left:1px solid #c3ced26b}.process-steps article{position:relative}.process-steps article:before{content:"";position:absolute;top:calc(-36 * var(--u) - 11px);left:0;height:28px;border-left:1px solid #c3ced26b}.process-steps h3{font-size:max(23px,1.6667vw);line-height:1.25;margin-bottom:calc(27 * var(--u))}.process-steps p{max-width:calc(450 * var(--u));font-size:max(14px,1.1458vw);line-height:1.5455;color:var(--muted)}
.pricing-heading{display:grid;grid-template-columns:67.24% 1fr;gap:0;align-items:start}.pricing-heading h2{font-size:max(44px,4.4792vw)}.pricing-heading>p{font-size:max(15px,1.25vw);line-height:1.5;color:var(--muted);padding-top:calc(2 * var(--u))}.pricing-basis{font-size:max(13px,1.09375vw);color:var(--muted);margin-top:calc(60 * var(--u));margin-bottom:calc(47 * var(--u))}.package-list{border-top:1px solid var(--rule)}.package-row{display:grid;position:relative;grid-template-columns:33.91% 47.13% 1fr;gap:0;min-height:calc(225 * var(--u));border-bottom:1px solid var(--rule);padding-block:calc(35 * var(--u));align-items:start}.package-row h3{font-size:max(20px,1.6667vw);letter-spacing:-.0156em;line-height:1.3;padding-top:calc(20 * var(--u))}.package-content p{color:var(--muted);font-size:max(13px,1.09375vw);line-height:1.5}.package-content p+p{margin-top:calc(13 * var(--u))}.package-content .package-duration{font-size:max(17px,1.3542vw);font-weight:200;color:var(--ink)}.package-price{font-size:max(30px,2.9167vw);letter-spacing:-.032em;font-weight:200;line-height:1.2;display:flex;gap:calc(15 * var(--u));align-items:baseline;padding-top:calc(15 * var(--u));white-space:nowrap}.package-price span{font-size:max(11px,.8854vw);font-weight:400;letter-spacing:0;color:var(--muted)}.package-cta{position:absolute;right:0;bottom:calc(28 * var(--u));width:44px;height:44px;display:grid;place-items:center}.pricing-foot{display:grid;grid-template-columns:60.35% 1fr;gap:calc(180 * var(--u));padding-top:calc(35 * var(--u));align-items:start}.pricing-foot>p{font-size:max(13px,1.1458vw);line-height:1.5455;color:var(--muted)}.pricing-details{color:var(--muted);font-size:max(13px,.9896vw);line-height:1.6}.pricing-details summary{display:flex;align-items:center;justify-content:space-between;gap:15px;list-style:none;min-height:44px;cursor:pointer}.pricing-details summary::-webkit-details-marker{display:none}.pricing-details summary span{font-size:26px;font-weight:200;transition:transform .2s}.pricing-details[open] summary span{transform:rotate(45deg)}.conditions-copy{padding-top:20px}.conditions-copy p+p{margin-top:16px}
.contact{padding-top:calc(248 * var(--u))}.contact h2{font-size:max(58px,5.8333vw);letter-spacing:-.0268em;line-height:1.1}.contact-row{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:calc(75 * var(--u))}.contact-email{display:flex;align-items:center;gap:calc(125 * var(--u));font-size:max(23px,2.1875vw);letter-spacing:-.024em;font-weight:200;min-height:44px}.contact-email svg{width:calc(30 * var(--u));min-width:22px;height:auto}.contact-arrow{display:grid;place-items:center;width:calc(134 * var(--u));height:calc(134 * var(--u));min-width:56px;min-height:56px;border:1px solid #c7d1d38c;border-radius:50%;background:#c7d1d312;margin-right:calc(23 * var(--u));margin-top:calc(-80 * var(--u))}.contact-arrow svg{width:calc(45 * var(--u));height:calc(45 * var(--u));min-width:24px;min-height:24px}.contact>p{font-size:max(13px,1.1458vw);color:var(--muted);margin-top:calc(28 * var(--u))}.contact footer{margin-top:calc(120 * var(--u));border-top:1px solid var(--rule);padding-top:calc(110 * var(--u));padding-bottom:calc(160 * var(--u))}.contact footer img{width:100%;height:auto}.all-projects .intro-nav{position:relative;top:auto;left:auto;right:auto;margin:28px var(--edge)}.all-projects .showcase{padding-top:110px;padding-bottom:100px}.all-projects .gallery-composition>h2{font-size:clamp(72px,8vw,154px)}
@media(min-width:1921px){.studio>p{max-width:none}}
@media(max-width:1000px) and (min-width:701px){.studio{grid-template-columns:35% 1fr}.service-list article{grid-template-columns:56% 1fr;min-height:125px;padding-block:22px}.process-steps{column-gap:30px}.process-steps p{max-width:none}.package-row{grid-template-columns:30% 44% 1fr;min-height:160px;padding-block:25px}.pricing-foot{grid-template-columns:60% 1fr;gap:35px}.contact-email{gap:40px}}
@media(max-width:700px){
:root{--edge:6vw}html{scroll-padding-top:20px}body{font-size:15px;background-size:auto 100%;background-position:48% top}h2{font-size:clamp(40px,10.2vw,65px)}.section{scroll-margin-top:20px}.intro-nav{top:max(14px,env(safe-area-inset-top,0px));left:6%;right:4%;gap:12px}.opening-brand img{width:140px;min-width:0}.opening-nav-links{display:none}.intro-menu-toggle{margin-left:auto}.menu{padding:90px 8vw 35px;gap:18px}.menu a{font-size:clamp(25px,6.5vw,38px)}.menu .menu-email{font-size:15px}.opening-chapter{height:clamp(590px,94svh,850px)}.opening-chapter:before{top:60%;height:calc(40% + 160px)}.opening-scene{-webkit-mask-image:linear-gradient(to bottom,#000 66%,rgba(0,0,0,.92) 73%,rgba(0,0,0,.68) 81%,rgba(0,0,0,.32) 89%,rgba(0,0,0,.08) 96%,transparent 100%);mask-image:linear-gradient(to bottom,#000 66%,rgba(0,0,0,.92) 73%,rgba(0,0,0,.68) 81%,rgba(0,0,0,.32) 89%,rgba(0,0,0,.08) 96%,transparent 100%)}.opening-image{object-position:74% 50%}.opening-tint{background:linear-gradient(180deg,#18232b45,#18232b12 53%,#0c111659)}.opening-chapter h1{left:6%;top:21%;font-size:15.6vw;line-height:1.015;letter-spacing:-.04em}.opening-chapter h1 span+span{margin-left:9vw}.opening-explore{left:6%;top:60.5%;gap:16px;font-size:14px}.opening-action-symbol{width:52px;height:52px}.opening-action-symbol svg{width:21px;height:21px}.studio{display:block;padding-top:60px;padding-bottom:90px}.studio h2{font-size:44px;margin-bottom:30px}.studio>p{font-size:17px;line-height:1.65;max-width:540px}.services h2{font-size:42px;margin-bottom:34px}.service-list article{display:block;padding:25px 0 29px;min-height:0}.service-list h3{font-size:25px;margin-bottom:15px}.service-list p{font-size:15px;line-height:1.65;max-width:470px}.showcase{padding-top:90px}.concept-label{font-size:16px;line-height:1.5;margin-bottom:45px}.gallery-composition>h2{left:auto;right:0;top:-30px;font-size:64px;line-height:1.05;letter-spacing:-.035em}.wide-track{display:flex;flex-direction:column;gap:45px}.project:nth-child(n){margin:0;align-self:flex-start;scroll-margin-top:22px}.project:nth-child(1){width:95%}.project:nth-child(1) .project-picture{height:auto;aspect-ratio:1.75}.project:nth-child(2){width:78%;margin-left:5%}.project:nth-child(2) .project-picture{height:auto;aspect-ratio:1.55}.project:nth-child(3){width:67%;align-self:flex-end}.project:nth-child(3) .project-picture{height:auto;aspect-ratio:560 / 720}.project:nth-child(n+4){width:88%}.project-caption{height:46px;min-height:46px}.project-caption h3{font-size:17px}.project-caption svg{width:21px;height:21px}.project:nth-child(3) .project-caption>a{display:grid}.all-works{margin:32px 0 0 5%;font-size:14px;gap:20px}.process{padding-top:90px;padding-bottom:100px}.process h2{font-size:41px;margin-bottom:38px}.process-steps{display:block;border-top:0;border-left:1px solid #c3ced26b;padding:0 0 0 24px;margin-left:1px}.process-steps:after{width:15px;height:0;border-left:0;border-top:1px solid #c3ced26b;right:auto;left:-8px;top:auto;bottom:0}.process-steps article{padding:0 0 42px}.process-steps article:before{left:-32px;top:8px;width:16px;height:0;border-left:0;border-top:1px solid #c3ced26b}.process-steps article:last-child{padding-bottom:14px}.process-steps h3{font-size:24px;margin-bottom:15px}.process-steps p{font-size:15px;max-width:460px;line-height:1.65}.pricing-heading{display:block}.pricing-heading h2{font-size:43px;margin-bottom:26px}.pricing-heading>p{font-size:16px;line-height:1.6;max-width:380px;padding:0}.pricing-basis{font-size:13px;line-height:1.6;margin-top:30px;margin-bottom:23px}.package-row{grid-template-columns:1fr auto;row-gap:22px;min-height:0;padding:26px 0 30px}.package-row h3{grid-column:1/-1;font-size:25px;padding:0}.package-content{grid-column:1/-1;grid-row:2;padding-right:0}.package-content p{font-size:14px;line-height:1.6}.package-content p+p{margin-top:8px}.package-content .package-duration{font-size:18px}.package-price{grid-column:1;grid-row:3;font-size:38px;padding:0;gap:10px}.package-price span{font-size:12px}.package-cta{grid-column:2;grid-row:3;position:static;align-self:center;width:44px;height:44px}.pricing-foot{display:block;padding-top:24px}.pricing-foot>p{font-size:14px;line-height:1.65}.pricing-details{font-size:14px;margin-top:22px}.pricing-details summary{min-height:48px;gap:20px}.contact{padding-top:90px}.contact h2{font-size:60px;line-height:1.1}.contact-row{margin-top:37px;gap:8px}.contact-email{font-size:clamp(18px,5.15vw,30px);gap:16px;letter-spacing:-.035em;flex-wrap:nowrap;white-space:nowrap}.contact-email svg{width:23px;min-width:20px}.contact-arrow{display:none}.contact>p{font-size:13px;margin-top:20px}.contact footer{margin-top:60px;padding-top:40px;padding-bottom:max(52px,env(safe-area-inset-bottom,0px))}.all-projects .intro-nav{margin-top:14px}.all-projects .showcase{padding-top:50px}.all-projects .gallery-composition>h2{font-size:64px}
}
@media(max-width:380px){.contact-email{gap:10px;font-size:5.2vw}.package-row h3{font-size:23px}.process h2{font-size:37px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.project-picture:hover img{transform:none}}

/* A matching-color overlay remains continuous even without CSS mask support. */
@supports not ((mask-image:linear-gradient(#000,transparent)) or (-webkit-mask-image:linear-gradient(#000,transparent))){
 .opening-chapter:before{top:75%;height:calc(25% + 160px);background:linear-gradient(to bottom,#131a1e 0%,#131a1e calc(100% - 160px),rgba(19,26,30,0) 100%)}
 .opening-scene:after{content:"";position:absolute;inset:64% 0 0;pointer-events:none;background:linear-gradient(to bottom,rgba(19,26,30,0),#131a1e)}
}
/* Finite entrance and scroll reveals. Nothing animates continuously. */
@media(prefers-reduced-motion:no-preference){
 .motion-ready:not(.motion-restore) .opening-chapter h1 span{animation:anthe-opening-type 1000ms var(--ease) both}
 .motion-ready:not(.motion-restore) .opening-chapter h1 span+span{animation-delay:160ms}
 .motion-ready:not(.motion-restore) .opening-image{animation:anthe-opening-image 2100ms var(--ease) both;transform-origin:65% 60%}
 .motion-ready:not(.motion-restore) .opening-explore{animation:anthe-opening-action 850ms 350ms var(--ease) both}
 .motion-ready [data-motion]:not(.is-revealed){opacity:.12;transform:translate3d(0,24px,0)}
 .motion-ready [data-motion].is-revealed{animation:anthe-reveal 1000ms var(--motion-delay,0ms) var(--ease) both}
 .motion-ready .project-picture[data-motion].is-revealed img{animation:anthe-image-settle 1250ms var(--motion-delay,0ms) var(--ease) both}
 .motion-ready [data-motion-line]{border-top-color:transparent}
 .motion-ready [data-motion-line]:before{content:"";position:absolute;top:-1px;left:0;width:100%;border-top:1px solid #c3ced26b;transform-origin:left;transform:scaleX(0);transition:transform 1400ms var(--ease)}
 .motion-ready [data-motion-line].is-revealed:before{transform:scaleX(1)}
 .motion-restore [data-motion],.motion-restore [data-motion] img{animation:none!important;transform:none!important;opacity:1!important}
}
@keyframes anthe-opening-type{from{opacity:0;transform:translate3d(0,28px,0);clip-path:inset(0 0 100% 0)}to{opacity:1;transform:none;clip-path:inset(0)}}
@keyframes anthe-opening-image{from{transform:scale(1.045)}to{transform:scale(1)}}
@keyframes anthe-opening-action{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes anthe-reveal{from{opacity:.12;transform:translate3d(0,24px,0)}to{opacity:1;transform:none}}
@keyframes anthe-image-settle{from{transform:scale(1.045)}to{transform:scale(1)}}
@media(max-width:700px) and (prefers-reduced-motion:no-preference){
 .motion-ready:not(.motion-restore) .opening-image{animation-name:anthe-opening-image-mobile;animation-duration:1700ms}
 .motion-ready [data-motion-line]{border-left-color:transparent}
 .motion-ready [data-motion-line]:before{top:0;left:-1px;width:0;height:100%;border-top:0;border-left:1px solid #c3ced26b;transform-origin:top;transform:scaleY(0)}
 .motion-ready [data-motion-line].is-revealed:before{transform:scaleY(1)}
}
@keyframes anthe-opening-image-mobile{from{transform:scale(1.025)}to{transform:scale(1)}}
@media(prefers-reduced-motion:reduce){[data-motion]{opacity:1!important;transform:none!important}[data-motion-line]:before{transform:none!important}}
