/* Frutiger Aero shared stylesheet + Y2K Chrome theme override */
* { box-sizing: border-box; }

/* smooth crossfade when switching themes */
body, .desk, .win, .glass, .glass::before, .aqua, .titlebar, .icon .glyph, .icon .label,
.taskbar, .start, .photo, .aero-link, .counter, .gate, .enter, .mark, .badge, .bubble,
.theme-switcher, .theme-switcher button {
  transition:
    background 450ms ease,
    background-color 450ms ease,
    border-color 450ms ease,
    box-shadow 450ms ease,
    color 450ms ease,
    text-shadow 450ms ease,
    filter 450ms ease;
}
html, body {
  margin: 0; padding: 0;
  font-family: "Segoe UI", Tahoma, "Trebuchet MS", sans-serif;
  color: oklch(22% 0.04 245);
  overflow: hidden;
  cursor: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'><circle cx='10' cy='10' r='5' fill='white' stroke='%234a90d9' stroke-width='1.5' opacity='0.85'/><circle cx='8' cy='8' r='1.5' fill='white'/></svg>") 10 10, auto;
}

/* SUNSET SKY */
.sky-warm {
  background:
    radial-gradient(120% 80% at 80% 105%, oklch(78% 0.15 55) 0%, oklch(82% 0.13 80) 20%, oklch(86% 0.10 140) 42%, oklch(82% 0.12 220) 72%, oklch(68% 0.13 240) 100%);
}
.sky-cool {
  background:
    radial-gradient(120% 80% at 50% 110%, oklch(88% 0.09 200) 0%, oklch(82% 0.12 220) 35%, oklch(70% 0.14 240) 80%, oklch(55% 0.15 250) 100%);
}
.sky-dawn {
  background:
    radial-gradient(120% 80% at 25% 100%, oklch(83% 0.13 30) 0%, oklch(86% 0.10 60) 20%, oklch(88% 0.07 200) 55%, oklch(76% 0.13 230) 100%);
}

.sun {
  position: absolute; right: 7%; bottom: 10%;
  width: 360px; height: 360px; border-radius: 50%;
  background: radial-gradient(circle, oklch(96% 0.10 75) 0%, oklch(88% 0.14 60 / 0.7) 25%, oklch(85% 0.16 50 / 0) 65%);
  filter: blur(3px); pointer-events: none;
}
.lens-flare {
  position: absolute; left: 8%; top: 18%; width: 360px; height: 5px;
  background: linear-gradient(90deg, transparent, oklch(98% 0.05 75 / 0.6), transparent);
  transform: rotate(-18deg); filter: blur(1.5px); pointer-events: none;
}

.clouds { position: absolute; inset: 0; pointer-events: none; }

/* BUBBLES */
.bubble-field { position: absolute; inset: 0; pointer-events: none; overflow: hidden; z-index: 0; }
.bubble {
  position: absolute; bottom: -120px; border-radius: 50%;
  background: radial-gradient(circle at 30% 28%, rgba(255,255,255,0.95) 0%, rgba(255,255,255,0.3) 18%, rgba(200,230,255,0.12) 55%, rgba(120,180,255,0.06) 100%);
  border: 1px solid rgba(255,255,255,0.55);
  box-shadow: inset -6px -8px 18px rgba(80,140,200,0.25), inset 4px 6px 12px rgba(255,255,255,0.6), 0 4px 18px rgba(120,180,240,0.15);
  animation: aero-rise linear infinite;
}
@keyframes aero-rise {
  0%   { transform: translate(0, 0) scale(0.9); opacity: 0; }
  10%  { opacity: 0.7; }
  90%  { opacity: 0.55; }
  100% { transform: translate(var(--drift, 30px), -110vh) scale(1.05); opacity: 0; }
}

/* SHARDS (chrome theme counterpart to bubbles) */
.shard-field { position: absolute; inset: 0; pointer-events: none; overflow: hidden; z-index: 0; display: none; }
.chrome-shard {
  position: absolute; bottom: -170px;
  background: linear-gradient(135deg,
    oklch(96% 0.02 240) 0%,
    oklch(78% 0.04 280) 30%,
    oklch(45% 0.06 290) 52%,
    oklch(72% 0.04 240) 75%,
    oklch(92% 0.02 240) 100%);
  filter:
    drop-shadow(0 0 8px oklch(60% 0.20 290 / 0.55))
    drop-shadow(0 4px 12px oklch(5% 0.03 270 / 0.7));
  animation: shard-rise linear infinite;
}
.chrome-shard.shard { clip-path: polygon(50% 0%, 70% 38%, 56% 100%, 30% 64%); }
.chrome-shard.blade { clip-path: polygon(50% 0%, 57% 50%, 50% 100%, 43% 50%); }
.chrome-shard::before {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(115deg,
    transparent 20%,
    oklch(99% 0.02 200 / 0.65) 42%,
    oklch(92% 0.08 320 / 0.35) 50%,
    transparent 68%);
  background-size: 200% 200%;
  animation: shard-streak 3s ease-in-out infinite alternate;
}
@keyframes shard-rise {
  0%   { transform: translate(0, 0) rotate(var(--rot0, 0deg)); opacity: 0; }
  8%   { opacity: 0.95; }
  90%  { opacity: 0.75; }
  100% { transform: translate(var(--drift, 0px), -130vh) rotate(var(--rot1, 120deg)); opacity: 0; }
}
@keyframes shard-streak {
  0%   { background-position: 200% 0%; }
  100% { background-position: -20% 0%; }
}
body[data-theme="chrome"] .shard-field { display: block; }

/* GLOSSY AQUA BUTTON */
.aqua {
  position: relative; display: inline-flex; align-items: center; gap: 6px;
  padding: 10px 22px; font: 600 14px "Segoe UI", Tahoma, sans-serif; color: white;
  text-shadow: 0 1px 2px oklch(45% 0.13 240);
  border: 1px solid oklch(50% 0.13 240); border-radius: 18px;
  background: linear-gradient(to bottom, oklch(92% 0.06 220) 0%, oklch(70% 0.14 230) 48%, oklch(50% 0.13 240) 52%, oklch(70% 0.14 230) 100%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.8), inset 0 -2px 4px oklch(45% 0.13 240), 0 3px 10px rgba(40,90,140,0.35);
  cursor: pointer; transition: transform 150ms;
}
.aqua::before {
  content: ""; position: absolute; left: 4px; right: 4px; top: 2px; height: 42%;
  border-radius: inherit;
  background: linear-gradient(to bottom, rgba(255,255,255,0.85), rgba(255,255,255,0.1));
  pointer-events: none;
}
.aqua:hover { transform: translateY(-1px) scale(1.02); }
.aqua.orange {
  border-color: oklch(58% 0.15 40);
  background: linear-gradient(to bottom, oklch(94% 0.06 70) 0%, oklch(75% 0.16 55) 48%, oklch(58% 0.15 40) 52%, oklch(75% 0.16 55) 100%);
  text-shadow: 0 1px 2px oklch(50% 0.15 40);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.8), inset 0 -2px 4px oklch(50% 0.15 40), 0 3px 10px rgba(180,90,40,0.35);
}
.aqua.orange::before { background: linear-gradient(to bottom, rgba(255,255,255,0.9), rgba(255,255,255,0.1)); }
.aqua.green {
  border-color: oklch(55% 0.13 155);
  background: linear-gradient(to bottom, oklch(94% 0.06 145) 0%, oklch(78% 0.14 145) 48%, oklch(55% 0.13 155) 52%, oklch(78% 0.14 145) 100%);
  text-shadow: 0 1px 2px oklch(45% 0.13 155);
}
.aqua.sm { padding: 6px 14px; font-size: 12px; border-radius: 12px; }
.aqua.lg { padding: 14px 32px; font-size: 18px; border-radius: 24px; }

/* GLASS PANEL */
.glass {
  position: relative;
  background: linear-gradient(to bottom, rgba(255,255,255,0.78), rgba(220,235,255,0.55));
  backdrop-filter: blur(18px) saturate(160%);
  -webkit-backdrop-filter: blur(18px) saturate(160%);
  border: 1px solid rgba(255,255,255,0.85);
  border-radius: 18px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.95), inset 0 -1px 0 rgba(120,160,220,0.25), 0 10px 36px rgba(60,110,160,0.22);
}
.glass::before {
  content: ""; position: absolute; left: 1px; right: 1px; top: 1px; height: 45%;
  border-radius: inherit;
  background: linear-gradient(to bottom, rgba(255,255,255,0.55), rgba(255,255,255,0));
  pointer-events: none;
}
.glass.warm {
  background: linear-gradient(to bottom, rgba(255,235,210,0.78), rgba(255,200,170,0.5));
  border-color: rgba(255,240,220,0.8);
}
.glass.blue {
  background: linear-gradient(to bottom, rgba(195,225,255,0.75), rgba(150,200,250,0.55));
}

/* PHOTO PLACEHOLDER */
.photo {
  position: relative; border-radius: 10px; overflow: hidden;
  background: linear-gradient(135deg, oklch(82% 0.13 60), oklch(80% 0.10 140) 45%, oklch(72% 0.13 230));
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.6), 0 2px 8px rgba(60,110,160,0.25);
  display: flex; align-items: center; justify-content: center;
  font: 11px "Courier New", monospace; color: rgba(255,255,255,0.95);
  text-shadow: 0 1px 2px rgba(0,0,0,0.3); letter-spacing: 1px;
}
.photo::before {
  content: ""; position: absolute; inset: 0;
  background: repeating-linear-gradient(45deg, rgba(255,255,255,0.06) 0 8px, transparent 8px 16px);
}
.photo > span { position: relative; }

/* SPARKLE CURSOR */
.sparkle {
  position: fixed; width: 10px; height: 10px; border-radius: 50%;
  pointer-events: none; transform: translate(-50%, -50%);
  animation: sparkle-fade 900ms ease-out forwards;
  z-index: 99999; mix-blend-mode: screen;
}
@keyframes sparkle-fade {
  0%   { opacity: 1; transform: translate(-50%, -50%) scale(0.5); }
  50%  { opacity: 0.8; transform: translate(-50%, -50%) scale(1.4); }
  100% { opacity: 0; transform: translate(-50%, -50%) scale(0.2) translateY(8px); }
}

/* LINK */
.aero-link {
  color: oklch(40% 0.13 245); text-decoration: none;
  border-bottom: 1px dotted oklch(55% 0.12 240); transition: color 150ms;
}
.aero-link:hover { color: oklch(60% 0.17 40); border-bottom-color: oklch(60% 0.17 40); }

/* ================================================================
   THEME SWITCHER (shared widget — themes restyle it below)
   ================================================================ */
