/* DC_CIRCUIT_LORE_V1 — shared visual story, separate desktop and mobile.
   No external assets, no audio autoplay, no gameplay/unlock mutations. */
#dcCircuitPage{
 --dc-lore-cyan:#33f5ff;
 --dc-lore-magenta:#ff65d8;
 --dc-lore-gold:#ffc878;
}
/* NEO MILANO — quiet, real network console, not unrelated decorative buttons. */
#dcCircuit .dc-network-intel{
 position:absolute;z-index:4;box-sizing:border-box;
 top:clamp(70px,11.5%,120px);left:50%;transform:translateX(-50%);
 width:min(390px,31vw);
 padding:12px 15px 10px;
 color:#ebfeff;
 border:1px solid rgba(70,224,247,.56);
 border-top:2px solid rgba(77,250,255,.89);
 border-radius:8px 8px 3px 3px;
 background:linear-gradient(125deg,rgba(2,17,28,.92),rgba(3,24,36,.85) 58%,rgba(23,8,33,.85));
 box-shadow:0 13px 40px #0008,inset 0 0 26px rgba(0,245,255,.055),0 0 22px #00f2ff25;
 pointer-events:none;isolation:isolate;
 backdrop-filter:blur(9px);
 transition:border-color .22s,box-shadow .22s;
}
#dcCircuit .dc-network-intel::before{
 content:"";position:absolute;inset:0 0 auto; height:2px;
 background:linear-gradient(90deg,transparent,#2bfdff,#ff60cc,transparent);
 opacity:.8;pointer-events:none;
}
#dcCircuit .dc-network-intel__kicker{
 display:flex;align-items:center;justify-content:space-between;
 gap:8px;min-width:0;
 font:800 8px/1.4 'JetBrains Mono',monospace;letter-spacing:.1em;color:#63dbec;
}
#dcCircuit .dc-network-intel__kicker > span:first-of-type{
 min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
#dcCircuit .dc-network-intel__kicker i{
 display:block;flex:0 0 7px;width:7px;height:7px;
 border-radius:50%;background:#30f7ce;box-shadow:0 0 10px #30f7ce;
 animation:dcLoreBeacon 3.2s ease-in-out infinite;
}
#dcCircuit .dc-network-intel__freq{
 font:800 8px/1.25 'JetBrains Mono',monospace;
 white-space:nowrap;color:#ffbfed;
}
#dcCircuit .dc-network-intel > strong{
 display:block;margin:7px 0 4px;
 font:900 clamp(17px,1.8vw,24px)/1.06 'Rajdhani','Arial Narrow',Arial,sans-serif;
 letter-spacing:.07em;color:#fff;
 text-shadow:0 0 16px #00eaff45;
}
#dcCircuit .dc-network-intel > p{
 margin:0;min-height:30px;
 font:500 10px/1.44 'JetBrains Mono',monospace;
 color:#b4d7df;
}
#dcCircuit .dc-network-intel__footer{
 display:flex;gap:8px;justify-content:space-between;
 margin-top:9px;padding-top:7px;
 border-top:1px dashed #1b657280;
 color:#74c6d0;font:700 8px/1.3 'JetBrains Mono',monospace;letter-spacing:.055em;
}
#dcCircuit .dc-network-intel__footer span:first-child{
 color:#8efff2;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
