:root{--ink:#000;--ink-1:#060606;--ink-2:#0D0D0D;--ink-3:#181818;--bone:#F2EFEA;--bone-dim:#9A958C;--accent:#13D42A;--accent-bright:#3BFE18;--accent-laser:#3BFE18;--accent-soft:#061A0C;--accent-glow:rgba(59,254,24,.38);--rule:#1F1F1F;--rule-accent:rgba(19,212,42,.18);--shadow-card:0 2px 8px rgba(0,0,0,.4), 0 24px 60px rgba(0,0,0,.6);--font-display:'Playfair Display',Georgia,'Times New Roman',serif;--font-script:'Tangerine','Snell Roundhand',cursive;--font-body:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;--font-mono:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;--max-w:1240px;--gutter:clamp(20px,4vw,56px);--ease:cubic-bezier(.16,1,.3,1);color-scheme:dark;}*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{margin:0;background:var(--ink);color:var(--bone);font-family:var(--font-body);font-size:17px;line-height:1.65;font-weight:400;letter-spacing:.005em;overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img,picture,video,svg{max-width:100%;display:block}a{color:var(--bone);text-decoration:none;transition:color 200ms var(--ease)}a:hover{color:var(--accent)}::selection{background:var(--accent);color:var(--ink)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}button{font:inherit;cursor:pointer}.skip-link{position:absolute;top:-100px;left:8px;background:var(--accent);color:var(--ink);padding:10px 14px;font-family:var(--font-mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;z-index:100}.skip-link:focus{top:8px}.container{width:100%;max-width:var(--max-w);margin:0 auto;padding:0 var(--gutter)}section{position:relative}.section{padding:clamp(72px,11vw,140px) 0;position:relative}@media (min-width:900px) and (prefers-reduced-motion:no-preference){body::before{content:'';position:fixed;inset:0;background-image:linear-gradient(rgba(255,255,255,.022) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.022) 1px,transparent 1px);background-size:80px 80px,80px 80px;pointer-events:none;z-index:0;opacity:.5;mix-blend-mode:screen}}.nav-wrap,main,footer{position:relative;z-index:1}.rule-top{border-top:1px solid var(--rule)}.eyebrow,.mono-label{font-family:var(--font-mono);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--bone-dim);font-weight:500;line-height:1.4}.display{font-family:var(--font-display);font-weight:500;letter-spacing:-.015em;line-height:1;color:var(--bone);margin:0;text-transform:none}h1.display{font-size:clamp(2.6rem,7.5vw,6.5rem);line-height:.95;text-transform:uppercase;letter-spacing:-.01em;font-weight:500}h2.display{font-size:clamp(1.85rem,4.5vw,3.6rem);line-height:1;text-transform:uppercase;letter-spacing:-.005em;font-weight:500}h3.display{font-size:clamp(1.25rem,2vw,1.65rem);line-height:1.2;text-transform:none;letter-spacing:-.005em;font-weight:500}h1.display .accent-word{position:relative;color:var(--accent);text-shadow:0 0 24px rgba(19,212,42,.35)}.italic{font-style:italic}.lede{font-family:var(--font-body);font-weight:400;font-style:italic;font-size:clamp(1.05rem,1.6vw,1.35rem);line-height:1.5;color:var(--bone);max-width:50ch;margin:18px 0 0}p{max-width:64ch;margin:0 0 1em}p.wide{max-width:72ch}.nav-wrap{position:sticky;top:0;z-index:50;background:rgba(10,10,11,.78);backdrop-filter:saturate(140%) blur(14px);-webkit-backdrop-filter:saturate(140%) blur(14px);border-bottom:1px solid transparent;transition:border-color 300ms var(--ease),background 300ms var(--ease)}.nav-wrap.scrolled{background:rgba(10,10,11,.92);border-bottom-color:var(--rule)}.nav{display:flex;align-items:center;justify-content:space-between;height:72px;gap:24px}.brand{display:inline-flex;align-items:center;gap:10px;color:var(--bone);text-decoration:none;white-space:nowrap;line-height:0}.brand-wordmark{display:block;height:40px;width:auto;max-width:260px}@media (max-width:600px){.brand-wordmark{height:30px;max-width:200px}}.brand-name{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.brand-dot{width:8px;height:8px;border-radius:50%;background:var(--accent-bright);display:inline-block;box-shadow:0 0 10px rgba(59,254,24,.6);animation:rec-blink 1.6s var(--ease) infinite}.nav-menu{display:flex;align-items:center;gap:28px;margin:0;padding:0;list-style:none}.nav-menu a{font-size:14px;font-weight:500;color:var(--bone);letter-spacing:.01em;position:relative;padding:4px 0}.nav-menu a[aria-current="page"]::after,.nav-menu a:hover::after{content:'';position:absolute;left:0;right:0;bottom:-2px;height:1px;background:var(--accent);transform-origin:left;animation:nav-underline 220ms var(--ease)}.nav-menu a[aria-current="page"]{color:var(--accent)}@keyframes nav-underline{from{transform:scaleX(0)}to{transform:scaleX(1)}}.nav-cta{display:inline-flex;align-items:center;gap:8px;background:var(--accent);color:var(--ink);padding:10px 18px;border-radius:999px;font-weight:600;font-size:14px;letter-spacing:.005em;transition:transform 200ms var(--ease),box-shadow 200ms var(--ease)}.nav-cta:hover{color:var(--ink);transform:translateY(-1px);box-shadow:0 6px 24px rgba(19,212,42,.45),0 0 0 1px rgba(59,254,24,.35)}.nav-toggle{display:none;background:none;border:0;width:44px;height:44px;padding:10px;position:relative;color:var(--bone);z-index:80;cursor:pointer}.nav-toggle span{display:block;width:22px;height:2px;background:currentColor;margin:5px auto;border-radius:2px;transform-origin:center;transition:transform 320ms cubic-bezier(.65,0,.35,1),opacity 200ms var(--ease),background 200ms var(--ease)}.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);background:var(--accent-bright)}.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;transform:scaleX(0)}.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);background:var(--accent-bright)}.mobile-menu{position:fixed;top:0;left:0;right:0;height:100vh;height:100dvh;background:#0A0A0B;color:#F2EFEA;z-index:70;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:90px var(--gutter) 40px;gap:clamp(8px,1.6vw,16px);opacity:0;visibility:hidden;transform:translateY(-12px);transition:opacity 320ms var(--ease),transform 380ms var(--ease),visibility 0s linear 320ms;overflow-y:auto;isolation:isolate}.mobile-menu::before{content:'';position:absolute;inset:0;background:radial-gradient(700px 400px at 80% 100%,rgba(19,212,42,.08),transparent 60%),radial-gradient(500px 320px at 10% 20%,rgba(59,254,24,.06),transparent 60%);pointer-events:none;z-index:-1}.mobile-menu.open{opacity:1;visibility:visible;transform:translateY(0);transition:opacity 320ms var(--ease),transform 380ms var(--ease),visibility 0s linear 0s}.mobile-menu a{font-family:var(--font-display);font-size:clamp(2.4rem,9vw,4rem);color:var(--bone);letter-spacing:-.01em;line-height:1;text-transform:uppercase;position:relative;padding:4px 0;opacity:0;transform:translateX(-12px);transition:opacity 320ms var(--ease),transform 320ms var(--ease),color 200ms var(--ease)}.mobile-menu.open a{opacity:1;transform:translateX(0)}.mobile-menu.open a:nth-child(1){transition-delay:80ms}.mobile-menu.open a:nth-child(2){transition-delay:130ms}.mobile-menu.open a:nth-child(3){transition-delay:180ms}.mobile-menu.open a:nth-child(4){transition-delay:230ms}.mobile-menu.open a:nth-child(5){transition-delay:280ms}.mobile-menu.open a:nth-child(6){transition-delay:330ms}.mobile-menu.open a:nth-child(7){transition-delay:380ms}.mobile-menu.open a:nth-child(8){transition-delay:430ms}.mobile-menu a:hover{color:var(--accent)}.mobile-menu a[aria-current="page"]{color:var(--accent)}.mobile-menu a[aria-current="page"]::before{content:'';display:inline-block;width:12px;height:12px;background:var(--accent-bright);border-radius:50%;margin-right:14px;vertical-align:middle;box-shadow:0 0 10px rgba(59,254,24,.7);animation:rec-blink 1.6s var(--ease) infinite}.mobile-menu .nav-cta{display:inline-flex !important;margin-top:clamp(20px,4vw,36px);padding:14px 28px;background:var(--accent);color:var(--ink);font-family:var(--font-body);font-size:16px;font-weight:600;border-radius:999px;text-transform:none;letter-spacing:0;align-items:center}.mobile-menu .nav-cta:hover{background:var(--accent-bright);color:var(--ink)}.mobile-menu-close{position:absolute;top:14px;right:16px;background:none;border:0;color:var(--bone);width:44px;height:44px;font-size:26px;z-index:2;display:none}body.menu-open{overflow:hidden}body.menu-open .nav-wrap{z-index:80;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;border-bottom-color:transparent}@media (max-width:880px){.nav-menu,nav>.nav-cta{display:none}.nav-toggle{display:block}}.btn{display:inline-flex;align-items:center;gap:10px;padding:14px 22px;border-radius:999px;font-weight:600;font-size:14px;letter-spacing:.005em;border:1px solid transparent;text-decoration:none;transition:transform 200ms var(--ease),background 200ms var(--ease),box-shadow 200ms var(--ease),color 200ms var(--ease),border-color 200ms var(--ease);min-height:44px}.btn-primary{background:var(--accent);color:var(--ink)}.btn-primary:hover{color:var(--ink);background:var(--accent-bright);transform:translateY(-1px);box-shadow:0 10px 28px rgba(19,212,42,.42),0 0 0 1px rgba(59,254,24,.5),0 0 32px rgba(59,254,24,.25)}.btn-ghost{background:transparent;color:var(--bone);border-color:var(--rule)}.btn-ghost:hover{color:var(--accent);border-color:var(--accent);transform:translateY(-1px)}.btn .arrow{transition:transform 220ms var(--ease)}.btn:hover .arrow{transform:translateX(4px)}.hero{position:relative;min-height:92svh;display:flex;flex-direction:column;justify-content:center;padding:clamp(96px,14svh,160px) 0 clamp(56px,8svh,100px);background-color:var(--ink);overflow:hidden;isolation:isolate}.hero-sub{min-height:clamp(520px,70svh,720px)}.hero-photo{position:absolute;inset:0;display:block;width:100%;height:100%;overflow:hidden;z-index:-2}.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:62% 50%;display:block;filter:saturate(1.05) contrast(1.05);transform:scale(1.04);animation:hero-ken-burns 22s var(--ease) infinite alternate}@keyframes hero-ken-burns{0%{transform:scale(1.04) translate3d(0,0,0)}100%{transform:scale(1.1) translate3d(-1.2%,-1%,0)}}@media (prefers-reduced-motion:reduce){.hero-photo img{animation:none;transform:none}}.hero-sub .hero-photo img{object-position:75% 50%;filter:saturate(.9) contrast(1.1)}.hero::before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.65) 0%,rgba(0,0,0,.55) 45%,rgba(0,0,0,.85) 100%),linear-gradient(95deg,rgba(0,0,0,.55) 0%,rgba(0,0,0,.1) 60%,rgba(0,0,0,0) 100%);pointer-events:none;z-index:-1}.hero-sub::before{background:linear-gradient(180deg,rgba(0,0,0,.7) 0%,rgba(0,0,0,.65) 50%,rgba(0,0,0,.9) 100%),linear-gradient(95deg,rgba(0,0,0,.55) 0%,rgba(0,0,0,.15) 70%,rgba(0,0,0,.05) 100%)}.hero::after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(0deg,rgba(255,255,255,.015) 0px,rgba(255,255,255,.015) 1px,transparent 1px,transparent 3px),radial-gradient(ellipse 800px 400px at 50% 100%,rgba(19,212,42,.08),transparent 60%);pointer-events:none;opacity:.7;z-index:0}.hero .container{position:relative;z-index:1}.rec-tag{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--bone-dim);margin-bottom:22px}.rec-tag .rec-dot{width:8px;height:8px;background:var(--accent-bright);border-radius:50%;animation:rec-blink 1.6s var(--ease) infinite;box-shadow:0 0 0 2px rgba(19,212,42,.18),0 0 14px rgba(59,254,24,.7),0 0 28px rgba(59,254,24,.35)}@keyframes rec-blink{0%,60%,100%{opacity:1}30%{opacity:.25}}.rec-tag .timecode{color:var(--bone-dim)}.rec-tag .sep{opacity:.5}.hero h1{margin:0 0 0}.hero .sub-line{margin:24px 0 0;font-family:var(--font-display);font-style:italic;font-size:clamp(1.2rem,2.2vw,1.65rem);color:var(--bone-dim);line-height:1.35;max-width:38ch}.hero .cta-row{margin-top:clamp(36px,5vw,56px);display:flex;flex-wrap:wrap;gap:14px}.hero-foot{margin-top:auto;padding-top:clamp(60px,8vw,96px);display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:24px;position:relative;z-index:1}.hero-foot .mono-label{color:var(--bone-dim)}.fade-up-1,.fade-up-2{opacity:0;transform:translateY(14px);animation:fade-up 800ms var(--ease) forwards}.fade-up-1{animation-delay:200ms}.fade-up-2{animation-delay:450ms}.fade-up-3{opacity:0;transform:translateY(14px);animation:fade-up 800ms var(--ease) 700ms forwards}@keyframes fade-up{to{opacity:1;transform:translateY(0)}}.reveal{opacity:0;transform:translateY(12px);transition:opacity 600ms var(--ease),transform 600ms var(--ease)}.reveal.in{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}.reveal{opacity:1;transform:none}.rec-tag .rec-dot{animation:none}}.service-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:0;border-top:1px solid var(--rule);border-left:1px solid var(--rule)}.service-card{display:block;padding:clamp(28px,4vw,44px);border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);background:var(--ink);text-decoration:none;color:var(--bone);position:relative;min-width:0;transition:background 280ms var(--ease)}.service-card:hover{background:var(--ink-2);border-color:var(--rule-accent);color:var(--bone);box-shadow:0 18px 38px rgba(0,0,0,.6),0 0 0 1px rgba(19,212,42,.18),inset 0 1px 0 rgba(255,255,255,.03)}.service-card .num{font-family:var(--font-mono);font-size:11px;letter-spacing:.18em;color:var(--bone-dim);margin-bottom:32px}.service-card h3{font-family:var(--font-display);font-size:clamp(1.6rem,2.5vw,2.1rem);font-weight:400;margin:0 0 12px;letter-spacing:-.01em;line-height:1.05}.service-card p{color:var(--bone-dim);margin:0;max-width:32ch;font-size:15px}.service-card .go{display:inline-flex;align-items:center;gap:6px;margin-top:26px;font-family:var(--font-mono);font-size:12px;letter-spacing:.18em;color:var(--accent);text-transform:uppercase;opacity:0;transform:translateX(-6px);transition:opacity 220ms var(--ease),transform 220ms var(--ease)}.service-card:hover .go{opacity:1;transform:translateX(0)}@media (hover:none){.service-card .go{opacity:1;transform:none}}.diff{position:relative;background:var(--ink-1);overflow:hidden;isolation:isolate}.diff::before{content:'';position:absolute;inset:0;background-image:url('/assets/photos/hero-960w.avif');background-size:cover;background-position:50% 70%;filter:blur(28px) brightness(.35) saturate(.7);opacity:.5;z-index:-2;transform:scale(1.1)}.diff::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,var(--ink) 0%,rgba(0,0,0,.55) 50%,var(--ink) 100%),radial-gradient(900px 500px at 80% 110%,rgba(19,212,42,.10),transparent 60%);pointer-events:none;z-index:-1}.diff .container{position:relative;z-index:1}.diff-head{max-width:26ch}.diff-columns{margin-top:clamp(48px,6vw,80px);display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:clamp(28px,4vw,48px)}.diff-col h3{font-family:var(--font-display);font-size:1.6rem;margin:0 0 12px;font-weight:400;letter-spacing:-.01em}.diff-col .mono-label{margin-bottom:10px;display:block}.diff-col p{color:var(--bone-dim);margin:0}.diff-quote{margin-top:clamp(64px,8vw,100px);font-family:var(--font-body);font-weight:500;font-style:italic;font-size:clamp(1.25rem,2.2vw,1.75rem);line-height:1.45;max-width:44ch;border-left:2px solid var(--accent);padding-left:clamp(20px,3vw,32px);color:var(--bone);border-left:1px solid var(--accent);padding-left:clamp(20px,3vw,32px)}.diff-quote cite{display:block;margin-top:18px;font-family:var(--font-mono);font-style:normal;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--bone-dim)}.reviews{position:relative;overflow:hidden;isolation:isolate}.reviews::before{content:'';position:absolute;inset:0;background-image:url('/assets/photos/team-800w.avif');background-size:cover;background-position:50% 30%;filter:blur(36px) brightness(.35) saturate(.6);opacity:.45;z-index:-2;transform:scale(1.15)}.reviews::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,var(--ink) 0%,rgba(0,0,0,.6) 35%,rgba(0,0,0,.55) 65%,var(--ink) 100%),radial-gradient(700px 400px at 15% 50%,rgba(19,212,42,.06),transparent 60%);pointer-events:none;z-index:-1}.reviews .container{position:relative;z-index:1}.reviews .reviews-head{display:flex;flex-direction:column;gap:18px;max-width:36ch;margin-bottom:clamp(40px,5vw,60px)}.reviews-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:0;border-top:1px solid var(--rule);border-left:1px solid var(--rule)}.review-card{padding:clamp(28px,4vw,40px);border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);display:flex;flex-direction:column;gap:22px;min-width:0}.review-card .stars{font-family:var(--font-mono);font-size:12px;letter-spacing:.3em;color:var(--accent)}.review-card blockquote{margin:0;font-family:var(--font-display);font-size:clamp(1.15rem,1.8vw,1.35rem);line-height:1.45;color:var(--bone)}.review-card .attrib{margin-top:auto;font-family:var(--font-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--bone-dim)}.reviews-badge-line{margin-top:clamp(28px,4vw,44px);display:flex;align-items:center;gap:14px;font-family:var(--font-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--bone-dim)}.reviews-badge-line .badge-dot{width:6px;height:6px;background:var(--accent);border-radius:50%}.pull-quote{font-family:var(--font-body);font-weight:500;font-size:clamp(1.35rem,2.6vw,2rem);line-height:1.45;font-style:italic;max-width:36ch;margin:0 auto;text-align:center;color:var(--bone)}.pull-quote .quote-mark{display:block;color:var(--accent);font-style:normal;font-family:var(--font-display);font-size:3.6rem;line-height:1;margin-bottom:4px;text-shadow:0 0 18px rgba(19,212,42,.45)}.pull-quote cite{display:block;margin-top:22px;font-family:var(--font-mono);font-style:normal;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--bone-dim)}.marquee{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);background:var(--ink);overflow:hidden;padding:22px 0}.marquee-track{display:flex;gap:64px;white-space:nowrap;animation:marquee 36s linear infinite;font-family:var(--font-mono);font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--bone-dim)}.marquee-track span{display:inline-flex;align-items:center;gap:64px}.marquee-track .dot{width:5px;height:5px;background:var(--bone-dim);border-radius:50%;opacity:.6}@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}@media (prefers-reduced-motion:reduce){.marquee-track{animation:none}}.cta-band{position:relative;background:var(--ink);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);text-align:center;overflow:hidden;isolation:isolate}.cta-band::before{content:'';position:absolute;inset:0;background-image:url('/assets/photos/hero-960w.avif');background-size:cover;background-position:30% 50%;filter:blur(2px) brightness(.32) saturate(1.15);opacity:.5;z-index:-2;transform:scale(1.08)}.cta-band::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.55) 0%,rgba(0,0,0,.65) 100%),radial-gradient(700px 400px at 50% 100%,rgba(19,212,42,.12),transparent 60%);pointer-events:none;z-index:-1}.cta-band .container{display:flex;flex-direction:column;align-items:center;text-align:center;gap:20px}.cta-band h2{margin:0;max-width:22ch}.cta-band p{color:var(--bone-dim);max-width:44ch;margin:0}.form-shell{border:1px solid var(--rule);background:var(--ink-2);padding:clamp(28px,4vw,44px)}.form-row{display:grid;gap:18px}.form-row.cols-2{grid-template-columns:1fr 1fr}@media (max-width:640px){.form-row.cols-2{grid-template-columns:1fr}}.form-field{display:flex;flex-direction:column;gap:8px;min-width:0}.form-field label{font-family:var(--font-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--bone-dim)}.form-field input,.form-field select,.form-field textarea{background:var(--ink);border:1px solid var(--rule);color:var(--bone);font-family:var(--font-body);font-size:15px;padding:13px 14px;border-radius:0;width:100%;min-width:0;transition:border-color 200ms var(--ease),background 200ms var(--ease)}.form-field textarea{resize:vertical;min-height:130px}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{outline:none;border-color:var(--accent);background:var(--ink)}.form-field input::placeholder,.form-field textarea::placeholder{color:var(--bone-dim);opacity:.7}.form-submit{margin-top:22px;display:flex;flex-wrap:wrap;align-items:center;gap:18px}.form-note{font-size:13px;color:var(--bone-dim);max-width:36ch}.form-success,.form-error{display:none;padding:clamp(28px,4vw,44px);border:1px solid var(--rule);background:var(--ink-2)}.form-success.show,.form-error.show{display:block}.form-success h3{font-family:var(--font-display);font-size:2.4rem;margin:0 0 12px}.form-success p,.form-error p{color:var(--bone-dim);margin:0}.footer{position:relative;background:var(--ink-3);border-top:1px solid var(--rule);padding:clamp(64px,8vw,96px) 0 0;margin-top:clamp(48px,8vw,96px);overflow:hidden;isolation:isolate}.footer::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent 0%,var(--accent) 35%,var(--accent-bright) 50%,var(--accent) 65%,transparent 100%);opacity:.65;pointer-events:none}.footer::after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 900px 500px at 100% 100%,rgba(19,212,42,.06),transparent 65%),radial-gradient(ellipse 600px 320px at 0% 100%,rgba(0,0,0,.85),transparent 60%);pointer-events:none;z-index:-1}.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:clamp(28px,4vw,56px)}@media (max-width:880px){.footer-grid{grid-template-columns:1fr 1fr}}@media (max-width:540px){.footer-grid{grid-template-columns:1fr}}.footer-brand-lockup{display:flex;align-items:center;gap:14px;margin-bottom:18px;line-height:0}.footer-brand-wordmark{display:block;height:40px;width:auto;max-width:280px}@media (max-width:600px){.footer-brand-wordmark{height:34px;max-width:240px}}.footer-brand-name{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.footer-brand-lockup .brand-dot{width:9px;height:9px}.footer-tagline{color:var(--bone-dim);font-family:var(--font-display);font-style:italic;font-size:1.05rem;max-width:28ch;margin:0 0 22px}.footer h4{font-family:var(--font-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--bone-dim);font-weight:500;margin:0 0 16px}.footer ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.footer a{color:var(--bone);font-size:15px;text-decoration:none}.footer a:hover{color:var(--accent)}.footer-socials{display:flex;gap:14px;margin-top:4px}.footer-socials a{display:inline-flex;width:36px;height:36px;align-items:center;justify-content:center;border:1px solid var(--rule);color:var(--bone-dim);transition:color 200ms var(--ease),border-color 200ms var(--ease),transform 200ms var(--ease)}.footer-socials a:hover{color:var(--accent);border-color:var(--accent);transform:translateY(-1px)}.footer-socials svg{width:16px;height:16px;fill:currentColor}.footer-bottom{margin-top:clamp(56px,8vw,88px);border-top:1px solid var(--rule);padding:28px 0 64px;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--bone-dim)}.footer-bottom a{color:var(--bone-dim)}.footer-bottom a:hover{color:var(--accent)}@media (max-width:600px){.footer-bottom{padding-bottom:80px}}.behind-rig{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,80px);align-items:center}@media (max-width:800px){.behind-rig{grid-template-columns:1fr}}.behind-rig .text{min-width:0}.behind-rig figure{margin:0;position:relative;overflow:hidden;background:var(--accent-soft)}.behind-rig img{width:100%;height:auto;display:block;filter:grayscale(.5) sepia(.2);transition:transform 1.2s var(--ease)}.behind-rig figure::after{content:'';position:absolute;inset:0;background:var(--accent-soft);mix-blend-mode:multiply;opacity:.14;pointer-events:none}.behind-rig figcaption{margin-top:12px;font-family:var(--font-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--bone-dim)}.faq-section h2{margin-bottom:clamp(36px,5vw,60px)}.faq-list{border-top:1px solid var(--rule)}.faq-item{border-bottom:1px solid var(--rule)}.faq-question{width:100%;background:none;border:0;color:var(--bone);padding:26px 0;text-align:left;display:flex;align-items:center;justify-content:space-between;gap:18px;font-family:var(--font-display);font-size:clamp(1.1rem,2vw,1.4rem);letter-spacing:-.005em;line-height:1.3;font-weight:400;cursor:pointer;transition:color 200ms var(--ease)}.faq-question:hover{color:var(--accent)}.faq-icon{font-family:var(--font-mono);font-size:18px;color:var(--accent);transition:transform 280ms var(--ease);flex-shrink:0}.faq-item.active .faq-icon{transform:rotate(45deg)}.faq-answer{max-height:0;overflow:hidden;transition:max-height 380ms var(--ease)}.faq-item.active .faq-answer{max-height:600px}.faq-answer p{margin:0 0 26px;color:var(--bone-dim);font-size:16px;line-height:1.65;max-width:70ch}.timeline{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:0;border-top:1px solid var(--rule);border-left:1px solid var(--rule)}.timeline-step{padding:clamp(28px,4vw,40px);border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);min-width:0}.timeline-step .num{font-family:var(--font-mono);font-size:11px;letter-spacing:.18em;color:var(--accent);margin-bottom:20px}.timeline-step h3{font-family:var(--font-display);font-size:1.4rem;margin:0 0 10px;font-weight:400;line-height:1.2}.timeline-step p{color:var(--bone-dim);margin:0;font-size:15px}.bullet-list{list-style:none;margin:0;padding:0;display:grid;gap:18px;grid-template-columns:1fr}.bullet-list.cols-2{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.bullet-list li{position:relative;padding-left:28px;color:var(--bone);font-size:16px;line-height:1.55;min-width:0}.bullet-list li::before{content:'';position:absolute;left:0;top:12px;width:12px;height:1px;background:var(--accent)}.two-col{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(36px,5vw,80px);align-items:start}@media (max-width:800px){.two-col{grid-template-columns:1fr}}.two-col h2{margin-top:0}.two-col .col-left .mono-label{margin-bottom:18px;display:block}.use-cases{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}.use-case{display:inline-block;padding:10px 16px;border:1px solid var(--rule);font-family:var(--font-mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--bone-dim);border-radius:999px}.contact-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:clamp(36px,5vw,72px)}@media (max-width:900px){.contact-grid{grid-template-columns:1fr}}.contact-side .side-block{border-top:1px solid var(--rule);padding:24px 0;min-width:0}.contact-side .side-block:first-child{padding-top:0;border-top:0}.contact-side h3{font-family:var(--font-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--bone-dim);font-weight:500;margin:0 0 12px}.contact-side p{color:var(--bone);margin:0;font-size:15px}.contact-side .socials{display:flex;gap:12px;margin-top:6px;flex-wrap:wrap}.contact-side .socials a{font-family:var(--font-mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--bone);padding-bottom:2px;border-bottom:1px solid var(--rule)}.contact-side .socials a:hover{color:var(--accent);border-color:var(--accent)}.about-lead p{font-family:var(--font-body);font-weight:400;font-size:clamp(1.15rem,2vw,1.5rem);line-height:1.5;font-style:italic;color:var(--bone);max-width:56ch}.about-body{max-width:60ch}.about-body p{color:var(--bone);font-size:17px;line-height:1.7}.about-body p+p{margin-top:1.4em}.prose p{color:var(--bone-dim);max-width:64ch}.prose p strong{color:var(--bone);font-weight:500}.breadcrumb{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--bone-dim);margin-bottom:24px}.breadcrumb a{color:var(--bone-dim);text-decoration:none}.breadcrumb a:hover{color:var(--accent)}.breadcrumb .sep{margin:0 8px;opacity:.5}.breadcrumb .current{color:var(--bone)}@media (max-width:540px){.hero{min-height:88svh;padding-top:110px}.hero-sub{min-height:72svh}.rec-tag{font-size:10px}.form-shell{padding:22px}}.hero-lasers{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:0;mix-blend-mode:screen}.hero-lasers svg{width:100%;height:100%;display:block}.hero-lasers .beam{stroke:var(--accent-bright);stroke-width:1.4;fill:none;opacity:0;filter:drop-shadow(0 0 8px rgba(59,254,24,.85)) drop-shadow(0 0 22px rgba(19,212,42,.4));stroke-linecap:round;transform-box:fill-box;transform-origin:center;animation:laser-sweep 9s var(--ease) infinite}.hero-lasers .beam-1{animation-delay:0s}.hero-lasers .beam-2{animation-delay:2.8s;stroke:var(--accent)}.hero-lasers .beam-3{animation-delay:5.4s}@keyframes laser-sweep{0%{opacity:0;stroke-dasharray:2 2200;stroke-dashoffset:0}6%{opacity:.95}12%{opacity:.95;stroke-dasharray:320 2200;stroke-dashoffset:-1800}22%{opacity:0}100%{opacity:0}}@media (prefers-reduced-motion:reduce){.hero-lasers .beam{animation:none;opacity:0}}.live-badge{display:inline-flex;align-items:center;gap:8px;padding:6px 12px 6px 10px;background:rgba(255,0,30,.12);border:1px solid rgba(255,60,80,.55);color:#FF445A;font-family:var(--font-mono);font-size:10px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;border-radius:3px;position:relative;box-shadow:0 0 18px rgba(255,0,30,.18)}.live-badge::before{content:'';width:7px;height:7px;border-radius:50%;background:#FF445A;box-shadow:0 0 0 0 rgba(255,80,100,.65);animation:live-pulse 1.4s ease-in-out infinite}@keyframes live-pulse{0%,100%{box-shadow:0 0 0 0 rgba(255,80,100,.6);transform:scale(1)}50%{box-shadow:0 0 0 6px rgba(255,80,100,0);transform:scale(1.1)}}.live-badge.green{background:rgba(19,212,42,.12);border-color:rgba(59,254,24,.55);color:var(--accent-bright);box-shadow:0 0 18px rgba(19,212,42,.18)}.live-badge.green::before{background:var(--accent-bright);box-shadow:0 0 0 0 rgba(59,254,24,.6)}@keyframes live-pulse-green{0%,100%{box-shadow:0 0 0 0 rgba(59,254,24,.6);transform:scale(1)}50%{box-shadow:0 0 0 6px rgba(59,254,24,0);transform:scale(1.1)}}.live-badge.green::before{animation:live-pulse-green 1.4s ease-in-out infinite}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,3vw,56px);margin:clamp(48px,6vw,72px) 0 0;padding:clamp(32px,4vw,48px) 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);position:relative}.stats::before,.stats::after{content:'';position:absolute;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent 0%,var(--accent) 50%,transparent 100%);opacity:.6;pointer-events:none}.stats::before{top:-1px}.stats::after{bottom:-1px}@media (max-width:700px){.stats{grid-template-columns:1fr;gap:28px}}.stat{text-align:left;min-width:0}.stat-value{font-family:var(--font-display);font-size:clamp(2.6rem,6vw,4.4rem);line-height:.9;letter-spacing:-.01em;color:var(--accent-bright);text-shadow:0 0 28px rgba(19,212,42,.35);text-transform:uppercase;display:flex;align-items:baseline;gap:6px}.stat-value .suffix{font-size:.5em;color:var(--accent);text-shadow:none}.stat-label{font-family:var(--font-mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--bone-dim);margin-top:12px}.stat-desc{font-family:var(--font-body);font-size:14px;color:var(--bone-dim);margin-top:6px;line-height:1.5}.laser-divider{position:relative;height:1px;border:0;background:var(--rule);margin:0;overflow:visible}.laser-divider::before{content:'';position:absolute;top:-1px;left:0;width:25%;height:3px;background:linear-gradient(90deg,transparent 0%,var(--accent-bright) 50%,transparent 100%);filter:drop-shadow(0 0 6px rgba(59,254,24,.8));animation:laser-divider-sweep 6s ease-in-out infinite}@keyframes laser-divider-sweep{0%{left:-25%;opacity:0}20%{opacity:1}80%{opacity:1}100%{left:100%;opacity:0}}@media (prefers-reduced-motion:reduce){.laser-divider::before{animation:none;opacity:0}}.hero{cursor:none}.hero a,.hero button,.hero input,.hero .nav-cta,.hero .btn{cursor:pointer}.hero-reticle{position:fixed;width:56px;height:56px;border:1px solid var(--accent-bright);border-radius:0;pointer-events:none;z-index:9999;transform:translate(-50%,-50%);transition:opacity 200ms var(--ease);opacity:0;mix-blend-mode:screen;display:none}.hero-reticle::before,.hero-reticle::after{content:'';position:absolute;background:var(--accent-bright);box-shadow:0 0 8px rgba(59,254,24,.7)}.hero-reticle::before{top:50%;left:-8px;right:-8px;height:1px;transform:translateY(-50%)}.hero-reticle::after{left:50%;top:-8px;bottom:-8px;width:1px;transform:translateX(-50%)}.hero-reticle.visible{opacity:.7;display:block}@media (hover:none){.hero{cursor:auto}.hero-reticle{display:none !important}}@media (prefers-reduced-motion:reduce){.hero-reticle{display:none !important}.hero{cursor:auto}}@keyframes cta-idle-glow{0%,100%{box-shadow:0 0 0 0 rgba(19,212,42,0)}50%{box-shadow:0 0 0 8px rgba(19,212,42,.05),0 0 32px rgba(59,254,24,.18)}}.btn-primary{animation:cta-idle-glow 3.4s ease-in-out infinite}.btn-primary:hover{animation:none}@media (prefers-reduced-motion:reduce){.btn-primary{animation:none}}.hero{will-change:auto}.hero-photo{will-change:transform}.hero::before{z-index:-1}.hero-scanline{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:0}.hero-scanline::after{content:'';position:absolute;top:-20%;left:0;right:0;height:30%;background:linear-gradient(180deg,transparent 0%,rgba(59,254,24,.06) 45%,rgba(59,254,24,.18) 50%,rgba(59,254,24,.06) 55%,transparent 100%);animation:hero-scan 4.2s var(--ease) .3s 1 forwards;mix-blend-mode:screen}@keyframes hero-scan{from{transform:translateY(0);opacity:1}85%{opacity:1}to{transform:translateY(420%);opacity:0}}@media (prefers-reduced-motion:reduce){.hero-scanline::after{animation:none;opacity:0}}.service-card{position:relative}.service-card::before,.service-card::after{content:'';position:absolute;width:14px;height:14px;border-color:var(--accent);border-style:solid;opacity:0;transition:opacity 220ms var(--ease),transform 220ms var(--ease);pointer-events:none}.service-card::before{top:12px;left:12px;border-width:1px 0 0 1px;transform:translate(-4px,-4px)}.service-card::after{bottom:12px;right:12px;border-width:0 1px 1px 0;transform:translate(4px,4px)}.service-card:hover::before,.service-card:hover::after{opacity:.85;transform:translate(0,0)}.viewers-see{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,80px);align-items:center}@media (max-width:880px){.viewers-see{grid-template-columns:1fr}}.viewers-see .text{min-width:0}.viewers-see .text p{max-width:44ch}.broadcast-screen{position:relative;background:#000;border-radius:8px;overflow:hidden;border:1px solid var(--rule);box-shadow:0 24px 60px rgba(0,0,0,.8),0 0 0 1px rgba(19,212,42,.10),0 0 60px rgba(19,212,42,.06);isolation:isolate;aspect-ratio:16 / 9}.broadcast-screen img{width:100%;height:100%;object-fit:cover;display:block}.broadcast-screen::before,.broadcast-screen::after{content:'';position:absolute;width:24px;height:24px;border-color:var(--accent-bright);border-style:solid;filter:drop-shadow(0 0 6px rgba(59,254,24,.6));pointer-events:none;z-index:2}.broadcast-screen::before{top:14px;left:14px;border-width:2px 0 0 2px}.broadcast-screen::after{bottom:14px;right:14px;border-width:0 2px 2px 0}.broadcast-screen .screen-live{position:absolute;top:14px;right:14px;z-index:3}.broadcast-screen .screen-tc{position:absolute;bottom:14px;left:14px;z-index:3;font-family:var(--font-mono);font-size:11px;letter-spacing:.18em;color:var(--accent-bright);text-shadow:0 0 8px rgba(59,254,24,.7);background:rgba(0,0,0,.6);padding:4px 10px;border-radius:2px;backdrop-filter:blur(4px)}@keyframes screen-glow-pulse{0%,100%{box-shadow:0 24px 60px rgba(0,0,0,.8),0 0 0 1px rgba(19,212,42,.10),0 0 40px rgba(19,212,42,.04)}50%{box-shadow:0 24px 60px rgba(0,0,0,.8),0 0 0 1px rgba(59,254,24,.28),0 0 70px rgba(59,254,24,.18)}}.broadcast-screen{animation:screen-glow-pulse 5s ease-in-out infinite}@media (prefers-reduced-motion:reduce){.broadcast-screen{animation:none}}
/* =====================================================================
   FILMS / REAL STREAMS section — asymmetric editorial layout
   Inspired by runawayvows.com — single big featured tile + thumbnail grid
   ===================================================================== */
.films {
  position: relative;
  isolation: isolate;
}
.films-head {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(28px, 5vw, 80px);
  align-items: end;
  margin-bottom: clamp(48px, 6vw, 80px);
}
@media (max-width: 800px) { .films-head { grid-template-columns: 1fr; } }
.films-head h2 { max-width: 16ch; }
.films-head p { color: var(--bone-dim); max-width: 44ch; margin: 0; }

.films-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(16px, 2vw, 24px);
}
@media (max-width: 760px) {
  .films-grid { grid-template-columns: 1fr; }
  .films-grid > .film-tile:first-child { grid-row: auto; }
}