.theme-switcher {
  position: fixed; top: 16px; right: 16px; z-index: 5000;
  display: inline-flex; align-items: center; gap: 2px;
  padding: 4px;
  border-radius: 999px;
  background: linear-gradient(to bottom, rgba(255,255,255,0.65), rgba(210,232,250,0.45));
  backdrop-filter: blur(16px) saturate(170%);
  -webkit-backdrop-filter: blur(16px) saturate(170%);
  border: 1px solid rgba(255,255,255,0.85);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.95),
    inset 0 -1px 0 rgba(120,160,200,0.25),
    0 8px 24px rgba(40,80,140,0.28);
  font-family: "Segoe UI", Tahoma, sans-serif;
}
.theme-switcher button {
  border: 0; background: transparent;
  padding: 6px 14px; border-radius: 999px;
  font: 600 11px/1 "Segoe UI", Tahoma, sans-serif;
  text-transform: lowercase; letter-spacing: 0.6px;
  color: oklch(28% 0.06 240);
  cursor: pointer;
  white-space: nowrap;
}
.theme-switcher button:hover { color: oklch(45% 0.16 230); }
.theme-switcher button.active {
  background: linear-gradient(to bottom,
    oklch(95% 0.10 145) 0%, oklch(75% 0.18 145) 48%,
    oklch(50% 0.16 150) 52%, oklch(70% 0.18 145) 100%);
  color: white;
  text-shadow: 0 1px 1px rgba(0,0,0,0.35);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.85), 0 2px 6px rgba(60,140,100,0.4);
}
.theme-switcher .ts-dot {
  width: 10px; height: 10px; border-radius: 50%; display: inline-block;
  margin-right: 6px; vertical-align: -1px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.7), inset 0 -1px 1px rgba(0,0,0,0.2);
}
.theme-switcher .ts-dot.aero   { background: radial-gradient(circle at 30% 30%, oklch(94% 0.10 145), oklch(55% 0.16 150)); }
.theme-switcher .ts-dot.chrome { background:
  conic-gradient(from 30deg, oklch(85% 0.13 30), oklch(85% 0.14 85), oklch(85% 0.14 150),
                  oklch(85% 0.14 200), oklch(85% 0.16 295), oklch(85% 0.13 350), oklch(85% 0.13 30)); }

