/* NEXUM polish layer. Loaded after the base and theme sheets; removing this file and polish.js restores the previous look. */

:root {
  --edge: rgba(143, 166, 255, .14);
  --edge-2: rgba(143, 166, 255, .3);
  --glass: rgba(255, 255, 255, .025);
  --glass-2: rgba(255, 255, 255, .055);
  --spot: rgba(59, 91, 255, .17);
  --lift: rgba(59, 91, 255, .5);
  --amb-a: rgba(59, 91, 255, .2);
  --amb-b: rgba(255, 107, 53, .11);
  --amb-c: rgba(18, 184, 134, .07);
  --dots: rgba(143, 166, 255, .17);
  --dots-lit: rgba(190, 204, 255, .7);
  --ease: cubic-bezier(.2, .7, .2, 1);
  --radius: 18px;
}
html[data-theme="cyberpunk"] {
  --edge: rgba(34, 231, 255, .16);
  --edge-2: rgba(34, 231, 255, .38);
  --glass: rgba(34, 231, 255, .022);
  --glass-2: rgba(34, 231, 255, .05);
  --spot: rgba(34, 231, 255, .15);
  --lift: rgba(34, 231, 255, .42);
  --amb-a: rgba(34, 231, 255, .13);
  --amb-b: rgba(255, 43, 214, .15);
  --amb-c: rgba(122, 43, 255, .14);
  --dots: rgba(34, 231, 255, .15);
  --dots-lit: rgba(184, 251, 255, .8);
}

html { scrollbar-color: var(--line-2) var(--ink); }
::selection { background: var(--heat); color: var(--ink); }
:focus-visible { outline: 2px solid var(--blue-soft); outline-offset: 3px; border-radius: 4px; }

/* Ambient light behind every transparent section */
.ambient {
  position: fixed;
  inset: 0;
  z-index: -1;
  overflow: hidden;
  pointer-events: none;
}
.ambient .amb {
  position: absolute;
  width: 72vmax;
  height: 72vmax;
  border-radius: 50%;
  will-change: transform;
}
.ambient .amb-1 {
  left: -26vmax;
  top: -34vmax;
  background: radial-gradient(closest-side, var(--amb-a), transparent);
  animation: amb-1 36s ease-in-out infinite alternate;
}
.ambient .amb-2 {
  right: -30vmax;
  top: 14vh;
  background: radial-gradient(closest-side, var(--amb-b), transparent);
  animation: amb-2 44s ease-in-out infinite alternate;
}
.ambient .amb-3 {
  left: 6vw;
  bottom: -46vmax;
  background: radial-gradient(closest-side, var(--amb-c), transparent);
  animation: amb-3 52s ease-in-out infinite alternate;
}
.ambient::after {
  content: "";
  position: absolute;
  inset: 0;
  opacity: .055;
  background-size: 180px 180px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .7 0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23g)'/%3E%3C/svg%3E");
}
html[data-theme="cyberpunk"] .ambient::before {
  content: "";
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(180deg, rgba(184, 251, 255, .028) 0 1px, transparent 1px 4px);
}
@keyframes amb-1 { to { transform: translate3d(16vw, 12vh, 0) scale(1.12); } }
@keyframes amb-2 { to { transform: translate3d(-14vw, 22vh, 0) scale(.9); } }
@keyframes amb-3 { to { transform: translate3d(20vw, -14vh, 0) scale(1.16); } }

