@font-face{font-family:Archivo;font-style:normal;font-weight:400 600;font-display:swap;src:url(/assets/fonts/archivo-var.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces;font-style:italic;font-weight:300 400;font-display:swap;src:url(/assets/fonts/fraunces-italic-var.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces;font-style:normal;font-weight:300 400;font-display:swap;src:url(/assets/fonts/fraunces-var.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/plexmono-400.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/plexmono-500.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg-base: #0C0F16;--bg-surface: #161C28;--bg-elevated: #222B3D;--blue: #5386E4;--blue-sky: #8FB4F2;--navy: #345995;--cyan: #2DD4DD;--terra: #D98253;--white: #EDF1F8;--white-70: rgba(237, 241, 248, .7);--white-40: rgba(237, 241, 248, .4);--gray: #6B7689;--line: rgba(237, 241, 248, .1);--line-strong: rgba(237, 241, 248, .18);--f-display: "Fraunces", Georgia, serif;--f-body: "Archivo", system-ui, sans-serif;--f-mono: "IBM Plex Mono", ui-monospace, monospace;--dur-fast: .15s;--dur-base: .25s;--dur-slow: .4s;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--maxw: 1320px;--gutter: clamp(1.25rem, 4vw, 4rem)}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body{background:var(--bg-base);color:var(--white);font-family:var(--f-body);font-size:16px;line-height:1.6;overflow-x:hidden}img,video{display:block;max-width:100%}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer;border:none;background:none;color:inherit}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.kicker{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--cyan);font-weight:500}.display{font-family:var(--f-display);font-weight:300;line-height:1.02;letter-spacing:-.02em}h1,h2,h3{font-family:var(--f-display);font-weight:300;line-height:1.05;letter-spacing:-.02em}.lead{font-size:clamp(1.05rem,1.6vw,1.35rem);color:var(--white-70);line-height:1.55;max-width:52ch}em{font-style:italic;color:var(--blue-sky)}.wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter)}.section{padding-block:clamp(5rem,11vh,9rem);position:relative}.section-head{display:flex;flex-direction:column;gap:1rem;margin-bottom:clamp(2.5rem,5vw,4.5rem)}.section-head h2{font-size:clamp(2.2rem,5.5vw,4.2rem)}.btn{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--f-mono);font-size:.82rem;letter-spacing:.06em;padding:.95rem 1.6rem;border-radius:100px;transition:transform var(--dur-base) var(--ease-out),background var(--dur-base),color var(--dur-base)}.btn-primary{background:var(--blue);color:#fff}.btn-primary:hover{background:var(--blue-sky);color:var(--bg-base);transform:translateY(-2px)}.btn-ghost{border:1px solid var(--line-strong);color:var(--white)}.btn-ghost:hover{border-color:var(--blue);color:var(--blue-sky);transform:translateY(-2px)}.btn .arrow{transition:transform var(--dur-base) var(--ease-out)}.btn:hover .arrow{transform:translate(4px)}.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s var(--ease-out),transform .8s var(--ease-out)}.reveal.in{opacity:1;transform:none}.showreel{height:240svh;position:relative}.sr-sticky{position:sticky;top:0;height:100svh;display:grid;place-items:center;overflow:hidden}.sr-frame{position:relative;width:min(1180px,88vw);aspect-ratio:16/9;border-radius:16px;overflow:hidden;background:#000;border:1px solid var(--line-strong);will-change:transform,width,border-radius}.sr-frame video{width:100%;height:100%;object-fit:cover}.sr-frame:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(90% 70% at 22% 88%,rgba(6,8,12,.85),transparent 60%)}.sr-label{position:absolute;left:clamp(1.2rem,4vw,3.2rem);bottom:max(clamp(1.2rem,4vw,3.2rem),calc(1.2rem + env(safe-area-inset-bottom)));z-index:2;display:flex;flex-direction:column;gap:.6rem;pointer-events:none;max-width:32ch;text-shadow:0 2px 28px rgba(0,0,0,.9)}.sr-label .kicker{color:var(--cyan)}.sr-label h2{font-size:clamp(1.9rem,4.4vw,3.6rem)}.sr-desc{font-family:var(--f-body);font-size:clamp(.9rem,1.1vw,1.05rem);color:var(--white)}.ltr{display:inline-block;will-change:transform,opacity}@media (max-width: 760px){.showreel{height:200svh}.sr-frame{aspect-ratio:9/16;width:min(440px,82vw)}.sr-label h2{font-size:2rem}#audiovisual .sr-label h2 em{display:block}}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}html{scroll-behavior:auto}}.scroll-cue{position:fixed;left:50%;bottom:calc(1.5rem + env(safe-area-inset-bottom));transform:translate(-50%);z-index:60;display:flex;flex-direction:column;align-items:center;gap:.45rem;opacity:0;pointer-events:none;transition:opacity .6s ease;cursor:pointer}.scroll-cue.show{opacity:1;pointer-events:auto}.scroll-cue.sc-suppressed{opacity:0!important;pointer-events:none!important}.scroll-cue .sc-label{font-family:var(--f-mono);font-size:.56rem;letter-spacing:.3em;text-transform:uppercase;color:#edf1f88c}.scroll-cue svg{width:22px;height:22px;color:var(--cyan);animation:scrollCueBounce 1.8s ease-in-out infinite}@keyframes scrollCueBounce{0%,to{transform:translateY(0);opacity:.65}50%{transform:translateY(5px);opacity:1}}@media (prefers-reduced-motion: reduce){.scroll-cue{display:none!important}}
