:root{
  --radius: 18px;
  --radius-sm: 14px;
  --gap: 10px;

  --kb-design-w: 1700px;
  --kb-design-h: 560px;
  --kb-scale: 1;

  --font: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial;
}

/* base */
*{ box-sizing:border-box; }
html,body{
  min-height:100%;
  height:100%;
  background:#06070b;
}

#app{
  min-height:100vh;
  min-height:100dvh;
  height:auto;
  display:flex;
  flex-direction:column;
}

/* ===== Luxury themes via variables ===== */
#app.theme-night{
  --bg0:#06070b;
  --bg1:#0b101a;
  --bg2:#071a20;

  --panel: rgba(255,255,255,0.06);
  --panel-2: rgba(255,255,255,0.04);
  --panel-border: rgba(255,255,255,0.10);

  --text: rgba(255,255,255,0.92);
  --muted: rgba(255,255,255,0.62);

  --pill-bg: rgba(255,255,255,0.07);
  --pill-bd: rgba(255,255,255,0.12);
  --pill-hover: rgba(255,255,255,0.10);

  --key-bg: rgba(255,255,255,0.08);
  --key-bd: rgba(255,255,255,0.14);
  --key-text: rgba(255,255,255,0.92);

  /* luxury accents */
  --gold: #d7b35b;
  --gold-2: #f5d98b;
  --accent: var(--gold);
  --accent-2: #9b7bff;

  --overlay: rgba(0,0,0,0.55);
}

#app.theme-day{
  --bg0:#f2f3f6;
  --bg1:#eef0f5;
  --bg2:#f7f2e8;

  --panel: rgba(25,30,40,0.06);
  --panel-2: rgba(25,30,40,0.04);
  --panel-border: rgba(25,30,40,0.12);

  --text: rgba(12,18,28,0.92);
  --muted: rgba(12,18,28,0.62);

  --pill-bg: rgba(255,255,255,0.72);
  --pill-bd: rgba(25,30,40,0.14);
  --pill-hover: rgba(255,255,255,0.92);

  --key-bg: rgba(255,255,255,0.78);
  --key-bd: rgba(25,30,40,0.14);
  --key-text: rgba(12,18,28,0.92);

  --gold: #b98a2a;
  --gold-2: #e7c976;
  --accent: var(--gold);
  --accent-2: #6d28d9;

  --overlay: rgba(20,30,45,0.18);
}

/* body is neutral; app defines actual visuals */
body{
  margin:0;
  font-family: var(--font);
  overflow-x:hidden;
  overflow-y:auto;
  user-select:none;
  background:#06070b;
}

#app{
  /* subtle "luxury" glow + depth */
  background:
    radial-gradient(1000px 700px at 18% 0%, color-mix(in srgb, var(--gold) 22%, transparent), transparent 62%),
    radial-gradient(900px 600px at 85% 20%, color-mix(in srgb, var(--accent-2) 18%, transparent), transparent 62%),
    radial-gradient(1200px 900px at 55% 120%, rgba(0,0,0,0.35), transparent 55%),
    linear-gradient(135deg, var(--bg0), var(--bg1) 45%, var(--bg2));
  color: var(--text);
}

/* ===== Topbar ===== */
.topbar{
  height:64px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding: 12px 16px;
  gap: 12px;
  flex: 0 0 auto;
}