/* COUNTER */
.counter {
  display: inline-flex; flex-direction: column; align-items: center; gap: 4px;
  padding: 8px; border-radius: 8px;
  background: linear-gradient(to bottom, oklch(45% 0.04 240), oklch(28% 0.05 250));
  border: 1px solid oklch(60% 0.05 240);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.3), 0 3px 10px rgba(0,0,0,0.3);
}
.counter .digits { display: flex; gap: 2px; }
.counter .d {
  width: 18px; height: 28px; display: flex; align-items: center; justify-content: center;
  background: linear-gradient(to bottom, #0a0a18, #1a1a2a);
  border: 1px solid oklch(35% 0.05 240);
  color: oklch(85% 0.20 145); font: 700 20px "Courier New", monospace;
  text-shadow: 0 0 6px oklch(85% 0.20 145), 0 0 12px oklch(85% 0.20 145 / 0.6);
  border-radius: 2px;
}
.counter .label {
  font-size: 9px; color: rgba(255,255,255,0.85); letter-spacing: 2px; text-transform: uppercase;
  font-family: "Segoe UI", Tahoma, sans-serif;
}

/* ================================================================
   THEME: Y2K CHROME  (1999-2002 — liquid silver, holographic rims,
   navy starfield, iridescent everything)
   ================================================================ */
body[data-theme="chrome"] {
  /* redefine root vars used by inline styles in desktop.html */
  --sky:
    linear-gradient(180deg, oklch(14% 0.04 250 / 0.35), oklch(8% 0.03 250 / 0.55)),
    url("img/wallpaper-chrome.png") center / cover no-repeat,
    linear-gradient(180deg, oklch(13% 0.05 250) 0%, oklch(7% 0.03 250) 100%);
  --title-bar: linear-gradient(180deg,
    oklch(94% 0.01 240) 0%,
    oklch(75% 0.02 240) 45%,
    oklch(55% 0.02 250) 50%,
    oklch(72% 0.02 240) 55%,
    oklch(88% 0.01 240) 100%);
  --start-btn: linear-gradient(180deg,
    oklch(92% 0.06 290) 0%, oklch(65% 0.16 290) 48%,
    oklch(35% 0.16 290) 52%, oklch(72% 0.14 290) 100%);
  --start-border: oklch(25% 0.10 290);
  --icon-blue:   linear-gradient(180deg, oklch(96% 0.02 240), oklch(72% 0.04 240) 45%, oklch(32% 0.06 250) 55%, oklch(82% 0.02 240));
  --icon-orange: linear-gradient(180deg, oklch(96% 0.02 240), oklch(72% 0.04 280) 45%, oklch(32% 0.06 290) 55%, oklch(82% 0.02 240));
  --icon-green:  linear-gradient(180deg, oklch(96% 0.02 240), oklch(72% 0.04 200) 45%, oklch(32% 0.06 220) 55%, oklch(82% 0.02 240));
  --icon-pink:   linear-gradient(180deg, oklch(96% 0.02 240), oklch(72% 0.04 320) 45%, oklch(32% 0.06 330) 55%, oklch(82% 0.02 240));
  --icon-silver: linear-gradient(180deg, oklch(96% 0.02 240), oklch(72% 0.02 250) 45%, oklch(32% 0.04 260) 55%, oklch(82% 0.02 240));
  background:
    linear-gradient(180deg, oklch(14% 0.04 250 / 0.35), oklch(8% 0.03 250 / 0.55)),
    url("img/wallpaper-chrome.png") center / cover no-repeat,
    linear-gradient(180deg, oklch(13% 0.05 250) 0%, oklch(7% 0.03 250) 100%) !important;
  background-attachment: fixed !important;
  color: oklch(15% 0.02 250);
}
body[data-theme="chrome"] .desk {
  background:
    linear-gradient(180deg, oklch(14% 0.04 250 / 0.35), oklch(8% 0.03 250 / 0.55)),
    url("img/wallpaper-chrome.png") center / cover no-repeat,
    linear-gradient(180deg, oklch(13% 0.05 250) 0%, oklch(7% 0.03 250) 100%) !important;
}
body[data-theme="chrome"] .clouds,
body[data-theme="chrome"] .sun,
body[data-theme="chrome"] .lens-flare,
body[data-theme="chrome"] .bubble-field { display: none !important; }

/* icons — chrome ball with iridescent halo */
body[data-theme="chrome"] .icon .glyph {
  background: linear-gradient(180deg,
    oklch(96% 0.02 240) 0%,
    oklch(75% 0.04 280) 42%,
    oklch(30% 0.06 280) 52%,
    oklch(70% 0.04 280) 72%,
    oklch(88% 0.03 240) 100%) !important;
  border: 1px solid oklch(45% 0.04 280);
  box-shadow:
    inset 0 2px 0 oklch(99% 0.01 240),
    inset 0 -2px 4px oklch(15% 0.05 280),
    0 0 0 1px oklch(20% 0.05 280),
    0 4px 14px oklch(5% 0.04 280),
    0 0 12px oklch(60% 0.20 320 / 0.35) !important;
  color: oklch(98% 0.02 320) !important;
  text-shadow:
    0 1px 1px oklch(15% 0.05 280),
    0 0 6px oklch(80% 0.20 320),
    0 0 10px oklch(80% 0.20 200) !important;
}
body[data-theme="chrome"] .icon .glyph::before {
  background: linear-gradient(180deg,
    oklch(99% 0.01 240 / 0.95) 0%,
    oklch(85% 0.10 200 / 0.45) 60%,
    transparent 100%) !important;
}
body[data-theme="chrome"] .icon .label {
  color: oklch(92% 0.02 240) !important;
  text-shadow: 0 1px 2px oklch(5% 0.04 280), 0 0 6px oklch(50% 0.15 290 / 0.7) !important;
  font-weight: 700;
}

/* windows — brushed chrome panel */
body[data-theme="chrome"] .glass {
  background:
    linear-gradient(180deg,
      oklch(94% 0.01 240) 0%,
      oklch(82% 0.01 240) 28%,
      oklch(72% 0.02 240) 50%,
      oklch(84% 0.01 240) 78%,
      oklch(92% 0.01 240) 100%) !important;
  border: 1px solid oklch(38% 0.03 250) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  box-shadow:
    inset 0 1px 0 oklch(99% 0 0),
    inset 0 -1px 0 oklch(45% 0.02 250),
    inset 0 0 0 1px oklch(99% 0 0 / 0.35),
    0 14px 36px oklch(5% 0.03 270),
    0 0 0 1px oklch(20% 0.02 250) !important;
  color: oklch(15% 0.02 250) !important;
}
/* iridescent rim overlay */
body[data-theme="chrome"] .glass::before {
  background: linear-gradient(180deg,
    oklch(99% 0.01 240 / 0.85) 0%,
    oklch(92% 0.06 200 / 0.5) 35%,
    oklch(92% 0.06 320 / 0.25) 65%,
    transparent 100%) !important;
}

body[data-theme="chrome"] .titlebar {
  background: linear-gradient(180deg,
    oklch(94% 0.01 240) 0%,
    oklch(75% 0.02 240) 45%,
    oklch(55% 0.02 250) 50%,
    oklch(72% 0.02 240) 55%,
    oklch(88% 0.01 240) 100%) !important;
  color: oklch(12% 0.02 250) !important;
  text-shadow: 0 1px 0 oklch(99% 0 0 / 0.85) !important;
  border-bottom: 1px solid oklch(35% 0.03 250) !important;
}
body[data-theme="chrome"] .titlebar .dot {
  box-shadow:
    inset 0 1px 0 oklch(99% 0 0 / 0.85),
    inset 0 -1px 1px oklch(15% 0.04 250),
    0 0 0 1px oklch(35% 0.03 250) !important;
}

/* aqua buttons → mercury chrome pills */
body[data-theme="chrome"] .aqua,
body[data-theme="chrome"] .aqua.orange,
body[data-theme="chrome"] .aqua.green {
  background: linear-gradient(180deg,
    oklch(96% 0.01 240) 0%,
    oklch(78% 0.02 240) 45%,
    oklch(40% 0.03 250) 52%,
    oklch(72% 0.02 240) 70%,
    oklch(90% 0.01 240) 100%) !important;
  border: 1px solid oklch(28% 0.03 250) !important;
  color: oklch(98% 0 0) !important;
  text-shadow: 0 1px 0 oklch(20% 0.04 250), 0 -1px 0 oklch(99% 0 0 / 0.5) !important;
  box-shadow:
    inset 0 1px 0 oklch(99% 0 0 / 0.9),
    inset 0 -2px 4px oklch(20% 0.04 250),
    0 3px 12px oklch(5% 0.03 270) !important;
}
body[data-theme="chrome"] .aqua::before {
  background: linear-gradient(180deg, oklch(99% 0 0 / 0.85), oklch(99% 0.05 200 / 0.15)) !important;
}

/* taskbar */
body[data-theme="chrome"] .taskbar {
  background: linear-gradient(180deg,
    oklch(88% 0.01 240) 0%,
    oklch(60% 0.02 250) 50%,
    oklch(75% 0.02 240) 100%) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border: 1px solid oklch(35% 0.03 250) !important;
  box-shadow:
    inset 0 1px 0 oklch(99% 0 0),
    inset 0 -1px 0 oklch(40% 0.02 250),
    0 12px 36px oklch(5% 0.03 270) !important;
}
body[data-theme="chrome"] .tray { color: oklch(15% 0.02 250) !important; }
body[data-theme="chrome"] .clock { color: oklch(15% 0.02 250) !important; }
body[data-theme="chrome"] .taskbar .sep {
  background: linear-gradient(to bottom, transparent, oklch(35% 0.03 250), transparent) !important;
}

body[data-theme="chrome"] .start {
  background: linear-gradient(180deg,
    oklch(92% 0.06 290) 0%,
    oklch(65% 0.16 290) 48%,
    oklch(35% 0.16 290) 52%,
    oklch(72% 0.14 290) 100%) !important;
  border: 1px solid oklch(25% 0.10 290) !important;
  color: oklch(99% 0.01 240) !important;
  text-shadow: 0 1px 1px oklch(15% 0.10 290), 0 0 6px oklch(80% 0.20 320 / 0.6) !important;
  box-shadow:
    inset 0 1px 0 oklch(99% 0 0 / 0.9),
    inset 0 -2px 4px oklch(20% 0.10 290),
    0 3px 12px oklch(5% 0.04 280) !important;
}

/* music toggle */
body[data-theme="chrome"] .music-toggle {
  background: linear-gradient(180deg, oklch(94% 0.01 240), oklch(70% 0.02 240)) !important;
  border: 1px solid oklch(38% 0.03 250) !important;
  color: oklch(15% 0.02 250) !important;
}

/* counter — chrome bezel */
body[data-theme="chrome"] .counter {
  background: linear-gradient(180deg, oklch(35% 0.04 250), oklch(20% 0.03 260)) !important;
  border: 1px solid oklch(60% 0.04 250) !important;
}

/* body text content */
body[data-theme="chrome"] .win .body { color: oklch(15% 0.02 250) !important; }
body[data-theme="chrome"] .win .body a,
body[data-theme="chrome"] .aero-link {
  color: oklch(40% 0.18 290) !important;
  border-bottom-color: oklch(55% 0.18 290) !important;
}
body[data-theme="chrome"] .aero-link:hover { color: oklch(50% 0.20 320) !important; }
body[data-theme="chrome"] .photo {
  background: linear-gradient(135deg,
    oklch(85% 0.02 240) 0%,
    oklch(55% 0.04 280) 45%,
    oklch(80% 0.03 240) 100%) !important;
  color: oklch(98% 0 0) !important;
}
body[data-theme="chrome"] .photo::before {
  background: repeating-linear-gradient(45deg,
    oklch(99% 0 0 / 0.12) 0 8px, transparent 8px 16px) !important;
}

body[data-theme="chrome"] .srv-host { color: oklch(15% 0.02 250) !important; }
body[data-theme="chrome"] .srv-row { border-bottom-color: oklch(50% 0.03 250 / 0.5) !important; }
body[data-theme="chrome"] .film-row { border-bottom-color: oklch(50% 0.03 250 / 0.5) !important; }
body[data-theme="chrome"] .film-title { color: oklch(12% 0.02 250) !important; }

/* counter digits keep their classic green LED — perfect Y2K touch */

/* scanline overlay across entire desk */

/* icons — dark HUD tile with neon outline */

/* windows — smoked glass with neon edge */

/* aqua buttons → neon HUD pills */

/* taskbar HUD */

/* music toggle */

/* counter — green LED on dark — feels right at home */

/* body text content — all bright/cyan/magenta */

/* photo placeholder → CRT readout */

/* servers + films + film posters */

/* form fields in guestbook */

/* ================================================================
   THEME SWITCHER per-theme restyle
   ================================================================ */
body[data-theme="chrome"] .theme-switcher {
  background: linear-gradient(180deg, oklch(90% 0.01 240), oklch(62% 0.02 250), oklch(80% 0.01 240)) !important;
  border: 1px solid oklch(35% 0.03 250);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  box-shadow:
    inset 0 1px 0 oklch(99% 0 0),
    inset 0 -1px 0 oklch(40% 0.02 250),
    0 8px 24px oklch(5% 0.03 270);
}
body[data-theme="chrome"] .theme-switcher button { color: oklch(15% 0.02 250); }
body[data-theme="chrome"] .theme-switcher button.active {
  background: linear-gradient(180deg, oklch(92% 0.06 290), oklch(45% 0.16 290));
  color: oklch(99% 0 0);
  text-shadow: 0 1px 1px oklch(15% 0.10 290);
}

/* ================================================================
   WELCOME PAGE overrides
   ================================================================ */
/* CHROME welcome */
body[data-theme="chrome"].welcome-body { /* set in welcome.html */ }
body[data-theme="chrome"] .gate {
  background:
    linear-gradient(180deg, oklch(94% 0.01 240) 0%, oklch(78% 0.02 240) 50%, oklch(90% 0.01 240) 100%) !important;
  border: 1px solid oklch(35% 0.03 250) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  box-shadow:
    inset 0 1px 0 oklch(99% 0 0),
    inset 0 -1px 0 oklch(45% 0.02 250),
    inset 0 0 0 1px oklch(99% 0 0 / 0.35),
    0 22px 60px oklch(5% 0.03 270) !important;
}
body[data-theme="chrome"] .gate::before {
  background: linear-gradient(180deg,
    oklch(99% 0.01 240 / 0.85) 0%,
    oklch(92% 0.06 200 / 0.4) 40%,
    transparent 100%) !important;
}
body[data-theme="chrome"] .mark {
  background:
    radial-gradient(circle at 30% 28%, oklch(99% 0.01 240) 0%, oklch(85% 0.05 290) 35%, oklch(40% 0.10 290) 100%) !important;
  border: 1.5px solid oklch(99% 0 0 / 0.6) !important;
  box-shadow:
    inset -6px -8px 18px oklch(20% 0.08 280),
    inset 4px 6px 12px oklch(99% 0 0 / 0.7),
    0 6px 22px oklch(50% 0.20 290 / 0.55),
    0 0 18px oklch(75% 0.20 320 / 0.4) !important;
  color: oklch(99% 0 0) !important;
  text-shadow: 0 1px 2px oklch(15% 0.10 290), 0 0 6px oklch(80% 0.20 320) !important;
}
body[data-theme="chrome"] .title { color: oklch(12% 0.02 250) !important; text-shadow: 0 1px 0 oklch(99% 0 0 / 0.7) !important; }
body[data-theme="chrome"] .title em {
  background: linear-gradient(180deg, oklch(75% 0.18 290), oklch(45% 0.16 290) 50%, oklch(72% 0.14 320));
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
  color: transparent !important;
}
body[data-theme="chrome"] .sub { color: oklch(20% 0.03 250) !important; }
body[data-theme="chrome"] .sub strong { color: oklch(35% 0.18 290) !important; }
body[data-theme="chrome"] .enter {
  background: linear-gradient(180deg,
    oklch(96% 0.02 240) 0%,
    oklch(78% 0.02 240) 45%,
    oklch(38% 0.04 250) 52%,
    oklch(72% 0.02 240) 70%,
    oklch(90% 0.01 240) 100%) !important;
  border: 1.5px solid oklch(28% 0.03 250) !important;
  color: oklch(98% 0 0) !important;
  text-shadow: 0 1px 0 oklch(20% 0.04 250), 0 -1px 0 oklch(99% 0 0 / 0.5) !important;
  box-shadow:
    inset 0 2px 0 oklch(99% 0 0 / 0.9),
    inset 0 -3px 6px oklch(20% 0.04 250),
    0 6px 22px oklch(5% 0.03 270),
    0 0 14px oklch(60% 0.20 320 / 0.4) !important;
}
body[data-theme="chrome"] .footer-note { color: oklch(90% 0.02 240) !important; text-shadow: 0 1px 2px oklch(5% 0.03 270) !important; }
body[data-theme="chrome"] .footer-note a { color: oklch(80% 0.18 290) !important; }
body[data-theme="chrome"] .meta { color: oklch(35% 0.03 250) !important; text-shadow: 0 1px 0 oklch(99% 0 0 / 0.5) !important; }
body[data-theme="chrome"] .badge {
  background: linear-gradient(180deg, oklch(90% 0.01 240), oklch(58% 0.02 250)) !important;
  border-color: oklch(30% 0.03 250) !important;
  color: oklch(99% 0 0) !important;
  text-shadow: 0 1px 1px oklch(15% 0.04 250) !important;
}
body[data-theme="chrome"] .badge.green { background: linear-gradient(180deg, oklch(85% 0.14 145), oklch(45% 0.12 150)) !important; }
body[data-theme="chrome"] .badge.silver { background: linear-gradient(180deg, oklch(94% 0.01 240), oklch(65% 0.02 250)) !important; color: oklch(15% 0.02 250) !important; text-shadow: 0 1px 0 oklch(99% 0 0 / 0.7) !important; }

/* CHROME welcome body background */
body[data-theme="chrome"].welcome-body {
  background:
    linear-gradient(180deg, oklch(14% 0.04 250 / 0.35), oklch(8% 0.03 250 / 0.55)),
    url("img/wallpaper-chrome.png") center / cover no-repeat,
    linear-gradient(180deg, oklch(13% 0.05 250) 0%, oklch(7% 0.03 250) 100%) !important;
  background-attachment: fixed !important;
}


/* ================================================================
   Y2K CHROME — typography upgrade + extra polish
   Audiowide (display) · Michroma (UI/labels) · Space Grotesk (body) · IBM Plex Mono (mono)
   ================================================================ */

/* Window content reads as smooth modern sans */
body[data-theme="chrome"] .win .body,
body[data-theme="chrome"] .win .body * {
  font-family: "Space Grotesk", "Segoe UI", Tahoma, sans-serif;
}
/* Numeric/host bits stay mono */
body[data-theme="chrome"] .srv-host,
body[data-theme="chrome"] .clock,
body[data-theme="chrome"] .film-year,
body[data-theme="chrome"] code,
body[data-theme="chrome"] .photo,
body[data-theme="chrome"] textarea {
  font-family: "IBM Plex Mono", "Courier New", monospace !important;
  letter-spacing: 0;
}

/* Title bars → Michroma, narrow geometric, all-caps */
body[data-theme="chrome"] .titlebar {
  font-family: "Michroma", "Segoe UI", Tahoma, sans-serif !important;
  font-size: 10px !important;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  font-weight: 400 !important;
  position: relative;
  height: 34px !important;
}
/* Iridescent seam under titlebar */
body[data-theme="chrome"] .titlebar::after {
  content: "";
  position: absolute; left: 0; right: 0; bottom: -1px; height: 2px;
  background: linear-gradient(90deg,
    oklch(85% 0.18 30) 0%,
    oklch(88% 0.14 80) 18%,
    oklch(88% 0.16 150) 36%,
    oklch(88% 0.14 200) 54%,
    oklch(85% 0.18 295) 72%,
    oklch(85% 0.18 350) 90%,
    oklch(85% 0.18 30) 100%);
  background-size: 200% 100%;
  animation: chromeShimmer 8s linear infinite;
  opacity: 0.85;
  pointer-events: none;
}
@keyframes chromeShimmer {
  0%   { background-position: 0% 0%; }
  100% { background-position: 200% 0%; }
}

/* Icon labels → Michroma small caps */
body[data-theme="chrome"] .icon .label {
  font-family: "Michroma", sans-serif !important;
  font-size: 9px !important;
  letter-spacing: 1px;
  text-transform: uppercase;
  font-weight: 400;
  line-height: 1.3;
  margin-top: 4px;
}
/* Brighten icon halo + cleaner specular */
body[data-theme="chrome"] .icon:hover .glyph {
  filter: brightness(1.08);
  box-shadow:
    inset 0 2px 0 oklch(99% 0.01 240),
    inset 0 -2px 4px oklch(15% 0.05 280),
    0 0 0 1px oklch(20% 0.05 280),
    0 4px 14px oklch(5% 0.04 280),
    0 0 18px oklch(65% 0.22 320 / 0.55) !important;
}

/* Start button → Michroma */
body[data-theme="chrome"] .start {
  font-family: "Michroma", sans-serif !important;
  font-size: 10px !important;
  letter-spacing: 2px;
  text-transform: uppercase;
}
body[data-theme="chrome"] .start span:first-child { font-size: 14px !important; letter-spacing: 0; }

/* Music toggle */
body[data-theme="chrome"] .music-toggle {
  font-family: "Michroma", sans-serif !important;
  font-size: 9px !important;
  letter-spacing: 1px;
  text-transform: uppercase;
}

/* Tray text */
body[data-theme="chrome"] .tray {
  font-family: "Michroma", sans-serif !important;
  font-size: 9px !important;
  letter-spacing: 1px;
  text-transform: uppercase;
}

/* Aqua buttons → Michroma */
body[data-theme="chrome"] .aqua,
body[data-theme="chrome"] .aqua.sm,
body[data-theme="chrome"] .aqua.lg {
  font-family: "Michroma", sans-serif !important;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  font-size: 10px !important;
}
body[data-theme="chrome"] .aqua.sm { font-size: 9px !important; padding: 7px 14px !important; }

/* Theme switcher pills */
body[data-theme="chrome"] .theme-switcher button {
  font-family: "Michroma", sans-serif !important;
  font-size: 9px !important;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  padding: 7px 16px !important;
}

/* Body content headings get more presence */
body[data-theme="chrome"] .win .body > div[style*="font-size: 22px"],
body[data-theme="chrome"] .win .body > div > div[style*="font-size: 22px"] {
  font-family: "Audiowide", "Space Grotesk", sans-serif !important;
  letter-spacing: -0.5px;
  text-shadow: 0 1px 0 oklch(99% 0 0 / 0.7) !important;
}

/* Servers list — terminal vibe */
body[data-theme="chrome"] .srv-row { font-family: "IBM Plex Mono", monospace; }
body[data-theme="chrome"] .srv-meta { font-family: "Space Grotesk", sans-serif !important; font-size: 9px !important; letter-spacing: 0.5px; text-transform: uppercase; opacity: 0.7; }

/* Film titles get display font, year stays mono */
body[data-theme="chrome"] .film-title {
  font-family: "Audiowide", "Space Grotesk", sans-serif !important;
  font-weight: 400 !important;
  font-size: 12px !important;
  letter-spacing: 0;
}

/* Counter label */
body[data-theme="chrome"] .counter .label {
  font-family: "Michroma", sans-serif !important;
  letter-spacing: 1.5px;
  font-size: 8px !important;
}
body[data-theme="chrome"] .counter .d {
  font-family: "IBM Plex Mono", "Courier New", monospace !important;
}

/* Subtle horizontal banding on the chrome glass — looks like rolled steel */
body[data-theme="chrome"] .glass {
  background-image:
    repeating-linear-gradient(0deg,
      oklch(99% 0 0 / 0.04) 0px, oklch(99% 0 0 / 0.04) 1px,
      transparent 1px, transparent 3px),
    linear-gradient(180deg,
      oklch(94% 0.01 240) 0%,
      oklch(82% 0.01 240) 28%,
      oklch(72% 0.02 240) 50%,
      oklch(84% 0.01 240) 78%,
      oklch(92% 0.01 240) 100%) !important;
}

/* ================================================================
   WELCOME page — push the chrome treatment harder
   ================================================================ */
body[data-theme="chrome"] .title {
  font-family: "Audiowide", sans-serif !important;
  font-weight: 400 !important;
  font-size: 78px !important;
  letter-spacing: -2px !important;
  line-height: 0.95;
  color: oklch(12% 0.02 250) !important;
  background: linear-gradient(180deg,
    oklch(96% 0.01 240) 0%,
    oklch(85% 0.01 240) 35%,
    oklch(35% 0.02 250) 50%,
    oklch(78% 0.02 240) 65%,
    oklch(94% 0.01 240) 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
  text-shadow: none !important;
  filter: drop-shadow(0 2px 0 oklch(99% 0 0 / 0.5)) drop-shadow(0 4px 12px oklch(5% 0.03 270 / 0.6));
}
body[data-theme="chrome"] .title em {
  font-family: "Audiowide", sans-serif !important;
  font-style: italic;
  background: linear-gradient(135deg,
    oklch(85% 0.18 30) 0%,
    oklch(88% 0.14 80) 20%,
    oklch(88% 0.16 150) 40%,
    oklch(85% 0.18 200) 60%,
    oklch(85% 0.18 295) 80%,
    oklch(85% 0.18 350) 100%) !important;
  background-size: 200% 200% !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
  animation: chromeShimmer 6s linear infinite;
}
body[data-theme="chrome"] .sub {
  font-family: "Space Grotesk", sans-serif !important;
  font-size: 13px !important;
}
body[data-theme="chrome"] .enter {
  font-family: "Michroma", sans-serif !important;
  font-size: 16px !important;
  letter-spacing: 4px !important;
  text-transform: uppercase;
}
body[data-theme="chrome"] .meta {
  font-family: "Michroma", sans-serif !important;
  font-size: 9px !important;
  letter-spacing: 2px;
}
body[data-theme="chrome"] .footer-note {
  font-family: "IBM Plex Mono", monospace !important;
  font-size: 10px !important;
  letter-spacing: 0.5px;
}
body[data-theme="chrome"] .badge {
  font-family: "Michroma", sans-serif !important;
  font-size: 8px !important;
  letter-spacing: 1.5px;
}

/* Holographic shimmer sweep across the welcome glass */
body[data-theme="chrome"] .gate {
  position: relative;
  overflow: hidden;
}
body[data-theme="chrome"] .gate::after {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(115deg,
    transparent 30%,
    oklch(99% 0.05 200 / 0.18) 45%,
    oklch(85% 0.16 320 / 0.12) 50%,
    oklch(99% 0.05 200 / 0.18) 55%,
    transparent 70%);
  background-size: 250% 100%;
  animation: chromeSweep 7s ease-in-out infinite;
  pointer-events: none;
  mix-blend-mode: screen;
  border-radius: inherit;
}
@keyframes chromeSweep {
  0%, 100% { background-position: 200% 0%; }
  50%      { background-position: -50% 0%; }
}

/* Welcome mark — chrome orb gets a holographic ring */
body[data-theme="chrome"] .mark {
  position: relative;
}
body[data-theme="chrome"] .mark::after {
  content: "";
  position: absolute; inset: -5px;
  border-radius: 50%;
  background: conic-gradient(from 0deg,
    oklch(85% 0.18 30),
    oklch(88% 0.14 80),
    oklch(88% 0.16 150),
    oklch(85% 0.18 200),
    oklch(85% 0.18 295),
    oklch(85% 0.18 350),
    oklch(85% 0.18 30));
  mask: radial-gradient(circle, transparent 56%, black 58%, black 64%, transparent 66%);
  -webkit-mask: radial-gradient(circle, transparent 56%, black 58%, black 64%, transparent 66%);
  animation: spin 12s linear infinite;
  pointer-events: none;
  opacity: 0.9;
}
@keyframes spin { to { transform: rotate(360deg); } }


/* ================================================================
   AERO — typography upgrade (Plus Jakarta Sans — closest free Frutiger)
   ================================================================ */

/* Base font for the aero theme (default) */
body[data-theme="aero"],
body[data-theme="aero"] .win .body,
body[data-theme="aero"] .win .body * {
  font-family: "Plus Jakarta Sans", "Segoe UI", Tahoma, "Trebuchet MS", sans-serif;
  font-feature-settings: "ss01", "cv11";
}

/* Mono bits in aero — consistent with chrome */
body[data-theme="aero"] .srv-host,
body[data-theme="aero"] .clock,
body[data-theme="aero"] .film-year,
body[data-theme="aero"] code,
body[data-theme="aero"] .photo,
body[data-theme="aero"] textarea {
  font-family: "IBM Plex Mono", "Courier New", monospace !important;
  letter-spacing: 0;
}

/* Title bars — slightly tightened Jakarta */
body[data-theme="aero"] .titlebar {
  font-family: "Plus Jakarta Sans", "Segoe UI", Tahoma, sans-serif !important;
  font-weight: 700 !important;
  font-size: 12px !important;
  letter-spacing: 0.2px;
}

/* Icon labels — refined */
body[data-theme="aero"] .icon .label {
  font-family: "Plus Jakarta Sans", "Segoe UI", Tahoma, sans-serif !important;
  font-weight: 600 !important;
  font-size: 12px !important;
  letter-spacing: 0.1px;
}

/* Start, tray, music toggle */
body[data-theme="aero"] .start {
  font-family: "Plus Jakarta Sans", sans-serif !important;
  font-weight: 800 !important;
  font-size: 13px !important;
  letter-spacing: 0.3px;
  text-transform: none;
}
body[data-theme="aero"] .tray {
  font-family: "Plus Jakarta Sans", sans-serif !important;
  font-weight: 500 !important;
  font-size: 12px !important;
  letter-spacing: 0;
  text-transform: none;
}
body[data-theme="aero"] .music-toggle {
  font-family: "Plus Jakarta Sans", sans-serif !important;
  font-weight: 500 !important;
  font-size: 12px !important;
  letter-spacing: 0;
  text-transform: none;
}

/* Aqua buttons */
body[data-theme="aero"] .aqua,
body[data-theme="aero"] .aqua.sm,
body[data-theme="aero"] .aqua.lg {
  font-family: "Plus Jakarta Sans", sans-serif !important;
  font-weight: 700 !important;
  letter-spacing: 0.2px;
  text-transform: none;
}

/* Theme switcher pills */
body[data-theme="aero"] .theme-switcher button {
  font-family: "Plus Jakarta Sans", sans-serif !important;
  font-weight: 700 !important;
  font-size: 12px !important;
  letter-spacing: 0.3px;
  text-transform: lowercase;
}

/* Servers list */
body[data-theme="aero"] .srv-row { font-family: "IBM Plex Mono", monospace; }
body[data-theme="aero"] .srv-meta {
  font-family: "Plus Jakarta Sans", sans-serif !important;
  font-weight: 500 !important;
  font-size: 10px !important;
  letter-spacing: 0.4px;
  text-transform: uppercase;
  opacity: 0.7;
}

/* Film titles */
body[data-theme="aero"] .film-title {
  font-family: "Plus Jakarta Sans", sans-serif !important;
  font-weight: 800 !important;
  letter-spacing: -0.2px;
}

/* Counter label */
body[data-theme="aero"] .counter .label {
  font-family: "Plus Jakarta Sans", sans-serif !important;
  font-weight: 700 !important;
  letter-spacing: 1.5px;
  font-size: 9px !important;
  text-transform: uppercase;
}
body[data-theme="aero"] .counter .d {
  font-family: "IBM Plex Mono", "Courier New", monospace !important;
}

/* ================================================================
   WELCOME — aero
   ================================================================ */
body[data-theme="aero"] .title {
  font-family: "Plus Jakarta Sans", sans-serif !important;
  font-weight: 200 !important;
  font-size: 72px !important;
  letter-spacing: -2.5px !important;
  line-height: 1;
}
body[data-theme="aero"] .title em {
  font-family: "Plus Jakarta Sans", sans-serif !important;
  font-weight: 300 !important;
  font-style: italic;
  letter-spacing: -2px;
}
body[data-theme="aero"] .sub {
  font-family: "Plus Jakarta Sans", sans-serif !important;
  font-weight: 400 !important;
  font-size: 14px !important;
  letter-spacing: 0;
  line-height: 1.6;
}
body[data-theme="aero"] .sub strong {
  font-weight: 700 !important;
}
body[data-theme="aero"] .enter {
  font-family: "Plus Jakarta Sans", sans-serif !important;
  font-weight: 700 !important;
  font-size: 22px !important;
  letter-spacing: 0.3px !important;
  text-transform: lowercase;
}
body[data-theme="aero"] .meta {
  font-family: "Plus Jakarta Sans", sans-serif !important;
  font-weight: 600 !important;
  font-size: 10px !important;
  letter-spacing: 1.8px;
  text-transform: uppercase;
}
body[data-theme="aero"] .footer-note {
  font-family: "IBM Plex Mono", monospace !important;
  font-size: 11px !important;
  letter-spacing: 0.3px;
}
body[data-theme="aero"] .badge {
  font-family: "Plus Jakarta Sans", sans-serif !important;
  font-weight: 700 !important;
  font-size: 9px !important;
  letter-spacing: 1.2px;
  text-transform: uppercase;
}


/* ================================================================
   CURSOR — chrome theme gets a silver Y2K bead instead of the
   aero water-droplet. Sparkle trail stays.
   ================================================================ */
body[data-theme="chrome"],
body[data-theme="chrome"] * {
  cursor: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 22 22'><defs><linearGradient id='c' x1='0' y1='0' x2='0' y2='1'><stop offset='0' stop-color='%23f4f6ff'/><stop offset='0.45' stop-color='%23808aa8'/><stop offset='0.55' stop-color='%232f3450'/><stop offset='1' stop-color='%23dbe2f0'/></linearGradient></defs><circle cx='11' cy='11' r='10' fill='none' stroke='%23c6a8ec' stroke-width='1' opacity='0.75'/><circle cx='11' cy='11' r='8' fill='url(%23c)' stroke='%23181a30' stroke-width='0.7'/><ellipse cx='8.6' cy='7.4' rx='2.8' ry='1.8' fill='white' opacity='0.9'/><circle cx='11' cy='11' r='1' fill='%23f8e6ff' opacity='0.9'/></svg>") 11 11, auto;
}
/* hover/pointer state inside chrome — same bead, no change needed */
body[data-theme="chrome"] a,
body[data-theme="chrome"] button,
body[data-theme="chrome"] .icon,
body[data-theme="chrome"] .aqua,
body[data-theme="chrome"] .enter,
body[data-theme="chrome"] .start {
  cursor: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 22 22'><defs><linearGradient id='c' x1='0' y1='0' x2='0' y2='1'><stop offset='0' stop-color='%23f4f6ff'/><stop offset='0.45' stop-color='%23808aa8'/><stop offset='0.55' stop-color='%232f3450'/><stop offset='1' stop-color='%23dbe2f0'/></linearGradient></defs><circle cx='11' cy='11' r='10' fill='none' stroke='%23c6a8ec' stroke-width='1' opacity='0.9'/><circle cx='11' cy='11' r='8' fill='url(%23c)' stroke='%23181a30' stroke-width='0.7'/><ellipse cx='8.6' cy='7.4' rx='2.8' ry='1.8' fill='white' opacity='0.95'/><circle cx='11' cy='11' r='1.4' fill='%23ffd4ff' opacity='1'/></svg>") 11 11, pointer;
}

/* ================================================================
   CHROME THEME — Resize handles
   ================================================================ */
body[data-theme="chrome"] .rs-se {
  background-image:
    linear-gradient(135deg, transparent 0 38%, oklch(80% 0.18 290 / 0.85) 38% 48%, transparent 48% 60%, oklch(82% 0.16 200 / 0.85) 60% 70%, transparent 70%, oklch(85% 0.18 320 / 0.85) 82% 92%, transparent 92%) !important;
  opacity: 0.8;
}
body[data-theme="chrome"] .rs-se:hover {
  filter: drop-shadow(0 0 6px oklch(70% 0.20 290 / 0.9)) !important;
  opacity: 1;
}

/* ================================================================
   CHROME THEME — Browser ("Internet" window)
   ================================================================ */

body[data-theme="chrome"] .browser-toolbar {
  background-image:
    repeating-linear-gradient(0deg,
      oklch(99% 0 0 / 0.05) 0px, oklch(99% 0 0 / 0.05) 1px,
      transparent 1px, transparent 3px),
    linear-gradient(180deg,
      oklch(92% 0.01 240) 0%,
      oklch(78% 0.01 240) 50%,
      oklch(86% 0.01 240) 100%) !important;
  border-bottom: 1px solid oklch(28% 0.03 250) !important;
  box-shadow:
    inset 0 1px 0 oklch(99% 0 0 / 0.7),
    inset 0 -1px 0 oklch(99% 0.05 200 / 0.25);
  position: relative;
}
body[data-theme="chrome"] .browser-toolbar::after {
  content: "";
  position: absolute; left: 0; right: 0; bottom: -1px; height: 1px;
  background: linear-gradient(90deg,
    transparent 0%,
    oklch(75% 0.18 200 / 0.7) 20%,
    oklch(75% 0.18 290 / 0.8) 50%,
    oklch(75% 0.18 320 / 0.7) 80%,
    transparent 100%);
  pointer-events: none;
}

body[data-theme="chrome"] .nav-btn {
  background: linear-gradient(180deg,
    oklch(96% 0.01 240) 0%,
    oklch(72% 0.02 245) 50%,
    oklch(40% 0.03 250) 51%,
    oklch(78% 0.02 240) 100%) !important;
  border: 1px solid oklch(28% 0.03 250) !important;
  color: oklch(15% 0.02 250) !important;
  box-shadow:
    inset 0 1px 0 oklch(99% 0 0 / 0.85),
    inset 0 -1px 0 oklch(99% 0.05 200 / 0.25),
    0 1px 3px oklch(5% 0.03 270 / 0.5) !important;
}
body[data-theme="chrome"] .nav-btn:hover { filter: brightness(1.08) saturate(1.1); }

body[data-theme="chrome"] .url-bar {
  background: linear-gradient(180deg,
    oklch(14% 0.04 260) 0%,
    oklch(18% 0.04 260) 100%) !important;
  border: 1px solid oklch(28% 0.04 260) !important;
  box-shadow:
    inset 0 1px 3px oklch(2% 0.02 270 / 0.7),
    inset 0 -1px 0 oklch(75% 0.18 290 / 0.18),
    0 0 8px oklch(60% 0.18 290 / 0.12) !important;
  font-family: "IBM Plex Mono", monospace !important;
  font-size: 11px !important;
  color: oklch(80% 0.04 245) !important;
  letter-spacing: 0.3px;
}
body[data-theme="chrome"] .url-bar .lock { color: oklch(78% 0.16 145) !important; filter: drop-shadow(0 0 4px oklch(80% 0.18 145 / 0.6)); }
body[data-theme="chrome"] .url-bar .url-scheme { color: oklch(55% 0.08 280) !important; }
body[data-theme="chrome"] .url-bar .url-host { color: oklch(85% 0.14 290) !important; text-shadow: 0 0 6px oklch(70% 0.20 290 / 0.55); font-weight: 500 !important; }
body[data-theme="chrome"] .url-bar .url-path { color: oklch(82% 0.06 220) !important; }
body[data-theme="chrome"] .url-bar .caret { background: oklch(85% 0.18 200) !important; box-shadow: 0 0 6px oklch(75% 0.20 200); }

body[data-theme="chrome"] .nav-btn#br-go {
  font-family: "Michroma", sans-serif !important;
  font-size: 9px !important;
  letter-spacing: 1.5px;
  text-transform: uppercase;
}

body[data-theme="chrome"] .browser-bookmarks {
  background: linear-gradient(180deg, oklch(28% 0.03 250) 0%, oklch(18% 0.03 255) 100%) !important;
  border-bottom: 1px solid oklch(12% 0.03 260) !important;
  box-shadow:
    inset 0 1px 0 oklch(60% 0.04 250 / 0.4),
    inset 0 -1px 0 oklch(2% 0.02 270 / 0.6);
}
body[data-theme="chrome"] .bm {
  color: oklch(75% 0.04 245) !important;
  font-family: "Michroma", sans-serif !important;
  font-size: 9px !important;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  border: 1px solid transparent !important;
}
body[data-theme="chrome"] .bm:hover { background: oklch(35% 0.05 270 / 0.5) !important; border-color: oklch(60% 0.12 290 / 0.5) !important; color: oklch(95% 0.04 280) !important; }
body[data-theme="chrome"] .bm.active {
  background: linear-gradient(180deg, oklch(45% 0.10 290 / 0.6), oklch(28% 0.08 280 / 0.6)) !important;
  border-color: oklch(70% 0.18 290 / 0.7) !important;
  color: oklch(96% 0.04 290) !important;
  box-shadow: inset 0 1px 0 oklch(85% 0.14 290 / 0.4), 0 0 8px oklch(70% 0.18 290 / 0.4);
  text-shadow: 0 0 6px oklch(80% 0.18 290 / 0.6);
}
body[data-theme="chrome"] .bm .favicon { box-shadow: inset 0 1px 0 oklch(99% 0 0 / 0.4), 0 0 4px oklch(70% 0.18 290 / 0.4); }
body[data-theme="chrome"] .bm.home .favicon { background: linear-gradient(135deg, oklch(85% 0.18 290), oklch(45% 0.16 290) 50%, oklch(72% 0.14 320)) !important; }

body[data-theme="chrome"] .browser-page {
  background:
    radial-gradient(120% 60% at 100% 0%, oklch(28% 0.10 290 / 0.45) 0%, transparent 55%),
    radial-gradient(80% 50% at 0% 100%, oklch(25% 0.10 220 / 0.4) 0%, transparent 55%),
    linear-gradient(180deg, oklch(10% 0.03 265) 0%, oklch(7% 0.02 270) 100%) !important;
  color: oklch(85% 0.02 245) !important;
  font-family: "Space Grotesk", "Segoe UI", sans-serif !important;
}
body[data-theme="chrome"] .idx-hero,
body[data-theme="chrome"] .art-page { position: relative; }
body[data-theme="chrome"] .idx-hero::after,
body[data-theme="chrome"] .art-page::after {
  content: "";
  position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg, oklch(99% 0 0 / 0.025) 0px, oklch(99% 0 0 / 0.025) 1px, transparent 1px, transparent 3px);
  pointer-events: none;
}
body[data-theme="chrome"] .browser-page::-webkit-scrollbar-track { background: linear-gradient(to right, oklch(8% 0.02 270), oklch(14% 0.03 265)) !important; }
body[data-theme="chrome"] .browser-page::-webkit-scrollbar-thumb { background: linear-gradient(to right, oklch(60% 0.04 250), oklch(35% 0.03 255)) !important; border: 2px solid oklch(10% 0.03 265) !important; box-shadow: 0 0 4px oklch(70% 0.18 290 / 0.5); }

