/* ============================================================
   QuickVolt Circuit: live layer (motion 0.7, density 0.45)
   Loads after main.css. Transform and opacity only.
   ============================================================ */
:root{--ease:cubic-bezier(.2,.7,.2,1);--glow:rgba(255,122,26,.55);}

:where(a,button):focus-visible{outline:2px solid var(--accent-soft);outline-offset:3px;}

/* Reveal: visible without JS, hidden-until-seen only when JS runs */
.qv-reveal{opacity:1;transform:none;transition:opacity .8s var(--ease),transform .8s var(--ease);}
.js .qv-reveal:not(.is-visible){opacity:0;transform:translateY(28px);}
.qv-bento>.qv-reveal:nth-child(2),.qv-shots>.qv-reveal:nth-child(2){transition-delay:.08s;}
.qv-bento>.qv-reveal:nth-child(3),.qv-shots>.qv-reveal:nth-child(3){transition-delay:.16s;}
.qv-bento>.qv-reveal:nth-child(4){transition-delay:.08s;}
.qv-bento>.qv-reveal:nth-child(5){transition-delay:.16s;}
.qv-bento>.qv-reveal:nth-child(6){transition-delay:.24s;}

/* ---------- Header ---------- */
.qv-header{transition:background .3s ease,border-color .3s ease,box-shadow .3s ease;}
.qv-header.is-scrolled{background:rgba(18,15,12,.95);border-bottom-color:var(--line);box-shadow:0 14px 30px -20px rgba(255,122,26,.45);}
.qv-nav a{position:relative;padding-block:6px;}
.qv-nav a::after{content:'';position:absolute;left:0;right:0;bottom:0;height:2px;background:linear-gradient(90deg,var(--accent-soft),var(--accent));transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease);}
.qv-nav a:hover::after,.qv-nav a.is-active::after{transform:scaleX(1);}

/* ---------- Buttons ---------- */
.qv-btn--primary{position:relative;overflow:hidden;isolation:isolate;box-shadow:0 12px 30px -16px var(--glow);}
.qv-btn--primary::after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.5) 50%,transparent 65%);transform:translateX(-130%);animation:qv-shimmer 5s var(--ease) 1.6s infinite;}
@keyframes qv-shimmer{0%,55%{transform:translateX(-130%);}100%{transform:translateX(130%);}}

/* ---------- Hero ---------- */
.qv-hero--live{min-height:calc(100svh - 76px);display:flex;align-items:center;padding-block:var(--lg);}
.qv-hero--live .qv-container{position:relative;z-index:1;width:100%;}
.qv-hero--live h1{font-size:clamp(2rem,4.2vw,3.7rem);max-width:none;line-height:1.04;}
.qv-line{display:block;}
.qv-hero--live p{max-width:42ch;}
.qv-spark{background:linear-gradient(120deg,var(--accent-soft),var(--accent));-webkit-background-clip:text;background-clip:text;color:transparent;padding-bottom:.14em;margin-bottom:-.14em;}
.js .qv-hero--live h1 .w{display:inline-block;animation:qv-rise .85s var(--ease) both;animation-delay:calc(var(--i) * .09s + .1s);}
.js .qv-hero--live p,.js .qv-hero--live .qv-hero__actions{animation:qv-rise .85s var(--ease) both;animation-delay:.75s;}
.js .qv-hero--live .qv-hero__actions{animation-delay:.9s;}
@keyframes qv-rise{from{opacity:0;transform:translateY(.55em);}to{opacity:1;transform:none;}}

.qv-traces{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0;}
.qv-traces path{fill:none;stroke-width:1.6;}
.qv-traces .base{stroke:rgba(255,122,26,.16);}
.qv-traces .pulse{stroke:var(--accent-soft);stroke-width:2.6;stroke-linecap:round;stroke-dasharray:70 930;stroke-dashoffset:0;filter:drop-shadow(0 0 6px rgba(255,122,26,.9));animation:qv-run 5.5s linear infinite;animation-delay:var(--d,0s);}
@keyframes qv-run{to{stroke-dashoffset:-1000;}}