.brand{
  display:flex;
  align-items:center;
  gap: 12px;
  min-width: 285px;
  color: var(--text);
  text-decoration: none;
  border-radius: 16px;
  outline: none;
}
.brand:hover .title{ color: color-mix(in srgb, var(--gold) 86%, var(--text)); }
.brand:focus-visible{ box-shadow: 0 0 0 3px color-mix(in srgb, var(--gold) 35%, transparent); }
.logo{
  width:46px; height:46px;
  border-radius: 15px;
  display:grid; place-items:center;
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 28% 18%, rgba(255,255,255,0.18), transparent 26%),
    linear-gradient(145deg, #171f2c 0%, #0a0f17 100%);
  border: 1px solid color-mix(in srgb, var(--gold) 44%, var(--pill-bd));
  box-shadow:
    0 16px 38px rgba(0,0,0,0.30),
    inset 0 1px 0 rgba(255,255,255,0.12),
    0 0 0 1px rgba(255,255,255,0.03);
  transition: transform .12s ease, box-shadow .12s ease, border-color .12s ease;
}
.brand:hover .logo{
  transform: translateY(-1px);
  border-color: color-mix(in srgb, var(--gold) 70%, var(--pill-bd));
  box-shadow:
    0 18px 46px rgba(0,0,0,0.36),
    inset 0 1px 0 rgba(255,255,255,0.14),
    0 0 0 3px color-mix(in srgb, var(--gold) 14%, transparent);
}
.logoIcon{
  width:30px;
  height:30px;
  border-radius: 9px;
  display:grid;
  place-items:center;
  position: relative;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.10), rgba(255,255,255,0.02)),
    linear-gradient(145deg, #111827, #070b12);
  border: 1.7px solid rgba(255,255,255,0.82);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.16),
    0 0 0 2px color-mix(in srgb, var(--gold) 16%, transparent);
}
.logoIcon::before{
  content:"K";
  font-weight: 950;
  font-size: 19px;
  line-height: 1;
  letter-spacing: -0.7px;
  color: #ffffff;
  text-shadow: 0 1px 0 rgba(0,0,0,0.35);
}
.logoIcon::after{
  content:"";
  position:absolute;
  width:13px;
  height:13px;
  right:-5px;
  bottom:-5px;
  border-radius: 999px;
  background: linear-gradient(145deg, #f5d98b, #c49735);
  border: 2px solid #0b1018;
  box-shadow: 0 6px 16px rgba(0,0,0,0.32);
}
.logo::after{
  content:"";
  position:absolute;
  width:8px;
  height:4px;
  right:7px;
  bottom:9px;
  border-left: 2px solid #0b1018;
  border-bottom: 2px solid #0b1018;
  transform: rotate(-45deg);
  z-index: 2;
}
.title{
  font-size: 18px;
  font-weight: 850;
  letter-spacing: 0.15px;
  line-height: 1.05;
  transition: color .12s ease;
}
.tagline{
  margin-top: 3px;
  font-size: 11px;
  line-height: 1;
  color: var(--muted);
  letter-spacing: .18px;
}

.controls{
  display:flex;
  align-items:center;
  gap: 10px;
  flex-wrap: nowrap;
  justify-content:flex-end;
  overflow-x: auto;
  scrollbar-width: thin;
  -webkit-overflow-scrolling: touch;
}
.controls::-webkit-scrollbar{ height: 10px; }
.controls::-webkit-scrollbar-thumb{
  background: color-mix(in srgb, var(--pill-bd) 75%, transparent);
  border-radius: 999px;
}
.controls > *{ flex: 0 0 auto; }

.pill{
  height: 38px;
  padding: 0 14px;
  border-radius: 999px;
  border: 1px solid var(--pill-bd);
  background:
    linear-gradient(180deg,
      color-mix(in srgb, var(--pill-bg) 92%, rgba(255,255,255,0.12)),
      var(--pill-bg)
    );
  color: var(--text);
  display:inline-flex;
  align-items:center;
  gap: 10px;
  cursor:pointer;
  transition: transform .08s ease, background .12s ease, border-color .12s ease, box-shadow .12s ease;
  backdrop-filter: blur(10px);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.12);
}
.pill:hover{
  background:
    linear-gradient(180deg,
      color-mix(in srgb, var(--pill-hover) 90%, rgba(255,255,255,0.14)),
      var(--pill-hover)
    );
}
.pill:active{ transform: translateY(1px); }

.pill.primary{
  border-color: color-mix(in srgb, var(--gold) 35%, var(--pill-bd));
  box-shadow:
    0 16px 36px rgba(0,0,0,0.16),
    0 0 0 3px color-mix(in srgb, var(--gold) 18%, transparent),
    inset 0 1px 0 rgba(255,255,255,0.14);
}
.pill.active{
  border-color: color-mix(in srgb, var(--gold) 50%, var(--pill-bd));
  box-shadow:
    0 0 0 3px color-mix(in srgb, var(--gold) 18%, transparent),
    inset 0 1px 0 rgba(255,255,255,0.12);
}

.status .dot{
  width:10px; height:10px;
  border-radius:999px;
  background: #25d366;
  box-shadow: 0 0 0 3px rgba(37,211,102,0.18);
}

/* ===== Stage ===== */
.stage{
  flex:1;
  min-height: 0;
  padding: 10px 16px 16px;
  display:flex;
  flex-direction:column;
  gap: 10px;
  outline: none;
}