.film-tile {
  position: relative;
  display: block;
  aspect-ratio: 16 / 9;
  background: var(--ink-2);
  border-radius: 6px;
  overflow: hidden;
  border: 1px solid var(--rule);
  text-decoration: none;
  color: var(--bone);
  isolation: isolate;
  transition: transform 320ms var(--ease), border-color 220ms var(--ease), box-shadow 320ms var(--ease);
}
.film-tile:hover {
  transform: translateY(-2px);
  border-color: var(--accent);
  box-shadow: 0 14px 38px rgba(0,0,0,.55), 0 0 0 1px rgba(19,212,42,.25);
}
.film-tile picture, .film-tile img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: -2;
  transition: transform 600ms var(--ease), filter 320ms var(--ease);
}
.film-tile:hover img { transform: scale(1.04); filter: saturate(1.1); }
.film-tile::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,.3) 0%, rgba(0,0,0,.35) 50%, rgba(0,0,0,.85) 100%);
  z-index: -1;
  pointer-events: none;
}
.film-tile .film-corners::before,
.film-tile .film-corners::after {
  content: '';
  position: absolute;
  width: 22px; height: 22px;
  border-color: var(--accent-bright);
  border-style: solid;
  filter: drop-shadow(0 0 6px rgba(59,254,24,.55));
  pointer-events: none;
}
.film-tile .film-corners::before { top: 14px; left: 14px; border-width: 2px 0 0 2px; }
.film-tile .film-corners::after { bottom: 14px; right: 14px; border-width: 0 2px 2px 0; }
.film-tile .film-meta {
  position: relative;
  z-index: 2;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: clamp(20px, 3vw, 32px);
  gap: 8px;
}
.film-tile .film-eyebrow {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--accent-bright);
  text-shadow: 0 0 8px rgba(59,254,24,.4);
  margin: 0;
}
.film-tile .film-title {
  font-family: var(--font-display);
  font-size: clamp(1.25rem, 2.4vw, 2rem);
  line-height: 1;
  color: var(--bone);
  text-transform: uppercase;
  letter-spacing: -.005em;
  margin: 0;
}
.film-tile .film-source {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--bone-dim);
  margin-top: 4px;
}
.film-tile .film-play {
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: clamp(56px, 8vw, 88px);
  height: clamp(56px, 8vw, 88px);
  border-radius: 50%;
  background: rgba(19, 212, 42, 0.92);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 3;
  transition: transform 220ms var(--ease), background 220ms var(--ease), box-shadow 320ms var(--ease);
  box-shadow: 0 12px 32px rgba(19,212,42,.42), 0 0 0 1px rgba(59,254,24,.5);
}
.film-tile:hover .film-play {
  transform: translate(-50%, -50%) scale(1.08);
  background: var(--accent-bright);
  box-shadow: 0 16px 40px rgba(19,212,42,.6), 0 0 0 2px rgba(59,254,24,.6), 0 0 48px rgba(59,254,24,.4);
}
.film-tile .film-play svg {
  width: 38%;
  height: 38%;
  fill: var(--ink);
  margin-left: 6%;        /* offset triangle to look centered */
}