body[data-theme="chrome"] .idx-hero {
  background:
    radial-gradient(80% 100% at 100% 0%, oklch(40% 0.18 290 / 0.35) 0%, transparent 60%),
    radial-gradient(60% 80% at 0% 100%, oklch(35% 0.14 200 / 0.3) 0%, transparent 60%),
    linear-gradient(180deg, oklch(14% 0.04 265) 0%, oklch(10% 0.03 270) 100%) !important;
  border-bottom: 1px solid oklch(30% 0.06 280 / 0.6) !important;
  padding: 38px 40px 28px !important;
}
body[data-theme="chrome"] .idx-eyebrow { font-family: "Michroma", sans-serif !important; font-size: 9px !important; letter-spacing: 3px !important; color: oklch(75% 0.14 290) !important; text-shadow: 0 0 6px oklch(70% 0.18 290 / 0.4); }
body[data-theme="chrome"] .idx-title { font-family: "Audiowide", "Space Grotesk", sans-serif !important; font-weight: 400 !important; font-size: 36px !important; letter-spacing: -0.5px !important; color: oklch(96% 0.02 240) !important; text-shadow: 0 1px 0 oklch(99% 0 0 / 0.15), 0 2px 12px oklch(40% 0.18 290 / 0.5); }
body[data-theme="chrome"] .idx-title em {
  font-family: "Audiowide", sans-serif !important; font-style: italic;
  background: linear-gradient(135deg, oklch(85% 0.18 200) 0%, oklch(85% 0.18 290) 50%, oklch(85% 0.18 350) 100%) !important;
  background-size: 200% 200% !important;
  -webkit-background-clip: text !important; background-clip: text !important;
  -webkit-text-fill-color: transparent !important; color: transparent !important;
  animation: chromeShimmer 6s linear infinite;
}
body[data-theme="chrome"] .idx-sub { font-family: "Space Grotesk", sans-serif !important; font-style: normal !important; font-size: 13px !important; color: oklch(70% 0.04 250) !important; }
body[data-theme="chrome"] .idx-list { padding: 24px 40px 48px !important; }
body[data-theme="chrome"] .idx-art { border-bottom: 1px solid oklch(28% 0.04 270 / 0.6) !important; padding: 20px 0 !important; position: relative; z-index: 1; }
body[data-theme="chrome"] .idx-art:hover { padding-left: 10px !important; }
body[data-theme="chrome"] .idx-art:hover::before { content: ""; position: absolute; left: 0; top: 12px; bottom: 12px; width: 2px; background: linear-gradient(180deg, oklch(80% 0.18 200), oklch(80% 0.18 290), oklch(80% 0.18 350)); box-shadow: 0 0 8px oklch(70% 0.18 290); }
body[data-theme="chrome"] .idx-art-num { font-family: "IBM Plex Mono", monospace !important; font-weight: 500 !important; color: oklch(55% 0.10 280) !important; text-shadow: 0 0 8px oklch(50% 0.16 290 / 0.5); }
body[data-theme="chrome"] .idx-art-title { font-family: "Audiowide", "Space Grotesk", sans-serif !important; font-weight: 400 !important; font-size: 17px !important; letter-spacing: -0.1px !important; color: oklch(94% 0.02 245) !important; }
body[data-theme="chrome"] .idx-art:hover .idx-art-title { color: oklch(90% 0.14 290) !important; text-shadow: 0 0 10px oklch(70% 0.18 290 / 0.55); text-decoration-color: oklch(70% 0.18 290 / 0.7) !important; }
body[data-theme="chrome"] .idx-art-excerpt { font-family: "Space Grotesk", sans-serif !important; font-size: 13px !important; color: oklch(68% 0.04 250) !important; }
body[data-theme="chrome"] .idx-art-meta { font-family: "IBM Plex Mono", monospace !important; font-size: 10px !important; color: oklch(60% 0.06 270) !important; }
body[data-theme="chrome"] .idx-art-tag { font-family: "Michroma", sans-serif !important; font-size: 8px !important; letter-spacing: 1.5px; text-transform: uppercase; background: linear-gradient(180deg, oklch(28% 0.08 290 / 0.6), oklch(18% 0.06 280 / 0.6)) !important; color: oklch(85% 0.12 290) !important; border: 1px solid oklch(55% 0.14 290 / 0.5); box-shadow: inset 0 1px 0 oklch(70% 0.16 290 / 0.3), 0 0 6px oklch(50% 0.16 290 / 0.3); padding: 2px 7px !important; }

