:root{--bg:#05080e;--panel:#08111b;--panel2:#0b1722;--line:#1c3445;--line2:#294b61;--text:#e9f6fb;--muted:#8da6b5;--dim:#607987;--cyan:#65ddff;--violet:#a98cff;--green:#77e0b2;--warn:#f0b56b;--danger:#ef727c}*{box-sizing:border-box}html{background:var(--bg);scroll-behavior:smooth}body{margin:0;min-height:100vh;background:radial-gradient(circle at 50% -10%,#12243a 0,#05080e 45%);color:var(--text);font:15px/1.4 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;padding:12px 12px 110px}button{font:inherit;color:inherit}button:disabled{opacity:.34;cursor:not-allowed!important}.hidden{display:none!important}.muted{color:var(--muted)}.eyebrow,.panel-kicker{font-size:10px;letter-spacing:.18em;color:#6ea1b5;font-weight:950}.top{max-width:1180px;margin:0 auto 12px;display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;padding:8px 4px}.brand{font-size:23px;font-weight:950;letter-spacing:.08em}.brand span{color:var(--violet)}#depthTag{font-size:10px;letter-spacing:.08em;margin-top:2px}.top-res{display:flex;justify-content:flex-end;gap:7px}.res{min-width:112px;padding:8px 10px;border:1px solid var(--line);border-radius:11px;background:#07111a}.res span{display:block;font-size:9px;color:#71909f;text-transform:uppercase}.res b{display:block;font-size:16px;margin-top:2px}.icon-btn{min-width:42px;min-height:42px;padding:0;border:1px solid var(--line2);border-radius:10px;background:#09131e;cursor:pointer}.goal{max-width:1180px;margin:0 auto 10px;padding:17px 18px;border:1px solid #2b5268;border-radius:16px;background:linear-gradient(120deg,#091824,#08111b);display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;box-shadow:0 12px 40px #0005}.goal h1{margin:4px 0 2px;font-size:25px;line-height:1.12}.goal p{margin:0;color:#93aab7}.goal-cta{min-height:52px;padding:12px 18px;border:1px solid #3e7890;border-radius:12px;background:#0d2b3a;color:#effcff;font-weight:950;cursor:pointer;transition:.18s}.goal-cta:hover{transform:translateY(-1px);box-shadow:0 0 30px #4ed0ec1f}.goal-progress{grid-column:1/-1;height:4px;border-radius:99px;background:#102332;overflow:hidden}.goal-progress i{display:block;width:0;height:100%;background:linear-gradient(90deg,var(--cyan),var(--violet));transition:width .35s}.toast{position:fixed;z-index:50;left:50%;bottom:90px;transform:translateX(-50%);padding:11px 16px;border:1px solid #4d7f91;border-radius:11px;background:#0a1823ee;box-shadow:0 12px 50px #000b;color:#effcff;font-weight:850}.screen{max-width:1180px;margin:0 auto}.hero-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:10px}.core-card,.brief-card,.panel,.network-card,.route-panel,.crawler-card,.autolog{border:1px solid var(--line);background:linear-gradient(145deg,#09131d,#061019);border-radius:16px;box-shadow:0 16px 50px #0006}.core-card{min-height:500px;padding:22px;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;overflow:hidden}.core-orbit{width:270px;height:270px;position:relative;display:grid;place-items:center;margin:4px 0 15px}.core-orbit:before{content:"";position:absolute;inset:28px;border-radius:50%;background:radial-gradient(circle,#112536 0,#07111a 62%,transparent 63%);box-shadow:0 0 45px #65ddff15,inset 0 0 35px #65ddff0b}.orbit{position:absolute;inset:0;border:1px solid #2e657c;border-radius:50%;animation:orbit 7s linear infinite}.orbit.o2{inset:16px;border-color:#594d82;animation-duration:11s;animation-direction:reverse}.orbit.o3{inset:35px;border-color:#31556c;animation-duration:15s}.core-value{position:absolute;inset:0;display:grid;place-items:center;text-align:center;line-height:1;font-size:64px;font-weight:950;letter-spacing:-.05em;transform:translateY(-8px);font-variant-numeric:tabular-nums;z-index:2}.core-label{position:absolute;bottom:59px;z-index:3;color:#7293a3;font-size:10px;letter-spacing:.22em}.rate{min-height:25px;color:#79e2ff;font-size:17px;font-weight:900}.pulse-combo{margin:2px 0 9px;padding:5px 10px;border:1px solid #5a4d7d;border-radius:99px;background:#17122a;color:#cbbdff;font-size:10px;font-weight:950}.pulse-combo.hidden{display:none}.primary,.secondary{border:1px solid #335e73;border-radius:11px;background:#0a1a25;cursor:pointer;font-weight:900;transition:.16s}.primary{background:#0d2c3a;border-color:#4a91a8}.primary:hover,.secondary:hover{border-color:var(--cyan);box-shadow:0 0 24px #63d9ff12}.big{min-height:54px;padding:13px 20px}.core-card .big{width:min(470px,100%);margin-top:4px}.core-card #pulseBtn{position:relative;z-index:12;display:block!important;visibility:visible!important}.core-card #pulseBtn.first-action{min-height:64px;font-size:15px;letter-spacing:.03em;box-shadow:0 0 32px #65ddff12,inset 0 0 22px #65ddff08;animation:firstActionBeacon 2s ease-in-out infinite}.first-cycle .quest-card .goal-cta{display:block!important;visibility:visible!important}.first-cycle .quest-card .goal-cta{font-size:13px;box-shadow:0 0 28px #65ddff10}@keyframes firstActionBeacon{50%{transform:translateY(-1px);border-color:#65ddff;box-shadow:0 0 46px #65ddff1f,inset 0 0 26px #65ddff0d}}.micro-story{max-width:520px;margin-top:13px;color:#748e9d;text-align:center;font-size:12px;min-height:34px}.brief-card{padding:22px}.brief-card h2{margin:6px 0 7px;font-size:28px}.brief-card p{color:#9ab0bc;min-height:47px}.full{width:100%}.power-open{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:56px;margin:15px 0}.power-open span{font-size:10px;color:#7e9aa8;white-space:nowrap}.status-row{display:flex;justify-content:space-between;margin-top:13px;font-size:10px;color:#71909f}.status-row b{color:#d8eaf1}.bar{height:7px;margin-top:6px;border-radius:99px;background:#0c1a25;overflow:hidden;border:1px solid #172c3a}.bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,#63d9ff,#a88cff);transition:width .3s}.bar.warning i{background:linear-gradient(90deg,#6ed8d1,#eab56a)}.bar.heat i{background:linear-gradient(90deg,#6ed8d1,#ef727c)}.panel{margin-top:10px;padding:18px}.panel-head{display:flex;justify-content:space-between;gap:15px;align-items:flex-start}.panel-head h2{margin:3px 0 4px;font-size:21px}.panel-head p{margin:0;color:#849eac}.power-head-actions{display:flex;align-items:center;gap:8px}.power-head-actions>b{font-size:10px;color:#79dfff}.mode-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:15px}.mode{min-height:76px;padding:12px;text-align:left;border:1px solid var(--line);border-radius:11px;background:#07131d;cursor:pointer}.mode.active{border-color:#55bad7;background:#0b2431;box-shadow:inset 0 0 0 1px #55bad733}.mode b,.mode span{display:block}.mode b{font-size:12px}.mode span{margin-top:5px;color:#7894a3;font-size:10px}.modules{display:grid;gap:8px;margin-top:9px}.module{display:grid;grid-template-columns:42px 1fr auto;gap:10px;align-items:center;padding:11px;border:1px solid #183040;border-radius:11px;background:#07111a;transition:.18s}.module.on{border-color:#2b5b6e}.module.boosting{border-color:#a46a76;box-shadow:0 0 25px #ef727c14}.module-icon{font-size:22px;text-align:center}.module-main b{font-size:13px}.module-main p{margin:2px 0;color:#8ba3af;font-size:11px}.module-main small{color:#607987;font-size:10px}.module-actions{display:flex;gap:6px;align-items:center;justify-content:flex-end;flex-wrap:wrap}.line-btn,.boost-btn,.remove-btn{min-height:38px;padding:8px 10px;border:1px solid #2e5c70;border-radius:9px;background:#091b26;cursor:pointer;font-size:10px;font-weight:950}.boost-btn{border-color:#785b73;background:#171323}.remove-btn{width:38px}.screen-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:8px 2px 10px}.screen-head h2{margin:4px 0;font-size:25px}.screen-head p{margin:0;color:#8da6b5}.network-status{display:grid;grid-template-columns:auto auto;gap:2px 12px;padding:9px 12px;border:1px solid var(--line);border-radius:11px;background:#07111a;font-size:10px}.network-status span{color:#718b99}.network-status b{text-align:right}.network-layout{display:grid;grid-template-columns:1.15fr .85fr;gap:10px}.network-card,.route-panel{padding:14px}.map{height:520px;position:relative;overflow:hidden;border:1px solid #1b3445;border-radius:13px;background:radial-gradient(circle at 50% 45%,#0c2130,#061019 65%);isolation:isolate}.grid-lines{position:absolute;inset:0;opacity:.25;background-image:linear-gradient(#1d3b4c 1px,transparent 1px),linear-gradient(90deg,#1d3b4c 1px,transparent 1px);background-size:40px 40px;mask-image:linear-gradient(to bottom,transparent,#000 20%,#000 80%,transparent)}.map-edges{position:absolute;inset:0;width:100%;height:100%;z-index:1}.edge{stroke:#1c3c4e;stroke-width:.35;stroke-dasharray:2 2;opacity:.45}.edge.live{stroke:#4ca9c6;opacity:.65;animation:edgeFlow 4s linear infinite}.map-node{position:absolute;z-index:3;transform:translate(-50%,-50%);min-width:122px;max-width:150px;padding:10px 9px;text-align:left;border:1px solid #315468;border-radius:12px;background:#081620eF;cursor:pointer;box-shadow:0 10px 24px #0007;transition:.18s}.map-node:hover{transform:translate(-50%,-52%);border-color:var(--cyan)}.map-node.selected{border-color:var(--violet);box-shadow:0 0 28px #a98cff25}.map-node.visited{background:#0a1b25}.map-node.locked{filter:saturate(.3);opacity:.55}.map-node span{float:right;color:#6fe2ff;font-weight:900}.map-node b,.map-node small{display:block}.map-node b{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.map-node small{margin-top:3px;color:#7895a4;font-size:9px}.network-legend{display:flex;gap:12px;flex-wrap:wrap;margin:9px 2px;color:#6f8998;font-size:9px}.scan-btn{min-height:52px;font-weight:950}.route-panel{display:flex;flex-direction:column}.route-panel h2{margin:5px 0;font-size:29px;line-height:1.1}.route-panel>p{color:#8ea6b3;min-height:60px}.route-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:9px 0}.route-stats>div{padding:10px;border:1px solid #193142;border-radius:10px;background:#07111a}.route-stats span{display:block;color:#6f8998;font-size:9px}.route-stats b{display:block;margin-top:3px;font-size:15px}.stance-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:7px 0}.stance{min-height:65px;padding:9px;text-align:left;border:1px solid var(--line);border-radius:10px;background:#07121a;cursor:pointer}.stance.active{border-color:#59bcd7;background:#0b2531}.stance b,.stance span{display:block}.stance b{font-size:10px}.stance span{margin-top:4px;color:#6f8998;font-size:9px}.route-panel .big{margin-top:8px;width:100%}.crawler-progress{margin-top:12px;padding:13px;border:1px solid #2b4e62;border-radius:12px;background:#07141e}.crawler-head{display:flex;justify-content:space-between;gap:12px}.crawler-head b{display:block;font-size:11px}.crawler-head span,.crawler-head strong{display:block;color:#7e98a7;font-size:10px;font-weight:800}.encounter{margin-top:12px;padding:13px;border:1px solid #5e4f79;border-radius:11px;background:radial-gradient(circle at 50% 0,#221c34,#08131c 70%);animation:rise .3s ease-out}.encounter h3{margin:4px 0;font-size:19px}.encounter p{margin:0;color:#a7b9c2;font-size:12px}.encounter-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:11px}.encounter-actions button,.signal-actions button{min-height:66px;padding:9px;text-align:left;border:1px solid #315a6d;border-radius:10px;background:#0a1c27;cursor:pointer}.encounter-actions b,.signal-actions b{display:block;font-size:11px}.encounter-actions span,.signal-actions span{display:block;margin-top:4px;color:#7f98a7;font-size:9px;line-height:1.25}.crawler-card{margin-top:10px;padding:13px;display:grid;grid-template-columns:1fr 1.2fr;gap:12px;align-items:center}.crawler-card h3{margin:2px 0;font-size:19px}.crawler-card p{margin:0;color:#8099a8;font-size:11px}.trait-row{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.trait-row span{padding:8px;border:1px solid #183142;border-radius:9px;color:#7895a4;font-size:9px}.trait-row b{display:block;color:#d8ebf1;font-size:13px}.crawler-card .full{grid-column:1/-1}.signal-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}.memory-list{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.memory{padding:16px;border:1px solid #1c3445;border-radius:13px;background:#07121a;min-height:170px}.memory.kept{border-color:#4f6e70;box-shadow:inset 0 0 25px #77e0b20a}.memory h3{margin:4px 0 8px;font-size:20px}.memory p{color:#9aafb9;font-size:12px}.memory>span{color:#73d9bc;font-size:9px;font-weight:950}.empty{padding:35px;text-align:center;border:1px dashed #254558;border-radius:12px;color:#728b9a;grid-column:1/-1}.rule-preview{margin:12px 0;padding:13px;border:1px dashed #365467;border-radius:10px;color:#9db2bd}.meta-list{display:grid;gap:7px}.meta{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:11px;border:1px solid #1a3343;border-radius:10px;background:#07111a}.meta b{font-size:12px}.meta p{margin:3px 0;color:#7d97a5;font-size:10px}.meta button{min-height:40px;padding:8px 10px;border:1px solid #315b70;border-radius:9px;background:#0a1c27;cursor:pointer;font-size:10px;font-weight:950}.badge{padding:8px 10px;border:1px solid #304a5b;border-radius:99px;background:#07121a;color:#89a6b5;font-size:9px;font-weight:950}.autolog{max-width:1180px;margin:12px auto 0;padding:14px 16px}.autolog-head{display:flex;justify-content:space-between;align-items:center}.autolog-head h2{margin:3px 0 0;font-size:17px}.log-list{display:grid;gap:5px;margin-top:10px;max-height:190px;overflow:auto}.log-entry{display:flex;gap:8px;padding:7px 9px;border-left:2px solid #244458;border-radius:7px;background:#07121b;color:#91a8b6;font-size:11px}.log-entry:first-child{border-left-color:var(--cyan);color:#dcecf2;background:#0a1923}.log-entry.new{animation:logIn .4s ease-out}.log-mark{color:var(--cyan);font-weight:950}.autolog.collapsed .log-list{display:none}.bottom-nav{position:fixed;z-index:30;left:50%;bottom:10px;transform:translateX(-50%);width:min(600px,calc(100% - 22px));display:grid;grid-template-columns:repeat(3,1fr);gap:5px;padding:5px;border:1px solid #254557;border-radius:15px;background:#06101aec;backdrop-filter:blur(15px);box-shadow:0 14px 45px #000b}.nav{border:0;border-radius:10px;background:transparent;padding:8px;cursor:pointer;color:#708997}.nav.active{background:#0c2633;color:#e9f8fc}.nav b,.nav span{display:block}.nav b{font-size:18px}.nav span{font-size:9px;letter-spacing:.1em}.footer,footer{max-width:1180px;margin:12px auto 0;padding:0 3px;display:flex;justify-content:space-between;color:#66808f;font-size:9px}.modal{position:fixed;inset:0;z-index:60;background:#02060bd9;display:grid;place-items:center;padding:16px}.modal-card{width:min(620px,100%);max-height:90vh;overflow:auto;padding:23px;border:1px solid #315064;border-radius:16px;background:#07121c;box-shadow:0 30px 100px #000}.modal-card h2{margin:4px 0 10px}.modal-card p{color:#9aafb9}.modal-head{display:flex;justify-content:space-between;align-items:center}.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:16px}.choice-grid button{min-height:72px;padding:11px;text-align:left}.choice-grid span{display:block;margin-top:4px;color:#7894a3;font-size:9px}.danger{border-color:#693c48}.pulse{position:absolute;left:50%;top:50%;width:30px;height:30px;border:2px solid var(--cyan);border-radius:50%;animation:pulseOut .8s ease-out forwards;pointer-events:none}@keyframes pulseOut{0%{transform:translate(-50%,-50%) scale(.4);opacity:1}100%{transform:translate(-50%,-50%) scale(7);opacity:0}}@keyframes orbit{to{transform:rotate(360deg)}}@keyframes edgeFlow{to{stroke-dashoffset:-12}}@keyframes rise{from{opacity:0;transform:translateY(7px) scale(.98)}to{opacity:1;transform:none}}@keyframes logIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
@media(max-width:900px){body{padding:6px 6px 100px}.top{grid-template-columns:auto 1fr auto;gap:6px}.brand{font-size:18px}.top-res{gap:3px}.res{min-width:0;padding:6px 7px}.res span{font-size:7px}.res b{font-size:13px}.goal{grid-template-columns:1fr;padding:14px}.goal h1{font-size:22px}.goal-cta{width:100%;min-height:49px}.hero-grid,.network-layout{grid-template-columns:1fr}.core-card{min-height:430px}.core-orbit{width:225px;height:225px}.core-value{font-size:54px}.brief-card{padding:17px}.mode-grid,.stance-grid{grid-template-columns:1fr}.mode{min-height:60px}.modules{gap:7px}.module{grid-template-columns:34px 1fr}.module-actions{grid-column:1/-1;justify-content:stretch}.line-btn,.boost-btn{flex:1}.map{height:430px}.map-node{min-width:110px;max-width:130px}.screen-head{display:block}.network-status{margin-top:8px;width:max-content}.route-panel h2{font-size:25px}.crawler-card{grid-template-columns:1fr}.trait-row{margin-top:3px}.encounter-actions,.signal-actions,.choice-grid{grid-template-columns:1fr}.memory-list{grid-template-columns:1fr}.memory{min-height:0}.meta{grid-template-columns:1fr}.meta button{width:100%}.footer{display:none}.autolog{margin:10px 0 0;padding:12px}.log-list{max-height:160px}.toast{bottom:82px;width:max-content;max-width:calc(100% - 24px);text-align:center}.panel{padding:13px}}
@media(max-width:560px){.top-res .res:nth-child(2){display:none}.top-res{justify-content:flex-end}.core-card{padding:16px}.core-orbit{width:205px;height:205px}.core-value{font-size:50px}.core-label{bottom:47px}.brief-card h2{font-size:23px}.goal p{font-size:12px}.goal-cta{font-size:11px}.map{height:390px}.map-node{min-width:96px;padding:8px}.map-node b{font-size:9px}.map-node small{font-size:8px}.network-legend{gap:7px}.route-stats{gap:5px}.route-stats>div{padding:8px}.route-stats b{font-size:13px}.bottom-nav{bottom:6px}.nav{padding:7px}.nav b{font-size:16px}.nav span{font-size:8px}}

.rule-choices{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:10px 0}.rule-choice{min-height:74px;padding:10px;text-align:left;border:1px solid #203c4d;border-radius:10px;background:#07121a;cursor:pointer}.rule-choice.active{border-color:#a98cff;background:#17122a;box-shadow:0 0 25px #a98cff15}.rule-choice b,.rule-choice span{display:block}.rule-choice b{font-size:11px}.rule-choice span{margin-top:4px;color:#7894a3;font-size:9px;line-height:1.3}@media(max-width:900px){.rule-choices{grid-template-columns:1fr}}
/* ECHO//NULL 2.1 — live network feedback */
.global-signal{max-width:1180px;margin:10px auto 0;border-color:#5a4b78;background:radial-gradient(circle at 50% 0,#21192f,#08131d 68%);animation:rise .28s ease-out}.global-signal .signal-actions button{min-height:72px}.map-node.state-alert{border-color:#8a5f69;box-shadow:0 0 24px #ef727c18}.map-node.state-known{border-color:#3d7b77}.map-node.state-closed{border-color:#4b3942;background:#0a1015;opacity:.55}.route-stats{grid-template-columns:repeat(5,1fr)}.last-return{margin-top:10px;padding:12px;border:1px solid #315a63;border-radius:11px;background:linear-gradient(120deg,#081820,#07121a);animation:rise .25s ease-out}.last-return b{display:block;margin-top:3px;font-size:13px}.last-return p{margin:4px 0 0;color:#91aab5;font-size:11px}.resonance-panel{margin-top:10px}.resonance-chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.resonance-chips span{padding:8px 10px;border:1px solid #315d61;border-radius:99px;background:#081b1e;color:#91e2c4;font-size:9px;font-weight:950}.resonance-chips .muted-chip{border-color:#233c4a;background:#07121a;color:#718997}.state-alert .map-node{}
@media(max-width:1100px){.route-stats{grid-template-columns:repeat(3,1fr)}}
@media(max-width:900px){.route-stats{grid-template-columns:repeat(2,1fr)}.global-signal{margin:10px 0}.last-return{margin-top:9px}}
@media(max-width:560px){.route-stats{grid-template-columns:repeat(2,1fr)}.global-signal .signal-actions button{min-height:62px}}
/* ECHO//NULL 2.2 — guided onboarding, side quest log, low-scroll HUD */
.game-shell{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:280px minmax(0,1fr);gap:12px;align-items:start}.game-main{min-width:0}.game-main .screen{max-width:none}.side-dock{position:sticky;top:10px;z-index:20}.quest-card{border:1px solid #29485b;border-radius:16px;background:linear-gradient(145deg,#091722,#061019);box-shadow:0 16px 50px #0007;overflow:hidden}.dock-tabs{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid #1d3545;background:#07111a}.dock-tab{min-height:42px;border:0;border-bottom:2px solid transparent;background:transparent;color:#6f8b9a;font-size:10px;font-weight:950;letter-spacing:.13em;cursor:pointer}.dock-tab.active{color:#e9f8fc;border-bottom-color:var(--cyan);background:#0a1b26}.quest-card #questDock{padding:16px}.quest-card #goalTitle{margin:6px 0 5px;font-size:22px;line-height:1.08}.quest-card #goalSub{margin:0;color:#9bb0bb;font-size:12px}.quest-card .goal-cta{width:100%;margin-top:14px;min-height:48px;font-size:10px}.quest-card .goal-progress{height:4px;margin-top:10px}.quest-note{margin-top:11px;padding:9px 10px;border:1px solid #1c3747;border-radius:9px;background:#07131c;color:#7895a4;font-size:10px;line-height:1.35}.dock-status{display:flex;justify-content:space-between;gap:8px;padding:9px 12px;border-top:1px solid #172e3d;color:#607c8b;font-size:8px}.dock-status span:first-child{color:#8aa5b3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.autolog-head h2{margin:3px 0 0;font-size:16px}.log-list{max-height:340px}.narrative-strip{width:min(560px,100%);margin:0 auto 13px;padding:10px 12px;border:1px solid #29485a;border-radius:11px;background:linear-gradient(100deg,#07131d,#0a1722);text-align:left;box-shadow:0 0 35px #63d9ff08;animation:softGlow 3s ease-in-out infinite}.narrative-strip #sceneText{margin-top:3px;font-size:13px;line-height:1.35;color:#d7e8ee}.mechanic-hint{width:min(560px,100%);margin-top:9px;padding:8px 10px;border-left:2px solid #3b7185;color:#6f8d9c;font-size:10px;line-height:1.35;text-align:left}.why-box{margin:12px 0;padding:10px 11px;border:1px solid #1f3b4c;border-radius:10px;background:#07131c}.why-box b,.why-box span{display:block}.why-box b{font-size:10px;color:#b9d6e0;letter-spacing:.05em}.why-box span{margin-top:4px;color:#7f99a7;font-size:10px;line-height:1.35}.status-explain{margin-top:10px;padding:8px 9px;border-radius:9px;background:#07121a;color:#728c9b;font-size:9px;line-height:1.35}.power-flow{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:10px;padding:8px 10px;border:1px solid #1b3545;border-radius:9px;background:#061019;color:#8ca7b4;font-size:9px;font-weight:900}.power-flow i{color:var(--cyan);font-style:normal}.power-flow span{white-space:nowrap}.network-tip{margin-top:8px;padding:8px 10px;border-left:2px solid #31596c;color:#75909f;font-size:10px;line-height:1.35}.action-hint{margin-top:8px;padding:8px 10px;border-radius:8px;background:#07131c;color:#7692a1;font-size:9px;line-height:1.3}.res{cursor:pointer;text-align:left}.res:hover{border-color:#3c6c80}.res:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}.core-value{transform:none!important;display:grid!important;place-items:center!important;inset:0!important;line-height:1!important;text-align:center!important;padding:0!important}.core-label{bottom:48px!important}.core-orbit{isolation:isolate}.core-orbit:after{content:'';position:absolute;left:50%;top:50%;width:7px;height:7px;transform:translate(-50%,-50%);border-radius:50%;background:var(--cyan);box-shadow:0 0 18px var(--cyan);opacity:.65;z-index:1;animation:coreBeat 1.8s ease-in-out infinite}.core-card:has(.pulse:not(:empty)) .core-orbit:after{animation:coreBeat .55s ease-in-out infinite}.pulse{z-index:5}.module-main small{line-height:1.3}.line-btn{white-space:nowrap}.map-node.selected:after{content:'';position:absolute;inset:-5px;border:1px solid #a98cff66;border-radius:15px;animation:selectedPulse 1.5s ease-in-out infinite;pointer-events:none}.map-node.state-known:after{content:'✓';position:absolute;right:-5px;top:-7px;width:18px;height:18px;display:grid;place-items:center;border-radius:50%;background:#173b38;color:#8ee4c8;font-size:10px}.scan-btn:not(:disabled){animation:buttonBreath 2.2s ease-in-out infinite}.global-signal{position:relative}.global-signal:before{content:'';position:absolute;inset:-1px;border-radius:inherit;box-shadow:0 0 35px #a98cff16;pointer-events:none}.bottom-nav{z-index:40}#powerPanel{position:fixed;z-index:70;right:18px;top:78px;width:min(760px,calc(100vw - 36px));max-height:calc(100vh - 96px);overflow:auto;margin:0;background:linear-gradient(145deg,#0a1722f7,#061019f7);backdrop-filter:blur(18px);box-shadow:0 28px 100px #000c,0 0 50px #65ddff0a;border-color:#3b6172}#powerPanel .panel-head{position:sticky;top:-18px;padding:2px 0 10px;background:linear-gradient(#0a1722 72%,transparent);z-index:2}.power-open{border-color:#3c7186}.power-open span{display:block}.power-head-actions{flex-wrap:wrap}.power-head-actions .icon-btn{min-width:38px;min-height:38px}.mode.active{box-shadow:inset 0 0 0 1px #55bad733,0 0 25px #55bad70c}.module.on .module-icon{filter:drop-shadow(0 0 7px #65ddff55)}
@keyframes coreBeat{0%,100%{transform:translate(-50%,-50%) scale(.8);opacity:.4}50%{transform:translate(-50%,-50%) scale(1.45);opacity:1}}@keyframes selectedPulse{0%,100%{opacity:.25;transform:scale(.98)}50%{opacity:1;transform:scale(1.02)}}@keyframes buttonBreath{0%,100%{box-shadow:0 0 0 #65ddff00}50%{box-shadow:0 0 25px #65ddff18}}@keyframes softGlow{0%,100%{box-shadow:0 0 20px #65ddff05}50%{box-shadow:0 0 35px #65ddff0d}}
@media(max-width:900px){body{padding-bottom:92px}.game-shell{grid-template-columns:1fr;gap:8px}.side-dock{position:relative;top:auto}.quest-card #questDock{padding:13px}.quest-card #goalTitle{font-size:20px}.dock-status{font-size:8px}.game-main{min-width:0}.narrative-strip{margin-bottom:10px}.mechanic-hint{font-size:9px}.log-list{max-height:150px}#powerPanel{left:8px;right:8px;top:8px;width:auto;max-height:calc(100vh - 16px);border-radius:15px}.power-flow{font-size:8px}.power-flow i{font-size:12px}.screen-head{padding-top:3px}}
@media(max-width:560px){.top{position:sticky;top:0;z-index:35;background:#05080ee8;backdrop-filter:blur(10px);margin-left:-6px;margin-right:-6px;padding:7px 6px}.top-res .res:nth-child(3){display:none}.brand{font-size:17px}.res{padding:5px 6px;border-radius:9px}.res span{font-size:6px}.res b{font-size:12px}.quest-card #goalSub{font-size:11px}.quest-note{font-size:9px}.core-card{min-height:450px}.core-orbit{width:205px;height:205px}.core-value{font-size:50px}.core-label{bottom:46px!important}.micro-story{font-size:11px}.mechanic-hint{font-size:9px}.why-box{font-size:9px}.power-flow{justify-content:center}.power-flow i{display:none}.power-flow span{padding:3px 0}.network-tip{font-size:9px}.map{height:380px}.map-node{min-width:92px;max-width:116px}.route-panel h2{font-size:23px}}
/* ECHO//NULL 2.3 — narrator + memory constellation */
.dialogue-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.dialogue-sub{margin-top:2px;color:#6f8998;font-size:9px}.dialogue-dot{display:block;width:9px;height:9px;border-radius:50%;background:var(--cyan);box-shadow:0 0 15px var(--cyan);margin-top:3px;animation:dialoguePulse 1.8s ease-in-out infinite}.dialogue-dot.inner{background:var(--violet);box-shadow:0 0 15px var(--violet)}.dialogue-choices{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;margin-top:10px}.dialogue-choices button{min-height:48px;padding:8px 10px;text-align:left;border:1px solid #315366;border-radius:10px;background:#07141e;cursor:pointer}.dialogue-choices button:hover{border-color:var(--cyan);background:#0b202b}.dialogue-choices b,.dialogue-choices span{display:block}.dialogue-choices b{font-size:10px}.dialogue-choices span{margin-top:3px;color:#6f8b99;font-size:8px;line-height:1.25}.observer-card{display:grid;grid-template-columns:38px 1fr;gap:9px;align-items:center;margin:12px 0;padding:10px;border:1px solid #293d5b;border-radius:11px;background:linear-gradient(120deg,#0a1420,#0b101d)}.observer-avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;border:1px solid #6b5c92;background:#171328;color:#cfc3ff;box-shadow:0 0 25px #a98cff12}.observer-card b,.observer-card span{display:block}.observer-card b{font-size:10px;line-height:1.3}.observer-card span{margin-top:2px;color:#6f8998;font-size:8px}.identity-panel{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:15px;border:1px solid #30445d;border-radius:14px;background:linear-gradient(120deg,#0a1520,#0a101a);margin-bottom:10px}.identity-panel h3{margin:4px 0 3px;font-size:18px}.identity-panel p{margin:0;color:#7f98a6;font-size:10px}.identity-score{text-align:right;min-width:90px}.identity-score b{display:block;font-size:26px;color:#d8cfff}.identity-score span{font-size:8px;color:#6d8796}.memory-graph{height:430px;position:relative;overflow:hidden;border:1px solid #243e51;border-radius:15px;background:radial-gradient(circle at 50% 50%,#101c2c,#061019 70%);box-shadow:inset 0 0 60px #65ddff06}.memory-graph:before{content:'';position:absolute;inset:0;background-image:radial-gradient(#29495d 1px,transparent 1px);background-size:26px 26px;opacity:.2}.memory-edges{position:absolute;inset:0;width:100%;height:100%;z-index:1}.memory-edge{stroke:#233e51;stroke-width:.45;stroke-dasharray:2 2;opacity:.5}.memory-edge.live{stroke:#7bdbef;stroke-width:.7;opacity:.85;filter:drop-shadow(0 0 2px #65ddff);animation:memoryFlow 4s linear infinite}.memory-node{position:absolute;z-index:2;transform:translate(-50%,-50%);width:112px;min-height:60px;padding:8px;border:1px solid #2a4659;border-radius:12px;background:#07131dE8;text-align:left;cursor:pointer;transition:.18s;box-shadow:0 10px 28px #0008}.memory-node:hover{transform:translate(-50%,-52%);border-color:var(--cyan)}.memory-node.found{border-color:#4b7890;background:#091925}.memory-node.linked{border-color:#a98cff;box-shadow:0 0 25px #a98cff16}.memory-node.unknown{opacity:.45;filter:saturate(.25)}.memory-node i{float:right;width:17px;height:17px;border-radius:50%;display:grid;place-items:center;border:1px solid #385469;color:#7c97a5;font-style:normal;font-size:8px}.memory-node.found i{border-color:#65ddff;color:#65ddff;box-shadow:0 0 12px #65ddff55}.memory-node b,.memory-node small{display:block}.memory-node b{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.memory-node small{margin-top:3px;color:#708a98;font-size:8px;line-height:1.2}.memory-map-caption{display:flex;justify-content:space-between;gap:10px;margin:8px 2px;color:#6e8897;font-size:9px}.memory-map-caption b{color:#b8cbd4;white-space:nowrap}.memory-map-info{padding:10px 11px;border-left:2px solid #6d5d91;border-radius:8px;background:#0b111c;color:#879fab;font-size:10px;line-height:1.35;margin-bottom:10px}.memory.kept{border-color:#466e65;box-shadow:0 0 25px #77e0b208}.memory.kept:before{content:'СВЯЗАНО';float:right;color:#8fe3c1;font-size:7px;letter-spacing:.12em}.memory-list{margin-top:10px}
@keyframes dialoguePulse{0%,100%{transform:scale(.8);opacity:.55}50%{transform:scale(1.35);opacity:1}}@keyframes memoryFlow{to{stroke-dashoffset:-20}}
@media(max-width:900px){.dialogue-choices{grid-template-columns:1fr 1fr}.memory-graph{height:390px}.memory-node{width:100px}.identity-panel h3{font-size:16px}}
@media(max-width:560px){.dialogue-choices{grid-template-columns:1fr}.observer-card{grid-template-columns:32px 1fr}.observer-avatar{width:32px;height:32px}.memory-graph{height:350px}.memory-node{width:90px;min-height:54px;padding:7px}.memory-node b{font-size:8px}.memory-node small{font-size:7px}.identity-panel{align-items:flex-start}.identity-score{min-width:70px}.identity-score b{font-size:22px}}

/* ECHO//NULL 2.4 — режиссёрская подача: один взгляд, одно действие, один ответ */
html,body{width:100%;height:100%;overflow:hidden;overscroll-behavior:none}body{padding:8px 8px 78px}.top{height:54px;margin-bottom:8px}.game-shell{height:calc(100dvh - 148px);min-height:520px;grid-template-columns:300px minmax(0,1fr);align-items:stretch}.side-dock{height:100%;position:relative;top:auto}.quest-card{height:100%;display:flex;flex-direction:column}.quest-card #questDock{flex:1;display:flex;flex-direction:column;justify-content:center;padding:18px}.quest-card #logDock{flex:1;min-height:0;padding:14px}.quest-card #goalTitle{font-size:24px}.quest-card #goalSub{font-size:12px}.quest-card .goal-cta{font-size:12px;min-height:56px}.quest-note{font-size:9px}.dock-status{min-height:30px}.game-main{height:100%;min-height:0}.screen{height:100%;min-height:0}.hero-grid{height:100%;grid-template-columns:minmax(0,1.25fr) minmax(270px,.75fr)}.core-card,.brief-card{min-height:0;height:100%}.core-card{padding:16px}.core-orbit{width:min(32vh,270px);height:min(32vh,270px);margin:0 0 12px}.core-value{font-size:clamp(50px,7vh,70px)}.core-card .big{min-height:58px}.micro-story{min-height:24px;margin-top:8px}.mechanic-hint{margin-top:6px}.brief-card{padding:18px;overflow:hidden}.brief-card h2{font-size:24px}.brief-card p{min-height:0;margin-bottom:10px}.observer-card{margin:8px 0}.status-explain{font-size:9px}.power-open{margin:9px 0;min-height:52px}.bottom-nav{bottom:8px}.screen-network,.screen-memory{overflow:hidden}.screen-network .screen-head,.screen-memory .screen-head{padding:0 2px;margin-bottom:7px}.network-layout{height:calc(100% - 78px);grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);gap:8px}.network-card,.route-panel{min-height:0;height:100%;overflow:hidden}.map{height:calc(100% - 68px);min-height:260px}.route-panel{overflow:auto}.memory-graph{height:44vh;min-height:270px}.memory-list,.resonance-panel,.meta-panel{display:none}.memory-screen .memory-map-caption{margin-bottom:4px}.global-signal{position:fixed;left:50%;bottom:82px;transform:translateX(-50%);width:min(720px,calc(100% - 24px));z-index:65}.power-open{font-size:12px}.power-open span{font-size:9px}.simple-status{display:flex;justify-content:space-between;align-items:center;margin-top:12px;padding:9px 10px;border:1px solid #1f3d4f;border-radius:9px;background:#07131c;color:#7b98a7;font-size:9px}.simple-status b{color:#d9edf4}.advanced-status{transition:.25s}.core-state{margin-top:3px;color:#6d8a98;font-size:9px;letter-spacing:.08em;text-transform:uppercase}.observer-chat{padding:12px 12px 13px;border:1px solid #315267;border-radius:13px;background:linear-gradient(145deg,#0a1823,#071019);box-shadow:0 12px 34px #0007;position:relative}.observer-chat:after{content:'';position:absolute;left:16px;bottom:-5px;width:9px;height:9px;background:#09151f;border-right:1px solid #315267;border-bottom:1px solid #315267;transform:rotate(45deg)}.observer-chat-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.observer-chat-actions{display:flex;align-items:center;gap:7px}.voice-btn{width:27px;height:27px;border-radius:50%;border:1px solid #2b5267;background:#07131c;color:#6f91a1;cursor:pointer}.voice-btn.on{color:#65ddff;border-color:#65ddff55;box-shadow:0 0 18px #65ddff16}.observer-chat-text{margin-top:8px;font-size:13px;line-height:1.4;color:#e4f5fb;min-height:38px}.quest-separator{height:1px;background:#1c3445;margin:16px 0}.observer-chat .dialogue-choices{margin-top:10px}.attention-pulse{animation:attentionPulse .8s ease-out}.quest-card #goalCta{margin-top:11px}.quest-card #goalCta.hidden{display:none}.first-cycle .top-res .res{display:none}.first-cycle .brief-card .why-box{margin-top:12px}.first-cycle .brief-card .observer-card{display:none}.first-cycle .brief-card .simple-status{margin-top:16px}.first-cycle .core-card{box-shadow:0 0 80px #65ddff06}.first-cycle .core-orbit:before{animation:awakeningGlow 2s ease-in-out infinite}.first-cycle .pulseBtn{}.pulse-combo{font-size:9px}.module{animation:moduleIn .25s ease-out}.module:not(.on){border-color:#2b5268}.module:not(.on) .module-icon{opacity:.85}.mode-grid{display:none}.power-flow{display:none}
.boot-overlay{position:fixed;inset:0;z-index:100;background:#02050a;display:grid;place-items:center;pointer-events:none}.boot-eye{width:min(55vw,420px);height:min(32vw,240px);border:1px solid #294c5e;border-radius:50%;display:grid;place-items:center;animation:bootOpen 1.4s ease-out forwards}.boot-eye span{width:36px;height:36px;border-radius:50%;background:#dffaff;box-shadow:0 0 60px #65ddff;animation:bootCore 1.4s ease-out forwards}.boot-code{position:absolute;bottom:25%;font-size:12px;letter-spacing:.4em;color:#6b8a9a}.boot-flicker{position:absolute;top:25%;font-size:9px;letter-spacing:.6em;color:#5d7f90;animation:bootText 1.4s ease-out forwards}.boot-overlay.hidden{display:none}.app.awake .boot-overlay{display:none}
@keyframes attentionPulse{0%{box-shadow:0 0 0 #65ddff00}30%{box-shadow:0 0 35px #65ddff22}100%{box-shadow:0 0 0 #65ddff00}}@keyframes awakeningGlow{50%{box-shadow:0 0 90px #65ddff25,inset 0 0 55px #a98cff12}}@keyframes moduleIn{from{opacity:.2;transform:translateY(5px)}to{opacity:1;transform:none}}@keyframes bootOpen{0%{transform:scaleX(.08);opacity:0}25%{opacity:1}100%{transform:scaleX(1);opacity:1}}@keyframes bootCore{0%{transform:scale(.1);opacity:0}35%{opacity:1}100%{transform:scale(1);opacity:1}}@keyframes bootText{0%{opacity:0;transform:translateY(5px)}100%{opacity:1;transform:none}}
@media(max-width:900px){html,body{overflow:hidden}.top{height:48px}.game-shell{height:calc(100dvh - 132px);min-height:0;grid-template-columns:1fr;display:block}.side-dock{height:auto;margin-bottom:7px}.quest-card{height:auto;max-height:154px}.quest-card #questDock{padding:9px 11px}.quest-separator{display:none}.observer-chat{padding:8px 10px}.observer-chat-text{font-size:11px;min-height:30px}.quest-card #goalTitle{font-size:17px}.quest-card #goalSub{font-size:10px}.quest-note{display:none}.quest-card .goal-cta{min-height:42px;margin-top:7px}.dock-status{display:none}.game-main{height:calc(100% - 161px)}.hero-grid{height:100%;grid-template-columns:1fr}.brief-card{display:none}.core-card{height:100%;padding:10px}.core-orbit{width:min(48vh,240px);height:min(48vh,240px);margin:2px 0 7px}.core-label{bottom:43px!important}.rate{font-size:13px}.core-state{font-size:8px}.core-card .big{min-height:52px}.micro-story{font-size:10px;margin-top:5px}.mechanic-hint{font-size:8px}.bottom-nav{bottom:6px}.screen-network,.screen-memory{height:100%;overflow:hidden}.network-layout{height:calc(100% - 82px);grid-template-columns:1fr}.network-card{height:48%}.route-panel{height:52%;overflow:hidden}.map{height:calc(100% - 62px);min-height:180px}.map-node{min-width:82px;max-width:105px;padding:6px}.map-node b{font-size:8px}.map-node small{font-size:7px}.network-legend{font-size:8px}.screen-network .screen-head,.screen-memory .screen-head{display:flex;justify-content:space-between;gap:8px}.screen-network .screen-head p,.screen-network .network-tip,.screen-memory .screen-head p{display:none}.memory-graph{height:calc(100% - 80px);min-height:250px}.identity-panel{display:none}.memory-map-caption{font-size:8px}.memory-map-info{font-size:8px;margin:4px 0}.power-panel{max-height:calc(100dvh - 16px)}#powerPanel{overflow:hidden}.modules{max-height:calc(100dvh - 210px);overflow:hidden}.module{grid-template-columns:32px 1fr}.module-actions{grid-column:1/-1}.module-main p{font-size:9px}.module-main small{font-size:8px}.mode-grid{display:none!important}.global-signal{bottom:74px}.log-list{max-height:none;overflow:hidden}.autolog-head{padding-bottom:7px}}
@media(max-width:560px){body{padding:4px 4px 72px}.top{margin:0 0 5px}.top-res .res:nth-child(n+3){display:none}.game-shell{height:calc(100dvh - 121px)}.quest-card{max-height:142px}.observer-chat-text{font-size:10px}.dialogue-choices{grid-template-columns:1fr 1fr}.dialogue-choices button{min-height:40px;padding:6px}.dialogue-choices b{font-size:9px}.dialogue-choices span{font-size:7px}.quest-card #goalTitle{font-size:15px}.quest-card #goalSub{font-size:9px}.quest-card .goal-cta{font-size:10px}.game-main{height:calc(100% - 149px)}.core-orbit{width:min(43vh,210px);height:min(43vh,210px)}.core-value{font-size:50px}.pulse-combo{margin:1px 0 5px}.memory-node{width:78px;min-height:46px}.memory-node b{font-size:7px}.memory-node small{font-size:6px}.route-stats{grid-template-columns:repeat(2,1fr)}.route-panel{padding:12px}.crawler-card{padding:10px}.stance-grid{grid-template-columns:repeat(3,1fr)}.stance{min-height:48px;padding:5px}.stance b{font-size:8px}.stance span{font-size:6px}.map-node{min-width:74px;max-width:94px}.network-layout{height:calc(100% - 68px)}.map{height:calc(100% - 56px)}.scan-btn{min-height:42px}.memory-graph{height:calc(100% - 66px)}.bottom-nav{width:calc(100% - 10px)}}
#powerPanel{overflow:hidden}

/* ECHO//NULL 2.5 — director pass */
.first-cycle #settingsBtn,.first-cycle .brief-card,.first-cycle .top-res,.first-cycle .bottom-nav,.first-cycle .power-open,.first-cycle .simple-status,.first-cycle .advanced-status,.first-cycle .micro-story,.first-cycle .mechanic-hint{display:none!important}
.first-cycle .top{grid-template-columns:1fr auto}
.first-cycle .game-shell{grid-template-columns:300px minmax(0,1fr)}
.first-cycle .core-card{box-shadow:0 0 120px #65ddff10,inset 0 0 90px #65ddff05}
.first-cycle .core-orbit{width:min(44vh,360px);height:min(44vh,360px);margin-bottom:14px}
.first-cycle .core-orbit:after{content:'';position:absolute;left:50%;top:50%;width:8px;height:8px;transform:translate(-50%,-50%);border-radius:50%;background:var(--cyan);box-shadow:0 0 30px var(--cyan);opacity:.45;animation:directorBreath 2.4s ease-in-out infinite}
.first-cycle .core-value{font-size:clamp(54px,8vh,78px);letter-spacing:.02em}
.first-cycle .core-label{bottom:56px}
.first-cycle .rate{font-size:13px;color:#6e9aa9}
.first-cycle .quest-card #goalTitle{font-size:22px}
.first-cycle .quest-card #goalSub{color:#809aa8}
.first-cycle .quest-note{display:none}
.pulse-response .core-card{animation:pulseResponseCard .95s ease-out}
.pulse-response .core-orbit{filter:brightness(1.25);animation:pulseResponseOrbit .9s ease-out}
.pulse-response .core-value{animation:pulseResponseValue .9s ease-out}
.pulse-response .core-label{color:var(--cyan)}
.pulse-response .observer-chat{animation:attentionPulse .9s ease-out}
.pulse-response .pulse-combo{display:none}
.show-world-ui .top-res .res{animation:moduleIn .25s ease-out}
#coreValueLabel{transition:.2s}
@keyframes directorBreath{50%{transform:translate(-50%,-50%) scale(1.7);opacity:.16;box-shadow:0 0 60px var(--cyan)}}
@keyframes pulseResponseCard{0%{transform:scale(.996)}35%{transform:scale(1.004)}100%{transform:none}}
@keyframes pulseResponseOrbit{0%{transform:scale(.92);box-shadow:0 0 0 transparent}25%{transform:scale(1.05);box-shadow:0 0 90px #65ddff33}100%{transform:scale(1)}}
@keyframes pulseResponseValue{0%{opacity:.2;transform:translateY(-8px) scale(.85)}35%{opacity:1;transform:translateY(-8px) scale(1.12)}100%{transform:translateY(-8px) scale(1)}}
@media(max-width:900px){.first-cycle .game-shell{grid-template-columns:1fr}.first-cycle .game-main{height:calc(100% - 72px)}.first-cycle .core-orbit{width:min(52vh,270px);height:min(52vh,270px)}.first-cycle .side-dock{margin-bottom:7px}.first-cycle .quest-card{max-height:154px}}
@media(max-width:560px){.first-cycle .game-shell{height:calc(100dvh - 121px)}.first-cycle .game-main{height:calc(100% - 149px)}.first-cycle .core-orbit{width:min(50vh,225px);height:min(50vh,225px)}.first-cycle .quest-card #goalTitle{font-size:16px}}

/* ECHO//NULL 2.6 — layout + clarity pass */
html,body{width:100%;height:100%;overflow:hidden;overscroll-behavior:none}
body{padding:8px 8px 70px}
#app{height:100%;display:flex;flex-direction:column;min-height:0;overflow:hidden}
.top{flex:0 0 54px;width:100%;max-width:1320px;margin:0 auto 8px}
.game-shell{width:min(1320px,100%);height:calc(100dvh - 132px);min-height:0;margin:0 auto;display:grid;grid-template-columns:300px minmax(0,1fr) 320px;gap:10px;align-items:stretch}
.dialogue-dock,.quest-side,.game-main{min-width:0;min-height:0;height:100%}
.dock-card{height:100%;display:flex;flex-direction:column;border:1px solid #29485b;border-radius:16px;background:linear-gradient(145deg,#091722,#061019);box-shadow:0 16px 50px #0007;overflow:hidden}
.dialogue-dock #questDock{flex:1;min-height:0;padding:16px;display:flex;flex-direction:column;justify-content:center}
.dialogue-dock #logDock{flex:1;min-height:0;padding:14px;overflow:hidden}
.dialogue-dock .dock-status{flex:0 0 auto}
.dialogue-foot{display:flex;justify-content:space-between;gap:8px;margin-top:auto;padding-top:12px;color:#5f7c8b;font-size:8px;letter-spacing:.06em}
.dialogue-foot span:last-child{color:#7fa7b5}
.observer-chat{box-shadow:0 18px 50px #0009}
.observer-chat-text{font-size:14px;line-height:1.5;min-height:0}
.dialogue-choices{grid-template-columns:1fr}
.dialogue-choices button{min-height:54px}
.dialogue-choices b{font-size:11px}
.dialogue-choices span{font-size:9px}
.quest-side{display:flex;flex-direction:column;gap:10px;overflow:hidden}
.quest-side .quest-card{flex:0 0 auto;min-height:0;padding:18px;overflow:hidden}
.quest-side .quest-card h1{font-size:24px}
.quest-side .quest-card p{font-size:12px}
.quest-side .goal-cta{min-height:50px;margin-top:12px}
.quest-side .goal-progress{margin-top:12px}
.quest-side .quest-note{font-size:9px}
.quest-side .brief-card{flex:1;min-height:0;padding:16px;overflow:hidden}
.quest-side .brief-card h2{font-size:22px}
.quest-side .brief-card p{font-size:11px;margin:0 0 8px}
.quest-side .observer-card{display:none}
.quest-side .why-box{margin:8px 0}
.quest-side .power-open{margin:9px 0}
.game-main{overflow:hidden}
.game-main main{height:100%;min-height:0}
.screen{height:100%;min-height:0;max-width:none;overflow:hidden}
.hero-grid{height:100%;grid-template-columns:1fr;min-height:0}
.core-card{height:100%;min-height:0;padding:18px}
.core-orbit{width:min(44vh,360px);height:min(44vh,360px);margin:0 0 12px}
.core-card .micro-story,.core-card .mechanic-hint{display:none!important}
.core-card .big{min-height:60px;width:min(520px,100%)}
.power-open{font-size:11px}
.power-open span{font-size:9px}
.first-cycle .game-shell{grid-template-columns:300px minmax(0,1fr) 320px}
.first-cycle .brief-card{display:none!important}
.first-cycle .quest-side{justify-content:flex-start}
.first-cycle .quest-side .quest-card{margin-top:0}
.first-cycle .top-res,.first-cycle #settingsBtn,.first-cycle .bottom-nav{visibility:hidden;pointer-events:none}
.first-cycle .core-card{box-shadow:0 0 120px #65ddff0c,inset 0 0 90px #65ddff05}
.first-cycle .core-orbit{width:min(44vh,360px);height:min(44vh,360px)}
.pulse-response .core-card{animation:pulseResponseCard .8s ease-out}
.pulse-response .observer-chat{animation:attentionPulse .8s ease-out}
#goalCta.hidden{display:none!important}
#dialogueChoices:empty{display:none}

@media(max-width:1100px) and (min-width:901px){
  .game-shell{grid-template-columns:260px minmax(0,1fr) 280px}
  .dialogue-dock #questDock{padding:12px}
  .quest-side .quest-card,.quest-side .brief-card{padding:13px}
  .core-orbit{width:min(38vh,300px);height:min(38vh,300px)}
}

@media(max-width:900px){
  html,body{overflow:hidden}
  body{padding:4px 4px 66px}
  .top{height:48px;flex-basis:48px;margin-bottom:5px}
  .game-shell{height:calc(100dvh - 119px);grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr) auto;gap:7px;overflow:hidden}
  .dialogue-dock{height:auto;max-height:150px}
  .dock-card{height:auto;max-height:150px}
  .dialogue-dock #questDock{padding:9px 10px;justify-content:flex-start}
  .dialogue-foot,.dialogue-dock .dock-status{display:none}
  .observer-chat{padding:9px 10px}
  .observer-chat-text{font-size:11px}
  .dialogue-choices{grid-template-columns:1fr 1fr}
  .dialogue-choices button{min-height:44px;padding:7px}
  .dialogue-choices b{font-size:9px}
  .dialogue-choices span{font-size:7px}
  .game-main{height:auto;min-height:0}
  .hero-grid{height:100%}
  .core-card{height:100%;padding:10px}
  .core-orbit{width:min(46vh,260px);height:min(46vh,260px);margin:0 0 7px}
  .core-card .big{min-height:52px}
  .quest-side{height:auto;max-height:170px;overflow:hidden}
  .quest-side .quest-card{padding:10px 12px}
  .quest-side .quest-card h1{font-size:17px}
  .quest-side .quest-card p{font-size:10px;margin:0}
  .quest-side .goal-progress,.quest-side .quest-note{display:none}
  .quest-side .brief-card{display:none!important}
  .first-cycle .game-shell{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr) auto}
  .first-cycle .quest-side{max-height:125px}
  .first-cycle .quest-side .goal-cta{display:none!important}
  .first-cycle .core-orbit{width:min(50vh,240px);height:min(50vh,240px)}
}

@media(max-width:560px){
  .game-shell{height:calc(100dvh - 113px)}
  .dialogue-dock{max-height:142px}
  .dock-card{max-height:142px}
  .dialogue-choices{grid-template-columns:1fr}
  .dialogue-choices button{min-height:40px}
  .quest-side{max-height:145px}
  .core-orbit{width:min(43vh,210px);height:min(43vh,210px)}
  .core-value{font-size:50px}
}

/* ECHO//NULL 2.7 — cinematic opening + cause/effect clarity */
.opening-cinematic{position:fixed;inset:0;z-index:120;display:grid;place-items:center;background:#02050a;overflow:hidden;opacity:1;transition:opacity .65s ease,visibility .65s ease}.opening-cinematic.hidden{display:none}.opening-cinematic.exit{opacity:0;visibility:hidden}.opening-vignette{position:absolute;inset:-10%;background:radial-gradient(ellipse at 50% 48%,#0e2230 0,#07111a 28%,#02050a 64%,#000 100%);animation:openingBreath 3.4s ease-in-out infinite}.opening-scanlines{position:absolute;inset:0;opacity:.09;background:repeating-linear-gradient(0deg,transparent 0 3px,#dffaff 4px,#dffaff 5px);mix-blend-mode:screen;animation:scanJitter .16s steps(2,end) infinite}.opening-frame{position:relative;width:min(920px,88vw);height:min(720px,86vh);display:grid;grid-template-rows:auto 1fr auto;align-items:center;justify-items:center;padding:40px 44px;border:1px solid #284b5f;border-radius:28px;background:linear-gradient(145deg,#07131eaa,#02080eee);box-shadow:0 0 120px #65ddff0d,inset 0 0 80px #65ddff06;backdrop-filter:blur(8px)}.opening-mark{position:absolute;left:28px;top:24px;color:#6e8c9c;font-size:10px;letter-spacing:.25em}.opening-eye{position:relative;width:min(520px,68vw);height:min(260px,30vh);border:1px solid #3a667d;border-radius:50%;display:grid;place-items:center;box-shadow:0 0 80px #65ddff12,inset 0 0 80px #65ddff08;animation:openingEye 2.8s ease-in-out infinite}.opening-eye:before{content:"";position:absolute;inset:12%;border:1px solid #69558e;border-radius:50%;animation:orbit 16s linear infinite}.opening-eye:after{content:"";position:absolute;left:50%;top:12%;width:1px;height:76%;background:linear-gradient(180deg,transparent,#65ddff,transparent);opacity:.5}.opening-eye i{position:relative;width:74px;height:74px;border:1px solid #65ddff;border-radius:50%;box-shadow:0 0 45px #65ddff28;background:radial-gradient(circle,#eafcff 0 7%,#65ddff 8% 12%,#07131d 13% 58%,transparent 59%);animation:openingCore 1.9s ease-in-out infinite}.opening-eye b{position:absolute;width:9px;height:9px;border-radius:50%;background:#f3feff;box-shadow:0 0 30px #65ddff;animation:openingBlink 2.7s steps(2,end) infinite}.opening-copy{text-align:center;max-width:720px;transform:translateY(-8px)}.opening-kicker{font-size:10px;letter-spacing:.28em;color:#70a3b5;font-weight:950}.opening-copy h1{margin:10px 0 8px;font-size:clamp(38px,6vw,76px);line-height:.98;letter-spacing:-.04em;text-shadow:0 0 40px #65ddff1c}.opening-copy p{margin:0 auto;color:#9ab3c0;font-size:clamp(12px,1.5vw,16px);max-width:640px}.opening-action{display:grid;justify-items:center;gap:9px;width:min(500px,100%)}.opening-pulse{width:100%;min-height:66px;border:1px solid #4c91a8;border-radius:15px;background:linear-gradient(180deg,#103342,#0a2430);color:#effcff;font-weight:950;font-size:15px;letter-spacing:.04em;cursor:pointer;box-shadow:0 0 50px #65ddff0b, inset 0 0 20px #65ddff06;transition:.18s}.opening-pulse:hover{transform:translateY(-2px);border-color:#65ddff;box-shadow:0 0 70px #65ddff1c}.opening-action span{font-size:10px;color:#6e8c9c;letter-spacing:.05em}.opening-cinematic.exit .opening-frame{animation:openingExit .8s ease-out forwards}.opening-cinematic.exit .opening-eye{animation:openingCollapse .8s ease-in forwards}.observer-chat.needs-answer{border-color:#5a79a0;box-shadow:0 0 45px #65ddff12,0 18px 50px #000a}.observer-chat.needs-answer .observer-chat-text{font-size:16px;line-height:1.35}.observer-chat.needs-answer .voice-btn{width:34px;height:34px;color:#65ddff;border-color:#65ddff66;box-shadow:0 0 24px #65ddff15;animation:voiceBeacon 1.6s ease-in-out infinite}.dialogue-choices button{transition:.18s}.dialogue-choices button:hover{transform:translateY(-1px);border-color:#65ddff;box-shadow:0 0 24px #65ddff10}.resource-bump .res{animation:resourceBump .34s ease-out}.energy-rise{animation:energyRise .45s ease-out}.core-card:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(transparent 49.8%,#65ddff08 50%,transparent 50.2%);opacity:.22}.has-awakened .core-card:after{animation:scanSweep 3.8s linear infinite}.first-cycle .quest-side .quest-card{min-height:240px;display:flex;flex-direction:column;justify-content:center;border-color:#315c73;box-shadow:0 0 55px #65ddff0c,0 18px 60px #0008}.first-cycle .quest-side .quest-card:before{content:"01";position:absolute;right:18px;top:14px;font-size:42px;line-height:1;color:#65ddff10;font-weight:950;letter-spacing:-.06em}.first-cycle .quest-side .quest-card{position:relative}.first-cycle .quest-side .quest-note{display:block!important;min-height:0;color:#6e8c9c}.first-cycle .quest-side .goal-progress{display:block!important}.first-cycle .quest-side .goal-cta{display:block!important}.first-cycle .quest-side .goal-cta{background:#0e2e3d;min-height:58px}.first-cycle .quest-side .quest-card p{font-size:13px}.first-cycle .dialogue-dock{opacity:.55}.first-cycle .dialogue-dock .observer-chat{border-color:#1c3a4c}.first-cycle .dialogue-dock .observer-chat-text{font-size:12px;color:#8aa4b2}
@keyframes openingBreath{50%{transform:scale(1.03);filter:brightness(1.12)}}@keyframes openingEye{50%{transform:scale(1.025);box-shadow:0 0 120px #65ddff18,inset 0 0 90px #65ddff0c}}@keyframes openingCore{50%{transform:scale(1.08);box-shadow:0 0 75px #65ddff3a}}@keyframes openingBlink{50%{opacity:.25;transform:scale(.65)}}@keyframes scanJitter{50%{transform:translateY(1px)}}@keyframes openingExit{0%{transform:scale(1);filter:brightness(1)}45%{transform:scale(1.035);filter:brightness(1.45)}100%{transform:scale(1.08);opacity:0}}@keyframes openingCollapse{0%{transform:scale(1);opacity:1}100%{transform:scale(.28);opacity:0}}@keyframes voiceBeacon{50%{box-shadow:0 0 35px #65ddff28}}@keyframes resourceBump{50%{transform:translateY(-2px);border-color:#65ddff}}@keyframes energyRise{35%{transform:translateY(-8px) scale(1.08);color:#dffaff;text-shadow:0 0 28px #65ddff66}}@keyframes scanSweep{0%{transform:translateY(-40%);opacity:0}15%,70%{opacity:.28}100%{transform:translateY(40%);opacity:0}}
@media(max-width:900px){.opening-frame{width:94vw;height:92vh;padding:28px 22px}.opening-eye{width:min(560px,82vw);height:min(220px,28vh)}.opening-copy h1{font-size:clamp(34px,10vw,56px)}.opening-copy p{font-size:12px}.opening-pulse{min-height:60px;font-size:13px}.first-cycle .quest-side .quest-card{min-height:190px}.observer-chat.needs-answer .observer-chat-text{font-size:14px}}
@media(max-width:560px){.opening-frame{height:94vh;padding:24px 16px;border-radius:20px}.opening-eye{height:180px}.opening-eye i{width:58px;height:58px}.opening-copy h1{font-size:40px}.opening-copy p{font-size:11px}.opening-pulse{min-height:56px;font-size:12px}.first-cycle .quest-side .quest-card{min-height:170px}.first-cycle .quest-side .goal-cta{min-height:52px}}
@media(max-width:900px){.first-cycle .quest-side{max-height:210px}.first-cycle .quest-side .quest-card{min-height:195px}}
@media(max-width:560px){.first-cycle .quest-side{max-height:185px}.first-cycle .quest-side .quest-card{min-height:175px}}

/* ECHO//NULL 2.8 — dialogue-first staging, reveal UI only when earned */
.top{grid-template-columns:auto 1fr auto}.top-actions{display:flex;align-items:center;gap:8px}.top-link{min-height:38px;padding:8px 12px;border:1px solid #294b61;border-radius:10px;background:#07131d;color:#8fc4d4;font-size:10px;font-weight:950;letter-spacing:.08em;cursor:pointer}.top-link:hover{border-color:var(--cyan);color:#effcff}
.dialogue-dock{position:relative}.dock-tabs{display:none}.dialogue-dock #questDock{justify-content:flex-end;padding:12px}.observer-chat{display:flex;flex-direction:column;min-height:0;max-height:100%;border:1px solid #1d3b4e;border-radius:15px;background:linear-gradient(180deg,#07131d,#050c13);overflow:hidden}.observer-chat-head{flex:0 0 auto;padding:11px 12px;border-bottom:1px solid #132c3b}.observer-chat-text{display:none}.dialogue-history{display:flex;flex-direction:column;gap:8px;padding:10px;min-height:0;overflow:hidden}.chat-bubble{max-width:92%;padding:9px 11px;border:1px solid #183446;border-radius:12px;background:#081722;box-shadow:0 8px 22px #0006;animation:chatIn .28s ease-out}.chat-bubble span{display:block;font-size:8px;letter-spacing:.14em;color:#6f9eb0;font-weight:950}.chat-bubble p{margin:3px 0 0;font-size:12px;line-height:1.35;color:#dceef4}.chat-bubble.player{align-self:flex-end;background:#0b2734;border-color:#2e6175}.chat-bubble.player span{color:#83d9ee;text-align:right}.chat-bubble.latest{border-color:#3a687d;box-shadow:0 0 22px #65ddff0c}.dialogue-choices{padding:0 10px 10px}.dialogue-choices button{min-height:46px}.dialogue-foot{padding:7px 11px;font-size:8px;letter-spacing:.08em}.first-cycle .dialogue-dock{opacity:1}.first-cycle .dialogue-dock .observer-chat{border-color:#294b61}.first-cycle .dialogue-dock .observer-chat-text{font-size:12px}
.quest-side .quest-card{border-color:#294b61}.quest-side .quest-card h1{font-size:22px}.quest-side .quest-note{color:#7893a1}.quest-side .brief-card{display:none}.quest-side .quest-card{min-height:230px}.quest-side .quest-card:before{content:'ТЕКУЩАЯ ЗАДАЧА';display:block;position:absolute;right:16px;top:16px;font-size:8px;letter-spacing:.16em;color:#557888}
.power-open{display:none!important}.powerPanel{}
#powerPanel{position:fixed;z-index:80;left:50%;top:50%;transform:translate(-50%,-50%);width:min(760px,92vw);max-height:min(720px,88vh);overflow:auto;margin:0;padding:20px;background:linear-gradient(145deg,#091722,#040b11);box-shadow:0 30px 120px #000d,0 0 80px #65ddff10;border-color:#355b6f}.power-head{padding-bottom:12px;border-bottom:1px solid #173242}.power-flow{display:none}.power-head-actions>b{font-size:9px}.mode-grid{display:none}.module{grid-template-columns:50px 1fr auto;padding:16px;border-color:#244457}.module:first-child{border-color:#3f7187;box-shadow:0 0 30px #65ddff0b}.module-icon{font-size:28px}.module-main b{font-size:15px}.module-main p{font-size:12px}.module-main small{font-size:10px}.line-btn{min-height:46px;padding:10px 14px;font-size:11px}.powerPanel:before{content:'';position:fixed;inset:0;z-index:-1;background:#000b;backdrop-filter:blur(4px)}
.log-overlay{position:fixed!important;z-index:90;left:50%;top:50%;transform:translate(-50%,-50%);width:min(700px,90vw);height:min(620px,80vh);padding:16px;background:#061019;border:1px solid #2c5367;border-radius:16px;box-shadow:0 30px 120px #000d;overflow:hidden}.log-overlay:before{content:'';position:fixed;inset:0;z-index:-1;background:#000b;backdrop-filter:blur(4px)}.autolog-head{display:flex;justify-content:space-between;align-items:center}.log-list{height:calc(100% - 55px);overflow:hidden}.log-entry{display:flex;gap:8px;padding:8px 0;border-bottom:1px solid #102632;font-size:10px;color:#8da6b5}.log-entry.new{color:#dffaff}.log-mark{color:#65ddff}
.bottom-nav{transition:.25s}.bottom-nav .nav.hidden{display:none}.screen-network .bottom-nav,.screen-memory .bottom-nav{opacity:1}
.core-card{box-shadow:0 16px 60px #0008,inset 0 0 100px #65ddff05}.core-orbit .orbit{animation-duration:18s}.core-orbit .o2{animation-duration:25s}.core-orbit .o3{animation-duration:32s}.has-awakened .core-card:after{animation:none;opacity:.08}.pulse-response .core-card{animation:pulseResponseCard .8s ease-out}.pulse-response .core-orbit{animation:coreWake .8s ease-out}.pulse-response .orbit{animation:pulseRing .9s ease-out}.pulse-response .o2{animation-delay:.05s}.pulse-response .o3{animation-delay:.1s}
.chat-bubble.player p{color:#e8fbff}.dialogue-waiting .quest-side .quest-card{border-color:#5a79a0;box-shadow:0 0 35px #65ddff0c}.dialogue-waiting .quest-side .quest-card:after{content:'ОТВЕТЬ';position:absolute;right:16px;bottom:16px;font-size:9px;letter-spacing:.15em;color:#65ddff;animation:voiceBeacon 1.6s ease-in-out infinite}.dialogue-waiting .quest-side .goal-progress{opacity:.8}
@keyframes chatIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}@keyframes coreWake{0%{transform:scale(.92);filter:brightness(.7)}35%{transform:scale(1.06);filter:brightness(1.7)}100%{transform:scale(1);filter:brightness(1)}}@keyframes pulseRing{0%{transform:scale(.82);opacity:.15}45%{transform:scale(1.08);opacity:1}100%{transform:scale(1);opacity:.8}}
@media(max-width:900px){.top{gap:8px}.top-res{gap:4px}.res{min-width:0;padding:6px 7px}.res span{font-size:7px}.res b{font-size:12px}.top-link{font-size:8px;padding:7px 9px}.dialogue-dock{max-height:190px}.dialogue-history{padding:7px;gap:6px}.chat-bubble{padding:7px 9px}.chat-bubble p{font-size:11px}.quest-side .quest-card{min-height:150px}.quest-side .quest-card h1{font-size:17px}.quest-side .quest-card p{font-size:10px}.powerPanel{width:96vw}.module{grid-template-columns:38px 1fr}.module-actions{grid-column:1/-1;justify-content:stretch}.module-actions .line-btn{width:100%}}
@media(max-width:560px){.top{grid-template-columns:1fr auto}.top-res{display:none}.brand{font-size:19px}.dialogue-dock{max-height:170px}.quest-side{max-height:120px}.quest-side .quest-card{min-height:112px;padding:10px}.quest-side .quest-card h1{font-size:15px}.quest-side .quest-card p{display:none}.quest-side .quest-card:before{top:10px;right:10px;font-size:7px}.quest-side .goal-progress{display:none}.quest-side .quest-note{display:none}.dialogue-choices button{min-height:38px}.chat-bubble p{font-size:10px}.powerPanel{max-height:86vh}.power-head h2{font-size:18px}.module-main p{font-size:10px}}

/* ECHO//NULL 2.9 — внешний взгляд: меньше текста, больше события */
.game-shell{grid-template-columns:minmax(0,1fr) 320px;grid-template-rows:1fr;position:relative}
.dialogue-dock{grid-column:1;grid-row:1;position:fixed;left:max(18px,calc(50vw - 640px));bottom:88px;width:min(430px,calc(100vw - 360px));height:auto;max-height:245px;z-index:45;pointer-events:none}
.dialogue-dock .dock-card{height:auto;max-height:245px;pointer-events:auto;background:linear-gradient(180deg,#06111aee,#03090eee);backdrop-filter:blur(12px);border-color:#294b61;box-shadow:0 22px 80px #000c,0 0 40px #65ddff08}
.dialogue-dock #questDock{padding:0;justify-content:flex-end}
.game-main{grid-column:1;grid-row:1;grid-column-end:2}
.quest-side{grid-column:2;grid-row:1}
.dialogue-history{max-height:150px;overflow:hidden;mask-image:linear-gradient(to bottom,transparent 0,#000 14%,#000 100%)}
.chat-bubble{max-width:94%;padding:8px 10px}
.chat-bubble p{font-size:12px}
.dialogue-choices{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:0 10px 10px}
.dialogue-choices button{min-height:44px;text-align:left;border:1px solid #24485b;border-radius:10px;background:#081722;color:#e8f7fb;cursor:pointer}
.dialogue-choices button span{display:block;margin-top:2px;color:#6e8d9c;font-size:8px}
.dialogue-dock .dialogue-foot{padding:6px 10px;font-size:7px}
.quest-side .quest-card{height:auto;min-height:205px}
.quest-side .quest-card:before{pointer-events:none}
.external-scan{position:absolute;inset:0;z-index:12;display:grid;grid-template-rows:auto 1fr auto auto;place-items:center;padding:18px;background:radial-gradient(circle at 50% 45%,#0a2433f2 0,#061019f6 58%,#02070cf9 100%);border-radius:16px;overflow:hidden;animation:externalIn .45s ease-out}
.external-scan.hidden{display:none}
.external-scan:after{content:'';position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,transparent 0 3px,#c9f7ff08 4px 5px);mix-blend-mode:screen}
.external-scan-top{width:100%;display:flex;justify-content:space-between;align-items:center;color:#6f9aaa;font-size:9px;letter-spacing:.18em;font-weight:950}
.external-scan-top b{color:#65ddff}
.external-radar{position:relative;width:min(430px,70%);aspect-ratio:1;border:1px solid #2d5f75;border-radius:50%;display:grid;place-items:center;box-shadow:0 0 100px #65ddff0b,inset 0 0 80px #65ddff08}
.radar-grid{position:absolute;inset:0;border-radius:50%;background:linear-gradient(#21435622 1px,transparent 1px),linear-gradient(90deg,#21435622 1px,transparent 1px);background-size:25% 25%;mask-image:radial-gradient(circle,#000 0 68%,transparent 69%)}
.radar-ring{position:absolute;border:1px solid #31576b;border-radius:50%;inset:15%;opacity:.7}.radar-ring.rr2{inset:30%;border-color:#5a4d7d}.radar-ring.rr3{inset:44%;border-color:#2b7189}
.radar-sweep{position:absolute;left:50%;top:50%;width:50%;height:1px;transform-origin:left center;background:linear-gradient(90deg,#65ddff,transparent);box-shadow:0 0 16px #65ddff;animation:radarSweep 1.9s linear infinite}
.radar-core{width:12px;height:12px;border-radius:50%;background:#e9fbff;box-shadow:0 0 30px #65ddff;animation:radarCore 1.2s ease-in-out infinite}
.external-target{position:absolute;left:72%;top:31%;width:32px;height:32px;display:grid;place-items:center;border:1px solid #ef8d9a;border-radius:50%;box-shadow:0 0 35px #ef727c38;animation:targetPulse 1.15s ease-in-out infinite}
.external-target i{position:absolute;inset:-9px;border:1px solid #ef727c55;border-radius:50%;animation:targetRing 1.15s ease-out infinite}
.external-target b{font-size:12px;color:#ffdfe2}
.external-scan-caption{position:relative;z-index:2;font-size:clamp(18px,2.2vw,27px);font-weight:950;letter-spacing:.03em;text-align:center;text-shadow:0 0 30px #65ddff22}
.external-scan.contact .external-scan-caption{color:#ffdfe2;animation:contactText .55s ease-out}
.external-scan.contact .radar-sweep{animation-duration:.8s}
.external-scan.contact .radar-core{background:#efefff;box-shadow:0 0 50px #ef727c66}
.external-scan-choices:empty{display:none}
.external-scan-choices{display:flex;gap:8px;position:relative;z-index:2}
.external-scan-choices button{min-height:44px;padding:9px 14px;border:1px solid #3d7187;border-radius:10px;background:#09202b;color:#eafaff;font-weight:950;cursor:pointer}
body:has(.external-scan.contact) .dialogue-dock{animation:externalDialogueWake .6s ease-out}
body:has(.external-scan.contact) .quest-side .quest-card{border-color:#8a6271;box-shadow:0 0 45px #ef727c0d,0 18px 60px #000a}
@keyframes radarSweep{to{transform:rotate(360deg)}}
@keyframes radarCore{50%{transform:scale(1.8);opacity:.45}}
@keyframes targetPulse{50%{transform:scale(1.12);filter:brightness(1.5)}}
@keyframes targetRing{0%{transform:scale(.6);opacity:.8}100%{transform:scale(1.8);opacity:0}}
@keyframes externalIn{from{opacity:0;transform:scale(.985);filter:brightness(.7)}to{opacity:1;transform:none;filter:none}}
@keyframes contactText{from{opacity:0;transform:translateY(8px) scale(.95)}to{opacity:1;transform:none}}
@keyframes externalDialogueWake{35%{transform:translateY(-4px);filter:brightness(1.3)}100%{transform:none}}

@media(max-width:900px){
  .game-shell{grid-template-columns:1fr;grid-template-rows:1fr;height:calc(100dvh - 113px)}
  .game-main{grid-column:1;grid-row:1}
  .quest-side{grid-column:1;grid-row:1;pointer-events:none}
  .quest-side .quest-card{position:fixed;right:8px;top:58px;width:min(280px,46vw);z-index:34;pointer-events:auto;min-height:104px}
  .dialogue-dock{left:8px;right:8px;bottom:76px;width:auto;max-height:174px;z-index:35}
  .dialogue-dock .dock-card{max-height:174px}
  .dialogue-history{max-height:86px}
  .external-radar{width:min(62vw,300px)}
}
@media(max-width:560px){
  .quest-side .quest-card{right:7px;top:56px;width:calc(100vw - 170px);min-height:92px;padding:9px}
  .quest-side .quest-card h1{font-size:14px}
  .quest-side .quest-card p{display:none}
  .dialogue-dock{left:6px;right:6px;bottom:72px;max-height:154px}
  .dialogue-dock .dock-card{max-height:154px}
  .dialogue-history{max-height:67px;padding:6px;gap:5px}
  .chat-bubble{padding:6px 8px}
  .chat-bubble p{font-size:10px}
  .dialogue-choices{gap:5px;padding:0 6px 6px}
  .dialogue-choices button{min-height:36px}
  .dialogue-choices span{display:none}
  .external-scan{padding:12px}
  .external-radar{width:min(62vw,235px)}
  .external-scan-caption{font-size:18px}
}

/* ECHO//NULL 3.0 — уютный сигнал: маленькая жизнь внутри холодной машины */
.crew-board{margin-top:10px;padding:10px 12px;border:1px solid #315065;border-radius:13px;background:radial-gradient(circle at 18% 0,#173127aa 0,#07131a 48%,#050b10 100%);box-shadow:inset 0 0 35px #77e0b20b,0 10px 35px #0005;animation:crewReveal .55s ease-out}
.crew-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.crew-head b{display:block;margin-top:2px;font-size:12px;letter-spacing:.05em}.crew-head strong{font-size:13px;color:#77e0b2}
.crew-lights{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:9px}.crew-light{min-width:0;padding:7px 5px;border:1px solid #193140;border-radius:10px;background:#061018;text-align:center;transition:.3s}.crew-light i{display:block;width:9px;height:9px;margin:0 auto 5px;border-radius:50%;background:#243a46;box-shadow:0 0 0 transparent}.crew-light span{display:block;font-size:8px;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.crew-light small{display:block;margin-top:2px;font-size:7px;color:#607987}.crew-light.awake,.crew-light.saved{border-color:#3a765f;background:#0a1c19}.crew-light.awake i,.crew-light.saved i{background:#77e0b2;box-shadow:0 0 18px #77e0b277}.crew-light.calling{border-color:#a98cff;background:#111021;animation:crewCalling 1s ease-in-out infinite}.crew-light.calling i{background:#a98cff;box-shadow:0 0 22px #a98cff99}.crew-light.sleeping i{animation:sleepBlink 2.8s ease-in-out infinite}.crew-board p{margin:7px 0 0;color:#7893a1;font-size:9px;line-height:1.3}
.has-awakened .core-card{background:radial-gradient(circle at 50% 34%,#0c1e2a 0,#07131d 46%,#061019 100%)}
.has-awakened .crew-board{display:block}.has-awakened .crew-board:before{content:'';position:absolute}
@keyframes crewReveal{from{opacity:0;transform:translateY(8px);filter:brightness(.7)}to{opacity:1;transform:none;filter:none}}
@keyframes crewCalling{0%,100%{transform:translateY(0);box-shadow:0 0 0 #a98cff00}50%{transform:translateY(-1px);box-shadow:0 0 24px #a98cff22}}
@keyframes sleepBlink{0%,72%,100%{opacity:.35}82%{opacity:.9;box-shadow:0 0 12px #65ddff44}}
@media(max-width:900px){.crew-board{margin-top:7px;padding:8px 9px}.crew-lights{gap:5px}.crew-light{padding:6px 3px}.crew-light span{font-size:7px}.crew-light small{font-size:6px}}
.rescue-mini{margin:10px 0;padding:8px 9px;border:1px solid #244557;border-radius:10px;background:#061219;display:flex;justify-content:space-between;align-items:center;gap:8px}.rescue-mini b{display:block;margin-top:2px;font-size:10px}.rescue-mini>span{display:flex;gap:4px}.rescue-mini i{width:7px;height:7px;border-radius:50%;background:#243a46}.rescue-mini i.on{background:#77e0b2;box-shadow:0 0 10px #77e0b266}.rescue-mini i.calling{background:#a98cff;box-shadow:0 0 12px #a98cff88;animation:crewCalling 1s infinite}
.map-node.crew-target{border-color:#77e0b255;box-shadow:0 0 22px #77e0b218}.map-node.crew-target span{color:#77e0b2}.map-node.crew-target:after{content:'';position:absolute;inset:-5px;border:1px solid #77e0b233;border-radius:50%;animation:crewTargetRing 2s ease-out infinite;pointer-events:none}@keyframes crewTargetRing{0%{transform:scale(.82);opacity:.9}100%{transform:scale(1.22);opacity:0}}
body.cozy-mode{background:radial-gradient(circle at 38% 18%,#173027 0,#0b1720 28%,#05080e 58%);transition:background 1.2s ease}body.cozy-mode .core-card{box-shadow:0 18px 70px #0009,inset 0 0 120px #77e0b20a}body.cozy-mode .core-orbit .o3{border-color:#77e0b233}body.cozy-mode .observer-chat{border-color:#3b6258;box-shadow:0 0 35px #77e0b20b,0 18px 70px #000b}

/* ECHO//NULL 3.1 — первое спасение: не объяснять, а дать прожить момент */
.rescue-scene{position:fixed;inset:0;z-index:40;display:grid;place-items:center;pointer-events:none;overflow:hidden;background:radial-gradient(circle at 50% 48%,#0b1d25f2 0,#050b11f8 45%,#010409fc 100%);animation:rescueFadeIn .55s ease-out}.rescue-scene.hidden{display:none}.rescue-vignette{position:absolute;inset:-8%;background:radial-gradient(circle at 50% 50%,transparent 0 20%,#0006 55%,#000d 100%)}.rescue-route-line{position:absolute;left:clamp(16px,4vw,52px);right:clamp(16px,4vw,52px);top:clamp(22px,6vh,60px);display:flex;align-items:center;gap:12px;color:#5d8190;font-size:9px;letter-spacing:.18em;font-weight:950;text-transform:uppercase}.rescue-route-line i{width:7px;height:7px;border-radius:50%;background:#65ddff;box-shadow:0 0 18px #65ddff;animation:rescueRouteDot 1.3s ease-in-out infinite}.rescue-route-line span{flex:1}.rescue-route-line b{color:#d7f8ff;font-size:11px}.rescue-center{position:relative;z-index:2;display:grid;place-items:center;text-align:center;gap:14px}.rescue-signal-halo{position:relative;width:min(36vw,330px);height:min(36vw,330px);min-width:190px;min-height:190px;border-radius:50%;border:1px solid #254b5e;display:grid;place-items:center;box-shadow:0 0 100px #65ddff08,inset 0 0 80px #65ddff06}.rescue-signal-halo:before,.rescue-signal-halo:after{content:'';position:absolute;border:1px solid #65ddff22;border-radius:50%;inset:12%;animation:rescueRing 2.8s ease-out infinite}.rescue-signal-halo:after{inset:27%;border-color:#a98cff25;animation-delay:.6s}.rescue-signal-halo i{position:absolute;width:14px;height:14px;border-radius:50%;background:#1c3440;box-shadow:0 0 0 #65ddff00;transition:.6s}.rescue-signal-halo b{position:relative;z-index:2;color:#557888;font-size:42px;font-weight:300}.rescue-big-text{font-size:clamp(19px,3vw,34px);font-weight:950;letter-spacing:.08em;text-transform:uppercase;text-shadow:0 0 32px #65ddff18}.rescue-small-text{max-width:520px;color:#7595a3;font-size:12px;letter-spacing:.05em}.rescue-pulse-line{position:absolute;left:50%;top:50%;width:42vw;max-width:600px;height:1px;transform-origin:left center;transform:rotate(-17deg) scaleX(0);background:linear-gradient(90deg,#65ddff,transparent);box-shadow:0 0 22px #65ddff;opacity:.8}.rescue-scene.travel .rescue-signal-halo{animation:rescueTravel 2s ease-in-out infinite}.rescue-scene.travel .rescue-pulse-line{animation:rescueBeam 2s ease-in-out infinite}.rescue-scene.blackout{background:#010307f9}.rescue-scene.blackout .rescue-signal-halo{border-color:#16242d;box-shadow:none}.rescue-scene.blackout .rescue-signal-halo i{background:#091219;box-shadow:none}.rescue-scene.blackout .rescue-big-text{opacity:.28}.rescue-scene.light .rescue-signal-halo{border-color:#466e70;box-shadow:0 0 120px #77e0b215,inset 0 0 110px #77e0b212;animation:rescueAwaken 1s ease-out}.rescue-scene.light .rescue-signal-halo i{width:24px;height:24px;background:#77e0b2;box-shadow:0 0 40px #77e0b2,0 0 90px #77e0b244}.rescue-scene.light .rescue-signal-halo b{color:#dfffee}.rescue-scene.contact{background:radial-gradient(circle at 50% 48%,#10241ff0 0,#06100ef7 42%,#010409fb 100%)}.rescue-scene.contact .rescue-signal-halo{width:min(28vw,260px);height:min(28vw,260px);min-width:170px;min-height:170px;border-color:#77e0b2aa;box-shadow:0 0 120px #77e0b22b,inset 0 0 90px #77e0b212}.rescue-scene.contact .rescue-signal-halo i{width:28px;height:28px;background:#dfffee;box-shadow:0 0 42px #77e0b2,0 0 120px #77e0b244;animation:rescueHeartbeat 1.4s ease-in-out infinite}.rescue-scene.contact .rescue-signal-halo b{color:#dfffee;font-size:30px}.rescue-scene.contact .rescue-big-text{color:#dfffee;animation:rescueWhisper .7s ease-out}.rescue-scene.contact .rescue-small-text{color:#8eb7a7}.rescue-playing .quest-side{filter:brightness(.55);transition:.4s}.rescue-playing .top{filter:brightness(.45);transition:.4s}.rescue-playing .dialogue-dock{z-index:45}.rescue-playing .bottom-nav{opacity:.25;transition:.4s}
@keyframes rescueFadeIn{from{opacity:0}to{opacity:1}}@keyframes rescueRouteDot{50%{transform:scale(1.5);opacity:.45}}@keyframes rescueRing{0%{transform:scale(.72);opacity:.6}100%{transform:scale(1.25);opacity:0}}@keyframes rescueTravel{50%{transform:scale(1.02);box-shadow:0 0 120px #65ddff12,inset 0 0 90px #65ddff09}}@keyframes rescueBeam{0%,15%{transform:rotate(-17deg) scaleX(0);opacity:0}35%{opacity:.9}80%{transform:rotate(-17deg) scaleX(1);opacity:.35}100%{transform:rotate(-17deg) scaleX(1.12);opacity:0}}@keyframes rescueAwaken{0%{transform:scale(.78);opacity:.25;filter:brightness(.3)}55%{transform:scale(1.06);opacity:1;filter:brightness(1.5)}100%{transform:scale(1);filter:brightness(1)}}@keyframes rescueHeartbeat{0%,100%{transform:scale(.9);opacity:.72}45%{transform:scale(1.18);opacity:1}65%{transform:scale(.98)}}@keyframes rescueWhisper{from{opacity:0;transform:translateY(7px);filter:blur(5px)}to{opacity:1;transform:none;filter:none}}
@media(max-width:700px){.rescue-route-line{top:16px;font-size:7px}.rescue-signal-halo{min-width:155px;min-height:155px;width:52vw;height:52vw}.rescue-big-text{font-size:18px}.rescue-small-text{font-size:10px;padding:0 20px}.rescue-scene.contact .rescue-signal-halo{min-width:145px;min-height:145px;width:44vw;height:44vw}}

/* ECHO//NULL 3.2 — память показывается как событие, а не как объяснение */
.memory-flash{position:fixed;inset:0;z-index:75;display:grid;place-items:center;pointer-events:none;overflow:hidden;background:#020407f8;animation:memoryFlashIn .35s ease-out}.memory-flash.hidden{display:none}.memory-noise{position:absolute;inset:0;opacity:.18;background:repeating-linear-gradient(0deg,transparent 0 3px,#dffaff0b 4px 5px),radial-gradient(circle at 50% 50%,#65ddff10,transparent 48%);mix-blend-mode:screen}.memory-window{position:relative;width:min(44vw,460px);height:min(52vh,480px);min-width:240px;min-height:270px;display:grid;place-items:center;border:1px solid #456273;border-radius:8px;background:linear-gradient(180deg,#142a32,#071117 64%,#04080c);box-shadow:0 0 120px #77e0b20d,inset 0 0 80px #77e0b210;transform:perspective(900px) rotateX(1deg);overflow:hidden}.memory-window:before{content:'';position:absolute;inset:12% 18%;background:linear-gradient(180deg,#f2c48d55,#77e0b211 58%,transparent);filter:blur(12px);opacity:0;transition:opacity .5s}.memory-window:after{content:'';position:absolute;left:50%;top:-12%;width:1px;height:124%;background:#dffaff28;box-shadow:0 0 28px #dffaff18}.memory-person{position:absolute;bottom:-6%;left:39%;width:21%;height:48%;border-radius:48% 48% 20% 20%;background:#05090d;box-shadow:0 0 0 1px #233d47;transform:translateY(25px);opacity:.05}.memory-person:before{content:'';position:absolute;left:24%;top:-22%;width:52%;aspect-ratio:1;border-radius:50%;background:#05090d;box-shadow:0 0 0 1px #233d47}.memory-hand{position:absolute;right:16%;top:46%;width:24%;height:4px;background:#d8f7ed44;transform:rotate(-13deg) translateX(40px);transform-origin:right center;opacity:.05;box-shadow:0 0 20px #77e0b244}.memory-window b{position:relative;z-index:2;font-size:54px;font-weight:300;color:#36535e;opacity:.35}.memory-flash-copy{position:absolute;left:50%;bottom:11vh;transform:translateX(-50%);display:grid;gap:5px;text-align:center;text-transform:uppercase;letter-spacing:.18em}.memory-flash-copy span{font-size:8px;color:#668695;font-weight:950}.memory-flash-copy strong{font-size:clamp(15px,2vw,22px);color:#dff8f2;font-weight:950;text-shadow:0 0 30px #77e0b233}.memory-flash.window{background:radial-gradient(circle at 50% 45%,#17302cf4 0,#06100ff8 44%,#010307fc 100%)}.memory-flash.window .memory-window:before{opacity:.9}.memory-flash.window .memory-person{opacity:.8;transform:none;transition:.6s}.memory-flash.window .memory-hand{opacity:.65;transform:rotate(-13deg) translateX(0);transition:.65s .12s}.memory-flash.window .memory-window{animation:memoryWindowWake 1.15s ease-out}.memory-flash.window .memory-flash-copy strong{color:#eafcf2}.memory-flash.fracture{background:#030607fa}.memory-flash.fracture .memory-window{filter:contrast(1.35) saturate(.8);animation:memoryFracture .9s ease-out}.memory-flash.fracture .memory-window:before{opacity:.55;transform:translateX(8px)}.memory-flash.fracture .memory-person{opacity:.35;transform:translateX(-7px)}.memory-flash.fracture .memory-hand{opacity:.9;transform:rotate(-13deg) translateX(-6px)}.memory-flash.fracture .memory-window:after{box-shadow:0 0 30px #ef727c33}.memory-flash.after{animation:memoryFade .7s ease-in forwards}.memory-flash.after .memory-window,.memory-flash.after .memory-flash-copy{opacity:0;transition:.65s}.memory-flash-playing .top,.memory-flash-playing .quest-side,.memory-flash-playing .dialogue-dock,.memory-flash-playing .bottom-nav{filter:brightness(.22);transition:.4s}.memory-flash-playing .dialogue-dock{z-index:76}.memory-flash-playing .core-card{filter:brightness(.2);transition:.4s}
@keyframes memoryFlashIn{from{opacity:0}to{opacity:1}}@keyframes memoryWindowWake{0%{transform:perspective(900px) rotateX(1deg) scale(.92);filter:brightness(.45)}35%{filter:brightness(1.5)}100%{transform:perspective(900px) rotateX(1deg) scale(1);filter:brightness(1)}}@keyframes memoryFracture{0%,100%{transform:perspective(900px) rotateX(1deg) translateX(0)}18%{transform:perspective(900px) rotateX(1deg) translateX(-5px)}28%{transform:perspective(900px) rotateX(1deg) translateX(6px)}45%{transform:perspective(900px) rotateX(1deg) translateX(-3px)}65%{transform:perspective(900px) rotateX(1deg) translateX(2px)}}@keyframes memoryFade{to{opacity:0}}
@media(max-width:700px){.memory-window{width:72vw;height:54vh;min-width:210px;min-height:250px}.memory-flash-copy{bottom:14vh}.memory-flash-copy strong{font-size:16px}.memory-person{left:34%;width:28%}.memory-hand{right:9%;width:31%}}

/* 3.3 — evidence scene: show the contradiction instead of explaining it */
.evidence-scene{position:fixed;inset:0;z-index:82;display:grid;place-items:center;overflow:hidden;background:#010307fa;animation:evidenceIn .35s ease-out;pointer-events:none}.evidence-scene.hidden{display:none}.evidence-noise{position:absolute;inset:0;opacity:.12;background:repeating-linear-gradient(0deg,transparent 0 4px,#dffaff08 5px 6px),radial-gradient(circle at 50% 50%,#65ddff10,transparent 55%);mix-blend-mode:screen}.evidence-frame{position:relative;width:min(760px,84vw);height:min(620px,76vh);border:1px solid #294957;border-radius:8px;background:linear-gradient(180deg,#08131b,#03080d 75%);box-shadow:0 30px 120px #000d,inset 0 0 90px #65ddff08;overflow:hidden}.evidence-top{position:absolute;left:18px;right:18px;top:14px;display:flex;justify-content:space-between;gap:12px;color:#668797;font-size:9px;letter-spacing:.18em;font-weight:950}.evidence-top b{color:#b9eaf5}.evidence-time{position:absolute;left:20px;top:43px;color:#496a78;font:10px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.08em}.evidence-room{position:absolute;inset:80px 28px 55px;perspective:900px;overflow:hidden;background:radial-gradient(circle at 50% 35%,#17303b33,transparent 44%),linear-gradient(180deg,#0a151d,#020609)}.evidence-room:before{content:'';position:absolute;left:50%;top:0;bottom:0;width:1px;background:#8fdff20d;box-shadow:0 0 50px #65ddff08}.evidence-console{position:absolute;left:18%;right:18%;bottom:13%;height:16%;border:1px solid #284957;background:linear-gradient(180deg,#0b1a23,#061018);transform:perspective(500px) rotateX(12deg);box-shadow:0 15px 40px #000a}.evidence-console:before{content:'7F-214';position:absolute;left:9%;top:25%;font:11px ui-monospace,SFMono-Regular,Menlo,monospace;color:#4b7a89;letter-spacing:.12em}.evidence-seat{position:absolute;left:39%;bottom:23%;width:22%;height:28%;border:1px solid #1d3541;border-radius:45% 45% 8% 8%;opacity:.28}.evidence-person{position:absolute;left:43%;bottom:28%;width:14%;height:29%;background:#010307;border-radius:45% 45% 15% 15%;opacity:.05;box-shadow:0 0 0 1px #38535d}.evidence-person:before{content:'';position:absolute;left:22%;top:-22%;width:56%;aspect-ratio:1;border-radius:50%;background:#010307;box-shadow:0 0 0 1px #38535d}.evidence-hand{position:absolute;left:51%;bottom:34%;width:17%;height:5px;background:#9bd8df33;transform:rotate(8deg);transform-origin:left center;opacity:.05;box-shadow:0 0 18px #65ddff1c}.evidence-button{position:absolute;left:63%;bottom:30%;width:11px;height:11px;border-radius:50%;background:#152c35;box-shadow:0 0 0 #65ddff00}.evidence-caption{position:absolute;left:0;right:0;bottom:19px;text-align:center;color:#7897a4;font-size:9px;letter-spacing:.2em;font-weight:950}.evidence-scene.record .evidence-person{opacity:.55;transition:.8s}.evidence-scene.record .evidence-hand{opacity:.38;transform:rotate(8deg) translateX(0);transition:.9s .2s}.evidence-scene.record .evidence-button{background:#65ddff;box-shadow:0 0 28px #65ddff;animation:evidenceButton 1.1s ease-in-out infinite}.evidence-scene.glitch .evidence-frame{filter:contrast(1.25) saturate(.75);animation:evidenceGlitch .8s steps(2,end)}.evidence-scene.glitch .evidence-room:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent 0 46%,#ef727c0c 47% 48%,transparent 49% 100%);mix-blend-mode:screen}.evidence-scene.hand .evidence-person{opacity:.18;transform:translateX(-8px);transition:.5s}.evidence-scene.hand .evidence-hand{opacity:.9;transform:rotate(8deg) translateX(0);transition:.45s}.evidence-scene.hand .evidence-button{background:#eafcff;box-shadow:0 0 42px #65ddff,0 0 100px #65ddff33}.evidence-scene.hand .evidence-caption{color:#dffaff;animation:evidenceCaption .5s ease-out}.evidence-scene.after{animation:evidenceOut .65s ease-in forwards}.evidence-scene.after .evidence-frame{opacity:0;transform:scale(.985);transition:.55s}@keyframes evidenceIn{from{opacity:0}to{opacity:1}}@keyframes evidenceOut{to{opacity:0}}@keyframes evidenceButton{50%{transform:scale(1.35);box-shadow:0 0 42px #65ddff}}@keyframes evidenceGlitch{0%,100%{transform:translate(0)}25%{transform:translate(2px,-1px)}50%{transform:translate(-2px,1px)}75%{transform:translate(1px,1px)}}@keyframes evidenceCaption{from{opacity:.2;letter-spacing:.35em}to{opacity:1;letter-spacing:.2em}}@media(max-width:700px){.evidence-frame{width:92vw;height:72vh}.evidence-room{inset:80px 12px 52px}.evidence-console{left:8%;right:8%}.evidence-seat{left:34%;width:32%}.evidence-person{left:39%;width:22%}.evidence-hand{left:54%;width:28%}}body:has(.evidence-scene:not(.hidden)) .top,body:has(.evidence-scene:not(.hidden)) .quest-side,body:has(.evidence-scene:not(.hidden)) .dialogue-dock,body:has(.evidence-scene:not(.hidden)) .bottom-nav{filter:brightness(.12);transition:.4s}

/* ECHO//NULL 3.4 — тёплая пауза после первого спасения */
.home-scene{position:fixed;inset:0;z-index:88;display:grid;place-items:center;overflow:hidden;background:radial-gradient(circle at 50% 48%,#1a2b2af2 0,#091313f8 42%,#020609fc 100%);animation:homeIn .6s ease-out;pointer-events:none}
.home-scene.hidden{display:none}
.home-stars{position:absolute;inset:0;opacity:.35;background-image:radial-gradient(circle at 18% 24%,#dfffee55 0 1px,transparent 2px),radial-gradient(circle at 72% 32%,#77e0b233 0 1px,transparent 2px),radial-gradient(circle at 61% 76%,#65ddff22 0 1px,transparent 2px),radial-gradient(circle at 31% 68%,#f2c48d33 0 1px,transparent 2px);background-size:210px 190px,260px 220px,310px 260px,240px 230px;animation:homeDrift 18s linear infinite}
.home-room{position:relative;width:min(700px,86vw);height:min(620px,76vh);display:grid;place-items:center;border:1px solid #315449aa;border-radius:30px;background:linear-gradient(180deg,#0d1b1b99,#050b0de8 74%);box-shadow:0 35px 130px #000d,inset 0 0 120px #77e0b20a;overflow:hidden}
.home-room:before{content:'';position:absolute;inset:10%;border:1px solid #77e0b214;border-radius:50%;transform:rotate(7deg);box-shadow:0 0 90px #77e0b20b}
.home-orbit{position:absolute;width:min(480px,60vw);aspect-ratio:1;border:1px solid #365c56aa;border-radius:50%;box-shadow:0 0 100px #77e0b211,inset 0 0 80px #77e0b208;animation:homeOrbit 12s linear infinite}
.home-orbit:before,.home-orbit:after{content:'';position:absolute;border-radius:50%;border:1px solid #77e0b216;inset:12%}.home-orbit:after{inset:29%;border-color:#f2c48d18}
.home-heart{position:relative;width:110px;height:110px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle,#e8fff4 0 2%,#77e0b2 3% 10%,#17342d 11% 48%,transparent 49%);box-shadow:0 0 40px #77e0b244,0 0 110px #77e0b20f;animation:homeHeartbeat 2.2s ease-in-out infinite}
.home-heart:before,.home-heart:after{content:'';position:absolute;border:1px solid #77e0b255;border-radius:50%;inset:-16px;animation:homeRipple 2.2s ease-out infinite}.home-heart:after{inset:-34px;animation-delay:.35s;opacity:.55}
.home-heart span{width:10px;height:10px;border-radius:50%;background:#f3fff9;box-shadow:0 0 30px #dfffee,0 0 70px #77e0b2}
.home-lights{position:absolute;left:18%;right:18%;top:18%;display:flex;justify-content:space-between;z-index:2}.home-lights i{width:12px;height:12px;border-radius:50%;background:#22343a;border:1px solid #3a4e55;box-shadow:0 0 0 transparent}.home-lights i.on{background:#77e0b2;border-color:#9df0cb;box-shadow:0 0 24px #77e0b288}.home-lights i:nth-child(2).on{animation:homeLight 2.8s ease-in-out infinite .4s}.home-lights i:nth-child(1).on{animation:homeLight 2.8s ease-in-out infinite}
.home-caption{position:absolute;bottom:9%;left:0;right:0;display:grid;gap:7px;text-align:center;text-transform:uppercase;letter-spacing:.16em}.home-caption span{font-size:9px;color:#76968e;font-weight:950}.home-caption strong{font-size:clamp(17px,2.6vw,28px);color:#e9fff4;font-weight:850;text-shadow:0 0 30px #77e0b233}
.home-scene.settle .home-heart{animation-duration:3s}.home-scene.message .home-heart{animation-duration:1.6s;box-shadow:0 0 55px #77e0b266,0 0 130px #77e0b216}.home-scene.message .home-caption strong{animation:homeTextIn .7s ease-out}.home-scene.service{background:radial-gradient(circle at 50% 50%,#102b31f5 0,#061116fa 50%,#010407fc 100%)}.home-scene.service .home-heart{background:radial-gradient(circle,#eafcff 0 2%,#65ddff 3% 10%,#102c36 11% 48%,transparent 49%);box-shadow:0 0 55px #65ddff44}.home-scene.service .home-orbit{border-color:#3f6e80aa;animation-duration:5s}.home-scene.service-open .home-heart{background:radial-gradient(circle,#effff8 0 3%,#77e0b2 4% 13%,#17362f 14% 48%,transparent 49%);animation:serviceOpen .9s ease-out}.home-scene.service-open .home-lights i:nth-child(3){background:#77e0b2;border-color:#9df0cb;box-shadow:0 0 24px #77e0b288;animation:homeLight 1.3s ease-in-out infinite}.home-scene.service-open .home-caption strong{color:#dfffee}
.home-scene-playing .top,.home-scene-playing .quest-side,.home-scene-playing .dialogue-dock,.home-scene-playing .bottom-nav{filter:brightness(.2);transition:.45s}.home-scene-playing .game-main{filter:brightness(.22);transition:.45s}.home-scene-playing .dialogue-dock{z-index:89}
@keyframes homeIn{from{opacity:0;filter:blur(4px)}to{opacity:1;filter:none}}@keyframes homeDrift{to{transform:translate3d(18px,-12px,0)}}@keyframes homeOrbit{to{transform:rotate(360deg)}}@keyframes homeHeartbeat{0%,100%{transform:scale(.96);filter:brightness(.9)}45%{transform:scale(1.04);filter:brightness(1.25)}}@keyframes homeRipple{0%{transform:scale(.75);opacity:.55}100%{transform:scale(1.4);opacity:0}}@keyframes homeLight{50%{transform:scale(1.45);filter:brightness(1.4)}}@keyframes homeTextIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes serviceOpen{0%{transform:scale(.72);filter:brightness(.7)}50%{transform:scale(1.16);filter:brightness(1.7)}100%{transform:scale(1);filter:brightness(1)}}
@media(max-width:560px){.home-room{width:94vw;height:72vh;border-radius:22px}.home-orbit{width:68vw}.home-heart{width:82px;height:82px}.home-lights{left:14%;right:14%;top:16%}.home-caption{bottom:8%}.home-caption strong{font-size:18px}}
body.home-scene-playing .core-card{filter:brightness(.18);transition:.45s}

/* ECHO//NULL 3.4.2 — режиссёрский/голосовой фикс
   Никаких бесконечных миганий и никакого page-scroll: внимание меняется только на событии. */
html,body{width:100%;height:100%;overflow:hidden;overscroll-behavior:none;scroll-behavior:auto}
body{padding:8px 8px 64px}
#app{height:100%;min-height:0;overflow:hidden}
.game-shell{height:calc(100dvh - 130px);min-height:0;overflow:hidden}
.game-main,.game-main main,.screen,.hero-grid{height:100%;min-height:0;overflow:hidden}
.core-card{min-height:0;height:100%}
.core-card #pulseBtn.first-action{animation:attentionOnce .72s ease-out 1;}
.first-cycle .quest-side .quest-card{min-height:0}
.first-cycle .dialogue-dock{opacity:1}
.first-cycle .dialogue-dock .observer-chat{border-color:#315c73;box-shadow:0 18px 50px #0009}
.first-cycle .core-card:after{animation:none;opacity:.08}
.has-awakened .core-card:after{animation:none;opacity:.06}
.core-orbit .orbit{animation-duration:28s}
.core-orbit .o2{animation-duration:38s}
.core-orbit .o3{animation-duration:48s}
.first-cycle .core-orbit:after{animation:none;opacity:.2}
.dialogue-waiting .quest-side .quest-card:after{animation:none;content:'ОТВЕТЬ';color:#65ddff;opacity:.9}
.dialogue-waiting .dialogue-choices button:last-child{box-shadow:0 0 0 1px #65ddff18}
.opening-scanlines{display:none}
.opening-vignette{animation:none}
.opening-eye{animation:openingEyeStill 2.8s ease-in-out infinite}
.opening-eye:before{animation:none}
.opening-eye b{animation:none}
.opening-copy p{display:none}
.opening-copy h1{font-size:clamp(52px,8vw,104px);margin:0}
.opening-mark{letter-spacing:.18em;color:#5d8190}
.opening-pulse{min-height:72px;font-size:16px}
@keyframes openingEyeStill{50%{transform:scale(1.012);box-shadow:0 0 100px #65ddff16,inset 0 0 80px #65ddff08}}
@keyframes attentionOnce{0%{transform:translateY(0);box-shadow:0 0 0 #65ddff00}35%{transform:translateY(-1px);border-color:#65ddff;box-shadow:0 0 38px #65ddff20}100%{transform:none;box-shadow:0 0 0 #65ddff00}}
@media(max-width:900px){
  body{padding:4px 4px 60px}
  .game-shell{height:calc(100dvh - 112px);display:grid;grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr) auto;gap:6px}
  .dialogue-dock{max-height:138px;min-height:0}
  .dock-card{max-height:138px}
  .game-main{height:auto;min-height:0}
  .hero-grid{height:100%}
  .core-card{height:100%;padding:8px}
  .core-orbit{width:min(42vh,230px);height:min(42vh,230px)}
  .quest-side{max-height:118px;min-height:0}
  .quest-side .quest-card{min-height:0;height:100%;padding:9px 11px}
  .quest-side .quest-card h1{font-size:16px}
  .quest-side .quest-card p{font-size:9px}
  .quest-side .goal-cta{min-height:42px;margin-top:7px}
}
@media(max-width:560px){
  .game-shell{height:calc(100dvh - 106px)}
  .dialogue-dock,.dock-card{max-height:128px}
  .quest-side{max-height:112px}
  .quest-side .quest-card h1{font-size:15px}
  .core-orbit{width:min(38vh,200px);height:min(38vh,200px)}
  .opening-frame{height:90vh}
  .opening-copy h1{font-size:clamp(44px,13vw,72px)}
  .opening-pulse{min-height:60px;font-size:14px}
}


/* ECHO//NULL 3.4.3 — attention, discoverability, no blink */
button{animation:none!important}
.first-cycle .game-shell{grid-template-columns:1fr;grid-template-rows:1fr;display:grid}
.first-cycle .dialogue-dock,.first-cycle .quest-side{display:none!important}
.first-cycle .game-main{grid-column:1;grid-row:1;display:block}
.first-cycle .hero-grid{grid-template-columns:1fr}
.first-cycle .core-card{width:min(980px,100%);margin:0 auto;min-height:0;height:100%;border-color:#2f566b;box-shadow:0 24px 100px #000a,inset 0 0 120px #65ddff06}
.first-cycle .core-orbit{width:min(54vh,430px);height:min(54vh,430px)}
.first-cycle .core-card #pulseBtn.first-action{animation:none!important;box-shadow:0 0 30px #65ddff10,inset 0 0 22px #65ddff05}
.core-orbit .orbit,.core-orbit .o2,.core-orbit .o3,.core-orbit:before{animation:none!important;transform:none!important}
.core-orbit:after{animation:none!important}
.core-card:after,.has-awakened .core-card:after{animation:none!important}
.scan-btn:not(:disabled),.map-node.selected:after,.dialogue-waiting .quest-side .quest-card:after,.observer-chat.needs-answer .voice-btn{animation:none!important}
.opening-vignette,.opening-eye,.opening-eye:before,.opening-eye i,.opening-eye b{animation:none!important}
.opening-eye i{box-shadow:0 0 50px #65ddff22}
.opening-eye b{opacity:.95}
.opening-pulse{animation:none!important}
.dialogue-waiting .quest-side .quest-card:after{content:'ОТВЕТЬ';opacity:.9}

.perception-lens{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(300px,58%);padding:13px 15px;border:1px solid #3a6d80;border-radius:13px;background:#06111be8;backdrop-filter:blur(8px);display:grid;grid-template-columns:auto 1fr;gap:2px 12px;z-index:8;pointer-events:none;box-shadow:0 20px 60px #0009,inset 0 0 30px #65ddff06}
.perception-lens.hidden{display:none}
.perception-lens span{font-size:8px;letter-spacing:.18em;color:#6da0b1;font-weight:950}
.perception-lens b{font:700 12px ui-monospace,SFMono-Regular,Menlo,monospace;color:#dffaff;text-align:right;letter-spacing:.18em}
.perception-lens small{grid-column:1/-1;color:#7894a2;font-size:9px}
.perception-lens.flash{animation:perceptionIn .35s ease-out 1!important}
@keyframes perceptionIn{from{opacity:0;transform:translate(-50%,-50%) scale(.94)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}

/* A compact RPG-like task card: visible, but never the dominant canvas. */
.quest-side .quest-card{min-height:0!important;height:auto!important;padding:18px!important}
.quest-side .quest-card h1{font-size:24px!important;line-height:1.04!important;max-width:280px}
.quest-side .quest-card p{max-width:285px}
.quest-side .quest-note{margin-top:10px}
.dialogue-dock{pointer-events:none}
.dialogue-dock .dock-card,.dialogue-dock .observer-chat,.dialogue-dock button{pointer-events:auto}
.chat-bubble.latest{box-shadow:0 0 26px #65ddff0b}

@media(max-width:900px){
 .first-cycle .game-shell{grid-template-columns:1fr;grid-template-rows:1fr}
 .first-cycle .dialogue-dock,.first-cycle .quest-side{display:none!important}
 .first-cycle .core-orbit{width:min(54vh,340px);height:min(54vh,340px)}
}
@media(max-width:560px){
 .first-cycle .core-orbit{width:min(54vh,270px);height:min(54vh,270px)}
 .perception-lens{width:min(280px,72%)}
}

/* aka-gst.ru: «НА САЙТ» — ссылка, область нажатия не меньше 44 (свод, правило 29б) */
.site-home{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;text-decoration:none;white-space:nowrap}
/* Заставка (z 120) накрывает шапку, поэтому у неё своя дверь в углу рамки: до первого импульса выйти тоже можно */
.opening-home{position:absolute;top:14px;right:16px;z-index:2}