.qv-hero--live .qv-hero__grid{gap:var(--lg);}
.qv-hero--live .qv-hero__visual{aspect-ratio:auto;max-width:none;width:auto;height:clamp(360px,64svh,660px);justify-self:stretch;transform:translate3d(0,var(--py,0px),0);will-change:transform;}
.qv-hero--live .qv-hero__visual::before{content:'';position:absolute;inset:0;border:1px solid var(--accent);opacity:.55;clip-path:polygon(0 0,calc(100% - 56px) 0,100% 56px,100% 100%,0 100%);transform:translate(-16px,16px);}
.qv-hero__halo{position:absolute;width:80%;aspect-ratio:1;left:-14%;top:-10%;border-radius:50%;background:radial-gradient(circle,rgba(255,122,26,.4),transparent 68%);filter:blur(14px);animation:qv-breathe 6s ease-in-out infinite;}
@keyframes qv-breathe{0%,100%{opacity:.7;transform:scale(1);}50%{opacity:1;transform:scale(1.08);}}
.qv-hero__frame{position:absolute;inset:0;overflow:hidden;background:linear-gradient(160deg,var(--surface-raised),var(--surface));clip-path:polygon(0 0,calc(100% - 56px) 0,100% 56px,100% 100%,0 100%);}
.qv-hero__frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 28%;}
.qv-hero__frame::after{content:'';position:absolute;inset:0;background:linear-gradient(200deg,transparent 55%,rgba(18,15,12,.5));pointer-events:none;}
.qv-ph__icon{position:absolute;inset:0;display:grid;place-items:center;color:var(--accent);opacity:.22;}
.qv-ph__icon svg{width:34%;height:auto;max-width:180px;stroke-width:1;}

@media (min-width:960px){
  .qv-hero--live .qv-hero__grid{grid-template-columns:1.02fr .98fr;gap:var(--md);}
  .qv-hero--live .qv-hero__visual{margin-right:calc(-1 * ((100vw - min(100vw, var(--container))) / 2 + var(--md)));}
}

/* ---------- Marquee band ---------- */
.qv-marquee-wrap{position:relative;z-index:2;overflow:hidden;padding-block:18px;margin-top:-18px;}
.qv-marquee{display:flex;width:104vw;margin-left:-2vw;transform:rotate(-1.2deg);background:linear-gradient(100deg,var(--accent-deep),var(--accent) 45%,var(--accent-soft));color:#1a1108;overflow:hidden;box-shadow:0 18px 40px -22px var(--glow);}
.qv-marquee__track{display:flex;flex:none;align-items:center;gap:28px;padding:15px 28px 15px 0;animation:qv-marquee 40s linear infinite;}
.qv-marquee:hover .qv-marquee__track{animation-play-state:paused;}
.qv-marquee__track li{display:flex;align-items:center;gap:28px;font-family:var(--font-display);font-weight:700;font-size:.95rem;letter-spacing:.07em;text-transform:uppercase;white-space:nowrap;}
.qv-marquee__track svg{width:18px;height:18px;flex:none;stroke-width:2;}
@keyframes qv-marquee{to{transform:translateX(-100%);}}

/* ---------- Stats ---------- */
.qv-stats__row{display:grid;grid-template-columns:1fr;}
.qv-stat{display:flex;flex-direction:column;gap:8px;padding:var(--md) 0;border-top:1px solid var(--line-soft);}
.qv-stat:first-child{border-top:0;}
.qv-stat strong{font-family:var(--font-display);font-size:clamp(2.8rem,6.4vw,4.6rem);line-height:1;letter-spacing:-.03em;font-variant-numeric:tabular-nums;padding-bottom:.06em;background:linear-gradient(120deg,var(--accent-soft),var(--accent));-webkit-background-clip:text;background-clip:text;color:transparent;}
.qv-stat strong sup{font-size:.38em;letter-spacing:0;vertical-align:super;line-height:0;margin-left:.08em;}
.qv-stat > span{color:var(--ink-muted);font-weight:600;font-size:.98rem;max-width:26ch;}
@media (min-width:760px){
  .qv-stats__row{grid-template-columns:repeat(3,1fr);}
  .qv-stat{border-top:0;border-left:1px solid var(--line-soft);padding:var(--md);}
  .qv-stat:first-child{border-left:0;padding-left:0;}
}

/* ---------- Services bento ---------- */
.qv-bento__card{overflow:hidden;}
.qv-bento__card--lg{background:linear-gradient(160deg,var(--surface-raised),var(--surface));min-height:250px;}
.qv-bento__card::before{content:'';position:absolute;inset:0;background:radial-gradient(420px circle at var(--mx,50%) var(--my,0%),rgba(255,122,26,.18),transparent 60%);opacity:0;transition:opacity .35s ease;pointer-events:none;}
.qv-bento__card:hover::before{opacity:1;}
.qv-bento__icon{transition:transform .45s var(--ease),color .3s ease;}
.qv-bento__card:hover .qv-bento__icon{transform:translateY(-3px) rotate(-7deg) scale(1.1);color:var(--accent-soft);}
.qv-bento__card a{transition:color .25s ease,letter-spacing .3s var(--ease);}
.qv-bento__card:hover a{color:var(--accent);letter-spacing:.1em;}

/* ---------- Why: live wire timeline ---------- */
.qv-timeline{position:relative;--p:1;}
.qv-timeline::before{content:'';position:absolute;left:23px;top:30px;bottom:30px;width:2px;background:var(--line-soft);}
.qv-timeline::after{content:'';position:absolute;left:23px;top:30px;width:2px;height:calc((100% - 60px) * var(--p));background:linear-gradient(180deg,var(--accent-soft),var(--accent));box-shadow:0 0 14px var(--glow);}
.qv-why__list.qv-timeline li{border:0;padding-block:18px;gap:22px;align-items:flex-start;}
.qv-why__node{position:relative;z-index:1;flex:none;width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:var(--bg);border:1px solid var(--line-soft);color:var(--ink-muted);transition:border-color .4s ease,color .4s ease,box-shadow .4s ease;}
.qv-why__node svg{width:22px;height:22px;}
.qv-timeline li.is-lit .qv-why__node{border-color:var(--accent);color:var(--accent);box-shadow:0 0 0 6px rgba(255,122,26,.1),0 0 22px -4px var(--glow);}
.qv-why__list.qv-timeline h3{font-size:1.15rem;margin-top:2px;}

/* ---------- Our work: varied photo grid ---------- */
.qv-shots{display:grid;gap:24px;margin-top:var(--md);}
.qv-shot{position:relative;margin:0;display:flex;flex-direction:column;gap:12px;}
.qv-shot__art{position:relative;overflow:hidden;aspect-ratio:4/3;background:linear-gradient(135deg,var(--surface-raised),var(--surface));border:1px solid var(--line);clip-path:polygon(0 0,calc(100% - 24px) 0,100% 24px,100% 100%,0 100%);}
.qv-shot__art img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease);}
.qv-shot:hover .qv-shot__art img{transform:scale(1.06);}
.qv-shot figcaption span{display:block;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);margin-bottom:2px;}
.qv-shot figcaption strong{font-family:var(--font-display);font-size:1.1rem;}
@media (min-width:860px){
  .qv-shots{grid-template-columns:7fr 5fr;grid-template-rows:auto auto;column-gap:28px;}
  .qv-shot--tall{grid-row:span 2;}
  .qv-shot--tall .qv-shot__art{aspect-ratio:auto;flex:1;min-height:520px;}
  .qv-shot--tall .qv-shot__art img{object-position:50% 30%;}
}

