@charset "UTF-8";
/* CSS Document */

/*--------------------------------------------*/
/* VARIABLES //////////////////////////////////////*/
:root {

  /* System Log Colors */
  --color__terminal-green: #00ff00;
  --color__terminal-cyan: #00ffff;
  --color__terminal-yellow: #ffff00;
  --color__terminal-orange: #ff8800;
  --color__terminal-red: #ff0000;
}

/*--------------------------------------------*/
/* BASE LAYOUT ///////////////////////////////////////*/ 
body {
  color: var(--color__terminal-green);
  font-family: var(--dot);
  overflow-x: hidden;
}

/*--------------------------------------------*/
/* TOP PAGE ///////////////////////////////////////*/ 
#TOP { position: relative; width: 100%; overflow: hidden; }

/*--------------------------------------------*/
/* SYSTEM LOG ///////////////////////////////////////*/ 
.system-log { position: relative; z-index: 10; padding: 40px 20px; }

.log-container {
  max-width: 800px;
  margin: 0 auto;
  font-family: var(--dot);
  font-size: 14px;
  line-height: 2.0;
}

.log-entry {
  margin-bottom: 20px;
  opacity: 0;
  transform: translateY(20px);
}

.log-line {
  margin-bottom: 8px;
  white-space: pre-wrap;
  word-break: break-word;
}

/* ログレベル別の色設定 */
.log-level-info {
  color: var(--color__terminal-green);
}

.log-level-notice {
  color: var(--color__terminal-cyan);
}

.log-level-warning {
  color: var(--color__terminal-yellow);
}

.log-level-error {
  color: var(--color__terminal-orange);
}

.log-level-critical {
  color: var(--color__terminal-red);
  font-weight: bold;
}

/* カーソル演出 */
.cursor {
  display: block;
  color: var(--color__terminal-green);
  font-family: var(--dot);
  font-weight: bold;
  animation: blink 1s infinite;
  margin-top: 10px;
}

@keyframes blink {
  0%, 50%   { opacity: 1; }
  51%, 100% { opacity: 0; }
}

footer { background-color: var(--color__black); color: var(--color__white); }

/*--------------------------------------------*/
/* BACKGROUND LAYER ///////////////////////////////////////*/ 
.background-layer {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
  pointer-events: none;
}

.parallax-text {
  position: absolute;
  font-family: var(--ja);
  font-size: 32px;
  color: rgba(255, 255, 255, 0.1);
  white-space: nowrap;
  pointer-events: none;
  z-index: 3000;
}

section#FOOTER.disabled, section#FOOTER.disabled > * { min-height: 0vh; opacity: 0; visibility: hidden; pointer-events: none; user-select: none; padding: 0px; margin: 0px; }

/*--------------------------------------------*/
/* MONITOR FLICKER EFFECT ///////////////////////////////////////*/ 
.monitor-flicker {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 255, 0, 0.03);
  pointer-events: none;
  z-index: 9999;
  animation: flicker 0.15s infinite;
}

@keyframes flicker {
  0%   { opacity: 0; }
  50%  { opacity: 1; }
  51%  { opacity: 0.8; }
  52%  { opacity: 1; }
  53%  { opacity: 0.9; }
  54%  { opacity: 1; }
  100% { opacity: 0; }
}

/*--------------------------------------------*/
/* GLITCH EFFECT ///////////////////////////////////////*/ 
.glitch-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 9998;
  mix-blend-mode: overlay;
}

/*--------------------------------------------*/
/* SYSTEM PROMPT ///////////////////////////////////////*/ 
.system-prompt {
  color: var(--color__terminal-green);
  font-weight: bold;
}

.log-header {
  font-weight: bold;
  margin-bottom: 4px;
}

.log-detail {
  padding-left: 20px;
  font-size: 0.9em;
  opacity: 0.8;
}

/*--------------------------------------------*/
/* RESPONSIVE ///////////////////////////////////////*/ 
@media (max-width: 768px) {
  .system-log {
    padding: 20px 15px;
  }
  
  .log-container {
    font-size: 12px;
  }
  
  .parallax-text {
    font-size: 24px;
  }
}