/* Responsive finishing layer: preserves original artwork and route interactions. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:calc(var(--site-header-height) + 16px)}
body{min-width:0}
#main{min-width:0}
img,video,svg{max-width:100%}
input,textarea,select{box-sizing:border-box}
@media(max-width:1100px){
 body #site-header,body #site-header.dark{grid-template-columns:40px 80px minmax(0,1fr) 58px;column-gap:16px;padding-inline:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}
 #site-header #view-controls{min-width:0;white-space:normal;flex-wrap:wrap;gap:4px 8px;line-height:1.3}
 #site-header #view-controls>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
 #site-header #mobile-menu{display:block;grid-column:4;grid-row:1;justify-self:end;min-height:44px;min-width:44px;font-size:12px}
 #site-header nav,#site-header .contact-link{display:none}
 body #site-header.menu-open{height:100dvh;overflow-y:auto;background:var(--paper);color:var(--ink);align-content:start;padding-bottom:env(safe-area-inset-bottom)}
 #site-header.menu-open nav{position:static;grid-column:1/-1;grid-row:2;display:flex;flex-direction:column;align-items:center;gap:8px;margin:25px 0 0;padding:0;width:100%;font-size:clamp(25px,4vh,36px);line-height:1.2}
 #site-header.menu-open nav a{min-height:44px;display:flex!important;align-items:center;justify-content:center}
 #site-header.menu-open .contact-link{position:static;display:flex;grid-column:1/-1;grid-row:3;justify-self:center;align-items:center;justify-content:center;width:auto;min-height:44px;font-size:clamp(25px,4vh,36px);margin:8px 0 24px}
 #site-header #view-controls button{min-height:44px;min-width:28px}
 .work-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:45px 14px}
 .work-grid.zoom{grid-template-columns:repeat(3,minmax(0,1fr))}
 .studio-team-grid{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(220px,36%);overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;padding-bottom:18px}
 .studio-team-member{scroll-snap-align:start}
 .studio-team-member h3{font-size:18px}
 .section-row{grid-template-columns:minmax(130px,20%) minmax(0,1fr)}
 .service-columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 24px}
 .inquiry-page{padding-top:calc(var(--site-header-height) + 28px)}
 .iq-layout{gap:40px;grid-template-columns:minmax(0,1.3fr) minmax(220px,.8fr)}
 .tc-hero-bottom{grid-template-columns:1fr;gap:28px}
 .tc-hero-art{min-height:300px}
 .tc-facts{grid-template-columns:1fr 1fr 2fr}
 .tc-idea-intro,.tc-section-heading,.tc-credits{gap:28px;grid-template-columns:1fr 2.5fr}
 .tunnel-case .ec-concept-tabs{gap:6px}
 .tunnel-case .ec-concept-tabs button{grid-template-columns:1fr;padding:12px 8px;gap:8px}
 .tunnel-case .ec-concept-tabs button img{justify-self:center;width:44px;height:44px}
 .tunnel-case .ec-concept-panel{grid-template-columns:minmax(0,1fr) 25px minmax(0,1fr);gap:18px}
 .tunnel-case .ea-section-head,.tunnel-case .ea-film-heading,.tunnel-case .ea-idea-detail{grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:24px}
 .tunnel-case .ea-section-head>*:last-child,.tunnel-case .ea-film-heading>*:last-child,.tunnel-case .ea-idea-detail>*:last-child{grid-column:1/-1}
 .tc-credits dl{grid-template-columns:repeat(2,minmax(0,1fr))}
 .tunnel-case .hf-pattern-selector{gap:6px}
 .poster-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
 .poster-grid.large{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:800px){
 body #site-header,body #site-header.dark{grid-template-columns:32px 60px minmax(0,1fr) 50px;column-gap:10px}
 #site-header #view-controls{font-size:11px}
 .page{padding-top:calc(var(--site-header-height) + 28px)}
 .work-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:35px 12px}
 .work-grid.zoom{grid-template-columns:repeat(3,minmax(0,1fr));gap:30px 10px}
 .work-grid .caption{flex-wrap:wrap;gap:5px;font-size:11px;line-height:1.5}
 .work-grid .caption h3{font-size:14px;overflow-wrap:anywhere}
 .work-list .project-link{min-height:50px;align-items:center;gap:8px;grid-template-columns:28px minmax(0,1.2fr) minmax(0,1fr);overflow-wrap:anywhere}
 .list-head{grid-template-columns:28px minmax(0,1.2fr) minmax(0,1fr);gap:8px}
 .filter-toggle,.filters button{min-height:44px}
 .filters{display:flex;flex-wrap:wrap;gap:8px 18px}.filters[hidden]{display:none}
 .section-row{grid-template-columns:minmax(0,1fr);gap:24px}
 .info-lead{font-size:clamp(28px,5.5vw,44px);line-height:1.2;margin-bottom:70px;overflow-wrap:break-word}
 .large-copy{font-size:clamp(22px,4vw,32px);line-height:1.35}
 .service-columns{margin-top:32px}.service-columns h3{font-size:24px}
 .accordion summary{min-height:44px;line-height:1.4;padding-block:12px}
 .studio-team-grid{grid-auto-columns:minmax(220px,72%)}
 .studio-team-member figcaption{padding-inline:4px}
 .inquiry-page{padding-inline:5%;padding-bottom:calc(80px + env(safe-area-inset-bottom))}
 .iq-layout{grid-template-columns:minmax(0,1fr);gap:45px}
 .iq-intro{position:static}
 .iq-top{flex-wrap:wrap;gap:12px}.iq-language{margin-left:auto;flex-shrink:0}
 .iq-language button{min-height:44px;min-width:44px}
 .iq-progress{flex-wrap:wrap;row-gap:12px}
 .iq-service span{min-height:44px;display:flex;align-items:center}
 .iq-consent{padding-block:8px}
 .iq-studio-contact a{overflow-wrap:anywhere}
 .tc-hero{min-height:calc(100svh - var(--site-header-height))}
 .tc-hero-art{min-height:240px;padding:24px 0}
 .tc-master-symbol{max-width:78vw;width:min(280px,100%);height:clamp(190px,30svh,260px)}
 .tc-hero-bottom{gap:24px}
 .tunnel-case .tc-hero h1{font-size:clamp(27px,6vw,33px);overflow-wrap:break-word}
 .tc-facts{grid-template-columns:minmax(0,1fr) minmax(0,.8fr) minmax(0,1.4fr);gap:12px}
 .tc-facts dd,.tc-credits dd{overflow-wrap:anywhere}
 .tc-idea-intro,.tc-section-heading,.tc-credits{grid-template-columns:minmax(0,1fr);gap:22px}
 .tc-credits dl{grid-template-columns:minmax(0,1fr)}
 .tunnel-case .ec-concept-panel{grid-template-columns:minmax(0,1fr);min-height:0}
 .tunnel-case .ec-concept-copy{grid-template-columns:minmax(0,1fr)}
 .tunnel-case .ec-symbol-study img{max-width:75vw}
 .tunnel-case .hf-pattern-selector button,.tunnel-case .hm-mode-tabs button,.tunnel-case .hm-season-tabs button,.tunnel-case .at-detail-controls button{min-height:48px;line-height:1.4;white-space:normal;padding:12px 6px}
 .tunnel-case .hf-paper-pair,.tunnel-case .hf-editorial-posters,.tunnel-case .hf-object-grid,.tunnel-case .sv-app-grid,.tunnel-case .sv-motion-grid,.tunnel-case .hm-application-grid,.tunnel-case .hm-occasion-grid,.tunnel-case .ax-world-pair,.tunnel-case .at-pattern-film{grid-template-columns:minmax(0,1fr)}
 .tunnel-case .ea-section-head,.tunnel-case .ea-film-heading,.tunnel-case .ea-idea-detail{grid-template-columns:minmax(0,1fr)}
 .tc-more-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
 .tc-next-caption{font-size:12px;line-height:1.5;overflow-wrap:anywhere}.tc-next-service{font-size:10px;line-height:1.5}
 .tc-outro a{overflow-wrap:anywhere}
 .poster-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.poster-grid.large{grid-template-columns:repeat(2,minmax(0,1fr))}
 #lightbox{height:100dvh;padding:70px 12px calc(20px + env(safe-area-inset-bottom))}
 #lightbox>button{top:max(12px,env(safe-area-inset-top));right:12px;min-height:44px;min-width:80px}
 #poster-viewer{height:100dvh;padding-top:max(12px,env(safe-area-inset-top));padding-bottom:max(12px,env(safe-area-inset-bottom))}
 #poster-viewer button{min-height:44px}
 #site-footer{padding-bottom:max(10px,env(safe-area-inset-bottom))}
 .aw-page,.poster-page{padding-bottom:calc(100px + env(safe-area-inset-bottom))}
}
@media(max-width:380px){
 body #site-header,body #site-header.dark{padding-inline:12px;grid-template-columns:28px 48px minmax(0,1fr) 44px;column-gap:7px}
 #site-header #page-label{font-size:11px}.brand-symbol{max-width:24px}
 .iq-budget{grid-template-columns:minmax(0,1fr);gap:24px}
 .tc-facts{grid-template-columns:1fr 1fr}.tc-facts>div:last-child{grid-column:1/-1}
 .tc-more-grid{grid-template-columns:minmax(0,1fr)}
 .service-columns{gap:24px 16px}.service-columns h3{font-size:21px}
 .aw-caption{font-size:16px}.aw-caption>.aw-track{overflow-wrap:anywhere}
}
@media(max-height:600px) and (orientation:landscape) and (max-width:1100px){
 #site-header.menu-open nav{flex-direction:row;flex-wrap:wrap;gap:8px 24px;margin-top:15px;font-size:24px}
 #site-header.menu-open .contact-link{font-size:24px;margin-top:12px}
 .entry-title{transform:scale(.8)}
 .tc-hero-art{min-height:180px}.tc-master-symbol{height:180px}
 .tc-hero-bottom{grid-template-columns:1fr 1.3fr;gap:24px}
 .tunnel-case .tc-hero h1{font-size:26px}
 .poster-title,.aw-title{margin-bottom:50px}
}
@media(hover:none) and (pointer:coarse){
 a,button{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
 .shape-hit{touch-action:none}
 .poster-card:hover img{transform:none}
 .aw-card .aw-caption{color:#c2c2be}
 .home-title{pointer-events:none}
}
@media(max-width:1100px){
 body:has(#site-header.menu-open){overflow:hidden}
 body.project-system #site-header.menu-open{background:var(--case-primary);color:#fff}
 .cta a{font-size:clamp(32px,7vw,80px);overflow-wrap:anywhere}
 .page-title{margin-bottom:80px}
 .tc-credits>a{max-width:100%;width:fit-content;overflow-wrap:anywhere}
}
@media(max-width:600px){
 .tc-gallery .sv-release-grid,.tc-gallery .hm-film-grid,.tc-gallery .ea-posters,.tc-gallery .ea-stationery-grid,.tc-gallery .ea-object-grid,.tc-gallery .hm-season-grid{grid-template-columns:minmax(0,1fr)}
 .tc-gallery .ec-gallery-objects{grid-template-columns:minmax(0,1fr)}
 .tc-gallery .ec-gallery-objects .ec-photo:last-child{max-width:100%;grid-column:auto}
 .tc-more-heading{flex-wrap:wrap;gap:12px}
 .page-title{font-size:clamp(44px,12vw,72px);margin-bottom:60px}
 .cta{margin-top:75px}.cta a{font-size:clamp(30px,8vw,48px)}
 .inquiry-page input:not([type=checkbox]),.inquiry-page select,.inquiry-page textarea{font-size:16px}
}
/* The links form one centred group; display:contents preserves desktop slots. */
#site-header .menu-links{display:contents}
@media(max-width:1100px){
 #site-header.menu-open .menu-links{display:flex;position:absolute;inset:0;flex-direction:column;align-items:center;justify-content:center;box-sizing:border-box;padding:80px max(16px,env(safe-area-inset-right)) 80px max(16px,env(safe-area-inset-left));pointer-events:none}
 #site-header.menu-open .menu-links nav{position:static;width:100%;margin:0;padding:0;justify-content:center;pointer-events:auto}
 #site-header.menu-open .menu-links .contact-link{position:static;inset:auto;width:auto;margin:8px 0 0;padding:0;pointer-events:auto}
 #site-header.menu-open>.brand-symbol,#site-header.menu-open>#page-label,#site-header.menu-open>#view-controls,#site-header.menu-open>#mobile-menu{position:relative;z-index:1}
}

