:root{
  --bg:#040101;
  --panel:#070202;
  --panel2:#0c0403;
  --fg:#eadfd8;
  --dim:#9a8a84;

  --rust:#c24a3a;
  --rust2:#8e2b24;
  --bile:#b7c46b;
  --warn:#e19a6b;

  --grid: rgba(194,74,58,0.07);
  --grid2: rgba(194,74,58,0.03);

  --font: ui-monospace, "PxPlus IBM VGA8", "Terminus", Menlo, Consolas, monospace;
  --size: 16px;
  --line: 1.25;
  --pad: 12px;
  --stroke: 3px;
  --radius: 6px;
}

*{box-sizing:border-box;}
html,body{height:100%;margin:0;background:var(--bg);color:var(--fg);font-family:var(--font);font-size:var(--size);line-height:var(--line);overflow:hidden;}

.grid-underlay{
  position:fixed; inset:0; z-index:0; pointer-events:none;
  background:
    linear-gradient(var(--grid) 1px, transparent 1px) 0 0 / 24px 24px,
    linear-gradient(90deg, var(--grid2) 1px, transparent 1px) 0 0 / 24px 24px,
    radial-gradient(ellipse at center, rgba(0,0,0,0) 0%, rgba(0,0,0,0.35) 70%, rgba(0,0,0,0.9) 100%);
  animation:gridDrift 12s linear infinite;
}
@keyframes gridDrift{0%{transform:translateY(0)}100%{transform:translateY(24px)}}

.frame{
  position:relative; z-index:1;
  height:100%; width:100%;
  padding:10px;
  display:flex; flex-direction:column;
  border:var(--stroke) solid var(--rust2);
  outline:1px solid rgba(255,255,255,0.04);
  background:linear-gradient(180deg, var(--panel) 0%, var(--panel2) 100%);
  box-shadow:
    0 0 0 2px rgba(0,0,0,0.95) inset,
    0 0 30px rgba(194,74,58,0.25),
    0 0 140px rgba(0,0,0,0.9) inset;
}

.titlebar{
  display:flex; align-items:center; justify-content:space-between;
  padding:6px 8px;
  border-bottom:2px solid var(--rust2);
  background: #120505;
  letter-spacing:0.12em; text-transform:uppercase;
  font-size:12px;
}
.titlebar .title{color:var(--rust); text-shadow:0 0 8px rgba(194,74,58,0.35);}
.lights{display:flex; gap:6px;}
.light{width:9px;height:9px;border:1px solid var(--rust2);background:#000;}
.light.l1{background:var(--rust);}
.light.l2{background:var(--bile);}
.light.l3{background:#2a0c0a;}

.statusbar{
  display:flex; justify-content:space-between; align-items:center;
  padding:6px 8px;
  border-bottom:2px solid var(--rust2);
  background:#090202;
  font-size:12px; letter-spacing:0.08em; text-transform:uppercase;
  color:var(--dim);
}
.statusbar span{margin-left:4px;margin-right:10px;}
.sig{color:var(--rust);}
.ok{color:var(--bile);}
.bad{color:var(--warn);}

.screen{
  position:relative; flex:1; overflow:auto;
  padding:var(--pad);
  border:2px solid var(--rust2);
  margin-top:8px;
  background:#020000;
  box-shadow:
    0 0 0 1px rgba(255,255,255,0.03) inset,
    0 0 20px rgba(0,0,0,0.9) inset;
  scrollbar-width:thin; scrollbar-color: var(--rust2) #000;
}
.screen::-webkit-scrollbar{width:10px;}
.screen::-webkit-scrollbar-track{background:#000;}
.screen::-webkit-scrollbar-thumb{background:var(--rust2); border:2px solid #000;}
.screen::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:
    repeating-linear-gradient(to bottom, rgba(255,255,255,0.03) 0, rgba(255,255,255,0.03) 1px, transparent 2px, transparent 5px),
    radial-gradient(ellipse at center, rgba(194,74,58,0.08) 0%, transparent 55%);
  mix-blend-mode:screen; opacity:0.35;
}

.line{display:block; margin:0 0 6px; white-space:pre-wrap; word-break:break-word;}
.dim{color:var(--dim);}
.accent{color:var(--rust);}
.accent2{color:var(--bile);}
.warn{color:var(--warn);}
.box{
  border:2px solid var(--rust2);
  padding:6px 8px;
  background:#050101;
}
.box-title{
  display:block; color:var(--rust); letter-spacing:0.06em; margin-bottom:4px; font-size:12px; text-transform:uppercase;
}
a{color:var(--rust); text-decoration:underline; text-underline-offset:2px;}
a:visited{color:#8f5751;}
a:hover{background:rgba(194,74,58,0.15);}

.inputbar{
  display:flex; align-items:center; gap:8px;
  margin-top:8px;
  padding:8px;
  border:2px solid var(--rust2);
  background:#070202;
  position:sticky; bottom:0;
}
.prompt{color:var(--bile); font-size:14px; white-space:nowrap;}
.cmd{
  flex:1; background:#000; color:var(--fg);
  border:2px solid var(--rust2);
  padding:6px 8px; outline:none;
  font-family:var(--font); font-size:var(--size);
  caret-color:transparent; /* hide native caret */
}
.cmd:focus{box-shadow:0 0 0 2px rgba(194,74,58,0.25);}
.cursor{
  color:var(--rust); font-weight:bold; user-select:none;
  animation:blink 1s steps(1) infinite;
}
@keyframes blink{50%{opacity:0;}}

@media (max-width:700px){
  :root{--size:14px; --pad:10px;}
  .titlebar,.statusbar{font-size:11px;}
  .prompt{font-size:12px;}
}

/* ===== ASCENSION ENGINE mood states ===== */
body.mood-coherent .frame{ box-shadow: 0 0 30px rgba(194,74,58,0.22), 0 0 140px rgba(0,0,0,0.9) inset; }
body.mood-errant .frame{ box-shadow: 0 0 40px rgba(194,74,58,0.35), 0 0 160px rgba(0,0,0,0.92) inset; }
body.mood-agitated .frame{ box-shadow: 0 0 55px rgba(194,74,58,0.5), 0 0 160px rgba(0,0,0,0.95) inset; }
body.mood-deep .grid-underlay{ opacity:0.75; }
body.mood-recursive .screen::after{ opacity:0.5; }
body.mood-veiled .screen{ background:#000; }
.art-inline{
  display:block;
  max-width:100%;
  margin:8px 0 4px;
  border:1px solid var(--rust2);
  box-shadow:0 0 18px rgba(0,0,0,0.9);
}