.marquee {
  background: radial-gradient(680px 120px at 50% 0%, rgba(255, 107, 53, .2), transparent 72%);
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 7%, #000 93%, transparent 100%);
  mask-image: linear-gradient(90deg, transparent 0, #000 7%, #000 93%, transparent 100%);
}
html[data-theme="cyberpunk"] .marquee {
  background: radial-gradient(680px 120px at 50% 0%, rgba(255, 43, 214, .26), transparent 72%);
}
.marquee a { transition: color .3s, text-shadow .3s; }

.about-band,
.numbers,
.contact-band,
.site-footer {
  background: color-mix(in srgb, var(--ink-2) 80%, transparent);
}

/* Header */
.site-header {
  background: rgba(11, 13, 20, .6);
  transition: background-color .4s var(--ease), box-shadow .4s var(--ease);
}
.site-header.is-scrolled {
  background: rgba(11, 13, 20, .86);
  box-shadow: 0 14px 40px -20px rgba(0, 0, 0, .8);
}
html[data-theme="cyberpunk"] .site-header { background: rgba(7, 6, 13, .58); }
html[data-theme="cyberpunk"] .site-header.is-scrolled {
  background: rgba(7, 6, 13, .88);
  box-shadow: 0 0 24px rgba(34, 231, 255, .14), 0 14px 40px -20px rgba(0, 0, 0, .85);
}
.site-header::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: 2px;
  pointer-events: none;
  transform-origin: 0 50%;
  transform: scaleX(var(--progress, 0));
  background: linear-gradient(90deg, var(--heat), var(--blue));
  box-shadow: 0 0 12px rgba(255, 107, 53, .45);
}
html[data-theme="cyberpunk"] .site-header::after { box-shadow: 0 0 14px rgba(255, 43, 214, .7); }

.nav-links a {
  position: relative;
  padding: 6px 0;
  transition: color .25s;
}
.nav-links a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 2px;
  border-radius: 2px;
  background: var(--heat);
  transform: scaleX(0);
  transform-origin: 100% 50%;
  transition: transform .4s var(--ease);
}
.nav-links a:hover::after,
.nav-links a[aria-current="true"]::after {
  transform: scaleX(1);
  transform-origin: 0 50%;
}
.nav-links a[aria-current="true"] { color: var(--txt); }

.lang-btn,
.theme-switch { transition: border-color .25s, box-shadow .25s, color .25s; }
.theme-switch:hover { box-shadow: 0 0 0 4px rgba(255, 107, 53, .1); }
html[data-theme="cyberpunk"] .theme-switch:hover { box-shadow: 0 0 16px rgba(34, 231, 255, .35); }
.lang-menu {
  border-color: var(--edge-2);
  background: color-mix(in srgb, var(--ink-2) 94%, transparent);
}
.lang-menu.open { animation: pl-pop .22s var(--ease); transform-origin: 100% 0; }
.mobile-menu { background: color-mix(in srgb, var(--ink-2) 96%, transparent); }
.mobile-menu.open { animation: pl-drop .32s var(--ease); }
@keyframes pl-pop { from { opacity: 0; transform: translateY(-6px) scale(.97); } }
@keyframes pl-drop { from { opacity: 0; transform: translateY(-10px); } }

/* Buttons */
.btn {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  transition: transform .2s var(--ease), background-color .2s, color .2s, border-color .2s, box-shadow .3s var(--ease);
}
.btn::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background: linear-gradient(115deg, transparent 32%, rgba(255, 255, 255, .42) 50%, transparent 68%);
  transform: translateX(-115%);
  transition: transform .85s var(--ease);
}
.btn-line::before { background: linear-gradient(115deg, transparent 32%, rgba(255, 255, 255, .14) 50%, transparent 68%); }
.btn-heat { box-shadow: 0 12px 30px -14px rgba(255, 107, 53, .75); }
.btn-line { background-color: rgba(255, 255, 255, .02); }
@media (hover: hover) {
  .btn:hover::before { transform: translateX(115%); }
  .btn-heat:hover { box-shadow: 0 18px 40px -14px rgba(255, 107, 53, .9); }
  .btn-line:hover { background-color: rgba(255, 255, 255, .06); }
}
html[data-theme="cyberpunk"] .btn-heat { box-shadow: 0 0 22px rgba(255, 43, 214, .45); }
@media (hover: hover) {
  html[data-theme="cyberpunk"] .btn-heat:hover { box-shadow: 0 0 34px rgba(255, 43, 214, .75); }
  html[data-theme="cyberpunk"] .btn-line:hover { border-color: var(--blue); box-shadow: 0 0 18px rgba(34, 231, 255, .3); }
}