/* ===== HUD BAR (doesn't cover keyboard) ===== */
.hudBar{
  flex: 0 0 auto;
  width: 100%;
  display:grid;
  grid-template-columns: 220px 1fr 320px;
  gap: 12px;
  align-items:center;
  padding: 12px 12px;
  border-radius: var(--radius);
  background: var(--panel);
  border: 1px solid var(--panel-border);
  backdrop-filter: blur(14px);
  box-shadow: 0 20px 60px rgba(0,0,0,0.18);
}
.hudLeft{
  display:flex;
  align-items:center;
  gap: 12px;
}
.hudKey{
  width: 84px;
  height: 54px;
  display:grid;
  place-items:center;
  border-radius: 16px;
  border: 1px solid color-mix(in srgb, var(--gold) 18%, var(--key-bd));
  background:
    linear-gradient(180deg,
      color-mix(in srgb, var(--panel-2) 60%, transparent),
      color-mix(in srgb, var(--key-bg) 88%, transparent)
    );
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.20),
    0 18px 44px rgba(0,0,0,0.18);
  font-size: 28px;
  font-weight: 900;
  letter-spacing: 0.3px;
}
.hudHint{
  color: var(--muted);
  font-size: 12px;
  line-height: 1.2;
}
.hudMid{
  display:grid;
  grid-template-columns: repeat(4, minmax(120px, 1fr));
  gap: 10px;
}
.hudRow{
  display:flex;
  justify-content:space-between;
  gap: 10px;
  padding: 8px 10px;
  border-radius: 14px;
  background: color-mix(in srgb, var(--pill-bg) 70%, transparent);
  border: 1px solid color-mix(in srgb, var(--pill-bd) 70%, transparent);
  font-size: 12px;
  color: var(--muted);
}
.hudRow span:last-child{
  color: var(--text);
  font-weight: 800;
}
.hudRight{
  display:flex;
  justify-content:flex-end;
  gap: 8px;
  flex-wrap: wrap;
}
.hudChip{
  padding: 7px 10px;
  border-radius: 999px;
  border: 1px solid color-mix(in srgb, var(--pill-bd) 70%, transparent);
  background: color-mix(in srgb, var(--pill-bg) 70%, transparent);
  font-size: 12px;
  color: var(--muted);
}

@media (max-width: 1100px){
  .hudBar{ grid-template-columns: 220px 1fr; }
  .hudRight{ justify-content:flex-start; }
}
@media (max-width: 820px){
  .hudBar{ grid-template-columns: 1fr; }
  .hudMid{ grid-template-columns: repeat(2, minmax(140px, 1fr)); }
}

/* ===== Keyboard wrap ===== */
.keyboardWrap{
  flex: 1 1 auto;
  min-height: 0;
  display:flex;
  align-items:center;
  justify-content:center;
  padding: 6px;
}

/* ===== Keyboard container ===== */
.keyboard{
  width: var(--kb-design-w);
  height: var(--kb-design-h);
  transform: scale(var(--kb-scale));
  transform-origin: center center;

  display:grid;
  grid-template-columns: repeat(92, 1fr);
  grid-template-rows: repeat(6, 1fr);
  gap: 10px;

  padding: 18px;
  border-radius: 30px;
  background:
    linear-gradient(180deg,
      color-mix(in srgb, var(--panel) 75%, transparent),
      color-mix(in srgb, var(--panel-2) 55%, transparent)
    );
  border: 1px solid var(--panel-border);
  backdrop-filter: blur(16px);
  box-shadow:
    0 34px 90px rgba(0,0,0,0.24),
    inset 0 1px 0 rgba(255,255,255,0.10);
}

/* ===== Key ===== */
.key{
  border-radius: 16px;
  border: 1px solid var(--key-bd);
  background:
    linear-gradient(180deg,
      color-mix(in srgb, var(--key-bg) 72%, rgba(255,255,255,0.24)),
      var(--key-bg)
    );
  color: var(--key-text);

  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;

  font-weight: 800;
  letter-spacing: 0.15px;
  line-height: 1;

  padding: 8px;

  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.22),
    0 16px 34px rgba(0,0,0,0.18);

  transition:
    transform .08s ease,
    border-color .12s ease,
    box-shadow .12s ease,
    filter .12s ease;
  cursor: default;
}
.key:hover{
  border-color: color-mix(in srgb, var(--gold) 20%, var(--key-bd));
  filter: brightness(1.05);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.25),
    0 18px 42px rgba(0,0,0,0.20);
}
.key.small{ font-size: 14px; }
.key.med{ font-size: 16px; }
.key.big{ font-size: 18px; }

.key.is-down,
.key.is-latched{
  border-color: color-mix(in srgb, var(--gold) 62%, var(--key-bd));
  transform: translateY(1.5px) scale(0.995);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.22),
    0 0 0 3px color-mix(in srgb, var(--gold) 18%, transparent),
    0 22px 46px rgba(0,0,0,0.22);
}
.key.is-pulse{
  border-color: color-mix(in srgb, var(--gold) 62%, var(--key-bd));
  transform: translateY(1.5px) scale(0.995);
  animation: keyPulse .26s ease-out both;
}
@keyframes keyPulse{
  0%{
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,0.22),
      0 0 0 3px color-mix(in srgb, var(--gold) 18%, transparent),
      0 22px 46px rgba(0,0,0,0.22);
    filter: brightness(1.04);
  }
  100%{
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,0.22),
      0 0 0 0 color-mix(in srgb, var(--gold) 0%, transparent),
      0 16px 34px rgba(0,0,0,0.18);
    filter: brightness(1);
  }
}

