    html {
      height: 100%;
      overflow: hidden;
    }
    body {
      position: fixed;
      inset: 0;
      overflow: hidden;
      overscroll-behavior: none;
    }

    .ol-stage.home {
      display: flex;
      height: 100%;
      min-height: 0;
      overflow: hidden;
      padding: 40px clamp(16px, 3vw, 32px);
    }
    @media (min-width: 821px) {
      body .ol-stage.home { margin-left: 0; padding-inline: var(--rail); }
      body.rail-open .ol-stage.home { padding-inline: var(--rail-open); }
    }
    .home-inner {
      margin: auto;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 20px;
      width: min(640px, 100%);
    }

    .hero { position: relative; display: grid; justify-items: center; gap: 10px; }
    .hero::before {
      content: "";
      position: absolute;
      left: 50%;
      top: 46%;
      width: 380px;
      height: 180px;
      transform: translate(-50%, -50%);
      background: radial-gradient(50% 50% at 50% 50%,
        hsl(var(--bg-h) var(--bg-s) 62% / 0.16),
        hsl(var(--bg-h) var(--bg-s) 62% / 0.06) 45%, transparent 72%);
      filter: blur(30px);
      pointer-events: none;
    }
    .hero-logo {
      position: relative;
      width: min(380px, 84%);
      height: auto;
      display: block;
    }
    .hero-wordmark {
      width: auto;
      font-size: clamp(52px, 12vw, 108px);
      font-weight: 700;
      letter-spacing: -0.045em;
      line-height: 1.2;
      text-align: center;
      background: linear-gradient(115deg, #ffffff 0%, #ffffff 45%, var(--accent-color) 100%);
      -webkit-background-clip: text;
              background-clip: text;
      color: transparent;
      -webkit-text-fill-color: transparent;
    }

    .search-bar {
      position: relative;
      display: flex;
      align-items: center;
      gap: 16px;
      width: 100%;
      padding: 18px 26px;
      background: linear-gradient(180deg, rgba(255,255,255,0.03), rgba(255,255,255,0.01));
      border: 1px solid var(--line);
      border-radius: var(--radius-pill);
      box-shadow: 0 0 0 1px transparent, 0 18px 42px -22px var(--accent-glow);
      transition: border-color 0.16s ease, box-shadow 0.2s ease, background 0.2s ease;
    }
    .search-bar:hover { border-color: var(--line-strong); }
    .search-bar:focus-within {
      border-color: var(--accent-line);
      background: linear-gradient(180deg, rgba(255,255,255,0.05), rgba(255,255,255,0.015));
      box-shadow: 0 0 0 4px var(--accent-soft), 0 18px 42px -20px var(--accent-glow);
    }
    @property --beam-angle {
      syntax: "<angle>";
      inherits: false;
      initial-value: 0deg;
    }
    .search-bar::after {
      content: "";
      position: absolute;
      inset: -1px;
      padding: 1px;
      border-radius: inherit;
      pointer-events: none;
      background: conic-gradient(
        from var(--beam-angle),
        transparent 0%,
        transparent 72%,
        rgba(255, 255, 255, 0.5) 84%,
        #ffffff 90%,
        rgba(255, 255, 255, 0.5) 96%,
        transparent 100%
      );
      -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
      -webkit-mask-composite: xor;
              mask-composite: exclude;
      animation: search-beam-spin 3.6s linear infinite;
    }
    @keyframes search-beam-spin {
      to { --beam-angle: 360deg; }
    }
    .search-bar-icon { width: 22px; height: 22px; color: var(--text-faint); flex-shrink: 0; transition: color 0.16s ease; }
    .search-bar:focus-within .search-bar-icon { color: var(--accent-color); }
    .search-input {
      flex: 1;
      min-width: 0;
      min-height: 28px;
      background: none;
      border: none;
      color: var(--text);
      font: inherit;
      font-size: 17px;
      letter-spacing: -0.01em;
      outline: none;
    }
    .search-input::placeholder { color: var(--text-faint); }

    @media (max-width: 820px) {
      body .ol-stage.home {
        min-height: auto;
        padding: 32px clamp(16px, 3vw, 32px) 100px;
      }
      .hero::before { width: 300px; height: 170px; }
    }