/* Asymmetric runaway-vows-style hero stripe — oversized italic phrase as section opener.
   Pulled from runawayvows pattern: single dramatic phrase as the section's own visual hit. */
.editorial-stripe {
  position: relative;
  padding: clamp(96px, 14vw, 180px) 0;
  overflow: hidden;
  isolation: isolate;
}
.editorial-stripe::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(900px 500px at 20% 80%, rgba(19,212,42,.10), transparent 60%),
    radial-gradient(700px 400px at 80% 20%, rgba(59,254,24,.06), transparent 60%);
  z-index: -1;
  pointer-events: none;
}
.editorial-stripe .container {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: clamp(32px, 6vw, 100px);
  align-items: center;
}
@media (max-width: 800px) {
  .editorial-stripe .container { grid-template-columns: 1fr; }
}
.editorial-stripe .ed-phrase {
  font-family: var(--font-display);
  font-size: clamp(2.4rem, 7vw, 5.4rem);
  line-height: .92;
  letter-spacing: -.01em;
  text-transform: uppercase;
  margin: 0;
}
.editorial-stripe .ed-phrase em {
  font-style: italic;
  color: var(--accent-bright);
  text-shadow: 0 0 28px rgba(19,212,42,.42);
  display: inline-block;
}
.editorial-stripe .ed-side {
  font-family: var(--font-body);
  font-size: clamp(1rem, 1.6vw, 1.2rem);
  line-height: 1.55;
  color: var(--bone);
  font-weight: 400;
  max-width: 42ch;
  border-left: 2px solid var(--accent);
  padding-left: clamp(18px, 2vw, 28px);
}