#dcCircuit .dc-network-intel[data-channel]{
 border-top-color:#f37add;
 box-shadow:0 13px 40px #000a,inset 0 0 26px #d2187a1b,0 0 24px #ff45c345;
}
#dcCircuit .dc-network-flares{
 position:absolute;z-index:1;inset:0;overflow:hidden;
 pointer-events:none;user-select:none;
}
#dcCircuit .dc-network-flares i{
 display:block;position:absolute;width:5px;height:5px;top:43%;left:50%;
 background:#a7ffff;border-radius:50%;
 box-shadow:0 0 9px 3px #00eaff,0 0 24px #00eaff;
 opacity:0;transform:translate(-50%,-50%);
 animation:dcLoreParticle 7.5s ease-in-out infinite;
 animation-delay:calc(var(--flare-index) * -1.85s);
}
#dcCircuit .dc-network-flares i:nth-child(2){background:#ff74dd;box-shadow:0 0 10px #f35cdb;--flare-distance:170px;--flare-y:-105px}
#dcCircuit .dc-network-flares i:nth-child(3){--flare-distance:-180px;--flare-y:95px}
#dcCircuit .dc-network-flares i:nth-child(4){background:#c0ff75;box-shadow:0 0 11px #a1ff67;--flare-distance:145px;--flare-y:114px}
@keyframes dcLoreParticle{
 0%,14%{opacity:0;transform:translate(-50%,-50%) scale(.5)}
 27%{opacity:.85}
 59%{opacity:.9;transform:translate(calc(-50% + var(--flare-distance, -165px)),calc(-50% + var(--flare-y,-120px))) scale(1)}
 72%,100%{opacity:0;transform:translate(calc(-50% + var(--flare-distance, -165px)),calc(-50% + var(--flare-y,-120px))) scale(.25)}
}
@keyframes dcLoreBeacon{50%{opacity:.45;box-shadow:0 0 3px #30f7ce}}
/* Route labels become physical terminals — readable at a glance. */
#dcCircuit .dc-node[data-route]{
 isolation:isolate;
 border-color:var(--dc-node-color,#21e9ff);
 background:
  radial-gradient(ellipse at 50% -20%,rgba(14,74,89,.19),transparent 80%),
  linear-gradient(165deg,rgba(3,18,31,.93),rgba(4,9,20,.91));
 box-shadow:0 8px 22px #000b,inset 0 0 14px #23e1ff13,
   0 0 13px var(--dc-node-glow,#00eaff3a);
 transition:box-shadow .22s ease,border-color .22s ease,filter .22s ease;
}
#dcCircuit .dc-node[data-route]::after{
 content:"";position:absolute;left:15%;right:15%;bottom:2px;height:2px;
 background:linear-gradient(90deg,transparent,var(--dc-node-color,#16f1ff),transparent);
 opacity:.7;pointer-events:none;box-shadow:0 0 8px var(--dc-node-color,#1affff);
}
#dcCircuit .dc-node[data-route] strong{
 font-size:clamp(10px,1vw,13px);
 line-height:1.15;letter-spacing:.035em;
 text-shadow:0 1px 9px #000;
}
#dcCircuit .dc-node[data-route] small{letter-spacing:.08em;color:#b1d8e1}
#dcCircuit .dc-node[data-route] .dc-node__art{
 filter:drop-shadow(0 0 8px var(--dc-node-color,#13efff));
}
#dcCircuit .dc-node[data-route]:is(:hover,:focus-visible){
 border-color:#ebffff;box-shadow:0 0 19px var(--dc-node-color,#18f1ff),
   0 0 37px var(--dc-node-glow,#07f1ff62),inset 0 0 19px #00eaff2f;
}
#dcCircuit .dc-node[data-route]:focus-visible{
 outline:2px solid #fff;outline-offset:4px;
}
/* The real processor remains 130px / original calibrated X,Y — effects outside it only. */
#dcCircuit #dcCircuitCoreButton:is(:hover,:focus-visible){
 filter:drop-shadow(0 0 17px #00f2ff88);
}
#dcCircuit .dc-circuit__extras a:focus-visible{
 outline:2px solid #8efcff;outline-offset:2px;
}
@media(min-width:901px) and (max-width:1120px){
 #dcCircuit .dc-network-intel{
  width:31vw;max-width:320px;padding:9px 10px;
  top:clamp(62px,10%,100px);
 }
 #dcCircuit .dc-network-intel > strong{font-size:17px}
 #dcCircuit .dc-network-intel__freq{display:none}
 #dcCircuit .dc-network-intel > p{font-size:9px}
}
/* Core catalogue: earned prize vs available service vs sealed slot. */
#dcCircuitExpansion .dc-network-rewards{
 flex:0 0 auto;box-sizing:border-box;
 border:1px solid #246b80;
 border-radius:10px;padding:11px 12px;
 background:linear-gradient(110deg,rgba(3,28,40,.97),rgba(15,16,39,.95));
 box-shadow:inset 0 0 22px #00eaff13;
}
#dcCircuitExpansion .dc-network-rewards__head{
 display:flex;align-items:center;justify-content:space-between;
 gap:8px;flex-wrap:wrap;margin-bottom:10px;
 color:#87f4fc;font:800 9px/1.3 'JetBrains Mono',monospace;letter-spacing:.075em;
}
#dcCircuitExpansion .dc-network-rewards__head span{
 color:#ffc680;font-size:8px;
}
#dcCircuitExpansion .dc-network-rewards__tiles{
 display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;
}
#dcCircuitExpansion .dc-network-rewards__tiles > div{
 display:flex;flex-direction:column;gap:4px;
 padding:10px;box-sizing:border-box;border-radius:7px;
 background:rgba(0,13,26,.75);border:1px solid rgba(54,157,178,.45);
}
#dcCircuitExpansion .dc-network-rewards__tiles small{
 font:800 8px/1.3 'JetBrains Mono',monospace;
 color:#9ecbd3;letter-spacing:.035em;overflow-wrap:anywhere;
}
#dcCircuitExpansion .dc-network-rewards__tiles b{
 font:900 24px/1.1 'Rajdhani','Arial Narrow',sans-serif;color:#64f7ff;
}
#dcCircuitExpansion .dc-network-rewards__tiles>div:nth-child(2) b{color:#7fffc1}
#dcCircuitExpansion .dc-network-rewards__tiles>div:nth-child(3) b{color:#ffafdc}
#dcCircuitExpansion #dcLoreRewardsNote{
 margin:8px 0 0;font:500 10px/1.5 'JetBrains Mono',monospace;
 color:#a4c8d6;
}
#dcCircuitExpansion .dc-circuit-expansion__grid{
 grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
 align-items:stretch;gap:11px;
}
#dcCircuitExpansion .dc-sector{
 box-sizing:border-box;
 min-width:0;min-height:195px;
 padding:14px 12px;gap:7px;align-items:center;
 border-radius:9px;
 background:linear-gradient(150deg,rgba(9,29,44,.94),rgba(4,12,26,.96));
 border:1px solid #426073;
 transition:border-color .18s,box-shadow .18s;
}
#dcCircuitExpansion .dc-sector img{width:68px;height:68px;flex:0 0 68px}
#dcCircuitExpansion .dc-sector b{
 font:900 16px/1.2 'Rajdhani','Arial Narrow',Arial,sans-serif;
 letter-spacing:.045em;color:white;
}
#dcCircuitExpansion .dc-sector p{
 font:500 11px/1.4 Arial,sans-serif;color:#b7d2dd;
 max-width:31ch;overflow-wrap:anywhere;
}
#dcCircuitExpansion .dc-sector small{
 font:700 10px/1.3 'JetBrains Mono',monospace;
 color:#b2cbd4;letter-spacing:.01em;
}
#dcCircuitExpansion .dc-sector .dc-chip-upgrade-status{
 width:100%;max-width:100%;padding:7px;
 border:1px solid rgba(123,171,186,.3);border-radius:5px;
 background:rgba(4,16,29,.85);
 font-weight:900!important;font-size:10px!important;line-height:1.35!important;
}
#dcCircuitExpansion .dc-sector.is-unlocked{
 background:linear-gradient(155deg,rgba(8,49,44,.95),rgba(4,26,37,.95));
 border-color:#47f8c1!important;
 box-shadow:0 0 21px #23f6c82d,inset 0 0 19px #23ffab1c;
}
#dcCircuitExpansion .dc-sector.is-earned:not(.is-unlocked){
 border-color:#f28ce6!important;
 box-shadow:0 0 19px #ff57d121,inset 0 0 18px #ff57d115;
}
#dcCircuitExpansion .dc-sector.is-locked{border-color:rgba(84,118,139,.58)}
#dcCircuitExpansion .dc-sector.is-locked img{opacity:.68;filter:grayscale(.75) brightness(.7)}
#dcCircuitExpansion .dc-sector a{
 display:inline-flex;align-items:center;justify-content:center;
 width:100%;box-sizing:border-box;
 min-height:38px;padding:9px 10px;
 border:1px solid #3cdccf;border-radius:6px;
 background:#092f37;color:#bfffff;
 font:800 10px/1.3 'JetBrains Mono',monospace!important;
}
#dcCircuitExpansion .dc-sector a:is(:hover,:focus-visible){
 outline:2px solid #efffff;outline-offset:2px;background:#115360;
}
#dcCircuitExpansion .dc-circuit-wallet{
 font:500 11px/1.45 'JetBrains Mono',monospace;
 padding:10px 12px;border-radius:7px;
 background:#071927b8;color:#c6e7ee;
}
#dcCircuitExpansion .dc-circuit-expansion__grid::before{display:none}
/* Mobile is already a separate page: refine it rather than shrinking desktop. */
.dc-mobile-transmission{display:none}
@media(max-width:900px){
 #dcCircuit .dc-network-intel,#dcCircuit .dc-network-flares{display:none!important}
 #dcMobileCityHome .dc-mobile-transmission{
  --dc-tx-tone:#ff51d8;
  display:flex!important;flex-direction:column!important;gap:0!important;
  position:relative!important;isolation:isolate!important;
  margin:0 0 23px!important;padding:0!important;
  color:#efffff!important;background:linear-gradient(135deg,#061b2c,#081524)!important;
  border:1px solid #1d667b!important;border-left:3px solid var(--dc-tx-tone)!important;
  border-radius:12px!important;overflow:hidden!important;
  box-shadow:0 10px 30px #0009,inset 0 0 17px #00eaff10!important;
 }
 #dcMobileCityHome .dc-mobile-transmission__head{
  display:flex;align-items:center;justify-content:space-between!important;
  gap:8px!important;padding:9px 12px!important;
  color:#88f6f5!important;
  border-bottom:1px solid #2073818c!important;
  font:900 9px/1.35 'JetBrains Mono',monospace!important;
  letter-spacing:.08em!important;
 }
 #dcMobileCityHome .dc-mobile-transmission__head span:last-child{
  color:#ffb3e7!important;white-space:nowrap!important;
 }
 #dcMobileCityHome .dc-mobile-transmission__body{
  display:flex!important;gap:10px!important;align-items:center!important;
  justify-content:space-between!important;padding:13px 12px 9px!important;
 }
 #dcMobileCityHome .dc-mobile-transmission__body > div:first-child{min-width:0!important;flex:1 1 auto!important}
 #dcMobileCityHome .dc-mobile-transmission__body small{
  display:block!important;font:800 9px/1.3 'JetBrains Mono',monospace!important;
  letter-spacing:.07em!important;color:var(--dc-tx-tone)!important;
 }
 #dcMobileCityHome .dc-mobile-transmission h2{
  color:#fff!important;margin:4px 0 7px!important;
  font:900 clamp(20px,5.3vw,29px)/1.05 'Rajdhani',Arial,sans-serif!important;
  letter-spacing:.05em!important;
 }
 #dcMobileCityHome .dc-mobile-transmission p{
  color:#badbe3!important;font:500 12px/1.47 Arial,sans-serif!important;
  margin:0!important;
 }
 #dcMobileCityHome .dc-mobile-transmission__controls{
  display:flex!important;flex-direction:column!important;gap:8px!important;
  flex:0 0 38px!important;
 }
 #dcMobileCityHome .dc-mobile-transmission__controls button{
  display:grid!important;place-items:center!important;
  width:38px!important;height:38px!important;min-height:38px!important;
  padding:0!important;color:#e4ffff!important;
  background:#073348!important;border:1px solid #278caa!important;
  border-radius:7px!important;font:bold 23px/1 Arial,sans-serif!important;
  cursor:pointer!important;touch-action:manipulation!important;
 }
 #dcMobileCityHome #dcMobileTxOpen{
  display:flex!important;justify-content:space-between!important;
  align-items:center!important;gap:8px!important;
  padding:10px 12px!important;min-height:43px!important;
  border-top:1px solid #29717e!important;
  color:#c1ffff!important;background:#062e3b!important;
  font:900 11px/1.3 'JetBrains Mono',monospace!important;
  text-decoration:none!important;letter-spacing:.035em!important;
 }
 #dcMobileCityHome #dcMobileTxOpen span:last-child{font-size:17px!important}
 #dcMobileCityHome .dc-mobile-terminal{
  min-height:181px!important;padding:11px 8px!important;
  box-shadow:0 8px 22px #000a,inset 0 0 18px #00eaff16!important;
  transition:transform .18s,border-color .18s,box-shadow .18s!important;
 }
 #dcMobileCityHome .dc-mobile-terminal.is-transmission-selected{
  border-width:2px!important;
  background:linear-gradient(150deg,#073148,#101426)!important;
  box-shadow:0 0 20px var(--mobile-terminal-accent),inset 0 0 17px #00ffff19!important;
 }
 #dcMobileCityHome .dc-mobile-terminal:focus-visible{
  outline:3px solid white!important;outline-offset:2px!important;
 }
 #dcMobileCityHome .dc-mobile-terminal .dc-mobile-terminal__brief{
  display:block!important;margin:5px 0 0!important;
  min-height:25px!important;max-width:100%!important;
  font:500 10px/1.32 Arial,sans-serif!important;
  font-style:normal!important;letter-spacing:0!important;
  color:#b8d5de!important;
 }
 #dcMobileCityHome .dc-mobile-terminal img{
  width:68px!important;height:68px!important;flex-basis:68px!important;
 }
 #dcMobileCityHome .dc-mobile-hero{
  border-color:#2acbde!important;
  box-shadow:0 0 24px #03e9fe2d,inset 0 0 25px #03e9fe19!important;
 }
 #dcMobileCityHome .dc-mobile-hero-actions a:is(:hover,:focus-visible){
  outline:2px solid #fff!important;outline-offset:2px!important;
 }
 #dcMobileCityHome #dcMobileTxOpen:is(:focus-visible,:hover),
 #dcMobileCityHome .dc-mobile-transmission__controls button:is(:focus-visible,:hover){
  outline:2px solid white!important;outline-offset:1px!important;
 }
 #dcCircuitExpansion .dc-network-rewards__tiles{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:5px!important;
 }
 #dcCircuitExpansion .dc-network-rewards{padding:9px!important}
 #dcCircuitExpansion .dc-network-rewards__head{gap:4px!important;font-size:8px!important}
 #dcCircuitExpansion .dc-network-rewards__tiles > div{padding:7px!important}
 #dcCircuitExpansion .dc-network-rewards__tiles b{font-size:20px!important}
 #dcCircuitExpansion .dc-network-rewards__tiles small{font-size:8px!important;line-height:1.25!important}
 #dcCircuitExpansion .dc-network-rewards p{font-size:10px!important}
 #dcCircuitExpansion .dc-sector{
  min-height:210px!important;padding:10px 7px!important;gap:7px!important;
 }
 #dcCircuitExpansion .dc-sector img{
  width:58px!important;height:58px!important;flex-basis:58px!important;
 }
 #dcCircuitExpansion .dc-sector b{font-size:14px!important}
 #dcCircuitExpansion .dc-sector p{font-size:11px!important}
 #dcCircuitExpansion .dc-sector .dc-chip-upgrade-status{
  font-size:9px!important;padding:5px!important;
 }
}
@media(max-width:370px){
 #dcMobileCityHome .dc-mobile-transmission__controls{
  flex-basis:34px!important;
 }
 #dcMobileCityHome .dc-mobile-transmission__controls button{
  width:34px!important;height:34px!important;
 }
 #dcMobileCityHome .dc-mobile-terminal{
  min-height:172px!important;padding:8px 5px!important;
 }
 #dcMobileCityHome .dc-mobile-terminal img{
  width:61px!important;height:61px!important;flex-basis:61px!important;
 }
 #dcCircuitExpansion .dc-network-rewards__tiles{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 #dcCircuitExpansion .dc-network-rewards__tiles > div:last-child{grid-column:1/-1!important}
}
@media(prefers-reduced-motion:reduce){
 #dcCircuit .dc-network-intel__kicker i,#dcCircuit .dc-network-flares i{animation:none!important}
 #dcCircuit .dc-node[data-route],#dcMobileCityHome .dc-mobile-terminal{transition:none!important}
}