/* ===== Modal ===== */
.modalRoot{
  position:fixed;
  inset:0;
  z-index: 100;
}
.modalOverlay{
  position:absolute;
  inset:0;
  background: var(--overlay);
  backdrop-filter: blur(10px);
}
.modalPanel{
  position:absolute;
  left:50%;
  top:50%;
  transform: translate(-50%,-50%);
  width: min(760px, calc(100vw - 24px));
  border-radius: 22px;
  background: color-mix(in srgb, var(--panel) 70%, rgba(255,255,255,0.08));
  border: 1px solid var(--panel-border);
  box-shadow: 0 30px 90px rgba(0,0,0,0.30);
  backdrop-filter: blur(14px);
  padding: 18px 18px 14px;
}
.modalX{
  position:absolute;
  right: 12px;
  top: 10px;
  width: 36px;
  height: 36px;
  border-radius: 12px;
  border: 1px solid var(--pill-bd);
  background: var(--pill-bg);
  color: var(--text);
  cursor:pointer;
}
.modalTitle{
  font-size: 20px;
  font-weight: 900;
  margin: 4px 0 12px;
  letter-spacing: .2px;
}
.modalBody{
  color: var(--text);
  font-size: 15px;
  line-height: 1.55;
}
.modalBody ul{
  margin: 10px 0 0;
  padding-left: 18px;
  color: var(--muted);
}
.modalBody b{ color: var(--text); }

.modalActions{
  margin-top: 14px;
  display:flex;
  justify-content:flex-end;
}


/* footer */
.footer{
  margin-top: auto;
  padding: 16px 18px 22px;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.35;
}
.footerLinks{
  display:flex;
  gap:10px;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  margin-bottom: 8px;
}
.footerLinks a{
  color: var(--text);
  text-decoration:none;
  padding: 6px 10px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--pill-bg) 72%, transparent);
  border: 1px solid color-mix(in srgb, var(--pill-bd) 72%, transparent);
}
.footerLinks a:hover{
  background: var(--pill-hover);
}
.footerLinks .sep{
  opacity: 0.5;
}
.footerText{
  max-width: 980px;
  margin: 0 auto;
  text-align: center;
  opacity: 0.75;
}


/* Content pages */
.contentPage{
  flex: 1 0 auto;
  padding: clamp(28px, 6vw, 70px) 18px 36px;
  max-width:1100px;
  width:100%;
  margin:0 auto;
  user-select:text;
}
.contentHero{
  display:grid;
  grid-template-columns: minmax(0,1fr);
  gap: 20px;
}
.contentCard{
  position:relative;
  overflow:hidden;
  border-radius: 28px;
  border: 1px solid var(--panel-border);
  background:
    radial-gradient(620px 260px at 8% 0%, color-mix(in srgb, var(--gold) 14%, transparent), transparent 62%),
    radial-gradient(560px 260px at 92% 0%, color-mix(in srgb, var(--accent-2) 14%, transparent), transparent 62%),
    linear-gradient(180deg, color-mix(in srgb, var(--panel) 90%, rgba(255,255,255,0.06)), color-mix(in srgb, var(--panel-2) 82%, transparent));
  box-shadow:
    0 30px 90px rgba(0,0,0,0.24),
    inset 0 1px 0 rgba(255,255,255,0.10);
  backdrop-filter: blur(14px);
  padding: clamp(26px, 4vw, 46px);
}
.kicker{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-bottom: 12px;
  padding: 7px 11px;
  border-radius: 999px;
  border: 1px solid color-mix(in srgb, var(--gold) 28%, var(--pill-bd));
  background: color-mix(in srgb, var(--pill-bg) 70%, transparent);
  color: var(--gold-2);
  font-size: 12px;
  font-weight: 850;
  letter-spacing: .2px;
  text-transform: uppercase;
}
.contentPage h1{
  margin:0 0 12px;
  font-size: clamp(34px, 5vw, 56px);
  line-height: 1.03;
  letter-spacing: -0.04em;
}
.contentPage h2{
  margin:28px 0 12px;
  font-size: clamp(20px, 2.4vw, 26px);
  letter-spacing: -0.02em;
}
.contentPage h3{
  margin:0 0 8px;
  font-size: 17px;
}
.contentPage p,
.contentPage li{
  line-height:1.7;
  color: color-mix(in srgb, var(--text) 82%, var(--muted));
  font-size: 16px;
}
.contentPage p.lead{
  max-width: 760px;
  font-size: clamp(17px, 1.8vw, 20px);
  color: var(--muted);
}
.contentPage a{ color: var(--gold-2); }
.featureGrid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 14px;
  margin-top: 22px;
}
.infoBox{
  border-radius: 20px;
  border: 1px solid color-mix(in srgb, var(--panel-border) 75%, transparent);
  background: color-mix(in srgb, var(--panel-2) 82%, transparent);
  padding: 18px;
}
.infoBox p{ margin:0; font-size:14px; }
.cleanList{
  margin: 14px 0 0;
  padding-left: 20px;
}
.metaLine{
  display:flex;
  flex-wrap:wrap;
  gap: 10px;
  margin-top: 18px;
}
.metaChip{
  padding: 8px 11px;
  border-radius: 999px;
  border: 1px solid color-mix(in srgb, var(--pill-bd) 70%, transparent);
  background: color-mix(in srgb, var(--pill-bg) 70%, transparent);
  color: var(--muted);
  font-size: 13px;
}
.emailBox{
  display:inline-flex;
  align-items:center;
  gap: 10px;
  margin-top: 8px;
  padding: 12px 14px;
  border-radius: 16px;
  background: color-mix(in srgb, var(--pill-bg) 72%, transparent);
  border: 1px solid color-mix(in srgb, var(--gold) 24%, var(--pill-bd));
  font-weight: 800;
}
.backLink::before{ content:'←'; margin-right: 7px; }
@media (max-width: 760px){
  .topbar{ height:auto; align-items:flex-start; }
  .brand{ min-width:0; }
  .featureGrid{ grid-template-columns: 1fr; }
  .contentCard{ border-radius: 22px; }
}