/* ---------- Theme toggle button (fixed bottom-right) ---------- */
.theme-toggle {
  position: fixed;
  bottom: clamp(16px, 3vw, 28px);
  right: clamp(16px, 3vw, 28px);
  z-index: 90;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: var(--ink);
  border: 1px solid var(--rule);
  color: var(--bone);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: var(--shadow-card);
  cursor: pointer;
  transition: transform 220ms var(--ease), background 220ms var(--ease), border-color 220ms var(--ease), box-shadow 220ms var(--ease);
}
.theme-toggle:hover {
  transform: translateY(-2px);
  border-color: var(--accent);
  box-shadow: 0 4px 12px rgba(19,212,42,.25), 0 18px 40px rgba(10,10,11,.12);
}
.theme-toggle svg {
  width: 22px;
  height: 22px;
  stroke: currentColor;
  fill: none;
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: opacity 220ms var(--ease), transform 360ms var(--ease);
}
.theme-toggle .icon-moon { display: none; }


/* hide on small screens? keep visible — it's a feature */
@media (prefers-reduced-motion: reduce) {
  .theme-toggle, .theme-toggle svg { transition: none; }
}

/* ---------- Light-theme overrides for splash sections that should stay LIGHT (not dark) ---------- */
/* Service grid section — light, runawayvows style: centered, generous space, hairline cards */
.section .service-card {
  background: var(--ink-1);
  border: 1px solid var(--rule);
  transition: background 220ms var(--ease), border-color 220ms var(--ease), transform 220ms var(--ease), box-shadow 280ms var(--ease);
}
.section .service-card:hover {
  background: var(--ink-2);
  border-color: var(--accent);
  transform: translateY(-3px);
  box-shadow: var(--shadow-card);
}



