/* Layout: a quiet room with one subject. Rouge is only the beak. */
  :root {
    --bg: #FFFFFF; --glow: #FFFFFF; --text: #121212; --text2: #6B6966; --text3: #9C9A96; --line: #D9D7D3;
    --serif: "Instrument Serif", Georgia, "Times New Roman", serif;
    --sans: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Noto Sans CJK SC", "Noto Sans TC", "Noto Sans KR", "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
    color-scheme: light;
  }
  @media (prefers-color-scheme: dark) {
    :root {
      --bg: #101010; --glow: #101010; --text: #F5F5F5; --text2: #B7B7B7; --text3: #858585; --line: #454545;
      color-scheme: dark;
    }
  }
  * { box-sizing: border-box; }
  html, body { height: 100%; }
  body {
    margin: 0; color: var(--text); font: 16px/1.6 var(--sans);
    background: var(--bg);
    padding-block: 0; padding-left: max(24px, env(safe-area-inset-left, 0px)); padding-right: max(24px, env(safe-area-inset-right, 0px));
  }
  h1, p { margin: 0; }
  :focus-visible { outline: 2px solid var(--text); outline-offset: 4px; border-radius: 4px; }

  .page { height: 100%; max-width: 960px; margin: 0 auto; display: grid; grid-template-rows: minmax(0, 1fr) auto; justify-items: center; }
  .stage { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; min-height: 0; padding-block: 24px; }

  .kyu { width: min(46vw, 30vh, 280px); aspect-ratio: 1; color: var(--text); display: block; }
  .word { margin-top: clamp(20px, 5vh, 48px); font: italic 400 clamp(56px, min(12vw, 11vh), 112px)/1 var(--serif); letter-spacing: 0.005em; }
  .line { margin-top: clamp(12px, 2.4vh, 24px); font-size: clamp(15px, 1.2vw + 8px, 19px); letter-spacing: 0.22em; color: var(--text2); font-weight: 400; padding-left: 0.22em; }
  .stores { margin-top: clamp(24px, 6vh, 56px); display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
  .store { height: 44px; padding: 0 22px 0 18px; border-radius: 999px; border: 0.5px solid var(--text); display: inline-flex; align-items: center; gap: 10px; font-size: 14px; font-weight: 500; text-decoration: none; color: inherit; }
  .store svg { width: 18px; height: 18px; flex: none; fill: currentColor; }
  .store.solid { background: var(--text); color: var(--bg); }
  .store.solid small { color: var(--bg); opacity: .6; }
  .store small { font-size: 12px; color: var(--text3); font-weight: 400; }

  .foot { padding-block: 16px calc(20px + env(safe-area-inset-bottom, 0px)); display: flex; gap: 24px; justify-content: center; font-size: 11px; letter-spacing: 0.2em; color: var(--text3); text-transform: uppercase; }

  .rise { animation: rise 1100ms cubic-bezier(.2,.6,.2,1) both; }
  .rise.d1 { animation-delay: 200ms; } .rise.d2 { animation-delay: 400ms; } .rise.d3 { animation-delay: 600ms; }
  @keyframes rise { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
  @media (max-width: 600px) {
    .stores { width: 100%; flex-direction: column; flex-wrap: nowrap; align-items: center; gap: 12px; }
    .store { width: min(100%, 320px); justify-content: center; }
  }
  @media (prefers-reduced-motion: reduce) { .rise { animation: none; } }
