
.spine { position: fixed; z-index: 45; top: calc(var(--nav-h, 72px) + 14px); bottom: 22px; left: max(7px, calc((100vw - var(--max, 1180px)) / 2 - 40px)); width: 49px; margin-left: -24px; pointer-events: none; transform-origin: 50% 0; animation: sp-in 1.6s var(--ease-2) .35s backwards; transition: opacity .5s var(--ease-2); }
@keyframes sp-in { from { opacity: 0; transform: scaleY(.3); } }
body:has(.nav.is-open) .spine { opacity: 0; }
.spine__rail { position: absolute; top: 0; bottom: 0; left: 24px; width: 1px; background: linear-gradient(180deg, rgba(243, 238, 228, 0) 0%, rgba(243, 238, 228, .15) 6%, rgba(243, 238, 228, .09) 50%, rgba(243, 238, 228, .15) 94%, rgba(243, 238, 228, 0) 100%); }
.spine__charge { position: absolute; left: 24px; top: 0; width: 1px; height: 100%; transform-origin: 50% 0; transform: scaleY(.3); will-change: transform;
  background: linear-gradient(180deg, rgba(96, 165, 250, 0) 0%, rgba(96, 165, 250, .28) 45%, rgba(96, 165, 250, .7) 88%, rgba(219, 234, 254, .95) 100%); }