body[data-theme="chrome"] .art-page { padding: 44px 60px 64px !important; max-width: 640px; }
body[data-theme="chrome"] .art-back { font-family: "Michroma", sans-serif !important; font-size: 9px !important; letter-spacing: 2.5px !important; color: oklch(72% 0.14 290) !important; text-shadow: 0 0 5px oklch(60% 0.18 290 / 0.4); }
body[data-theme="chrome"] .art-back:hover { color: oklch(88% 0.16 290) !important; text-shadow: 0 0 8px oklch(70% 0.20 290 / 0.7); }
body[data-theme="chrome"] .art-eyebrow { font-family: "Michroma", sans-serif !important; font-size: 9px !important; letter-spacing: 3px !important; color: oklch(75% 0.14 200) !important; text-shadow: 0 0 5px oklch(60% 0.18 200 / 0.4); }
body[data-theme="chrome"] .art-title { font-family: "Audiowide", "Space Grotesk", sans-serif !important; font-weight: 400 !important; font-size: 30px !important; line-height: 1.2 !important; letter-spacing: -0.3px !important; color: oklch(97% 0.02 240) !important; text-shadow: 0 1px 0 oklch(99% 0 0 / 0.15), 0 2px 10px oklch(40% 0.18 290 / 0.5); margin: 0 0 16px !important; }
body[data-theme="chrome"] .art-title em {
  font-family: "Audiowide", sans-serif !important; font-style: italic;
  background: linear-gradient(135deg, oklch(85% 0.18 200) 0%, oklch(85% 0.18 290) 50%, oklch(85% 0.18 350) 100%) !important;
  background-size: 200% 200% !important;
  -webkit-background-clip: text !important; background-clip: text !important;
  -webkit-text-fill-color: transparent !important; color: transparent !important;
  animation: chromeShimmer 6s linear infinite;
}
body[data-theme="chrome"] .art-byline { font-family: "IBM Plex Mono", monospace !important; font-style: normal !important; font-size: 11px !important; color: oklch(60% 0.06 270) !important; border-bottom-color: oklch(28% 0.04 270 / 0.6) !important; letter-spacing: 0.3px; }
body[data-theme="chrome"] .art-body { font-family: "Space Grotesk", sans-serif !important; font-size: 14.5px !important; line-height: 1.78 !important; color: oklch(82% 0.02 250) !important; }
body[data-theme="chrome"] .art-body p:first-of-type::first-letter {
  font-family: "Audiowide", sans-serif !important; font-size: 64px !important; line-height: 0.85 !important; padding: 8px 12px 0 0 !important;
  background: linear-gradient(135deg, oklch(85% 0.18 200) 0%, oklch(85% 0.18 290) 50%, oklch(85% 0.18 350) 100%) !important;
  background-size: 200% 200% !important;
  -webkit-background-clip: text !important; background-clip: text !important;
  -webkit-text-fill-color: transparent !important; color: transparent !important;
  filter: drop-shadow(0 0 8px oklch(70% 0.18 290 / 0.6));
  animation: chromeShimmer 6s linear infinite;
}
body[data-theme="chrome"] .art-body em { color: oklch(88% 0.10 285) !important; font-style: italic; }
body[data-theme="chrome"] .art-body h2 { font-family: "Audiowide", sans-serif !important; font-weight: 400 !important; font-size: 18px !important; color: oklch(94% 0.04 270) !important; letter-spacing: 0 !important; margin: 36px 0 14px !important; text-shadow: 0 0 8px oklch(50% 0.16 290 / 0.3); }
body[data-theme="chrome"] .art-body blockquote { border-left: 2px solid transparent !important; border-image: linear-gradient(180deg, oklch(80% 0.18 200), oklch(80% 0.18 290), oklch(80% 0.18 350)) 1; color: oklch(85% 0.06 280) !important; font-style: italic; background: linear-gradient(90deg, oklch(20% 0.06 280 / 0.35) 0%, transparent 100%); padding: 12px 0 12px 20px !important; margin: 28px 0 !important; }
body[data-theme="chrome"] .art-body a,
body[data-theme="chrome"] .art-body .ilink { color: oklch(82% 0.14 290) !important; text-decoration-color: oklch(70% 0.18 290 / 0.6) !important; text-shadow: 0 0 4px oklch(60% 0.18 290 / 0.4); }
body[data-theme="chrome"] .art-body a:hover,
body[data-theme="chrome"] .art-body .ilink:hover { color: oklch(92% 0.16 290) !important; text-shadow: 0 0 8px oklch(70% 0.20 290 / 0.7); }
body[data-theme="chrome"] .art-body code { font-family: "IBM Plex Mono", monospace !important; background: linear-gradient(180deg, oklch(14% 0.04 270), oklch(10% 0.03 270)) !important; color: oklch(85% 0.14 200) !important; border: 1px solid oklch(28% 0.06 270); padding: 1px 6px !important; box-shadow: inset 0 1px 0 oklch(99% 0.05 200 / 0.06); }
body[data-theme="chrome"] .art-foot { font-family: "IBM Plex Mono", monospace !important; font-size: 11px !important; color: oklch(60% 0.06 270) !important; border-top: 1px solid oklch(28% 0.04 270 / 0.6) !important; margin-top: 48px !important; padding-top: 22px !important; }
body[data-theme="chrome"] .art-foot .more { color: oklch(82% 0.14 290) !important; text-shadow: 0 0 5px oklch(60% 0.18 290 / 0.4); }

