/* One backdrop and one continuous frame, independent of section boundaries. */
:root {
  --scene-glow: 218,31,64;
  --frame-inset: clamp(12px,1.8vw,28px);
  --ambient-width: clamp(440px,78vw,1160px);
  --ambient-height: clamp(660px,70vw,1000px);
}
body {
  position: relative;
  isolation: isolate;
  background-color: #0b090b;
  background-image:
    radial-gradient(ellipse var(--ambient-width) 820px at 96% 520px,rgba(var(--scene-glow),.21),transparent 74%),
    radial-gradient(ellipse var(--ambient-width) var(--ambient-height) at -8% 27%,rgba(var(--scene-glow),.14),transparent 75%),
    radial-gradient(ellipse var(--ambient-width) var(--ambient-height) at 108% 49%,rgba(var(--scene-glow),.14),transparent 75%),
    radial-gradient(ellipse var(--ambient-width) var(--ambient-height) at -8% 72%,rgba(var(--scene-glow),.11),transparent 75%),
    radial-gradient(ellipse var(--ambient-width) 840px at 98% 96%,rgba(var(--scene-glow),.14),transparent 76%),
    linear-gradient(180deg,#0b090b 0%,#100c10 34%,#0e0b0f 68%,#0b090c 100%);
}
body::before {
  content: ""; position: absolute; inset: 0; z-index: -2; pointer-events: none;
  background-image: linear-gradient(rgba(227,153,173,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(227,153,173,.045) 1px,transparent 1px);
  background-size: 88px 88px;
  -webkit-mask-image: linear-gradient(90deg,#000,rgba(0,0,0,.2) 28%,rgba(0,0,0,.16) 62%,#000);
  mask-image: linear-gradient(90deg,#000,rgba(0,0,0,.2) 28%,rgba(0,0,0,.16) 62%,#000);
}
.page-frame {
  position: absolute; inset: 0; z-index: -1; overflow: hidden;
  pointer-events: none; user-select: none;
}
.page-frame::before,.page-frame::after {
  content: ""; position: absolute; top: 0; bottom: 0; width: 1px;
  background: linear-gradient(180deg,transparent,rgba(var(--scene-glow),.24) 6%,rgba(var(--scene-glow),.11) 19%,rgba(var(--scene-glow),.24) 39%,rgba(var(--scene-glow),.10) 58%,rgba(var(--scene-glow),.22) 78%,transparent);
  box-shadow: 0 0 16px 1px rgba(var(--scene-glow),.045);
}
.page-frame::before { left: var(--frame-inset); }
.page-frame::after { right: var(--frame-inset); }
.page-light-trace {
  position: absolute; top: 140px; left: 0; width: 100%; height: clamp(1000px,80vw,1240px);
  overflow: visible; fill: none;
}
.page-light-trace use { vector-effect: non-scaling-stroke; }
.light-trace-halo { stroke-width: 12px; opacity: .08; }
.light-trace-line { stroke-width: 1px; opacity: .7; }
.section-wrap::before,.section-wrap::after {
  content: ""; position: absolute; top: 14px; width: 9px; height: 9px;
  pointer-events: none; opacity: .56;
  background: linear-gradient(rgb(var(--scene-glow)),rgb(var(--scene-glow))) center / 1px 100% no-repeat,linear-gradient(rgb(var(--scene-glow)),rgb(var(--scene-glow))) center / 100% 1px no-repeat;
}
.section-wrap::before { left: calc(var(--frame-inset) - 4px); }
.section-wrap::after { right: calc(var(--frame-inset) - 4px); }
@media (max-width:900px) {
  :root { --frame-inset: 9px; }
  body::before { background-size: 64px 64px; opacity: .7; }
  .page-frame::before,.page-frame::after { opacity: .65; }
  .page-light-trace { top: 240px; height: 1120px; opacity: .7; }
  .section-wrap::before,.section-wrap::after { width: 5px; height: 5px; opacity: .5; }
  .section-wrap::before { left: calc(var(--frame-inset) - 2px); }
  .section-wrap::after { right: calc(var(--frame-inset) - 2px); }
}
.hero,.work,.about,.services,.faq,.contact,.site-footer { background: transparent; }
.services,.faq,.contact,.site-footer { border-top: 0; }
.hero-topline { border-top: 0; padding-top: 0; }
.hero-bottom { border-top: 0; padding-top: 12px; }
.work-group-heading { border-top: 0; padding-top: 0; }
.service-list,.contact-bottom { border-top: 0; }
.contact-bottom { padding-top: 10px; }
.faq-list details:first-child { border-top: 0; }
.service-row { border-bottom-color: rgba(246,241,238,.07); }
.section-wrap + .section-wrap { padding-top: clamp(30px,3vw,44px); }
@media (max-width:760px) { .section-wrap + .section-wrap { padding-top: 28px; } }