/* Behind-the-rig text section — light by default */
.behind-rig figcaption { color: var(--bone-dim); }

/* Films-head + films grid — keep dark in light theme? Let me make the FILM TILES always dark
   (they're visual hits — runawayvows pattern is dark tiles even on light bg) */
.films { background: var(--ink); color: var(--bone); }
.film-tile { background: #0A0A0B; color: #F2EFEA; }   /* always dark — film tiles are media */
.film-tile::after { background: linear-gradient(180deg, rgba(0,0,0,.3) 0%, rgba(0,0,0,.35) 50%, rgba(0,0,0,.85) 100%); }

/* Editorial stripe — adapt to light: use very light tinted bg */
.editorial-stripe::before {
  background:
    radial-gradient(900px 500px at 20% 80%, rgba(19,212,42,.04), transparent 60%),
    radial-gradient(700px 400px at 80% 20%, rgba(19,212,42,.04), transparent 60%);
}

.editorial-stripe .ed-phrase em {
  color: var(--accent-bright);     /* AAA on white via var swap */
  text-shadow: 0 2px 24px rgba(19,212,42,.18);
}

/* CTA band and Diff strip — these have hero photo backdrops with dark overlay. Keep them dark
   in both themes (alternating runaways pattern). */
.cta-band, .diff, .reviews {
  background: #0A0A0B;
  color: #F2EFEA;
}

/* FAQ - light by default with hairline */
.faq-section h2 { color: var(--bone); }
.faq-question { color: var(--bone); }
.faq-answer p { color: var(--bone-dim); }
.faq-item { border-bottom: 1px solid var(--rule); }

/* Form shell — light card on light page */
.form-shell { background: var(--ink-1); border: 1px solid var(--rule); color: var(--bone); }

.form-shell input, .form-shell select, .form-shell textarea {
  background: var(--ink);
  border: 1px solid var(--rule);
  color: var(--bone);
}
.form-shell input::placeholder, .form-shell textarea::placeholder { color: var(--bone-dim); }
.form-shell label { color: var(--bone-dim); }
.form-success, .form-error { background: var(--ink-1); border: 1px solid var(--rule); color: var(--bone); }

/* Marquee — adapt colours */
.marquee { background: var(--ink-1); border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }
.marquee-track { color: var(--bone-dim); }
.marquee-track .dot { background: var(--bone-dim); opacity: .5; }

/* Reviews section testimonial cards — they're on dark splash bg, make sure text legible */
.reviews .reviews-head h2, .reviews .reviews-head .mono-label { color: #F2EFEA; }
.reviews .reviews-head .mono-label { color: #9A958C; }

/* Pull-quote left border accent */
.pull-quote { color: var(--bone); border-left-color: var(--accent); }

/* Behind-the-rig figure caption */
.behind-rig figcaption {
  font-family: var(--font-mono); font-size: 11px; letter-spacing: .18em; text-transform: uppercase;
  color: var(--bone-dim); margin-top: 14px; text-align: center;
}

/* Hero text colors stay light-on-dark regardless of theme (hero is always dark) */
.hero .display, .hero .rec-tag, .hero .sub-line, .hero .mono-label, .hero .hero-foot .mono-label {
  color: #F2EFEA;
}
.hero .rec-tag .timecode, .hero .hero-foot .mono-label, .hero .rec-tag { color: #9A958C; }

/* CTA-band text */
.cta-band .display, .cta-band h2 { color: #F2EFEA; }
.cta-band p, .cta-band .mono-label { color: #9A958C; }

/* Section borders globally */
.rule-top { border-top-color: var(--rule); }

/* Footer text colors */
.footer { color: #F2EFEA; }   /* footer always dark */
.footer .mono-label { color: #9A958C; }
.footer-bottom a { color: #9A958C; }

/* runawayvows-inspired centered minimal section utility */
.section.editorial-light {
  background: var(--ink);
  color: var(--bone);
  text-align: center;
  padding: clamp(96px, 14vw, 180px) 0;
}
.section.editorial-light .container { max-width: 720px; }
.section.editorial-light .mono-label {
  display: block;
  text-align: center;
  margin: 0 auto 18px;
  letter-spacing: .28em;
}
.section.editorial-light h2.display {
  text-align: center;
  text-transform: none;          /* override the global uppercase — runawayvows uses serifish title-case feel */
  letter-spacing: -.01em;
  margin-bottom: 28px;
}
.section.editorial-light p {
  margin: 0 auto;
  max-width: 56ch;
  color: var(--bone-dim);
  line-height: 1.7;
}
.section.editorial-light .btn-ghost {
  margin-top: 36px;
  border-color: var(--rule);
  color: var(--bone);
}


/* runawayvows-style horizontal divider with brand monogram in middle */
.editorial-divider {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 24px;
  margin: 0 auto;
  max-width: 360px;
  color: var(--bone-dim);
}
.editorial-divider::before,
.editorial-divider::after {
  content: '';
  flex: 1;
  height: 1px;
  background: var(--rule);
}
.editorial-divider .ed-symbol {
  font-family: var(--font-display);
  font-size: 14px;
  letter-spacing: .12em;
  color: var(--accent);
}

/* Hero CTAs always need light-on-dark treatment — the hero is always dark regardless of theme */
.hero .btn-ghost { color: #F2EFEA; border-color: rgba(255,255,255,.25); }
.hero .btn-ghost:hover { color: #F2EFEA; background: transparent; border-color: var(--accent-laser); }
.hero .btn-primary { color: #0A0A0B; }   /* black text on green is fine */
.hero .btn-primary:hover { color: #0A0A0B; }

/* Hero footer mono strip */
.hero .hero-foot .mono-label { color: rgba(255,255,255,.55); }

/* =====================================================================
   RUNAWAYVOWS-MIRROR SECTIONS — added 2026-05-17 iteration
   Centered editorial layouts. Light by default. Serif display.
   ===================================================================== */

/* ---------- Hero refit: centered ESTD-framed monogram + giant serif ---------- */
.hero-center {
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
}
.hero-frame {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 22px;
  margin: clamp(20px, 4svh, 40px) 0 18px;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: .32em;
  text-transform: uppercase;
  color: rgba(242,239,234,.85);
}
.hero-frame-side { opacity: .75; }
.hero-frame-mono {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border: 1px solid rgba(242,239,234,.4);
  border-radius: 50%;
  font-family: var(--font-display);
  font-style: italic;
  font-size: 28px;
  letter-spacing: 0;
  color: var(--accent-laser);
  text-shadow: 0 0 12px rgba(59,254,24,.45);
}
.hero-display {
  font-family: var(--font-display);
  font-weight: 500;
  font-style: normal;
  font-size: clamp(3.5rem, 11vw, 9rem);
  line-height: .92;
  letter-spacing: -.03em;
  text-transform: none;       /* runawayvows uses title case for the brand mark */
  color: #F2EFEA;
  margin: 0;
  text-shadow: 0 4px 32px rgba(0,0,0,.4);
}
.hero-tagline {
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: .42em;
  text-transform: uppercase;
  color: rgba(242,239,234,.85);
  margin: 18px 0 22px;
}
.hero-descriptor {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(242,239,234,.65);
  margin: 0 0 clamp(28px, 4vw, 44px);
  max-width: 56ch;
}
.hero-descriptor em {
  font-family: var(--font-display);
  font-style: italic;
  text-transform: lowercase;
  letter-spacing: -.005em;
  font-size: 1.6em;
  color: var(--accent-laser);
  line-height: 1;
  margin: 0 .15em;
  text-shadow: 0 0 18px rgba(59,254,24,.4);
}
.hero-ctas { justify-content: center; }

/* ---------- "Re-imagined standard" centered section ---------- */
.section.reimagined {
  background: var(--ink);
  color: var(--bone);
  text-align: center;
  padding: clamp(120px, 16vw, 220px) 0;
}
.section.reimagined .container { max-width: 920px; }

.ed-monogram {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 64px;
  height: 64px;
  margin: 0 auto 32px;
  border: 1px solid var(--rule);
  border-radius: 50%;
  font-family: var(--font-display);
  font-style: italic;
  font-size: 32px;
  color: var(--accent);
  background: transparent;
}

.reimagined-headline {
  font-family: var(--font-mono);
  font-size: clamp(14px, 1.4vw, 18px);
  letter-spacing: .26em;
  text-transform: uppercase;
  font-weight: 500;
  line-height: 1.7;
  color: var(--bone);
  margin: 0 auto 56px;
  max-width: 36ch;
}
.reimagined-headline em {
  font-family: var(--font-display);
  font-style: italic;
  text-transform: lowercase;
  letter-spacing: -.005em;
  font-size: 1.7em;
  font-weight: 500;
  color: var(--bone);
  margin: 0 .12em;
  line-height: 1;
  vertical-align: -.2em;
}

.reimagined-figure {
  margin: 0 auto clamp(40px, 5vw, 60px);
  max-width: 820px;
}
.reimagined-figure img {
  width: 100%;
  height: auto;
  display: block;
  aspect-ratio: 16/9;
  object-fit: cover;
}

.reimagined-body {
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.75;
  color: var(--bone-dim);
  max-width: 56ch;
  margin: 0 auto clamp(36px, 5vw, 56px);
  text-align: center;
}

.btn-text {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 22px;
  padding: 14px 28px;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: .32em;
  text-transform: uppercase;
  color: var(--bone);
  position: relative;
}
.btn-text::before,
.btn-text::after {
  content: '';
  flex: 1;
  height: 1px;
  background: var(--rule);
  width: 60px;
  display: inline-block;
}
.btn-text:hover { color: var(--accent); }

/* ---------- Section head center utility ---------- */
.section-head-center {
  text-align: center;
  max-width: 38ch;
  margin: 0 auto clamp(36px, 5vw, 60px);
}
.section-head-center .mono-label {
  display: block;
  letter-spacing: .28em;
}
.section-head-center h2.display {
  text-transform: none;
  font-weight: 500;
}
.section-head-center h2.display em {
  font-style: italic;
  color: var(--accent);
}

/* ---------- Meet Founder — runawayvows-style 50/50 dark splash ---------- */
.meet-founder {
  background: #0A0A0B;
  color: #F2EFEA;
  padding: clamp(100px, 12vw, 160px) 0;
}
.meet-founder-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(40px, 6vw, 100px);
  align-items: center;
}
@media (max-width: 880px) {
  .meet-founder-grid { grid-template-columns: 1fr; }
}
.meet-founder-photo {
  margin: 0;
  position: relative;
}
.meet-founder-photo img {
  width: 100%;
  height: auto;
  display: block;
  aspect-ratio: 4/5;
  object-fit: cover;
}
.meet-founder-text { color: #F2EFEA; }
.meet-founder-title {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: clamp(2.8rem, 5.5vw, 5rem);
  line-height: .95;
  letter-spacing: -.005em;
  text-transform: uppercase;
  color: #F2EFEA;
  margin: 0;
}
.meet-founder-title em {
  font-style: italic;
  font-weight: 500;
  color: var(--accent-laser);
  text-transform: lowercase;
  margin: 0 .15em;
  text-shadow: 0 0 16px rgba(59,254,24,.4);
}
.meet-founder-rule {
  border: 0;
  height: 1px;
  background: rgba(242,239,234,.18);
  margin: 24px 0 18px;
  width: 80px;
}
.meet-founder-text .mono-label {
  color: rgba(242,239,234,.55);
  letter-spacing: .26em;
  font-size: 11px;
  margin: 0 0 22px;
}
.meet-founder-bio {
  font-family: var(--font-body);
  font-size: 15px;
  line-height: 1.75;
  color: rgba(242,239,234,.78);
  margin: 0 0 32px;
  max-width: 44ch;
}

/* ---------- Outline button (runawayvows style) ---------- */
.btn-outline {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 16px 36px;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: .26em;
  text-transform: uppercase;
  color: #F2EFEA;
  background: transparent;
  border: 1px solid rgba(242,239,234,.4);
  transition: background 220ms var(--ease), color 220ms var(--ease), border-color 220ms var(--ease);
}
.btn-outline:hover {
  background: var(--accent);
  color: #0A0A0B;
  border-color: var(--accent);
}
/* Light theme alt */
:root .meet-founder .btn-outline,
:root .meet-founder .btn-outline:link,
:root .meet-founder .btn-outline:visited { color: #F2EFEA; }

/* ---------- Featured in row ---------- */
.featured-in { margin-top: 44px; }
.featured-in-label {
  display: block;
  color: rgba(242,239,234,.45);
  letter-spacing: .26em;
  margin-bottom: 16px;
}
.featured-in-label em {
  font-family: var(--font-display);
  font-style: italic;
  text-transform: lowercase;
  font-size: 1.3em;
  color: rgba(242,239,234,.72);
  letter-spacing: -.01em;
}
.featured-in-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 24px 36px;
  align-items: center;
}
.featured-badge {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 18px;
  font-weight: 500;
  color: rgba(242,239,234,.72);
  letter-spacing: -.005em;
  border-bottom: 1px solid rgba(242,239,234,.25);
  padding-bottom: 4px;
}

/* ---------- "Timeless" centered script-font moment ---------- */
.section.timeless {
  background: var(--ink);
  color: var(--bone);
  text-align: center;
  padding: clamp(120px, 16vw, 200px) 0;
}
.section.timeless .container { max-width: 760px; }
.timeless-script {
  font-family: var(--font-script);
  font-weight: 400;
  font-size: clamp(3.2rem, 7vw, 6rem);
  line-height: 1;
  color: var(--accent);
  margin: 0 0 28px;
  letter-spacing: 0;
}

.timeless-sub {
  display: block;
  text-align: center;
  letter-spacing: .32em;
  font-size: 12px;
  line-height: 2;
  color: var(--bone-dim);
  margin: 0 0 28px;
}
.timeless-body {
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.75;
  color: var(--bone-dim);
  max-width: 60ch;
  margin: 0 auto;
}

/* ---------- Service grid: lighten in light theme to match runawayvows minimalism ---------- */
.section .service-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(16px, 2vw, 24px);
}
@media (max-width: 900px) { .section .service-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .section .service-grid { grid-template-columns: 1fr; } }

/* Service-card title: serif on light, keep readable */
.service-card h3 {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: clamp(1.1rem, 1.6vw, 1.4rem);
  line-height: 1.25;
  letter-spacing: -.005em;
  text-transform: none;
  color: var(--bone);
  margin: 18px 0 10px;
}

/* ---------- Mobile tuning ---------- */
@media (max-width: 600px) {
  .hero-display { font-size: clamp(2.8rem, 14vw, 4.6rem); letter-spacing: -.02em; }
  .hero-descriptor { font-size: 10px; letter-spacing: .18em; }
  .hero-frame { gap: 14px; }
  .hero-frame-mono { width: 44px; height: 44px; font-size: 22px; }
  .reimagined-headline em { font-size: 1.4em; }
}

/* ---------- reimagined-headline (canonical, post-iteration) ---------- */
.reimagined-headline {
  font-family: var(--font-mono);
  font-size: clamp(13px, 1.3vw, 17px);
  letter-spacing: .28em;
  text-transform: uppercase;
  font-weight: 500;
  line-height: 1.9;
  color: var(--bone);
  margin: 0 auto 60px;
  max-width: 46ch;
  text-align: center;
}
.reimagined-headline em {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: .04em;
  font-size: 1.5em;
  color: var(--bone);
  line-height: 1;
  padding: 0 .12em;
  vertical-align: -.1em;
}
@media (max-width: 600px) {
  .reimagined-headline { font-size: 12px; line-height: 1.8; }
  .reimagined-headline em { font-size: 1.4em; }
}

/* ---------- Featured film — single big poster with dark caption strip (runawayvows §4) ---------- */
.section.featured-film {
  background: var(--ink);
  padding: clamp(48px, 6vw, 96px) 0;
}
.section.featured-film .container { max-width: 1080px; }
.featured-film-tile {
  display: block;
  position: relative;
  aspect-ratio: 16/9;
  overflow: hidden;
  border-radius: 4px;
  background: #0A0A0B;
  text-decoration: none;
  isolation: isolate;
  border: 1px solid var(--rule);
  transition: transform 320ms var(--ease), box-shadow 320ms var(--ease);
}
.featured-film-tile:hover {
  transform: translateY(-2px);
  box-shadow: 0 20px 50px rgba(10,10,11,.18);
}
.featured-film-tile picture,
.featured-film-tile img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 600ms var(--ease);
}
.featured-film-tile:hover img { transform: scale(1.03); }
.featured-film-tile .film-corners::before,
.featured-film-tile .film-corners::after {
  content: '';
  position: absolute;
  width: 22px; height: 22px;
  border-color: var(--accent-laser);
  border-style: solid;
  filter: drop-shadow(0 0 6px rgba(59,254,24,.55));
  pointer-events: none;
  z-index: 2;
}
.featured-film-tile .film-corners::before { top: 14px; left: 14px; border-width: 2px 0 0 2px; }
.featured-film-tile .film-corners::after { bottom: 14px; right: 14px; border-width: 0 2px 2px 0; }
.featured-film-strip {
  position: absolute;
  left: 0; right: 0; bottom: 0;
  background: rgba(10,10,11,.92);
  color: #F2EFEA;
  padding: 16px clamp(20px, 3vw, 32px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: .22em;
  text-transform: uppercase;
  z-index: 3;
}
.featured-film-arrow {
  width: 36px; height: 36px;
  border-radius: 50%;
  background: var(--accent);
  color: #0A0A0B;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-mono);
  font-size: 14px;
  transition: background 220ms var(--ease), transform 220ms var(--ease);
}
.featured-film-tile:hover .featured-film-arrow { background: var(--accent-laser); transform: translateX(3px); }

/* ---------- Recent work full-bleed 4-tile gallery strip ---------- */
.recent-work {
  background: var(--ink);
  padding: 0;
}
.recent-work-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: var(--rule);
}
@media (max-width: 900px) { .recent-work-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 460px) { .recent-work-grid { grid-template-columns: 1fr; } }
.recent-tile {
  display: block;
  aspect-ratio: 4/3;
  overflow: hidden;
  background: #0A0A0B;
  position: relative;
}
.recent-tile img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  filter: saturate(.88);
  transition: filter 320ms var(--ease), transform 600ms var(--ease);
}
.recent-tile:hover img { filter: saturate(1.1); transform: scale(1.04); }

/* Film-tile text is ALWAYS white-on-dark since tile is a dark photo overlay */
.film-tile .film-title { color: #F2EFEA !important; }
.film-tile .film-source { color: rgba(242,239,234,.7) !important; }
.film-tile .film-eyebrow { color: var(--accent-laser) !important; text-shadow: 0 0 8px rgba(59,254,24,.4) !important; }
/* Strengthen the dark gradient overlay so text reads */
.film-tile::after {
  background: linear-gradient(180deg, rgba(0,0,0,.25) 0%, rgba(0,0,0,.55) 50%, rgba(0,0,0,.92) 100%) !important;
}

/* ---------- Service cards with image backdrop (dark-theme card look) ---------- */
.service-grid-imagery {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(20px, 2vw, 28px);
}
.service-grid-imagery > .service-card:nth-child(1),
.service-grid-imagery > .service-card:nth-child(2) {
  /* first two span larger to give visual hierarchy */
  grid-column: span 1;
}
@media (min-width: 1100px) {
  .service-grid-imagery {
    grid-template-columns: 1fr 1fr 1fr;
  }
}
@media (max-width: 900px) { .service-grid-imagery { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .service-grid-imagery { grid-template-columns: 1fr; } }

.service-card-image {
  position: relative;
  display: block;
  aspect-ratio: 4/5;
  border-radius: 4px;
  overflow: hidden;
  background: #0A0A0B;
  border: 1px solid var(--rule);
  text-decoration: none;
  color: #F2EFEA;
  isolation: isolate;
  transition: transform 320ms var(--ease), border-color 220ms var(--ease), box-shadow 320ms var(--ease);
}
.service-card-image:hover {
  transform: translateY(-3px);
  border-color: var(--accent);
  box-shadow: 0 18px 40px rgba(0,0,0,.55), 0 0 0 1px rgba(19,212,42,.28);
}
.service-card-photo {
  position: absolute;
  inset: 0;
  z-index: -2;
}
.service-card-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  filter: saturate(.85);
  transition: filter 320ms var(--ease), transform 600ms var(--ease);
}
.service-card-image:hover .service-card-photo img {
  filter: saturate(1.05);
  transform: scale(1.04);
}
.service-card-image::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,.25) 0%, rgba(0,0,0,.45) 45%, rgba(0,0,0,.94) 100%);
  z-index: -1;
  pointer-events: none;
}
.service-card-body {
  position: relative;
  z-index: 2;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: clamp(20px, 2.5vw, 32px);
  gap: 10px;
}
.service-card-image .num {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--accent-bright);
  text-shadow: 0 0 8px rgba(59,254,24,.35);
  margin: 0;
}
.service-card-image h3 {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: clamp(1.4rem, 2.2vw, 2rem);
  line-height: 1.05;
  color: #F2EFEA;
  margin: 0;
  text-transform: none;
  letter-spacing: -.005em;
}
.service-card-image p {
  font-family: var(--font-body);
  font-size: 14px;
  line-height: 1.55;
  color: rgba(242,239,234,.78);
  margin: 0;
}
.service-card-image .go {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: .26em;
  text-transform: uppercase;
  color: var(--accent-bright);
  margin-top: 4px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  opacity: .9;
  transition: opacity 220ms var(--ease), gap 220ms var(--ease);
}
.service-card-image:hover .go { opacity: 1; gap: 14px; }
/* viewfinder bracket corners — sit above the photo */
.service-card-image > picture::before,
.service-card-image > picture::after {
  content: '';
  position: absolute;
  width: 14px;
  height: 14px;
  border-color: var(--accent-laser);
  border-style: solid;
  z-index: 3;
  opacity: 0;
  transition: opacity 220ms var(--ease);
  filter: drop-shadow(0 0 4px rgba(59,254,24,.55));
}
.service-card-image > picture::before { top: 12px; left: 12px; border-width: 1px 0 0 1px; }
.service-card-image > picture::after  { bottom: 12px; right: 12px; border-width: 0 1px 1px 0; }
.service-card-image:hover > picture::before,
.service-card-image:hover > picture::after { opacity: .9; }

/* override the older .section .service-card hover treatment so it doesn't fight */
.section .service-card-image:hover { background: transparent; }

/* Fix service-card-photo: <picture> defaults to display:inline, killing absolute positioning */
.service-card-photo {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
}
/* Make sure card has enough room — bump aspect to 3:4 (taller) so text fits below the photo gradient */
.service-card-image { aspect-ratio: 3/4; }
@media (max-width: 560px) { .service-card-image { aspect-ratio: 4/5; } }

/* Stronger contrast for service-card text — photos too bright behind titles */
.service-card-image .service-card-photo img {
  filter: saturate(.78) brightness(.62) !important;
}
.service-card-image::after {
  background: linear-gradient(180deg, rgba(0,0,0,.55) 0%, rgba(0,0,0,.6) 40%, rgba(0,0,0,.92) 75%, rgba(0,0,0,.96) 100%) !important;
}
.service-card-image h3 {
  text-shadow: 0 2px 16px rgba(0,0,0,.7), 0 1px 3px rgba(0,0,0,.6);
}
.service-card-image .num {
  text-shadow: 0 1px 6px rgba(0,0,0,.7);
}
/* Push content tighter to bottom so the eyebrow sits in the darker zone */
.service-card-body {
  justify-content: flex-end !important;
  padding-top: 40% !important;
}

/* =====================================================================
   RUNAWAYS POLISH PUSH — added 2026-05-18 iteration
   Experience steps · testimonial-featured · interstitial · IG-strip · footer
   ===================================================================== */

/* ---------- Experience journey (4 steps) ---------- */
.section.experience { background: var(--ink); padding: clamp(96px, 12vw, 160px) 0; }
.experience-steps {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(28px, 3vw, 48px);
  margin-top: clamp(48px, 6vw, 80px);
}
@media (max-width: 880px) { .experience-steps { grid-template-columns: 1fr 1fr; row-gap: 56px; } }
@media (max-width: 540px) { .experience-steps { grid-template-columns: 1fr; } }
.exp-step {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.exp-step-photo {
  display: block;
  aspect-ratio: 4/5;
  overflow: hidden;
  background: var(--ink-2);
  border: 1px solid var(--rule);
  position: relative;
}
.exp-step-photo img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  filter: saturate(.78) brightness(.7);
  transition: filter 420ms var(--ease), transform 700ms var(--ease);
}
.exp-step:hover .exp-step-photo img { filter: saturate(.95) brightness(.85); transform: scale(1.04); }
.exp-step-photo::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,.15), rgba(0,0,0,.5));
  pointer-events: none;
}
.exp-step-num {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: .26em;
  color: var(--accent-bright);
  text-shadow: 0 0 8px rgba(59,254,24,.4);
  display: block;
  margin-top: 4px;
}
.exp-step-title {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: clamp(1.5rem, 2vw, 1.9rem);
  line-height: 1.1;
  letter-spacing: -.005em;
  color: var(--bone);
  margin: 0;
  text-transform: none;
}
.exp-step-body {
  font-family: var(--font-body);
  font-size: 14.5px;
  line-height: 1.6;
  color: var(--bone-dim);
  margin: 0;
}

/* ---------- Testimonial-featured film (italic quote + paired film tile) ---------- */
.section.testimonial-featured {
  background: var(--ink-1);
  padding: clamp(96px, 12vw, 160px) 0;
}
.testimonial-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(36px, 6vw, 100px);
  align-items: center;
}
@media (max-width: 880px) { .testimonial-grid { grid-template-columns: 1fr; } }
.testimonial-pull {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 400;
  font-size: clamp(1.5rem, 2.8vw, 2.2rem);
  line-height: 1.45;
  color: var(--bone);
  margin: 0;
  padding: 0;
  position: relative;
}
.testimonial-pull .quote-mark {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 5rem;
  line-height: .5;
  color: var(--accent);
  margin-right: 4px;
  vertical-align: -.15em;
  display: inline-block;
  font-style: normal;
}
.testimonial-pull em {
  font-style: italic;
  color: var(--accent-bright);
  text-shadow: 0 0 24px rgba(19,212,42,.25);
}
.testimonial-pull cite {
  display: block;
  margin-top: 28px;
  font-family: var(--font-mono);
  font-style: normal;
  font-size: 11px;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--bone-dim);
}
.testimonial-film {
  position: relative;
  display: block;
  aspect-ratio: 4/5;
  background: var(--ink-2);
  border: 1px solid var(--rule);
  overflow: hidden;
  text-decoration: none;
  isolation: isolate;
  transition: transform 320ms var(--ease), border-color 220ms var(--ease), box-shadow 320ms var(--ease);
}
.testimonial-film:hover {
  transform: translateY(-3px);
  border-color: var(--accent);
  box-shadow: 0 22px 56px rgba(0,0,0,.55), 0 0 0 1px rgba(19,212,42,.28);
}
.testimonial-film picture, .testimonial-film img {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 700ms var(--ease), filter 320ms var(--ease);
  display: block;
}
.testimonial-film:hover img { transform: scale(1.04); filter: saturate(1.05); }
.testimonial-film::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,.18) 50%, rgba(0,0,0,.85) 100%);
  z-index: 1;
  pointer-events: none;
}
.testimonial-film .film-corners::before,
.testimonial-film .film-corners::after {
  content: '';
  position: absolute;
  width: 22px; height: 22px;
  border-color: var(--accent-bright);
  border-style: solid;
  filter: drop-shadow(0 0 6px rgba(59,254,24,.55));
  pointer-events: none;
  z-index: 2;
}
.testimonial-film .film-corners::before { top: 14px; left: 14px; border-width: 2px 0 0 2px; }
.testimonial-film .film-corners::after { bottom: 14px; right: 14px; border-width: 0 2px 2px 0; }
.testimonial-film-cta {
  position: absolute;
  left: clamp(20px, 3vw, 32px);
  bottom: clamp(20px, 3vw, 32px);
  z-index: 3;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: .26em;
  text-transform: uppercase;
  color: var(--bone);
  display: inline-flex;
  align-items: center;
  gap: 12px;
  text-decoration: none;
}
.testimonial-film:hover .testimonial-film-cta { color: var(--accent-laser); gap: 18px; transition: color 200ms, gap 200ms; }