@media (max-width: 980px){
  body.tester-page .stage{ min-height:auto; }
  .keyboardWrap{
    justify-content:flex-start;
    overflow-x:auto;
    padding-bottom: 12px;
  }
  .keyboard{
    transform-origin: left center;
  }
}
@media (display-mode: fullscreen){
  body{ background:#06070b; }
  #app{ min-height:100vh; }
}

/* v9: readable controls, responsive instrument, restrained depth */
.topbar{height:auto;min-height:76px;flex-wrap:wrap;border-bottom:1px solid var(--panel-border);padding:16px 24px}
.controls{flex-wrap:wrap;gap:9px}.pill{min-height:42px;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;font:600 13px var(--font)}
a:focus-visible,button:focus-visible,summary:focus-visible,.stage:focus-visible{outline:3px solid #a798ff;outline-offset:4px}
.intro,.guide{width:min(1180px,100%);margin:0 auto;padding:36px 24px;user-select:text}
.intro h1{font-size:clamp(27px,4vw,44px);letter-spacing:-.045em;line-height:1.12;margin:12px 0}
.intro p{max-width:760px;line-height:1.65;color:var(--muted);margin:10px 0}
.eyebrow{font-size:11px;letter-spacing:.12em;color:var(--text);font-weight:700}
.intro a,.guide a{color:var(--text);text-underline-offset:4px}.intro .mobile-note{font-size:13px}
.stage{flex:0 0 auto;min-width:0;padding:8px 24px 28px}.keyboardWrap{position:relative;flex:none;min-height:0;overflow:hidden;display:block;padding:0}
.keyboard{position:absolute;left:50%;top:12px;flex-shrink:0;transform:translateX(-50%) scale(var(--kb-scale));transform-origin:top center}
.hudBar{border-radius:18px;background:var(--panel);padding:16px;flex-wrap:wrap;gap:14px}.hudLeft,.hudMid,.hudRight{min-width:0}.hudRow{min-width:0}.hudRow span:last-child{overflow-wrap:anywhere}
.key{box-shadow:inset 0 1px 0 #ffffff14,0 4px 8px #00000024;border-color:var(--key-bd)}
.key.is-down,.key.is-latched{background:#e4bf65;color:#171b25;box-shadow:0 0 18px #e4bf6530;border-color:#ffe0a0}
.guide{border-top:1px solid var(--panel-border);padding-top:36px}.guide h2{font-size:clamp(23px,3vw,32px);letter-spacing:-.035em;margin:12px 0 24px}
.guide-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:42px}
.guide article{background:var(--panel);border:1px solid var(--panel-border);border-radius:20px;padding:24px}.guide h3{font-size:18px;margin:18px 0 10px}.guide p{color:var(--muted);line-height:1.75;margin:10px 0;font-size:15px}.step{color:var(--text);opacity:.7;font:600 12px var(--font)}
.guide details{border-bottom:1px solid var(--panel-border);padding:18px 0}.guide summary{cursor:pointer;font-weight:600;line-height:1.5;padding:6px}.guide details p{max-width:900px;padding:0 6px}
.modalPanel{max-height:calc(100dvh - 32px);overflow-y:auto;background:var(--bg1)}.modalTitle{padding-right:40px}.modalX{width:44px;height:44px}.emailBox{max-width:100%;flex-wrap:wrap;overflow-wrap:anywhere}
.footerText{opacity:1}.footer{padding:32px 20px}.brandText{min-width:0}.title{line-height:1.25}.logo{flex-shrink:0;background:none;border:0;box-shadow:none}.logoIcon,.logo::after{display:none}.logo{background:url('/favicon.svg') center/contain no-repeat}
#app.theme-day{--gold-2:#75520c;--muted:#465064;--bg0:#e8edf2;--bg1:#f0f3f6;--bg2:#e9edf1}
@media(max-width:760px){.topbar{padding:16px;gap:18px}.brand{min-width:0;width:100%}.controls{width:100%;justify-content:flex-start}.pill{min-height:44px;padding:9px 13px}.intro,.guide{padding:28px 18px}.stage{padding:4px 10px 20px}.guide-grid{grid-template-columns:1fr}.hudBar{display:flex;flex-direction:column;align-items:stretch}.hudMid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.hudRight{display:flex;flex-wrap:wrap;width:100%;justify-content:flex-start}.hudHint{max-width:230px}.modalPanel{padding:18px}.contentPage{padding:24px 12px}.emailBox{font-size:14px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Sapphire: compact instrument, soft typography, illuminated keycaps. */
:root{--font:"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif}
body{margin:0;-webkit-font-smoothing:antialiased}button,a{ -webkit-tap-highlight-color:transparent }
#app.theme-night{--bg0:#0c101b;--bg1:#121827;--bg2:#111b2c;--text:#e6edf8;--muted:#98a8c2;--panel:#18223599;--panel-border:#ffffff12;--gold:#83b6ff;--gold-2:#acccff;--accent-2:#9278f9;--key-text:#dce7fa;--key-bd:#ffffff16}
#app{background:radial-gradient(ellipse at 80% 0%,#7160d21c,transparent 48%),radial-gradient(ellipse at 0% 30%,#2878bf18,transparent 50%),linear-gradient(140deg,var(--bg0),var(--bg1));isolation:isolate}
.topbar{padding:18px 28px;min-height:80px;background:transparent;gap:18px;border-color:var(--panel-border)}
.logo{width:44px;height:44px;display:block;overflow:visible;background:none!important;transform:none!important}.logo::before,.logo::after,.logoIcon{display:none!important}.logo img{width:44px;height:44px;display:block;filter:drop-shadow(0 4px 12px #598fe529)}
.title{font-size:17px;font-weight:600;letter-spacing:-.35px;text-shadow:none}.tagline{font-size:11px;font-weight:400;letter-spacing:.3px;color:var(--muted)}
.controls{gap:7px;overflow:visible}.pill{height:38px;min-height:38px;border-radius:11px;padding:0 14px;font:500 12px var(--font);letter-spacing:0;background:var(--panel);border:1px solid var(--panel-border);box-shadow:none;transition:background .2s,transform .2s,border-color .2s}
.pill:hover{transform:translateY(-2px);background:#82b5ff1a;border-color:#82b5ff65;box-shadow:0 5px 16px #00000015}.pill.active{background:#72a6f01c;border-color:#87baff65;box-shadow:inset 0 0 16px #91baff08}.status{background:transparent;border-color:transparent}.dot{box-shadow:0 0 12px #56dfa26b}
.intro{max-width:none;padding:25px 38px 20px;display:grid;grid-template-columns:1fr auto;gap:0 24px;align-items:center}
.eyebrow{grid-column:1;font-size:10px;letter-spacing:1.8px;color:var(--muted);font-weight:500}
.intro h1{grid-column:1;font-size:clamp(25px,2.3vw,34px);font-weight:500;letter-spacing:-1.1px;margin:8px 0;line-height:1.2}
.intro p{grid-column:1;font-size:13px;margin:0;max-width:none;line-height:1.6;font-weight:400}.intro>a{grid-column:2;grid-row:2 / 4;text-decoration:none;font-size:12px;padding:11px 16px;border-radius:30px;border:1px solid var(--panel-border);background:var(--panel);transition:border-color .2s}.intro>a:hover{border-color:#87baff80}
.intro .mobile-note{display:none}.stage{padding:8px 28px 28px;gap:16px}.hudBar{padding:14px 18px;border-radius:18px;background:var(--panel);box-shadow:none;border:1px solid var(--panel-border);min-height:80px}.hudKey{font-size:25px;font-weight:500;border-radius:12px}.hudHint,.hudRow,.hudRight{font-size:11px}.hudRow strong,.hudRow span:last-child{font-weight:500}
.keyboardWrap{border-radius:24px;background:linear-gradient(155deg,#759ec510,#6676bb07);border:1px solid var(--panel-border);box-shadow:0 16px 55px #00000014;animation:board-arrive .55s ease both}
.keyboard{background:none;border:0;box-shadow:none;backdrop-filter:none;gap:11px;padding:20px;border-radius:22px}
.key{border-radius:12px;background:linear-gradient(155deg,#25334b,#172233);border:1px solid #a7c9ff19;color:var(--key-text);font-family:var(--font);font-weight:400!important;letter-spacing:0;box-shadow:inset 0 1px 0 #d9e6ff0c,0 4px 0 #090e1970,0 6px 10px #00000012;text-shadow:none;transition:background .16s,box-shadow .16s,border-color .16s,transform .12s}
.key.small{font-size:14px}.key.med{font-size:17px}.key.big{font-size:20px}.key:hover{border-color:#a7c9ff66;box-shadow:inset 0 1px 0 #ffffff12,0 4px 0 #090e1970,0 0 20px #83b6ff12;filter:none}
.key.is-down,.key.is-latched{background:linear-gradient(140deg,#a2d4fa,#8c9cf1);color:#12213b;border-color:#b9deff;box-shadow:0 0 22px #79b9ff40,inset 0 1px 0 #ffffff80;transform:translateY(3px)}
.key.is-pulse{animation:key-wave .3s ease-out}.guide{max-width:1200px;padding-top:42px}.guide h2{font-weight:500;font-size:27px;letter-spacing:-.7px}.guide h3{font-weight:500}.guide summary{font-weight:500;font-size:15px}.guide article{background:var(--panel);border-radius:18px;transition:transform .22s,border-color .22s}.guide article:hover{transform:translateY(-3px);border-color:#82b5ff50}.guide p{font-size:14px}.step{display:inline-flex;width:32px;height:32px;align-items:center;justify-content:center;border:1px solid var(--panel-border);border-radius:10px;background:#83b6ff12;color:var(--text)}
.contentCard h1{font-weight:500;letter-spacing:-1px}.contentCard h2,.contentCard h3,.modalTitle{font-weight:500}.footerText{font-weight:400;font-size:12px}.footer a{font-weight:400}.modalPanel{border-radius:22px;border:1px solid var(--panel-border);box-shadow:0 24px 90px #00000055}.modalOverlay{backdrop-filter:blur(8px)}
#app.theme-day{--bg0:#e5ebf3;--bg1:#f0f3f9;--text:#22334c;--muted:#566881;--panel:#ffffff90;--panel-border:#33466d20;--key-text:#293c59}
.theme-day .key{background:linear-gradient(150deg,#fff,#e2e9f3);border-color:#afbcd650;box-shadow:inset 0 1px 0 white,0 4px 0 #b3bfd04a,0 7px 12px #67779110}.theme-day .key.is-down,.theme-day .key.is-latched{background:linear-gradient(140deg,#a2d4fa,#8c9cf1)}
@keyframes board-arrive{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}
@keyframes key-wave{0%{box-shadow:0 0 0 0 #8ebcff70}100%{box-shadow:0 0 0 13px #8ebcff00}}
@media(max-width:1050px){.topbar{padding:16px 20px}.controls{gap:6px}.intro{padding:20px 24px}.stage{padding:6px 16px 22px}}
@media(max-width:760px){.topbar{gap:14px}.controls{display:flex;flex-wrap:wrap}.pill{min-height:44px;height:44px;padding:0 12px}.intro{display:block;padding:20px}.intro h1{font-size:28px}.intro p{font-size:13px}.intro .mobile-note{display:block;margin-top:8px;font-size:11px}.intro>a{display:inline-block;margin-top:14px}.stage{padding:6px 10px 24px}.hudBar{padding:13px}.keyboardWrap{border-radius:16px}.guide{padding:28px 20px}.guide h2{font-size:24px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

@font-face{font-family:Manrope;src:url('/fonts/manrope-400.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:Manrope;src:url('/fonts/manrope-500.ttf') format('truetype');font-weight:500;font-display:swap}
@font-face{font-family:Manrope;src:url('/fonts/manrope-600.ttf') format('truetype');font-weight:600;font-display:swap}
@font-face{font-family:Manrope;src:url('/fonts/manrope-700.ttf') format('truetype');font-weight:700;font-display:swap}
:root{--font:Manrope,"Segoe UI",Arial,sans-serif}
#app.theme-night{--bg0:#121421;--bg1:#181a2b;--bg2:#152a30;--panel:#262a4099;--panel-border:#c4c0ff1a;--muted:#a4abc5;--gold:#bbadff;--accent-2:#81e4cd;--text:#eeeefa}
#app{background:radial-gradient(ellipse at 8% 4%,#a285f51c,transparent 40%),radial-gradient(ellipse at 95% 30%,#76e4ca14,transparent 40%),linear-gradient(130deg,var(--bg0),var(--bg1))}
.topbar{padding-top:20px;padding-bottom:20px}.title{font-family:var(--font);font-size:16px;font-weight:600;letter-spacing:-.6px}.tagline{letter-spacing:.5px;font-size:10px;margin-top:5px}
.logo,.logo img{width:48px;height:48px}.logo img{filter:drop-shadow(0 4px 14px #ab92ff35)}
.intro{padding-top:24px;padding-bottom:24px}.intro h1{font-family:var(--font);font-weight:600;font-size:clamp(26px,2.6vw,39px);letter-spacing:-1.6px;line-height:1.25;background:linear-gradient(110deg,var(--text),#b9a9f3 55%,#92dece);background-clip:text;-webkit-background-clip:text;color:transparent;width:fit-content}.eyebrow{letter-spacing:2px;font-size:9px}.intro p{font-size:12px;line-height:1.8}.intro>a{font-size:11px;border-color:#b7a1ff30;background:linear-gradient(120deg,#a99aff15,#76dacb0a)}
.pill{font-family:var(--font);font-size:11px;font-weight:500;border-radius:13px}.pill.active{border-color:#b7a1ff70;background:#b7a1ff16}.pill:hover{background:#b7a1ff20;border-color:#b7a1ff60}.dot{background:#8be5c6;box-shadow:0 0 14px #8be5c666}
.keyboardWrap{background:linear-gradient(145deg,#c4b5ff0d,#8be5c606);border-color:#b8bcff25;box-shadow:0 20px 70px #00000020,inset 0 1px 0 #ffffff08;position:relative}
.key{font-family:var(--font);font-weight:500!important;background:linear-gradient(155deg,#30334a,#23283b);border-color:#c7c7ff18;border-radius:13px;color:#dde1f2;box-shadow:inset 0 1px 0 #ffffff0b,0 4px 0 #0d10216b,0 8px 14px #00000013}
.key:hover{background:linear-gradient(155deg,#3d3c57,#292e43);border-color:#c2acff65;box-shadow:0 0 24px #c2acff16,0 4px 0 #0d10216b}
.key.small{font-size:13px}.key.med{font-size:16px}.key.big{font-size:19px}
.key[data-code^="F"],.key[data-code="Escape"]{color:#c5b6fc}.key[data-code^="Arrow"]{color:#a2e4d5}.key[data-code="Enter"],.key[data-code="NumpadEnter"]{color:#a2e4d5;background:linear-gradient(155deg,#284044,#23343d)}
.key.is-down,.key.is-latched{background:linear-gradient(130deg,#c1a7fa,#a9c4f4 60%,#9fe2d2);color:#242743;border-color:#e1d1ff;box-shadow:0 0 24px #b3a4ff50,inset 0 1px 0 #ffffff80}
.hudBar{border-color:#c4bcff18;background:linear-gradient(110deg,#272a4099,#212e3c99)}.hudKey{font-family:var(--font);font-weight:500}.guide article{background:linear-gradient(140deg,var(--panel),#a79cff07)}.guide h2,.guide h3,.guide summary{font-family:var(--font)}.step{color:#c8b9fa;background:#b7a1ff14;border-color:#b7a1ff30}.guide article:hover{border-color:#b7a1ff60;box-shadow:0 10px 30px #00000012}
.theme-day .intro h1{background:linear-gradient(110deg,#303a58,#7660a6,#327967);background-clip:text;-webkit-background-clip:text}.theme-day .hudBar{background:#ffffff80}.theme-day .key[data-code^="F"],.theme-day .key[data-code="Escape"]{color:#735d9a}.theme-day .key[data-code^="Arrow"]{color:#327967}.theme-day .key[data-code="Enter"],.theme-day .key[data-code="NumpadEnter"]{background:#d0e6df;color:#30584e}
@media(max-width:760px){.intro h1{font-size:29px}.topbar{padding:16px}.pill{font-size:11px}.keyboard{gap:11px}.intro .mobile-note{line-height:1.7}}