.spine__nodes { position: absolute; top: 0; bottom: 0; left: 24px; width: 1px; }
.spine__node { position: absolute; left: -2px; top: 0; width: 5px; height: 5px; margin-top: -2.5px; border-radius: 50%; background: #070B1A; box-shadow: inset 0 0 0 1px rgba(243, 238, 228, .34); transition: background .7s var(--ease-2), box-shadow .7s var(--ease-2); }
.spine__node.on { background: #60A5FA; box-shadow: 0 0 0 1px rgba(147, 197, 253, .55), 0 0 10px 1px rgba(96, 165, 250, .75); }
.spine__pulse { position: absolute; left: 23px; top: 0; width: 3px; height: 92px; margin-top: -46px; border-radius: 3px; transform: translate3d(0, 30vh, 0); will-change: transform;
  background: linear-gradient(180deg, rgba(96, 165, 250, 0) 0%, rgba(96, 165, 250, .8) 30%, #fff 50%, rgba(96, 165, 250, .8) 70%, rgba(96, 165, 250, 0) 100%); }
.spine__pulse::before { content: ""; position: absolute; left: 50%; top: 50%; width: 30px; height: 150px; margin: -75px 0 0 -15px; border-radius: 50%;
  background: radial-gradient(closest-side, rgba(96, 165, 250, .34) 0%, rgba(96, 165, 250, .12) 50%, rgba(96, 165, 250, 0) 100%); animation: sp-breathe 5.2s var(--ease-2) infinite alternate; }
.spine__pulse::after { content: ""; position: absolute; left: 50%; top: 50%; width: 5px; height: 5px; margin: -2.5px 0 0 -2.5px; border-radius: 50%; background: #fff; box-shadow: 0 0 6px 1px #93C5FD, 0 0 14px 3px rgba(96, 165, 250, .55); }
@keyframes sp-breathe { from { opacity: .55; transform: scale(.9); } to { opacity: 1; transform: scale(1.06); } }
@media (max-width: 760px) {
  .spine { left: 6px; top: calc(var(--nav-h, 72px) + 8px); bottom: 14px; }
  .spine__nodes { display: none; }
  .spine__rail { opacity: .75; }
  .spine__pulse { height: 62px; margin-top: -31px; }
  .spine__pulse::before { width: 14px; height: 110px; margin: -55px 0 0 -7px; }
}

.seams { position: absolute; left: 0; top: 0; width: 100%; height: 0; z-index: 1; pointer-events: none; }
.seam { --seam-h: clamp(56px, 8.5vw, 136px); position: absolute; left: 0; right: 0; top: 0; height: var(--seam-h); pointer-events: none; }
.seam__body { position: absolute; inset: 0; background: var(--grain), var(--seam-to, #070B1A);
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 120' preserveAspectRatio='none'%3E%3ClinearGradient id='f' gradientUnits='userSpaceOnUse' x1='0' y1='0' x2='0' y2='120'%3E%3Cstop offset='.5' stop-color='%23fff'/%3E%3Cstop offset='1' stop-color='%23fff' stop-opacity='0'/%3E%3C/linearGradient%3E%3Cpath d='M0 46C220 46 360 12 600 12S960 54 1180 54S1400 34 1440 30V120H0Z' fill='url(%23f)'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 120' preserveAspectRatio='none'%3E%3ClinearGradient id='f' gradientUnits='userSpaceOnUse' x1='0' y1='0' x2='0' y2='120'%3E%3Cstop offset='.5' stop-color='%23fff'/%3E%3Cstop offset='1' stop-color='%23fff' stop-opacity='0'/%3E%3C/linearGradient%3E%3Cpath d='M0 46C220 46 360 12 600 12S960 54 1180 54S1400 34 1440 30V120H0Z' fill='url(%23f)'/%3E%3C/svg%3E");
  -webkit-mask-size: 100% 100%; mask-size: 100% 100%; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; }
.seam__line { position: absolute; left: 0; top: 0; width: 100%; height: 100%; overflow: visible;
  -webkit-mask-image: linear-gradient(90deg, rgba(0, 0, 0, 0) 0%, #000 14%, #000 86%, rgba(0, 0, 0, 0) 100%); mask-image: linear-gradient(90deg, rgba(0, 0, 0, 0) 0%, #000 14%, #000 86%, rgba(0, 0, 0, 0) 100%); }
.seam--flip .seam__body, .seam--flip .seam__line { transform: scaleX(-1); }
.seam__halo, .seam__crest, .seam__tail, .seam__head, .seam__glow { fill: none; stroke-linecap: round; }
.seam__halo { stroke: rgba(96, 165, 250, .085); stroke-width: 10; }
.seam__crest { stroke: rgba(147, 197, 253, .5); stroke-width: 1.3; }
.seam__tail { stroke: rgba(96, 165, 250, .85); stroke-width: 1.8; stroke-dasharray: 160 2400; stroke-dashoffset: 160; opacity: 0; }
.seam__glow { stroke: rgba(96, 165, 250, .26); stroke-width: 9; stroke-dasharray: 60 2400; stroke-dashoffset: 48; opacity: 0; }
.seam__head { stroke: #fff; stroke-width: 2.6; stroke-dasharray: 36 2400; stroke-dashoffset: 36; opacity: 0; }
.seam--wait:not(.lit) .seam__crest, .seam--wait:not(.lit) .seam__halo { stroke-dasharray: 1200 1200; stroke-dashoffset: 1200; }
.seam.lit .seam__crest, .seam.lit .seam__halo { animation: sm-draw 2s var(--ease) backwards; }
.seam.lit:not(.live) .seam__tail { animation: sm-tail 2s var(--ease) both; }
.seam.lit:not(.live) .seam__glow { animation: sm-glow 2s var(--ease) both; }
.seam.lit:not(.live) .seam__head { animation: sm-head 2s var(--ease) both; }
.seam.live .seam__tail { animation: sm-tail-loop 14s var(--ease-2) 3.6s infinite; }
.seam.live .seam__glow { animation: sm-glow-loop 14s var(--ease-2) 3.6s infinite; }
.seam.live .seam__head { animation: sm-head-loop 14s var(--ease-2) 3.6s infinite; }
@keyframes sm-draw { from { stroke-dasharray: 1200 1200; stroke-dashoffset: 1200; } to { stroke-dasharray: 1200 1200; stroke-dashoffset: 40; } }
@keyframes sm-tail { 0% { stroke-dashoffset: 160; opacity: 0; } 8%, 80% { opacity: 1; } 100% { stroke-dashoffset: -1000; opacity: 0; } }
@keyframes sm-glow { 0% { stroke-dashoffset: 48; opacity: 0; } 8%, 80% { opacity: 1; } 100% { stroke-dashoffset: -1112; opacity: 0; } }
@keyframes sm-head { 0% { stroke-dashoffset: 36; opacity: 0; } 8%, 80% { opacity: 1; } 100% { stroke-dashoffset: -1124; opacity: 0; } }
@keyframes sm-tail-loop { 0% { stroke-dashoffset: 160; opacity: 0; } 3%, 23% { opacity: .8; } 28%, 100% { stroke-dashoffset: -1000; opacity: 0; } }
@keyframes sm-glow-loop { 0% { stroke-dashoffset: 48; opacity: 0; } 3%, 23% { opacity: .8; } 28%, 100% { stroke-dashoffset: -1112; opacity: 0; } }
@keyframes sm-head-loop { 0% { stroke-dashoffset: 36; opacity: 0; } 3%, 23% { opacity: .9; } 28%, 100% { stroke-dashoffset: -1124; opacity: 0; } }
@media (max-width: 760px) {
  .seam__crest { stroke-width: 2.4; }
  .seam__halo { stroke-width: 16; }
  .seam__tail { stroke-width: 3.4; }
  .seam__glow { stroke-width: 15; }
  .seam__head { stroke-width: 4.6; }
}

.sweep { position: absolute; left: 0; right: 0; top: 0; height: 14px; overflow: hidden; pointer-events: none; z-index: 2; }
.sweep::before { content: ""; position: absolute; left: 0; top: -7px; width: 44%; height: 14px; opacity: 0; transform: translate3d(-105%, 0, 0);
  background:
    linear-gradient(90deg, rgba(96, 165, 250, 0) 0%, rgba(96, 165, 250, .75) 40%, #DBEAFE 50%, rgba(96, 165, 250, .75) 60%, rgba(96, 165, 250, 0) 100%) 0 50% / 100% 1px no-repeat,
    radial-gradient(50% 50% at 50% 50%, rgba(96, 165, 250, .3) 0%, rgba(96, 165, 250, 0) 100%); }
.sweep.lit::before { animation: sm-sweep 1.8s var(--ease) .12s both; }
@keyframes sm-sweep { 0% { transform: translate3d(-105%, 0, 0); opacity: 0; } 10%, 82% { opacity: 1; } 100% { transform: translate3d(232%, 0, 0); opacity: 0; } }

@media (prefers-reduced-motion: reduce) {
  .spine, .spine__pulse::before { animation: none; }
  .spine__nodes, .seam__tail, .seam__head, .seam__glow, .sweep { display: none; }
  .seam .seam__crest, .seam .seam__halo { animation: none; stroke-dasharray: none; }
}
@media print { .spine, .seams, .sweep { display: none; } }

.gb {
  --gb-h: clamp(90px, 12vw, 150px); --gb-fx: .5; --gb-edge: min(12%, 180px);
  position: relative; width: 100%; height: var(--gb-h); overflow: hidden; pointer-events: none; user-select: none; -webkit-user-select: none;
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 var(--gb-edge), #000 calc(100% - var(--gb-edge)), transparent 100%);
  mask-image: linear-gradient(90deg, transparent 0, #000 var(--gb-edge), #000 calc(100% - var(--gb-edge)), transparent 100%);
}
.gb-svg {
  position: absolute; bottom: 0; left: 50%; display: block; max-width: none; overflow: visible;
  width: calc(var(--gb-h) * 8); height: var(--gb-h); margin-left: calc(var(--gb-h) * -8 * var(--gb-fx));
}
@media (max-width: 640px) { .gb { --gb-fx: .66; --gb-edge: 8%; } }
.gb-far { fill: #0F1730; opacity: .42; }
.gb-sky { fill: #0F1730; opacity: .78; }
.gb-crest { fill: none; stroke: rgba(243, 238, 228, var(--o, .06)); stroke-width: 1; }
.gb-tw { fill: none; stroke: #8C877C; stroke-width: 1.45; stroke-linecap: round; stroke-linejoin: round; }
.gb-br { fill: none; stroke: #8C877C; stroke-width: .75; stroke-opacity: .7; stroke-linecap: round; }
.gb-mast { fill: #8C877C; }
.gb-rotor { fill: #8C877C; }
.gb-hub { fill: #60A5FA; }
.gb-hub-h { fill: #60A5FA; opacity: .16; }
.gb-line { fill: none; stroke: #8C877C; stroke-width: 1.1; stroke-opacity: .85; }
.gb-lead { fill: none; stroke-width: 1.1; stroke-opacity: .85; }
.gb-n { fill: #60A5FA; opacity: .7; transform-box: fill-box; transform-origin: center; }
.gb-p { fill: none; stroke-linecap: round; stroke-dasharray: 24 2000; stroke-dashoffset: -140; opacity: 0; }
.gb-p--h { stroke: #60A5FA; stroke-width: 6.5; stroke-opacity: .3; }
.gb-p--c { stroke: #DBEAFE; stroke-width: 1.8; }

.gb.gb-on .gb-p { animation: gb-run 8s linear infinite both; }
.gb.gb-on .gb-p--b { animation-delay: 4s; }
.gb.gb-on .gb-n { animation: gb-flare 4s cubic-bezier(.22, 1, .36, 1) var(--d, 0s) infinite both; }
.gb:not(.gb-live) .gb-p, .gb:not(.gb-live) .gb-n { animation-play-state: paused; }

@keyframes gb-run {
  0% { stroke-dashoffset: -140; opacity: 0; }
  7% { opacity: 1; }
  48% { opacity: 1; }
  54% { stroke-dashoffset: -880; opacity: 0; }
  100% { stroke-dashoffset: -880; opacity: 0; }
}
@keyframes gb-flare {
  0% { transform: scale(1); opacity: .7; }
  4% { transform: scale(2.3); opacity: 1; }
  26% { transform: scale(1); opacity: .7; }
  100% { transform: scale(1); opacity: .7; }
}
@media (prefers-reduced-motion: reduce) { .gb-flow { display: none; } }


.dm-chs svg.em { --em-structure:#B8B2A6; --em-structure-ink:#F3EEE4; --em-solid:#0F1730; --em-detail:#8C877C; --em-energy:#60A5FA; --em-load:#DBEAFE; }
.dm-chs .dm-ch--load svg.em { --em-load:#F59E0B; }
.dm-chs svg.em .fl, .dm-chs svg.em .gp { transition: stroke .7s cubic-bezier(.22,1,.36,1), fill .7s cubic-bezier(.22,1,.36,1); }
svg.em.dm-hold, svg.em.dm-hold * { animation: none !important; }
.dm-ch__plate svg.em-bess { transform: scale(1.22); transform-origin: 50% 85%; }
.dm-ch__plate svg.em .s { stroke-width: 1.2; } .dm-ch__plate svg.em .s1 { stroke-width: .8; } .dm-ch__plate svg.em .s3 { stroke-width: 1.65; } .dm-ch__plate svg.em .sf { stroke-width: 1.2; } .dm-ch__plate svg.em .fl { stroke-width: 1.4; }
.dm-ch__plate svg.em-bess .s1 { stroke-width: .66; } .dm-ch__plate svg.em-bess .sf { stroke-width: .98; } .dm-ch__plate svg.em-bess .fl { stroke-width: 1.15; }
@media (max-width: 860px) {
  .dm-ch__plate svg.em .s, .dm-ch__plate svg.em .sf { stroke-width: 1.6; } .dm-ch__plate svg.em .s1 { stroke-width: 1.05; } .dm-ch__plate svg.em .s3 { stroke-width: 2.2; } .dm-ch__plate svg.em .fl { stroke-width: 1.85; }
  .dm-ch__plate svg.em-bess .s, .dm-ch__plate svg.em-bess .sf { stroke-width: 1.31; } .dm-ch__plate svg.em-bess .s1 { stroke-width: .86; } .dm-ch__plate svg.em-bess .s3 { stroke-width: 1.8; } .dm-ch__plate svg.em-bess .fl { stroke-width: 1.52; }
}


.dm-hero { position: relative; isolation: isolate; overflow: hidden; display: flex; flex-direction: column; min-height: 100vh; min-height: 100svh; padding-top: calc(var(--nav-h) + clamp(48px, 9vh, 128px)); background: var(--bg); }
@media (min-width: 601px) and (orientation: portrait) { .dm-hero { min-height: 80vh; min-height: 80svh; } }
.dm-hero__copy { flex: 1 0 auto; display: flex; flex-direction: column; justify-content: center; }
.dm-hero__sky { position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background:
    linear-gradient(180deg, rgba(7, 11, 26, 0) calc(100% - 44px), #070B1A 100%),
    radial-gradient(78% 62% at 50% 88%, rgba(30, 64, 175, .30), transparent 70%),
    radial-gradient(46% 40% at 86% 0%, rgba(96, 165, 250, .07), transparent 72%),
    linear-gradient(180deg, #070B1A 0%, #0A1022 100%); }
.dm-hero__sky::after { content: ""; position: absolute; inset: 0; opacity: .55;
  background-image: radial-gradient(rgba(243, 238, 228, .11) 1px, transparent 1.4px); background-size: 32px 32px;
  -webkit-mask-image: radial-gradient(70% 62% at 62% 66%, #000 0%, transparent 76%); mask-image: radial-gradient(70% 62% at 62% 66%, #000 0%, transparent 76%); }
.dm-hero__h1 { max-width: 11em; }
.dm-hero__h1 > span { display: block; }
.dm-tail { background: linear-gradient(92deg, #F3EEE4 0%, #DBEAFE 42%, #93C5FD 100%); -webkit-background-clip: text; background-clip: text; color: transparent; padding-bottom: .06em; }
.dm-hero .lead { margin-top: 30px; }
.dm-hero__band { flex: none; margin-top: clamp(40px, 6vh, 96px); }

.dm-jump { display: flex; flex-wrap: wrap; gap: 0 30px; margin-top: 40px; max-width: 760px; }
.dm-jump a { display: inline-flex; align-items: center; gap: 12px; min-height: 44px; font-family: var(--mono); font-weight: 500; font-size: 11.5px; letter-spacing: var(--mono-ls, .28em); text-transform: uppercase; color: var(--ink-3); transition: color .35s var(--ease); }
.dm-jump a::before { content: ""; flex: none; width: 14px; height: 1px; background: var(--line-2); transition: width .5s var(--ease), background .35s var(--ease), box-shadow .35s var(--ease); }
.dm-jump a:hover, .dm-jump a:focus-visible { color: var(--ink); }
.dm-jump a:hover::before, .dm-jump a:focus-visible::before { width: 24px; background: var(--elec); box-shadow: 0 0 8px rgba(96, 165, 250, .7); }
@media (max-width: 600px) {
  .dm-jump { display: grid; grid-template-columns: minmax(0, 1fr); margin-top: 34px; border-top: 1px solid var(--line); }
  .dm-jump a { min-height: 50px; font-size: 13px; letter-spacing: var(--mono-ls-tight, .2em); border-bottom: 1px solid var(--line); }
}


.dm-chs { position: relative; }
.dm-ch { position: relative; overflow: hidden; scroll-margin-top: var(--nav-h); padding: clamp(72px, 10vw, 150px) 0; border-top: 1px solid var(--line); background: var(--bg);
  --dm-from: 72vw; --dm-dir: 270deg; }
.dm-ch:nth-child(even) { background: linear-gradient(180deg, #0A1022 0%, #080D1E 100%); }
@supports (overflow: clip) { .dm-ch { overflow: clip; } }
.dm-ch__in { display: grid; grid-template-columns: minmax(0, 1fr); gap: clamp(36px, 6vw, 104px); align-items: center; }
.dm-ch__art { position: relative; }
.dm-ch__glow { position: absolute; left: 50%; top: 66%; width: 160%; aspect-ratio: 1.7; transform: translate(-50%, -50%); pointer-events: none; opacity: .45; transition: opacity 1.4s var(--ease-2);
  background: radial-gradient(closest-side, rgba(59, 130, 246, .17), rgba(59, 130, 246, .05) 55%, transparent 100%); }
.dm-ch__plate { position: relative; width: min(100%, 580px); min-width: 260px; aspect-ratio: 400 / 340; margin-inline: auto; }
.dm-ch__plate svg.em { position: absolute; top: 0; left: 0; z-index: 2; width: 100%; height: auto; margin-top: -7.5%; overflow: visible; pointer-events: none; }
.dm-ch__floor { position: absolute; top: 91.18%; left: -24%; right: -24%; z-index: 0; height: 50%; pointer-events: none; transform: perspective(400px) rotateX(70deg); transform-origin: 50% 0;
  background-image: repeating-linear-gradient(90deg, rgba(243, 238, 228, .08) 0 1px, transparent 1px 40px), repeating-linear-gradient(180deg, rgba(243, 238, 228, .06) 0 1px, transparent 1px 34px);
  -webkit-mask-image: linear-gradient(180deg, #000 0%, transparent 82%); mask-image: linear-gradient(180deg, #000 0%, transparent 82%); }
.dm-ch__hz { position: absolute; top: 91.18%; left: -100vw; right: -100vw; z-index: 1; height: 1px; margin-top: -.5px;
  background: linear-gradient(90deg, transparent 0%, rgba(243, 238, 228, .16) 22%, rgba(243, 238, 228, .16) 78%, transparent 100%); }
.dm-ch__hz::before { content: ""; position: absolute; top: 0; left: calc(50% - 300px); width: 600px; height: 1px; opacity: 0; transition: opacity 1.2s var(--ease) .1s;
  background: linear-gradient(90deg, transparent, #60A5FA 50%, transparent); box-shadow: 0 0 12px rgba(96, 165, 250, .5); }
.dm-ch__hz::after { content: ""; position: absolute; top: -1px; left: 50%; width: 420px; height: 3px; margin-left: -210px; border-radius: 2px; opacity: 0;
  background: linear-gradient(var(--dm-dir), #DBEAFE 0%, #93C5FD 14%, rgba(96, 165, 250, .5) 45%, transparent 100%); box-shadow: 0 0 14px rgba(96, 165, 250, .55); }
.dm-ch.is-live .dm-ch__glow { opacity: 1; }
.dm-ch.is-live .dm-ch__hz::before { opacity: .9; transition-delay: .75s; }
.dm-ch.is-live .dm-ch__hz::after { animation: dm-arrive 1.05s var(--ease-2) both; }
@keyframes dm-arrive { 0% { transform: translateX(var(--dm-from)); opacity: 0; } 12% { opacity: 1; } 78% { opacity: 1; } 100% { transform: translateX(0); opacity: 0; } }

.dm-ch__copy { position: relative; max-width: 34rem; }
.dm-ch__name { display: flex; align-items: center; gap: 14px; font-size: clamp(18px, 1.6vw, 22px); font-weight: 650; letter-spacing: -.012em; line-height: 1.2; color: var(--ink-2); }
.dm-ch__name::before { content: ""; flex: none; width: 28px; height: 1px; background: var(--elec); box-shadow: 0 0 8px rgba(96, 165, 250, .75); }
.dm-ch__claim { margin-top: 22px; font-size: clamp(40px, 5.7vw, 82px); font-weight: 820; letter-spacing: -.045em; line-height: 1.0; color: var(--ink); text-wrap: balance; }
.dm-ch__body { margin-top: 26px; font-size: clamp(17px, 1.3vw, 19.5px); line-height: 1.62; max-width: 30em; }
.dm-w { display: inline-block; overflow: hidden; vertical-align: top; padding: 0 .05em .14em; margin: 0 -.05em -.14em; }
.dm-w > span { display: inline-block; }
.dm-chs.dm-armed .dm-ch .dm-w > span { transform: translateY(112%); }
.dm-chs.dm-armed .dm-ch.is-in .dm-w > span { transform: none; transition: transform .9s var(--ease); }
.dm-chs.dm-armed .dm-ch.is-in .dm-w:nth-child(2) > span { transition-delay: .09s; }
.dm-chs.dm-armed .dm-ch.is-in .dm-w:nth-child(3) > span { transition-delay: .18s; }
.dm-chs.dm-armed .dm-ch.is-in .dm-w:nth-child(4) > span { transition-delay: .27s; }
.dm-chs.dm-armed .dm-ch.is-in .dm-w:nth-child(5) > span { transition-delay: .36s; }

@media (min-width: 861px) {
  .dm-ch__in { grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); min-height: min(68vh, 720px); min-height: min(68svh, 720px); }
  .dm-ch:nth-child(even) .dm-ch__in { grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr); }
  .dm-ch:nth-child(even) { --dm-from: -72vw; --dm-dir: 90deg; }
  .dm-ch:nth-child(even) .dm-ch__art { order: 2; }
}
@media (max-width: 860px) {
  .dm-ch__plate { width: min(100%, 440px); }
  .dm-ch__hz::before { left: calc(50% - 200px); width: 400px; }
  .dm-ch__hz::after { width: 260px; margin-left: -130px; }
}


.dm-close { overflow: hidden; background: radial-gradient(60% 90% at 12% 110%, rgba(30, 64, 175, .2), transparent 70%), var(--bg); }
.dm-close .h2 { max-width: 13em; }
.dm-close .body { margin-top: 20px; }

@media (prefers-reduced-motion: reduce) {
  .dm-ch__hz::after { display: none; }
}

.pf { position: relative; width: 100%; overflow: hidden; pointer-events: none; --pf-h: clamp(112px, 16.667vw, 300px); }
.pf::before { content: ""; position: absolute; left: 0; right: 0; bottom: calc(var(--pf-h) * .09); height: 1px; background: rgba(184, 178, 166, .2); }
.pf-svg { position: relative; display: block; width: 100%; max-width: 1800px; height: var(--pf-h); margin-inline: auto; overflow: visible; }
.pf-ground { fill: none; stroke: #B8B2A6; stroke-opacity: .6; stroke-width: 1.2; stroke-dasharray: 1 1; }
.pf-tw { fill: none; stroke: #B8B2A6; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 1 1; }
.pf-br { stroke: #8C877C; stroke-width: 1.05; }
.pf-span { fill: none; stroke: rgba(243, 238, 228, .42); stroke-width: 1.3; stroke-linecap: round; stroke-dasharray: 1 1; }
.pf-span.pf-ll { stroke: url(#pf-lead-l); }
.pf-span.pf-lr { stroke: url(#pf-lead-r); }
.pf-node { fill: #B8B2A6; transform-box: fill-box; transform-origin: center; }
.pf-p { fill: none; stroke-linecap: round; stroke-dasharray: 12 188; stroke-dashoffset: -144; }
.pf-p--halo { stroke-width: 7; stroke-opacity: .26; }
.pf-p--core { stroke-width: 2; }
.pf-fl { fill: none; stroke: #60A5FA; stroke-width: 1.3; opacity: 0; transform-box: fill-box; transform-origin: center; }

.pf.pf-in .pf-ground, .pf.pf-in .pf-tw, .pf.pf-in .pf-span { animation: pf-draw var(--t, 1.1s) cubic-bezier(.16, 1, .3, 1) var(--d, 0s) both; }
.pf.pf-in .pf-ground { --t: 1.8s; }
.pf.pf-in .pf-span { --t: .95s; }
.pf.pf-in .pf-node { animation: pf-pop .6s cubic-bezier(.22, 1, .36, 1) var(--d, 1.2s) both; }
.pf.pf-in .pf-flow { animation: pf-fade 1.2s cubic-bezier(.22, 1, .36, 1) 1.55s both; }
.pf.pf-in .pf-p { animation: pf-run 9s linear infinite; }
.pf.pf-in .pf-p--lo { animation-delay: .7s; animation-fill-mode: both; }
.pf.pf-in .pf-fl { animation: pf-flare 9s cubic-bezier(.22, 1, .36, 1) var(--d, 0s) infinite; }
.pf:not(.pf-live) * { animation-play-state: paused !important; }
@media (prefers-reduced-motion: no-preference) {
  html.js-pre .pf:not(.pf-in) { opacity: 0; animation: pf-failsafe 0s 3s forwards; }
  html.js-pre .pf.pf-armed:not(.pf-in) { animation: none; }
}

@keyframes pf-draw { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }
@keyframes pf-pop { from { transform: scale(0); } to { transform: scale(1); } }
@keyframes pf-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes pf-run { from { stroke-dashoffset: -144; } to { stroke-dashoffset: -344; } }
@keyframes pf-failsafe { to { opacity: 1; } }
@keyframes pf-flare { 0% { opacity: .95; transform: scale(.5); } 10% { opacity: 0; transform: scale(2.4); } 100% { opacity: 0; transform: scale(2.4); } }

@media (prefers-reduced-motion: reduce) { .pf-fl { display: none; } }

.em-tower{--em-structure:#B8B2A6;--em-structure-ink:#F3EEE4;--em-solid:#0F1730;--em-detail:#8C877C;--em-energy:#60a5fa;--em-load:#F59E0B}
.em-tower .s{fill:none;stroke:var(--em-structure);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.em-tower .s1{stroke-width:1.25}
.em-tower .s3{stroke-width:2.75}
.em-tower .os{stroke:var(--em-detail)}
.em-tower .sf{fill:var(--em-solid);stroke:var(--em-structure);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.em-tower .d{opacity:.38}
.em-tower .fl{fill:none;stroke:var(--em-structure);stroke-width:2.25;stroke-linecap:round}
.em-tower .gp{fill:var(--em-structure);transform-box:fill-box;transform-origin:center}
.em-tower .gh{fill:var(--em-energy);opacity:0;transform-box:fill-box;transform-origin:center}
.em-tower .ld{fill:var(--em-detail);opacity:.2}
.em-tower .bb{transform-box:fill-box;transform-origin:50% 100%}
.em-tower .bc{transform-origin:center}
.em-tower.m-energize .fl{stroke:var(--em-energy)}
.em-tower.m-energize .en{stroke:var(--em-energy)}
.em-tower.m-energize .gp{fill:var(--em-energy)}
.em-tower.m-energize .gh{opacity:.22;filter:blur(5px)}
.em-tower.m-energize .enf{fill:var(--em-energy)}
.em-tower.m-energize .ld{fill:var(--em-load);opacity:1}
@media (prefers-reduced-motion:no-preference){
.em-tower.m-build .dd{stroke-dasharray:var(--em-l);stroke-dashoffset:var(--em-l);animation:em-tower-draw var(--em-d,.7s) cubic-bezier(.22,1,.36,1) var(--em-delay,0s) forwards}
.em-tower.m-build .bb{transform:scale(0);animation:em-tower-birth .6s cubic-bezier(.22,1,.36,1) var(--em-delay,0s) forwards}
.em-tower.m-energize .fl{stroke-dasharray:12 16;animation:em-tower-flow 4s linear var(--em-delay,0s) infinite}
.em-tower.m-energize .gp{animation:em-tower-pop .6s cubic-bezier(.22,1,.36,1) var(--em-delay,0s) backwards}
.em-tower.m-energize .gh{animation:em-tower-glow 1.5s cubic-bezier(.22,1,.36,1) var(--em-delay,0s) backwards}
.em-tower.m-energize .ld{animation:em-tower-warm .7s cubic-bezier(.22,1,.36,1) var(--em-delay,0s) backwards}
}
@keyframes em-tower-draw{to{stroke-dashoffset:0}}
@keyframes em-tower-birth{0%{transform:scale(0);filter:drop-shadow(0 0 8px var(--em-energy))}100%{transform:scale(1)}}
@keyframes em-tower-flow{to{stroke-dashoffset:-280}}
@keyframes em-tower-pop{0%{transform:scale(0)}100%{transform:scale(1)}}
@keyframes em-tower-glow{0%{opacity:.6;transform:scale(1.6)}100%{opacity:.22;transform:scale(1)}}
@keyframes em-tower-warm{0%{fill:var(--em-detail);opacity:.2}100%{fill:var(--em-load);opacity:1}}

.em-solar{--em-structure:#B8B2A6;--em-structure-ink:#F3EEE4;--em-solid:#0F1730;--em-detail:#8C877C;--em-energy:#60a5fa;--em-load:#F59E0B}
.em-solar .s{fill:none;stroke:var(--em-structure);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.em-solar .s1{stroke-width:1.25}
.em-solar .s3{stroke-width:2.75}
.em-solar .os{stroke:var(--em-detail)}
.em-solar .sf{fill:var(--em-solid);stroke:var(--em-structure);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.em-solar .d{opacity:.38}
.em-solar .fl{fill:none;stroke:var(--em-structure);stroke-width:2.25;stroke-linecap:round}
.em-solar .gp{fill:var(--em-structure);transform-box:fill-box;transform-origin:center}
.em-solar .gh{fill:var(--em-energy);opacity:0;transform-box:fill-box;transform-origin:center}
.em-solar .ld{fill:var(--em-detail);opacity:.2}
.em-solar .bb{transform-box:fill-box;transform-origin:50% 100%}
.em-solar .bc{transform-origin:center}
.em-solar.m-energize .fl{stroke:var(--em-energy)}
.em-solar.m-energize .en{stroke:var(--em-energy)}
.em-solar.m-energize .gp{fill:var(--em-energy)}
.em-solar.m-energize .gh{opacity:.22;filter:blur(5px)}
.em-solar.m-energize .enf{fill:var(--em-energy)}
.em-solar.m-energize .ld{fill:var(--em-load);opacity:1}
@media (prefers-reduced-motion:no-preference){
.em-solar.m-build .dd{stroke-dasharray:var(--em-l);stroke-dashoffset:var(--em-l);animation:em-solar-draw var(--em-d,.7s) cubic-bezier(.22,1,.36,1) var(--em-delay,0s) forwards}
.em-solar.m-build .bb{transform:scale(0);animation:em-solar-birth .6s cubic-bezier(.22,1,.36,1) var(--em-delay,0s) forwards}
.em-solar.m-energize .fl{stroke-dasharray:12 16;animation:em-solar-flow 4s linear var(--em-delay,0s) infinite}
.em-solar.m-energize .gp{animation:em-solar-pop .6s cubic-bezier(.22,1,.36,1) var(--em-delay,0s) backwards}
.em-solar.m-energize .gh{animation:em-solar-glow 1.5s cubic-bezier(.22,1,.36,1) var(--em-delay,0s) backwards}
.em-solar.m-energize .ld{animation:em-solar-warm .7s cubic-bezier(.22,1,.36,1) var(--em-delay,0s) backwards}
}
@keyframes em-solar-draw{to{stroke-dashoffset:0}}
@keyframes em-solar-birth{0%{transform:scale(0);filter:drop-shadow(0 0 8px var(--em-energy))}100%{transform:scale(1)}}
@keyframes em-solar-flow{to{stroke-dashoffset:-280}}
@keyframes em-solar-pop{0%{transform:scale(0)}100%{transform:scale(1)}}
@keyframes em-solar-glow{0%{opacity:.6;transform:scale(1.6)}100%{opacity:.22;transform:scale(1)}}
@keyframes em-solar-warm{0%{fill:var(--em-detail);opacity:.2}100%{fill:var(--em-load);opacity:1}}

.em-catenary{--em-structure:#B8B2A6;--em-structure-ink:#F3EEE4;--em-solid:#0F1730;--em-detail:#8C877C;--em-energy:#60a5fa;--em-load:#F59E0B}
.em-catenary .s{fill:none;stroke:var(--em-structure);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.em-catenary .s1{stroke-width:1.25}
.em-catenary .s3{stroke-width:2.75}
.em-catenary .os{stroke:var(--em-detail)}
.em-catenary .sf{fill:var(--em-solid);stroke:var(--em-structure);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.em-catenary .d{opacity:.38}
.em-catenary .fl{fill:none;stroke:var(--em-structure);stroke-width:2.25;stroke-linecap:round}
.em-catenary .gp{fill:var(--em-structure);transform-box:fill-box;transform-origin:center}
.em-catenary .gh{fill:var(--em-energy);opacity:0;transform-box:fill-box;transform-origin:center}
.em-catenary .ld{fill:var(--em-detail);opacity:.2}
.em-catenary .bb{transform-box:fill-box;transform-origin:50% 100%}
.em-catenary .bc{transform-origin:center}
.em-catenary.m-energize .fl{stroke:var(--em-energy)}
.em-catenary.m-energize .en{stroke:var(--em-energy)}
.em-catenary.m-energize .gp{fill:var(--em-energy)}
.em-catenary.m-energize .gh{opacity:.22;filter:blur(5px)}
.em-catenary.m-energize .enf{fill:var(--em-energy)}
.em-catenary.m-energize .ld{fill:var(--em-load);opacity:1}
@media (prefers-reduced-motion:no-preference){
.em-catenary.m-build .dd{stroke-dasharray:var(--em-l);stroke-dashoffset:var(--em-l);animation:em-catenary-draw var(--em-d,.7s) cubic-bezier(.22,1,.36,1) var(--em-delay,0s) forwards}
.em-catenary.m-build .bb{transform:scale(0);animation:em-catenary-birth .6s cubic-bezier(.22,1,.36,1) var(--em-delay,0s) forwards}
.em-catenary.m-energize .fl{stroke-dasharray:12 16;animation:em-catenary-flow 4s linear var(--em-delay,0s) infinite}
.em-catenary.m-energize .gp{animation:em-catenary-pop .6s cubic-bezier(.22,1,.36,1) var(--em-delay,0s) backwards}
.em-catenary.m-energize .gh{animation:em-catenary-glow 1.5s cubic-bezier(.22,1,.36,1) var(--em-delay,0s) backwards}
.em-catenary.m-energize .ld{animation:em-catenary-warm .7s cubic-bezier(.22,1,.36,1) var(--em-delay,0s) backwards}
}
@keyframes em-catenary-draw{to{stroke-dashoffset:0}}
@keyframes em-catenary-birth{0%{transform:scale(0);filter:drop-shadow(0 0 8px var(--em-energy))}100%{transform:scale(1)}}
@keyframes em-catenary-flow{to{stroke-dashoffset:-280}}
@keyframes em-catenary-pop{0%{transform:scale(0)}100%{transform:scale(1)}}
@keyframes em-catenary-glow{0%{opacity:.6;transform:scale(1.6)}100%{opacity:.22;transform:scale(1)}}
@keyframes em-catenary-warm{0%{fill:var(--em-detail);opacity:.2}100%{fill:var(--em-load);opacity:1}}

.em-bess{--em-structure:#B8B2A6;--em-structure-ink:#F3EEE4;--em-solid:#0F1730;--em-detail:#8C877C;--em-energy:#60a5fa;--em-load:#F59E0B}
.em-bess .s{fill:none;stroke:var(--em-structure);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.em-bess .s1{stroke-width:1.25}
.em-bess .s3{stroke-width:2.75}
.em-bess .os{stroke:var(--em-detail)}
.em-bess .sf{fill:var(--em-solid);stroke:var(--em-structure);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.em-bess .d{opacity:.38}
.em-bess .fl{fill:none;stroke:var(--em-structure);stroke-width:2.25;stroke-linecap:round}
.em-bess .gp{fill:var(--em-structure);transform-box:fill-box;transform-origin:center}
.em-bess .gh{fill:var(--em-energy);opacity:0;transform-box:fill-box;transform-origin:center}
.em-bess .ld{fill:var(--em-detail);opacity:.2}
.em-bess .bb{transform-box:fill-box;transform-origin:50% 100%}
.em-bess .bc{transform-origin:center}
.em-bess.m-energize .fl{stroke:var(--em-energy)}
.em-bess.m-energize .en{stroke:var(--em-energy)}
.em-bess.m-energize .gp{fill:var(--em-energy)}
.em-bess.m-energize .gh{opacity:.22;filter:blur(5px)}
.em-bess.m-energize .enf{fill:var(--em-energy)}
.em-bess.m-energize .ld{fill:var(--em-load);opacity:1}
@media (prefers-reduced-motion:no-preference){
.em-bess.m-build .dd{stroke-dasharray:var(--em-l);stroke-dashoffset:var(--em-l);animation:em-bess-draw var(--em-d,.7s) cubic-bezier(.22,1,.36,1) var(--em-delay,0s) forwards}
.em-bess.m-build .bb{transform:scale(0);animation:em-bess-birth .6s cubic-bezier(.22,1,.36,1) var(--em-delay,0s) forwards}
.em-bess.m-energize .fl{stroke-dasharray:12 16;animation:em-bess-flow 4s linear var(--em-delay,0s) infinite}
.em-bess.m-energize .gp{animation:em-bess-pop .6s cubic-bezier(.22,1,.36,1) var(--em-delay,0s) backwards}
.em-bess.m-energize .gh{animation:em-bess-glow 1.5s cubic-bezier(.22,1,.36,1) var(--em-delay,0s) backwards}
.em-bess.m-energize .ld{animation:em-bess-warm .7s cubic-bezier(.22,1,.36,1) var(--em-delay,0s) backwards}
}
@keyframes em-bess-draw{to{stroke-dashoffset:0}}
@keyframes em-bess-birth{0%{transform:scale(0);filter:drop-shadow(0 0 8px var(--em-energy))}100%{transform:scale(1)}}
@keyframes em-bess-flow{to{stroke-dashoffset:-280}}
@keyframes em-bess-pop{0%{transform:scale(0)}100%{transform:scale(1)}}
@keyframes em-bess-glow{0%{opacity:.6;transform:scale(1.6)}100%{opacity:.22;transform:scale(1)}}
@keyframes em-bess-warm{0%{fill:var(--em-detail);opacity:.2}100%{fill:var(--em-load);opacity:1}}

.em-substation{--em-structure:#B8B2A6;--em-structure-ink:#F3EEE4;--em-solid:#0F1730;--em-detail:#8C877C;--em-energy:#60a5fa;--em-load:#F59E0B}
.em-substation .s{fill:none;stroke:var(--em-structure);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.em-substation .s1{stroke-width:1.25}
.em-substation .s3{stroke-width:2.75}
.em-substation .os{stroke:var(--em-detail)}
.em-substation .sf{fill:var(--em-solid);stroke:var(--em-structure);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.em-substation .d{opacity:.38}
.em-substation .fl{fill:none;stroke:var(--em-structure);stroke-width:2.25;stroke-linecap:round}
.em-substation .gp{fill:var(--em-structure);transform-box:fill-box;transform-origin:center}
.em-substation .gh{fill:var(--em-energy);opacity:0;transform-box:fill-box;transform-origin:center}
.em-substation .ld{fill:var(--em-detail);opacity:.2}
.em-substation .bb{transform-box:fill-box;transform-origin:50% 100%}
.em-substation .bc{transform-origin:center}
.em-substation.m-energize .fl{stroke:var(--em-energy)}
.em-substation.m-energize .en{stroke:var(--em-energy)}
.em-substation.m-energize .gp{fill:var(--em-energy)}
.em-substation.m-energize .gh{opacity:.22;filter:blur(5px)}
.em-substation.m-energize .enf{fill:var(--em-energy)}
.em-substation.m-energize .ld{fill:var(--em-load);opacity:1}
@media (prefers-reduced-motion:no-preference){
.em-substation.m-build .dd{stroke-dasharray:var(--em-l);stroke-dashoffset:var(--em-l);animation:em-substation-draw var(--em-d,.7s) cubic-bezier(.22,1,.36,1) var(--em-delay,0s) forwards}
.em-substation.m-build .bb{transform:scale(0);animation:em-substation-birth .6s cubic-bezier(.22,1,.36,1) var(--em-delay,0s) forwards}
.em-substation.m-energize .fl{stroke-dasharray:12 16;animation:em-substation-flow 4s linear var(--em-delay,0s) infinite}
.em-substation.m-energize .gp{animation:em-substation-pop .6s cubic-bezier(.22,1,.36,1) var(--em-delay,0s) backwards}
.em-substation.m-energize .gh{animation:em-substation-glow 1.5s cubic-bezier(.22,1,.36,1) var(--em-delay,0s) backwards}
.em-substation.m-energize .ld{animation:em-substation-warm .7s cubic-bezier(.22,1,.36,1) var(--em-delay,0s) backwards}
}
@keyframes em-substation-draw{to{stroke-dashoffset:0}}
@keyframes em-substation-birth{0%{transform:scale(0);filter:drop-shadow(0 0 8px var(--em-energy))}100%{transform:scale(1)}}
@keyframes em-substation-flow{to{stroke-dashoffset:-280}}
@keyframes em-substation-pop{0%{transform:scale(0)}100%{transform:scale(1)}}
@keyframes em-substation-glow{0%{opacity:.6;transform:scale(1.6)}100%{opacity:.22;transform:scale(1)}}
@keyframes em-substation-warm{0%{fill:var(--em-detail);opacity:.2}100%{fill:var(--em-load);opacity:1}}

.em-city{--em-structure:#B8B2A6;--em-structure-ink:#F3EEE4;--em-solid:#0F1730;--em-detail:#8C877C;--em-energy:#60a5fa;--em-load:#F59E0B}
.em-city .s{fill:none;stroke:var(--em-structure);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.em-city .s1{stroke-width:1.25}
.em-city .s3{stroke-width:2.75}
.em-city .os{stroke:var(--em-detail)}
.em-city .sf{fill:var(--em-solid);stroke:var(--em-structure);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.em-city .d{opacity:.38}
.em-city .fl{fill:none;stroke:var(--em-structure);stroke-width:2.25;stroke-linecap:round}
.em-city .gp{fill:var(--em-structure);transform-box:fill-box;transform-origin:center}
.em-city .gh{fill:var(--em-energy);opacity:0;transform-box:fill-box;transform-origin:center}
.em-city .ld{fill:var(--em-detail);opacity:.2}
.em-city .bb{transform-box:fill-box;transform-origin:50% 100%}
.em-city .bc{transform-origin:center}
.em-city.m-energize .fl{stroke:var(--em-energy)}
.em-city.m-energize .en{stroke:var(--em-energy)}
.em-city.m-energize .gp{fill:var(--em-energy)}
.em-city.m-energize .gh{opacity:.22;filter:blur(5px)}
.em-city.m-energize .enf{fill:var(--em-energy)}
.em-city.m-energize .ld{fill:var(--em-load);opacity:1}
@media (prefers-reduced-motion:no-preference){
.em-city.m-build .dd{stroke-dasharray:var(--em-l);stroke-dashoffset:var(--em-l);animation:em-city-draw var(--em-d,.7s) cubic-bezier(.22,1,.36,1) var(--em-delay,0s) forwards}
.em-city.m-build .bb{transform:scale(0);animation:em-city-birth .6s cubic-bezier(.22,1,.36,1) var(--em-delay,0s) forwards}
.em-city.m-energize .fl{stroke-dasharray:12 16;animation:em-city-flow 4s linear var(--em-delay,0s) infinite}
.em-city.m-energize .gp{animation:em-city-pop .6s cubic-bezier(.22,1,.36,1) var(--em-delay,0s) backwards}
.em-city.m-energize .gh{animation:em-city-glow 1.5s cubic-bezier(.22,1,.36,1) var(--em-delay,0s) backwards}
.em-city.m-energize .ld{animation:em-city-warm .7s cubic-bezier(.22,1,.36,1) var(--em-delay,0s) backwards}
}
@keyframes em-city-draw{to{stroke-dashoffset:0}}
@keyframes em-city-birth{0%{transform:scale(0);filter:drop-shadow(0 0 8px var(--em-energy))}100%{transform:scale(1)}}
@keyframes em-city-flow{to{stroke-dashoffset:-280}}
@keyframes em-city-pop{0%{transform:scale(0)}100%{transform:scale(1)}}
@keyframes em-city-glow{0%{opacity:.6;transform:scale(1.6)}100%{opacity:.22;transform:scale(1)}}
@keyframes em-city-warm{0%{fill:var(--em-detail);opacity:.2}100%{fill:var(--em-load);opacity:1}}
