/* V5 / Interaction layer. Uses the V4.2 typography, palette and layouts. */
:root{--touch-min:44px}
html{scroll-padding-top:84px}
.navbtn{align-items:center;justify-content:center;gap:9px;min-height:44px;min-width:86px;border:1px solid var(--line);padding:8px 13px;border-radius:12px;background:var(--paper);color:var(--ink)}
.navbtn-icon{width:17px;height:14px;display:flex;flex-direction:column;justify-content:space-around}
.navbtn-icon i{width:100%;height:2px;display:block;background:currentColor;transition:transform .25s,opacity .2s}
.nav-backdrop,.mobile-dock{display:none}
.nav-open .navbtn-icon i:first-child{transform:translateY(4px) rotate(45deg)}
.nav-open .navbtn-icon i:last-child{transform:translateY(-4px) rotate(-45deg)}
.nav-open .navbtn{border-color:var(--accent);color:var(--ink)}
.tools-preview{display:grid;grid-template-columns:1fr 1fr;gap:5%;padding:clamp(4rem,8vw,9rem) 0;border-top:1px solid var(--line)}
.tools-preview h2{font:600 clamp(2.8rem,5.2vw,6rem)/.96 var(--sans);letter-spacing:-.085em;margin:1.2rem 0 0}
.tools-preview-body{padding-top:2rem}
.tools-preview-body>p:first-child{font-size:clamp(1.05rem,1.5vw,1.32rem);line-height:1.55;max-width:550px}
.tools-preview .tool-names{font:600 .85rem/1.85 var(--sans);color:var(--graphite);max-width:480px;margin:1.5rem 0}
.tools-section{padding:clamp(3rem,6vw,6rem) 0;border-top:2px solid var(--ink)}
.tools-heading h2{font-size:clamp(3rem,6vw,6.3rem);margin:1rem 0}
.tools-heading>p{max-width:760px;font-size:1.08rem}
.tool-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:3rem}
.tool-group{padding:clamp(1.25rem,2vw,2.5rem);border:1px solid var(--line);background:rgba(255,255,255,.25);min-width:0}
.tool-group-n{display:block;font:700 .67rem var(--sans);color:var(--accent);letter-spacing:.09em}
.tool-group h3{font:600 clamp(1.45rem,2.4vw,2.4rem)/1.07 var(--sans);letter-spacing:-.055em;margin:1rem 0 1.5rem}
.tool-group p{font-size:.93rem;color:var(--graphite);margin:1.3rem 0 0}
.tool-chips{display:flex;flex-wrap:wrap;gap:.5rem}
.tool-chips span{padding:.55rem .75rem;border:1px solid var(--ink);background:var(--paper);font:650 .75rem var(--sans);border-radius:8px}
.tools-footnote{font-size:.83rem;color:var(--graphite);margin-top:1.4rem}
@media(max-width:850px){
 html{scroll-padding-top:78px}
 .top{padding:11px 5vw;min-height:66px;z-index:90}
 .top .brand{font-size:.8rem;max-width:65%;letter-spacing:-.035em;white-space:nowrap}
 .top .brand b{font-size:1.14rem}
 .navbtn{display:flex;position:relative;z-index:94}
 .topnav{display:none;position:fixed;z-index:93;top:calc(68px + env(safe-area-inset-top, 0px));left:12px;right:12px;width:auto;max-height:calc(100dvh - 104px - env(safe-area-inset-bottom, 0px));overflow-y:auto;border:1px solid var(--line);border-radius:18px;padding:12px 17px 20px;background:var(--paper);box-shadow:0 24px 70px rgba(22,24,28,.2);flex-direction:column;align-items:stretch;gap:0;overscroll-behavior:contain}
 .topnav.open{display:flex}
 .topnav a{font:600 clamp(1.35rem,4vw,1.85rem)/1.2 var(--sans);letter-spacing:-.04em;text-transform:none;min-height:62px;display:flex;align-items:center;border-bottom:1px solid var(--line);padding:12px 4px}
 .topnav a:last-child{border-bottom:0;color:var(--accent)}
 .nav-backdrop{position:fixed;inset:0;z-index:85;background:rgba(43,45,49,.35);backdrop-filter:blur(3px)}
 .nav-open .nav-backdrop{display:block}
 body.nav-open{overflow:hidden}
 .mobile-dock{position:fixed;z-index:75;left:max(12px,env(safe-area-inset-left,0px));right:max(12px,env(safe-area-inset-right,0px));bottom:max(10px,env(safe-area-inset-bottom,0px));display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;padding:7px;border:1px solid rgba(110,111,112,.18);border-radius:18px;background:rgba(247,247,245,.95);backdrop-filter:blur(18px);box-shadow:0 9px 30px rgba(26,28,32,.15)}
 .dock-item{color:var(--graphite);min-height:57px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:3px;border-radius:12px;font:650 .65rem/1.1 var(--sans);letter-spacing:-.025em;white-space:nowrap}
 .dock-item svg{width:21px;height:21px;flex-shrink:0}
 .dock-item[aria-current="page"]{background:var(--ink);color:var(--paper)}
 .dock-item:active{transform:scale(.97)}
 .dock-item:focus-visible{outline:3px solid var(--accent);outline-offset:0}
 footer{padding-bottom:calc(105px + env(safe-area-inset-bottom,0px));flex-wrap:wrap}
 .cta{padding-bottom:calc(15vh + env(safe-area-inset-bottom,0px))}
 .tools-preview{grid-template-columns:1fr;gap:1.2rem}
 .tools-preview-body{padding-top:0}
 .tool-groups{gap:.7rem}
 .case-body h3{scroll-margin-top:85px}
 .case-cover img{width:100%;height:100%}
}
@media(max-width:600px){
 .wrap{width:90%}
 .top .brand{font-size:.73rem}
 .hero-upper{top:84px}
 .hero-scroll-hint{max-width:320px}
 .hero-footer{bottom:calc(88px + env(safe-area-inset-bottom,0px))}
 .hero-swiss-title{font-size:clamp(3.1rem,12vw,5.5rem)}
 .hero-scene{max-width:100%}
 .hero-scene p{max-width:305px}
 .intro{padding:11vh 0}
 .intro-copy{font-size:clamp(1.9rem,9vw,3.2rem)}
 .section-head{flex-wrap:wrap;gap:1rem;align-items:start}
 .section-head .work-stat{text-align:left}
 .work-entry .project-copy h3{font-size:clamp(2.75rem,12.3vw,5.3rem)}
 .work-film-strip{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:1px;gap:10px;margin-top:10px;padding:0 0 13px;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
 .work-film-strip .film-tile{flex:0 0 clamp(140px,43vw,195px);scroll-snap-align:start;min-height:178px}
 .work-film-strip .film-mini{aspect-ratio:4/5}
 .work-film-strip .film-mini .film-play{width:32px;height:32px;left:9px;top:9px}
 .work-film-strip .film-mini .film-tile-title{font-size:.8rem;left:10px;right:9px;bottom:12px;line-height:1.22}
 .work-film-strip .film-mini .film-tile-duration{font-size:.61rem;top:16px;right:10px}
 .case-films-grid,.case-films-grid.count-1,.case-films-grid.count-2{grid-template-columns:1fr;gap:2rem}
 .case-film-frame{aspect-ratio:4/4.25;max-height:450px}
 .case-film-frame .film-play{width:50px;height:50px}
 .case-film-meta h3{font-size:1.45rem}
 .case-film-meta p{font-size:1rem}
 .page-hero{padding:125px 5vw 50px;min-height:unset}
 .page-hero h1{overflow-wrap:anywhere}
 .work-case-hero h1{font-size:clamp(3.2rem,11vw,5.6rem);overflow-wrap:normal}
 .work-case-hero{min-height:unset}
 .case-cover{min-height:0}
 .work-case-cover{height:42svh;min-height:240px}
 .case-grid{padding:5rem 0}
 .case-body{line-height:1.6}
 .case-body h3{margin-top:2rem}
 .tool-groups{grid-template-columns:1fr}
 .tools-preview h2{font-size:clamp(2.4rem,9vw,4rem)}
 .tool-group{padding:1.5rem}
 .tool-group h3{font-size:1.85rem}
 .film-dialog{max-width:100vw;width:100%;max-height:calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));border:0;border-radius:0}
 .film-dialog-video{max-height:calc(100dvh - 190px);width:100%;min-height:0}
 .film-dialog-close{min-height:44px;min-width:90px;border-radius:10px}
 .film-dialog-top{position:sticky;top:0;background:#17191d;z-index:2}
 .film-dialog-description{padding-bottom:calc(1.4rem + env(safe-area-inset-bottom,0px))}
}
@media(max-width:370px){
 .top .brand{font-size:.64rem}
 .navbtn{min-width:74px;padding:8px}
 .hero-swiss-title{font-size:11.2vw}
 .dock-item{font-size:.59rem}
 .dock-item svg{width:20px;height:20px}
}
@media(prefers-reduced-motion:reduce){
 .navbtn-icon i,.dock-item{transition:none}
}
