:root{--bg:#010605;--panel:#03100d;--ink:#8dffd0;--dim:#3d8f75;--hot:#d4fff0;--warn:#ffd27a;--danger:#ff6e8a;--line:rgba(114,255,204,.18)}
*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{background:radial-gradient(circle at 50% 20%,#0b2a22 0,#03100d 35%,#010605 78%);color:var(--ink);font-family:"Courier New",ui-monospace,monospace;padding:clamp(10px,3vw,34px)}
body:before{content:"";position:fixed;inset:0;pointer-events:none;background-image:linear-gradient(rgba(107,255,205,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(107,255,205,.02) 1px,transparent 1px);background-size:36px 36px;mask-image:radial-gradient(circle,#000 20%,transparent 78%)}
.nexus-shell{width:min(1180px,100%);margin:auto;border:1px solid rgba(105,255,204,.34);background:rgba(1,9,7,.9);box-shadow:0 0 60px rgba(0,255,184,.08),inset 0 0 80px rgba(0,255,184,.025);position:relative;isolation:isolate}
.nexus-header,.nexus-footer{display:flex;justify-content:space-between;gap:24px;padding:18px 22px;border-bottom:1px solid var(--line);align-items:center}.nexus-footer{border-top:1px solid var(--line);border-bottom:0;color:var(--dim);font-size:.8rem}.eyebrow{margin:0 0 5px;color:var(--dim);font-size:.7rem;letter-spacing:.16em}.nexus-header h1{margin:0;font-size:clamp(1.35rem,3vw,2.2rem);letter-spacing:.14em;text-shadow:0 0 18px rgba(108,255,203,.35)}
.status-grid{display:grid;gap:5px;text-align:right;font-size:.68rem;color:var(--dim)}.status-grid strong{color:var(--ink)}.status-live:before{content:"●";margin-right:7px;animation:pulse 1.6s infinite}.terminal-frame{position:relative;overflow:hidden;margin:18px;border:1px solid rgba(127,255,213,.3);background:#010706;box-shadow:inset 0 0 80px rgba(31,255,178,.05)}
.terminal-toolbar{height:34px;display:flex;align-items:center;gap:8px;padding:0 12px;border-bottom:1px solid var(--line);background:linear-gradient(#08231c,#04110e);font-size:.68rem;color:var(--dim)}.lamp{width:8px;height:8px;border-radius:50%;display:inline-block}.lamp-red{background:#ff617d}.lamp-amber{background:#ffc35c}.lamp-green{background:#5cffaa}.toolbar-title{margin-left:8px}.signal{margin-left:auto}
.terminal-screen{position:relative;z-index:2;min-height:620px;max-height:72vh;overflow:auto;padding:clamp(16px,3vw,32px);outline:none;font-size:clamp(.82rem,1.4vw,1rem);line-height:1.58;scrollbar-color:var(--dim) transparent}.terminal-screen p{margin:.35em 0}.terminal-screen .input{display:inline;min-width:1ch;outline:0;color:var(--hot);caret-color:var(--hot)}.prompt-user{color:#67ffc4}.prompt-path{color:#aefbe0}.prompt-symbol{color:#fff}.sys-heading{color:#fff;letter-spacing:.12em}.warn{color:var(--warn)}.danger{color:var(--danger);text-shadow:0 0 9px rgba(255,74,116,.4)}.success{color:#fff;text-shadow:0 0 12px rgba(83,255,174,.65)}
.reward-panel{display:grid;gap:10px;margin:22px 0;padding:22px;border:1px solid rgba(132,255,212,.65);background:linear-gradient(135deg,rgba(20,80,61,.38),rgba(1,12,9,.8));box-shadow:0 0 30px rgba(48,255,177,.12),inset 0 0 35px rgba(48,255,177,.06);text-align:center}.reward-kicker{font-size:.72rem;letter-spacing:.18em;color:var(--dim)}.reward-label{font-size:1.05rem;color:#fff}.coupon-code{justify-self:center;border:1px solid var(--ink);background:#031812;color:var(--hot);font:700 clamp(1.45rem,5vw,2.4rem)/1 monospace;letter-spacing:.18em;padding:14px 22px;cursor:pointer;box-shadow:0 0 18px rgba(79,255,183,.2)}.reward-note{font-size:.72rem;color:var(--dim)}
.scanlines,.noise,.crt-vignette,.glitch-wash,.tear{position:absolute;inset:34px 0 0;pointer-events:none;z-index:5}.scanlines{background:repeating-linear-gradient(to bottom,transparent 0,transparent 2px,rgba(0,0,0,.26) 3px,rgba(0,0,0,.26) 4px);opacity:.55}.noise{inset:-30%;opacity:.025;background-image:repeating-radial-gradient(circle at 30% 20%,#fff 0,transparent 1px,transparent 4px);animation:noise .18s steps(2) infinite}.crt-vignette{box-shadow:inset 0 0 100px rgba(0,0,0,.78);z-index:6}.glitch-wash{opacity:0;background:linear-gradient(90deg,rgba(255,0,81,.2),transparent 35%,rgba(0,220,255,.18));mix-blend-mode:screen}.tear{opacity:0;inset:auto 0;height:8px;background:rgba(141,255,208,.15);box-shadow:8px 0 rgba(255,0,92,.18),-8px 0 rgba(0,220,255,.18)}.tear-a{top:31%}.tear-b{top:68%;height:4px}
.glitch-light .terminal-screen{animation:contentGlitch .28s steps(2)}.glitch-light .glitch-wash,.glitch-normal .glitch-wash,.glitch-strong .glitch-wash,.glitch-reveal .glitch-wash{animation:wash .32s steps(2)}.glitch-normal .terminal-screen{animation:contentGlitch .32s steps(2)}.glitch-normal .tear-a,.glitch-normal .tear-b,.glitch-strong .tear-a,.glitch-strong .tear-b,.glitch-reveal .tear-a,.glitch-reveal .tear-b{animation:tear .34s steps(2)}.glitch-strong .terminal-frame{animation:frameGlitch .62s steps(2)}.glitch-strong .terminal-screen{animation:contentStrong .62s steps(2)}.glitch-reveal .terminal-frame{animation:reveal 1.1s steps(3)}
.motion-reduced .noise{animation:none}.motion-reduced .scanlines{opacity:.25}.motion-reduced *{animation:none!important}
button{font-family:inherit}#motionToggle{border:1px solid var(--line);background:transparent;color:var(--dim);padding:7px 10px;cursor:pointer}kbd{border:1px solid var(--line);padding:2px 5px;color:var(--ink)}
@keyframes pulse{50%{opacity:.25}}@keyframes noise{25%{transform:translate(2%,-1%)}50%{transform:translate(-1%,2%)}75%{transform:translate(1%,1%)}}@keyframes contentGlitch{20%{transform:translate(-3px,1px);text-shadow:3px 0 #ff3b72,-3px 0 #00d9ff}50%{transform:translate(4px,-1px) skewX(.8deg);filter:brightness(1.25)}80%{transform:translate(-2px,1px)}100%{transform:none;text-shadow:none;filter:none}}@keyframes contentStrong{15%{transform:translate(-8px,2px) skewX(1.2deg);filter:contrast(1.8)}35%{transform:translate(7px,-3px);text-shadow:6px 0 #ff3b72,-6px 0 #00d9ff}55%{clip-path:inset(18% 0 48% 0);transform:translate(-12px)}75%{clip-path:none;transform:translate(4px)}100%{transform:none;filter:none;text-shadow:none}}@keyframes wash{25%{opacity:.8;transform:translateX(-8px)}55%{opacity:.2;transform:translateX(8px)}80%{opacity:.5}100%{opacity:0}}@keyframes tear{20%{opacity:1;transform:translateX(22px)}50%{opacity:.3;transform:translateX(-16px)}75%{opacity:.75;transform:translateX(9px)}100%{opacity:0}}@keyframes frameGlitch{30%{transform:translateX(-3px)}45%{transform:translateX(4px)}70%{transform:translateX(-1px)}100%{transform:none}}@keyframes reveal{20%{filter:brightness(2) saturate(1.8)}38%{transform:scale(1.003);box-shadow:0 0 90px rgba(88,255,192,.35)}70%{filter:brightness(1.15)}100%{filter:none;transform:none}}
@media(max-width:720px){body{padding:0}.nexus-shell{border-left:0;border-right:0}.nexus-header{align-items:flex-start;flex-direction:column}.status-grid{text-align:left}.terminal-frame{margin:8px}.terminal-screen{min-height:70vh}.nexus-footer{align-items:flex-start;flex-direction:column}}
@media(prefers-reduced-motion:reduce){.noise,.status-live:before{animation:none}.scanlines{opacity:.25}}

/* Stronger visible insertion caret for the active command line. */
.terminal-screen .input:focus{display:inline-block;min-width:.7ch;caret-color:var(--hot);text-shadow:0 0 8px rgba(141,255,208,.65)}
.command-row:not(.hidden)::after{content:"";display:inline-block;width:.62em;height:1.05em;margin-left:2px;vertical-align:-.18em;background:var(--hot);box-shadow:0 0 8px rgba(141,255,208,.75);animation:nexusCursor 1s steps(1,end) infinite}
.command-row:focus-within::after{display:none}
@keyframes nexusCursor{0%,48%{opacity:1}49%,100%{opacity:0}}

/* Modular plugin side panel */
.nexus-plugin-panel{position:fixed;z-index:40;right:clamp(10px,3vw,42px);top:clamp(10px,4vh,42px);bottom:clamp(10px,4vh,42px);width:min(520px,46vw);display:flex;flex-direction:column;border:1px solid rgba(132,255,212,.65);background:rgba(2,10,8,.97);box-shadow:0 0 70px rgba(27,255,177,.18),inset 0 0 45px rgba(42,255,181,.04);backdrop-filter:blur(9px)}
.nexus-plugin-panel[hidden]{display:none}.plugin-panel-open .nexus-shell{margin-right:min(540px,48vw)}
.plugin-panel-header{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--line);background:linear-gradient(90deg,rgba(17,75,57,.45),transparent)}
.plugin-panel-header h2{margin:3px 0 0;font-size:1rem;letter-spacing:.12em;color:#fff}.plugin-panel-status{font-size:.62rem;letter-spacing:.16em;color:var(--dim)}
#pluginPanelClose{border:1px solid var(--line);background:transparent;color:var(--hot);font-size:1.5rem;line-height:1;width:38px;height:38px;cursor:pointer}.plugin-panel-body{overflow:auto;padding:22px;flex:1}
.game-menu{display:grid;gap:12px}.game-menu button,.game-actions button,.war-actions button,.secondary-action,.plugin-panel-body>button,.nexus-reward-link{border:1px solid var(--line);background:#051711;color:var(--hot);padding:12px 14px;font:inherit;cursor:pointer;text-decoration:none;text-align:center}.game-menu button:hover,.game-actions button:hover,.war-actions button:hover,.nexus-reward-link:hover{background:#0a2a20;color:#fff}
.plugin-intro,.game-message{color:var(--ink);line-height:1.6}.plugin-small{font-size:.72rem;color:var(--dim)}.game-heading{color:#fff;letter-spacing:.16em;margin-bottom:16px}.game-actions,.war-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:18px}.secondary-action{margin-top:10px;width:100%}
.ttt-board{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;max-width:360px;margin:22px auto}.ttt-cell{aspect-ratio:1;border:1px solid var(--line);background:#03130e;color:#fff;font:700 clamp(2rem,7vw,4rem)/1 monospace;cursor:pointer}.ttt-cell:disabled{cursor:default}.simulation-stream{min-height:100px;display:grid;place-items:center;margin:25px 0;border:1px solid var(--line);font-size:1.2rem;letter-spacing:.3em;color:#fff}
.war-map{min-height:190px;display:flex;align-items:center;justify-content:space-around;border:1px solid var(--line);background:radial-gradient(circle at 50% 45%,rgba(66,255,189,.12),transparent 42%),linear-gradient(rgba(38,126,95,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(38,126,95,.08) 1px,transparent 1px);background-size:auto,22px 22px,22px 22px;font-size:2rem;color:var(--hot)}.meter-row{display:flex;justify-content:space-between;margin:12px 0;color:var(--dim);font-size:.74rem}.plugin-reward{margin-top:14px}.nexus-reward-link{justify-self:center;display:inline-block;color:#fff;border-color:var(--ink)}
@media(max-width:980px){.nexus-plugin-panel{inset:0;width:auto}.plugin-panel-open .nexus-shell{margin-right:0}.plugin-panel-body{padding:18px}.war-actions{grid-template-columns:1fr}}

/* Matrix-inspired construct plugin */
.matrix-module{position:relative;min-height:520px;overflow:hidden;border:1px solid rgba(89,255,121,.22);background:#010502}.matrix-rain{position:absolute;inset:0;display:flex;justify-content:space-around;overflow:hidden;opacity:.2;filter:blur(.15px);pointer-events:none}.matrix-rain span{writing-mode:vertical-rl;color:#76ff8e;font-size:.72rem;letter-spacing:.18em;animation:matrixFall var(--speed) linear infinite;animation-delay:var(--delay)}.matrix-copy{position:relative;z-index:2;display:grid;gap:14px;padding:clamp(26px,5vw,54px);background:radial-gradient(circle at 50% 40%,rgba(0,0,0,.4),rgba(0,0,0,.88) 72%);min-height:520px;align-content:center}.matrix-copy h3,.matrix-choice-screen h3,.matrix-choice-result h3,.rabbit-complete h3,.construct-breached h3{margin:0;color:#e7ffe9;letter-spacing:.08em;line-height:1.4}.matrix-kicker{margin:0;color:#69c779;font-size:.68rem;letter-spacing:.17em}.matrix-actions{display:grid;grid-template-columns:1fr;gap:9px}.matrix-actions button,.pill,.construct-form button,.trace-node,.rabbit-complete>button,.matrix-choice-result>button,.construct-breached>button{border:1px solid rgba(115,255,139,.32);background:#041008;color:#baffc5;padding:12px 14px;font:inherit;cursor:pointer}.matrix-actions button:hover,.construct-form button:hover,.trace-node:hover:not(:disabled){background:#0a2812;color:#fff}.pill-choice{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:24px 0}.pill{min-height:150px;border-radius:80px;display:grid;place-items:center;align-content:center;gap:8px}.pill span{font-size:1.2rem;font-weight:700;letter-spacing:.16em}.pill small{font-size:.62rem;opacity:.75}.pill-blue{border-color:rgba(82,159,255,.75);color:#b8d8ff;background:radial-gradient(circle,rgba(32,102,205,.28),#020913 70%)}.pill-red{border-color:rgba(255,70,90,.75);color:#ffc2ca;background:radial-gradient(circle,rgba(199,24,49,.28),#130205 70%)}.matrix-choice-screen,.matrix-choice-result,.rabbit-trace,.rabbit-complete,.matrix-construct,.construct-breached{display:grid;gap:14px}.trace-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0}.trace-node{aspect-ratio:1;font-size:1.3rem}.trace-node:disabled{opacity:.35;cursor:default}.matrix-codeword{padding:18px;border:1px dashed rgba(115,255,139,.45);text-align:center;color:#fff;letter-spacing:.18em;background:rgba(42,255,80,.04)}.construct-room{position:relative;min-height:240px;border:1px solid rgba(115,255,139,.22);background:linear-gradient(135deg,#f2f2e9 0 48%,#d8d8cf 49% 51%,#f7f7ef 52%);overflow:hidden}.construct-chair{position:absolute;left:19%;bottom:22%;width:80px;height:70px;border:8px solid #1b1b1b;border-top:0}.construct-chair:before{content:"";position:absolute;left:8px;bottom:54px;width:48px;height:72px;border:8px solid #1b1b1b}.construct-door{position:absolute;right:17%;bottom:0;width:92px;height:178px;background:#fff;border:8px solid #202020}.construct-spoon{position:absolute;left:51%;top:29%;font-size:4rem;color:#121212;transform:rotate(22deg)}.construct-form{display:grid;grid-template-columns:1fr auto;gap:8px}.construct-form input{min-width:0;border:1px solid rgba(115,255,139,.32);background:#010703;color:#c9ffd0;padding:12px;font:inherit;outline:0}.construct-form input:focus{border-color:#83ff98;box-shadow:0 0 15px rgba(75,255,103,.14)}.blue-result{border-left:3px solid #5d9fff;padding-left:18px}.red-result,.construct-breached{border-left:3px solid #ff4f67;padding-left:18px}
@keyframes matrixFall{from{transform:translateY(-120%)}to{transform:translateY(120%)}}
@media(max-width:620px){.pill-choice{grid-template-columns:1fr}.pill{min-height:110px}.construct-form{grid-template-columns:1fr}.trace-grid{grid-template-columns:repeat(2,1fr)}}

/* Authenticated Meta Game gate */
.nexus-login-gate{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;background:#010504;padding:24px;color:#9affc7;font-family:var(--mono,monospace)}
.nexus-login-card{width:min(520px,100%);border:1px solid rgba(120,255,184,.45);background:rgba(2,12,9,.96);padding:30px;box-shadow:0 0 45px rgba(0,255,143,.13)}
.nexus-login-card h1{margin:.25rem 0 1rem}.nexus-login-card label{display:block;margin:18px 0 8px}.nexus-login-card label span{opacity:.65}
.nexus-login-card input{box-sizing:border-box;width:100%;margin-top:7px;padding:13px;border:1px solid rgba(120,255,184,.45);background:#010705;color:#baffd6;font:inherit;outline:none}
.nexus-login-card input:focus{border-color:#9affc7;box-shadow:0 0 0 2px rgba(154,255,199,.12)}
.nexus-login-card button{width:100%;padding:13px;margin-top:12px;background:#8dffc0;border:0;color:#031007;font:700 1rem var(--mono,monospace);cursor:pointer}
.login-error{min-height:1.4em;color:#ff9b9b}
.meta-list{display:grid;gap:8px;margin:10px 0}.meta-item{border-left:2px solid currentColor;padding:7px 10px;background:rgba(255,255,255,.035)}

/* Realm theme engine */
:root{--realm-bg:#030908;--realm-text:#dfffee;--realm-accent:#8fffc1;--realm-accent2:#64dfff;--realm-glow:rgba(90,255,205,.18)}
.terminal-screen,.terminal-frame{transition:background-color .8s ease,color .8s ease,border-color .8s ease,box-shadow .8s ease}
body[data-realm-theme] .terminal-screen{background:radial-gradient(circle at 50% -20%,var(--realm-glow),transparent 45%),var(--realm-bg)!important;color:var(--realm-text)!important}
body[data-realm-theme] .terminal-frame{border-color:var(--realm-accent);box-shadow:0 0 34px var(--realm-glow),inset 0 0 35px rgba(0,0,0,.55)}
body[data-realm-theme] .prompt,body[data-realm-theme] .input,body[data-realm-theme] .success{color:var(--realm-accent)!important}
body[data-realm-theme] .plugin-panel-header,body[data-realm-theme] .oa-progress span{background:var(--realm-accent)!important;color:var(--realm-bg)!important}
body[data-realm-theme="martian"] .terminal-screen:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 40%,rgba(255,90,30,.035) 45%,transparent 50%);animation:martianDust 7s linear infinite}
body[data-realm-theme="broadcast"] .terminal-screen{filter:saturate(1.15) contrast(1.08)}
body[data-realm-theme="dream"] .terminal-frame{animation:dreamBreathe 5s ease-in-out infinite}
body[data-realm-theme="quantum"] .terminal-screen{animation:quantumPhase 2.7s steps(2,end) infinite}
.realm-shift{animation:realmShift .75s steps(3,end)}
@keyframes realmShift{0%{filter:brightness(2) hue-rotate(80deg);transform:translateX(-4px)}45%{filter:contrast(2);transform:translateX(5px)}100%{filter:none;transform:none}}
@keyframes martianDust{from{transform:translateX(-20%)}to{transform:translateX(20%)}}
@keyframes dreamBreathe{50%{box-shadow:0 0 55px var(--realm-glow),inset 0 0 50px rgba(0,0,0,.4)}}
@keyframes quantumPhase{0%,96%,100%{transform:none}97%{transform:translateX(2px)}98%{transform:translateX(-2px)}}

/* Authentication visibility safeguard.
   Keep this after login and theme rules so [hidden] always wins. */
.nexus-login-gate[hidden],
.nexus-shell[hidden] {
  display: none !important;
}

/* Realm theme visibility enhancement — keeps the active add-on visually distinct. */
:root{
  --realm-panel:#03100d;
}
body[data-realm-theme]{
  background:
    radial-gradient(circle at 50% 12%,var(--realm-glow) 0,transparent 42%),
    linear-gradient(145deg,var(--realm-bg),#010302 82%) !important;
  color:var(--realm-text);
  transition:background .9s ease,color .7s ease;
}
body[data-realm-theme] .nexus-shell{
  border-color:color-mix(in srgb,var(--realm-accent) 58%,transparent);
  background:color-mix(in srgb,var(--realm-panel) 92%,transparent);
  box-shadow:0 0 72px var(--realm-glow),inset 0 0 90px color-mix(in srgb,var(--realm-glow) 42%,transparent);
  transition:background .8s ease,border-color .8s ease,box-shadow .8s ease;
}
body[data-realm-theme] .nexus-header h1,
body[data-realm-theme] .status-grid strong,
body[data-realm-theme] .terminal-screen .input,
body[data-realm-theme] .prompt-user,
body[data-realm-theme] .prompt-path{
  color:var(--realm-accent) !important;
  text-shadow:0 0 18px var(--realm-glow);
}
body[data-realm-theme] .terminal-toolbar,
body[data-realm-theme] .plugin-panel-header{
  background:linear-gradient(90deg,color-mix(in srgb,var(--realm-panel) 78%,#000),color-mix(in srgb,var(--realm-accent2) 14%,var(--realm-panel)));
  border-color:color-mix(in srgb,var(--realm-accent) 35%,transparent);
}
body[data-realm-theme] .nexus-plugin-panel{
  border-color:color-mix(in srgb,var(--realm-accent) 72%,transparent);
  background:color-mix(in srgb,var(--realm-panel) 97%,transparent);
  box-shadow:0 0 75px var(--realm-glow),inset 0 0 52px color-mix(in srgb,var(--realm-glow) 35%,transparent);
  color:var(--realm-text);
  transition:background .8s ease,border-color .8s ease,box-shadow .8s ease;
}
body[data-realm-theme] .plugin-panel-header h2,
body[data-realm-theme] .oa-title,
body[data-realm-theme] .oa-card strong{
  color:var(--realm-text) !important;
}
body[data-realm-theme] .oa-card.done{
  border-color:var(--realm-accent) !important;
  box-shadow:inset 0 0 20px color-mix(in srgb,var(--realm-glow) 45%,transparent);
}
body[data-realm-theme="martian"]:before{
  background-image:
    linear-gradient(rgba(255,103,54,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,140,68,.025) 1px,transparent 1px);
}
body[data-realm-theme="botanical"] .nexus-shell{background-image:radial-gradient(circle at 10% 100%,rgba(50,180,85,.13),transparent 35%)}
body[data-realm-theme="broadcast"] .terminal-frame:after{content:"";position:absolute;inset:34px 0 0;pointer-events:none;z-index:7;background:linear-gradient(transparent 48%,rgba(84,231,255,.035) 50%,transparent 52%);background-size:100% 7px;animation:broadcastRoll 5s linear infinite}
body[data-realm-theme="tesla"] .terminal-frame{box-shadow:0 0 44px var(--realm-glow),inset 0 0 55px rgba(45,160,255,.13)}
body[data-realm-theme="silent"] .scanlines,body[data-realm-theme="silent"] .noise{opacity:.08}
@keyframes broadcastRoll{from{background-position-y:0}to{background-position-y:70px}}

/* Keep authenticated visibility authoritative after all theme rules. */
.nexus-login-gate[hidden],
.nexus-shell[hidden]{display:none!important}