body[data-theme="chrome"] .browser-status { background: linear-gradient(180deg, oklch(85% 0.01 240) 0%, oklch(65% 0.02 245) 50%, oklch(78% 0.01 240) 100%) !important; border-top: 1px solid oklch(28% 0.03 250) !important; color: oklch(15% 0.02 250) !important; font-family: "Michroma", sans-serif !important; font-size: 9px !important; letter-spacing: 1.2px; text-transform: uppercase; box-shadow: inset 0 1px 0 oklch(99% 0 0 / 0.5); }
body[data-theme="chrome"] .browser-status .progress { background: oklch(15% 0.04 265) !important; border: 1px solid oklch(28% 0.04 265) !important; box-shadow: inset 0 1px 2px oklch(2% 0.02 270 / 0.7); }
body[data-theme="chrome"] .browser-status .progress-bar { background: linear-gradient(180deg, oklch(85% 0.18 200) 0%, oklch(70% 0.18 290) 50%, oklch(80% 0.18 320) 100%) !important; box-shadow: inset 0 1px 0 oklch(99% 0.05 200 / 0.5), 0 0 6px oklch(70% 0.18 290 / 0.8); }

/* ================================================================
   AERO — DEEPER POLISH (Frutiger / web-2.0 indie nostalgia)
   Glossy holographic shimmer on glass, water ripple at the
   horizon, breathing icon halos, plus widgets that capture the
   pre-corporate-internet feel: a sticky note, a webring strip,
   and a "Neighbors" buddy list.
   ================================================================ */

