/*! Veriquest base styles (extracted from the design output — unchanged). */
*{box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{margin:0;padding:0}
body{background:#0A0F1A;color:#EFF3F9;font-family:'Zen Kaku Gothic New',sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img{max-width:100%;display:block}
::selection{background:#2E7BFF;color:#fff}
:focus{outline:none}
:focus-visible{outline:2px solid #2E7BFF;outline-offset:3px;border-radius:1px}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-delay:0ms!important;transition-duration:.001ms!important}
}

/* Honeypot field — visually hidden, off the tab order, ignored by AT. */
.vq-hp{position:absolute!important;left:-9999px!important;top:auto;width:1px;height:1px;overflow:hidden}

/* Ambient rotating wireframe globe — Process (制作の流れ) section backdrop. */
.vqg-orbit{position:absolute;top:50%;right:-92px;width:440px;height:440px;transform:translateY(-50%);opacity:.8;pointer-events:none}
.vqg-orbit canvas{display:block;width:100%;height:100%}
@media (max-width:768px){.vqg-orbit{right:-150px;width:340px;height:340px;opacity:.55}}

/* Footer light streak — fired at random 5.5–9.5s intervals by assets/js/flare.js. */
.vqf-flare{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.vqf-beam{position:absolute;left:0;top:55%;display:block;width:min(44vw,520px);height:2px;border-radius:1px;opacity:0;transform:translate3d(-102%,0,0);background:linear-gradient(90deg,rgba(34,211,196,0),rgba(34,211,196,.28) 30%,rgba(46,123,255,.62) 62%,rgba(155,203,255,.92) 86%,#fff);mix-blend-mode:screen;filter:drop-shadow(0 0 5px rgba(88,150,255,.9)) drop-shadow(0 0 16px rgba(46,123,255,.55))}
.vqf-beam::after{content:"";position:absolute;right:-8px;top:50%;width:18px;height:18px;transform:translateY(-50%);border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.95),rgba(130,190,255,.4) 45%,rgba(46,123,255,0) 72%)}
.vqf-beam.vqf-run{will-change:transform,opacity;animation:vqf-sweep .84s cubic-bezier(.45,.05,.2,1) both}
@keyframes vqf-sweep{0%{transform:translate3d(-102%,0,0);opacity:0}8%{opacity:1}82%{opacity:1}100%{transform:translate3d(calc(100vw + 102%),0,0);opacity:0}}

/* Services firefly field — slow star-twinkle + Lissajous float, driven by assets/js/fireflies.js. */
.vqs-field{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.vqs-dot{position:absolute}
.vqs-dot::after{content:"";position:absolute;inset:0;border-radius:50%;opacity:0;background:radial-gradient(circle,rgba(255,255,255,.92) 0%,var(--c) 30%,rgba(0,0,0,0) 68%)}
@media (prefers-reduced-motion: no-preference){
.vqs-field.vqs-on .vqs-dot{animation:vqs-fx var(--fx) ease-in-out var(--px) infinite alternate}
.vqs-field.vqs-on .vqs-dot::after{animation:vqs-tw var(--tw) ease-in-out var(--d) infinite,vqs-fy var(--fy) ease-in-out var(--py) infinite alternate}
}
@keyframes vqs-tw{0%,100%{opacity:0}50%{opacity:var(--p)}}
@keyframes vqs-fx{from{transform:translate3d(calc(-1*var(--ax)),0,0)}to{transform:translate3d(var(--ax),0,0)}}
@keyframes vqs-fy{from{transform:translate3d(0,calc(-1*var(--ay)),0)}to{transform:translate3d(0,var(--ay),0)}}
