@font-face{font-family:RoobertFallback;src:local("Arial")}*{box-sizing:border-box}html{scroll-behavior:smooth}html[data-theme=light]{--bg:#efeee9;--fg:#11110f;--muted:#74736f;--line:#aaa9a3;--card:#d9d7d0;--inv:#11110f;--invfg:#efeee9}html[data-theme=dark]{--bg:#121211;--fg:#efeee9;--muted:#9c9b96;--line:#44433f;--card:#252522;--inv:#efeee9;--invfg:#11110f}body{margin:0;background:var(--bg);color:var(--fg);font-family:RoobertFallback,Arial,sans-serif;transition:background .45s,color .45s;overflow-x:hidden}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}#loader{position:fixed;inset:0;z-index:999;background:#111;color:#eee;display:grid;place-items:center;transition:transform 1.1s cubic-bezier(.8,0,.15,1)}#loader.done{transform:translateY(-100%)}.loader-mark{font-size:clamp(55px,9vw,150px);letter-spacing:-.08em}.loader-line{position:absolute;bottom:0;left:0;height:3px;background:#eee;animation:load 1.2s forwards}@keyframes load{from{width:0}to{width:100%}}.topbar{height:70px;padding:0 2vw;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;position:fixed;top:0;width:100%;z-index:80;background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:blur(18px);border-bottom:1px solid transparent;transition:.3s}.topbar.scrolled{border-color:var(--line)}.logo{font-size:14px;font-weight:600}.topbar nav{display:flex;gap:21px}.topbar nav a{font-size:16px;opacity:.5;transition:.2s}.topbar nav a:hover,.topbar nav a.active{opacity:1}.actions{justify-self:end;display:flex;gap:10px}.actions button{border:1px solid var(--line);background:none;border-radius:50%;width:38px;height:38px;cursor:pointer}.moon{display:none}html[data-theme=dark] .moon{display:inline}html[data-theme=dark] .sun{display:none}#menu{display:none;width:auto;border-radius:30px;padding:0 14px}.mobile-nav{display:none}.hero,.section{padding:110px 2vw 13vw}.hero{padding-top:130px}.name-row{display:flex;justify-content:space-between;align-items:flex-end;border-bottom:1px solid var(--line);padding-bottom:14px}.name-row h1{font-size:clamp(50px,8.1vw,132px);line-height:.8;letter-spacing:-.075em;margin:0;font-weight:500}.name-row h2{font-size:clamp(22px,3vw,48px);letter-spacing:-.05em;margin:0;font-weight:500}.persona{display:flex;gap:18px;padding-top:17px;flex-wrap:wrap}.persona button{border:0;background:none;padding:0;color:var(--muted);font-size:12px;cursor:pointer}.persona button.active{color:var(--fg)}.mega{font-size:clamp(52px,8.5vw,140px);line-height:.89;letter-spacing:-.075em;font-weight:500;margin:18vh 0 20vh}.mega i{font-style:normal;color:var(--muted)}.manifesto{width:59%;margin-left:auto}.manifesto p,.wide-copy,.about-cols p{font-size:clamp(29px,3.6vw,59px);line-height:1.04;letter-spacing:-.052em;margin:0 0 11vh}.section{border-top:1px solid var(--line)}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:10px;margin-bottom:8vw}.work-grid{display:grid;grid-template-columns:1fr 1fr;gap:9vw 1.4vw}.case.large{grid-column:span 2}.case-img{height:56vw;max-height:820px;display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative;transition:transform .6s cubic-bezier(.2,.7,.2,1);background:var(--card)}.case:not(.large) .case-img{height:39vw}.case-img:before{content:"";position:absolute;width:45%;aspect-ratio:9/16;border-radius:28px;background:linear-gradient(145deg,#222,#666);box-shadow:0 35px 70px #0004;transform:rotate(-6deg);transition:.7s}.img2:before{width:70%;aspect-ratio:4/3;border-radius:10px;transform:rotate(3deg);background:linear-gradient(135deg,#bca98f,#51473d)}.img3:before{background:linear-gradient(145deg,#334052,#93a5b9);transform:rotate(7deg)}.img4:before{width:65%;aspect-ratio:16/10;border-radius:14px;transform:rotate(-2deg);background:linear-gradient(135deg,#513d63,#c7a9d6)}.case-img span{z-index:2;background:#111;color:#fff;padding:8px 11px;font-size:10px;text-transform:uppercase;letter-spacing:.1em}.case:hover .case-img:before{transform:rotate(0) scale(1.06)}.case-meta{display:grid;grid-template-columns:1fr 1fr auto;align-items:start;padding-top:15px}.case-meta h3{font-size:clamp(27px,3vw,48px);letter-spacing:-.05em;margin:0;font-weight:500}.case-meta p{color:var(--muted);margin:7px 0}.case-meta b{font-size:28px;font-weight:400}.values-list{border-top:1px solid var(--line)}.value{display:grid;grid-template-columns:8% 47% 1fr;align-items:center;border-bottom:1px solid var(--line);padding:2vw 0}.value span{font-size:10px}.value h2{font-size:clamp(60px,10vw,160px);line-height:.8;letter-spacing:-.08em;margin:0;font-weight:500}.value p{font-size:18px;line-height:1.35;max-width:400px}.wide-copy{width:74%;margin:16vw 0 0 auto}.career article{display:grid;grid-template-columns:30% 28% 1fr 8%;gap:2vw;padding:32px 0;border-top:1px solid var(--line)}.career article:last-child{border-bottom:1px solid var(--line)}.company small{color:var(--muted)}.career h3,.career h4{font-size:clamp(23px,2.4vw,39px);letter-spacing:-.045em;margin:6px 0;font-weight:500}.career p{line-height:1.5;margin:8px 0;color:var(--muted);max-width:470px}.career>article>span{font-size:11px;color:var(--muted);text-align:right}.quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line)}blockquote{background:var(--bg);margin:0;padding:4vw 3vw;min-height:420px;font-size:clamp(25px,2.8vw,45px);letter-spacing:-.04em;line-height:1.08;display:flex;flex-direction:column;justify-content:space-between}blockquote footer{font-size:11px;color:var(--muted);letter-spacing:0}.about-cols{display:grid;grid-template-columns:1.3fr 1fr;gap:10vw}.about-cols p{font-size:clamp(28px,3vw,50px)}.tags{display:flex;flex-wrap:wrap;align-content:flex-start;gap:8px}.tags span{padding:10px 15px;border:1px solid var(--line);border-radius:99px;font-size:12px}.tools-marquee{overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:22px 0;margin-top:8vw;white-space:nowrap}.tools-marquee div{font-size:clamp(28px,4vw,60px);letter-spacing:-.04em;animation:marquee 24s linear infinite;width:max-content}@keyframes marquee{to{transform:translateX(-50%)}}.contact{background:var(--inv);color:var(--invfg);min-height:100vh;padding:4vw 2vw 2vw;display:flex;flex-direction:column;justify-content:space-between}.contact-top,.contact footer{display:flex;justify-content:space-between;font-size:11px}.contact>p{font-size:17px;margin-top:12vh}.contact-link{font-size:clamp(62px,11vw,175px);line-height:.82;letter-spacing:-.08em;font-weight:500;margin:5vh 0 12vh}.contact-link i{font-style:normal;display:inline-block;transition:.35s}.contact-link:hover i{transform:rotate(45deg)}.contact footer{border-top:1px solid #777;padding-top:18px}.cursor,.cursor-dot{position:fixed;pointer-events:none;z-index:1000;border-radius:50%;transform:translate(-50%,-50%);display:none}.cursor{width:34px;height:34px;border:1px solid var(--fg);transition:width .2s,height .2s}.cursor-dot{width:4px;height:4px;background:var(--fg)}[data-reveal]{opacity:0;transform:translateY(55px);transition:opacity .9s,transform 1s cubic-bezier(.16,1,.3,1)}[data-reveal].show{opacity:1;transform:none}.char{display:inline-block;opacity:0;transform:translateY(.65em);transition:opacity .65s,transform .8s cubic-bezier(.16,1,.3,1)}.split.show .char{opacity:1;transform:none}@media(pointer:fine){.cursor,.cursor-dot{display:block}}@media(max-width:800px){.topbar{grid-template-columns:1fr auto}.topbar nav{display:none}#menu{display:block}.mobile-nav{position:fixed;z-index:70;inset:69px 0 0;background:var(--bg);padding:8vw 5vw;flex-direction:column}.mobile-nav.open{display:flex}.mobile-nav a{font-size:12vw;letter-spacing:-.07em}.name-row{display:block}.name-row h2{margin-top:15px}.hero,.section{padding-left:4vw;padding-right:4vw}.manifesto,.wide-copy{width:100%;margin-left:0}.work-grid{grid-template-columns:1fr}.case.large{grid-column:auto}.case-img,.case:not(.large) .case-img{height:110vw}.case-meta{grid-template-columns:1fr auto}.case-meta p{grid-row:2}.case-meta b{grid-row:1/3;grid-column:2}.value{grid-template-columns:10% 1fr;padding:28px 0}.value p{grid-column:2}.career article{grid-template-columns:1fr}.career>article>span{text-align:left}.quotes{grid-template-columns:1fr}.about-cols{grid-template-columns:1fr}.contact-top{gap:20px}.contact-link{font-size:17vw}}
/* V3 refinements */
.logo-mark{width:118px;height:34px;display:flex;align-items:center;color:var(--fg);transition:color .45s}
.logo-mark svg{width:100%;height:100%;display:block}
.background-intro{display:grid;grid-template-columns:1.25fr .75fr;gap:10vw;align-items:end;margin-bottom:10vw}
.background-title{font-size:clamp(54px,8.1vw,132px);line-height:.88;letter-spacing:-.075em;font-weight:500;margin:0}
.background-intro>p{font-size:clamp(19px,2vw,31px);line-height:1.18;letter-spacing:-.035em;color:var(--muted);margin:0 0 .5vw}
.career-billy{border-top:1px solid var(--line)}
.career-billy .career-row{display:grid;grid-template-columns:6% 27% 1fr 15%;gap:2vw;padding:3.1vw 0;border-bottom:1px solid var(--line);align-items:start;transition:padding .35s,background .35s}
.career-billy .career-row:hover{padding-left:1vw;padding-right:1vw}
.career-index{font-size:10px;color:var(--muted);padding-top:8px}
.career-billy .company small{font-size:10px;text-transform:uppercase;letter-spacing:.08em}
.career-billy .company h3,.career-billy .career-role h4{font-size:clamp(27px,3.1vw,50px);line-height:.95;letter-spacing:-.055em;margin:8px 0 0;font-weight:500}
.career-billy .career-role p{font-size:14px;line-height:1.5;max-width:570px;color:var(--muted);margin:17px 0 0}
.career-place{text-align:right;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding-top:8px}
.footer-portrait-wrap{display:grid;grid-template-columns:minmax(260px,37vw) 1fr;gap:6vw;align-items:end;padding:0 0 10vw;margin-bottom:5vw;border-bottom:1px solid #666}
.footer-portrait{overflow:hidden;background:#292929;aspect-ratio:1/1.18;max-height:680px}
.footer-portrait img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block;filter:grayscale(1);transform:scale(1.015);transition:transform .8s cubic-bezier(.16,1,.3,1),filter .5s}
.footer-portrait:hover img{transform:scale(1.045);filter:grayscale(.2)}
.portrait-copy{padding-bottom:1vw}
.portrait-copy span{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:#999}
.portrait-copy p{font-size:clamp(35px,5.2vw,82px);line-height:.93;letter-spacing:-.06em;margin:2.5vw 0 0}
html[data-theme=dark] .logo-mark{color:#efeee9}
html[data-theme=light] .logo-mark{color:#11110f}
@media(max-width:800px){
.logo-mark{width:100px}
.background-intro{grid-template-columns:1fr;gap:45px}
.career-billy .career-row{grid-template-columns:12% 1fr;padding:32px 0}
.career-billy .career-role,.career-place{grid-column:2}
.career-place{text-align:left}
.footer-portrait-wrap{grid-template-columns:1fr;gap:45px;padding-bottom:18vw}
.footer-portrait{max-height:none}
.portrait-copy p{font-size:12vw}
}

/* V4 — Values editorial refinement */
.values-v4{padding-top:9vw;padding-bottom:14vw}
.values-head{display:grid;grid-template-columns:1fr minmax(300px,36%);gap:6vw;align-items:start;margin-bottom:8vw}
.values-head .eyebrow{margin:0}
.values-head>p{font-size:clamp(17px,1.7vw,27px);line-height:1.22;letter-spacing:-.03em;color:var(--muted);margin:0}
.values-editorial{border-top:1px solid var(--line)}
.value-row{position:relative;display:grid;grid-template-columns:6% minmax(0,1.45fr) minmax(240px,.55fr) 4%;gap:1.2vw;align-items:center;min-height:clamp(145px,15.5vw,250px);border-bottom:1px solid var(--line);overflow:hidden}
.value-no{align-self:start;padding-top:2.2vw;font-size:10px;letter-spacing:.08em;color:var(--muted)}
.value-row h2{font-size:clamp(72px,11.6vw,188px);line-height:.74;letter-spacing:-.085em;font-weight:500;margin:0;white-space:nowrap;transform-origin:left center}
.value-row>p{font-size:clamp(15px,1.35vw,21px);line-height:1.35;letter-spacing:-.02em;margin:0;max-width:390px;color:var(--muted)}
.value-arrow{font-size:clamp(20px,2vw,32px);justify-self:end;transition:transform .35s cubic-bezier(.16,1,.3,1)}
.value-row:before{content:"";position:absolute;inset:0;background:var(--fg);transform:scaleY(0);transform-origin:bottom;transition:transform .45s cubic-bezier(.16,1,.3,1);z-index:-1}
.value-row:hover:before{transform:scaleY(1)}
.value-row:hover{color:var(--bg)}
.value-row:hover>p,.value-row:hover .value-no{color:color-mix(in srgb,var(--bg) 65%,transparent)}
.value-row:hover .value-arrow{transform:rotate(45deg)}
.values-statement{display:grid;grid-template-columns:25% 1fr;gap:5vw;margin-top:15vw;align-items:start}
.statement-kicker{font-size:10px;text-transform:uppercase;letter-spacing:.11em;color:var(--muted);padding-top:.8vw}
.values-statement p{font-size:clamp(39px,6vw,94px);line-height:.96;letter-spacing:-.065em;font-weight:500;margin:0;max-width:1250px}
@media(max-width:800px){
.values-v4{padding-top:20vw;padding-bottom:24vw}
.values-head{grid-template-columns:1fr;gap:38px;margin-bottom:18vw}
.values-head>p{font-size:19px;max-width:90%}
.value-row{grid-template-columns:10% 1fr 8%;gap:0;min-height:0;padding:29px 0 31px;align-items:start}
.value-no{padding-top:8px}
.value-row h2{font-size:clamp(58px,19vw,112px);line-height:.78;white-space:normal;grid-column:2}
.value-row>p{grid-column:2;max-width:88%;font-size:15px;margin-top:24px}
.value-arrow{grid-column:3;grid-row:1;align-self:start;padding-top:4px}
.value-row:before{display:none}
.value-row:hover{color:inherit}
.value-row:hover>p,.value-row:hover .value-no{color:var(--muted)}
.values-statement{grid-template-columns:1fr;gap:35px;margin-top:28vw}
.values-statement p{font-size:clamp(43px,13vw,78px);line-height:.94}
}

/* V5 — uploaded official logo */
.logo-mark{width:118px;height:38px;display:flex;align-items:center}
.logo-mark img{display:block;width:100%;height:100%;object-fit:contain;object-position:left center}
html[data-theme="light"] .logo-mark img{filter:brightness(0)}
html[data-theme="dark"] .logo-mark img{filter:brightness(0) invert(1)}
@media(max-width:800px){.logo-mark{width:100px;height:34px}}

/* V6 — Work: fixed 2 × 2 card grid */
.work-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6vw 1.4vw}
.work-grid .case.large{grid-column:auto}
.work-grid .case-img,
.work-grid .case:not(.large) .case-img{height:auto;aspect-ratio:4/3;max-height:none}
.work-grid .case-meta{grid-template-columns:1fr auto;gap:12px}
.work-grid .case-meta p{grid-column:1;grid-row:2;margin-top:2px}
.work-grid .case-meta b{grid-column:2;grid-row:1/3}
@media(max-width:800px){
.work-grid{grid-template-columns:1fr;gap:16vw}
.work-grid .case-img,.work-grid .case:not(.large) .case-img{aspect-ratio:4/3;height:auto}
}

/* V7 — real project artwork + refined interactions */
.work-grid .case-img{position:relative;isolation:isolate;background:#111;overflow:hidden}
.work-grid .case-img:before{display:none!important}
.work-grid .case-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;transform:scale(1.001);transition:transform .85s cubic-bezier(.16,1,.3,1),filter .55s ease}
.work-grid .case-img:after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(to top,rgba(0,0,0,.22),transparent 38%);opacity:0;transition:opacity .45s}
.work-grid .view-label{position:absolute;z-index:3;left:50%;top:50%;transform:translate(-50%,-35%);background:var(--bg);color:var(--fg);border-radius:999px;padding:13px 18px;font-size:11px;letter-spacing:.02em;text-transform:none;opacity:0;transition:opacity .35s,transform .55s cubic-bezier(.16,1,.3,1);white-space:nowrap}
.work-grid .case:hover .case-img img{transform:scale(1.055)}
.work-grid .case:hover .case-img:after{opacity:1}
.work-grid .case:hover .view-label{opacity:1;transform:translate(-50%,-50%)}
.work-grid .case-meta{transition:transform .45s cubic-bezier(.16,1,.3,1)}
.work-grid .case:hover .case-meta{transform:translateY(5px)}
.work-grid .case-meta b{transition:transform .4s cubic-bezier(.16,1,.3,1)}
.work-grid .case:hover .case-meta b{transform:rotate(45deg)}
@media(pointer:coarse){
.work-grid .view-label{display:none}
.work-grid .case:hover .case-img img{transform:none}
}

/* V8 — branded logo fill loader */
#loader{background:#0d0d0c;overflow:hidden}
.loader-center{display:flex;flex-direction:column;align-items:center;gap:28px}
.loader-logo-wrap{position:relative;width:clamp(145px,17vw,270px);height:clamp(55px,7vw,105px)}
.loader-logo-wrap img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.loader-logo-base{filter:brightness(0) invert(1);opacity:.14}
.loader-logo-fill{position:absolute;inset:0;overflow:hidden;clip-path:inset(100% 0 0 0);animation:logoFill 1.65s cubic-bezier(.65,0,.2,1) forwards}
.loader-logo-fill img{filter:brightness(0) invert(1)}
.loader-percent{font-size:11px;letter-spacing:.12em;color:#777;font-variant-numeric:tabular-nums}
.loader-progress{position:absolute;left:2vw;right:2vw;bottom:2vw;height:1px;background:#343432;overflow:hidden}
.loader-progress-fill{height:100%;width:0;background:#f1f0eb;animation:loaderBar 1.65s cubic-bezier(.55,0,.2,1) forwards}
#loader.done .loader-center{opacity:0;transform:translateY(-14px);transition:opacity .35s,transform .5s cubic-bezier(.16,1,.3,1)}
@keyframes logoFill{0%{clip-path:inset(100% 0 0 0)}100%{clip-path:inset(0 0 0 0)}}
@keyframes loaderBar{0%{width:0}100%{width:100%}}
@media(max-width:800px){.loader-progress{left:4vw;right:4vw;bottom:5vw}.loader-logo-wrap{width:160px;height:65px}}

/* Light mode: main/root background only. Section-specific backgrounds stay original. */
html[data-theme="light"]{
  --bg:#ffffff;

}
