*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
:root{
--bg-deep:#0d0a07;
--concrete-1:#1e1c1a;--concrete-2:#1a1816;--concrete-3:#222019;
--yellow-1:#B8960B;--yellow-2:#8B7500;
--blood-1:#6B0000;--blood-glow:rgba(180,30,25,0.35);
--bone-1:#C8C0B0;--bone-2:#A89E8E;
--amber:#c9a227;--phosphor:#d4b87a;
--panel:#141210;--panel-edge:#3a3530;
--font-heading:'Bebas Neue',sans-serif;
--font-body:'Special Elite',cursive;
--font-mono:'Share Tech Mono',monospace;
}
html,body.bunker-terminal-body{
position:fixed;
inset:0;
width:100%;
height:100%;
overflow:hidden;
overscroll-behavior:none;
background:var(--bg-deep);
color:var(--bone-1);
font-family:var(--font-mono);
-webkit-text-size-adjust:100%;
}
.term-env{
position:fixed;
inset:0;
display:flex;
flex-direction:column;
width:100%;
height:100svh;
height:100dvh;
max-height:100svh;
max-height:100dvh;
overflow:hidden;
--term-cart-row-h:42px;
--term-cart-gap:5px;
--term-cart-pad:8px;
--term-cart-area-h:calc(var(--term-cart-row-h) * 2 + var(--term-cart-gap) + var(--term-cart-pad));
--term-dock-h:calc(var(--term-cart-area-h) + 4.5rem);
background:
radial-gradient(ellipse 80% 50% at 50% 0%,rgba(107,0,0,0.12) 0%,transparent 55%),
radial-gradient(ellipse 60% 40% at 10% 90%,rgba(184,150,11,0.06) 0%,transparent 50%),
linear-gradient(180deg,#0a0806 0%,var(--bg-deep) 40%,#110e0b 100%);
}
.term-env::before{
content:"";
position:absolute;inset:0;pointer-events:none;z-index:1;
background:
repeating-radial-gradient(circle at 47% 53%,rgba(255,255,255,0.015) 0 1px,transparent 1px 4px),
repeating-linear-gradient(0deg,rgba(0,0,0,0.12) 0 2px,transparent 2px 4px);
opacity:0.55;
}
.term-flicker{
position:absolute;inset:0;pointer-events:none;z-index:2;
background:rgba(8,10,14,0.05);
animation:termFlicker 7s ease-in-out infinite;
}
@keyframes termFlicker{
0%,100%{opacity:0.05;}
40%{opacity:0;}
62%{opacity:0.08;}
}
.term-vignette{
position:absolute;inset:0;pointer-events:none;z-index:3;
box-shadow:inset 0 0 120px 40px rgba(0,0,0,0.65);
}
.term-header{
position:relative;z-index:10;
flex:0 0 auto;
display:flex;align-items:stretch;
flex-wrap:nowrap;
min-height:42px;
max-height:42px;
flex-shrink:0;
overflow:hidden;
border-bottom:2px solid var(--panel-edge);
background:linear-gradient(180deg,#1a1512 0%,var(--panel) 100%);
box-shadow:0 4px 24px rgba(0,0,0,0.45);
}
.term-stencil{
flex:0 0 auto;
display:flex;align-items:center;
padding:0 14px;
font-family:var(--font-heading);
font-size:1.15rem;
letter-spacing:4px;
color:var(--yellow-1);
border-right:1px solid var(--panel-edge);
background:rgba(107,0,0,0.25);
}
.term-ticker-wrap{
flex:1;overflow:hidden;position:relative;
display:flex;align-items:center;
}
.term-ticker{
display:flex;white-space:nowrap;
animation:termTicker 42s linear infinite;
font-size:0.72rem;
letter-spacing:2px;
color:var(--phosphor);
text-transform:uppercase;
}
.term-ticker span{padding:0 48px;}
@keyframes termTicker{
0%{transform:translateX(0);}
100%{transform:translateX(-50%);}
}
.term-header-actions{
flex:0 0 auto;
display:flex;align-items:center;gap:8px;
padding:0 10px;
border-left:1px solid var(--panel-edge);
}
.term-btn{
font-family:var(--font-mono);
font-size:0.65rem;
letter-spacing:1px;
text-transform:uppercase;
padding:8px 12px;
border:1px solid var(--panel-edge);
background:rgba(13,10,7,0.9);
color:var(--bone-2);
cursor:pointer;
transition:color 0.15s,border-color 0.15s,background 0.15s;
}
.term-btn:hover,.term-btn:focus-visible{
color:var(--yellow-1);
border-color:rgba(184,150,11,0.5);
outline:none;
}
.term-btn.is-on{
color:var(--phosphor);
border-color:rgba(201,162,39,0.55);
box-shadow:0 0 12px rgba(184,150,11,0.15);
}
.term-surface-link{
text-decoration:none;
color:var(--phosphor);
border-color:rgba(212,184,122,0.55);
background:rgba(107,0,0,0.22);
text-shadow:0 0 12px rgba(212,184,122,0.35);
}
.term-surface-link:hover,
.term-surface-link:focus-visible{
color:#ffe8c8;
border-color:rgba(255,160,90,0.65);
background:rgba(107,0,0,0.38);
box-shadow:0 0 14px var(--blood-glow);
outline:none;
}
.term-body{
position:relative;z-index:10;
flex:1 1 auto;
min-height:0;
display:flex;
flex-direction:column;
overflow:hidden;
}
.term-workspace{
flex:1 1 auto;
min-height:0;
min-width:0;
display:grid;
grid-template-columns:minmax(0,188px) minmax(0,1fr) minmax(0,188px);
gap:5px;
padding:4px 6px;
overflow:hidden;
}
.term-workspace > *{min-width:0;min-height:0;}
.term-wing{
display:flex;
flex-direction:column;
gap:5px;
min-height:0;
min-width:0;
overflow:hidden;
}
.term-wing-left .term-panel-systems{flex:0 0 auto;}
.term-wing-left .term-panel-map{
flex:1 1 auto;
min-height:0;
display:flex;
flex-direction:column;
overflow:hidden;
}
.term-wing-left .term-sector-map{flex:0 0 auto;}
.term-wing-center{
min-width:0;
overflow:hidden;
}
.term-wing-right .term-panel-cams{
flex:1 1 auto;
min-height:0;
display:flex;
flex-direction:column;
overflow:hidden;
}
.term-wing-right .term-cam-grid{flex:0 0 auto;}
.term-panel{
background:rgba(10,8,6,0.82);
border:1px solid var(--panel-edge);
box-shadow:inset 0 0 24px rgba(0,0,0,0.35);
padding:6px 8px;
min-height:0;
overflow:hidden;
}
.term-panel-label{
font-family:var(--font-heading);
font-size:0.72rem;
letter-spacing:3px;
color:var(--yellow-1);
margin-bottom:8px;
padding-bottom:4px;
border-bottom:1px solid var(--panel-edge);
}
.term-panel-sublabel{
font-size:0.5rem;
letter-spacing:2px;
color:var(--bone-2);
margin:8px 0 4px;
text-transform:uppercase;
}
.term-panel-mainframe{
flex:1 1 auto;
display:flex;
flex-direction:column;
min-height:0;
padding:8px;
}
.term-panel-mainframe .term-bezel{
flex:1 1 auto;
min-height:0;
}
.term-panel-mainframe .term-bezel::before{content:none;}
.term-sector-map{
display:grid;
grid-template-columns:repeat(4,minmax(0,1fr));
gap:3px;
}
.term-sector-cell{
min-height:26px;
display:flex;
flex-direction:column;
align-items:center;
justify-content:center;
border:1px solid rgba(58,53,48,0.9);
background:rgba(0,0,0,0.45);
font-size:0.48rem;
letter-spacing:1px;
color:rgba(168,158,142,0.45);
text-transform:uppercase;
transition:border-color 0.35s,background 0.35s,color 0.35s,box-shadow 0.35s;
position:relative;
overflow:hidden;
}
.term-sector-cell .term-sector-sym{
font-family:var(--font-heading);
font-size:0.85rem;
line-height:1;
color:inherit;
opacity:0.5;
}
.term-sector-cell .term-sector-name{
margin-top:2px;
font-size:0.42rem;
max-width:100%;
overflow:hidden;
text-overflow:ellipsis;
white-space:nowrap;
padding:0 2px;
}
.term-sector-cell.is-live{
color:#b8d4a8;
border-color:rgba(139,180,120,0.55);
background:rgba(20,40,18,0.55);
box-shadow:0 0 12px rgba(139,180,120,0.12);
}
.term-sector-cell.is-live .term-sector-sym{
opacity:1;
color:#c8e8b0;
text-shadow:0 0 8px rgba(139,180,120,0.4);
}
.term-sector-cell.is-pulse{
animation:sectorPulse 1.2s ease-out;
}
@keyframes sectorPulse{
0%{box-shadow:0 0 0 0 rgba(201,162,39,0.5);}
70%{box-shadow:0 0 18px 4px rgba(201,162,39,0.25);}
100%{box-shadow:0 0 12px rgba(139,180,120,0.12);}
}
.term-frag-bar{
display:flex;
gap:6px;
}
.term-frag-slot{
flex:1;
text-align:center;
padding:6px 4px;
border:1px dashed rgba(58,53,48,0.9);
font-size:0.58rem;
letter-spacing:2px;
color:rgba(168,158,142,0.35);
}
.term-frag-slot:not(.is-captured){
letter-spacing:0;
font-size:0.72rem;
}
.term-frag-slot.is-captured{
border-style:solid;
border-color:rgba(184,150,11,0.55);
color:var(--phosphor);
background:rgba(184,150,11,0.08);
box-shadow:0 0 10px rgba(184,150,11,0.12);
}
.term-frag-slot.is-pulse{
animation:sectorPulse 1.1s ease-out;
}
.term-file-zero{
margin-top:8px;
padding:6px;
text-align:center;
font-family:var(--font-heading);
font-size:0.7rem;
letter-spacing:4px;
color:transparent;
border:1px solid transparent;
opacity:0;
transform:scale(0.96);
transition:opacity 0.5s,transform 0.5s,color 0.5s,border-color 0.5s,box-shadow 0.5s;
}
.term-file-zero.is-revealed{
opacity:1;
transform:scale(1);
color:var(--blood-1);
border-color:rgba(107,0,0,0.65);
background:rgba(107,0,0,0.2);
box-shadow:0 0 20px var(--blood-glow);
animation:fileZeroPulse 3s ease-in-out infinite;
}
@keyframes fileZeroPulse{
0%,100%{box-shadow:0 0 12px rgba(107,0,0,0.25);}
50%{box-shadow:0 0 24px var(--blood-glow);}
}
.term-cam-grid{
display:grid;
grid-template-columns:repeat(2,minmax(0,1fr));
gap:4px;
}
.term-cam-feed{
height:clamp(44px,8vh,62px);
position:relative;
border:1px solid var(--panel-edge);
background:#0a0908;
overflow:hidden;
}
.term-cam-feed::before{
content:"";
position:absolute;inset:0;
background:repeating-linear-gradient(0deg,rgba(255,255,255,0.04) 0 1px,transparent 1px 3px);
pointer-events:none;
z-index:2;
}
.term-cam-feed::after{
content:"NO SIGNAL";
position:absolute;inset:0;
display:flex;align-items:center;justify-content:center;
font-size:0.48rem;letter-spacing:2px;
color:rgba(200,80,70,0.45);
z-index:1;
}
.term-cam-feed.is-live::after{
content:none;
}
.term-cam-feed.is-live{
border-color:rgba(139,180,120,0.45);
box-shadow:inset 0 0 20px rgba(0,0,0,0.6),0 0 8px rgba(139,180,120,0.1);
}
.term-cam-feed.is-live .term-cam-scan{
opacity:1;
}
.term-cam-scan{
position:absolute;inset:0;
opacity:0;
background:
radial-gradient(ellipse 80% 60% at 50% 40%,rgba(139,180,120,0.12) 0%,transparent 70%),
linear-gradient(180deg,rgba(0,0,0,0.2) 0%,transparent 40%,rgba(0,0,0,0.5) 100%);
animation:camScan 5s ease-in-out infinite;
z-index:0;
}
@keyframes camScan{
0%,100%{opacity:0.7;}
50%{opacity:1;}
}
.term-cam-meta{
position:absolute;left:0;right:0;bottom:0;
z-index:3;
padding:3px 5px;
font-size:0.42rem;
letter-spacing:1px;
background:linear-gradient(0deg,rgba(0,0,0,0.85) 0%,transparent 100%);
color:var(--phosphor);
display:flex;justify-content:space-between;
}
.term-cam-feed.is-live .term-cam-meta{color:#b8d4a8;}
.term-cam-rec{
color:#e85a4a;
animation:recBlink 1.2s step-end infinite;
}
@keyframes recBlink{
0%,100%{opacity:1;}
50%{opacity:0.2;}
}
.term-cam-log{
margin-top:6px;
max-height:4.5em;
overflow:hidden;
font-size:0.5rem;
line-height:1.45;
color:var(--bone-2);
}
.term-cam-log-line{margin-bottom:2px;}
.term-cam-log-line.is-new{color:var(--phosphor);}
.term-unlock-flash{
position:fixed;inset:0;z-index:50;
pointer-events:none;
background:radial-gradient(ellipse 60% 50% at 50% 45%,rgba(201,162,39,0.18) 0%,transparent 70%);
opacity:0;
transition:opacity 0.15s ease-out;
}
.term-unlock-flash.is-active{
opacity:1;
animation:unlockFlash 0.65s ease-out forwards;
}
@keyframes unlockFlash{
0%{opacity:0.85;}
100%{opacity:0;}
}
.term-env.is-unlock-pulse .term-panel-systems{
animation:panelPulse 0.8s ease-out;
}
@keyframes panelPulse{
0%{box-shadow:inset 0 0 0 0 rgba(201,162,39,0);}
40%{box-shadow:inset 0 0 24px rgba(201,162,39,0.15);}
100%{box-shadow:inset 0 0 24px rgba(0,0,0,0.35);}
}
.term-panel-archive{
padding:6px 10px 4px;
flex:0 0 auto;
min-height:0;
overflow:visible;
}
.term-stat{
margin-bottom:5px;
font-size:0.64rem;
line-height:1.35;
}
.term-panel-systems .term-stat:last-child{margin-bottom:0;}
.term-stat-label{
display:block;
color:var(--bone-2);
letter-spacing:1px;
font-size:0.58rem;
text-transform:uppercase;
}
.term-stat-value{
color:var(--phosphor);
}
.term-stat-value.warn{color:#e85a4a;}
.term-stat-value.pulse{
animation:termPulse 3s ease-in-out infinite;
}
@keyframes termPulse{
0%,100%{opacity:0.85;}
50%{opacity:1;color:#ff9a8a;}
}
.term-bezel{
flex:1;
display:flex;
flex-direction:column;
min-height:0;
border:3px solid var(--panel-edge);
border-radius:4px;
background:
linear-gradient(145deg,#0c0a08 0%,#161310 50%,#0a0908 100%);
box-shadow:
inset 0 0 40px rgba(0,0,0,0.8),
0 0 0 1px rgba(184,150,11,0.08),
0 8px 32px rgba(0,0,0,0.5);
position:relative;
}
.term-bezel::before{
content:"PRIMARY TERMINAL — NODE 01";
position:absolute;top:6px;right:10px;
font-size:0.5rem;letter-spacing:2px;
color:rgba(184,150,11,0.35);
pointer-events:none;
}
.term-screen{
flex:1 1 auto;
min-height:0;
overflow-x:hidden;
overflow-y:auto;
padding:10px 10px 6px;
font-size:clamp(0.68rem,1.8vw,0.78rem);
line-height:1.45;
color:var(--phosphor);
text-shadow:0 0 8px rgba(201,162,39,0.2);
scrollbar-width:thin;
scrollbar-color:var(--panel-edge) transparent;
}
.term-screen::-webkit-scrollbar{width:5px;}
.term-screen::-webkit-scrollbar-thumb{background:var(--panel-edge);border-radius:2px;}
.term-line{margin-bottom:2px;}
.term-line.dim{color:var(--bone-2);opacity:0.75;}
.term-line.err{color:#e85a4a;}
.term-line.ok{color:#8ab87a;}
.term-line.sys{color:var(--yellow-1);}
.term-input-row{
display:flex;align-items:center;
gap:6px;
}
.term-prompt{
flex:0 0 auto;
color:var(--yellow-1);
font-size:0.78rem;
letter-spacing:1px;
white-space:nowrap;
}
.term-input{
flex:1;
min-width:0;
border:none;
outline:none;
background:transparent;
color:var(--phosphor);
font-family:var(--font-mono);
font-size:16px;
caret-color:var(--yellow-1);
}
.term-dock{
position:relative;
flex:0 0 auto;
z-index:25;
display:flex;
flex-direction:column;
flex-shrink:0;
min-height:var(--term-dock-h);
overflow:visible;
background:linear-gradient(0deg,#0a0806 0%,var(--panel) 100%);
border-top:2px solid var(--yellow-1);
box-shadow:0 -4px 16px rgba(0,0,0,0.45);
padding-bottom:env(safe-area-inset-bottom,0);
}
.term-cartridges{
display:grid;
grid-template-columns:repeat(auto-fill,minmax(min(88px,100%),1fr));
grid-template-rows:repeat(2,var(--term-cart-row-h));
gap:var(--term-cart-gap);
align-content:start;
flex:0 0 auto;
min-height:var(--term-cart-area-h);
height:var(--term-cart-area-h);
flex-shrink:0;
overflow:visible;
padding:4px 2px 6px;
box-sizing:border-box;
}
.term-dock-hint{
flex:0 0 auto;
padding:4px 12px 0;
font-size:0.55rem;
letter-spacing:2px;
text-transform:uppercase;
color:var(--bone-2);
}
.term-dock .term-input-row{
flex:0 0 auto;
border-top:1px solid var(--panel-edge);
background:rgba(0,0,0,0.65);
padding:10px 12px max(10px,calc(8px + env(safe-area-inset-bottom,0)));
}
.term-input{
border:1px solid rgba(184,150,11,0.35);
border-radius:3px;
padding:8px 10px;
background:rgba(0,0,0,0.4);
}
.term-input:focus{
border-color:var(--yellow-1);
box-shadow:0 0 0 2px rgba(184,150,11,0.2);
}
.term-input:disabled{
opacity:0.45;
}
.term-cart{
display:flex;
flex-direction:column;
justify-content:center;
align-items:stretch;
width:100%;
min-width:0;
height:var(--term-cart-row-h);
max-height:var(--term-cart-row-h);
padding:3px 6px;
border:1px solid var(--panel-edge);
box-sizing:border-box;
background:rgba(20,18,16,0.9);
color:var(--bone-2);
cursor:pointer;
text-align:left;
transition:border-color 0.15s,color 0.15s,box-shadow 0.15s;
}
.term-cart-title{
font-size:0.56rem;
letter-spacing:0.5px;
line-height:1.25;
color:inherit;
overflow:hidden;
display:-webkit-box;
-webkit-box-orient:vertical;
-webkit-line-clamp:2;
line-clamp:2;
}
.term-cart.is-open .term-cart-title{color:#b8d4a8;}
.term-cart.is-locked .term-cart-title{
color:var(--bone-2);
letter-spacing:2px;
}
.term-cart:hover,.term-cart:focus-visible{
border-color:rgba(184,150,11,0.45);
color:var(--phosphor);
outline:none;
}
.term-cart.is-locked{
opacity:0.45;
cursor:not-allowed;
}
.term-cart.is-open{
opacity:1;
border-color:rgba(139,180,120,0.9);
background:rgba(24,38,22,0.95);
box-shadow:
0 0 14px rgba(139,180,120,0.28),
inset 0 0 10px rgba(139,180,120,0.1);
}
.term-cart.is-just-unlocked{
animation:cartUnlockPulse 2.2s ease-out;
}
@keyframes cartUnlockPulse{
0%{transform:scale(1);filter:brightness(1);}
12%{transform:scale(1.06);filter:brightness(1.65);border-color:var(--yellow-1);}
45%{transform:scale(1.02);filter:brightness(1.2);}
100%{transform:scale(1);filter:brightness(1);}
}
.term-cart.seal-break{
animation:sealBreak 0.9s ease-out;
}
@keyframes sealBreak{
0%{transform:scale(1);filter:brightness(1);}
15%{transform:scale(1.04);filter:brightness(1.8);border-color:var(--yellow-1);}
40%{transform:scale(0.98);}
100%{transform:scale(1);filter:brightness(1);}
}
.term-ticker-alert{
color:#ff9a8a;
padding:0 32px !important;
}
.term-cart-label{
display:block;
font-size:0.5rem;
letter-spacing:1px;
color:var(--bone-2);
margin-top:3px;
opacity:0.85;
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
}
.term-cart.is-open .term-cart-label{color:#7a9a6a;}
.term-dossier{
position:fixed;top:0;right:0;
width:min(420px,92vw);
height:100dvh;
z-index:100;
background:
linear-gradient(90deg,rgba(0,0,0,0.5) 0%,transparent 12%),
linear-gradient(180deg,#1a1814 0%,#12100e 100%);
border-left:3px solid var(--panel-edge);
box-shadow:-12px 0 48px rgba(0,0,0,0.7);
transform:translateX(100%);
transition:transform 0.35s ease;
display:flex;
flex-direction:column;
pointer-events:none;
}
.term-dossier.is-open{
transform:translateX(0);
pointer-events:auto;
}
.term-dossier-head{
display:flex;align-items:flex-start;
justify-content:space-between;
gap:12px;
padding:16px 14px 10px;
border-bottom:1px solid var(--panel-edge);
}
.term-dossier-head h2{
font-family:var(--font-heading);
font-size:1.2rem;
letter-spacing:2px;
color:var(--yellow-1);
}
.term-dossier-close{
background:none;border:none;
color:var(--bone-2);
font-size:1.4rem;line-height:1;
cursor:pointer;padding:4px 8px;
}
.term-dossier-close:hover{color:var(--phosphor);}
.term-dossier-body{
flex:1;overflow-y:auto;
padding:14px 16px 24px;
font-family:var(--font-body);
font-size:0.88rem;
line-height:1.65;
color:var(--bone-1);
}
.term-dossier-body p{margin-bottom:10px;}
.term-dossier-photo{
margin:16px 0 20px;
border:1px solid var(--panel-edge);
padding:8px;
background:rgba(0,0,0,0.35);
}
.term-dossier-photo img{
display:block;
width:100%;
max-width:420px;
height:auto;
margin:0 auto;
border:1px solid #2b313b;
}
.term-dossier-photo figcaption{
margin-top:8px;
font-size:0.78rem;
letter-spacing:0.04em;
color:var(--phosphor);
text-transform:uppercase;
}
.term-boot{
position:fixed;inset:0;z-index:200;
display:flex;align-items:center;justify-content:center;
background:#050403;
padding:24px;
transition:opacity 0.6s ease,visibility 0.6s;
}
.term-boot.is-done{
opacity:0;visibility:hidden;pointer-events:none;
}
.term-boot-inner{
width:min(520px,100%);
border:2px solid var(--panel-edge);
padding:24px 20px;
background:var(--panel);
box-shadow:0 0 60px rgba(107,0,0,0.2);
}
.term-boot-line{
font-size:0.78rem;
color:var(--phosphor);
margin-bottom:6px;
min-height:1.2em;
}
.term-boot-skip{
margin-top:16px;
font-size:0.62rem;
letter-spacing:2px;
color:var(--bone-2);
text-align:center;
cursor:pointer;
text-transform:uppercase;
}
.term-boot-skip:hover{color:var(--yellow-1);}
@media (max-width:1100px){
.term-workspace{
grid-template-columns:minmax(130px,170px) minmax(0,1fr);
}
.term-wing-right{display:none;}
}
@media (max-width:768px){
.term-header{
flex-wrap:nowrap;
min-height:38px;
}
.term-header-actions{
padding:4px 6px;
gap:4px;
flex:0 0 auto;
}
.term-btn{
padding:8px 10px;
min-height:44px;
font-size:0.65rem;
}
.term-stencil{
font-size:0.85rem;
padding:0 8px;
letter-spacing:2px;
flex:0 0 auto;
}
.term-ticker-wrap{
min-width:0;
flex:1 1 auto;
}
.term-ticker{font-size:0.55rem;}
.term-workspace{
grid-template-columns:1fr;
grid-template-rows:auto minmax(0,1fr);
padding:4px 6px;
gap:4px;
}
.term-wing-left{
flex-direction:row;
flex-wrap:nowrap;
gap:4px;
max-height:min(28vh,168px);
overflow:hidden;
}
.term-panel-systems,.term-panel-map{
flex:1 1 calc(50% - 4px);
min-width:140px;
}
.term-panel-map .term-sector-map{
grid-template-columns:repeat(4,1fr);
}
.term-wing-center{min-height:0;}
.term-panel-mainframe{padding:4px;}
.term-stat{margin-bottom:2px;font-size:0.6rem;}
.term-stat-label{font-size:0.5rem;}
.term-env{
--term-cart-row-h:38px;
--term-cart-pad:6px;
}
.term-cartridges{
grid-template-columns:repeat(auto-fill,minmax(min(76px,100%),1fr));
}
}
@media (max-height:700px){
.term-env{
--term-cart-area-h:clamp(64px,9vh,84px);
--term-dock-h:calc(var(--term-cart-area-h) + 3.85rem);
}
.term-header{min-height:34px;max-height:34px;}
.term-stat{margin-bottom:3px;font-size:0.58rem;}
.term-sector-cell{min-height:22px;}
.term-cam-feed{height:clamp(38px,7vh,50px);}
.term-wing-left{display:none;}
.term-workspace{grid-template-columns:1fr;}
.term-header{min-height:34px;}
.term-stencil{font-size:0.8rem;}
}
@media (max-height:560px){
.term-env{
--term-cart-row-h:34px;
--term-cart-pad:4px;
--term-dock-h:calc(var(--term-cart-area-h) + 3.5rem);
}
.term-dock-hint{display:none;}
.term-panel-archive .term-panel-label{display:none;}
.term-cartridges{grid-template-columns:repeat(auto-fill,minmax(76px,1fr));}
}
@media (prefers-reduced-motion:reduce){
.term-ticker,.term-flicker,.term-stat-value.pulse,.term-cam-scan,.term-file-zero.is-revealed,.term-sector-cell.is-pulse{animation:none;}
}