/* ---------- Interstitial photo (full-bleed, no overlay) ---------- */
.interstitial-photo {
  display: block;
  width: 100%;
  height: clamp(360px, 60vh, 640px);
  overflow: hidden;
  position: relative;
}
.interstitial-photo picture,
.interstitial-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.interstitial-photo img {
  filter: saturate(.92) brightness(.85);
  transform: scale(1.02);
  animation: interstitial-pan 28s ease-in-out infinite alternate;
}
@keyframes interstitial-pan {
  0%   { transform: scale(1.02) translate3d(0, 0, 0); }
  100% { transform: scale(1.08) translate3d(-1.5%, -1%, 0); }
}
@media (prefers-reduced-motion: reduce) { .interstitial-photo img { animation: none; } }

/* ---------- Recent work strip restyle as IG-feed-style grid ---------- */
.recent-work {
  padding: clamp(48px, 6vw, 96px) 0 0;
}
.recent-work::before {
  content: 'JOIN OUR ADVENTURES ON @LOPSTREAM';
  display: block;
  text-align: center;
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: .32em;
  color: var(--bone-dim);
  margin-bottom: clamp(28px, 3vw, 44px);
}
.recent-work-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 4px;
  background: transparent;
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 var(--gutter);
}
@media (max-width: 900px) { .recent-work-grid { grid-template-columns: repeat(2, 1fr); } }
.recent-tile { aspect-ratio: 1/1; border-radius: 0; }
.recent-tile img { transition: filter 320ms, transform 600ms var(--ease); }
.recent-tile:hover img { filter: saturate(1.15) brightness(1); transform: scale(1.06); }
.recent-tile::after {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.12);
  opacity: 0;
  transition: opacity 220ms var(--ease);
  pointer-events: none;
}
.recent-tile:hover::after { opacity: 1; }

