/* ProLnk hub (prolnk.html only): refined dusk theme layered over site.css */
.hub-dusk{--h-bg:#121820;--h-band:#161E27;--h-card:#1D2631;--h-card2:#232E3A;--h-line:#2A3542;--h-line2:#36434F;--h-ink:#EEF2F4;--h-ink2:#C9D2D9;--h-mute:#A9B4BE;--h-teal:#6FD6CC;--h-teal-ink:#0B1A1C;--h-amber:#E8B15A;--h-tint:rgba(111,214,204,.14);
  --h-glow:0 0 0 1px rgba(255,255,255,.02),0 18px 50px -24px rgba(0,0,0,.55),0 0 60px -30px rgba(111,214,204,.18);--h-glow-lg:0 30px 90px -30px rgba(0,0,0,.7),0 0 120px -40px rgba(111,214,204,.28)}
body.hub-dusk{background:var(--h-bg);color:var(--h-ink)}
.hub-dusk a{color:var(--h-teal)}.hub-dusk a:hover{color:var(--h-ink)}
.hub-dusk :focus-visible{outline-color:var(--h-teal)}
.hub-dusk .prog{background:var(--h-teal)}

.hub-dusk .nav{background:rgba(18,24,32,.72);border-bottom:1px solid rgba(255,255,255,.07)}
.hub-dusk .nav .brand{color:var(--h-ink)}
.hub-dusk .nav .links a{color:var(--h-ink2)}.hub-dusk .nav .links a:hover{color:var(--h-teal)}
.hub-dusk .nav .menu{border-color:var(--h-line2);color:var(--h-ink)}

