@font-face{font-family:MONCR;src:url("assets/moncr-wide.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
:root{--fg:#efefea;--dim:#777772;--line:#1b1b1a;--machine:"Courier New",Courier,monospace;--display:MONCR,"Courier New",monospace}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;background:#000;color:var(--fg);min-height:100%;font-family:var(--display)}
body{min-height:100dvh;overscroll-behavior:none}.machine{font-family:var(--machine)}
.boot{position:fixed;inset:0;z-index:20;background:#000;padding:calc(env(safe-area-inset-top) + 30px) 22px;font:11px/1.65 var(--machine);letter-spacing:.035em;color:#ddd}

.boot-wolfy{position:absolute;left:50%;bottom:calc(env(safe-area-inset-bottom) + 30px);width:42px;height:42px;transform:translateX(-50%);opacity:.35;transition:opacity .28s ease;pointer-events:none}
.boot-wolfy .wolfy-mark{position:absolute;inset:0;width:100%;height:100%;display:block}
.boot-wolfy .wolfy-base{opacity:1}
.boot-wolfy .wolfy-slice{opacity:0}
.boot-wolfy.glitch .wolfy-slice{opacity:.82}
.boot-wolfy.glitch .wolfy-slice-a{clip-path:inset(18% 0 58% 0);transform:translateX(-3px)}
.boot-wolfy.glitch .wolfy-slice-b{clip-path:inset(61% 0 17% 0);transform:translateX(3px)}
.boot-wolfy.resolved{opacity:.70}

.boot pre{display:inline;margin:0;white-space:pre-wrap;font:inherit}.block-cursor{display:inline-block;width:.58em;height:1.05em;background:#eee;vertical-align:-.12em;animation:blink .65s steps(1) infinite}
@keyframes blink{50%{opacity:0}}.device{min-height:100dvh;padding:calc(env(safe-area-inset-top) + 18px) 22px calc(env(safe-area-inset-bottom) + 16px);display:flex;flex-direction:column}.hidden{opacity:0}
.topline{display:flex;justify-content:space-between;align-items:center}.identity{font-size:11px;letter-spacing:.08em}.status{font-size:8px;color:#777;letter-spacing:.12em}
.artemis{margin-top:11vh}.eyebrow{font-size:8px;color:#555;letter-spacing:.12em;margin-bottom:14px}.artemis h1{margin:0;font-weight:400;font-size:34px;letter-spacing:.055em}.chevron{font-size:22px;color:#777}.modes{font-size:8px;letter-spacing:.16em;color:#555;margin:12px 0 0 34px}
.terminal{margin-top:34px;font-size:13px;line-height:1.62;min-height:150px;max-height:35vh;overflow-y:auto;scrollbar-width:none}.terminal::-webkit-scrollbar{display:none}
.artemis-entry{margin-bottom:26px}.user-line{opacity:.45;margin-bottom:8px}.artemis-line{opacity:.95;white-space:pre-wrap;min-height:1.62em}.initial{margin-bottom:20px}.glitch{opacity:.4}
.input-line{display:flex;align-items:center;width:100%;min-height:34px;cursor:text}.prompt{flex:none;margin-right:12px;opacity:.5}.input-wrap{position:relative;flex:1;height:1.62em;min-width:0}.input-visual{position:absolute;inset:0;white-space:pre;pointer-events:none}
#input{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;background:transparent;color:transparent;-webkit-text-fill-color:transparent;caret-color:transparent;font:inherit;line-height:inherit}
.layers{margin-top:auto;border-top:1px solid var(--line)}.layers button{appearance:none;width:100%;min-height:52px;border:0;border-bottom:1px solid var(--line);background:transparent;color:#d5d5d0;display:grid;grid-template-columns:36px 1fr 28px;align-items:center;text-align:left;padding:0 2px;font-family:var(--display);cursor:pointer}
.layers .label{font-size:15px;letter-spacing:.075em}.num{font-size:8px;color:#555}.arrow{text-align:right;font-size:20px;color:#555}.layers button.pressed{background:#eee;color:#000}.layers button.pressed .num,.layers button.pressed .arrow{color:#000}
.panel{min-height:58px;padding:13px 0 9px;font-size:9px;line-height:1.55;letter-spacing:.06em;color:#555}.panel #panelTitle{color:#999;margin-bottom:3px}
footer{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:10px;font-size:7px;letter-spacing:.11em;color:#444}
@media(min-width:600px){.device,.boot{max-width:430px;margin:auto;border-left:1px solid #111;border-right:1px solid #111}}
/* v0.3.1 readability + interface workspace */
.menu-toggle{appearance:none;border:0;background:transparent;color:#777;font:18px/1 var(--machine);width:44px;height:44px;margin:-12px -10px -12px 0;padding:0;text-align:center;cursor:pointer}
.artemis{margin-top:11vh;display:flex;flex-direction:column;flex:1;min-height:0}
.terminal{margin-top:34px;font-size:16px;line-height:1.65;min-height:0;max-height:none;overflow:visible;flex:1}
.input-line{min-height:42px}.input-wrap{height:1.65em}
.system-menu{position:fixed;z-index:8;top:calc(env(safe-area-inset-top) + 58px);right:22px;width:min(280px,calc(100vw - 44px));background:#000;border:1px solid #242424;padding:8px;opacity:0;visibility:hidden;transform:translateY(-5px);transition:.15s ease}
.system-menu.open{opacity:1;visibility:visible;transform:none}
.system-menu button{display:block;width:100%;min-height:48px;background:#000;border:0;border-bottom:1px solid #1b1b1a;color:#aaa;text-align:left;padding:0 12px;font:10px var(--machine);letter-spacing:.08em}
.menu-meta{padding:14px 12px 7px;color:#444;font-size:8px;letter-spacing:.1em}
footer{margin-top:auto}
@media(max-height:720px){.artemis{margin-top:7vh}}

/* v0.3.2 hard-lock the DEVICE shell */
html,body{width:100%;height:100%;overflow:hidden;position:fixed;inset:0}
body{touch-action:none}
.device{position:fixed;inset:0;width:100%;height:100dvh;min-height:0;overflow:hidden;overscroll-behavior:none}
.artemis,.terminal,.topline,footer,.system-menu{touch-action:manipulation}
.terminal{overscroll-behavior:none}

/* v0.3.3: fixed DEVICE shell, scrollable ARTEMIS workspace only */
.artemis{overflow:hidden}
.terminal{
  overflow-y:auto !important;
  overflow-x:hidden !important;
  min-height:0;
  max-height:none;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  touch-action:pan-y;
  padding-bottom:8px;
  scrollbar-width:none;
}
.terminal::-webkit-scrollbar{display:none}
.topline,footer,.system-menu{touch-action:manipulation}

/* v0.3.4 — wrapping composer, no composer rubber-band */
.input-line{align-items:flex-start;min-height:42px;flex:none}
.prompt{padding-top:1px;line-height:1.65}
.input-wrap{height:auto!important;min-height:1.65em;max-height:6.6em;overflow:hidden}
.input-visual{position:relative!important;inset:auto!important;min-height:1.65em;max-height:6.6em;overflow:hidden;white-space:pre-wrap!important;overflow-wrap:anywhere;word-break:break-word;line-height:1.65}
#input{position:absolute;inset:0;width:100%;height:100%;resize:none;overflow:hidden!important;overscroll-behavior:none;touch-action:none;white-space:pre-wrap;border:0;outline:0;padding:0;margin:0;background:transparent;color:transparent;-webkit-text-fill-color:transparent;caret-color:transparent;font:inherit;line-height:1.65}

/* v0.3.5 — split ARTEMIS output viewport from fixed composer */
.terminal{
  overflow:hidden!important;
  display:flex!important;
  flex-direction:column!important;
  min-height:0!important;
  overscroll-behavior:none!important;
  touch-action:none!important;
}
.output-viewport{
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  scrollbar-width:none;
  -webkit-overflow-scrolling:auto;
  overscroll-behavior:none;
  touch-action:none;
}
.output-viewport::-webkit-scrollbar{display:none}
#output{min-height:100%;overflow:visible}
.input-line{
  flex:0 0 auto!important;
  overflow:hidden;
  touch-action:none!important;
}
.input-wrap,#input,.input-visual{overscroll-behavior:none!important}

/* v0.3.7 — stable split viewport */
.terminal{
  display:flex!important;
  flex-direction:column!important;
  overflow:hidden!important;
  min-height:0!important;
  touch-action:none!important;
}
.output-viewport{
  flex:0 1 auto!important;
  height:auto!important;
  min-height:0!important;
  max-height:calc(100% - 42px);
  overflow-y:auto!important;
  overflow-x:hidden!important;
  scrollbar-width:none;
  -webkit-overflow-scrolling:auto!important;
  overscroll-behavior:none!important;
  touch-action:none!important;
}
.output-viewport::-webkit-scrollbar{display:none}
#output{min-height:0!important}
.input-line{
  flex:0 0 auto!important;
  margin-top:0!important;
  overflow:hidden!important;
  touch-action:none!important;
}

/* v0.4.0 */
#memoryStatus,#clearMemory{width:100%;text-align:left}
.signal-hit{opacity:.45}


/* v0.6.1 — ARTEMIS segmented voice presence */
.voice-signal{
  height:92px;
  margin:12px 0 4px 34px;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:5px;
  width:104px;
  opacity:0;
  transition:opacity .22s ease;
  pointer-events:none;
}
.voice-column{
  height:86px;
  width:12px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:2px;
}
.voice-segment{
  display:block;
  width:100%;
  height:3px;
  background:#070707;
  opacity:.20;
  transition:background 45ms linear,opacity 55ms linear,box-shadow 55ms linear;
}
.voice-column:nth-child(1),.voice-column:nth-child(5){transform:scaleY(.62)}
.voice-column:nth-child(2),.voice-column:nth-child(4){transform:scaleY(.82)}
.voice-column:nth-child(3){transform:scaleY(1)}
.voice-signal.active{opacity:.92}
.voice-signal.active .voice-segment{background:#101010}
.voice-signal.active .voice-segment.lit{
  background:#c9c9c6;
  box-shadow:0 0 4px rgba(255,255,255,.035);
}
.voice-signal.active .voice-column:nth-child(3) .voice-segment.lit{background:#dededb}
#voiceToggle span{font:inherit;letter-spacing:inherit}

/* v0.6.2 — full-screen ARTEMIS voice presence */
.voice-signal{
  position:fixed!important;
  inset:0!important;
  z-index:50!important;
  width:100vw!important;
  height:100dvh!important;
  margin:0!important;
  padding:calc(env(safe-area-inset-top) + 54px) 8vw calc(env(safe-area-inset-bottom) + 54px)!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:clamp(10px,3.2vw,18px)!important;
  background:#000!important;
  opacity:0!important;
  visibility:hidden;
  transition:opacity .18s ease,visibility 0s linear .18s!important;
  pointer-events:none!important;
  transform:none!important;
}
.voice-signal.active{
  opacity:1!important;
  visibility:visible;
  transition:opacity .12s ease,visibility 0s!important;
}
.voice-column{
  height:min(68dvh,560px)!important;
  width:clamp(22px,7vw,38px)!important;
  flex:none!important;
  gap:clamp(4px,.8vh,7px)!important;
  transform-origin:center center!important;
}
.voice-segment{
  height:clamp(7px,1.35vh,12px)!important;
  border-radius:0!important;
  background:#050505!important;
  opacity:.42!important;
  transition:background 38ms linear,opacity 45ms linear,box-shadow 45ms linear!important;
}
.voice-signal.active .voice-segment{background:#0b0b0b!important;opacity:.72!important}
.voice-signal.active .voice-segment.lit{background:#b7b7b4!important;opacity:1!important;box-shadow:0 0 8px rgba(255,255,255,.025)!important}
.voice-signal.active .voice-column:nth-child(3) .voice-segment.lit{background:#dededb!important}
.voice-column:nth-child(1),.voice-column:nth-child(5){transform:scaleY(.60)!important}
.voice-column:nth-child(2),.voice-column:nth-child(4){transform:scaleY(.82)!important}
.voice-column:nth-child(3){transform:scaleY(1)!important}

/* v0.6.3 — thinking core -> full voice -> reveal transcript */
.voice-signal.active{
  opacity:1!important;
  visibility:visible!important;
  transition:opacity .28s ease,visibility 0s!important;
}
.voice-signal.thinking .voice-segment{
  background:#050505!important;
  opacity:.18!important;
  box-shadow:none!important;
}
.voice-signal.thinking .voice-segment.lit{
  background:#343434!important;
  opacity:.42!important;
  box-shadow:0 0 12px rgba(255,255,255,.018)!important;
}
.voice-signal.thinking .voice-column:nth-child(3) .voice-segment.lit{
  background:#4b4b49!important;
  opacity:.58!important;
}
.voice-signal.speaking .voice-segment{
  background:#090909!important;
  opacity:.50!important;
}
.voice-signal.speaking .voice-segment.lit{
  background:#b7b7b4!important;
  opacity:1!important;
  box-shadow:0 0 8px rgba(255,255,255,.025)!important;
}
.voice-signal.speaking .voice-column:nth-child(3) .voice-segment.lit{
  background:#dededb!important;
}


/* v0.6.4 — ambient LISTEN mode */
.voice-signal.listening{
  opacity:.60!important;
  visibility:visible!important;
  background:#000!important;
  pointer-events:auto!important;
  cursor:pointer;
  transition:opacity .24s ease!important;
}
.voice-signal.listening .voice-segment{
  background:#070707!important;
  opacity:.34!important;
  box-shadow:none!important;
}
.voice-signal.listening .voice-segment.lit{
  background:#9b9b98!important;
  box-shadow:0 0 7px rgba(255,255,255,.018)!important;
}
.voice-signal.listening .voice-column:nth-child(3) .voice-segment.lit{
  background:#bdbdba!important;
}


/* v0.6.5 — full-frame coded ARTEMIS field */
.voice-signal{
  padding:calc(env(safe-area-inset-top) + 22px) 3.5vw calc(env(safe-area-inset-bottom) + 22px)!important;
  gap:clamp(7px,2.3vw,13px)!important;
  overflow:hidden!important;
}
.voice-column{
  height:88dvh!important;
  width:clamp(44px,15.5vw,72px)!important;
  gap:0!important;
  justify-content:center!important;
  overflow:visible!important;
}
.voice-segment{
  height:auto!important;
  min-height:1.68dvh!important;
  width:100%!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  background:transparent!important;
  color:#111!important;
  font-family:"Courier New",Courier,monospace!important;
  font-size:clamp(17px,5.2vw,25px)!important;
  font-weight:700!important;
  line-height:.92!important;
  letter-spacing:-.12em!important;
  text-shadow:none!important;
  transition:color 48ms linear,opacity 52ms linear,transform 70ms linear!important;
}
.voice-signal.active .voice-segment{background:transparent!important;color:#111!important;opacity:.20!important}
.voice-signal.thinking .voice-segment{background:transparent!important;color:#111!important;opacity:.12!important}
.voice-signal.thinking .voice-segment.lit{background:transparent!important;color:#454545!important;opacity:.40!important;box-shadow:none!important}
.voice-signal.thinking .voice-column:nth-child(3) .voice-segment.lit{background:transparent!important;color:#666!important;opacity:.55!important}
.voice-signal.speaking .voice-segment{background:transparent!important;color:#171717!important;opacity:.24!important}
.voice-signal.speaking .voice-segment.lit{background:transparent!important;color:#b4b4b0!important;opacity:.90!important;box-shadow:none!important}
.voice-signal.speaking .voice-column:nth-child(3) .voice-segment.lit{background:transparent!important;color:#d1d1cd!important;opacity:.96!important}
.voice-signal.listening .voice-segment{background:transparent!important;color:#111!important;opacity:.16!important}
.voice-signal.listening .voice-segment.lit{background:transparent!important;color:#858582!important;opacity:.62!important;box-shadow:none!important}
.voice-signal.listening .voice-column:nth-child(3) .voice-segment.lit{background:transparent!important;color:#9b9b97!important}
.voice-column:nth-child(1),.voice-column:nth-child(5){transform:scaleY(.78)!important}
.voice-column:nth-child(2),.voice-column:nth-child(4){transform:scaleY(.91)!important}
.voice-column:nth-child(3){transform:scaleY(1)!important}
.voice-segment.code-glitch{color:#a8a8a4!important;opacity:.82!important;transform:translateX(2px) scaleX(1.08)!important}


/* v0.6.9 — KITT geometry: wider coded towers */
.voice-signal{
  padding:calc(env(safe-area-inset-top) + 18px) 2.5vw calc(env(safe-area-inset-bottom) + 18px)!important;
  gap:3vw!important;
  align-items:center!important;
  justify-content:center!important;
}
.voice-column{
  height:90dvh!important;
  width:29vw!important;
  max-width:none!important;
  gap:.65dvh!important;
  justify-content:center!important;
  transform-origin:center center!important;
}
.voice-segment{
  flex:0 0 3.55dvh!important;
  min-height:3.55dvh!important;
  height:3.55dvh!important;
  width:100%!important;
  white-space:pre!important;
  overflow:hidden!important;
  font-size:clamp(8px,2.65vw,13px)!important;
  line-height:.72!important;
  letter-spacing:-.13em!important;
  align-items:center!important;
  justify-content:center!important;
}
.voice-column:nth-child(1),.voice-column:nth-child(3){transform:scaleY(.78)!important}
.voice-column:nth-child(2){transform:scaleY(1)!important}
.voice-signal.thinking .voice-column:nth-child(2) .voice-segment.lit{color:#666!important;opacity:.55!important}
.voice-signal.speaking .voice-column:nth-child(2) .voice-segment.lit{color:#d1d1cd!important;opacity:.96!important}
.voice-signal.listening .voice-column:nth-child(2) .voice-segment.lit{color:#9b9b97!important}


/* v0.7.0 — tighter KITT geometry, expanded LISTEN presence, computational breakup */
.voice-signal{gap:1.25vw!important;padding-left:3vw!important;padding-right:3vw!important}
.voice-column{width:30.2vw!important}
.voice-signal.listening{opacity:.75!important}
.voice-signal.listening .voice-segment.lit{opacity:.78!important;color:#969692!important}
.voice-signal.listening .voice-column:nth-child(2) .voice-segment.lit{color:#b5b5b0!important;opacity:.86!important}
.code-noise{position:absolute;z-index:0;top:8dvh;width:24vw;height:84dvh;margin:0;overflow:hidden;white-space:pre-wrap;font-family:"Courier New",Courier,monospace;font-size:clamp(7px,1.8vw,10px);line-height:1.28;letter-spacing:-.05em;color:#5b5b58;opacity:0;pointer-events:none;mix-blend-mode:screen;transition:opacity .12s linear}
.code-noise-left{left:1.5vw;text-align:left}.code-noise-right{right:1.5vw;text-align:left}
.voice-column{position:relative;z-index:2}
.voice-signal.thinking .code-noise{opacity:.22}.voice-signal.listening .code-noise{opacity:.18}
.voice-signal.speaking .code-noise{opacity:.07}
.voice-signal.thinking .voice-segment.code-glitch,.voice-signal.listening .voice-segment.code-glitch{opacity:.9!important;color:#a4a49f!important}

/* v0.7.1 — dirty machine field: centre-burn, irregular radial falloff, ghost/tear breakup */
.voice-signal{gap:.8vw!important;padding-left:3.8vw!important;padding-right:3.8vw!important}
.voice-column{width:30.3vw!important;filter:none!important}
.voice-segment{position:relative!important;overflow:visible!important;isolation:isolate!important;transition:opacity .055s linear,color .07s linear,transform .07s steps(2,end)!important}
.voice-segment.lit{color:rgba(205,205,200,calc(.18 + var(--presence,.2)*.82))!important;text-shadow:0 0 calc(2px + 8px*var(--presence,.2)) rgba(235,235,228,calc(var(--presence,.2)*.16))!important}
.voice-column:nth-child(2) .voice-segment.lit{color:rgba(244,244,238,calc(.28 + var(--presence,.2)*.72))!important;text-shadow:0 0 calc(3px + 13px*var(--presence,.2)) rgba(255,255,248,calc(var(--presence,.2)*.30)),0 0 24px rgba(255,255,248,calc(var(--presence,.2)*.08))!important}
.voice-column:nth-child(1) .voice-segment.lit,.voice-column:nth-child(3) .voice-segment.lit{filter:brightness(.74)!important}
.voice-segment.tear{transform:translateX(2.1vw) skewX(-2deg)!important;clip-path:polygon(0 5%,100% 5%,100% 39%,88% 39%,88% 47%,100% 47%,100% 100%,0 100%,0 63%,10% 63%,10% 54%,0 54%)!important}
.voice-signal.thinking .voice-segment.lit{filter:contrast(1.2)!important}
.voice-signal.thinking .voice-column:nth-child(2) .voice-segment.lit{filter:brightness(1.12) contrast(1.25)!important}
.voice-signal.listening{opacity:.90!important}
.voice-signal.listening .voice-column:nth-child(2) .voice-segment.lit{filter:brightness(1.08)!important}
.code-noise{z-index:3!important;width:34vw!important;color:#74746f!important;mix-blend-mode:screen!important;filter:blur(.05px)!important}
.code-noise-left{left:-2vw!important}.code-noise-right{right:-2vw!important}
.voice-signal.thinking .code-noise{opacity:.32!important}.voice-signal.listening .code-noise{opacity:.27!important}.voice-signal.speaking .code-noise{opacity:.12!important}
.voice-signal::before,.voice-signal::after{content:"";position:absolute;z-index:1;pointer-events:none;left:3vw;right:3vw;height:1px;background:rgba(230,230,224,.10);opacity:0;mix-blend-mode:screen}
.voice-signal::before{top:43%;box-shadow:0 9px rgba(230,230,224,.045),0 -15px rgba(230,230,224,.035)}
.voice-signal::after{top:57%;box-shadow:0 -7px rgba(230,230,224,.04),0 18px rgba(230,230,224,.025)}
.voice-signal.thinking::before,.voice-signal.thinking::after{opacity:.7;animation:machineTear .48s steps(2,end) infinite alternate}
.voice-signal.listening::before,.voice-signal.listening::after{opacity:.35;animation:machineTear .9s steps(2,end) infinite alternate}
@keyframes machineTear{0%,63%{transform:translateX(0) scaleX(.88)}64%{transform:translateX(-3vw) scaleX(.96)}72%{transform:translateX(2vw) scaleX(.72)}100%{transform:translateX(.5vw) scaleX(.91)}}


/* v0.7.3 — restore visible terminal-glyph material; retain v0.7.1 dirty geometry */
.voice-segment{
  font-size:clamp(7px,2.38vw,12px)!important;
  line-height:.78!important;
  letter-spacing:-.055em!important;
  font-weight:400!important;
  text-rendering:geometricPrecision!important;
}
.voice-segment.lit{
  text-shadow:0 0 calc(1px + 4px*var(--presence,.2)) rgba(235,235,228,calc(var(--presence,.2)*.10))!important;
}
.voice-column:nth-child(2) .voice-segment.lit{
  text-shadow:0 0 calc(1px + 6px*var(--presence,.2)) rgba(255,255,248,calc(var(--presence,.2)*.18)),0 0 14px rgba(255,255,248,calc(var(--presence,.2)*.04))!important;
}
.voice-segment.tear{filter:none!important}


/* v0.7.3 — true glyph texture + tighter KITT spacing */
.voice-signal{gap:0!important;padding-left:2.2vw!important;padding-right:2.2vw!important}
.voice-column{width:31.85vw!important;margin:0 -1.05vw!important}
.voice-segment{
  font-size:clamp(8px,2.55vw,13px)!important;
  line-height:.76!important;
  letter-spacing:-.02em!important;
  word-spacing:-.18em!important;
  font-variant-ligatures:none!important;
  -webkit-font-smoothing:none!important;
  text-rendering:optimizeSpeed!important;
}
.voice-segment.lit{background:transparent!important;box-shadow:none!important}

/* v0.7.8 — LISTEN true residual state.
   Unlit positions are black. Per-segment rest opacity is written inline !important
   so legacy LISTEN .lit rules cannot flatten the three towers to equal strength. */
.voice-signal.listening .voice-segment:not(.lit){opacity:0!important;color:transparent!important;text-shadow:none!important}


/* v0.8.6 — six fixed signal colours, using plain CSS variables for iOS/PWA reliability. */
:root{--signal-color:#efefea;--signal-side:#c9c9c5;--signal-dim:#777774;--signal-glow:rgba(239,239,234,.22);--signal-glow-strong:rgba(239,239,234,.34);--signal-noise:rgba(239,239,234,.52);--signal-tear:rgba(239,239,234,.12)}
.signal-color-control{padding:12px 12px 14px;border-bottom:1px solid #1b1b1a}
.signal-color-label{display:flex;justify-content:space-between;align-items:center;margin-bottom:11px;color:#777;font:8px var(--machine);letter-spacing:.1em}
#signalColorName{color:var(--signal-color)}
.signal-color-choices{display:grid;grid-template-columns:repeat(6,1fr);gap:7px}
.signal-color-choices button{display:block!important;min-height:18px!important;height:18px!important;padding:0!important;border:1px solid #202020!important;background:var(--swatch)!important;opacity:.46;position:relative}
.signal-color-choices button[data-signal="white"]{--swatch:#efefea}.signal-color-choices button[data-signal="orange"]{--swatch:#ff8a00}.signal-color-choices button[data-signal="red"]{--swatch:#ff2020}.signal-color-choices button[data-signal="purple"]{--swatch:#a64dff}.signal-color-choices button[data-signal="cyan"]{--swatch:#28e4e4}.signal-color-choices button[data-signal="blue"]{--swatch:#3478ff}
.signal-color-choices button.selected{opacity:1;border-color:var(--swatch)!important}
/* Force the selected colour into every takeover mode: THINKING, VOICE and LISTEN. */
.voice-signal .voice-segment.lit{color:var(--signal-side)!important;text-shadow:0 0 6px var(--signal-glow)!important}
.voice-signal .voice-column:nth-child(2) .voice-segment.lit{color:var(--signal-color)!important;text-shadow:0 0 8px var(--signal-glow-strong),0 0 16px var(--signal-glow)!important}
.voice-signal .voice-segment.code-glitch{color:var(--signal-color)!important}
.voice-signal .code-noise{color:var(--signal-noise)!important}
.voice-signal::before,.voice-signal::after{background:var(--signal-tear)!important}
.block-cursor,.input-visual{color:var(--signal-color)}

/* contained THINKING state: coupled towers, reduced corruption */
.voice-signal.thinking .code-noise{opacity:.055!important}
.voice-signal.thinking::before,.voice-signal.thinking::after{opacity:.10!important;animation:none!important}
.voice-signal.thinking .voice-segment{background:transparent!important;color:var(--signal-dim)!important;opacity:.08!important;box-shadow:none!important}
.voice-signal.thinking .voice-segment.lit{color:var(--signal-side)!important;opacity:.42!important;filter:contrast(1.12)!important}
.voice-signal.thinking .voice-column:nth-child(2) .voice-segment.lit{color:var(--signal-color)!important;opacity:.56!important;filter:brightness(1.08) contrast(1.16)!important}
.voice-signal.thinking .voice-segment.code-glitch{opacity:.58!important;color:var(--signal-color)!important}


/* v0.8.8 — visible menu logo + signal-only colour. */
.signal-color-control{display:none!important}
.signal-logo{display:block!important;width:42px!important;height:42px!important;min-height:42px!important;margin:12px auto 8px!important;padding:9px!important;border:0!important;border-bottom:0!important;background:#000!important;color:#efefea!important;opacity:.70!important;cursor:pointer!important;text-align:center!important}
.signal-logo:active{opacity:.82!important;transform:scale(.94)}
.signal-logo-mark{display:block!important;width:24px!important;height:24px!important;margin:auto!important;overflow:visible!important}
/* Only takeover signal inherits the chosen colour. */
.voice-signal .voice-segment.lit,
.voice-signal .voice-column:nth-child(2) .voice-segment.lit,
.voice-signal.thinking .voice-segment.lit,
.voice-signal.thinking .voice-column:nth-child(2) .voice-segment.lit,
.voice-signal.speaking .voice-segment.lit,
.voice-signal.speaking .voice-column:nth-child(2) .voice-segment.lit,
.voice-signal.listening .voice-segment.lit,
.voice-signal.listening .voice-column:nth-child(2) .voice-segment.lit,
.voice-signal .voice-segment.code-glitch{color:var(--signal-color)!important}
.voice-signal .voice-segment.lit{text-shadow:0 0 6px var(--signal-color)!important}
.voice-signal .voice-column:nth-child(2) .voice-segment.lit{text-shadow:0 0 8px var(--signal-color),0 0 16px var(--signal-color)!important}
.voice-signal .code-noise{color:var(--signal-color)!important}
.voice-signal::before,.voice-signal::after{background:var(--signal-color)!important}
/* Canonical terminal/interface remains white. */
.block-cursor,.input-visual,.prompt,.terminal,.topline,.system-menu,h1,.modes,.eyebrow{color:#efefea!important}

/* v0.8.9 — signal colour fix: target actual tower data attributes, not DOM child position.
   Two code-noise PRE elements precede the towers, so legacy nth-child selectors could
   accidentally treat the left tower as the centre tower and force it back to white. */
.voice-signal .voice-column[data-col="0"] .voice-segment.lit,
.voice-signal .voice-column[data-col="1"] .voice-segment.lit,
.voice-signal .voice-column[data-col="2"] .voice-segment.lit,
.voice-signal.thinking .voice-column[data-col="0"] .voice-segment.lit,
.voice-signal.thinking .voice-column[data-col="1"] .voice-segment.lit,
.voice-signal.thinking .voice-column[data-col="2"] .voice-segment.lit,
.voice-signal.speaking .voice-column[data-col="0"] .voice-segment.lit,
.voice-signal.speaking .voice-column[data-col="1"] .voice-segment.lit,
.voice-signal.speaking .voice-column[data-col="2"] .voice-segment.lit,
.voice-signal.listening .voice-column[data-col="0"] .voice-segment.lit,
.voice-signal.listening .voice-column[data-col="1"] .voice-segment.lit,
.voice-signal.listening .voice-column[data-col="2"] .voice-segment.lit{
  color:var(--signal-color)!important;
  text-shadow:0 0 6px var(--signal-color)!important;
}
.voice-signal .voice-column[data-col="1"] .voice-segment.lit{
  text-shadow:0 0 8px var(--signal-color),0 0 16px var(--signal-color)!important;
}
/* Remove the horizontal machine-tear rules; corruption stays glyph-based. */
.voice-signal::before,.voice-signal::after{display:none!important;content:none!important}

/* v0.9.3 — THINKING is a compact pre-signal; only lit centre segments are visible. */
.voice-signal.thinking .voice-segment:not(.lit){opacity:0!important;color:transparent!important;text-shadow:none!important}
