/* Design tokens. */
:root {
  /* Canvas palette. */
  --bg:            #0a0b14;
  --grid:          rgba(160,140,200,0.06);
  --border:        rgba(160,140,200,0.18);
  --scanline:      rgba(140,120,180,0.025);
  --artifact:      rgba(160,140,200,0.1);

  /* Label and text palette. */
  --label:         rgba(180,160,210,0.5);
  --label-dim:     rgba(140,120,170,0.25);
  --label-bright:  rgba(207,184,242,0.575);

  /* World object palette. */
  --comet:         #d4c8e8;
  --pko01:         #e8c87a;
  --pko02:         #a8c4d4;
  --orbit:         rgba(140,160,210,0.22);
  --log-star:      107, 122, 153;
  --signal-star:   122, 153, 144;
  --signal-pink:   215, 140, 190;

  /* Terminal palette. */
  --term-bg:       rgba(2, 4, 14, 0.99);
  --term-text:     rgba(120,175,220,0.72);
  --term-cmd:      rgba(140,190,230,0.78);
  --term-dim:      rgba(90,135,185,0.58);
  --term-hi:       rgba(160,210,240,0.85);
  --term-signal:   rgba(120,195,190,0.8);
  --term-err:      rgba(210,140,130,0.7);
  --term-border:   rgba(80,140,220,0.1);
  --term-title:    rgba(175,210,250,0.525);
  --term-accent:   rgba(130,180,255,0.6);
  --term-accent-lo: rgba(130,180,255,0.15);
  --term-outline:  rgba(60,100,180,0.12);

  /* Reader palette. */
  --reader-bg:     rgba(8, 4, 18, 0.97);
  --reader-text:   rgba(195,188,215,0.72);
  --reader-title:  rgba(175,165,195,0.75);
  --reader-meta:   rgba(170,162,188,0.45);
  --reader-border: rgba(150,140,175,0.12);
  --reader-accent: rgba(160,150,185,0.5);
  --reader-accent-lo: rgba(160,150,185,0.12);
  --reader-outline: rgba(130,120,160,0.06);

  /* Preview palette. */
  --preview-bg:    rgba(5, 8, 14, 0.95);
  --preview-text:  rgba(180,160,210,0.55);
  --preview-corner: rgba(160,140,200,0.45);

  /* Violet glows. */
  --glow-violet-low:
    0 0 4px rgba(180,160,210,0.5),
    0 0 10px rgba(160,140,200,0.22);
  --glow-violet-medium:
    0 0 4px rgba(180,160,210,0.68),
    0 0 14px rgba(160,140,200,0.36),
    0 0 28px rgba(140,120,190,0.16);
  --glow-violet-high:
    0 0 5px rgba(200,182,228,0.88),
    0 0 18px rgba(178,156,216,0.5),
    0 0 40px rgba(154,132,204,0.24);
  --glow-violet-extreme:
    0 0 5px rgba(214,194,248,1),
    0 0 18px rgba(198,170,238,0.94),
    0 0 38px rgba(182,148,232,0.84),
    0 0 74px rgba(166,128,224,0.68),
    0 0 122px rgba(148,108,212,0.48),
    0 0 180px rgba(126,88,196,0.26);

  /* Blue glows. */
  --glow-blue-low:
    0 0 4px rgba(120,175,220,0.78),
    0 0 12px rgba(100,155,210,0.34);
  --glow-blue-medium:
    0 0 4px rgba(120,175,220,1),
    0 0 14px rgba(100,155,210,0.6),
    0 0 36px rgba(80,130,200,0.28);
  --glow-blue-high:
    0 0 5px rgba(160,210,240,1),
    0 0 20px rgba(140,195,235,0.82),
    0 0 45px rgba(120,175,225,0.42);

  /* Teal glows. */
  --glow-teal-low:
    0 0 4px rgba(132,206,192,0.58),
    0 0 12px rgba(110,170,158,0.22);
  --glow-teal-medium:
    0 0 4px rgba(132,206,192,0.72),
    0 0 14px rgba(110,170,158,0.34),
    0 0 30px rgba(88,140,130,0.12);
  --glow-teal-high:
    0 0 5px rgba(174,236,226,0.74),
    0 0 14px rgba(132,198,188,0.3),
    0 0 34px rgba(96,156,148,0.14);

  /* Shared geometry. */
  --corner-size:   32px;
  --scanline-gap:  3px;

  /* Fonts. */
  --font-mono:     'Space Mono', monospace;
  --font-serif:    'IM Fell English', serif;
  --font-serif-sc: 'IM Fell English SC', serif;

  /* Cursors. */
  --cursor-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14'%3E%3Cpath d='M7 1.2 L8 5.7 L12.8 7 L8 8.3 L7 12.8 L6 8.3 L1.2 7 L6 5.7 Z' fill='rgba(228,220,242,0.92)' stroke='rgba(142,130,176,0.65)' stroke-width='0.55'/%3E%3C/svg%3E") 7 7, auto;
  --cursor-bar: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='6' height='18' viewBox='0 0 6 18'%3E%3Cline x1='3' y1='1' x2='3' y2='17' stroke='rgba(220,210,240,0.85)' stroke-width='1'/%3E%3Cline x1='1' y1='1' x2='5' y2='1' stroke='rgba(220,210,240,0.85)' stroke-width='1'/%3E%3Cline x1='1' y1='17' x2='5' y2='17' stroke='rgba(220,210,240,0.85)' stroke-width='1'/%3E%3C/svg%3E") 3 9, text;
  --cursor-pointer: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14'%3E%3Cpath d='M7 1.2 L8 5.7 L12.8 7 L8 8.3 L7 12.8 L6 8.3 L1.2 7 L6 5.7 Z' fill='rgba(228,220,242,0.92)' stroke='rgba(142,130,176,0.65)' stroke-width='0.55'/%3E%3C/svg%3E") 7 7, pointer;
  --cursor-grab: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14'%3E%3Ccircle cx='7' cy='7' r='4.6' fill='rgba(228,220,242,0.12)' stroke='rgba(208,196,230,0.86)' stroke-width='0.75'/%3E%3Ccircle cx='7' cy='7' r='1.15' fill='rgba(228,220,242,0.9)'/%3E%3C/svg%3E") 7 7, grab;
  --cursor-grabbing: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14'%3E%3Ccircle cx='7' cy='7' r='4.9' fill='rgba(228,220,242,0.18)' stroke='rgba(208,196,230,0.94)' stroke-width='0.85'/%3E%3Ccircle cx='7' cy='7' r='1.4' fill='rgba(244,238,250,0.96)'/%3E%3C/svg%3E") 7 7, grabbing;
  --cursor-resize-se: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 15 15'%3E%3Cpath d='M3 12 L12 3' stroke='rgba(214,202,236,0.9)' stroke-width='1' stroke-linecap='round'/%3E%3Cpath d='M8.8 3 H12 V6.2' fill='none' stroke='rgba(214,202,236,0.72)' stroke-width='0.9' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M3 8.8 V12 H6.2' fill='none' stroke='rgba(214,202,236,0.72)' stroke-width='0.9' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") 8 8, se-resize;
  --cursor-resize-s: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='16' viewBox='0 0 12 16'%3E%3Cpath d='M6 2 V14' stroke='rgba(214,202,236,0.88)' stroke-width='1' stroke-linecap='round'/%3E%3Cpath d='M3.6 4.5 L6 2 L8.4 4.5' fill='none' stroke='rgba(214,202,236,0.72)' stroke-width='0.9' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M3.6 11.5 L6 14 L8.4 11.5' fill='none' stroke='rgba(214,202,236,0.72)' stroke-width='0.9' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") 6 8, s-resize;
  --cursor-resize-e: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='12' viewBox='0 0 16 12'%3E%3Cpath d='M2 6 H14' stroke='rgba(214,202,236,0.88)' stroke-width='1' stroke-linecap='round'/%3E%3Cpath d='M4.5 3.6 L2 6 L4.5 8.4' fill='none' stroke='rgba(214,202,236,0.72)' stroke-width='0.9' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M11.5 3.6 L14 6 L11.5 8.4' fill='none' stroke='rgba(214,202,236,0.72)' stroke-width='0.9' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") 8 6, e-resize;
}