/* ---------- Footer expansion (more nav, brand + tagline + email) ---------- */
.footer-grid {
  grid-template-columns: 1.6fr 1fr 1fr 1fr;
}
@media (max-width: 880px) { .footer-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 540px) { .footer-grid { grid-template-columns: 1fr; } }
.footer-grid > div h4 {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: .26em;
  text-transform: uppercase;
  color: rgba(242,239,234,.55);
  margin: 0 0 18px;
  font-weight: 500;
}
.footer-grid > div ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.footer-grid > div:not(:first-child) a {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 17px;
  color: rgba(242,239,234,.78);
  text-decoration: none;
  letter-spacing: -.005em;
  transition: color 220ms var(--ease);
}
.footer-grid > div:not(:first-child) a:hover { color: var(--accent-laser); }

/* Hero video (replaces hero-photo when video is present) */
.hero-video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 50%;
  display: block;
  z-index: -2;
  filter: saturate(1.05) contrast(1.05) brightness(.85);
}
/* Drop the existing hero-photo img animation since video provides motion */
.hero-video + .hero-photo img,
.hero-photo video { animation: none !important; transform: none !important; }

/* =====================================================================
   BRANDED LOADING SCREEN
   Mirrors the LOPSTREAM 'livestream will commence soon' holding card.
   Renders immediately from critical CSS, fades out on window.load.
   ===================================================================== */