/* One shared physical gutter for the logo, Contact and Home grid endpoints. */
:root{--site-gutter:24px}
@media(max-width:1100px){:root{--site-gutter:max(16px,env(safe-area-inset-left),env(safe-area-inset-right))}}
@media(max-width:800px){:root{--site-gutter:max(12px,env(safe-area-inset-left),env(safe-area-inset-right))}}
body #site-header,body #site-header.dark{padding-left:var(--site-gutter);padding-right:var(--site-gutter)}
.home-field{--home-tile-size:min(calc((100% - var(--site-gutter) - var(--site-gutter) - (var(--home-columns,7) - 1)*12px)/var(--home-columns,7)),calc((100svh - var(--site-header-height) - 48px)/6 - 12px))}
.home-field .home-tile{width:var(--home-tile-size);height:auto;aspect-ratio:1;max-height:none}
#home-project-view{left:var(--site-gutter);right:var(--site-gutter)}
body.home-page #site-footer{padding-left:var(--site-gutter);padding-right:var(--site-gutter)}
@media(max-width:800px){.home-field{--home-tile-size:min(calc((100% - var(--site-gutter) - var(--site-gutter) - 36px)/4),calc((100svh - var(--site-header-height) - 48px)/7 - 10px))}}

.cms-preview-banner{position:fixed;bottom:14px;left:50%;transform:translateX(-50%);z-index:10000;background:#171717;color:#fff;font-size:12px;padding:10px 18px;border-radius:6px;white-space:nowrap}