.hub-dusk .btn{border-color:var(--h-line2);color:var(--h-ink);background:rgba(255,255,255,.03)}
.hub-dusk .btn:hover{border-color:var(--h-teal);color:var(--h-ink);background:rgba(111,214,204,.08)}
.hub-dusk .btn.p{background:var(--h-teal);border-color:var(--h-teal);color:var(--h-teal-ink);box-shadow:0 8px 30px -10px rgba(111,214,204,.55)}
.hub-dusk .btn.p:hover{background:#8FE3DA;border-color:#8FE3DA;color:var(--h-teal-ink)}

.hub-dusk .eb{color:var(--h-teal)}
.hub-dusk h1,.hub-dusk h2{font-family:Michroma,"Public Sans",sans-serif;font-weight:400;letter-spacing:-.02em;color:var(--h-ink)}
.hub-dusk h1{font-size:clamp(30px,3.9vw,58px);line-height:1.1}
.hub-dusk h2{font-size:clamp(26px,3.3vw,46px);line-height:1.12}
.hub-dusk h3{color:var(--h-ink)}
.hub-dusk .lede{color:var(--h-ink2)}
.hub-dusk .body{color:var(--h-mute)}

/* Hero */
.hub-dusk .hx{position:relative;padding:140px 6vw 100px;max-width:1400px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:64px;align-items:center}
.hub-dusk .hx:before{content:"";position:absolute;inset:0;background:radial-gradient(45% 60% at 78% 55%,rgba(111,214,204,.13),transparent 70%),radial-gradient(35% 45% at 70% 85%,rgba(232,177,90,.08),transparent 70%);pointer-events:none;z-index:-1}
.hub-dusk .hx .lede{margin-bottom:30px}
.hub-dusk .hx-art{position:relative}
.hub-dusk .hx-photo{aspect-ratio:5/4;border-radius:28px;background:#2A3542 center/cover no-repeat;box-shadow:var(--h-glow-lg);outline:1px solid rgba(255,255,255,.06);outline-offset:-1px}
.hub-dusk .chip{position:absolute;display:flex;align-items:center;gap:10px;background:rgba(29,38,49,.82);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:10px 14px;box-shadow:0 18px 40px -16px rgba(0,0,0,.6);font-size:13.5px;font-weight:700;color:var(--h-ink);white-space:nowrap}
.hub-dusk .chip em{display:block;font-style:normal;font-weight:500;font-size:12px;color:var(--h-mute)}
.hub-dusk .chip i{width:28px;height:28px;border-radius:9px;background:var(--h-tint);display:grid;place-items:center;flex:none}
.hub-dusk .chip i:after{content:"";width:9px;height:9px;border-radius:50%;background:var(--h-teal);box-shadow:0 0 10px rgba(111,214,204,.8)}
.hub-dusk .chip.c1{left:-28px;top:12%}.hub-dusk .chip.c2{right:-20px;top:38%}.hub-dusk .chip.c3{left:8%;bottom:-22px}
.hub-dusk .chip.c3 i{background:rgba(232,177,90,.16)}.hub-dusk .chip.c3 i:after{background:var(--h-amber);box-shadow:0 0 10px rgba(232,177,90,.8)}
.hub-dusk .chip.sc{right:7%;bottom:-26px;flex-direction:column;align-items:flex-start;gap:2px;padding:12px 16px}
.hub-dusk .chip.sc small{font-family:"IBM Plex Mono",monospace;font-size:10px;letter-spacing:.14em;color:var(--h-mute);font-weight:500}
.hub-dusk .chip.sc b{font-size:20px;letter-spacing:.02em;color:var(--h-teal)}
@media(prefers-reduced-motion:no-preference){.hub-dusk .chip{animation:hfloat 7s ease-in-out infinite}.hub-dusk .chip.c2{animation-delay:-2s}.hub-dusk .chip.c3{animation-delay:-4s}.hub-dusk .chip.sc{animation-delay:-5.5s}}
@keyframes hfloat{50%{transform:translateY(-6px)}}

/* Doors */
.hub-dusk .doorgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:34px}
.hub-dusk .door{display:flex;flex-direction:column;background:var(--h-card);border:1px solid var(--h-line);border-radius:22px;overflow:hidden;color:var(--h-ink);box-shadow:var(--h-glow);transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s,border-color .35s}
.hub-dusk .door:hover,.hub-dusk .door:focus-visible{transform:translateY(-4px);border-color:rgba(111,214,204,.45);box-shadow:var(--h-glow-lg);color:var(--h-ink)}
.hub-dusk .door .phw{overflow:hidden}
.hub-dusk .door .ph{aspect-ratio:16/10;background:#2A3542 center/cover no-repeat;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.hub-dusk .door:hover .ph{transform:scale(1.04)}
.hub-dusk .door .t{padding:22px 24px 24px;display:flex;flex-direction:column;flex:1}
.hub-dusk .door h3{font-size:23px;margin-bottom:6px}
.hub-dusk .door .for{font-size:13.5px;font-weight:600;color:var(--h-teal);line-height:1.4;margin:0 0 10px}
.hub-dusk .door p{color:var(--h-mute);line-height:1.5;margin:0 0 18px;font-size:15px}
.hub-dusk .door .go{margin-top:auto;font-weight:700;font-size:14px;color:var(--h-ink)}
.hub-dusk .door:hover .go{color:var(--h-teal)}
.hub-dusk .doors a{border-color:var(--h-line2);color:var(--h-ink);background:var(--h-card)}.hub-dusk .doors a:hover{border-color:var(--h-teal);color:var(--h-ink)}
.hub-dusk .doors a span{color:var(--h-mute)}

.hub-dusk .ticker{border-color:var(--h-line);color:var(--h-mute);background:var(--h-band)}

/* Why */
.hub-dusk .prob{border-top-color:var(--h-line2)}
.hub-dusk .prob .n{color:var(--h-amber)}
.hub-dusk .prob p{color:var(--h-mute)}
.hub-dusk .prob .fix{color:var(--h-teal)}

/* Network map: deliberate night band, eased into the page colour at both edges */
.hub-dusk #coverage .stick:before,.hub-dusk #coverage .stick:after{content:"";position:absolute;left:0;right:0;height:16vh;z-index:1;pointer-events:none}
.hub-dusk #coverage .stick:before{top:0;background:linear-gradient(var(--h-bg),rgba(18,24,32,0))}
.hub-dusk #coverage .stick:after{bottom:0;background:linear-gradient(rgba(18,24,32,0),var(--h-bg))}
.hub-dusk .maplabel{background:rgba(22,30,39,.72);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.08);border-radius:20px;padding:22px 24px;box-shadow:0 30px 60px -30px rgba(0,0,0,.7)}
.hub-dusk .maplabel .lede{color:var(--h-ink2)}
.hub-dusk .maplabel .steps i{background:var(--h-line2)}.hub-dusk .maplabel .steps i.on{background:var(--h-teal)}

/* Cards, score, products */
.hub-dusk .card,.hub-dusk .card.glass{background:var(--h-card);border:1px solid var(--h-line);box-shadow:var(--h-glow);backdrop-filter:none}
.hub-dusk .card p{color:var(--h-mute);line-height:1.55}
.hub-dusk .tag{background:var(--h-card2);border:1px solid var(--h-line2);color:var(--h-ink)}
.hub-dusk .tag span{color:var(--h-mute)}
.hub-dusk .seal{filter:drop-shadow(0 0 40px rgba(111,214,204,.22))}
.hub-dusk .ui{border:1px solid rgba(255,255,255,.08);box-shadow:var(--h-glow-lg)}
.hub-dusk .phone{border-color:#2A3542;box-shadow:var(--h-glow-lg)}

/* Bands */
.hub-dusk .band{background:var(--h-band);border-top:1px solid var(--h-line);border-bottom:1px solid var(--h-line)}
.hub-dusk .cta{position:relative;background:radial-gradient(60% 70% at 50% 100%,rgba(111,214,204,.14),transparent 70%),var(--h-band)}
.hub-dusk .cta h2{max-width:22ch;margin-left:auto;margin-right:auto}
.hub-dusk footer{border-top-color:var(--h-line);color:var(--h-mute);background:var(--h-bg)}
.hub-dusk footer a{color:var(--h-ink2)}.hub-dusk footer a:hover{color:var(--h-teal)}
.hub-dusk footer b{color:var(--h-ink)}

@media(max-width:1100px){.hub-dusk .doorgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){
  .hub-dusk .nav .links{background:var(--h-band);box-shadow:0 30px 60px rgba(0,0,0,.5);border-bottom-color:var(--h-line)}
  .hub-dusk .nav .links a{border-top-color:var(--h-line)}
  .hub-dusk .hx{grid-template-columns:minmax(0,1fr);padding:110px 16px 80px;gap:40px}
  .hub-dusk .chip.c1{left:10px}.hub-dusk .chip.c2{right:10px}.hub-dusk .chip.c3{left:10px}.hub-dusk .chip.sc{right:10px}
  .hub-dusk .maplabel{padding:16px 18px}
}
@media(max-width:640px){
  .hub-dusk .doorgrid{grid-template-columns:minmax(0,1fr)}
  .hub-dusk .chip{font-size:12.5px;padding:8px 11px}.hub-dusk .chip i{width:22px;height:22px}
  .hub-dusk .chip.c2{display:none}
}

/* Software section */
.hub-dusk .pp{display:inline-flex;align-items:center;gap:6px;font:500 10.5px/1 "IBM Plex Mono",monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--h-amber);border:1px solid rgba(232,177,90,.35);background:rgba(232,177,90,.08);padding:6px 9px;border-radius:999px;margin-bottom:14px}
.hub-dusk .pp:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--h-amber)}
.hub-dusk .sw{margin-top:34px;display:grid;grid-template-columns:minmax(0,260px) minmax(0,1fr);gap:28px;background:var(--h-card);border:1px solid var(--h-line);border-radius:22px;padding:26px;box-shadow:var(--h-glow-lg)}
.hub-dusk .sw-rail{list-style:none;margin:0;padding:0 0 0 18px;position:relative;display:grid;gap:4px;align-content:start}
.hub-dusk .sw-rail:before{content:"";position:absolute;left:5px;top:14px;bottom:14px;width:2px;background:var(--h-line2);border-radius:2px}
.hub-dusk .sw-rail:after{content:"";position:absolute;left:5px;top:14px;width:2px;height:calc((100% - 28px) * var(--sw,0));background:var(--h-teal);border-radius:2px;transition:height .6s ease}
.hub-dusk .sw-rail li{position:relative}
.hub-dusk .sw-rail li:before{content:"";position:absolute;left:-17px;top:50%;width:10px;height:10px;margin-top:-5px;border-radius:50%;background:var(--h-card);border:2px solid var(--h-line2);transition:.3s;z-index:1}
.hub-dusk .sw-rail li.done:before{background:var(--h-teal);border-color:var(--h-teal)}
.hub-dusk .sw-rail li:has([aria-selected=true]):before{background:var(--h-teal);border-color:var(--h-teal);box-shadow:0 0 0 5px rgba(111,214,204,.2)}
.hub-dusk .sw-rail button{all:unset;box-sizing:border-box;width:100%;cursor:pointer;padding:11px 14px;border-radius:12px;font:600 15px "Public Sans",sans-serif;color:var(--h-mute);transition:.25s}
.hub-dusk .sw-rail button:hover{color:var(--h-ink)}
.hub-dusk .sw-rail button[aria-selected=true]{color:var(--h-ink);background:var(--h-card2)}
.hub-dusk .sw-rail button:focus-visible{outline:2px solid var(--h-teal);outline-offset:2px}
.hub-dusk .sw-panes{position:relative;display:grid}
.hub-dusk .sw-p{grid-area:1/1;opacity:0;transform:translateY(10px);transition:opacity .45s,transform .45s;pointer-events:none;padding:10px 6px}
.hub-dusk .sw-p.on{opacity:1;transform:none;pointer-events:auto}
.hub-dusk .sw-p h3{margin:0;font:400 clamp(22px,2.3vw,32px)/1.2 Michroma,sans-serif;text-wrap:balance}
.hub-dusk .sw-p p{color:var(--h-ink2);font-size:17px;line-height:1.6;max-width:60ch;margin:14px 0 18px}
.hub-dusk .sw-p ul{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.hub-dusk .sw-p li{display:flex;gap:10px;align-items:center;color:var(--h-ink);font-size:15px}
.hub-dusk .sw-p li:before{content:"";width:16px;height:16px;flex:none;border-radius:50%;background:var(--h-tint) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4.5 8.2l2.2 2.2 4.8-4.8' fill='none' stroke='%236FD6CC' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/16px no-repeat}
.hub-dusk .sw-sub{margin:56px 0 0;font:500 12px "IBM Plex Mono",monospace;letter-spacing:.16em;text-transform:uppercase;color:var(--h-mute)}
.hub-dusk .sw-grid{margin-top:18px}
@media(max-width:860px){
.hub-dusk .sw{grid-template-columns:minmax(0,1fr);padding:18px}
.hub-dusk .sw-rail{display:flex;overflow-x:auto;gap:6px;padding:0 0 6px;scrollbar-width:none}
.hub-dusk .sw-rail:before,.hub-dusk .sw-rail:after,.hub-dusk .sw-rail li:before{display:none}
.hub-dusk .sw-rail button{white-space:nowrap;padding:9px 12px;font-size:14px;border:1px solid var(--h-line2);border-radius:999px}
.hub-dusk .sw-p p{font-size:16px}
}
@media (prefers-reduced-motion:reduce){.hub-dusk .sw-p,.hub-dusk .sw-rail:after{transition:none}}

.hub-dusk .own>div{background:var(--h-card);border-color:var(--h-line)}
.hub-dusk .own-k{color:var(--h-teal)}
.hub-dusk .own p{color:var(--h-ink2)}
.hub-dusk .own{margin-top:18px}
.hub-dusk .chip .stars,.hub-dusk .rank .stars{color:var(--h-amber);font-weight:800}
.hub-dusk .chip.sc b span{color:var(--h-ink);font-weight:800}
.hub-dusk .chip.sc em{display:block;font-style:normal;font-weight:500;font-size:11.5px;color:var(--h-mute)}
.hub-dusk .rank{margin-top:20px;background:var(--h-card2);border:1px solid var(--h-line2);border-radius:16px;padding:6px 14px 4px;max-width:620px}
.hub-dusk .rank-h{display:flex;justify-content:space-between;gap:10px;font:500 10.5px "IBM Plex Mono",monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--h-mute);padding:8px 0 10px;border-bottom:1px solid var(--h-line2)}
.hub-dusk .rk{display:grid;grid-template-columns:22px minmax(0,1fr) 58px 72px;gap:12px;align-items:center;padding:11px 0;border-top:1px solid var(--h-line2)}
.hub-dusk .rk:nth-child(2){border-top:0}
.hub-dusk .rk-n{font:700 13px "IBM Plex Mono",monospace;color:var(--h-mute)}
.hub-dusk .rk.top .rk-n{color:var(--h-teal)}
.hub-dusk .rk-m>b{display:block;font-size:14.5px;color:var(--h-ink)}
.hub-dusk .rk-m>span{display:block;font-size:12.5px;color:var(--h-mute);margin-top:3px}
.hub-dusk .bdg{font-style:normal;font:600 10px/1 "IBM Plex Mono",monospace;letter-spacing:.08em;text-transform:uppercase;border-radius:999px;padding:4px 7px;margin-right:7px;vertical-align:1px}
.hub-dusk .bdg.pf{background:rgba(111,214,204,.16);color:var(--h-teal)}
.hub-dusk .bdg.tr{background:rgba(232,177,90,.14);color:var(--h-amber)}
.hub-dusk .bdg.vf{background:rgba(255,255,255,.08);color:var(--h-ink2)}
.hub-dusk .rk-s{text-align:right}
.hub-dusk .rk-s b{display:block;font:800 19px/1 "Public Sans",sans-serif;color:var(--h-ink);font-variant-numeric:tabular-nums}
.hub-dusk .rk.top .rk-s b{color:var(--h-teal)}
.hub-dusk .rk-s b em{font-style:normal;font-size:11px;font-weight:600;color:var(--h-mute)}
.hub-dusk .rk-s small{display:block;font:500 9.5px "IBM Plex Mono",monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--h-mute);margin-top:4px}
.hub-dusk .tag .up{color:var(--h-teal);font-weight:800}
.hub-dusk .pillars{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:18px;max-width:460px}
.hub-dusk .pillars div{background:var(--h-card2);border:1px solid var(--h-line2);border-radius:12px;padding:9px 12px}
.hub-dusk .pillars small{display:block;font:500 9.5px "IBM Plex Mono",monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--h-mute)}
.hub-dusk .pillars b{display:block;font:800 20px/1.2 "Public Sans",sans-serif;color:var(--h-ink2);font-variant-numeric:tabular-nums;transition:color .4s}
.hub-dusk .pillars.on b{color:var(--h-ink)}
.hub-dusk .bands{display:flex;gap:4px;margin-top:12px;max-width:460px}
.hub-dusk .bands span{flex:1;font:600 10px/1.3 "IBM Plex Mono",monospace;letter-spacing:.04em;text-transform:uppercase;color:var(--h-mute);border-top:3px solid #33404D;padding-top:6px}
.hub-dusk .bands span:nth-child(1){border-color:#B5524A}.hub-dusk .bands span:nth-child(2){border-color:#E8B15A}.hub-dusk .bands span:nth-child(3){border-color:#2FA39A}.hub-dusk .bands span:nth-child(4){border-color:#6FD6CC}.hub-dusk .bands span:nth-child(5){border-color:#BFEFEA}
.hub-dusk .bands em{display:block;font-style:normal;color:var(--h-ink2)}
@media(max-width:760px){.hub-dusk .rk{grid-template-columns:18px minmax(0,1fr) 44px 58px;gap:8px}.hub-dusk .rk-s b{font-size:16px}.hub-dusk .pillars{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:12px}.hub-dusk .pillars{gap:6px;margin-top:10px}.hub-dusk .pillars b{font-size:15px}.hub-dusk .pillars small{font-size:8.5px}.hub-dusk .pillars div{padding:5px 8px}.hub-dusk .bands{display:none}.hub-dusk .scoregrid .seal{width:156px;height:156px}.hub-dusk .chip.c3{left:-6px;bottom:auto;top:60%}}

/* beyond the fix: services by audience */
.hub-dusk .svx{margin-top:34px;background:var(--h-card);border:1px solid var(--h-line);border-radius:24px;padding:22px;box-shadow:var(--h-glow)}
.hub-dusk .svx-tabs{display:flex;flex-wrap:wrap;gap:8px;padding-bottom:20px;border-bottom:1px solid var(--h-line)}
.hub-dusk .svx-tabs button{all:unset;cursor:pointer;font:600 14px "Public Sans",system-ui,sans-serif;padding:10px 16px;border-radius:999px;border:1px solid var(--h-line2);color:var(--h-ink2);transition:background .25s,color .25s,border-color .25s}
.hub-dusk .svx-tabs button:hover{border-color:var(--h-teal);color:var(--h-ink)}
.hub-dusk .svx-tabs button[aria-selected="true"]{background:var(--h-teal);border-color:var(--h-teal);color:var(--h-teal-ink)}
.hub-dusk .svx-tabs button:focus-visible{outline:2px solid var(--h-teal);outline-offset:3px}
.hub-dusk .svx-p{display:none;grid-template-columns:minmax(0,.85fr) minmax(0,1.6fr);gap:clamp(22px,3vw,44px);padding-top:24px;align-items:start}
.hub-dusk .svx-p.on{display:grid}
.hub-dusk .svx-c h3{font-size:clamp(21px,2vw,27px);line-height:1.2;letter-spacing:-.015em;margin:0 0 10px;text-wrap:balance}
.hub-dusk .svx-c p{color:var(--h-ink2);line-height:1.55;margin:0 0 20px;font-size:15.5px}
.hub-dusk .svx-c>a:not(.btn){display:inline-block;margin:14px 0 0 2px;font-weight:600;font-size:14px}
.hub-dusk .svx-g{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.hub-dusk .svx-t{position:relative;background:var(--h-card2);border:1px solid var(--h-line);border-radius:16px;padding:16px 16px 14px;display:flex;flex-direction:column;gap:5px;transition:border-color .25s,transform .25s;animation:svxIn .5s both;animation-delay:var(--d)}
.hub-dusk .svx-t:hover{border-color:rgba(111,214,204,.5);transform:translateY(-2px)}
.hub-dusk .svx-t svg{width:24px;height:24px;fill:none;stroke:var(--h-teal);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;margin-bottom:6px}
.hub-dusk .svx-t b{font-size:15.5px;color:var(--h-ink)}
.hub-dusk .svx-t span{font-size:13.5px;line-height:1.45;color:var(--h-mute)}
.hub-dusk .svx-t em{font-style:normal;align-self:flex-start;margin-top:8px;font:500 10.5px "IBM Plex Mono",monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--h-teal);background:var(--h-tint);border-radius:999px;padding:4px 9px}
.hub-dusk .svx-n{margin:16px 0 0;color:var(--h-mute);font-size:13.5px}
@keyframes svxIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media (max-width:980px){.hub-dusk .svx-p{grid-template-columns:minmax(0,1fr)}.hub-dusk .svx-g{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.hub-dusk .svx{padding:16px}.hub-dusk .svx-tabs{flex-wrap:nowrap;overflow-x:auto;margin:0 -16px;padding:0 16px 16px;scrollbar-width:none}.hub-dusk .svx-tabs::-webkit-scrollbar{display:none}.hub-dusk .svx-tabs button{flex:none}.hub-dusk .svx-g{grid-template-columns:minmax(0,1fr)}}
@media (prefers-reduced-motion:reduce){.hub-dusk .svx-t{animation:none;transition:none}}

/* canonical ETCH Score seal (etch-seal.js, reverse tone on ink) */
.etchseal{width:260px;height:260px;display:grid;place-items:center;--s:1.083}
.etchseal>div{transform:scale(var(--s));transform-origin:50% 50%}
@media(max-width:760px){.hub-dusk .scoregrid .etchseal{--s:.65}}


/* door moments */
.hub-dusk .door .phw{position:relative}
.hub-dusk .door .mo{position:absolute;left:14px;bottom:12px;display:inline-flex;align-items:center;gap:8px;padding:7px 11px 7px 9px;border-radius:999px;background:rgba(18,24,32,.72);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.14);color:#fff;font:600 12.5px "Public Sans",sans-serif;letter-spacing:.01em;opacity:0;transform:translateY(8px);transition:opacity .35s,transform .45s cubic-bezier(.2,.7,.2,1);pointer-events:none}
.hub-dusk .door .mo i{width:7px;height:7px;border-radius:50%;background:var(--h-teal);box-shadow:0 0 10px rgba(111,214,204,.9)}
.hub-dusk .door:hover .mo,.hub-dusk .door:focus-visible .mo{opacity:1;transform:none}
.hub-dusk .door:hover .ph,.hub-dusk .door:focus-visible .ph{transform:scale(1.06) translateY(-1.2%)}
@media(max-width:900px){.hub-dusk .door .mo{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.hub-dusk .door .mo{opacity:1;transform:none;transition:none}.hub-dusk .door .ph{transition:none}}

/* one record, six doors */
.hub-dusk #flows .stick{display:block}
.hub-dusk .flowgrid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.5fr);gap:clamp(24px,4vw,64px);align-items:center;height:100%;padding-top:100px;padding-bottom:40px;box-sizing:border-box}
.hub-dusk .flow-copy h2{font-size:clamp(26px,3vw,42px)}
.hub-dusk .flow-now{margin-top:8px;padding:18px 20px;border-radius:18px;background:var(--h-card);border:1px solid var(--h-line);box-shadow:var(--h-glow);min-height:116px}
.hub-dusk .flow-now small{display:block;font:600 11px "IBM Plex Mono",monospace;letter-spacing:.16em;text-transform:uppercase;color:var(--h-teal);margin-bottom:8px}
.hub-dusk .flow-now b{display:block;font:500 clamp(16px,1.35vw,19px)/1.4 "Public Sans",sans-serif;color:var(--h-ink);text-wrap:pretty}
.hub-dusk .flow-list{list-style:none;margin:18px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 18px}
.hub-dusk .flow-list li{display:flex;align-items:baseline;gap:8px;font-size:13px;color:var(--h-mute);opacity:.45;transition:opacity .4s,color .4s;padding:4px 0;border-top:1px solid var(--h-line)}
.hub-dusk .flow-list li b{color:var(--h-ink2);font-weight:600}
.hub-dusk .flow-list li.on{opacity:1}
.hub-dusk .flow-list li.cur b{color:var(--h-teal)}
.hub-dusk .flow-art{position:relative;min-width:0}
.hub-dusk #flowSvg{display:block;width:100%;height:auto;max-height:calc(100vh - 160px);overflow:visible}
.hub-dusk .fl-orbit{fill:none;stroke:rgba(255,255,255,.05);stroke-dasharray:2 7}
.hub-dusk .fl-line{fill:none;stroke:rgba(255,255,255,.1);stroke-width:1.5}
.hub-dusk .fl-lit{fill:none;stroke:#6FD6CC;stroke-width:2;stroke-linecap:round;filter:drop-shadow(0 0 6px rgba(111,214,204,.55))}
.hub-dusk .fl-flow{fill:none;stroke:rgba(217,255,249,.9);stroke-width:2.2;stroke-linecap:round;stroke-dasharray:3 46;opacity:0;transition:opacity .6s}
.hub-dusk .fl-flow.on{opacity:.9;animation:flmove 2.8s linear infinite}
.hub-dusk .fl-flow.out.on{animation-direction:reverse}
.hub-dusk .fl-flow.both.on{animation-duration:4s}
@keyframes flmove{to{stroke-dashoffset:-49}}
.hub-dusk .fl-ring{fill:#161E27;stroke:var(--h-line2);stroke-width:1.5;transition:stroke .4s,fill .4s}
.hub-dusk .fl-dot{fill:#36434F;transition:fill .4s,filter .4s}
.hub-dusk .fl-node.on .fl-ring{stroke:#6FD6CC;fill:#17262A}
.hub-dusk .fl-node.on .fl-dot{fill:#6FD6CC;filter:drop-shadow(0 0 8px rgba(111,214,204,.9))}
.hub-dusk .fl-name{font:600 15px "Public Sans",sans-serif;fill:#8E9AA5;transition:fill .4s}
.hub-dusk .fl-sub{font:500 10.5px "IBM Plex Mono",monospace;letter-spacing:.1em;text-transform:uppercase;fill:#5F6C78;transition:fill .4s}
.hub-dusk .fl-node.on .fl-name{fill:#EEF2F4}.hub-dusk .fl-node.on .fl-sub{fill:#A9B4BE}
.hub-dusk .fl-cbox{fill:#1D2631;stroke:var(--h-line2);stroke-width:1.5;filter:drop-shadow(0 20px 40px rgba(0,0,0,.55));transition:stroke .5s}
.hub-dusk .fl-done .fl-cbox{stroke:#6FD6CC}
.hub-dusk .fl-ck{font:600 10px "IBM Plex Mono",monospace;letter-spacing:.22em;fill:#6FD6CC}
.hub-dusk .fl-ct{font:400 20px Michroma,sans-serif;fill:#EEF2F4;letter-spacing:-.01em}
.hub-dusk .fl-cs{font:500 10.5px "Public Sans",sans-serif;fill:#A9B4BE}
.hub-dusk .fl-seal{opacity:0;transition:opacity .6s}
.hub-dusk .fl-done .fl-seal{opacity:1}
.hub-dusk .fl-center{opacity:0;transform-box:fill-box;transform-origin:center;transition:opacity .6s}
.hub-dusk .fl-in .fl-center{opacity:1}
@media(max-width:860px){
  .hub-dusk #flows{height:300vh!important}
  .hub-dusk .flowgrid{grid-template-columns:minmax(0,1fr);gap:10px;padding:84px 16px 16px;align-content:start}
  .hub-dusk .flow-copy .lede{display:none}
  .hub-dusk .flow-copy h2{font-size:24px;margin-bottom:10px}
  .hub-dusk .flow-now{padding:12px 14px;min-height:0}
  .hub-dusk .flow-now b{font-size:14px}
  .hub-dusk .flow-list{display:none}
  .hub-dusk #flowSvg{max-height:calc(100vh - 300px)}
  .hub-dusk .fl-name{font-size:19px}.hub-dusk .fl-sub{font-size:12px}.hub-dusk .fl-ct{font-size:17px}.hub-dusk .fl-cs{display:none}
}
@media(prefers-reduced-motion:reduce){.hub-dusk .fl-flow.on{animation:none;opacity:0}.hub-dusk .fl-lit{stroke-dashoffset:0!important}}

.hub-dusk .fl-arrowp{fill:none;stroke:none;opacity:0;transition:opacity .4s}
.hub-dusk .fl-arrowp.on{opacity:1}
@media(prefers-reduced-motion:reduce){.hub-dusk .fl-arrowp{opacity:1}}
