/* Jang Comms FX — presentation layer for the communications console. */
#jang-comms-root .gc-window.fx-ready{
  background:
    radial-gradient(90% 40% at 100% 0%,rgba(46,170,158,.12),transparent 60%),
    radial-gradient(70% 40% at 0% 100%,rgba(212,160,70,.07),transparent 60%),
    #0a121c;
  border-color:rgba(120,196,190,.22);
  box-shadow:0 30px 90px rgba(0,0,0,.62),0 0 0 1px rgba(255,255,255,.03) inset,0 0 60px -20px rgba(70,200,185,.25);
  animation:fxWin .42s cubic-bezier(.2,.8,.2,1) both;
}
@keyframes fxWin{from{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:none}}

/* header: live net identity */
#jang-comms-root .fx-ready .gc-header{position:relative;overflow:hidden;
  background:radial-gradient(ellipse at 88% -40%,rgba(52,190,176,.34),transparent 48%),radial-gradient(ellipse at 0% 140%,rgba(214,164,76,.14),transparent 50%),linear-gradient(120deg,#0e1b29,#13293b 58%,#0f1d2b)}
#jang-comms-root .fx-ready .gc-header::after{content:'';position:absolute;inset:auto 0 0 0;height:1px;background:linear-gradient(90deg,transparent,rgba(120,230,214,.6),transparent);opacity:.7}
#jang-comms-root .fx-ready .gc-header-copy h1{letter-spacing:.2px;text-shadow:0 0 18px rgba(98,224,206,.25)}
#jang-comms-root .gc-brand-mark{position:relative;overflow:hidden}
.fx-radar{position:absolute;inset:-60%;pointer-events:none;border-radius:50%;
  background:conic-gradient(from 0deg,rgba(104,232,210,0) 0deg,rgba(104,232,210,.0) 250deg,rgba(104,232,210,.4) 350deg,rgba(104,232,210,0) 360deg);
  animation:fxRadar 3.6s linear infinite}
@keyframes fxRadar{to{transform:rotate(360deg)}}
.fx-signal{display:inline-flex;align-items:flex-end;gap:3px;height:20px;padding:0 10px 0 4px;margin-inline-start:auto;direction:ltr}
.fx-signal i{width:3px;border-radius:2px;background:#58d6c2;box-shadow:0 0 6px rgba(88,214,194,.7);animation:fxBars 1.4s ease-in-out infinite}
.fx-signal i:nth-child(1){height:6px;animation-delay:0s}.fx-signal i:nth-child(2){height:10px;animation-delay:.15s}.fx-signal i:nth-child(3){height:14px;animation-delay:.3s}.fx-signal i:nth-child(4){height:18px;animation-delay:.45s}
.fx-signal em{font:800 9px/1 inherit;font-style:normal;color:#8fe9d9;letter-spacing:.4px;margin-inline-start:7px;align-self:center;direction:rtl;padding:3px 6px;border-radius:5px;background:rgba(88,214,194,.12);border:1px solid rgba(88,214,194,.3)}
@keyframes fxBars{0%,100%{opacity:.45;transform:scaleY(.65)}50%{opacity:1;transform:scaleY(1)}}
@media (max-width:420px){.fx-signal{display:none}}

/* tabs */
#jang-comms-root .fx-ready .gc-tabs{background:linear-gradient(180deg,#0e1b29,#0b1521)}
#jang-comms-root .fx-ready .gc-tabs button.is-active{border-color:rgba(94,214,196,.4);box-shadow:0 0 18px -6px rgba(94,214,196,.5),inset 0 1px rgba(255,255,255,.07)}
#jang-comms-root .fx-ready .gc-tabs button.is-active::after{content:'';position:absolute;inset:auto 18% -1px 18%;height:2px;border-radius:2px;background:linear-gradient(90deg,transparent,#6af0d8,transparent)}
#jang-comms-root .fx-ready .gc-badge{animation:fxPing 2.4s ease-out infinite}
@keyframes fxPing{0%{box-shadow:0 0 0 0 rgba(213,128,72,.6)}70%,100%{box-shadow:0 0 0 7px rgba(213,128,72,0)}}

/* feed */
#jang-comms-root .fx-ready .gc-feed{gap:3px;background:
  linear-gradient(180deg,rgba(9,17,26,.35),transparent 12%),
  repeating-linear-gradient(0deg,rgba(130,200,210,.022) 0 1px,transparent 1px 3px),
  linear-gradient(180deg,rgba(14,27,40,.97),rgba(10,20,31,.99))}
.fx-day{align-self:center;margin:10px 0 6px;position:relative;width:100%;text-align:center;line-height:1}
.fx-day::before{content:'';position:absolute;inset:50% 0 auto;height:1px;background:linear-gradient(90deg,transparent,rgba(140,190,205,.22),transparent)}
.fx-day span{position:relative;display:inline-block;padding:5px 12px;border-radius:99px;font-size:10px;font-weight:700;letter-spacing:.3px;color:#9fc0cb;background:#0f1d2a;border:1px solid rgba(140,190,205,.2)}

/* bubbles */
#jang-comms-root .fx-ready .gc-message{--h:var(--hue,190);position:relative;margin-top:7px;padding:9px 12px 10px;border:1px solid hsla(var(--h),38%,62%,.16);
  background:linear-gradient(145deg,hsla(var(--h),30%,22%,.58),hsla(var(--h),32%,13%,.82) 70%),#122131;
  border-radius:16px 16px 16px 5px;box-shadow:0 4px 14px rgba(0,0,0,.18),inset 0 1px rgba(255,255,255,.04);transition:border-color .25s,box-shadow .25s}
#jang-comms-root .fx-ready .gc-message::before{content:'';position:absolute;inset-block:10px;inset-inline-start:0;width:2px;border-radius:2px;background:hsl(var(--h),64%,62%);opacity:.8;box-shadow:0 0 10px hsla(var(--h),70%,60%,.6)}
#jang-comms-root .fx-ready .gc-message.is-mine{border-color:rgba(98,214,196,.3);
  background:linear-gradient(145deg,rgba(28,92,96,.62),rgba(18,56,66,.88) 75%),#14343c;border-radius:16px 16px 5px 16px}
#jang-comms-root .fx-ready .gc-message.is-mine::before{background:#6af0d8;box-shadow:0 0 10px rgba(106,240,216,.6)}
#jang-comms-root .fx-ready .gc-message.fx-cont{margin-top:0;border-top-left-radius:6px;border-top-right-radius:6px}
#jang-comms-root .fx-ready .gc-message.fx-cont::before{opacity:.35}
#jang-comms-root .fx-ready .gc-message.fx-cont .gc-message-meta .gc-message-author,
#jang-comms-root .fx-ready .gc-message.fx-cont .gc-message-meta .fx-av{display:none}
#jang-comms-root .fx-ready .gc-message.fx-cont .gc-message-meta{justify-content:flex-start;position:absolute;inset-block-end:6px;inset-inline-end:11px;margin:0}
#jang-comms-root .fx-ready .gc-message.fx-cont .gc-message-body{margin-top:0;padding-bottom:10px}
#jang-comms-root .fx-ready .gc-message-author{color:hsl(var(--h),70%,78%);font-weight:800;font-size:12px}
#jang-comms-root .fx-ready .gc-message.is-mine .gc-message-author{color:#a9f4e6}
#jang-comms-root .fx-ready .gc-message-body{margin-top:5px}
.fx-av{display:inline-grid;place-items:center;flex:none;width:26px;height:26px;border-radius:50%;font-size:14px;font-weight:800;line-height:1;color:#fff;
  background:radial-gradient(circle at 30% 25%,hsl(var(--hue,190),65%,52%),hsl(var(--hue,190),55%,26%));
  border:1px solid hsla(var(--hue,190),70%,75%,.55);box-shadow:0 0 0 2px rgba(7,14,20,.8),0 2px 8px hsla(var(--hue,190),70%,40%,.5)}
.gc-message-meta time{opacity:.85}

/* action tray appears on tap / hover / keyboard focus */
#jang-comms-root .fx-ready .gc-message .gc-message-actions{max-height:0;opacity:0;overflow:hidden;margin-top:0;padding-top:0;border-top-color:transparent;transition:max-height .25s ease,opacity .2s ease,margin .2s}
#jang-comms-root .fx-ready .gc-message.is-fx-open .gc-message-actions,
#jang-comms-root .fx-ready .gc-message:focus-within .gc-message-actions{max-height:60px;opacity:1;margin-top:7px;padding-top:6px;border-top-color:rgba(187,204,216,.1)}
@media (hover:hover) and (pointer:fine){#jang-comms-root .fx-ready .gc-message:hover .gc-message-actions{max-height:60px;opacity:1;margin-top:7px;padding-top:6px;border-top-color:rgba(187,204,216,.1)}
  #jang-comms-root .fx-ready .gc-message:hover{border-color:hsla(var(--h),50%,70%,.32)}}

/* arrival motion — only for genuinely new messages */
.gc-message.fx-new{animation:fxMsgIn .45s cubic-bezier(.2,.9,.25,1) both,fxMsgGlow 1.6s ease-out .1s both}
.gc-message.fx-intro{animation:fxMsgIn .5s cubic-bezier(.2,.9,.25,1) both;animation-delay:calc(var(--n,0) * 55ms + 120ms)}
@keyframes fxMsgIn{from{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:none}}
@keyframes fxMsgGlow{0%{box-shadow:0 0 0 1px hsla(var(--h),80%,70%,.7),0 0 26px -2px hsla(var(--h),80%,60%,.6)}100%{box-shadow:0 4px 14px rgba(0,0,0,.18)}}

/* statements = dispatches */
#jang-comms-root .gc-statement[data-fx]{position:relative;overflow:hidden;animation:fxMsgIn .5s cubic-bezier(.2,.9,.25,1) both;animation-delay:calc(var(--n,0) * 60ms)}
#jang-comms-root .gc-statement[data-fx]::after{content:'';position:absolute;inset-inline-end:-26px;top:-26px;width:110px;height:110px;border-radius:50%;opacity:.07;pointer-events:none;
  background:radial-gradient(circle,var(--sc,#8fb) 0 22%,transparent 23% 36%,var(--sc,#8fb) 37% 40%,transparent 41% 54%,var(--sc,#8fb) 55% 57%,transparent 58%)}
#jang-comms-root .gc-statement--official[data-fx]{--sc:#e8c872;background:linear-gradient(150deg,#2a2a22 0%,#172a3a 38%,#122131);border-color:rgba(226,190,106,.34)}
#jang-comms-root .gc-statement--alliance[data-fx]{--sc:#7db8e3;background:linear-gradient(150deg,#16304a 0%,#172a3a 40%,#122131);border-color:rgba(105,166,207,.34)}
#jang-comms-root .gc-statement--player[data-fx]{--sc:#75d0c0;border-color:rgba(101,196,180,.3)}
#jang-comms-root .gc-statement-top span{font-weight:800;letter-spacing:.5px;padding:3px 8px;border-radius:5px;background:var(--sc,#75d0c0);position:relative}
#jang-comms-root .gc-statement-top span{color:#0b1520}
#jang-comms-root .gc-statement--official .gc-statement-top span{background:#e3be6a}
#jang-comms-root .gc-statement--alliance .gc-statement-top span{background:#7db8e3}
#jang-comms-root .gc-statement--player .gc-statement-top span{background:#75d0c0}
#jang-comms-root .gc-statement--information .gc-statement-top span{background:#b8a1e8}
#jang-comms-root .gc-statement h3{font-size:17px;letter-spacing:.1px;text-wrap:balance}

/* panel intro + composer */
#jang-comms-root .fx-ready .gc-panel-intro{border-color:rgba(120,196,190,.2);background:linear-gradient(135deg,rgba(20,48,60,.96),rgba(15,30,44,.96));position:relative;overflow:hidden}
#jang-comms-root .fx-ready .gc-live-pill{position:relative}
#jang-comms-root .fx-ready .gc-live-pill::before{content:'';display:inline-block;width:6px;height:6px;margin-inline-end:6px;border-radius:50%;background:#6af0d8;box-shadow:0 0 8px #6af0d8;animation:fxBars 1.6s ease-in-out infinite;vertical-align:1px}
#jang-comms-root .fx-ready .gc-composer{border-color:rgba(120,196,190,.2);background:linear-gradient(180deg,rgba(18,36,50,.98),rgba(13,26,38,.99));transition:border-color .25s,box-shadow .25s}
#jang-comms-root .fx-ready .gc-composer:focus-within{border-color:rgba(106,240,216,.5);box-shadow:0 -8px 24px rgba(1,7,12,.2),0 0 0 1px rgba(106,240,216,.18),0 0 24px -6px rgba(106,240,216,.4)}
#jang-comms-root .fx-ready .gc-composer textarea{background:#08121c;border-color:rgba(140,190,205,.16);transition:border-color .2s}
#jang-comms-root .fx-ready .gc-composer textarea:focus{outline:none;border-color:rgba(106,240,216,.55)}
#jang-comms-root .fx-ready .gc-send{border:0;border-radius:12px;min-height:43px;padding:0 18px;font-weight:800;color:#06241f;
  background:linear-gradient(135deg,#79f5df,#33b8a4);box-shadow:0 6px 16px -4px rgba(51,184,164,.6),inset 0 1px rgba(255,255,255,.4);transition:transform .15s,box-shadow .2s,filter .2s}
#jang-comms-root .fx-ready .gc-send:active{transform:scale(.94)}
#jang-comms-root .fx-ready .gc-send:disabled{filter:grayscale(.5) brightness(.8)}
#jang-comms-root .fx-ready .gc-composer.is-fx-sent .gc-send{animation:fxSend .6s ease-out}
@keyframes fxSend{0%{box-shadow:0 0 0 0 rgba(121,245,223,.7)}100%{box-shadow:0 0 0 18px rgba(121,245,223,0)}}
.fx-count{margin-inline-start:auto;min-width:28px;text-align:center;font:800 10px/1 inherit;color:#8fe9d9;padding:3px 6px;border-radius:99px;
  background:conic-gradient(rgba(106,240,216,.55) calc(var(--r,0) * 360deg),rgba(255,255,255,.08) 0);position:relative;font-variant-numeric:tabular-nums}
.fx-count:empty{display:none}
.fx-count.is-warn{color:#ffb28f}

@media (prefers-reduced-motion:reduce){
  .fx-radar,.fx-signal i,.gc-message.fx-new,.gc-message.fx-intro,#jang-comms-root .fx-ready .gc-badge,
  #jang-comms-root .gc-statement[data-fx],#jang-comms-root .gc-window.fx-ready,.fx-ready .gc-live-pill::before{animation:none!important}
}
/* Low-GPU path: keep depth, drop glow stacks */
@media (max-width:760px){
  #jang-comms-root .fx-ready .gc-message{box-shadow:none}
  #jang-comms-root .fx-ready .gc-message::before{box-shadow:none}
  #jang-comms-root .gc-window.fx-ready{box-shadow:none}
}
