/* D³ Render Studio: black canvas, the supplied brand artwork, silent motion reel. */
:root{color-scheme:dark;--paper:#000;--ink:#f2f2f2;--muted:#969696;--line:#292929;--orange:#ff5b2d}
html,body,main,.site-header,.work,.about,.journal,.contact,.footer,.mobile-menu,.detail-dialog,.dialog-bar,.marquee{background:#000;color:var(--ink)}
body{overflow-x:clip}
.site-header{position:absolute;inset:0 0 auto;margin:0;padding:0 var(--gutter);height:84px;gap:30px;border:0;background:linear-gradient(#0009,transparent);color:#fff}
.studio-brand{display:inline-flex;align-items:center;flex-shrink:0;min-height:44px}
/* True-alpha PNG; the filter changes only the ink, leaving the background clear. */
.studio-brand .brand-logo{display:block;width:auto;height:40px;max-width:170px;object-fit:contain;filter:brightness(0) invert(1);pointer-events:none}
.site-header .desktop-nav{text-shadow:0 1px 10px #0008}
.desktop-nav{gap:35px}.nav-contact span{border-color:#555}
.nav-contact:hover span{color:#000}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.video-hero{position:relative;background:#000;width:100%;scroll-margin-top:0}
.reel-stage{height:100vh;height:100svh;position:relative;overflow:hidden;background:#000;isolation:isolate}
.reel-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:#000;opacity:0;z-index:0;pointer-events:none;transition:opacity .7s cubic-bezier(.22,1,.36,1)}
.reel-video.is-active{opacity:1;z-index:1}
.project-meta p,.project-year,.project-tags span,.section-index,.section-heading-side,.work-count,.work-end p,.about-copy p:nth-child(2),.services>.eyebrow,.service-list small,.service-list details p,.studio-photo figcaption,.studio-values,.journal-intro,.article-info,.article-category,.article-foot,.article-foot span:last-child,.footer-top .eyebrow,.footer-bottom,.detail-facts span,.detail-body p,.colophon p{color:#b0b0b0}
.project-tags span{border-color:#3d3d3d}
.project-image-arrow,.article-image>span{background:#161616;color:#fff}
.project-card:hover .project-image-arrow,.article-card:hover .article-image>span{color:#000}
.marquee{border-color:var(--line)}.article-foot{border-color:var(--line)}
.photo-badge{color:#fff}.contact{border-top:1px solid var(--line)}
.contact-orb{border-color:#737373;color:#fff}.contact-orb:hover{background:#fff;color:#000}
.contact-bottom{border-color:var(--line)}.contact-link{border-color:#777}.back-top:hover span{color:#000}
.project-cursor{color:#111}.detail-next{background:#000;border-color:var(--line);color:#fff}.detail-next:hover{background:#171717}
.project-type-study{background:#000!important;border:1px solid var(--line);color:#fff}
.dialog-bar{border-color:var(--line);box-shadow:none}.dialog-bar .studio-brand{transform:scale(.85);transform-origin:left center}
.skip-link,.noscript-note{color:#000}.footer-top{grid-template-columns:1.25fr 1fr 1.1fr auto}
@media(max-width:1100px){.desktop-nav{gap:23px}.footer-top{grid-template-columns:1.4fr 1fr}.footer-top .back-top{justify-self:end}}
@media(max-width:760px){
 .site-header{height:72px;gap:15px}.studio-brand .brand-logo{height:33px;max-width:140px}
 .mobile-menu{top:72px}.menu-toggle span{background:#fff}
 .footer-top{grid-template-columns:1fr 1fr}.footer-top .studio-brand{grid-column:1/-1}.footer-top>span{padding-left:0}.footer-top .back-top{justify-self:start;padding-left:0}
 .dialog-bar .studio-brand{transform:none}.dialog-bar{padding-top:12px;padding-bottom:12px}.dialog-close{gap:8px;white-space:nowrap}
}
@media(prefers-reduced-motion:reduce){.reel-video{transition:none}}

/* Studio profile: a single reading column with a compact contact/team footer. */
.about.studio-profile{padding:clamp(64px,7vw,112px) max(24px,6vw) clamp(64px,8vw,128px);border:0}
.studio-profile-inner{max-width:660px;margin:0 auto}
.studio-profile-logo{margin:0 0 52px;line-height:1}
.studio-profile-logo img{width:180px;height:auto;filter:brightness(0) invert(1)}
.studio-profile-copy{display:flex;flex-direction:column;gap:22px}
.studio-profile-copy p{font-family:var(--body);font-size:clamp(20px,1.8vw,25px);line-height:1.3;letter-spacing:-.035em;font-weight:400;color:var(--ink);text-wrap:pretty}
.studio-profile-details{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(0,1fr);gap:40px;margin-top:64px;scroll-margin-top:32px}
.studio-profile-label{font-family:monospace;font-size:10px;line-height:1.4;letter-spacing:.04em;font-weight:400;text-transform:uppercase;margin:0 0 10px;color:#aaa}
.studio-profile-contact,.studio-profile-team{min-width:0}
.studio-profile-emails{display:flex;flex-direction:column;align-items:flex-start;gap:5px}
.studio-profile-emails a,.studio-profile-contact address{font-size:clamp(18px,1.65vw,23px);line-height:1.35;letter-spacing:-.035em;font-style:normal}
.studio-profile-emails a{overflow-wrap:anywhere;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:4px;transition:text-decoration-color .2s}
.studio-profile-emails a:hover,.studio-profile-emails a:focus-visible{text-decoration-color:currentColor}
.studio-profile-contact address{margin-top:24px}
.studio-profile-team ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px;font-size:16px;line-height:1.4}
@media(max-width:760px){
 .about.studio-profile{padding-top:56px;padding-bottom:64px}
 .studio-profile-logo{margin-bottom:38px}.studio-profile-logo img{width:155px}
 .studio-profile-copy{gap:20px}.studio-profile-copy p{font-size:21px;line-height:1.35}
 .studio-profile-details{margin-top:46px;gap:28px}
}
@media(max-width:540px){
 .studio-profile-details{grid-template-columns:minmax(0,1fr);gap:32px}
 .studio-profile-emails a,.studio-profile-contact address{font-size:20px}
}

/* Eleven distinct partner marks: four, four, then three centered on the same grid. */
.studio-partners{padding:0 max(20px,6vw) clamp(64px,7vw,112px);background:#000}
.partner-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));column-gap:0;row-gap:34px;max-width:1080px;margin:0 auto;padding:0;list-style:none}
.partner-mark{grid-column:span 2;min-width:0;height:90px;display:flex;align-items:center;justify-content:center}
.partner-mark:nth-child(9){grid-column:2/span 2}
.partner-mark img{display:block;width:min(76%,168px);height:auto;max-height:90px;object-fit:contain}
.partner-mark--wide img{width:min(84%,188px)}
.partner-mark--medium img{width:min(72%,150px)}
.partner-mark--seal img{width:min(68%,92px)}
.partner-mark--pretty img{width:min(60%,78px)}
.partner-mark--compact img{width:min(54%,64px)}
@media(max-width:760px){
 .partner-grid{row-gap:21px}
 .partner-mark{height:68px}
 .partner-mark img{max-height:68px}
 .partner-mark--seal img{width:min(68%,70px)}
 .partner-mark--pretty img{width:min(60%,58px)}
 .partner-mark--compact img{width:min(54%,48px)}
}

/* Full-width project images share one spacing value with the opening reel. */
.work{--work-gap:16px;width:100%;max-width:none;margin:0;padding:var(--work-gap) 0;scroll-margin-top:0}
.work-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--work-gap);align-items:stretch}
.js-ready .work-grid .project-card.reveal{opacity:1;transform:none}
.work-grid .project-card:nth-child(even){margin-top:0}
.work-grid .project-card .project-image{aspect-ratio:3/4;background:#101010}
.work-grid .project-button{position:relative;isolation:isolate}
.work-grid .project-button:focus-visible{outline-offset:-4px}
.work-grid .project-image img{object-fit:cover;object-position:center}
.work-grid .project-card:nth-child(3) .project-image img{object-position:center}
.work-grid .project-image::after{content:'';position:absolute;inset:55% 0 0;background:linear-gradient(transparent,#0009);pointer-events:none}
.work-grid .project-meta{position:absolute;left:var(--work-gap);right:var(--work-gap);bottom:var(--work-gap);z-index:1;margin:0;color:#fff;text-shadow:0 1px 6px #0008;pointer-events:none}
.work-grid .project-meta h3{font-family:var(--display);font-size:clamp(18px,1.65vw,25px);line-height:1.35;font-weight:500;letter-spacing:-.035em}
.work-grid .project-card--banner{grid-column:1/-1}
.work-grid .project-card--banner .project-image{aspect-ratio:auto}
.work-grid .project-card--banner .project-image img{height:auto;transform:none;filter:none}
.work-grid .project-card--banner .project-image::after{inset:auto 0 0;height:clamp(48px,7vw,100px)}
.collection-gallery{--gallery-ratio:3/4;--gallery-gap:28px;padding-top:32px;padding-bottom:80px}
.collection-gallery--landscape{--gallery-ratio:4/3}
.collection-label{font-size:13px;line-height:1.5;font-weight:500;letter-spacing:.07em;text-transform:uppercase;margin-bottom:28px;outline:none}
.masonry-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gallery-gap);align-items:start}
.masonry-column{display:flex;flex-direction:column;gap:var(--gallery-gap);min-width:0}
.masonry-column:nth-child(2){padding-top:clamp(40px,7vw,110px)}
.gallery-item{margin:0;min-width:0}
.gallery-media{aspect-ratio:var(--gallery-ratio);overflow:hidden;background:#101010}
.gallery-media img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.film-card{display:block;position:relative;color:#fff}
.film-card img{transition:transform .6s var(--ease)}
.film-card:hover img{transform:scale(1.025)}
.film-play-mark{position:absolute;right:22px;bottom:22px;width:48px;height:48px;border:1px solid #ffffff85;background:#0007;border-radius:50%;display:grid;place-items:center;padding-left:3px;font-size:16px;backdrop-filter:blur(8px);transition:background .25s}
.film-card:hover .film-play-mark{background:#fff;color:#000}
.film-player{padding-top:28px;padding-bottom:60px}
.film-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px}
.film-heading h2{font-size:14px;font-weight:500;letter-spacing:.06em;outline:none}
.film-back{font-size:14px;color:#bbb;padding:10px 0}.film-back:hover{color:#fff}
.film-viewer{background:#080808;border:1px solid #242424}
.film-screen{position:relative;aspect-ratio:var(--film-aspect,16/9);max-height:calc(100svh - 280px);min-height:220px;background:#000}
.film-screen video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#000}
.film-toolbar{display:flex;align-items:center;gap:24px;padding:12px 18px;min-height:66px;border-top:1px solid #242424;background:#080808}
.film-status{font-size:13px;line-height:1.5;color:#aaa;margin-right:auto}
.film-quality{display:flex;align-items:center;gap:10px;font-size:13px;color:#aaa;white-space:nowrap}
.film-quality select{color:#fff;background:#161616;border:1px solid #444;border-radius:4px;padding:9px 28px 9px 12px;min-height:40px;cursor:pointer;font-size:13px}
.film-fullscreen{font-size:13px;white-space:nowrap;min-height:40px;padding:8px 0;color:#eee}
.film-viewer:fullscreen{display:flex;flex-direction:column;width:100%;height:100%;border:0;background:#000}
.film-viewer:fullscreen .film-screen{flex:1;aspect-ratio:auto;max-height:none;min-height:0;width:100%}
.film-viewer:fullscreen .film-toolbar{flex-shrink:0}
/* Complete project: full compositions, quiet typography and measured image groups. */
.case-card{position:relative;display:block}
.case-card img{transition:transform .7s var(--ease)}
.case-card:hover img,.case-card:focus-visible img{transform:scale(1.02)}
.case-open-mark{position:absolute;right:22px;bottom:22px;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:#000b;color:#fff;font-size:23px;transition:background .25s,color .25s}
.case-card:hover .case-open-mark,.case-card:focus-visible .case-open-mark{background:#fff;color:#000}
.case-study{max-width:1964px;margin:0 auto;padding-top:28px;padding-bottom:24px}
.case-back{display:inline-flex;align-items:center;gap:12px;min-height:44px;font-size:12px;line-height:1.5;color:#aaa;transition:color .2s}
.case-back:hover{color:#fff}.case-back>span{font-size:18px}
.case-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:28px;margin:38px 0 44px}
.case-heading h2{font-family:var(--display);font-size:clamp(48px,6.1vw,96px);font-weight:500;line-height:1;letter-spacing:-.06em;outline:none}
.case-meta{padding-bottom:5px;min-width:220px}
.case-meta p{font-size:20px;line-height:1.4;letter-spacing:-.02em;margin-bottom:8px}
.case-meta span{font-size:12px;line-height:1.6;color:#969696}
.case-frame{margin:0;min-width:0;background:#14161b}
.case-frame img{display:block;width:100%;height:auto;max-height:none}
.case-hero{margin-bottom:clamp(40px,6vw,88px)}
.case-hero--portrait{width:min(64%,760px);margin-left:auto;margin-right:auto}
.case-caption{padding:16px 0 6px;background:var(--paper);color:#b5b5b5;font-size:14px;line-height:1.6;font-weight:400;letter-spacing:.005em}
.case-caption p{max-width:58ch;text-wrap:pretty}
.case-caption-label{display:block;margin-bottom:18px;font-size:11px;line-height:1.4;letter-spacing:.14em;text-transform:uppercase;color:#8f8f8f}
.case-sequence{display:flex;flex-direction:column;gap:28px}
.case-block{min-width:0}
.case-block--pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;align-items:start}
.case-block--wide{margin:clamp(16px,3vw,44px) 0}
.case-block--wide+.case-block--wide{margin-top:0}
.case-block--feature{width:min(72%,920px);margin:clamp(28px,5vw,72px) auto}
.case-block:last-child{margin-bottom:0}
.case-footer{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:26px 0 6px;margin-top:64px;border-top:1px solid var(--line)}
.case-footer>span{font-size:12px;color:#777}
/* The two perfume palettes unfold through offset pairs and opposing image/text spreads. */
.case-study--editorial .case-sequence{gap:clamp(56px,7vw,112px)}
.case-hero--editorial .case-frame,.case-block--split .case-frame{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:clamp(32px,7vw,112px);align-items:center;background:transparent}
.case-hero--editorial .case-caption,.case-block--split .case-caption{padding:0;max-width:36ch;font-size:clamp(14px,1.15vw,17px);line-height:1.65}
.case-block--split .case-frame{grid-template-columns:minmax(0,1fr) minmax(0,1.5fr)}
.case-block--split .case-frame img{grid-column:2;grid-row:1}
.case-block--split .case-caption{grid-column:1;grid-row:1}
.case-block--offset-pair,.case-block--offset-pair-reverse{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:clamp(28px,5vw,80px)}
.case-block--offset-pair .case-frame:last-child{margin-top:22%}
.case-block--offset-pair-reverse .case-frame:first-child{margin-top:22%}
.case-block--inset{width:min(60%,760px);margin-left:auto;margin-right:6%}
@media(max-width:760px){
 .work-grid{grid-template-columns:minmax(0,1fr)}
 .work-grid .project-meta h3{font-size:20px}
 .work-grid .project-card--banner .project-meta h3{font-size:clamp(13px,3.4vw,20px)}
 .collection-gallery{--gallery-gap:12px;padding-top:24px;padding-bottom:48px}
 .collection-label{font-size:12px;margin-bottom:20px;letter-spacing:.04em}
 .masonry-column:nth-child(2){padding-top:30px}
 .film-play-mark{width:36px;height:36px;right:12px;bottom:12px;font-size:12px}
 .film-player{padding-top:16px;padding-bottom:32px}.film-heading{gap:12px;margin-bottom:14px}
 .film-back,.film-heading h2{font-size:12px}.film-toolbar{gap:12px;padding:10px 12px;flex-wrap:wrap}
 .film-status{flex-basis:100%;font-size:12px}.film-status:empty{display:none}.film-quality{margin-right:auto;font-size:12px}
 .film-fullscreen{font-size:12px}.film-screen{min-height:160px;max-height:calc(100svh - 245px)}
 .case-open-mark{width:34px;height:34px;right:12px;bottom:12px;font-size:19px}
 .case-study{padding-top:14px;padding-bottom:16px}
 .case-heading{align-items:flex-start;flex-direction:column;gap:22px;margin:26px 0 32px}
 .case-heading h2{font-size:clamp(44px,12vw,80px)}.case-meta{min-width:0;padding:0}
 .case-meta p{font-size:18px;margin-bottom:5px}.case-meta span{font-size:11px}
 .case-hero{margin-bottom:28px}.case-sequence,.case-block--pair{gap:16px}
 .case-hero--portrait{width:100%}.case-caption{padding-top:12px;font-size:13px;line-height:1.6}
 .case-block--pair{grid-template-columns:minmax(0,1fr)}
 .case-block--feature{width:100%;margin:16px 0}
 .case-block--wide{margin:16px 0}.case-footer{margin-top:36px;padding-top:18px;gap:12px;flex-wrap:wrap}
 .case-study--editorial .case-sequence{gap:36px}
 .case-hero--editorial .case-frame,.case-block--split .case-frame,.case-block--offset-pair,.case-block--offset-pair-reverse{display:flex;flex-direction:column;gap:0}
 .case-hero--editorial .case-caption,.case-block--split .case-caption{max-width:none;padding:14px 0 6px;font-size:13px;line-height:1.6;width:100%}
 .case-caption-label{font-size:10px;margin-bottom:10px}
 .case-block--offset-pair .case-frame:last-child,.case-block--offset-pair-reverse .case-frame:first-child{margin-top:0}
 .case-block--offset-pair,.case-block--offset-pair-reverse{gap:28px}
 .case-block--inset{width:100%;margin:0}
}
@media(prefers-reduced-motion:reduce){.case-card img,.case-open-mark,.case-back{transition:none}}