/* ---------- CTA with photo that breaks its frame ---------- */
.qv-cta--live{display:grid;gap:0;padding:0;overflow:visible;background:linear-gradient(120deg,var(--surface-raised),var(--surface) 62%);}
.qv-cta--live .qv-cta__copy{display:flex;flex-direction:column;align-items:flex-start;gap:20px;padding:var(--lg) var(--md);}
.qv-cta__actions{display:flex;flex-wrap:wrap;align-items:center;gap:22px;}
.qv-cta__photo{position:relative;min-height:260px;overflow:hidden;background:linear-gradient(135deg,var(--surface),var(--surface-raised));clip-path:polygon(0 0,calc(100% - 28px) 0,100% 28px,100% 100%,0 100%);}
.qv-cta__photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:38% 40%;}
@media (min-width:860px){
  .qv-cta--live{grid-template-columns:1.05fr .95fr;align-items:center;}
  .qv-cta__photo{align-self:stretch;margin:-44px -24px -44px 0;min-height:360px;}
}

/* ---------- Mobile call bar ---------- */
.qv-callbar{display:none;}
@media (max-width:759px){
  .qv-callbar{position:fixed;left:0;right:0;bottom:0;z-index:90;display:flex;gap:10px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:rgba(18,15,12,.95);backdrop-filter:blur(10px);border-top:1px solid var(--line);box-shadow:0 -16px 30px -20px rgba(255,122,26,.5);}
  .qv-callbar a{flex:1;justify-content:center;}
  body.qv-site{padding-bottom:76px;}
}
.qv-callbar__call{display:inline-flex;align-items:center;gap:8px;padding:.9em 1.2em;border:1px solid var(--accent);border-radius:var(--r-pill);font-weight:700;font-size:.85rem;letter-spacing:.02em;text-transform:uppercase;color:var(--accent-soft);}
.qv-callbar__call svg{width:18px;height:18px;}

@media (prefers-reduced-motion: reduce){
  .qv-marquee{overflow-x:auto;}
  .qv-traces .pulse{display:none;}
}
