/* Media Mills Studio. Premium restyle 2026-10-23; clean pass 2026-10-24.
   Direction: The name as a monument, brand kept: red #FF1D1D, charcoal #3A3A3A, white; Barlow SemiBold + Inter.
   Idea: the diagonal cut of the Media Mills mark is the one shape of the page (two sizes only: --cut-s, --cut-l).
   Scales: spacing = 8px steps (--s1..--s10); type = 16 / 18 / 24 / 36 / 64 / 80 + the monument; one transition speed. */
@font-face{font-family:"Barlow Fallback";src:local("Arial Bold"),local("Arial");font-weight:600;size-adjust:90%;ascent-override:111%;descent-override:22%;line-gap-override:0%}
@font-face{font-family:"Inter Fallback";src:local("Arial");font-weight:400 500;size-adjust:107%;ascent-override:90.5%;descent-override:22.5%;line-gap-override:0%}
:root{
 color-scheme:dark;
 --red:#FF1D1D;--red-dark:#D90F0F;
 --bg:#151515;--bg2:#1E1E1E;--surface:#2A2A2A;--charcoal:#3A3A3A;
 --ink:#fff;--soft:#EFEFEF;--dark:#151515;
 --line:rgba(255,255,255,.14);--field:#8C8C8C;
 /* spacing scale (8px) */
 --s1:8px;--s2:16px;--s3:24px;--s4:32px;--s5:40px;--s6:48px;--s7:64px;--s8:80px;--s9:96px;--s10:128px;
 --m:24px;--sec:64px;--head:32px;
 --gap:clamp(32px,3.33vw,48px);--gap-l:clamp(32px,6.67vw,96px);
 /* two chamfer sizes */
 --cut-s:clamp(16px,1.67vw,24px);--cut-l:clamp(24px,3.33vw,48px);
 /* type scale */
 --t-sm:16px;--t-base:18px;
 --t-md:clamp(20px,1.67vw,24px);
 --t-lg:clamp(28px,2.5vw,36px);
 --t-xl:clamp(40px,4.45vw,64px);
 --t-2xl:clamp(48px,5.56vw,80px);
 --mon:clamp(60px,13.6vw,260px);
 --t:.2s;--ease:cubic-bezier(.16,1,.3,1);
 --arrow:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.5' stroke-linecap='square'%3E%3Cpath d='M3 12h16M13 6l6 6-6 6'/%3E%3C/svg%3E");
}
@media(min-width:768px){:root{--sec:80px;--head:40px}}
@media(min-width:1100px){:root{--m:32px;--sec:96px;--head:48px}}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:96px;scroll-padding-bottom:96px;-webkit-text-size-adjust:100%}
body{background:var(--bg);color:var(--ink);font:400 var(--t-base)/1.6 Inter,"Inter Fallback",system-ui,sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
h1,h2,h3{font-family:Barlow,"Barlow Fallback",Inter,sans-serif;font-weight:600;text-wrap:balance}
p,li{text-wrap:pretty}
h1{font-size:var(--mon);line-height:.9;letter-spacing:-.05em}
h2{font-size:var(--t-lg);line-height:1.1;letter-spacing:-.01em}
h3{font-size:var(--t-md);line-height:1.2;letter-spacing:-.005em}
a{color:inherit;text-decoration:none}
a,button,label,summary{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.wrap{width:100%;max-width:1680px;margin:0 auto;padding:0 var(--m)}
section{padding:var(--sec) 0}
.skip{position:absolute;left:var(--s2);top:-80px;background:#fff;color:var(--dark);padding:var(--s2) var(--s3);z-index:100;font-weight:500;transition:top var(--t) ease}
.skip:focus{top:var(--s2)}
:focus-visible{outline:3px solid #fff;outline-offset:3px}
::selection{background:var(--red);color:#fff}
.lead{font-size:var(--t-md);line-height:1.5;color:var(--ink);max-width:34ch}
.soft{color:var(--soft)}
/* buttons: square, flat, one red fill. One hover (to white), one press, one focus */
.btn{display:inline-flex;align-items:center;justify-content:center;font:600 var(--t-base)/1 Barlow,"Barlow Fallback",Inter,sans-serif;letter-spacing:.005em;padding:var(--s2) var(--s4);border:0;border-radius:0;cursor:pointer;background:var(--red);color:var(--dark);min-height:56px;transition:background var(--t) ease,color var(--t) ease,transform var(--t) var(--ease)}
.btn:hover{background:#fff;color:var(--dark)}
.btn:active{transform:translateY(1px)}
.btn:disabled{cursor:progress;background:var(--soft);color:var(--dark)}
/* text link: white, 2px red rule, small arrow. Hover: rule turns white, arrow steps right */
.arrow-link{display:inline-flex;align-items:center;gap:var(--s1);font:600 var(--t-base)/1.2 Barlow,"Barlow Fallback",Inter,sans-serif;color:#fff;padding:var(--s1) 0;border-bottom:2px solid var(--red);transition:border-color var(--t) ease}
.arrow-link::after{content:"";width:20px;height:20px;flex:none;background:currentColor;-webkit-mask:var(--arrow) center/contain no-repeat;mask:var(--arrow) center/contain no-repeat;transition:transform var(--t) var(--ease)}
.arrow-link:hover{border-color:#fff}
.arrow-link:hover::after{transform:translateX(4px)}
.arrow-link:active{opacity:.8}
/* header: a plain 76px bar, one tone step above the page, hairline below */
header{position:sticky;top:0;z-index:50;background:var(--bg2)}
.nav{display:flex;align-items:center;justify-content:space-between;height:76px;position:relative}
.logo{display:block}
.logo img{height:38px;width:auto}
.links{display:flex;align-items:center;gap:var(--s4);font-weight:500;font-size:var(--t-sm)}
.links a:not(.btn){position:relative;display:flex;align-items:center;height:76px;padding:0 2px;color:var(--soft);transition:color var(--t) ease}
.links a:not(.btn)::after{content:"";position:absolute;left:2px;right:2px;bottom:-1px;height:3px;background:transparent;transition:background var(--t) ease}
.links a:not(.btn):hover{color:#fff}
.links a:not(.btn):hover::after{background:rgba(255,255,255,.4)}
.links a[aria-current]{color:#fff}
.links a[aria-current]::after{background:var(--red)}
.links .btn{padding:0 var(--s3);min-height:48px}
#nt{position:absolute;opacity:0;width:1px;height:1px} /* taste-skill-ignore: visually hidden checkbox, not a rule */
.burger{display:none;cursor:pointer;width:48px;height:48px;position:relative}
.burger i,.burger i::before,.burger i::after{position:absolute;left:8px;width:32px;height:2px;background:#fff;content:"";transition:transform .3s var(--ease)}
.burger i{top:23px}.burger i::before{top:-9px;left:0}.burger i::after{top:9px;left:0}
#nt:focus-visible~.burger{outline:3px solid #fff;outline-offset:2px}
/* hero: one left axis. Name, claim, supporting line, then the actions */
.hero{padding:var(--s7) 0 0;position:relative;isolation:isolate;overflow:hidden}
.hero h1{white-space:nowrap}
.hero .row{display:flex;flex-direction:column;align-items:flex-start;gap:var(--s2);margin-top:var(--s4)}
.hero .row .lead{max-width:30ch;margin:0;font-size:var(--t-lg);line-height:1.2;letter-spacing:-.01em}
.hero.sub .row .lead{max-width:44ch}
.hero .row .soft{max-width:60ch;font-size:var(--t-base)}
.hero .acts{display:flex;align-items:center;gap:var(--s4);flex-wrap:wrap;margin-top:var(--s2)}
.hero>.wrap,.hero>.mq{position:relative;z-index:1}
/* hero video: poster is the CSS background, so a failed or blocked video still shows a picture. Flat neutral scrim (no gradient) keeps text legible on media */
.hero-media{position:absolute;inset:0;z-index:0;background:var(--bg) url(../assets/hero-hd-poster.jpg) center/cover no-repeat}
.hero-media video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .6s ease;pointer-events:none}
@media(max-width:900px){.hero-media{background-position:68% center}.hero-media video{object-position:68% center}}
.hero-media video.playing{opacity:1}
.hero-media::after{content:"";position:absolute;inset:0;background:rgba(21,21,21,.68)}
.hero.sub{padding-bottom:var(--sec)}
.hero.sub+section:not(.alt){padding-top:var(--s4)}
/* home hero fills the visible screen (header is 76px) so tall and 4K screens show video edge to edge; inner pages keep their short hero */
.hero:not(.sub){min-height:calc(100vh - 76px);min-height:calc(100svh - 76px);display:flex;flex-direction:column;justify-content:center}
.hero:not(.sub)>.mq{margin-top:auto}
.hero:not(.sub)>.wrap{margin-top:auto;margin-bottom:var(--s7)}
.hero h1.long{font-size:var(--t-2xl);max-width:none;white-space:normal;line-height:1;letter-spacing:-.035em}
/* ticker: a quiet strip, not a second headline */
.mq{overflow:hidden;padding:var(--s3) 0}
.mq .track{display:flex;width:max-content;animation:mq 60s linear infinite}
.mq:hover .track{animation-play-state:paused}
.mq span{font:600 var(--t-md)/1.2 Barlow,"Barlow Fallback",Inter,sans-serif;letter-spacing:-.005em;white-space:nowrap;color:var(--soft);padding-right:var(--s3);display:flex;align-items:center;gap:var(--s3)}
.mq span::after{content:"";width:8px;height:8px;border-radius:50%;background:var(--red);flex:none}
@keyframes mq{to{transform:translateX(-50%)}}
/* showreel slot */
.reel{position:relative;aspect-ratio:16/9;background:var(--surface);display:grid;place-items:center;text-align:center;padding:var(--s3);overflow:hidden;clip-path:polygon(0 0,calc(100% - var(--cut-l)) 0,100% var(--cut-l),100% 100%,0 100%);margin-top:var(--head)}
.reel iframe,.reel video{position:absolute;inset:0;width:100%;height:100%;border:0}
.play{width:clamp(56px,8vw,120px);height:clamp(56px,8vw,120px);border-radius:50%;background:var(--red);display:grid;place-items:center;margin:0 auto var(--s2);transition:transform var(--t) var(--ease)}
.reel:hover .play{transform:scale(1.05)}
.play::after{content:"";border-left:clamp(16px,2.6vw,36px) solid #fff;border-top:clamp(10px,1.5vw,21px) solid transparent;border-bottom:clamp(10px,1.5vw,21px) solid transparent;margin-left:.45em}
.reel p{font-size:var(--t-base);color:var(--ink);max-width:44ch;margin:0 auto}
.sec-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s2) var(--s5);flex-wrap:wrap;margin-bottom:var(--head)}
.sec-head p{color:var(--soft);font-size:var(--t-sm);max-width:46ch}
/* services: one-size name columns */
.alt{background:var(--bg2)}
.cols{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap);margin-top:var(--head);align-items:stretch}
.cols h3{font-size:var(--t-lg);line-height:1.1;letter-spacing:-.015em;margin-bottom:var(--s2)}
.cols p{color:var(--soft);font-size:var(--t-base);margin-bottom:var(--s3);max-width:30ch}
.cols ul{list-style:none;margin-bottom:var(--s4)}
.cols li{font-size:var(--t-base);line-height:1.3;padding:var(--s1) 0}
/* service tiles (home): flat tile with the mark's chamfer; list grows so every Explore link sits on the same bottom line. Pointer light below is progressive, fine pointers only */
.cols>.glow{position:relative;display:flex;flex-direction:column;align-items:flex-start;background:var(--surface);padding:var(--s4);clip-path:polygon(0 0,calc(100% - var(--cut-s)) 0,100% var(--cut-s),100% 100%,0 100%)}
.cols>.glow p{flex:1 1 auto}
.cols>.glow::after{content:none}
@media(min-width:1100px){.cols>.glow{padding:var(--s5)}}
@media (hover:hover) and (pointer:fine){
 /* soft light follows the pointer; fixed attachment keeps it continuous across neighbouring tiles. --x/--y/--lx/--ly are set by js/main.js */
 .gl .cols>.glow{background:radial-gradient(circle 240px at var(--x,-999px) var(--y,-999px),rgba(255,29,29,.13),transparent) fixed,var(--surface)}
 /* 1px red edge shows only near the pointer: the pseudo-element is masked to a small spot in tile coordinates */
 .gl .cols>.glow::after{content:"";position:absolute;inset:0;border:1px solid var(--red);pointer-events:none;-webkit-mask:radial-gradient(circle 120px at var(--lx,-999px) var(--ly,-999px),#000,transparent);mask:radial-gradient(circle 120px at var(--lx,-999px) var(--ly,-999px),#000,transparent)}
}
@media (prefers-reduced-motion:reduce){.gl .cols>.glow{background:var(--surface)}.gl .cols>.glow::after{content:none}}
/* work: big names, fixed 16:9 preview (matches video) */
.work-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:var(--gap);align-items:start;margin-top:var(--head)}
.wlist{list-style:none}
.wname{display:block;padding:var(--s2) 0;color:var(--soft);transition:color var(--t) ease}
.wname .n{display:block;font:600 var(--t-2xl)/1 Barlow,"Barlow Fallback",Inter,sans-serif;letter-spacing:-.03em}
.wname .t{display:block;font-size:var(--t-sm);margin-top:var(--s1)}
.wname.on,.wname:hover,.wname:focus-visible{color:#fff}
/* grouped entry: one name, two sublines that each switch the preview */
.wgroup .gname{padding-top:var(--s2);margin:0;color:var(--soft);font:600 var(--t-2xl)/1 Barlow,"Barlow Fallback",Inter,sans-serif;letter-spacing:-.03em;transition:color var(--t) ease}
.wgroup:has(.wname.on) .gname{color:#fff}
.wname.sub{padding:var(--s1) 0}
.wname.sub .t{margin-top:0;font-size:var(--t-md)}
.wgroup .wname.sub:last-child{padding-bottom:var(--s2)}
.wname.sub.on .t::after{content:"";display:inline-block;width:.6em;height:.6em;margin-left:.35em;background:var(--red);-webkit-mask:var(--arrow) center/contain no-repeat;mask:var(--arrow) center/contain no-repeat}
.wname.on .n::after{content:"";display:inline-block;width:.55em;height:.55em;margin-left:.3em;background:var(--red);-webkit-mask:var(--arrow) center/contain no-repeat;mask:var(--arrow) center/contain no-repeat}
.wprev{position:relative;aspect-ratio:16/9;width:100%;transition:transform .45s cubic-bezier(.2,.7,.2,1)}
.slot{position:absolute;inset:0;display:grid;place-items:center;text-align:center;padding:var(--s3);font-size:var(--t-base);color:var(--ink);opacity:0;transition:opacity var(--t) ease;clip-path:polygon(0 0,calc(100% - var(--cut-s)) 0,100% var(--cut-s),100% 100%,0 100%)}
.slot.on{opacity:1}
.slot img,.slot iframe{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border:0}
.s0{background:var(--surface)}.s1{background:var(--charcoal)}.s2{background:var(--surface)}.s3{background:var(--charcoal)}
.mslot{display:none}
.mslot iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
/* thumbnail card that links out to YouTube (videos that cannot be embedded) */
.tcard{position:absolute;inset:0;display:block;overflow:hidden;color:#fff;text-decoration:none;background:var(--charcoal)}
.tcard img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;scale:1.14;display:block;transition:opacity var(--t) ease}
.tcard::before{content:"";position:absolute;inset:0;z-index:1;background:rgba(21,21,21,.35);transition:background var(--t) ease}
.tcard:hover::before,.tcard:focus-visible::before{background:rgba(21,21,21,.15)}
.tplay{position:absolute;z-index:2;left:50%;top:50%;width:64px;height:64px;margin:-32px 0 0 -32px;border-radius:50%;background:var(--red);transition:transform var(--t) ease}
.tplay::after{content:"";position:absolute;left:26px;top:19px;border-left:20px solid #fff;border-top:13px solid transparent;border-bottom:13px solid transparent}
.tcard:hover .tplay,.tcard:focus-visible .tplay{transform:scale(1.08)}
.tcap{position:absolute;z-index:2;left:var(--s2);bottom:var(--s2);font-size:var(--t-sm);font-weight:500}
.tcard:focus-visible{outline:3px solid #fff;outline-offset:-6px}
@media (prefers-reduced-motion:reduce){.tplay{transition:none}}
.more{margin-top:var(--s4)}
/* in-house: pre/post toggle */
.split{display:grid;grid-template-columns:1fr 1fr;gap:var(--gap-l);align-items:start}
.split h2.big{font-size:var(--t-xl);line-height:1.02;letter-spacing:-.025em;max-width:none}
.split .lead{margin-top:var(--s3);max-width:40ch}
.stage input{position:absolute;opacity:0;width:1px;height:1px}
.stage .tabs{display:grid;grid-template-columns:1fr 1fr;gap:var(--s1)}
.stage label{display:block;cursor:pointer;background:var(--surface);color:#fff;font:600 var(--t-md)/1.1 Barlow,"Barlow Fallback",Inter,sans-serif;padding:var(--s3);margin:0;transition:background var(--t) ease,color var(--t) ease,transform var(--t) var(--ease)}
.stage label:hover{background:var(--charcoal)}
.stage label:active{transform:translateY(1px)}
#st-pre:checked~.tabs label[for=st-pre],#st-post:checked~.tabs label[for=st-post]{background:var(--red);color:var(--dark)}
#st-pre:focus-visible~.tabs label[for=st-pre],#st-post:focus-visible~.tabs label[for=st-post]{outline:3px solid #fff;outline-offset:3px}
.stage .panel{display:none;background:var(--bg);padding:var(--s4) var(--s4) var(--s3);margin-top:var(--s1);min-height:350px}
#st-pre:checked~.panels .p-pre,#st-post:checked~.panels .p-post{display:block;animation:rise .6s var(--ease) both}
.stage .panel p{font-size:var(--t-md);line-height:1.45;max-width:32ch;text-wrap:balance}
.stage .panel ul{list-style:none;margin-top:var(--s2)}
.stage .panel li{font-size:var(--t-base);padding:var(--s1) 0;color:var(--soft)}
@keyframes rise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
/* service blocks (services page) */
.svc{display:grid;grid-template-columns:1fr 1fr;gap:var(--gap-l);align-items:start}
.svc.flip>div:first-child{order:2}
.svc h2{font-size:var(--t-2xl);line-height:1;letter-spacing:-.03em}
.svc .lead{margin-top:var(--s3)}
.svc ul{list-style:none}
.svc li{font:600 var(--t-lg)/1.15 Barlow,"Barlow Fallback",Inter,sans-serif;letter-spacing:-.015em;padding:var(--s2) 0}
.svc li:first-child{padding-top:var(--s1)}
.svc li span{display:block;margin-top:var(--s1);font:400 var(--t-base)/1.45 Inter,"Inter Fallback",sans-serif;letter-spacing:0;color:var(--soft)}
.svc li.ph{color:var(--soft);font:400 var(--t-base)/1.4 Inter,"Inter Fallback",sans-serif;letter-spacing:0}
.svc.wide{grid-template-columns:1fr}
.svc.wide ul{display:grid;grid-template-columns:repeat(3,1fr);gap:0 var(--gap);margin-top:var(--s2)}
/* cta: the whole band is one link */
.ctawrap{max-width:1680px;margin:0 auto;padding:var(--sec) var(--m)}
.work+.ctawrap,.on-form+.ctawrap{padding-top:0}
.ctawrap+.on-form{padding-top:0}
.cta{display:block;position:relative;background:var(--red);color:var(--dark);min-height:clamp(304px,32vw,472px);padding:var(--m);overflow:hidden;clip-path:polygon(var(--cut-l) 0,100% 0,100% 100%,0 100%,0 var(--cut-l));transition:background var(--t) ease,color var(--t) ease}
.cta p{font:500 var(--t-md)/1.35 Inter,"Inter Fallback",sans-serif;max-width:34ch}
.cta h2{position:absolute;left:var(--m);bottom:var(--s3);font-size:var(--mon);line-height:.82;letter-spacing:-.05em;white-space:nowrap}
.cta svg{position:absolute;top:var(--m);right:var(--m);width:clamp(32px,3.4vw,48px);height:auto;stroke:currentColor;transition:transform var(--t) var(--ease)}
.cta:hover,.cta:focus-visible{background:var(--dark);color:var(--red)}
.cta:hover svg{transform:translate(8px,-8px)}
.cta:active{background:var(--bg2)}
.cta:focus-visible{outline:3px solid #fff;outline-offset:-8px}
/* contact: coupon. Visible labels, inline errors beside each field, one success and one failure notice */
.coupon{display:grid;grid-template-columns:5fr 7fr;background:var(--charcoal);clip-path:polygon(0 0,calc(100% - var(--cut-l)) 0,100% var(--cut-l),100% 100%,0 100%)}
.coupon>div{padding:var(--s4)}
@media(min-width:1100px){.coupon>div{padding:var(--s7)}}
.coupon .ctext{background:var(--surface)}
.coupon h2{font-size:var(--t-xl);line-height:1;letter-spacing:-.03em}
.coupon .lead{margin-top:var(--s3)}
.direct{margin-top:var(--s4);font-size:var(--t-base);line-height:1.7}
.direct a{border-bottom:2px solid var(--red);transition:border-color var(--t) ease}
.direct a:hover{border-color:#fff}
form{display:grid;gap:var(--s3)}
label{font-weight:500;font-size:var(--t-sm);display:block;margin-bottom:var(--s1)}
label .opt{font-weight:400;color:var(--soft)}
input,textarea{width:100%;background:var(--bg);border:1px solid var(--field);color:#fff;font:400 var(--t-base)/1.4 Inter,"Inter Fallback",sans-serif;padding:var(--s2);border-radius:0;min-height:56px;transition:border-color var(--t) ease}
textarea{min-height:160px;resize:vertical}
input:hover,textarea:hover{border-color:#bdbdbd}
input:focus-visible,textarea:focus-visible{outline:3px solid #fff;outline-offset:2px;border-color:#fff}
input[aria-invalid=true],textarea[aria-invalid=true]{border:2px solid #FF8A8A;padding:calc(var(--s2) - 1px)}
input:-webkit-autofill,textarea:-webkit-autofill{-webkit-text-fill-color:#fff;caret-color:#fff;transition:background-color 99999s ease}
.field-err{display:flex;align-items:flex-start;gap:var(--s1);margin-top:var(--s1);color:#FFB4B4;font-size:var(--t-sm);line-height:1.4}
.field-err::before{content:"";flex:none;width:16px;height:16px;margin-top:2px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 1 .5 15h15L8 1zm-.75 5h1.5v4.5h-1.5V6zm0 5.5h1.5V13h-1.5v-1.5z' fill-rule='evenodd'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 1 .5 15h15L8 1zm-.75 5h1.5v4.5h-1.5V6zm0 5.5h1.5V13h-1.5v-1.5z' fill-rule='evenodd'/%3E%3C/svg%3E") center/contain no-repeat}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:var(--s3)}
.hp{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);margin:-1px;padding:0;border:0;white-space:nowrap}
.notice{display:none;align-items:flex-start;gap:var(--s2);padding:var(--s2) var(--s3);font-weight:500;margin-bottom:var(--s3);border-left:4px solid;scroll-margin-top:104px}
.notice:target{display:flex}
.notice svg{flex:none;width:24px;height:24px;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.notice.ok{background:#12351f;border-color:#4ADE80}
.notice.ok svg{stroke:#4ADE80}
.notice.err{background:#4a1414;border-color:#FF8A8A}
.notice.err svg{stroke:#FF8A8A}
form .btn{width:100%}
/* about: side facts, wide paragraph */
.facts{display:grid;grid-template-columns:minmax(200px,3fr) 9fr;gap:var(--gap-l);align-items:start}
.facts dl{display:grid;gap:var(--s3)}
.facts dt{font-size:var(--t-sm);color:var(--soft)}
.facts dd{font-size:var(--t-base);font-weight:500}
.facts .wide{font-size:var(--t-lg);line-height:1.25;max-width:34ch}
.facts .slotwrap{margin-top:var(--s5);display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:var(--gap);align-items:start}
.photo{position:relative;aspect-ratio:4/5;background:var(--surface);display:grid;place-items:center;text-align:center;padding:var(--s3);font-size:var(--t-base);overflow:hidden;clip-path:polygon(0 0,calc(100% - var(--cut-s)) 0,100% var(--cut-s),100% 100%,0 100%)}
.photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ph{background:var(--surface);padding:var(--s3) var(--s4);font-size:var(--t-base)}
/* footer: the name returns, inverse */
footer{background:#fff;color:var(--dark);padding:var(--sec) 0 0;overflow:hidden}
footer :focus-visible{outline-color:var(--dark)}
.fname{font:600 var(--mon)/.86 Barlow,"Barlow Fallback",Inter,sans-serif;letter-spacing:-.05em;white-space:nowrap;color:var(--dark)}
.fmain{display:grid;grid-template-columns:5fr 7fr;gap:var(--gap);padding:var(--s6) 0}
.fmain .ways a{display:block;font:600 var(--t-lg)/1.2 Barlow,"Barlow Fallback",Inter,sans-serif;letter-spacing:-.01em;color:var(--red-dark);padding:var(--s1) 0;overflow-wrap:anywhere;transition:color var(--t) ease}
.fmain .ways a:hover{color:var(--dark)}
.fmain nav{padding-top:2px;display:flex;gap:var(--s5);flex-wrap:wrap;align-content:flex-start}
.fmain nav a{font-size:var(--t-base);font-weight:500;padding:var(--s1) 0;transition:color var(--t) ease}
.fmain nav a:hover{color:var(--red-dark)}
.legal{font-size:var(--t-sm);padding:var(--s3) 96px var(--s4) 0;display:flex;justify-content:space-between;align-items:center;gap:var(--s2);flex-wrap:wrap}
.legal a{text-decoration:underline;text-underline-offset:3px;padding:var(--s1) 0}
.legal a:hover{color:var(--red-dark)}
/* whatsapp */
.wa{position:fixed;right:var(--s3);bottom:var(--s3);z-index:60;width:56px;height:56px;border-radius:50%;background:#25D366;display:grid;place-items:center;transition:transform var(--t) var(--ease)}
.wa svg{width:28px;height:28px;fill:#fff}
.wa:hover{transform:scale(1.05)}
.wa:active{transform:scale(.97)}
.wa:focus-visible{outline:3px solid #fff;outline-offset:3px}
/* motion: entrances, once. Content stays visible without script. */
.js .rv{opacity:0;transform:translateY(24px);transition:opacity .9s ease,transform 1s var(--ease);transition-delay:var(--d,0s)}
.js .rv.in{opacity:1;transform:none}
.js .rv.clip{transform:translateY(32px) scale(.985)}
.js .rv.clip.in{transform:none}
@media(max-width:1100px){
 .links{gap:var(--s3)}
}
@media(max-width:860px){
 .burger{display:block}
 .links{position:absolute;top:76px;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;background:var(--bg2);display:none;padding:var(--s1) var(--m) var(--s4);z-index:60}
 .links a:not(.btn){height:auto;padding:var(--s2) 0;font-size:var(--t-lg);font-weight:600;font-family:Barlow,"Barlow Fallback",Inter,sans-serif}
 .links a:not(.btn)::after{display:none}
 .links a[aria-current]{text-decoration:underline;text-decoration-color:var(--red);text-decoration-thickness:3px;text-underline-offset:8px}
 .links .btn{margin-top:var(--s2);padding:var(--s2);font-size:var(--t-base);min-height:56px}
 #nt:checked~.links{display:flex;animation:rise .4s var(--ease) both}
 .hero .row{width:100%}
 .split,.coupon,.facts,.fmain,.row2,.facts .slotwrap,.cols{grid-template-columns:1fr}
 .work-grid{grid-template-columns:1fr}
 .wprev{display:none}
 .wname{padding:0;margin-top:var(--s5);color:#fff}
 .wlist{margin-top:calc(var(--s1)*-1)}
 .wname .n{font-size:var(--t-2xl)}
 .wname.on .n::after,.wname.sub.on .t::after{display:none}
 .wgroup .gname{color:#fff;margin-top:var(--s5);padding-top:0}
 .wname.sub{margin-top:var(--s1);padding:0}
 .wname.sub .t{font-size:var(--t-base)}
 .mslot{position:relative;aspect-ratio:16/9;margin-bottom:var(--s2);display:grid;place-items:center;text-align:center;padding:var(--s2);font-size:var(--t-base);clip-path:polygon(0 0,calc(100% - var(--cut-s)) 0,100% var(--cut-s),100% 100%,0 100%)}
 .stage .tabs{grid-template-columns:1fr}
 .cta{min-height:46svh}
 .cta p{padding-right:56px}
 .hero h1,.fname{font-size:17.5vw;white-space:normal;line-height:.88}
 .fname span{display:block}
 .hero .row .lead{font-size:var(--t-md)}
 .photo{max-width:320px}
 .facts .wide{font-size:var(--t-md)}
 .hero h1.long{font-size:8vw}
}
@media(max-width:600px){.hero .acts{width:100%}.hero .acts .btn{width:100%}.cta h2{font-size:clamp(64px,22vw,200px);white-space:normal;line-height:.85}.svc,.svc.wide ul,.cols{grid-template-columns:1fr}.svc.flip>div:first-child{order:0}.svc.wide ul{margin-top:var(--s2)}.fmain nav{gap:var(--s3)}.fmain .ways a{font-size:var(--t-md)}}
@media(prefers-reduced-motion:reduce){
 .hero-media video{display:none}
 html{scroll-behavior:auto}
 *{transition:none!important;animation:none!important}
 .js .rv{opacity:1;transform:none}
 .mq .track{transform:none}
 .mq .track span:nth-child(n+2){display:none}
}
button.wname{background:none;border:0;font:inherit;text-align:left;width:100%;cursor:pointer;min-height:0;border-radius:0;color:var(--soft)}
button.wname.on,button.wname:hover,button.wname:focus-visible{color:#fff}
@media(max-width:860px){button.wname{color:#fff}}

/* post carousel (services, Visual Design): coverflow of client posts. Cards are positioned by js/main.js; cards keep the mark's chamfer */
.cf{--cf-card:clamp(140px,17vw,210px);margin-top:var(--s5);width:100%}
.cf-frame{overflow:hidden;padding:var(--s2) 0;perspective:calc(var(--cf-card) * 3);touch-action:pan-y;cursor:grab;outline:none}
.cf-frame:active{cursor:grabbing}
.cf-frame:focus-visible{outline:2px solid var(--red);outline-offset:2px}
.cf-track{position:relative;height:calc(var(--cf-card) * 4 / 3);transform-style:preserve-3d;user-select:none;-webkit-user-select:none}
.cf-card{position:absolute;left:50%;top:0;width:var(--cf-card);aspect-ratio:3/4;background:var(--surface);overflow:hidden;will-change:transform;transform:translateX(-50%);clip-path:polygon(0 0,calc(100% - var(--cut-s)) 0,100% var(--cut-s),100% 100%,0 100%)}
.cf-card img{display:block;width:100%;height:100%;object-fit:cover;pointer-events:none}
.cf-ctl{display:flex;align-items:center;justify-content:center;gap:var(--s2);margin-top:var(--s2)}
.cf-btn{width:44px;height:44px;display:grid;place-items:center;background:none;border:1px solid rgba(255,255,255,.3);color:var(--ink);cursor:pointer;transition:border-color var(--t),color var(--t)}
.cf-btn:hover{border-color:var(--red);color:var(--red)}
.cf-btn:focus-visible{outline:2px solid var(--red);outline-offset:2px}
.cf-btn svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2}
.cf-dots{display:flex;gap:0}
.cf-dots button{width:24px;height:44px;background:none;border:0;cursor:pointer;display:grid;place-items:center}
.cf-dots button::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--ink);opacity:.3;transition:opacity var(--t)}
.cf-dots button[aria-current="true"]::before{opacity:1;background:var(--red)}
.cf-dots button:focus-visible{outline:2px solid var(--red);outline-offset:-4px}
.cf-count{min-width:7ch;text-align:center;font-size:var(--t-sm);color:var(--soft);font-variant-numeric:tabular-nums}
.cf.reels{--cf-card:clamp(100px,9.5vw,140px);margin-top:0}
.cf.reels .cf-track{height:calc(var(--cf-card) * 16 / 9)}
.cf.reels .cf-card{aspect-ratio:9/16}
.svc.wide{grid-template-columns:1fr 1fr}
.svc.wide>ul{grid-column:1 / -1}
@media(max-width:600px){.svc.wide{grid-template-columns:1fr}.cf.reels{--cf-card:clamp(110px,34vw,150px)}}
.cf-card{cursor:pointer}
.lb-on{overflow:hidden}
dialog.lb{border:0;padding:var(--s3);background:transparent;max-width:none;max-height:none;width:100%;height:100%;display:none;place-items:center;color:var(--ink)}
dialog.lb[open]{display:grid}
dialog.lb::backdrop{background:rgba(21,21,21,.94)}
dialog.lb img,dialog.lb video{max-width:min(92vw,1100px);max-height:88vh;width:auto;height:auto;object-fit:contain;display:block;background:var(--surface)}
.lb-x{position:absolute;top:var(--s3);right:var(--s3);width:44px;height:44px;display:grid;place-items:center;background:var(--dark);border:1px solid rgba(255,255,255,.4);color:var(--ink);cursor:pointer;transition:border-color var(--t),color var(--t)}
.lb-x:hover{border-color:var(--red);color:var(--red)}
.lb-x:focus-visible{outline:2px solid var(--red);outline-offset:2px}
.lb-x svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2}
.cf:not(.reels) .cf-card img{object-fit:contain}
.cf-h+.cf{margin-top:var(--s2)}
/* carousel headings: a red label with the mark's chamfer, flanked by hairlines, so each carousel reads as its own block */
.cf-h{display:flex;align-items:center;gap:var(--s2);margin-top:var(--s5);font:600 var(--t-base)/1 Barlow,"Barlow Fallback",Inter,sans-serif;letter-spacing:.005em}
.cf-h::before,.cf-h::after{content:"";flex:1 1 0;height:1px;background:rgba(255,255,255,.22)}
.cf-h span{display:block;padding:var(--s1) var(--s3);background:var(--red);color:#151515;clip-path:polygon(0 0,calc(100% - var(--cut-s) / 2) 0,100% calc(var(--cut-s) / 2),100% 100%,0 100%)}
.cf.wide{--cf-card:clamp(190px,23vw,290px)}
.cf.wide .cf-track{height:calc(var(--cf-card) * 9 / 16)}
.cf.wide .cf-card{aspect-ratio:16/9}
.cf.wide .cf-card img{object-fit:cover}
.cf-card.is-video::after{content:"";position:absolute;left:50%;top:50%;width:56px;height:56px;margin:-28px 0 0 -28px;border-radius:50%;background:var(--red) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 6.5v11l9-5.5z' fill='%23151515'/%3E%3C/svg%3E") center/28px no-repeat;pointer-events:none}
dialog.lb video[hidden],dialog.lb img[hidden]{display:none}
.cf-wrap{min-width:0}
.cf-wrap>.cf-h:first-child{margin-top:0}
.svc-link{margin-top:var(--s4)}
/* visual design: intro on top, then the carousels in a grid: two side by side, the longest one full width */
.vgrid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s5) var(--gap);margin-top:var(--s5)}
.vcol{min-width:0}
.vcol>.cf-h:first-child{margin-top:0}
.vfull{grid-column:1 / -1}
.vfull .cf{--cf-card:clamp(160px,17vw,250px)}
@media(max-width:860px){.vgrid{grid-template-columns:1fr}}
/* the two half-width carousels share one track height so their controls line up; shorter cards sit in the middle of it, and the edges fade instead of cutting */
.vgrid{--vh:clamp(190px,20vw,270px)}
.vgrid .vcol:not(.vfull) .cf-track{height:var(--vh)}
.vgrid .vcol:not(.vfull) .cf-card{top:50%;translate:0 -50%}
.vgrid .vcol:not(.vfull) .cf{--cf-card:calc(var(--vh) * .75)}
.vgrid .vcol:not(.vfull) .cf.wide{--cf-card:calc(var(--vh) * 1.35)}
.vgrid .cf-frame{-webkit-mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent);mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent)}
@media(max-width:860px){.vgrid{--vh:clamp(210px,58vw,320px)}}
.cf-dots.many .cf-count{display:none}
.cf-dots.many button{width:20px}
@media(max-width:600px){.cf-dots.many button{display:none}.cf-dots.many .cf-count{display:block}}
.photo img{object-position:50% 6%}
.bio{font-size:var(--t-md);line-height:1.5;color:#fff;max-width:46ch}
/* contact links: label above, value in white, a small arrow as the only hint of a link; red on hover. No boxes, no underline. */
.chips{display:grid;gap:var(--s3);margin-top:var(--s4)}
.chips a{display:inline-flex;align-items:flex-end;gap:var(--s1);justify-self:start;font:600 var(--t-md)/1.2 Barlow,"Barlow Fallback",Inter,sans-serif;color:#fff;white-space:nowrap;transition:color var(--t)}
.chips a::after{content:"";width:16px;height:16px;flex:none;margin-bottom:3px;background:currentColor;opacity:.55;-webkit-mask:var(--arrow) center/contain no-repeat;mask:var(--arrow) center/contain no-repeat;transition:transform var(--t),opacity var(--t)}
.chips svg{display:none}
.chips small{display:block;font:400 var(--t-sm)/1.2 Inter,"Inter Fallback",sans-serif;color:var(--soft);margin-bottom:2px}
.chips a:hover{color:var(--red)}
.chips a:hover::after{opacity:1;transform:translateX(3px)}
.chips a:focus-visible{outline:2px solid #fff;outline-offset:4px}
@media(prefers-reduced-motion:reduce){.chips a:hover::after{transform:none}}
/* home hero tagline: big, uppercase, "Converts." in red with a bar that draws under it */
.hero .row .tag{margin:0;font:600 var(--t-2xl)/.95 Barlow,"Barlow Fallback",Inter,sans-serif;text-transform:uppercase;letter-spacing:-.01em;color:#fff;max-width:none}
.tag span{display:inline-block;animation:rise .7s var(--ease) both}
.tag .t2{position:relative;color:var(--red);animation-delay:.15s}
.tag .t2::after{content:"";position:absolute;left:0;right:0;bottom:-.06em;height:.08em;background:var(--red);transform-origin:left;animation:draw .8s var(--ease) .7s both}
@keyframes draw{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media(prefers-reduced-motion:reduce){.tag span,.tag .t2::after{animation:none}}
/* pre/post production panels: the list reads as numbered steps */
.stage .panel p{font:600 var(--t-md)/1.25 Barlow,"Barlow Fallback",Inter,sans-serif;color:#fff;letter-spacing:-.005em;max-width:28ch}
.stage .panel ul{counter-reset:step;margin-top:var(--s3)}
.stage .panel li{counter-increment:step;display:flex;align-items:baseline;gap:var(--s2);padding:var(--s2) 0;border-top:1px solid rgba(255,255,255,.14);font:600 var(--t-base)/1.2 Barlow,"Barlow Fallback",Inter,sans-serif;color:#fff;letter-spacing:.005em;animation:rise .5s var(--ease) both;transition:transform var(--t),color var(--t)}
.stage .panel li:last-child{border-bottom:1px solid rgba(255,255,255,.14)}
.stage .panel li::before{content:counter(step,decimal-leading-zero);flex:none;min-width:2ch;font:600 var(--t-sm)/1 Barlow,"Barlow Fallback",Inter,sans-serif;color:var(--red);letter-spacing:.04em}
.stage .panel li:nth-child(2){animation-delay:.07s}
.stage .panel li:nth-child(3){animation-delay:.14s}
.stage .panel li:nth-child(4){animation-delay:.21s}
.stage .panel li:hover{transform:translateX(4px)}
@media(prefers-reduced-motion:reduce){.stage .panel li{animation:none}.stage .panel li:hover{transform:none}}
/* "From First Idea to Final Cut." block: intro, then three benefits, each with a red edge */
.split>div>.lead{max-width:42ch}
.perks{list-style:none;margin-top:var(--s4);display:grid;gap:var(--s3)}
.perks li{padding-left:var(--s3);border-left:2px solid var(--red)}
.perks strong{display:block;font:600 var(--t-md)/1.15 Barlow,"Barlow Fallback",Inter,sans-serif;color:#fff;letter-spacing:-.005em}
.perks span{display:block;margin-top:4px;font-size:var(--t-base);line-height:1.4;color:var(--soft);max-width:38ch}
/* selected work: the same red edge as the benefit list; the item shown in the preview keeps it fully red, the others dim */
.wlist>li{padding-left:var(--s2);border-left:2px solid rgba(255,29,29,.35);margin-bottom:var(--s3);transition:border-color var(--t) ease}
.wlist>li:has(.wname.on){border-left-color:var(--red)}
.cf-frame{overscroll-behavior-x:contain}
/* services: a small teaser of work under each service; the full work lives on the Portfolio page */
.teaser{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s2);margin-top:var(--s5)}
.tc{position:relative;display:block;aspect-ratio:3/4;overflow:hidden;background:var(--surface);color:#fff;clip-path:polygon(0 0,calc(100% - var(--cut-s)) 0,100% var(--cut-s),100% 100%,0 100%)}
.t-wide .tc{aspect-ratio:16/9}
.tc img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s var(--ease)}
.t-wide .tc img{scale:1.14}
.tc::before{content:"";position:absolute;inset:0;z-index:1;background:rgba(21,21,21,.25);transition:background var(--t) ease}
.tc:hover img{transform:scale(1.05)}
.tc:hover::before,.tc:focus-visible::before{background:rgba(21,21,21,0)}
.tc:focus-visible{outline:3px solid #fff;outline-offset:-6px}
.tc .tplay{width:48px;height:48px;margin:-24px 0 0 -24px}
.tc .tplay::after{left:19px;top:14px;border-left:15px solid #fff;border-top:10px solid transparent;border-bottom:10px solid transparent}
.tc:hover .tplay{transform:scale(1.08)}
section[id]{scroll-margin-top:76px}
.vfull .cf.reels{--cf-card:clamp(120px,12vw,180px)}
@media(max-width:860px){.teaser{grid-template-columns:repeat(2,1fr)}}
@media(prefers-reduced-motion:reduce){.tc img{transition:none}.tc:hover img{transform:none}}
/* about: one tile per founder, stacked: name and role on top, photo left, bio right */
.founders{display:grid;grid-template-columns:1fr;gap:var(--s6)}
.fcard{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:var(--gap);align-items:start}
.fcard+.fcard{padding-top:var(--s6);border-top:1px solid rgba(255,255,255,.14)}
.fcard h2,.fcard .role{grid-column:1 / -1;margin:0}
.fcard h2{justify-self:start}
.fcard .role{margin:var(--s2) 0 var(--s3);font-size:var(--t-md);line-height:1.25;color:#fff}
.fcard .bio{margin:0;font-size:var(--t-md);line-height:1.5;max-width:46ch}
.photo.mono span{font:600 var(--t-2xl)/1 Barlow,"Barlow Fallback",Inter,sans-serif;letter-spacing:-.03em;color:var(--soft);position:relative}
.photo.mono span::after{content:"";display:block;width:48px;height:3px;margin:var(--s2) auto 0;background:var(--red)}
@media(max-width:860px){.fcard{grid-template-columns:1fr;row-gap:var(--s3)}}
.facts>.founders:only-child{grid-column:1 / -1;max-width:940px}
.photo.g img{object-position:32% 20%}
/* founder names: a short red bar that runs into a hairline across the tile, drawn in when the tile appears */
.fcard h2::after{content:"";display:block;height:3px;margin-top:var(--s1);background:linear-gradient(var(--red),var(--red)) left/56px 100% no-repeat,rgba(255,255,255,.16);transition:background-size .45s var(--ease);transform-origin:left;animation:draw .9s var(--ease) .3s both}
.fcard h2{cursor:default}
.fcard h2:hover::after{background-size:100% 100%}
@media(prefers-reduced-motion:reduce){.fcard h2::after{animation:none;transition:none}}
/* site-wide animated gradient (js/main.js adds html.gbg only when WebGL2 works): sections go see-through so it shows on every page */
.bg-gl{position:fixed;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none;display:block}
html.gbg{background:var(--bg)}
html.gbg body{background:transparent}
html.gbg .alt{background:rgba(30,30,30,.62)}
html.gbg header{background:rgba(30,30,30,.82);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}

/* clients scroller (Portfolio) */
.clients .logos{overflow-x:auto;overflow-y:hidden;scrollbar-width:none;cursor:grab;margin-top:var(--s5);-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.clients .logos::-webkit-scrollbar{display:none}
.clients .logos.drag{cursor:grabbing;user-select:none}
.clients .track{display:flex;width:max-content}
.clients ul{display:flex;align-items:center;list-style:none;margin:0;padding:0}
.clients li{display:flex;align-items:center;justify-content:center;flex:none;height:116px;padding:0 var(--s5);margin-right:var(--s3);background:var(--soft);clip-path:polygon(0 0,calc(100% - 14px) 0,100% 14px,100% 100%,14px 100%,0 calc(100% - 14px))}
.clients li.dk{background:#262626}
.clients li img{height:60px;width:auto;max-width:none;display:block}
.clients li.sq img{height:80px}
/* footer: social */
.fsocial{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--s1) var(--s4);padding:0 0 var(--s4)}
.fsocial span{font-size:var(--t-sm);color:var(--dark)}
.fsocial a{display:inline-flex;align-items:center;gap:10px;font-size:var(--t-base);font-weight:600;padding:var(--s1) 0;text-decoration:underline;text-decoration-color:var(--red-dark);text-underline-offset:4px;transition:color var(--t) ease}
.fsocial svg{width:24px;height:24px;flex:none;transition:transform var(--t) var(--ease)}
.fsocial a:hover svg{transform:translateY(-2px)}
.fsocial a:hover{color:var(--red-dark)}
/* form privacy note */
.privacy{margin:var(--s2) 0 0;font-size:var(--t-sm);line-height:1.5;color:var(--soft);max-width:52ch}

/* mobile fixes */
@media(max-width:600px){.fsocial{display:grid;grid-template-columns:1fr 1fr;gap:0 var(--s3)}.fsocial span{grid-column:1/-1;padding-bottom:var(--s1)}}
@media(max-width:860px){
 .wname .n,.wgroup .gname{font-size:clamp(32px,9vw,48px);line-height:1.02}
 .wname.sub{min-height:44px;display:flex;align-items:center}
 .arrow-link{padding:10px 0}
 .wa.away{transform:translateY(calc(100% + 32px))}
}

/* testimonials (Home): stage + selectable reviewer list */
.rev{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:var(--s3);align-items:stretch}
.rstage{position:relative;min-height:600px;background:var(--soft);color:var(--dark);clip-path:polygon(0 0,calc(100% - 22px) 0,100% 22px,100% 100%,22px 100%,0 calc(100% - 22px));overflow:hidden;--mx:50%;--my:30%}
.rstage::before{content:"";position:absolute;inset:0;background:radial-gradient(520px circle at var(--mx) var(--my),rgba(255,29,29,.16),transparent 60%);pointer-events:none;transition:opacity .3s}
.rstage figure{position:absolute;inset:0;margin:0;padding:var(--s6);display:flex;flex-direction:column;gap:var(--s4)}
.rstage figure:not([hidden]){animation:rrise .55s cubic-bezier(.2,.7,.2,1) both}
.rstage figure[hidden]{display:none}
@keyframes rrise{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
.rstage .qm{width:56px;fill:var(--red);flex:none}
.rstage blockquote{margin:0;flex:1;display:flex;align-items:center}
.rstage blockquote p{margin:0;font:600 clamp(26px,3vw,44px)/1.14 Barlow,"Barlow Fallback",Inter,sans-serif;letter-spacing:-.012em;max-width:22ch;max-width:28ch;text-wrap:balance}
.rstage figcaption{display:flex;align-items:center;gap:var(--s3);font-size:var(--t-sm)}
.rstage figcaption div{display:flex;flex-direction:column;gap:2px}
.rstage figcaption strong{font-size:var(--t-base)}
.rstage figcaption span{opacity:.65}
.stars{display:flex;gap:4px}
.stars svg,.rs svg{width:18px;height:18px;fill:var(--red)}
.stars svg.off,.rs svg.off{fill:currentColor;opacity:.25}
.av{width:48px;height:48px;border-radius:50%;object-fit:cover;flex:none;display:grid;place-items:center;font:700 20px/1 Inter,sans-serif;color:#fff}
.av.big{width:64px;height:64px}
.av.init{background:var(--red)}
.rlist{display:flex;flex-direction:column;gap:var(--s2)}
.rlist button{--mx:50%;--my:50%;position:relative;flex:none;min-height:84px;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:var(--s2);align-items:center;text-align:left;padding:var(--s2) var(--s3);background:var(--bg2);color:#fff;border:0;cursor:pointer;overflow:hidden;font:inherit;clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,12px 100%,0 calc(100% - 12px));transition:transform .35s cubic-bezier(.2,.7,.2,1),background .3s}
.rlist button::before{content:"";position:absolute;inset:0;background:radial-gradient(220px circle at var(--mx) var(--my),rgba(255,29,29,.28),transparent 65%);opacity:0;transition:opacity .3s}
.rlist button::after{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--red);transform:scaleY(0);transform-origin:top;transition:transform .4s cubic-bezier(.2,.7,.2,1)}
.rlist button:hover,.rlist button:focus-visible{transform:translateX(10px)}
.rlist button:hover::before{opacity:1}
.rlist button[aria-selected=true]{background:#303030;transform:translateX(10px)}
.rlist button[aria-selected=true]::after{transform:scaleY(1)}
.rlist button:focus-visible{outline:2px solid var(--red);outline-offset:-2px}
.rlist .av{grid-row:1/3;transition:box-shadow .3s,transform .35s}
.rlist button:hover .av,.rlist button[aria-selected=true] .av{box-shadow:0 0 0 3px var(--red);transform:scale(1.06)}
.rlist .rn{display:flex;flex-direction:column;min-width:0;position:relative}
.rlist .rn strong{font-size:var(--t-sm)}
.rlist .rn em{font-style:normal;font-size:14px;color:#cfcfcf;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rlist .rs{position:relative;display:flex;gap:2px;grid-column:2;margin-top:4px}
.rlist .rs svg{width:12px;height:12px}
@media(max-width:860px){
 .rev{grid-template-columns:1fr}
 .rstage{min-height:0}.rstage figure{position:relative;inset:auto;padding:var(--s4);min-height:380px}
 .rlist{flex-direction:row;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding-bottom:4px}
 .rlist::-webkit-scrollbar{display:none}
 .rlist button{flex:0 0 78%;scroll-snap-align:start;min-height:76px}
 .rlist button:hover,.rlist button[aria-selected=true]{transform:none}
}
@media(prefers-reduced-motion:reduce){.rstage figure:not([hidden]){animation:none}.rlist button,.rlist .av{transition:none}}