/* Hero */
.hero-fx {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
}
.hfx-grid,
.hfx-lit {
  position: absolute;
  inset: 0;
  background-size: 26px 26px;
  background-position: 13px 13px;
}
.hfx-grid {
  background-image: radial-gradient(var(--dots) 1px, transparent 1.6px);
  -webkit-mask-image: radial-gradient(ellipse 62% 70% at 30% 52%, #000 0%, transparent 74%);
  mask-image: radial-gradient(ellipse 62% 70% at 30% 52%, #000 0%, transparent 74%);
}
.hfx-lit {
  background-image: radial-gradient(var(--dots-lit) 1.1px, transparent 1.7px);
  -webkit-mask-image: radial-gradient(240px circle at var(--hx, -999px) var(--hy, -999px), #000, transparent 72%);
  mask-image: radial-gradient(240px circle at var(--hx, -999px) var(--hy, -999px), #000, transparent 72%);
  opacity: 0;
  transition: opacity .5s var(--ease);
}
.hero-fx.is-lit .hfx-lit { opacity: 1; }
.hfx-floor { display: none; }
html[data-theme="cyberpunk"] .hfx-floor {
  display: block;
  position: absolute;
  left: -30%;
  right: -30%;
  bottom: 0;
  height: 56%;
  perspective: 440px;
  perspective-origin: 50% 0%;
  opacity: .5;
  -webkit-mask-image: linear-gradient(to top, #000 0%, rgba(0, 0, 0, .55) 34%, transparent 80%);
  mask-image: linear-gradient(to top, #000 0%, rgba(0, 0, 0, .55) 34%, transparent 80%);
}
html[data-theme="cyberpunk"] .hfx-floor::before {
  content: "";
  position: absolute;
  inset: -45% 0 0 0;
  background-image:
    linear-gradient(rgba(34, 231, 255, .6) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 43, 214, .55) 1px, transparent 1px);
  background-size: 72px 72px;
  transform-origin: 50% 100%;
  transform: rotateX(64deg) translateY(0);
  animation: pl-floor 3s linear infinite;
}
@keyframes pl-floor { to { transform: rotateX(64deg) translateY(72px); } }

.hero-meta .pip { position: relative; }
.hero-meta .pip::after {
  content: "";
  position: absolute;
  inset: -4px;
  border-radius: 50%;
  border: 1px solid var(--mint);
  animation: pl-pip 2.6s ease-out infinite;
}
@keyframes pl-pip {
  from { transform: scale(.5); opacity: .9; }
  to { transform: scale(2.3); opacity: 0; }
}
/* The headline and paragraph are the largest paint, so they move without fading in. */
@media (prefers-reduced-motion: no-preference) {
  .js .hero h1 .l,
  .js .hero-side p { animation: pl-settle 1.1s var(--ease) both; }
  .js .hero h1 .l:nth-child(2) { animation-delay: .06s; }
  .js .hero h1 .l:nth-child(3) { animation-delay: .12s; }
  .js .hero-side p { animation-delay: .18s; }
  .js .hero-meta,
  .js .hero-side .btn-row { animation: pl-rise .9s var(--ease) both; }
  .js .hero-side .btn-row { animation-delay: .28s; }
}
@keyframes pl-settle { from { transform: translate3d(0, 18px, 0); } }
@keyframes pl-rise { from { opacity: 0; transform: translate3d(0, 18px, 0); } }

/* Headings */
.sec-head + .lead { margin-top: 22px; }
.sec-head em {
  background-image: linear-gradient(100deg, var(--blue) 8%, #8299ff 52%, var(--blue) 96%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
html[data-theme="cyberpunk"] .sec-head em {
  background-image: linear-gradient(100deg, #22e7ff 0%, #b8fbff 42%, #ff2bd6 100%);
  text-shadow: none;
  filter: drop-shadow(0 0 14px rgba(34, 231, 255, .3));
}
.kick::before { transition: width .9s var(--ease) .1s; }
html[data-theme="cyberpunk"] .kick::before { box-shadow: 0 0 10px var(--heat); }

/* Portfolio frames */
.piece-art {
  border-radius: 16px;
  border-color: var(--edge);
  box-shadow: 0 44px 90px -54px rgba(0, 0, 0, .95), inset 0 0 0 1px rgba(255, 255, 255, .02);
  transition: transform .7s var(--ease), box-shadow .7s var(--ease), border-color .5s;
}
@media (hover: hover) {
  .piece:hover .piece-art {
    transform: translateY(-6px);
    border-color: var(--edge-2);
    box-shadow: 0 50px 100px -56px var(--lift), inset 0 0 0 1px rgba(255, 255, 255, .03);
  }
}
html[data-theme="cyberpunk"] .piece-art { box-shadow: 0 0 0 1px rgba(34, 231, 255, .06), 0 44px 90px -54px rgba(0, 0, 0, .95); }

/* Shared card light */
.spot {
  position: relative;
  isolation: isolate;
}
.spot::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  border-radius: inherit;
  pointer-events: none;
  background: radial-gradient(380px circle at var(--mx, 50%) var(--my, 0%), var(--spot), transparent 64%);
  opacity: 0;
  transition: opacity .45s var(--ease);
}
@media (hover: hover) {
  .spot:hover::before { opacity: 1; }
}

/* Capabilities */
.caps {
  gap: 14px;
  border-top: 0;
}
@media (min-width: 900px) {
  .caps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.cap {
  position: relative;
  isolation: isolate;
  grid-template-columns: auto minmax(0, 1fr);
  grid-template-areas: "cn h" ". d";
  column-gap: 18px;
  row-gap: 8px;
  align-items: center;
  align-content: start;
  padding: clamp(20px, 2.4vw, 30px);
  border: 1px solid var(--edge);
  border-radius: var(--radius);
  background: linear-gradient(160deg, var(--glass-2), var(--glass) 62%);
  transition: border-color .4s, transform .5s var(--ease), box-shadow .5s var(--ease);
}
.cap .cn {
  grid-area: cn;
  display: inline-grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 12px;
  border: 1px solid rgba(255, 107, 53, .32);
  background: rgba(255, 107, 53, .07);
  font-size: .74rem;
  letter-spacing: .04em;
}
.cap h3 { grid-area: h; }
.cap > div { grid-area: d; }
@media (hover: hover) {
  .cap:hover {
    border-color: var(--edge-2);
    transform: translateY(-3px);
    box-shadow: 0 26px 60px -38px var(--lift);
  }
}
.cap:target {
  border-color: var(--heat);
  box-shadow: 0 0 0 1px rgba(255, 107, 53, .35), 0 24px 60px -34px rgba(255, 107, 53, .7);
  animation: pl-ping 1.4s var(--ease) 1;
}
@keyframes pl-ping {
  0% { box-shadow: 0 0 0 0 rgba(255, 107, 53, .55); }
  100% { box-shadow: 0 0 0 1px rgba(255, 107, 53, .35), 0 24px 60px -34px rgba(255, 107, 53, .7); }
}
html[data-theme="cyberpunk"] .cap .cn {
  border-color: rgba(255, 43, 214, .45);
  background: rgba(255, 43, 214, .08);
  box-shadow: 0 0 14px rgba(255, 43, 214, .25);
}
@media (hover: hover) {
  html[data-theme="cyberpunk"] .cap:hover { box-shadow: 0 0 0 1px rgba(34, 231, 255, .18), 0 0 34px -8px rgba(34, 231, 255, .4); }
}

/* Numbers */
.numbers { position: relative; }
.numbers::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(52% 130% at 50% 100%, rgba(59, 91, 255, .14), transparent 70%),
    radial-gradient(34% 110% at 8% 0%, rgba(255, 107, 53, .1), transparent 70%);
}
.numbers .wrap { position: relative; }
.num.hot b { text-shadow: 0 0 44px rgba(255, 107, 53, .28); }
html[data-theme="cyberpunk"] .numbers::before {
  background:
    radial-gradient(52% 130% at 50% 100%, rgba(34, 231, 255, .12), transparent 70%),
    radial-gradient(34% 110% at 8% 0%, rgba(255, 43, 214, .14), transparent 70%);
}
html[data-theme="cyberpunk"] .num.hot b { text-shadow: 0 0 34px rgba(255, 43, 214, .45); }
html[data-theme="cyberpunk"] .num b i { text-shadow: 0 0 26px rgba(34, 231, 255, .45); }

/* Method */
.prin > div {
  position: relative;
  isolation: isolate;
  padding: 22px clamp(18px, 2vw, 26px) 26px;
  border: 1px solid var(--edge);
  border-top: 2px solid var(--heat);
  border-radius: 0 0 16px 16px;
  background: linear-gradient(180deg, rgba(255, 107, 53, .07), transparent 48%), var(--glass);
}
html[data-theme="cyberpunk"] .prin > div {
  background: linear-gradient(180deg, rgba(255, 43, 214, .09), transparent 48%), var(--glass);
  box-shadow: 0 -8px 24px -16px rgba(255, 43, 214, .6);
}
@media (min-width: 880px) {
  .steps {
    --spt: clamp(28px, 4vw, 44px);
    position: relative;
    padding-top: var(--spt);
    border-top-color: transparent;
  }
  .steps::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: -1px;
    height: 1px;
    transform-origin: 0 50%;
    background: linear-gradient(90deg, var(--heat), var(--blue) 56%, transparent);
    transition: transform 1.6s var(--ease);
  }
  html.pl-motion .steps.rv-line:not(.rv-in)::before { transform: scaleX(0); }
  .step { position: relative; }
  .step::after {
    content: "";
    position: absolute;
    left: 4px;
    top: calc(-1 * var(--spt) - 5px);
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--heat);
    box-shadow: 0 0 0 4px rgba(255, 107, 53, .14), 0 0 18px rgba(255, 107, 53, .7);
  }
  html[data-theme="cyberpunk"] .step::after { box-shadow: 0 0 0 4px rgba(255, 43, 214, .16), 0 0 18px rgba(255, 43, 214, .9); }
}

/* About */
.about-band::before {
  content: "";
  position: absolute;
  left: 30%;
  right: -10%;
  bottom: -40%;
  height: 80%;
  pointer-events: none;
  background: radial-gradient(closest-side, rgba(59, 91, 255, .16), transparent);
}
html[data-theme="cyberpunk"] .about-band::before { background: radial-gradient(closest-side, rgba(255, 43, 214, .16), transparent); }
.about-band .wrap { position: relative; z-index: 1; }
.about-band::after {
  top: -60px;
  bottom: auto;
  right: -60px;
  animation: pl-spin 90s linear infinite;
}
@keyframes pl-spin { to { transform: rotate(360deg); } }
@media (min-width: 960px) {
  .about-band .hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr);
    gap: clamp(36px, 5vw, 88px);
  }
}
.about-band .hero-grid > div:last-child {
  position: relative;
  isolation: isolate;
  padding: clamp(20px, 2.4vw, 30px);
  border: 1px solid var(--edge);
  border-radius: var(--radius);
  background: linear-gradient(160deg, var(--glass-2), var(--glass) 62%);
}
.about-band .spec { border-top: 0; }
.about-band .spec li:last-child { border-bottom: 0; }
.mini-tags span,
.tags span {
  border-radius: 999px;
  padding: 6px 12px;
  border-color: var(--edge-2);
  background: var(--glass);
  transition: border-color .25s, color .25s;
}
@media (hover: hover) {
  .mini-tags span:hover { border-color: var(--heat); color: var(--txt); }
}

/* Pricing and FAQ sit on the same glass panel */
.price-list,
.faq {
  border: 1px solid var(--edge);
  border-radius: 22px;
  padding: 4px clamp(18px, 2.6vw, 34px);
  background: linear-gradient(170deg, var(--glass-2), var(--glass) 55%);
  box-shadow: 0 40px 100px -70px var(--lift);
}
.price-row:last-child,
.faq details:last-child { border-bottom: 0; }

.price-row {
  position: relative;
  isolation: isolate;
}
.price-row::before {
  content: "";
  position: absolute;
  inset: 0 -16px;
  z-index: -1;
  border-radius: 14px;
  pointer-events: none;
  background: linear-gradient(90deg, var(--glass-2), transparent 82%);
  opacity: 0;
  transition: opacity .35s var(--ease);
}
.price-row::after {
  content: "";
  position: absolute;
  left: -16px;
  top: 26%;
  bottom: 26%;
  width: 3px;
  border-radius: 3px;
  background: var(--heat);
  transform: scaleY(0);
  transition: transform .4s var(--ease);
}
.price-row b { transition: color .3s, transform .4s var(--ease); }
@media (hover: hover) {
  .price-row:hover::before { opacity: 1; }
  .price-row:hover::after { transform: scaleY(1); }
  .price-row:hover b { color: var(--heat); transform: translateX(-4px); }
}

/* FAQ */
.faq details { position: relative; }
.faq details::before {
  content: "";
  position: absolute;
  left: -16px;
  top: 18px;
  bottom: 18px;
  width: 3px;
  border-radius: 3px;
  background: var(--heat);
  transform: scaleY(0);
  transform-origin: 50% 0;
  transition: transform .45s var(--ease);
}
.faq details[open]::before { transform: scaleY(1); }
.faq summary { transition: color .25s, padding-left .35s var(--ease); }
@media (hover: hover) {
  .faq summary:hover { color: var(--blue-soft); padding-left: 8px; }
}
.faq details[open] > p { animation: pl-fade .5s var(--ease); }
@keyframes pl-fade { from { opacity: 0; transform: translateY(-6px); } }
@supports selector(::details-content) {
  .faq { interpolate-size: allow-keywords; }
  .faq details::details-content {
    block-size: 0;
    overflow-y: clip;
    transition: block-size .45s var(--ease), content-visibility .45s allow-discrete;
  }
  .faq details[open]::details-content { block-size: auto; }
}
/* CTA band: fade the photo into the page above and below */
.cta-band::after {
  background:
    linear-gradient(180deg, var(--ink) 0%, transparent 13%, transparent 87%, var(--ink-2) 100%),
    linear-gradient(90deg, rgba(11, 13, 20, .84) 0%, rgba(11, 13, 20, .36) 48%, rgba(11, 13, 20, .06) 100%);
}
html[data-theme="cyberpunk"] .cta-band::after {
  background:
    linear-gradient(180deg, var(--ink) 0%, transparent 13%, transparent 87%, var(--ink-2) 100%),
    linear-gradient(90deg, rgba(7, 6, 13, .72) 0%, rgba(7, 6, 13, .18) 42%, rgba(7, 6, 13, 0) 100%);
}
.cta-band h2 { text-shadow: 0 12px 44px rgba(0, 0, 0, .55); }

/* Contact */
.contact-band .form-wrap {
  border: 1px solid transparent;
  border-radius: 20px;
  background:
    linear-gradient(var(--ink), var(--ink)) padding-box,
    linear-gradient(140deg, rgba(59, 91, 255, .62), rgba(255, 107, 53, .34) 38%, rgba(143, 166, 255, .08) 72%) border-box;
  box-shadow: 0 50px 120px -64px rgba(59, 91, 255, .6);
}
html[data-theme="cyberpunk"] .contact-band .form-wrap {
  background:
    linear-gradient(var(--ink), var(--ink)) padding-box,
    linear-gradient(140deg, rgba(34, 231, 255, .62), rgba(255, 43, 214, .4) 40%, rgba(34, 231, 255, .08) 72%) border-box;
  box-shadow: 0 0 40px -18px rgba(34, 231, 255, .45), 0 50px 120px -64px rgba(255, 43, 214, .5);
}
.field input,
.field select,
.field textarea {
  border-radius: 10px;
  transition: border-color .25s, box-shadow .25s, background-color .25s;
}
@media (hover: hover) {
  .field input:hover,
  .field select:hover,
  .field textarea:hover { border-color: var(--edge-2); }
}
html[data-theme="cyberpunk"] .field input:focus,
html[data-theme="cyberpunk"] .field select:focus,
html[data-theme="cyberpunk"] .field textarea:focus {
  border-color: var(--blue);
  box-shadow: 0 0 0 3px rgba(34, 231, 255, .2), 0 0 18px rgba(34, 231, 255, .2);
}
.c-list b { transition: color .25s; }
@media (hover: hover) {
  .c-list li:hover b { color: var(--heat); }
}

/* Footer */
.site-footer {
  position: relative;
  border-top-color: transparent;
}
.site-footer::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: -1px;
  height: 1px;
  pointer-events: none;
  background: linear-gradient(90deg, transparent, var(--blue) 30%, var(--heat) 70%, transparent);
  opacity: .75;
}
.site-footer a { transition: color .2s; }

/* Theme gate */
.gate[data-open] .gate-card { animation: pl-gate .5s var(--ease) both; }
@keyframes pl-gate { from { opacity: 0; transform: translateY(16px) scale(.97); } }
.gate-opt { transition: transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s; }
@media (hover: hover) {
  .gate-opt:hover { transform: translateY(-3px); }
  .gate-opt[data-choice="present"]:hover { box-shadow: inset 4px 0 0 var(--blue), 0 22px 50px -28px rgba(59, 91, 255, .85); }
  .gate-opt[data-choice="futuristic"]:hover { box-shadow: 0 0 28px rgba(0, 217, 255, .75), inset 0 0 22px rgba(0, 217, 255, .18); }
}

/* Scroll reveals. Only armed by polish.js for content that starts below the fold. */
html.pl-motion .rv:not(.rv-in) {
  opacity: 0;
  transform: translate3d(0, 24px, 0);
}
html.pl-motion .sec-head.rv:not(.rv-in) { filter: blur(8px); }
html.pl-motion .kick.rv:not(.rv-in)::before { width: 0; }
html.pl-motion .rv.rv-in {
  transition:
    opacity .9s var(--ease) var(--rv-d, 0s),
    transform .9s var(--ease) var(--rv-d, 0s),
    filter .9s var(--ease) var(--rv-d, 0s);
}

@media (max-width: 760px) {
  .ambient .amb { animation: none; will-change: auto; }
  .with-frame::before { width: 44px; height: 44px; top: 10px; }
  .about-band::after { width: 180px; height: 180px; top: -56px; right: -64px; }
  .price-row::before,
  .price-row::after,
  .faq details::before { left: -10px; }
  .price-row::before { inset: 0 -10px; }
}
@media (max-width: 420px) {
  .hero-side .btn-row { margin-top: 26px; }
}
@media print {
  html.pl-motion .rv { opacity: 1 !important; transform: none !important; filter: none !important; }
  .ambient, .hero-fx, .hero-globe { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .ambient .amb,
  .hero-meta .pip::after,
  .about-band::after,
  html[data-theme="cyberpunk"] .hfx-floor::before { animation: none !important; }
  .hero-meta .pip::after { display: none; }
}