/* Slow holographic sweep across every glass panel (aero only) */
/* (.win is already position: absolute — don't re-set position here or
   it'll override the inline drag positioning logic.) */
body[data-theme="aero"] .glass::after {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(115deg,
    transparent 30%,
    oklch(99% 0.04 200 / 0.20) 47%,
    oklch(96% 0.10 145 / 0.10) 50%,
    oklch(99% 0.04 200 / 0.20) 53%,
    transparent 70%);
  background-size: 250% 100%;
  animation: aeroSheen 11s ease-in-out infinite;
  pointer-events: none;
  mix-blend-mode: screen;
  border-radius: inherit;
  /* clip the gradient to the rounded panel without breaking
     resize handles which sit outside the panel bounds */
  overflow: hidden;
}
@keyframes aeroSheen {
  0%, 100% { background-position: 200% 0%; }
  50%      { background-position: -40% 0%; }
}

/* don't apply sheen to inner glass children like the browser window's
   inner page (they're already inside .glass) */
body[data-theme="aero"] .glass .glass::after { display: none; }

/* Icon halo — gentle breathing glow + brighter specular */
body[data-theme="aero"] .icon .glyph {
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.95),
    inset 0 -3px 6px rgba(40,80,140,0.4),
    0 4px 14px rgba(40,80,140,0.38),
    0 0 0 1px rgba(255,255,255,0.25);
  transition: transform 220ms ease, box-shadow 220ms ease, filter 220ms ease;
}
body[data-theme="aero"] .icon:hover .glyph {
  transform: translateY(-3px) scale(1.05);
  filter: saturate(1.15) brightness(1.05);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,1),
    inset 0 -3px 6px rgba(40,80,140,0.45),
    0 8px 22px rgba(40,80,140,0.45),
    0 0 22px oklch(85% 0.14 200 / 0.5);
}
body[data-theme="aero"] .icon .glyph::before {
  background: linear-gradient(to bottom,
    rgba(255,255,255,0.95) 0%,
    rgba(255,255,255,0.35) 60%,
    transparent 100%);
}

/* Horizon water-ripple at the bottom of the desktop — reflection vibe */
body[data-theme="aero"] .desk::before {
  content: "";
  position: absolute; left: 0; right: 0; bottom: 0; height: 38%;
  background:
    radial-gradient(120% 60% at 50% 110%, oklch(86% 0.08 165 / 0.45) 0%, transparent 70%),
    repeating-linear-gradient(0deg,
      oklch(99% 0.02 200 / 0.06) 0px, oklch(99% 0.02 200 / 0.06) 1px,
      transparent 1px, transparent 5px);
  pointer-events: none;
  z-index: 0;
  mask-image: linear-gradient(180deg, transparent 0%, black 60%, black 100%);
  -webkit-mask-image: linear-gradient(180deg, transparent 0%, black 60%, black 100%);
}
body[data-theme="aero"] .desk::after {
  content: "";
  position: absolute; left: 0; right: 0; bottom: -5%; height: 22%;
  background:
    radial-gradient(80% 100% at 25% 100%, oklch(94% 0.08 145 / 0.35) 0%, transparent 60%),
    radial-gradient(80% 100% at 75% 100%, oklch(90% 0.10 200 / 0.35) 0%, transparent 60%);
  filter: blur(8px);
  pointer-events: none;
  z-index: 0;
  animation: aeroHorizon 16s ease-in-out infinite alternate;
}
@keyframes aeroHorizon {
  0%   { transform: translateX(-2%); }
  100% { transform: translateX(2%); }
}

/* Aqua buttons — add tasty iridescent rim in aero */
body[data-theme="aero"] .aqua::after {
  content: "";
  position: absolute; inset: -1px;
  border-radius: inherit;
  padding: 1px;
  background: linear-gradient(135deg,
    oklch(98% 0.04 200 / 0.4),
    oklch(96% 0.10 145 / 0.3) 50%,
    oklch(98% 0.04 200 / 0.4));
  -webkit-mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
          mask-composite: exclude;
  pointer-events: none;
}

/* ============= STICKY NOTE (pinned to desktop) ============= */
.sticky-note {
  position: absolute;
  width: 200px;
  padding: 18px 16px 22px;
  background: linear-gradient(180deg, oklch(96% 0.07 95) 0%, oklch(92% 0.11 92) 100%);
  border: 1px solid oklch(85% 0.10 92);
  box-shadow:
    inset 0 1px 0 oklch(99% 0.04 95),
    0 1px 0 oklch(80% 0.08 90),
    0 18px 30px -10px rgba(80,60,20,0.35),
    0 4px 8px rgba(80,60,20,0.15);
  font-family: "Caveat", "Comic Sans MS", "Marker Felt", cursive;
  font-size: 17px;
  line-height: 1.35;
  color: oklch(35% 0.08 60);
  transform: rotate(-3.2deg);
  z-index: 8;
  cursor: grab;
  user-select: none;
}
.sticky-note::before {
  /* tape strip across the top */
  content: "";
  position: absolute;
  left: 50%; top: -10px; transform: translateX(-50%) rotate(-2deg);
  width: 70px; height: 18px;
  background: linear-gradient(180deg,
    oklch(96% 0.02 200 / 0.55) 0%,
    oklch(92% 0.04 200 / 0.5) 100%);
  border: 1px solid oklch(85% 0.05 200 / 0.5);
  border-top-color: oklch(99% 0.02 200 / 0.7);
  box-shadow: 0 2px 4px rgba(40,80,140,0.15);
}
.sticky-note::after {
  /* faint torn edge at the bottom */
  content: "";
  position: absolute;
  left: 4px; right: 4px; bottom: 0; height: 4px;
  background: linear-gradient(180deg, transparent, oklch(80% 0.10 90 / 0.4));
  border-radius: 0 0 2px 2px;
}
.sticky-note .sn-head {
  font-family: "Plus Jakarta Sans", sans-serif;
  font-weight: 800;
  font-size: 9px;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  color: oklch(50% 0.12 60);
  border-bottom: 1px dashed oklch(70% 0.10 70);
  padding-bottom: 4px;
  margin-bottom: 6px;
  text-align: center;
}
.sticky-note .sn-sig {
  display: block;
  margin-top: 8px;
  font-size: 14px;
  color: oklch(45% 0.12 50);
  opacity: 0.85;
  text-align: right;
}
.sticky-note .sn-underline {
  text-decoration: underline;
  text-decoration-color: oklch(55% 0.16 30);
  text-decoration-thickness: 1.5px;
}
/* chrome theme — sticky note becomes silver foil */
body[data-theme="chrome"] .sticky-note {
  background: linear-gradient(180deg,
    oklch(90% 0.01 240) 0%,
    oklch(78% 0.01 240) 50%,
    oklch(88% 0.01 240) 100%);
  border: 1px solid oklch(35% 0.03 250);
  color: oklch(15% 0.02 250);
  font-family: "IBM Plex Mono", monospace;
  font-size: 11px;
  letter-spacing: 0.3px;
  box-shadow:
    inset 0 1px 0 oklch(99% 0 0),
    inset 0 -1px 0 oklch(45% 0.02 250),
    0 18px 30px -10px oklch(5% 0.03 270 / 0.6);
}
body[data-theme="chrome"] .sticky-note::before {
  background: linear-gradient(180deg,
    oklch(80% 0.06 290 / 0.7),
    oklch(60% 0.10 290 / 0.6));
  border-color: oklch(35% 0.10 290 / 0.7);
}
body[data-theme="chrome"] .sticky-note .sn-head {
  font-family: "Michroma", sans-serif;
  color: oklch(75% 0.14 290);
  border-bottom-color: oklch(45% 0.06 270);
}
body[data-theme="chrome"] .sticky-note .sn-sig {
  font-family: "IBM Plex Mono", monospace;
  color: oklch(70% 0.10 290);
}

/* ============= WEBRING STRIP ============= */
.webring {
  position: absolute;
  left: 50%; transform: translateX(-50%);
  top: 16px;
  z-index: 150;
  display: flex; align-items: center; gap: 0;
  padding: 4px 6px;
  border-radius: 999px;
  background: linear-gradient(to bottom, rgba(255,255,255,0.65), rgba(210,232,250,0.45));
  backdrop-filter: blur(16px) saturate(170%);
  -webkit-backdrop-filter: blur(16px) saturate(170%);
  border: 1px solid rgba(255,255,255,0.85);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.95),
    inset 0 -1px 0 rgba(120,160,200,0.25),
    0 8px 24px rgba(40,80,140,0.28);
  font-family: "Plus Jakarta Sans", "Segoe UI", sans-serif;
  font-size: 11px;
  font-weight: 700;
  color: oklch(28% 0.06 240);
  user-select: none;
}
.webring .wr-label {
  padding: 0 12px 0 14px;
  font-size: 10px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: oklch(38% 0.13 220);
  border-right: 1px solid rgba(120,160,200,0.35);
  white-space: nowrap;
}
.webring .wr-label .wr-flower { font-size: 12px; margin-right: 4px; }
.webring .wr-btn {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 6px 12px; border-radius: 999px;
  border: 0; background: transparent;
  font: inherit; color: inherit;
  cursor: pointer;
  text-decoration: none;
  letter-spacing: 0.3px;
  white-space: nowrap;
}
.webring .wr-btn:hover {
  background: rgba(255,255,255,0.55);
  color: oklch(40% 0.16 230);
}
.webring .wr-btn.middle {
  font-family: "IBM Plex Mono", monospace;
  font-weight: 500;
  font-size: 10px;
  opacity: 0.75;
  padding: 6px 8px;
  cursor: default;
}
.webring .wr-btn.middle:hover { background: transparent; color: inherit; }

body[data-theme="chrome"] .webring {
  background: linear-gradient(180deg,
    oklch(90% 0.01 240),
    oklch(62% 0.02 250),
    oklch(80% 0.01 240));
  border: 1px solid oklch(35% 0.03 250);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  color: oklch(15% 0.02 250);
  box-shadow:
    inset 0 1px 0 oklch(99% 0 0),
    inset 0 -1px 0 oklch(40% 0.02 250),
    0 8px 24px oklch(5% 0.03 270);
}
body[data-theme="chrome"] .webring .wr-label {
  font-family: "Michroma", sans-serif;
  color: oklch(35% 0.18 290);
  border-right-color: oklch(35% 0.03 250);
  letter-spacing: 2.5px;
}
body[data-theme="chrome"] .webring .wr-btn {
  font-family: "Michroma", sans-serif;
  font-size: 9px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
}
body[data-theme="chrome"] .webring .wr-btn:hover {
  background: oklch(45% 0.10 290 / 0.5);
  color: oklch(96% 0.04 290);
}