#lop-loader {
  position: fixed;
  inset: 0;
  z-index: 1000;
  background: #000;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 32px;
  opacity: 1;
  visibility: visible;
  transition: opacity 600ms cubic-bezier(0.16, 1, 0.3, 1), visibility 0s linear 600ms;
  isolation: isolate;
}
body.loaded #lop-loader {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 600ms cubic-bezier(0.16, 1, 0.3, 1), visibility 0s linear 600ms;
}
#lop-loader::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(900px 500px at 20% 80%, rgba(19,212,42,.08), transparent 60%),
    radial-gradient(700px 400px at 80% 20%, rgba(59,254,24,.06), transparent 60%);
  pointer-events: none;
  z-index: -1;
}
.lop-loader-tagline {
  font-family: 'JetBrains Mono', ui-monospace, Menlo, monospace;
  font-size: 11px;
  letter-spacing: .42em;
  text-transform: uppercase;
  color: rgba(242,239,234,.65);
  margin: 0;
}
.lop-loader-mark {
  font-family: 'Playfair Display', Georgia, serif;
  font-weight: 500;
  font-size: clamp(2.8rem, 8vw, 5.5rem);
  line-height: 1;
  letter-spacing: -.01em;
  color: #F2EFEA;
  margin: 0;
  text-transform: uppercase;
  text-shadow: 0 0 32px rgba(0,0,0,.4);
}
.lop-loader-mark em {
  font-style: italic;
  color: var(--accent-bright);
  text-shadow: 0 0 24px rgba(59,254,24,.45);
}
.lop-loader-status {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-family: 'JetBrains Mono', ui-monospace, Menlo, monospace;
  font-size: 11px;
  letter-spacing: .26em;
  text-transform: uppercase;
  color: rgba(242,239,234,.6);
  margin: 0;
}
.lop-loader-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--accent-bright);
  box-shadow:
    0 0 0 2px rgba(19,212,42,.18),
    0 0 14px rgba(59,254,24,.7),
    0 0 28px rgba(59,254,24,.35);
  animation: lop-loader-blink 1.2s cubic-bezier(0.16,1,0.3,1) infinite;
}
@keyframes lop-loader-blink {
  0%, 60%, 100% { opacity: 1; }
  30% { opacity: 0.25; }
}
.lop-loader-tc {
  color: var(--accent-bright);
  text-shadow: 0 0 8px rgba(59,254,24,.45);
}
/* Slow scanline sweep over the loader for that broadcast feel */
#lop-loader::after {
  content: '';
  position: absolute;
  top: -10%;
  left: 0;
  right: 0;
  height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(59,254,24,.06) 40%, rgba(59,254,24,.15) 50%, rgba(59,254,24,.06) 60%, transparent 100%);
  animation: lop-loader-scan 2.4s cubic-bezier(0.16,1,0.3,1) infinite;
  mix-blend-mode: screen;
  pointer-events: none;
}
@keyframes lop-loader-scan {
  from { transform: translateY(0); }
  to   { transform: translateY(600%); }
}
@media (prefers-reduced-motion: reduce) {
  .lop-loader-dot { animation: none; }
  #lop-loader::after { animation: none; opacity: 0; }
}

/* =====================================================================
   GOOGLE REVIEWS WIDGET — bottom-left floating popup (Webgun standard)
   Uses CLAUDE.md spec, restyled to match dark/laser brand
   ===================================================================== */
.reviews-widget {
  position: fixed;
  display: flex;
  flex-direction: column-reverse;        /* badge anchored bottom, panel grows up */
  bottom: 24px;
  left: 24px;
  z-index: 95;
  font-family: var(--font-body);
}
.reviews-badge {
  display: flex;
  align-items: center;
  gap: 8px;
  background: #FFFFFF;
  border: 0;
  border-radius: 999px;
  padding: 10px 16px;
  box-shadow: 0 6px 24px rgba(0,0,0,.35), 0 0 0 1px rgba(255,255,255,.06);
  cursor: pointer;
  transition: transform 200ms var(--ease), box-shadow 200ms var(--ease);
  color: #1A1A1A;
}
.reviews-badge:hover {
  transform: translateY(-1px);
  box-shadow: 0 12px 32px rgba(0,0,0,.4), 0 0 0 1px rgba(19,212,42,.4);
}
.reviews-badge svg { flex-shrink: 0; }
.reviews-stars { color: #FBBC05; font-size: 14px; letter-spacing: -.05em; }
.reviews-score { font-weight: 700; font-size: 14px; }
.reviews-label { font-size: 12px; color: #555; }

.reviews-panel {
  background: var(--ink-2);
  color: var(--bone);
  border: 1px solid var(--rule);
  border-radius: 8px;
  box-shadow: 0 12px 40px rgba(0,0,0,.6), 0 0 0 1px rgba(19,212,42,.12);
  width: 340px;
  max-width: calc(100vw - 48px);
  overflow: hidden;
  margin-bottom: 12px;
}
.reviews-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding: 16px 18px;
  border-bottom: 1px solid var(--rule);
  gap: 12px;
}
.reviews-header-link { text-decoration: none; color: inherit; }
.reviews-header-link:hover .reviews-business { color: var(--accent-bright); }
.reviews-business {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 18px;
  letter-spacing: -.005em;
  color: var(--bone);
  transition: color 200ms var(--ease);
}
.reviews-meta { font-size: 13px; margin-top: 4px; color: var(--bone-dim); display: inline-flex; gap: 8px; align-items: baseline; }
.reviews-score-large { font-weight: 700; font-size: 17px; color: var(--bone); }
.reviews-stars-large { color: #FBBC05; letter-spacing: -.05em; }
.reviews-count { color: var(--bone-dim); font-size: 12px; }
.reviews-close {
  background: none;
  border: 0;
  color: var(--bone-dim);
  width: 28px; height: 28px;
  font-size: 16px;
  cursor: pointer;
  flex-shrink: 0;
  transition: color 200ms var(--ease);
}
.reviews-close:hover { color: var(--accent-bright); }

.reviews-list {
  padding: 8px 0;
  max-height: 320px;
  overflow-y: auto;
}
.review-item {
  display: block;
  padding: 14px 18px;
  border-bottom: 1px solid var(--rule);
  text-decoration: none;
  color: inherit;
  cursor: pointer;
  transition: background 180ms var(--ease);
}
.review-item:last-child { border-bottom: none; }
.review-item:hover { background: rgba(19, 212, 42, 0.06); }
.review-author { font-weight: 600; font-size: 13px; color: var(--bone); }
.review-stars { color: #FBBC05; font-size: 12px; letter-spacing: -.05em; margin-top: 2px; }
.review-text { font-size: 13px; color: var(--bone-dim); margin-top: 6px; line-height: 1.55; }
.review-date {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--bone-dim);
  opacity: .7;
  margin-top: 6px;
}

.reviews-cta {
  display: block;
  text-align: center;
  padding: 14px;
  background: var(--accent);
  color: var(--ink);
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 14px;
  letter-spacing: .005em;
  text-decoration: none;
  transition: background 200ms var(--ease);
}
.reviews-cta:hover { background: var(--accent-bright); color: var(--ink); }

@media (max-width: 480px) {
  .reviews-panel { width: 300px; }
  .reviews-widget { bottom: 16px; left: 16px; }
}

/* Push footer-bottom up a bit so the widget doesn't cover the copyright on every viewport */
.footer-bottom { padding-bottom: 80px !important; }
@media (max-width: 600px) { .footer-bottom { padding-bottom: 96px !important; } }

/* ============================================================
   IG section (07 · Follow the work) — static grid of recent posts
   ============================================================ */
.ig-section { padding: clamp(72px, 11vw, 140px) 0; }
.ig-head { text-align: center; max-width: 720px; margin: 0 auto clamp(40px, 6vw, 64px); }
.ig-head .display { margin: 14px 0 18px; }
.ig-handle { color: var(--bone-dim); }
.ig-handle a {
  color: var(--accent-bright);
  border-bottom: 1px solid rgba(59, 254, 24, 0.32);
  padding-bottom: 1px;
  transition: color 200ms var(--ease), border-color 200ms var(--ease);
}
.ig-handle a:hover { color: var(--bone); border-color: var(--accent-bright); }

.ig-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(10px, 1.8vw, 22px);
  width: 100%;
  margin: 0 auto;
}
@media (max-width: 600px) { .ig-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; } }

.ig-tile {
  position: relative;
  display: block;
  aspect-ratio: 3 / 4;
  overflow: hidden;
  background: var(--ink-2);
  border: 0;
  border-radius: 0;
  transform: translateZ(0);
  transition: transform 280ms var(--ease);
}
.ig-tile picture, .ig-tile img {
  width: 100%;
  height: 100%;
  display: block;
}
.ig-tile img {
  object-fit: cover;
  object-position: 50% 50%;
  transition: transform 600ms var(--ease), filter 280ms var(--ease);
  filter: saturate(0.92) brightness(0.95);
}
.ig-tile::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 50% 60%, rgba(0,0,0,0) 40%, rgba(0,0,0,0.45) 100%),
    linear-gradient(180deg, rgba(0,0,0,0) 60%, rgba(0,0,0,0.18) 100%);
  pointer-events: none;
  opacity: 0;
  transition: opacity 280ms var(--ease);
}
.ig-tile:hover {
  transform: none;
}
.ig-tile:hover img {
  transform: scale(1.04);
  filter: saturate(1.08) brightness(1);
}
.ig-tile:hover::after { opacity: 1; }
.ig-tile:focus-visible { outline: 2px solid var(--accent-bright); outline-offset: 3px; }

.ig-tile-badge {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 2;
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--ink);
  background: var(--accent-bright);
  padding: 4px 8px;
  border-radius: 2px;
  font-weight: 600;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.45);
}

.ig-cta { text-align: center; margin-top: clamp(40px, 6vw, 56px); }
.btn-ghost {
  display: inline-flex;
  align-items: center;
  padding: 14px 24px;
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--bone);
  background: transparent;
  border: 1px solid var(--rule);
  border-radius: 999px;
  transition: border-color 220ms var(--ease), color 220ms var(--ease), background 220ms var(--ease);
}
.btn-ghost:hover {
  color: var(--ink);
  background: var(--accent-bright);
  border-color: var(--accent-bright);
}
.btn-ghost:focus-visible { outline: 2px solid var(--accent-bright); outline-offset: 3px; }

/* Auckland Weddings approved-member badge — sits inside .reviews-badge-line.
   Sized for prominence: 88px mark + two-line label (mono eyebrow + serif label). */
.reviews-badge-line:has(.aw-badge-link) { gap: 18px; margin-top: clamp(36px, 5vw, 56px); }
.aw-badge-link {
  display: inline-flex;
  align-items: center;
  gap: 18px;
  color: inherit;
  text-decoration: none;
  padding: 6px 8px;
  border-radius: 6px;
  transition: opacity 220ms var(--ease), transform 220ms var(--ease);
}
.aw-badge-link:hover { opacity: 0.92; transform: translateY(-1px); }
.aw-badge-link:focus-visible { outline: 2px solid var(--accent-bright); outline-offset: 3px; }
.aw-badge-img {
  width: 88px;
  height: 88px;
  flex-shrink: 0;
  filter: brightness(1.1) saturate(0.95) drop-shadow(0 4px 18px rgba(0, 0, 0, 0.55));
}
.aw-badge-text {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
  line-height: 1;
}
.aw-badge-eyebrow {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--accent-bright);
}
.aw-badge-label {
  font-family: var(--font-display);
  font-size: clamp(22px, 2.4vw, 28px);
  font-weight: 500;
  letter-spacing: -0.005em;
  color: var(--bone);
  line-height: 1.1;
}
@media (max-width: 600px) {
  .aw-badge-link { gap: 14px; padding: 4px; }
  .aw-badge-img { width: 68px; height: 68px; }
  .aw-badge-eyebrow { font-size: 10px; letter-spacing: 0.26em; }
  .aw-badge-label { font-size: 20px; }
}
