:root{--ink:#1b1418;--paper:#f4f0e9;--cream:#e9e3d9;--red:#dd4449;--lime:#ddf68d;--font:'Manrope',Arial,sans-serif}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:88px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;overflow-x:hidden}
body.menu-open{overflow:hidden}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer}
a:focus-visible,button:focus-visible{outline:2px solid var(--red);outline-offset:5px}
::selection{background:var(--red);color:var(--ink)}
.skip{position:fixed;z-index:400;top:-100px;left:24px;background:var(--lime);padding:12px 20px}.skip:focus{top:15px}
.icon-sprite{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}
.ui-icon{display:inline-block;width:1em;height:1em;flex:none;vertical-align:-.12em;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.ui-icon--star{stroke-width:2.4}
.container{padding-left:4.2vw;padding-right:4.2vw}
.label{display:inline-flex;align-items:center;gap:10px;font-size:11px;letter-spacing:.19em;font-weight:800;text-transform:uppercase}
.label::before{content:"";width:7px;height:7px;background:var(--red);border-radius:50%;flex:none}
.serif{font-family:'Playfair Display',Georgia,serif;font-weight:500;letter-spacing:-.065em}
.progress{position:fixed;z-index:210;top:0;left:0;right:0;height:3px;pointer-events:none}
.progress span{display:block;height:100%;width:0;background:var(--red)}
.brand-cursor{--glass-x:28%;--glass-y:18%;position:fixed;left:-100px;top:-100px;z-index:300;pointer-events:none;width:52px;height:52px;border:1px solid rgba(255,255,255,.48);border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at var(--glass-x) var(--glass-y),rgba(255,255,255,.21),rgba(255,255,255,.025) 34%,transparent 63%),linear-gradient(145deg,rgba(255,255,255,.055),rgba(255,255,255,.008) 62%,rgba(221,68,73,.015));box-shadow:0 6px 19px rgba(34,24,30,.09),0 0 0 1px rgba(50,37,50,.065),inset 1px 1px 2px rgba(255,255,255,.62),inset -1px -1px 2px rgba(35,25,40,.16);backdrop-filter:blur(2.5px) saturate(165%) contrast(1.08);-webkit-backdrop-filter:blur(2.5px) saturate(165%) contrast(1.08);opacity:0;transform:translate(-50%,-50%) scale(.78);transition:opacity .18s ease,transform .24s ease,background .24s ease,border-color .24s ease,box-shadow .24s ease}
.brand-cursor::before{content:"";position:absolute;inset:1px;border-radius:50%;border-top:1.5px solid rgba(255,255,255,.84);border-left:1px solid rgba(255,255,255,.32);border-bottom:1px solid rgba(33,23,38,.18);border-right:1px solid rgba(33,23,38,.075);box-shadow:inset 0 1px 1px rgba(255,255,255,.26);transform:rotate(-22deg)}
.brand-cursor::after{content:"";position:relative;display:block;width:6px;height:6px;border-radius:50%;background:var(--red);box-shadow:0 0 0 2px rgba(244,240,233,.74)}
.brand-cursor.visible{opacity:1;transform:translate(-50%,-50%) scale(1)}
.brand-cursor.hovered{transform:translate(-50%,-50%) scale(1.45);background:radial-gradient(circle at var(--glass-x) var(--glass-y),rgba(255,255,255,.29),rgba(255,255,255,.045) 36%,transparent 67%),linear-gradient(145deg,rgba(255,255,255,.08),rgba(255,255,255,.012) 62%,rgba(221,68,73,.028));border-color:rgba(255,255,255,.68);box-shadow:0 9px 24px rgba(34,24,30,.12),0 0 0 1px rgba(221,68,73,.1),inset 1px 1px 2px rgba(255,255,255,.78),inset -1px -1px 2px rgba(35,25,40,.18)}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){body.brand-cursor-active,body.brand-cursor-active *{cursor:none!important}}
.header{position:absolute;z-index:200;top:0;left:0;width:100%;height:92px;padding:0 4.2vw;display:flex;align-items:center;justify-content:space-between;color:var(--paper)}
.header.scrolled{position:fixed;height:76px;background:rgba(27,20,24,.94);backdrop-filter:blur(20px);border-bottom:1px solid rgba(255,255,255,.11);animation:header-in .3s ease both}
@keyframes header-in{from{transform:translateY(-100%)}to{transform:translateY(0)}}
.brand{display:inline-flex;align-items:center;gap:10px;line-height:1;letter-spacing:-.07em;font-size:30px;font-weight:800;white-space:nowrap}
.brand-mark{width:36px;height:36px;object-fit:contain;flex:none}
.brand-secondary{font-weight:500;margin-left:5px}
.nav{display:flex;align-items:center;gap:35px;font-size:12px;font-weight:700;letter-spacing:.04em}
.nav a:not(.nav-cta){transition:color .2s}.nav a:not(.nav-cta):hover,.nav a[aria-current="page"]{color:var(--red)}
.nav-cta{border:1px solid rgba(255,255,255,.5);padding:14px 19px;border-radius:100px;display:flex;align-items:center;gap:28px;transition:background .25s,color .25s,border .25s}
.nav-cta:hover{background:var(--lime);color:var(--ink);border-color:var(--lime)}
.menu-btn{display:none;background:none;border:0;color:inherit;padding:8px;position:relative;z-index:203}
.menu-btn span{display:block;width:27px;height:2px;background:currentColor;margin:6px 0;transition:transform .3s}
.hero{position:relative;background:var(--ink);color:var(--paper);overflow:hidden;isolation:isolate}
.hero::before{content:"";position:absolute;inset:0;z-index:-2;background:radial-gradient(circle at 74% 48%,rgba(104,36,47,.48),transparent 40%),radial-gradient(circle at 15% 100%,rgba(68,30,40,.55),transparent 48%)}
.hero-grid{position:absolute;inset:0;z-index:-1;background-image:linear-gradient(rgba(255,255,255,.022) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.022) 1px,transparent 1px);background-size:90px 90px;mask-image:linear-gradient(to top,black,transparent 95%);pointer-events:none}
.portfolio-hero{min-height:750px;height:min(93svh,1060px);padding:150px 4.2vw 70px;display:flex;flex-direction:column;justify-content:space-between}
.portfolio-hero h1{font-size:clamp(77px,10.5vw,180px);line-height:1.01;letter-spacing:-.096em;font-weight:700;margin:38px 0 0;max-width:1100px;position:relative;z-index:2}
.portfolio-hero h1 em{color:var(--red)}
.portfolio-hero .hero-copy{position:relative;z-index:2}
.portfolio-hero .hero-bottom{display:flex;align-items:end;justify-content:space-between;gap:40px;position:relative;z-index:2}
.portfolio-hero .hero-bottom p{max-width:405px;color:#c8bec2;line-height:1.8;font-size:15px;margin:0}
.arrow-link{display:inline-flex;align-items:center;gap:38px;padding:12px 0;border-bottom:1px solid currentColor;letter-spacing:.13em;text-transform:uppercase;font-size:11px;font-weight:800;white-space:nowrap;transition:gap .25s,color .25s}
.arrow-link:hover{gap:53px;color:var(--red)}
.hero-artwork{position:absolute;right:-10%;top:0;width:min(66vw,950px);aspect-ratio:1;pointer-events:none;z-index:0;transform:translateY(var(--artwork-y,0px)) rotate(var(--artwork-r,0deg));will-change:transform}
.hero-artwork::before{content:"";position:absolute;inset:18%;border-radius:50%;background:radial-gradient(circle,rgba(218,68,73,.19) 0%,rgba(218,68,73,.07) 46%,transparent 72%);filter:blur(35px)}
.artwork-ring{display:block;position:absolute;border-radius:50%;border:1px solid rgba(232,118,120,.23)}
.artwork-ring-outer{inset:4%}.artwork-ring-middle{inset:17%;border-color:rgba(255,255,255,.12)}.artwork-ring-inner{inset:33%;border-color:rgba(232,118,120,.17)}
.hero-artwork img{position:absolute;width:64%;height:64%;left:18%;top:18%;object-fit:contain;opacity:.63;filter:drop-shadow(0 28px 45px rgba(0,0,0,.27));animation:artwork-float 9s ease-in-out infinite}
.artwork-detail{position:absolute;right:8%;bottom:12%;font-size:10px;font-weight:800;letter-spacing:.24em;color:rgba(244,240,233,.48);transform:rotate(-22deg)}
@keyframes artwork-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-17px)}}
.hero-count{position:absolute;right:4.2vw;top:128px;font-size:11px;letter-spacing:.18em;color:#c0b4b9}
.ticker{background:var(--red);color:var(--ink);padding:18px 0;overflow:hidden;border:1px solid var(--ink);border-left:0;border-right:0}
.ticker-track{display:flex;align-items:center;width:max-content;gap:35px;animation:marquee 28s linear infinite}
.ticker span{font-weight:800;letter-spacing:.12em;text-transform:uppercase;font-size:14px;white-space:nowrap}
.ticker .ui-icon{font-size:17px}
@keyframes marquee{to{transform:translateX(-50%)}}
.portfolio-intro{padding-top:150px;padding-bottom:125px;display:grid;grid-template-columns:26% 1fr;gap:6%}
.portfolio-intro h2{font-size:clamp(47px,6vw,94px);line-height:1.12;letter-spacing:-.082em;font-weight:600;margin:-13px 0 30px}
.portfolio-intro h2 em{color:var(--red)}
.portfolio-intro p{font-size:15px;line-height:1.9;color:#60595b;max-width:590px;margin:0}
.portfolio-categories{display:flex;align-items:stretch;gap:0;padding-bottom:92px}
.portfolio-categories a{display:flex;align-items:center;justify-content:space-between;gap:25px;flex:1;padding:23px 24px;border-top:1px solid rgba(27,20,24,.36);border-bottom:1px solid rgba(27,20,24,.36);font-size:12px;font-weight:800;letter-spacing:.11em;text-transform:uppercase;transition:background .25s,color .25s}
.portfolio-categories a+a{border-left:1px solid rgba(27,20,24,.25)}
.portfolio-categories a:hover{background:var(--ink);color:var(--paper)}
.portfolio-categories .ui-icon{font-size:22px;transform:rotate(135deg)}
.portfolio-projects{background:var(--cream);padding-top:110px;padding-bottom:140px}
.projects-head{display:flex;align-items:end;justify-content:space-between;gap:40px;padding-bottom:40px;border-bottom:1px solid rgba(27,20,24,.3);margin-bottom:80px}
.projects-head h2{font-size:clamp(55px,7vw,112px);letter-spacing:-.085em;line-height:1.03;margin:23px 0 0;font-weight:700}
.projects-head h2 em{color:var(--red)}
.projects-head p{font-size:14px;color:#665f61;line-height:1.8;max-width:320px;margin:0}
.project-card{display:block;min-width:0}
.project-card + .project-card{margin-top:125px}
.project-visual{position:relative;height:clamp(420px,54vw,760px);display:grid;place-items:center;overflow:hidden;isolation:isolate;border-radius:7px;transition:border-radius .55s cubic-bezier(.2,.7,.2,1)}
.project-card:hover .project-visual{border-radius:44px}
.project-visual.nanni{background:#e9d8b4}.project-visual.hotels{background:#cbdcd6}
.project-visual::before{content:"";position:absolute;width:75%;aspect-ratio:1;border:1px solid rgba(27,20,24,.13);border-radius:50%;top:-54%;right:-12%}
.project-visual::after{content:"";position:absolute;width:45%;aspect-ratio:1;border:1px solid rgba(27,20,24,.1);border-radius:50%;bottom:-64%;left:-5%}
.device-stage{position:relative;z-index:1;width:min(90%,1120px);height:88%;pointer-events:none}
.mock-laptop{position:absolute;left:4%;top:50%;width:76%;z-index:1;transform:translateY(-50%) rotate(-2deg);transition:transform .65s cubic-bezier(.15,.7,.2,1);filter:drop-shadow(21px 31px 30px rgba(32,28,27,.21))}
.mock-laptop-screen{position:relative;aspect-ratio:16/10;overflow:hidden;padding:0;border:clamp(6px,.8vw,12px) solid #191c20;border-bottom-width:clamp(9px,1.05vw,15px);border-radius:clamp(9px,1.2vw,17px) clamp(9px,1.2vw,17px) 5px 5px;background:#171a1d;box-shadow:inset 0 0 0 1px rgba(255,255,255,.18)}
.mock-laptop-screen::after{content:"";position:absolute;inset:0;background:linear-gradient(145deg,rgba(255,255,255,.11),transparent 34%);pointer-events:none}
.mock-laptop-screen img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:center top}
.mock-camera{position:absolute;top:calc(-1 * clamp(5px,.54vw,8px));left:50%;z-index:2;width:3px;height:3px;border-radius:50%;background:#515e70}
.mock-laptop-base{position:relative;width:114%;height:clamp(8px,1.4vw,19px);margin-left:-7%;background:linear-gradient(#e9e9e6 4%,#acafb4 42%,#858b92 84%,#bec1c2);border-radius:2px 2px 42% 42% / 2px 2px 80% 80%;box-shadow:0 4px 4px rgba(29,26,25,.15)}
.mock-laptop-base span{position:absolute;top:0;left:40%;width:20%;height:38%;border-radius:0 0 8px 8px;background:linear-gradient(#a2a7ad,#d0d3d6)}
.mock-phone{position:absolute;right:1.5%;bottom:0;width:22%;aspect-ratio:830/1536;z-index:2;transform:rotate(6deg);transition:transform .65s cubic-bezier(.15,.7,.2,1)}
.mock-phone>img{display:block;width:100%;height:100%;object-fit:contain}
.project-card:hover .mock-laptop{transform:translateY(-52%) rotate(-2deg)}
.project-card:hover .mock-phone{transform:translateY(-9px) rotate(3deg)}
.project-visual .corner-label{position:absolute;top:28px;left:30px;font-weight:800;letter-spacing:.16em;font-size:11px;text-transform:uppercase;z-index:2}
.project-visual .corner-index{position:absolute;bottom:25px;right:30px;font-size:11px;letter-spacing:.18em;font-weight:800;z-index:2}
.project-meta{display:flex;align-items:start;justify-content:space-between;gap:30px;padding-top:30px;border-top:1px solid rgba(27,20,24,.3);margin-top:24px}
.project-meta h3{font-size:clamp(34px,5vw,75px);letter-spacing:-.075em;line-height:1.15;margin:0 0 12px;font-weight:700}
.project-meta p{font-size:13px;color:#60595c;line-height:1.65;margin:0;max-width:530px}
.project-arrow{width:64px;height:64px;flex:none;border-radius:50%;border:1px solid rgba(27,20,24,.4);display:grid;place-items:center;font-size:27px;transition:background .25s,color .25s,transform .35s}
.project-card:hover .project-arrow{background:var(--ink);color:var(--paper);transform:rotate(45deg)}
.project-card.hotels-card{margin-left:12%}
.project-card.hotels-card .project-visual{height:clamp(405px,45vw,645px)}
.website-projects{display:flex;flex-wrap:wrap;align-items:flex-start;gap:clamp(22px,2.8vw,48px)}
.website-projects>.project-card{flex:1 1 calc(50% - 24px);min-width:0;margin:0}
.website-projects>.project-card+.project-card{margin-top:0}
.website-projects .project-visual,.website-projects .hotels-card .project-visual{height:clamp(375px,39vw,610px)}
.website-projects .device-stage{width:100%;height:83%}
.website-projects .project-meta h3{font-size:clamp(30px,3.6vw,57px)}
.website-projects .project-arrow{width:55px;height:55px}
.branding-section{background:var(--paper);padding-top:130px;padding-bottom:150px}
.branding-grid{display:flex;flex-wrap:wrap;align-items:flex-start;gap:clamp(22px,2.8vw,48px)}
.branding-card{flex:1 1 calc(50% - 24px);min-width:0}
.branding-visual{height:clamp(380px,40vw,590px);position:relative;overflow:hidden;isolation:isolate;border-radius:7px;transition:border-radius .5s cubic-bezier(.2,.7,.2,1)}
.branding-card:hover .branding-visual{border-radius:40px}
.coach-visual{background:#ead5d2;color:#642f40}
.hospitality-visual{background:#d6e3d8;color:#1d4b51}
.branding-visual-tag,.branding-visual-caption{position:absolute;z-index:3;font-size:10px;letter-spacing:.17em;font-weight:800;text-transform:uppercase}
.branding-visual-tag{top:30px;left:30px}.branding-visual-caption{bottom:30px;left:30px}
.coach-form{position:absolute;right:-7%;top:2%;width:78%;aspect-ratio:1;transform:rotate(-13deg);transition:transform .65s cubic-bezier(.15,.7,.2,1)}
.coach-form span{position:absolute;display:block;border-radius:50% 42% 65% 40%;border:1px solid rgba(97,49,68,.28)}
.coach-form span:nth-child(1){inset:0;background:#ce8b8b;transform:rotate(18deg)}
.coach-form span:nth-child(2){inset:18%;background:#b65f6c;transform:rotate(-25deg);border-color:rgba(255,255,255,.25)}
.coach-form span:nth-child(3){inset:37%;background:#ead5d2;transform:rotate(45deg)}
.branding-card:hover .coach-form{transform:rotate(-5deg) scale(1.035)}
.branding-type{display:block;position:absolute;z-index:2;left:7%;bottom:19%;font-weight:700;letter-spacing:-.09em;line-height:.94}
.coach-type{font-family:'Playfair Display',Georgia,serif;font-size:clamp(90px,11vw,190px);font-style:italic;font-weight:500}
.coach-type em{color:#f8eee7}
.identity-papers{position:absolute;right:2%;top:9%;width:78%;height:80%;transition:transform .65s cubic-bezier(.15,.7,.2,1)}
.identity-papers span{display:block;position:absolute;box-shadow:17px 24px 38px rgba(27,56,58,.16)}
.identity-papers .paper-one{width:52%;height:70%;right:25%;top:6%;background:#eff4ec;transform:rotate(-17deg)}
.identity-papers .paper-one::after{content:"";display:block;width:52%;height:8px;background:#4a8b87;margin:24% auto 0;box-shadow:0 25px 0 #cad8d1,0 50px 0 #cad8d1}
.identity-papers .paper-two{width:47%;height:68%;right:3%;top:22%;background:#487f80;transform:rotate(13deg)}
.identity-papers .paper-two::after{content:"";position:absolute;top:16%;left:19%;width:62%;aspect-ratio:1;border:2px solid rgba(239,244,236,.68);border-radius:50%}
.identity-papers .paper-three{width:31%;height:49%;right:50%;top:40%;background:#c8d8cc;transform:rotate(-29deg)}
.branding-card:hover .identity-papers{transform:translateY(-12px) rotate(2deg)}
.hospitality-type{font-size:clamp(58px,7.3vw,114px);color:#1d4b51;left:6%;bottom:18%}
.hospitality-type em{font-family:'Playfair Display',Georgia,serif;font-weight:500;color:#f7f2e5}
.branding-meta{display:flex;justify-content:space-between;align-items:start;gap:20px;margin-top:24px;padding-top:24px;border-top:1px solid rgba(27,20,24,.28)}
.branding-category{display:block;font-size:10px;letter-spacing:.17em;text-transform:uppercase;font-weight:800;color:#a44c50;margin-bottom:16px}
.branding-meta h3{font-size:clamp(29px,3.6vw,52px);letter-spacing:-.072em;line-height:1.1;margin:0 0 14px;font-weight:700}
.branding-meta p{font-size:13px;line-height:1.8;color:#60595b;max-width:515px;margin:0}
.branding-index{flex:none;font-size:10px;letter-spacing:.16em;font-weight:800;margin-top:4px}
.branding-originals-note{display:grid;grid-template-columns:25% 1fr;gap:5%;border-top:1px solid rgba(27,20,24,.23);margin-top:85px;padding-top:28px}
.branding-originals-note p{max-width:760px;font-size:13px;line-height:1.8;color:#6b6265;margin:0}
@media(max-width:1100px){.website-projects,.branding-grid{flex-direction:column}.website-projects>.project-card,.branding-card{width:100%}.website-projects .project-visual,.website-projects .hotels-card .project-visual{height:clamp(430px,54vw,680px)}.branding-visual{height:clamp(430px,55vw,650px)}}
.approach{background:var(--ink);color:var(--paper);padding:130px 4.2vw 145px;display:grid;grid-template-columns:1.15fr .85fr;gap:7%}
.approach h2{font-size:clamp(61px,8vw,130px);line-height:1.03;letter-spacing:-.095em;margin:40px 0 0;font-weight:700}
.approach h2 em{color:var(--red)}
.approach-right{display:flex;flex-direction:column;justify-content:end;gap:35px}
.approach-right p{max-width:450px;font-size:16px;color:#b9b0b3;line-height:1.85;margin:0}
.approach .arrow-link{align-self:flex-start}
.contact-panel{background:var(--lime);padding:115px 4.2vw 110px;overflow:hidden}
.contact-panel h2{font-size:clamp(70px,11.5vw,180px);letter-spacing:-.103em;line-height:1.0;font-weight:700;margin:68px 0 70px}
.contact-panel h2 em{color:var(--red)}
.contact-bottom{display:flex;align-items:end;justify-content:space-between;gap:30px}
.contact-bottom p{max-width:295px;font-size:14px;line-height:1.8;margin:0}
.contact-circle{width:clamp(170px,19vw,265px);height:clamp(170px,19vw,265px);border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:17px;text-align:center;background:var(--ink);color:var(--lime);font-size:13px;text-transform:uppercase;font-weight:800;letter-spacing:.06em;transform:rotate(-12deg);transition:background .25s,color .25s,transform .4s}
.contact-circle .ui-icon{font-size:55px;stroke-width:1.6}.contact-circle:hover{background:var(--red);color:var(--ink);transform:rotate(0) scale(1.04)}
.footer{background:var(--ink);color:var(--paper);padding:74px 4.2vw 28px}
.footer-main{display:grid;grid-template-columns:1.35fr .7fr .7fr;gap:30px;padding-bottom:110px}
.footer-main .brand{font-size:43px}.footer-main .brand-mark{width:48px;height:48px}
.footer-main p{font-size:13px;max-width:290px;line-height:1.7;color:#a69da0}
.footer-col{display:flex;flex-direction:column;align-items:flex-start;gap:15px;font-size:13px}
.footer-col strong{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:#8f868a;margin-bottom:11px}
.footer-col a:hover{color:var(--red)}
.footer-bottom{border-top:1px solid #4b4247;padding-top:24px;display:flex;justify-content:space-between;align-items:center;gap:20px;color:#8f868a;font-size:11px}
.footer-bottom a{text-decoration:underline;text-underline-offset:4px}
/* Individual case pages */
.case-nanni{--case-bg:#e9d8b4;--case-accent:#e9a334}
.case-hotels{--case-bg:#d7e3df;--case-accent:#3b7e87}
.case-hero{min-height:700px;padding:152px 4.2vw 70px;display:flex;flex-direction:column;justify-content:space-between}
.breadcrumb{display:flex;align-items:center;gap:11px;text-transform:uppercase;letter-spacing:.16em;font-size:11px;font-weight:800;color:#c8bec0}
.breadcrumb a{color:var(--paper)}.breadcrumb a:hover{color:var(--red)}.breadcrumb .divider{opacity:.5}
.case-hero h1{font-size:clamp(70px,9.4vw,156px);line-height:1.02;letter-spacing:-.092em;font-weight:700;margin:70px 0 30px;max-width:1430px}
.case-hero h1 em{color:var(--red)}
.case-hero-bottom{display:flex;align-items:end;justify-content:space-between;gap:35px}
.case-hero-bottom p{max-width:550px;color:#c2b9bd;font-size:16px;line-height:1.85;margin:0}
.case-hero-index{letter-spacing:.17em;font-size:11px;color:#b4a6ab;white-space:nowrap}
.case-screen{min-height:480px;height:clamp(490px,62vw,880px);background:var(--case-bg);display:grid;place-items:center;position:relative;overflow:hidden;isolation:isolate}
.case-screen::before{content:"";position:absolute;width:65%;aspect-ratio:1;border:1px solid rgba(27,20,24,.14);border-radius:50%;right:-20%;top:-47%}
.case-screen::after{content:"";position:absolute;width:46%;aspect-ratio:1;border:1px solid rgba(27,20,24,.1);border-radius:50%;left:-19%;bottom:-30%}
.case-screen img{position:relative;z-index:1;display:block;width:85%;max-width:1260px;max-height:82%;object-fit:contain;border:1px solid rgba(27,20,24,.12);border-radius:5px;box-shadow:32px 37px 75px rgba(29,27,26,.25);transform:translateY(var(--screen-y,0px))}
.case-screen .screen-tag{position:absolute;top:33px;left:4.2vw;letter-spacing:.18em;text-transform:uppercase;font-size:11px;font-weight:800;z-index:2}
.case-screen .screen-index{position:absolute;bottom:34px;right:4.2vw;letter-spacing:.16em;font-size:11px;font-weight:800;z-index:2}
.case-summary{background:var(--paper);display:grid;grid-template-columns:30% 1fr;gap:7%;padding-top:130px;padding-bottom:125px}
.case-summary .label{align-self:start}
.case-summary h2{font-size:clamp(44px,5.5vw,91px);font-weight:600;line-height:1.14;letter-spacing:-.08em;margin:-14px 0 40px}
.case-summary h2 em{color:var(--red)}
.case-summary p{font-size:16px;line-height:1.9;color:#5f585a;max-width:760px;margin:0}
.case-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:25px;background:var(--cream);padding-top:53px;padding-bottom:60px;border-top:1px solid rgba(27,20,24,.13);border-bottom:1px solid rgba(27,20,24,.13)}
.case-fact{display:flex;flex-direction:column;gap:14px;border-left:1px solid rgba(27,20,24,.26);padding-left:22px}
.case-fact span{font-size:10px;letter-spacing:.18em;font-weight:800;text-transform:uppercase;color:#6d6668}
.case-fact strong{font-size:clamp(16px,1.6vw,23px);line-height:1.45;letter-spacing:-.035em}
.case-story{background:var(--paper);padding-top:135px;padding-bottom:145px}
.story-block{display:grid;grid-template-columns:29% 1fr;gap:7%;border-top:1px solid rgba(27,20,24,.25);padding-top:30px}
.story-block + .story-block{margin-top:120px}
.story-block .label{align-self:start}
.story-block h2{font-size:clamp(47px,6vw,101px);line-height:1.09;letter-spacing:-.08em;font-weight:600;margin:0 0 32px}
.story-block h2 em{color:var(--red)}
.story-block p{font-size:16px;line-height:1.95;color:#60595b;margin:0;max-width:745px}
.story-block p+p{margin-top:20px}
.case-deliverables{background:var(--ink);color:var(--paper);padding:120px 4.2vw 140px}
.case-deliverables h2{font-size:clamp(54px,8vw,125px);line-height:1.04;letter-spacing:-.09em;margin:30px 0 70px;font-weight:700}
.case-deliverables h2 em{color:var(--red)}
.case-deliverables-list{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.case-deliverable{border-top:1px solid rgba(255,255,255,.42);padding-top:24px;min-height:175px}
.case-deliverable small{display:block;font-size:11px;font-weight:800;color:var(--red);letter-spacing:.15em;margin-bottom:42px}
.case-deliverable strong{font-size:clamp(24px,2.6vw,40px);line-height:1.14;letter-spacing:-.055em;font-weight:600}
.case-visit{background:var(--case-bg);display:flex;align-items:center;justify-content:space-between;gap:45px;padding:95px 4.2vw}
.case-visit h2{font-size:clamp(38px,6vw,90px);line-height:1.11;letter-spacing:-.075em;margin:0;font-weight:600;max-width:790px}
.case-visit .visit-link{width:clamp(126px,15vw,210px);height:clamp(126px,15vw,210px);border-radius:50%;background:var(--ink);color:var(--paper);flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-transform:uppercase;text-align:center;font-size:11px;font-weight:800;letter-spacing:.08em;transform:rotate(-12deg);transition:background .25s,transform .3s}
.case-visit .visit-link .ui-icon{font-size:48px;stroke-width:1.6}.case-visit .visit-link:hover{background:var(--red);transform:rotate(0) scale(1.03)}
.next-project{display:block;background:var(--ink);color:var(--paper);padding:100px 4.2vw 110px;transition:background .25s}
.next-project:hover{background:#322027}
.next-project .next-label{display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:11px;font-weight:800;letter-spacing:.17em;text-transform:uppercase;color:#bdb0b5}
.next-project h2{font-size:clamp(60px,10vw,157px);line-height:1.05;letter-spacing:-.09em;margin:50px 0 0;display:flex;align-items:center;justify-content:space-between;gap:25px;font-weight:700}
.next-project h2 .ui-icon{font-size:.55em;color:var(--red);transition:transform .3s}
.next-project:hover h2 .ui-icon{transform:translate(10px,-10px)}
.reveal{opacity:1;transform:none}
.js .reveal{opacity:0;transform:translateY(42px);transition:opacity .9s cubic-bezier(.18,.75,.24,1),transform .9s cubic-bezier(.18,.75,.24,1)}
.js .reveal.in-view{opacity:1;transform:translateY(0)}
.js .reveal.delay-1{transition-delay:.12s}.js .reveal.delay-2{transition-delay:.22s}
@media(max-width:980px){
  .portfolio-hero h1{font-size:clamp(75px,11vw,120px)}.hero-artwork{width:88vw;right:-35%;top:7%;opacity:.7}
  .case-summary,.story-block{grid-template-columns:1fr;gap:35px}.case-summary h2{margin:0 0 27px}
  .approach{grid-template-columns:1fr;gap:55px}.approach-right{align-items:start}
}
@media(max-width:900px){
  .nav{position:fixed;inset:0;background:var(--ink);padding:150px 7vw 80px;display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:20px;transform:translateX(100%);transition:transform .45s cubic-bezier(.8,.1,.2,1);z-index:201}
  .nav.open{transform:translateX(0)}.nav a:not(.nav-cta){font-size:clamp(35px,7vw,65px);letter-spacing:-.065em;line-height:1.1}.nav-cta{align-self:flex-start;margin-top:28px}
  .menu-btn{display:block;margin-left:auto}.header .brand{position:relative;z-index:203}
  .menu-open .menu-btn span:first-child{transform:translateY(4px) rotate(45deg)}.menu-open .menu-btn span:last-child{transform:translateY(-4px) rotate(-45deg)}
  .portfolio-intro{grid-template-columns:1fr;gap:40px}
  .project-card.hotels-card{margin-left:0}.case-hero h1{font-size:clamp(68px,10vw,115px)}
  .branding-originals-note{grid-template-columns:1fr;gap:20px}
}
@media(max-width:640px){
  .header,.container,.footer{padding-left:22px;padding-right:22px}.header{height:76px}.header.scrolled{height:66px}.brand{font-size:24px}.brand-mark{width:30px;height:30px}
  .portfolio-hero{height:95svh;min-height:690px;max-height:830px;padding:125px 22px 45px}.portfolio-hero h1{font-size:clamp(61px,12.5vw,84px);margin-top:32px}.hero-artwork{width:125vw;right:-62%;top:25%;opacity:.45}.artwork-detail{display:none}.hero-count{top:102px;right:22px;font-size:9px}
  .portfolio-hero .hero-bottom{flex-direction:column;align-items:flex-start;gap:25px}.portfolio-hero .hero-bottom p{font-size:12px;max-width:280px}.arrow-link{font-size:10px;gap:28px}
  .ticker{padding:15px 0}.ticker-track{gap:24px}.ticker span{font-size:11px}
  .portfolio-intro{padding-top:100px;padding-bottom:100px;gap:25px}.portfolio-intro h2{font-size:clamp(44px,10vw,69px);margin:0 0 22px}.portfolio-intro p{font-size:14px}
  .portfolio-categories{padding-bottom:75px;flex-direction:column}.portfolio-categories a{padding:19px 14px;font-size:10px}.portfolio-categories a+a{border-left:0;border-top:0}
  .portfolio-projects{padding-top:90px;padding-bottom:100px}.projects-head{flex-direction:column;align-items:flex-start;gap:22px;margin-bottom:48px}.projects-head h2{font-size:clamp(53px,12vw,85px)}.projects-head p{font-size:13px}
  .project-card + .project-card{margin-top:75px}.project-visual,.project-card.hotels-card .project-visual{height:345px}.device-stage{width:100%;height:81%}.mock-laptop{left:4%;width:81%}.mock-laptop-screen{border-width:5px;border-bottom-width:7px;border-radius:10px 10px 4px}.mock-laptop-base{height:8px}.mock-phone{right:2%;width:30%}
  .website-projects .project-visual,.website-projects .hotels-card .project-visual{height:345px}.website-projects .device-stage{width:100%;height:81%}.website-projects .project-meta h3{font-size:clamp(32px,8vw,45px)}
  .project-visual .corner-label{top:15px;left:16px;font-size:9px}.project-visual .corner-index{bottom:15px;right:16px;font-size:9px}
  .branding-section{padding-top:100px;padding-bottom:105px}.branding-grid{gap:60px}.branding-visual{height:370px}.branding-visual-tag{top:18px;left:18px;font-size:9px}.branding-visual-caption{bottom:20px;left:18px;font-size:9px}.coach-type{font-size:110px}.hospitality-type{font-size:70px}.branding-meta h3{font-size:36px}.branding-meta p{font-size:12px}.branding-originals-note{margin-top:65px}.branding-originals-note p{font-size:12px}
  .project-meta{padding-top:20px;margin-top:18px;gap:16px}.project-meta h3{font-size:clamp(32px,8vw,45px)}.project-meta p{font-size:12px}.project-arrow{height:48px;width:48px;font-size:22px}
  .approach{padding:100px 22px;gap:35px}.approach h2{font-size:clamp(58px,12vw,90px);margin-top:30px}.approach-right p{font-size:14px}
  .contact-panel{padding:100px 22px 85px}.contact-panel h2{font-size:clamp(65px,13vw,100px);margin:62px 0 55px}.contact-bottom p{max-width:150px;font-size:12px}.contact-circle{width:158px;height:158px;flex:none;font-size:10px;gap:12px}.contact-circle .ui-icon{font-size:44px}
  .footer{padding-top:65px;padding-bottom:25px}.footer-main{grid-template-columns:1fr 1fr;gap:55px 20px;padding-bottom:75px}.footer-main>div:first-child{grid-column:1/-1}.footer-main .brand{font-size:39px}.footer-bottom{flex-wrap:wrap;font-size:10px}
  .case-hero{padding:125px 22px 50px;min-height:635px}.case-hero h1{font-size:clamp(58px,12vw,89px);margin:70px 0 36px}.case-hero-bottom{flex-direction:column;align-items:flex-start;gap:26px}.case-hero-bottom p{font-size:13px;max-width:325px}.case-hero-index{font-size:9px}.breadcrumb{font-size:9px}
  .case-screen{min-height:350px;height:390px}.case-screen img{width:94%;max-height:80%;box-shadow:14px 20px 35px rgba(29,27,26,.22)}.case-screen .screen-tag{top:17px;left:22px;font-size:9px}.case-screen .screen-index{bottom:18px;right:22px;font-size:9px}
  .case-summary{padding-top:105px;padding-bottom:100px;gap:25px}.case-summary h2{font-size:clamp(44px,10vw,70px)}.case-summary p{font-size:14px}
  .case-facts{grid-template-columns:1fr;gap:25px;padding-top:45px;padding-bottom:50px}.case-fact{padding-left:18px}.case-fact strong{font-size:19px}.case-fact span{font-size:9px}
  .case-story{padding-top:100px;padding-bottom:110px}.story-block{gap:26px}.story-block+.story-block{margin-top:82px}.story-block h2{font-size:clamp(48px,11vw,75px)}.story-block p{font-size:14px}
  .case-deliverables{padding:100px 22px 105px}.case-deliverables h2{font-size:clamp(55px,11.5vw,84px);margin-bottom:55px}.case-deliverables-list{grid-template-columns:1fr;gap:35px}.case-deliverable{min-height:105px}.case-deliverable small{margin-bottom:25px}.case-deliverable strong{font-size:30px}
  .case-visit{padding:75px 22px;gap:20px}.case-visit h2{font-size:clamp(35px,8vw,58px)}.case-visit .visit-link{width:125px;height:125px;font-size:9px;gap:8px}.case-visit .visit-link .ui-icon{font-size:35px}
  .next-project{padding:80px 22px 100px}.next-project .next-label{font-size:9px}.next-project h2{font-size:clamp(55px,11vw,86px);margin-top:36px}
}
@media(max-width:390px){
  .portfolio-hero h1{font-size:60px}
  .contact-bottom{align-items:flex-start;flex-direction:column}.contact-circle{align-self:flex-end}
  .case-hero h1{font-size:56px}.case-visit{flex-direction:column;align-items:flex-start}.case-visit .visit-link{align-self:flex-end}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.js .reveal{opacity:1;transform:none}}

/* Original Apartment Hotels mockups, shown uncropped at their native proportions. */
.apartment-branding-gallery{display:grid;gap:24px}
.apartment-branding-gallery figure{margin:0;min-width:0}
.apartment-branding-gallery a{display:block;overflow:hidden;border-radius:7px;background:#e4e2dd}
.apartment-branding-gallery img{display:block;width:100%;height:auto}
.apartment-branding-gallery figcaption{padding-top:12px;font-size:10px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:#60595b}
@media(max-width:640px){.apartment-branding-gallery{gap:20px}}

@media(min-width:1101px){.branding-grid>.branding-card:only-child .apartment-branding-gallery{grid-template-columns:1fr 1fr;align-items:start}}

.apartment-brand-star{display:block;width:clamp(48px,7vw,88px);height:clamp(48px,7vw,88px);margin:4px 8px 0 16px;color:var(--red);fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;align-self:center}
