@property --night{syntax:"<number>";inherits:true;initial-value:0}
@property --sky{syntax:"<color>";inherits:true;initial-value:#d8e7f3}
@property --city-col{syntax:"<color>";inherits:true;initial-value:#b6c0b6}
@property --road-col{syntax:"<color>";inherits:true;initial-value:#a9afa0}
@property --dash-col{syntax:"<color>";inherits:true;initial-value:#eef0e6}
@property --pole-col{syntax:"<color>";inherits:true;initial-value:#9aa18c}
/* One timeline drives the whole scene: day -> sunset -> night -> sunrise -> day. Registering
   the properties is what lets them interpolate; unregistered custom properties would jump. */
@keyframes day-night{
  0%,8%{--night:0;--sky:#d8e7f3;--city-col:#b6c0b6;--road-col:#a9afa0;--dash-col:#eef0e6;--pole-col:#9aa18c}
  26%{--night:.42;--sky:#f6c79c;--city-col:#c2a086;--road-col:#a98f7c;--dash-col:#f8e7d6;--pole-col:#8f8073}
  42%,58%{--night:1;--sky:#0e131b;--city-col:#1c2230;--road-col:#171c22;--dash-col:#6d7559;--pole-col:#2b3327}
  74%{--night:.42;--sky:#f0c2a8;--city-col:#bf9f8a;--road-col:#a79080;--dash-col:#f5e4d5;--pole-col:#8d7f74}
  92%,100%{--night:0;--sky:#d8e7f3;--city-col:#b6c0b6;--road-col:#a9afa0;--dash-col:#eef0e6;--pole-col:#9aa18c}
}
/* Tokens. Sections that sit on ink re-declare the muted/line/accent trio via .on-ink. */
:root{--ink:#141511;--paper:#ffffff;--bone:#eef0e6;--lime:#c1ff00;--accent:#527300;--muted:#5a5c53;--muted-head:#69705f;--line:rgba(20,21,17,.2);--ease-out:cubic-bezier(.23,1,.32,1)}
.on-ink{background:var(--ink);color:var(--paper);--accent:var(--lime);--muted:#a0a698;--muted-head:#838c76;--line:rgba(242,243,237,.22)}

*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:94px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Manrope,Arial,sans-serif;-webkit-font-smoothing:antialiased}body.menu-open{overflow:hidden}a{color:inherit;text-decoration:none}button{font:inherit}a,button{-webkit-tap-highlight-color:transparent;touch-action:manipulation}::selection{background:var(--lime);color:var(--ink)}:focus-visible{outline:2px solid currentColor;outline-offset:7px}h1,h2,h3,p{margin:0}
/* Arrow icons: drawn, not typed, so no font can substitute a colour emoji. */
.ico{width:1em;height:1em;flex:none;display:inline-block;vertical-align:-.13em;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.contact-arrow .ico,.reel-end-arrow .ico{stroke-width:1.5}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip-link{position:fixed;top:-80px;left:24px;z-index:100;background:var(--paper);color:var(--ink);padding:16px}.skip-link:focus{top:12px}

/* Header + navigation */
.header{height:92px;padding:0 3.1%;display:flex;justify-content:space-between;align-items:center;position:fixed;inset:0 0 auto;z-index:20}
/* The bar stays transparent, so the header flips its own palette when an ink band
   scrolls underneath it. JS toggles the class from the scroll frame. */
.header--light{color:var(--paper);--accent:var(--lime)}
.header--light .nav-cta,.header--light .menu-toggle{border-color:rgba(242,243,237,.38)}
.logo{font-family:Arial,sans-serif;font-size:49px;font-weight:900;letter-spacing:-5px;display:inline-flex;align-items:flex-start;position:relative;line-height:1}.logo span{font-family:Manrope,sans-serif;font-size:13px;letter-spacing:0;margin:3px 0 0 8px}.logo i{position:absolute;width:7px;height:7px;background:var(--lime);bottom:4px;right:0}
.header nav{display:flex;gap:38px;align-items:center;font-size:13px;font-weight:600}
.nav-cta{border:1px solid #52534b;padding:12px 17px;border-radius:3px;display:flex;gap:34px;align-items:center}.nav-cta span{font-size:22px;line-height:1}
.menu-toggle{display:none;background:none;border:1px solid #52534b;border-radius:3px;color:inherit;width:46px;height:42px;padding:0;align-items:center;justify-content:center;flex-direction:column;gap:6px;cursor:pointer}
.menu-toggle i{display:block;width:19px;height:2px;background:currentColor;transition:transform 220ms var(--ease-out),opacity 160ms linear}
.menu-toggle[aria-expanded=true] i:first-of-type{transform:translateY(4px) rotate(45deg)}.menu-toggle[aria-expanded=true] i:last-of-type{transform:translateY(-4px) rotate(-45deg)}
.mobile-menu{position:fixed;inset:0;z-index:19;background:var(--ink);color:var(--paper);padding:104px 6% 40px;display:flex;flex-direction:column;justify-content:space-between;animation:menu-in 260ms var(--ease-out)}
.mobile-menu[hidden]{display:none}
.mobile-menu ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.mobile-menu li{border-bottom:1px solid rgba(242,243,237,.22)}
.mobile-menu li a{display:flex;justify-content:space-between;align-items:baseline;padding:22px 0;font-family:'Barlow Condensed',Impact,sans-serif;font-size:min(14vw,58px);font-weight:700;letter-spacing:-.02em;line-height:1}
.mobile-menu li a span{font-family:Manrope,sans-serif;font-size:11px;font-weight:700;letter-spacing:.1em;color:var(--lime)}
.mobile-menu li:last-child a{color:var(--lime)}
.mobile-menu-foot{display:flex;justify-content:space-between;align-items:center;font-size:10px;letter-spacing:.09em;font-weight:600;padding-top:28px}
/* The header floats above the open panel, so it has to flip to the panel's palette. */
body.menu-open .header{color:var(--paper)}
body.menu-open .menu-toggle{border-color:rgba(242,243,237,.38)}
@keyframes menu-in{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}

/* Hero: a sticky stage the vector vehicle drives out of. Only .vehicle moves or scales. */
.hero{height:360svh;position:relative}
.hero-stage{position:sticky;top:0;height:100svh;min-height:580px;overflow:hidden;background:var(--paper)}
.vehicle-viewport{position:absolute;inset:0;overflow:hidden;z-index:3;pointer-events:none}
.vehicle{position:absolute;left:0;top:0;width:1400px;height:650px;transform-origin:0 0;will-change:transform}
.vehicle-drawing{position:absolute;inset:0;width:1400px;height:650px;overflow:visible}
.wheel{transform-box:view-box;transform-origin:0 0;will-change:transform}
.billboard{position:absolute;left:36px;top:66px;width:978px;height:454px;background:var(--lime);color:var(--ink);border-radius:8px;overflow:hidden;z-index:3}
.billboard h1{font-family:'Barlow Condensed',Impact,sans-serif;font-size:1em;font-weight:800;line-height:.98;letter-spacing:-.035em;white-space:nowrap}
.screen-art{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);text-align:center;display:flex;flex-direction:column;align-items:center;gap:.14em}
.screen-kicker{font-size:.055em;font-weight:800;letter-spacing:.11em;white-space:nowrap}
.screen-art p{font-size:.055em;line-height:1.5;font-weight:600;margin-top:.1em}
.led-texture{position:absolute;inset:0;pointer-events:none}
.led-texture::before,.led-texture::after{content:"";position:absolute;inset:0;background-size:5px 5px}
.led-texture::before{background-image:radial-gradient(#141511 .8px,transparent 1.2px);mix-blend-mode:multiply;opacity:.16}
.led-texture::after{background-image:radial-gradient(#5f6554 .8px,transparent 1.2px);mix-blend-mode:screen;opacity:.45}
/* A quiet, continuous ripple lives inside the LED surface and travels with the vehicle. */
.led-wave{position:absolute;inset:0;overflow:hidden;pointer-events:none;opacity:.2}
.led-wave svg{display:block;width:1920px;height:480px;max-width:none;animation:led-ripple-drift 16s linear infinite;will-change:transform}
@keyframes led-ripple-drift{from{transform:translateX(0)}to{transform:translateX(-480px)}}
.reveal-title{position:absolute;top:9%;left:0;width:100%;text-align:center;opacity:0;z-index:2}
.reveal-title p{font-size:clamp(35px,4.7vw,70px);font-weight:500;line-height:1.06;letter-spacing:-.05em;margin-top:20px}
.reveal-title p em{font-style:normal;color:var(--muted-head)}
.eyebrow{font-size:11px;letter-spacing:.12em;color:var(--accent);font-weight:600}
.skyline{position:absolute;left:0;right:0;height:min(104svh,940px);overflow:hidden;opacity:0;pointer-events:none}
.skyline svg{display:block;width:100%;height:100%}
.road{position:absolute;left:0;right:0;bottom:0;background:#5c6251;border-top:1px solid #7a8070;opacity:0}
.road-dashes{position:absolute;top:22px;left:0;right:0;height:2px;background:repeating-linear-gradient(to right,#e8eadd 0 55px,transparent 55px 110px)}
.truck-caption{position:absolute;left:7%;right:7%;bottom:16%;display:flex;justify-content:space-between;opacity:0;color:#e8eadd;font-size:11px;letter-spacing:.06em}
.truck-caption span:first-child{color:var(--lime)}
.exit-message{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;opacity:0;visibility:hidden;z-index:4}
.exit-message>p{font-family:'Barlow Condensed',Impact,sans-serif;font-weight:700;font-size:clamp(85px,13vw,190px);line-height:.97;letter-spacing:-.025em;margin:26px 0}
.exit-message>p>span{color:var(--ink);background:var(--lime);padding:0 .08em;display:inline-block}
.exit-message>a{display:flex;gap:50px;font-size:14px;align-items:center;padding:15px 0;border-bottom:1px solid var(--line)}.exit-message>a>span{font-size:23px}
.hero-bottom{position:absolute;bottom:30px;left:3.1%;right:3.1%;z-index:5;display:flex;align-items:center;justify-content:space-between;font-size:10px;letter-spacing:.09em;font-weight:600}
.scroll-cue{display:flex;align-items:center;gap:18px}.scroll-cue span{font-size:23px;line-height:1}
.hero-index{color:var(--muted-head)}
.scroll-track{position:absolute;bottom:0;left:0;right:0;z-index:6;height:2px;background:rgba(232,234,221,.24)}
.scroll-track span{display:block;height:100%;background:var(--lime);transform-origin:left;transform:scaleX(0)}

/* Section chrome. The lime marker echoes the logo dot and flags each new chapter. */
.section-pad{padding:78px 5%}
.section-label{display:flex;justify-content:space-between;gap:20px;font-size:11px;letter-spacing:.07em;font-weight:700}
.section-label>span:first-child{display:inline-flex;align-items:center;gap:11px}
.section-label>span:first-child::before{content:"";width:7px;height:7px;background:var(--lime);flex:none}
h2{font-size:clamp(52px,6.7vw,105px);font-weight:500;letter-spacing:-.065em;line-height:1.04}
h2 span{color:var(--muted-head)}
.text-link{display:flex;justify-content:space-between;padding:17px 0;border-bottom:1px solid var(--line);font-size:14px;margin-top:19px;font-weight:700}.text-link span{font-size:22px}

/* 01 — Intro, on bone */
.intro{background:var(--bone);padding-bottom:84px}
.intro-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:10%;padding:75px 0 80px}
.intro-copy{padding-top:9px;max-width:430px}
.intro-copy>p:first-child{font-size:25px;line-height:1.45;letter-spacing:-.035em;margin-bottom:23px}
.intro-copy>p:nth-child(2){color:var(--muted);font-size:16px;line-height:1.85}
.principles{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);padding-top:31px}
.principles>div{padding:0 30px;border-right:1px solid var(--line)}.principles>div:first-child{padding-left:0}.principles>div:last-child{border-right:0}
.principles h3{font-size:25px;font-weight:500;letter-spacing:-.045em;margin-bottom:12px}
.principles p{font-size:14px;color:var(--muted);line-height:1.7}

/* 02 — Experience, on ink so the street frame reads as a lit screen in the dark */
.experience-heading{padding-bottom:58px}
.experience-heading h2{margin-top:64px;font-size:clamp(45px,5.8vw,89px)}
.experience-foot{margin:0 5%;padding:27px 0 69px;display:flex;justify-content:space-between;align-items:start}
.experience-foot>span{font-size:11px;letter-spacing:.08em}
.experience-foot p{font-size:14px;color:var(--muted);line-height:1.8}

/* 03 — Studio: the hero's vehicle, with a screen the visitor writes.
   The screen is a query container, so every value on the creative scales with the
   screen itself rather than the viewport, and needs no measuring or resize handler. */
.studio{position:relative;background:var(--bone);padding:0 0 clamp(34px,5svh,54px);animation:day-night 15.2s ease-in-out infinite}
.studio-heading{position:absolute;z-index:2;left:5%;right:5%;top:clamp(30px,6svh,70px);margin:0;pointer-events:none}
.studio-heading h2{color:color-mix(in srgb,var(--ink),#eef0e6 calc(clamp(0,(var(--night,0) - .70) * 100,1) * 100%));transition:color 500ms linear}
.studio-heading h2 span{color:color-mix(in srgb,var(--muted-head),#9aa288 calc(clamp(0,(var(--night,0) - .70) * 100,1) * 100%))}
.studio-heading h2{font-size:clamp(48px,4.2vw,64px)}
.studio-stage{position:relative;width:auto;max-width:none;margin:0}
/* The scene is 1400x780 of viewBox space: the vehicle occupies the top 650, the road the rest.
   --night runs 0..1 from the slider and every day/night value is mixed against it. */
.studio-scene{--sh:clamp(420px,66svh,660px);position:relative;height:var(--sh);overflow:hidden;background:var(--sky)}
.studio-city{position:absolute;left:0;right:0;bottom:19.6%;height:48%;overflow:hidden;color:var(--city-col)}
.studio-city-track{display:block;height:100%;width:auto;animation:city-drift 46s linear infinite}
/* Street lamps stand on the kerb line and light up warm as --night rises. */
.studio-lamps{position:absolute;left:0;right:0;bottom:19.6%;height:44%;overflow:hidden;color:var(--pole-col)}
.studio-lamps-track{display:block;height:100%;width:auto;overflow:visible;animation:lamp-drift 9s linear infinite}
.studio-lamp-glow{opacity:var(--night,0)}
/* Gulls cross the sky on their own long loops, recessive enough to stay scenery. */
.studio-gulls{position:absolute;left:0;right:0;top:0;height:34%;overflow:hidden;pointer-events:none;color:var(--pole-col)}
.gull{position:absolute;width:clamp(22px,2.4vw,34px);height:auto;opacity:.7}
.gull-1{top:24%;animation:gull-cross 34s linear infinite}
.gull-2{top:46%;width:clamp(15px,1.7vw,24px);animation:gull-cross 46s linear infinite -14s}
.gull-3{top:13%;width:clamp(12px,1.3vw,19px);animation:gull-cross 58s linear infinite -31s}
@keyframes gull-cross{from{transform:translateX(-60px)}to{transform:translateX(calc(100vw + 60px))}}
.studio-road{position:absolute;left:0;right:0;bottom:0;height:19.6%;overflow:hidden;background:var(--road-col)}
.studio-road i{position:absolute;left:0;top:42%;width:200%;height:5px;background:repeating-linear-gradient(90deg,var(--dash-col) 0 62px,transparent 62px 124px);animation:road-drift 1.15s linear infinite}
/* Vehicle layers: the body rides on its suspension, the wheels stay planted and spin. */
.studio-rig,.studio-screen-layer,.studio-wheels{position:absolute;left:0;right:0;bottom:20%;margin-inline:auto;width:min(96%,calc(var(--sh) * .9477));height:auto;aspect-ratio:1400/650;transform:translateY(3.54%)}
.studio-rig,.studio-screen-layer{animation:rig-bob 4.6s ease-in-out infinite}
.studio-truck{display:block;width:100%;height:100%}
.studio-truck,.studio-wheels{filter:brightness(calc(1 - var(--night,0) * .42))}
.studio-wheel{transform-box:view-box;transform-origin:0 0;animation:wheel-spin 1.15s linear infinite}
@keyframes city-drift{to{transform:translateX(-16.6667%)}}
@keyframes lamp-drift{to{transform:translateX(-16.6667%)}}
@keyframes road-drift{to{transform:translateX(-124px)}}
@keyframes wheel-spin{to{transform:rotate(360deg)}}
@keyframes rig-bob{0%,100%{transform:translateY(3.54%)}50%{transform:translateY(2.39%)}}
/* Tracks the billboard rect inside the SVG viewBox: 36,66 978x454 of 1400x650. */
.studio-screen{position:absolute;left:2.571%;top:10.154%;width:69.857%;height:69.846%;container-type:inline-size;background:var(--lime);border-radius:6px;overflow:hidden;box-shadow:0 0 calc(var(--night,0) * 80px) calc(var(--night,0) * 14px) rgba(193,255,0,calc(var(--night,0) * .5))}
.led-creative{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:7.5cqw 5cqw}
.led-head{font-family:'Barlow Condensed',Impact,sans-serif;font-weight:800;line-height:.94;letter-spacing:-.035em;text-align:center;color:var(--ink)}
.led-head span{display:block;white-space:nowrap}
.led-mark{position:absolute;left:4.4cqw;top:3cqw;font-family:Arial,sans-serif;font-size:3.9cqw;font-weight:900;letter-spacing:-.1em;line-height:1;color:var(--ink)}
.led-mark span{font-family:Manrope,sans-serif;font-size:.26em;letter-spacing:0;vertical-align:top;margin-left:.5em}
.led-foot{position:absolute;left:4.4cqw;right:4.4cqw;bottom:3cqw;display:flex;justify-content:flex-end;gap:2cqw;font-size:1.8cqw;font-weight:800;letter-spacing:.14em;color:rgba(20,21,17,.55)}
@container (max-width:420px){.led-foot{display:none}.led-mark{font-size:5.4cqw;top:3.6cqw}}
.studio-screen .led-wave{color:var(--accent)}
.studio-screen .led-texture::before,.studio-screen .led-texture::after{background-size:.8cqw .8cqw}
.studio-screen .led-texture::before{background-image:radial-gradient(#141511 .13cqw,transparent .2cqw)}
.studio-screen .led-texture::after{background-image:radial-gradient(#5f6554 .13cqw,transparent .2cqw)}
/* Controls sit under the vehicle: the message first, then the creative and the way out.
   The field is set in the display face so typing reads as the screen it feeds. */
.studio-ctrl{margin-top:clamp(20px,3.4svh,30px);padding:0 5%}
.studio-write{width:100%;padding:14px 18px;border:1px solid var(--line);border-radius:4px;background:none;color:inherit;font-family:'Barlow Condensed',Impact,sans-serif;font-weight:800;font-size:clamp(28px,3.2vw,46px);line-height:1.06;letter-spacing:-.025em;text-transform:uppercase}
.studio-write::placeholder{color:var(--muted-head)}
.studio-write:focus{border-color:var(--ink);outline:none}
.studio-write:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.studio-actions{display:flex;justify-content:flex-end;align-items:center;gap:24px;flex-wrap:wrap;margin-top:30px}
.studio-go{display:inline-flex;align-items:center;gap:28px;padding:16px 22px;border-radius:3px;background:var(--ink);color:var(--paper);font-size:14px;font-weight:700;white-space:nowrap}
.studio-go span{font-size:21px;line-height:1}

/* Reels carousel — horizontal scroll-snap strip of muted vertical campaign clips */
.reels{margin-top:6px}
.reels-track{list-style:none;margin:0;padding:0 5% 6px;display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-left:5%;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.reels-track::-webkit-scrollbar{display:none}
.reel{position:relative;flex:0 0 auto;width:clamp(196px,17.5vw,268px);aspect-ratio:9/16;border-radius:10px;overflow:hidden;scroll-snap-align:start;background:#0a0b08 center/cover no-repeat}
.reel video{display:block;width:100%;height:100%;object-fit:cover}
.reel-tag{position:absolute;left:0;right:0;bottom:0;padding:40px 14px 14px;background:linear-gradient(to top,rgba(0,0,0,.78),rgba(0,0,0,.38) 46%,transparent);font-size:13px;font-weight:800;letter-spacing:.01em;color:var(--paper)}
.reel-end a{display:flex;flex-direction:column;justify-content:space-between;width:100%;height:100%;padding:20px;background:var(--lime);color:var(--ink)}
.reel-end-arrow{font-family:Arial,sans-serif;font-size:58px;line-height:1}
.reel-end-handle{text-align:center;font-size:13px;font-weight:800;letter-spacing:.01em}
.reel-end-text{font-size:12px;font-weight:700;letter-spacing:.08em}
.reel-end-text strong{display:block;font-family:'Barlow Condensed',Impact,sans-serif;font-size:58px;font-weight:700;letter-spacing:-.03em;line-height:.9;margin-bottom:6px}

/* 04 — Process, back on paper */
.process{background:var(--paper)}
.process-heading{display:flex;justify-content:space-between;align-items:end;margin:62px 0}
.process-heading>p{font-size:17px;line-height:1.7;padding-right:10%;color:var(--muted)}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:40px}
.steps article{border-top:1px solid var(--line);padding-top:23px}
.step-number{font-size:13px;color:var(--muted-head);display:block;margin-bottom:40px}
.steps h3{font-size:23px;font-weight:500;letter-spacing:-.045em;margin-bottom:14px}
.steps p{font-size:15px;line-height:1.8;color:var(--muted);max-width:320px}

/* 05 — Contact, on ink to close the page the way the hero opened it */
.contact{padding-bottom:25px}
.contact-link{display:block;position:relative;margin-top:62px}
.contact h2{font-family:'Barlow Condensed',Impact,sans-serif;font-size:clamp(70px,12.8vw,200px);font-weight:700;line-height:.88;letter-spacing:-.025em}
.contact-arrow{position:absolute;right:1%;top:-15px;font-size:clamp(90px,14vw,220px);font-family:Arial,sans-serif;line-height:1;color:var(--lime)}
.contact-action{margin-top:35px;padding:22px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;justify-content:space-between;font-size:16px}
.contact-action>span{color:var(--lime);font-size:14px}
footer{display:flex;align-items:center;justify-content:space-between;padding-top:45px;gap:20px}
footer .logo{font-size:40px}
footer>span,footer>a:not(.logo){font-size:10px;letter-spacing:.06em}
footer .copyright{color:var(--muted)}
/* Build credit, pinned to the far right of the footer row */
.weis-credit{margin-left:auto;display:flex;flex-direction:column;align-items:flex-end;gap:3px;color:rgba(242,243,237,.6)}
.weis-credit-main>img{display:block;width:auto;height:13px;object-fit:contain;opacity:.8}
.weis-credit-name{font-size:8px;font-style:italic;font-weight:300;letter-spacing:.2em}

.reveal{opacity:0;transform:translateY(22px);transition:opacity 650ms var(--ease-out),transform 650ms var(--ease-out)}
.reveal.visible{opacity:1;transform:translateY(0)}

@media(hover:hover) and (pointer:fine){
  .nav-cta{transition:background 180ms ease,color 180ms ease,border-color 180ms ease}
  .nav-cta:hover{background:var(--lime);border-color:var(--lime);color:var(--ink)}
  .header nav>a:not(.nav-cta):hover{color:var(--accent)}
  .text-link span,.contact-arrow{transition:transform 220ms var(--ease-out)}
  .text-link:hover span{transform:translate(3px,-3px)}
  .contact-link:hover .contact-arrow{transform:translate(9px,-9px)}
  .studio-go{transition:background 180ms ease,border-color 180ms ease,color 180ms ease}
  .studio-go:hover{background:var(--accent)}
  .reel-end a{transition:background 180ms ease}
  .reel-end a:hover{background:var(--paper)}
  footer>a:hover{color:var(--accent)}
  .weis-credit,.weis-credit-main>img{transition:color 180ms ease,opacity 180ms ease}
  .weis-credit:hover{color:var(--paper)}
  .weis-credit:hover .weis-credit-main>img{opacity:1}
}

@media(max-width:760px){
  .header{height:78px;padding:0 6%}.header .logo{font-size:43px}
  .header nav{display:none}.menu-toggle{display:flex}
  .hero-bottom{left:6%;right:6%;bottom:24px;font-size:8px}
  .hero-bottom>span:first-child{max-width:110px;line-height:1.7}
  .hero-index{display:none}
  .scroll-cue{gap:12px;max-width:160px;text-align:right;font-size:8px;line-height:1.7}
  .reveal-title{top:18%}.reveal-title p{font-size:43px}.eyebrow{font-size:9px}
  .truck-caption{left:6%;right:6%;bottom:17%;font-size:8px;gap:20px;line-height:1.7}
  .truck-caption>span{max-width:47%}.truck-caption>span:last-child{text-align:right}
  .exit-message>p{font-size:23vw}
  .screen-kicker,.screen-art p{font-size:.14em}.screen-art{gap:.3em}
  .section-pad{padding:50px 6%}
  .section-label{font-size:9px;letter-spacing:.03em}
  .section-label>span:first-child{gap:8px}
  .section-label>span:last-child{text-align:right;max-width:48%}
  .intro-grid{grid-template-columns:1fr;gap:32px;padding:45px 0}
  h2{font-size:59px}
  .intro-copy{max-width:none;padding:0}.intro-copy>p:first-child{font-size:23px}.intro-copy>p:nth-child(2){font-size:15px}
  .principles{grid-template-columns:1fr;padding:0}
  .principles>div,.principles>div:first-child{padding:24px 0;border-right:0;border-bottom:1px solid var(--line)}
  .principles>div:last-child{border-bottom:0;padding-bottom:0}
  .principles h3{font-size:24px;margin-bottom:7px}.principles p{font-size:14px}
  .experience-heading{padding-bottom:35px}
  .reels-track{padding:0 6% 6px;gap:10px;scroll-padding-left:6%}
  .reel{width:min(62vw,240px)}
  .reel-end-arrow,.reel-end-text strong{font-size:48px}.experience-heading h2{margin-top:40px;font-size:44px}
  .experience-foot{margin:0 6%;padding:23px 0 45px;display:block}
  .experience-foot>span{font-size:9px}.experience-foot p{margin-top:16px;font-size:13px}
  .studio{padding:0 0 40px}
  .studio-ctrl{padding:0 6%}
  .studio-heading{left:6%;right:6%;top:34px}
  .studio-scene{--sh:clamp(390px,58svh,500px)}
  .studio-ctrl{margin-top:30px}
  .studio-actions{margin-top:24px;gap:18px}
  .studio-go{flex:1;justify-content:space-between;gap:20px;padding:15px 18px}
  .process-heading{margin:43px 0 32px;display:block}
  .process-heading h2{font-size:42px}.process-heading>p{margin-top:23px;font-size:15px}
  .steps{grid-template-columns:1fr;gap:28px}
  .steps article{position:relative;padding:24px 0 0 50px}
  .step-number{position:absolute;left:0;top:28px;margin:0}
  .steps h3{font-size:23px;margin-bottom:8px}.steps p{font-size:14px;max-width:100%}
  .contact{padding-bottom:27px}.contact-link{margin-top:48px}
  .contact h2{font-size:16vw}.contact-arrow{font-size:65px;right:0;top:-6px}
  .contact-action{margin-top:27px;gap:15px;align-items:center;font-size:14px}
  .contact-action>span{font-size:11px;max-width:140px;text-align:right}
  .contact footer{flex-wrap:wrap;padding-top:32px;gap:28px}
  footer .logo{flex-basis:auto;font-size:38px}
  footer>span:nth-child(2){order:4;width:100%;font-size:8px}
  footer .copyright{order:3}footer>a:not(.logo){font-size:11px}
  .weis-credit{order:5;width:100%;margin-left:0}
}

@media(prefers-reduced-motion:reduce){
  .studio-city-track,.studio-lamps-track,.studio-road i,.studio-wheel,.studio-rig,.studio-screen-layer,.gull{animation:none}
  .studio{animation:none}
  html{scroll-behavior:auto}
  .hero,.hero-stage{height:100svh;min-height:650px}
  .vehicle,.wheel{will-change:auto}
  .vehicle-viewport{clip-path:none!important}
  .led-wave svg{animation:none;will-change:auto}
  .mobile-menu{animation:none}
  .reveal{opacity:1;transform:none;transition:none}
  .contact-arrow,.text-link span,.menu-toggle i{transition:none}
}