/* ============= NEIGHBORS / BUDDY LIST ============= */
.bud-list { display: flex; flex-direction: column; gap: 0; }
.bud-row {
  display: grid;
  grid-template-columns: 12px 1fr auto;
  align-items: center;
  gap: 10px;
  padding: 8px 4px;
  border-bottom: 1px dotted oklch(72% 0.05 220);
  font-size: 12px;
  cursor: pointer;
  border-radius: 4px;
  transition: background 120ms;
}
.bud-row:last-child { border-bottom: 0; }
.bud-row:hover {
  background: rgba(255,255,255,0.55);
  padding-left: 8px;
}
.bud-led {
  width: 8px; height: 8px; border-radius: 50%;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.7);
}
.bud-led.on  {
  background: radial-gradient(circle at 30% 30%, oklch(96% 0.18 145), oklch(60% 0.18 150));
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.7), 0 0 6px oklch(72% 0.18 145 / 0.7);
}
.bud-led.idle {
  background: radial-gradient(circle at 30% 30%, oklch(95% 0.16 85), oklch(70% 0.18 75));
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.7), 0 0 6px oklch(75% 0.18 80 / 0.5);
}
.bud-led.off {
  background: radial-gradient(circle at 30% 30%, oklch(78% 0.02 230), oklch(55% 0.03 235));
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.5);
}
.bud-name {
  font-weight: 700;
  color: oklch(25% 0.06 230);
  letter-spacing: -0.1px;
}
.bud-host {
  font-family: "IBM Plex Mono", monospace;
  font-size: 10px;
  opacity: 0.6;
  font-weight: 500;
}
.bud-mood {
  font-size: 11px;
  font-style: italic;
  color: oklch(45% 0.10 235);
  text-align: right;
  max-width: 130px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.bud-foot {
  margin-top: 10px;
  padding-top: 8px;
  border-top: 1px dotted oklch(72% 0.05 220);
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 10px;
  font-family: "IBM Plex Mono", monospace;
  opacity: 0.7;
  color: oklch(35% 0.06 230);
}
.bud-foot a {
  color: oklch(45% 0.14 230);
  text-decoration: none;
  border-bottom: 1px dotted oklch(55% 0.14 230);
}

body[data-theme="chrome"] .bud-row { border-bottom-color: oklch(50% 0.03 250 / 0.4); }
body[data-theme="chrome"] .bud-name { color: oklch(12% 0.02 250); font-family: "Audiowide", "Space Grotesk", sans-serif; font-weight: 400; }
body[data-theme="chrome"] .bud-host { color: oklch(60% 0.10 280); }
body[data-theme="chrome"] .bud-mood { color: oklch(42% 0.14 290); }
body[data-theme="chrome"] .bud-foot { border-top-color: oklch(50% 0.03 250 / 0.4); color: oklch(60% 0.08 280); }
body[data-theme="chrome"] .bud-row:hover { background: oklch(35% 0.05 270 / 0.4); }

/* ============= "LAST UPDATED" + UPTIME RIBBON ============= */
.uptime-ribbon {
  position: absolute;
  left: 20px;
  bottom: 88px;
  z-index: 7;
  display: flex; align-items: center; gap: 8px;
  padding: 6px 14px 6px 10px;
  border-radius: 999px;
  background: linear-gradient(to bottom, rgba(255,255,255,0.65), rgba(210,235,250,0.45));
  backdrop-filter: blur(12px) saturate(160%);
  -webkit-backdrop-filter: blur(12px) saturate(160%);
  border: 1px solid rgba(255,255,255,0.85);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.95),
    0 6px 16px rgba(40,80,140,0.25);
  font-family: "IBM Plex Mono", monospace;
  font-size: 10px;
  letter-spacing: 0.4px;
  color: oklch(32% 0.06 235);
  user-select: none;
  white-space: nowrap;
}
.uptime-ribbon .ur-led {
  width: 7px; height: 7px; border-radius: 50%;
  background: radial-gradient(circle at 30% 30%, oklch(96% 0.18 145), oklch(60% 0.18 150));
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.7), 0 0 6px oklch(72% 0.18 145 / 0.7);
  animation: led-pulse 2.4s ease-in-out infinite;
}
.uptime-ribbon .ur-sep { opacity: 0.4; }

body[data-theme="chrome"] .uptime-ribbon {
  background: linear-gradient(180deg,
    oklch(88% 0.01 240),
    oklch(62% 0.02 250),
    oklch(80% 0.01 240));
  border: 1px solid oklch(35% 0.03 250);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  color: oklch(15% 0.02 250);
  box-shadow:
    inset 0 1px 0 oklch(99% 0 0),
    0 6px 16px oklch(5% 0.03 270);
}

/* ============= WELCOME — WEBRING + INDIE STRIP ============= */
.welcome-webring {
  position: fixed;
  left: 50%; transform: translateX(-50%);
  bottom: 64px;
  z-index: 4;
  display: flex; align-items: center; gap: 0;
  padding: 5px 6px;
  border-radius: 999px;
  background: linear-gradient(to bottom, rgba(255,255,255,0.65), rgba(210,232,250,0.45));
  backdrop-filter: blur(16px) saturate(170%);
  -webkit-backdrop-filter: blur(16px) saturate(170%);
  border: 1px solid rgba(255,255,255,0.85);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.95),
    0 8px 24px rgba(40,80,140,0.28);
  font-family: "Plus Jakarta Sans", sans-serif;
  font-weight: 700;
  font-size: 11px;
  color: oklch(28% 0.06 240);
}
.welcome-webring .wr-label {
  padding: 0 12px;
  font-size: 9px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: oklch(38% 0.13 220);
  white-space: nowrap;
}
.welcome-webring a {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 6px 11px;
  border-radius: 999px;
  text-decoration: none;
  color: inherit;
  letter-spacing: 0.3px;
  white-space: nowrap;
}
.welcome-webring a:hover {
  background: rgba(255,255,255,0.55);
  color: oklch(40% 0.16 230);
}
.welcome-webring .wr-sep { width: 1px; height: 16px; background: rgba(120,160,200,0.3); }

/* Water droplet decorations on welcome */
.welcome-drops {
  position: fixed; inset: 0; pointer-events: none; z-index: 0;
}
.welcome-drops .drop {
  position: absolute;
  border-radius: 50% 50% 48% 52% / 60% 60% 40% 40%;
  background: radial-gradient(circle at 35% 28%,
    rgba(255,255,255,0.92) 0%,
    rgba(220,245,255,0.45) 18%,
    rgba(180,225,250,0.18) 55%,
    rgba(140,200,240,0.1) 100%);
  border: 1px solid rgba(255,255,255,0.55);
  box-shadow:
    inset -4px -6px 12px rgba(80,140,200,0.2),
    inset 3px 4px 8px rgba(255,255,255,0.5),
    0 4px 14px rgba(120,180,240,0.18);
}
.welcome-drops .drop::after {
  content: "";
  position: absolute;
  left: 22%; top: 18%;
  width: 22%; height: 16%;
  background: rgba(255,255,255,0.85);
  border-radius: 50%;
  filter: blur(0.4px);
}

/* "Made with love" indie strip — at the top of welcome */
.indie-strip {
  position: fixed; top: 22px; left: 26px;
  z-index: 4;
  display: flex; gap: 8px; flex-direction: column;
  font-family: "IBM Plex Mono", monospace;
  font-size: 10px;
  letter-spacing: 0.4px;
  color: oklch(28% 0.06 235);
  text-shadow: 0 1px 0 rgba(255,255,255,0.6);
}
.indie-strip .is-line {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 4px 10px;
  border-radius: 999px;
  background: rgba(255,255,255,0.5);
  border: 1px solid rgba(255,255,255,0.8);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.95);
  width: fit-content;
  backdrop-filter: blur(10px);
  white-space: nowrap;
}
.indie-strip .is-dot {
  width: 6px; height: 6px; border-radius: 50%;
  background: radial-gradient(circle at 30% 30%, oklch(96% 0.18 145), oklch(60% 0.18 150));
  box-shadow: 0 0 4px oklch(70% 0.18 145 / 0.8);
}

body[data-theme="chrome"] .indie-strip { color: oklch(85% 0.02 245); text-shadow: 0 1px 2px oklch(5% 0.03 270); }
body[data-theme="chrome"] .indie-strip .is-line {
  background: oklch(15% 0.04 270 / 0.6);
  border: 1px solid oklch(50% 0.10 290 / 0.4);
  backdrop-filter: blur(10px);
}
body[data-theme="chrome"] .welcome-webring {
  background: linear-gradient(180deg,
    oklch(90% 0.01 240),
    oklch(62% 0.02 250),
    oklch(80% 0.01 240));
  border: 1px solid oklch(35% 0.03 250);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  color: oklch(15% 0.02 250);
  font-family: "Michroma", sans-serif;
  font-size: 9px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
}
body[data-theme="chrome"] .welcome-webring .wr-label {
  color: oklch(35% 0.18 290);
  letter-spacing: 2.5px;
}
body[data-theme="chrome"] .welcome-webring a:hover {
  background: oklch(45% 0.10 290 / 0.5);
  color: oklch(96% 0.04 290);
}
body[data-theme="chrome"] .welcome-drops .drop {
  background: radial-gradient(circle at 35% 28%,
    rgba(220,200,255,0.7) 0%,
    rgba(160,140,220,0.25) 30%,
    rgba(80,60,140,0.12) 80%);
  border: 1px solid rgba(200,180,255,0.4);
  box-shadow:
    inset -4px -6px 12px rgba(40,20,100,0.4),
    inset 3px 4px 8px rgba(220,200,255,0.4),
    0 4px 14px oklch(40% 0.16 290 / 0.3);
}

/* Caveat for handwritten sticky */
/* (Imported in HTML head — kept here so the file documents the dep) */

/* Welcome gate — aero holographic sheen */
body[data-theme="aero"] .gate {
  overflow: hidden;
}
body[data-theme="aero"] .gate::after {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(115deg,
    transparent 28%,
    oklch(99% 0.04 200 / 0.22) 45%,
    oklch(96% 0.12 145 / 0.12) 50%,
    oklch(99% 0.04 200 / 0.22) 55%,
    transparent 72%);
  background-size: 260% 100%;
  animation: aeroSheen 9s ease-in-out infinite;
  pointer-events: none;
  mix-blend-mode: screen;
  border-radius: inherit;
}

/* Welcome mark — gentle floating ring of light (aero) */
body[data-theme="aero"] .mark::after {
  content: "";
  position: absolute; inset: -6px;
  border-radius: 50%;
  background: conic-gradient(from 0deg,
    oklch(96% 0.10 145 / 0.0),
    oklch(96% 0.14 145 / 0.55),
    oklch(96% 0.10 200 / 0.55),
    oklch(96% 0.12 145 / 0.0));
  mask: radial-gradient(circle, transparent 56%, black 58%, black 64%, transparent 66%);
  -webkit-mask: radial-gradient(circle, transparent 56%, black 58%, black 64%, transparent 66%);
  animation: spin 18s linear infinite;
  pointer-events: none;
  opacity: 0.8;
}

/* Disable ambient motion for users who prefer reduced motion */
@media (prefers-reduced-motion: reduce) {
  .bubble-field, .shard-field { display: none !important; }
  .sparkle { display: none !important; }
}
