@charset "UTF-8";

/* Screen changes focus the main landmark; its browser ring becomes a page-wide blue line. */
main#app:focus { outline: none; }

/* The small screen keeps the ritual's imagery, but puts the next action in sight. */
@media (max-width: 620px) {
  .site-header {
    padding: 13px 18px 5px;
    gap: 8px;
  }
  .brand { font-size: 19px; }
  .brand-symbol { width: 32px; height: 32px; font-size: 25px; }
  .site-header nav {
    width: 100%;
    gap: 4px;
    margin-top: 2px;
    padding-top: 3px;
    justify-content: space-between;
  }
  .nav-button { min-height: 44px; padding: 7px 5px; font-size: 11px; }
  .site-header nav .site-return {
    display: inline-flex;
    min-height: 44px;
    padding-left: 8px;
    color: #e7cb92;
    font-size: 11px;
    opacity: 1;
  }
  .site-footer { padding: 19px 20px 22px; gap: 8px 14px; }
  .site-footer .footer-site-return { color: #e7cb92; font-size: 11px; }
  .site-footer .dev-label { font-size: 10px; line-height: 1.65; }

  .hero { padding: 19px 22px 22px; }
  .hero .eyebrow { margin-bottom: 7px; letter-spacing: .12em; }
  .hero h1 { font-size: clamp(34px, 9.3vw, 40px); line-height: 1.34; margin-bottom: 7px; }
  .hero .intro { font-size: 13px; line-height: 1.75; max-width: 330px; }
  .hero .host-line {
    order: 3;
    width: 100%;
    max-width: 340px;
    margin: 17px auto 14px;
    gap: 15px;
    text-align: left;
  }
  .hero .host-line .host-portrait-frame { width: 65px; height: 78px; }
  .hero .host-line p { font-size: 14px; line-height: 1.55; }
  .hero .host-line small { font-size: 11px; line-height: 1.6; }
  .hero .host-rotation { order: 4; margin: 0 auto 8px; }
  .hero .hero-start { order: 5; min-height: 50px; max-width: 340px; }
  .hero .home-topic-actions { order: 6; }
  .hero-display { order: 7; height: 268px; margin-top: 11px; }
  .hero-card { width: 122px; }
  .hero-card.center { width: 151px; }
  .hero-card.left { transform: translate(-65px, 6px) rotate(-17deg); }
  .hero-card.right { transform: translate(65px, 8px) rotate(17deg); }
  .orbit { width: 242px; height: 242px; }
  .float-stamp { right: 0; bottom: 8px; padding: 8px 10px; font-size: 10px; }
  .hero-display:after { bottom: 0; }
  .hero .sky-preview { order: 8; margin: 18px auto 4px; }
  .hero .hero-footnote { order: 9; margin-top: 9px; font-size: 10px; }
  .hero .memory { order: 10; }
  .home-strip {
    display: block;
    margin: 13px 22px 26px;
    padding: 0;
  }
  .home-strip > div { padding: 16px 2px; border-bottom: 1px solid #c9ad7c2b; }
  .home-strip > div:last-child { border-bottom: 0; }
  .home-strip h3 { margin-bottom: 5px; font-size: 14px; line-height: 1.5; }
  .home-strip p { color: #bac9c9; font-size: 12px; line-height: 1.75; }
  .home-strip p br { display: none; }

  .page-top { display: block; padding: 14px 22px 7px; }
  .page-top .back-button { min-height: 38px; font-size: 12px; }
  .stepper { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 4px; margin-top: 3px; }
  .stepper span {
    min-width: 0;
    padding: 6px 1px 0;
    border-top: 1px solid #c2a77039;
    color: #9caab0;
    text-align: center;
    font-size: 9px;
    line-height: 1.35;
    letter-spacing: 0;
  }
  .stepper span.active { border-top-color: #ddc38a; color: #e4cd96; }
  .stepper b { display: block; margin: 0 0 2px; font: 9px/1.2 Georgia, serif; }

  .prepare { padding: 15px 22px 44px; }
  .prepare-host { gap: 14px; margin-bottom: 16px; text-align: left; }
  .prepare > .host-rotation { margin-bottom: 14px; }
  .prepare > .mini-invite { margin-top: 24px; }
  .prepare-host .host-portrait-frame { width: 65px; height: 78px; }
  .prepare-host > span:last-child { font-size: 14px; line-height: 1.6; }
  .prepare-host small { font-size: 11px; line-height: 1.6; }
  .prepare h2 { font-size: clamp(25px, 7vw, 30px); line-height: 1.4; margin-bottom: 8px; }
  .prepare .intro { font-size: 13px; line-height: 1.8; }
  .form-panel { margin: 18px 0 17px; }
  .field-label { font-size: 13px; }
  .field-label small { font-size: 11px; }
  .prepare input[type="text"], .prepare textarea { font-size: 16px; }
  .prepare textarea { min-height: 108px; }
  .prepare .privacy-note {
    margin-top: 20px;
    padding-top: 14px;
    border-top: 1px solid #c3a66d31;
    color: #abbab9;
    font-size: 11px;
    line-height: 1.8;
    text-align: left;
  }
  .mini-invite {
    display: grid;
    grid-template-columns: 32px minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    margin: 10px auto 23px;
    padding: 14px 13px;
    border-radius: 10px;
    text-align: left;
  }
  .mini-invite-mark { width: 30px; height: 30px; font-size: 18px; }
  .mini-invite > div { min-width: 0; grid-column: 2; flex-basis: auto; }
  .mini-invite strong { font-size: 15px; line-height: 1.45; }
  .mini-invite p { margin-top: 3px; font-size: 10px; line-height: 1.45; }
  .mini-invite button { grid-column: 3; justify-self: end; min-height: 44px; margin: 0; padding: 5px 0 5px 4px; font-size: 12px; white-space: nowrap; }
  .mini-invite-end { margin-top: 27px; }

  .deck-page { padding: 15px 0 37px; }
  .deck-page h2 { font-size: 29px; }
  .deck-page > .intro { padding-inline: 24px; font-size: 13px; line-height: 1.7; }
  .deck-tools { margin: 14px 20px 18px; }
  .deck-tools .secondary { min-height: 44px; min-width: 0; flex: 1; max-width: 150px; }
  .deck-hint { max-width: 345px; margin: 13px auto 7px; padding-inline: 16px; font-size: 11px; line-height: 1.7; }
  .selection-note { margin: 9px 0 12px; font-size: 12px; }
  .deck-page > .primary { min-height: 49px; }
  .deck-page > .privacy-note { font-size: 11px; }
  .deck-wheel { height: 355px; }
  .wheel-stage { bottom: 54px; }
  .wheel-controls { bottom: 2px; }

  .quiet-top { padding-inline: 20px; font-size: 10px; }
  .quiet-content { gap: 24px; padding: clamp(48px, 7vh, 72px) 24px 56px; }
  .quiet-line { font-size: clamp(19px, 5.2vw, 22px); line-height: 1.9; letter-spacing: .025em; }
  .quiet-prose { max-width: 32em; font-size: 19px; line-height: 1.92; letter-spacing: .025em; }
  .quiet-prose p + p { margin-top: 1.35em; }
  .quiet-stage .quiet-back, .quiet-small-controls .quiet-site-return { font-size: 11px; }
  .quiet-site-return { color: #dec895; }
  .quiet-controls { padding-inline: 23px; padding-bottom: calc(35px + env(safe-area-inset-bottom)); }
  .quiet-voice-mark {
    display: flex;
    align-items: center;
    gap: 11px;
    width: 100%;
    max-width: 32em;
    margin: 0 auto 16px;
    color: #d8c392;
    text-align: left;
    font: 12px/1.6 -apple-system, BlinkMacSystemFont, "PingFang SC", sans-serif;
    letter-spacing: .035em;
  }
  .quiet-voice-mark img {
    display: block;
    flex: none;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 24%;
    border: 1px solid #c7a97881;
    border-radius: 18px 18px 5px 5px;
  }
  .quiet-voice-mark .quiet-host-frame { width: 40px; height: 49px; box-shadow: 0 0 0 3px #080d0ec7, 0 0 0 4px #c4a87634; }
  .host-rotation {
    width: 100%;
    max-width: 340px;
    margin: 7px auto 0;
    padding: 0 2px;
    color: #abbab8;
    text-align: left;
    font: 11px/1.75 -apple-system, BlinkMacSystemFont, "PingFang SC", sans-serif;
  }
  .host-rotation summary { display: flex; align-items: center; min-height: 44px; color: #dfc991; cursor: pointer; }
  .host-rotation p { margin: 0 0 12px; }

  .analysis-top { gap: 12px; padding: 17px 21px; font-size: 10px; line-height: 1.5; }
  .analysis-top button { flex: none; min-height: 44px; }
  .analysis-hero { gap: 24px; padding: 35px 23px 52px; }
  .analysis-title h1 { margin: 9px 0 11px; font-size: clamp(44px, 13vw, 57px); line-height: 1.2; }
  .analysis-title h1 small { margin-top: 12px; font-size: 11px; letter-spacing: .12em; }
  .analysis-title > p { font-size: 16px; line-height: 1.85; overflow-wrap: anywhere; }
  .analysis-keywords { gap: 7px; margin-top: 19px; }
  .analysis-keywords span { padding: 5px 10px; font-size: 10px; }
  .analysis-card { width: 160px; }
  .analysis-card:before { inset: -26px; box-shadow: 0 0 0 25px #c9a2680f, 0 0 55px #d8ae5d24; }
  .analysis-body { padding: 4px 22px 80px; }
  .analysis-section { gap: 6px; padding: 34px 0 38px; }
  .analysis-number { font-size: 16px; }
  .analysis-section h2, .analysis-sources h2, .analysis-note h2 { margin-bottom: 15px; font-size: 24px; line-height: 1.45; }
  .analysis-section p { font-size: 17px; line-height: 2; letter-spacing: .025em; overflow-wrap: anywhere; }
  .analysis-section p + p { margin-top: 1.1em; }
  .analysis-section .analysis-reflection { margin-top: 21px; font-size: 15px; line-height: 1.9; }
  .analysis-sources, .analysis-note { padding: 39px 0; }
  .analysis-sources p, .analysis-sources a { font-size: 12px; line-height: 1.85; overflow-wrap: anywhere; }
  .analysis-note textarea { font-size: 16px; line-height: 1.8; }
  .analysis-writing { line-height: 1.7; }
  .analysis-section { display: block; }
  .analysis-section summary { grid-template-columns: 28px minmax(0, 1fr) 16px; gap: 10px; }
  .analysis-section summary h2 { margin: 0; font-size: 21px; }
  .analysis-section .analysis-answer { margin: 18px 0 0; }
  .analysis-bottom { margin-top: 38px; }

  dialog#detail-dialog {
    width: calc(100% - 20px);
    max-height: 92vh;
    max-height: 92dvh;
    padding: 27px 20px 21px;
    border-radius: 10px;
    overscroll-behavior: contain;
  }
  dialog#detail-dialog .dialog-close { top: 8px; right: 10px; min-width: 44px; min-height: 44px; }
  .mini-guide h2 { max-width: 15ch; font-size: 25px; line-height: 1.4; }
  .mini-guide-direct h2 { max-width: none; }
  .mini-guide-intro { font-size: 14px; line-height: 1.75; }
  .mini-guide-mobile { margin-top: 15px; padding: 12px; }
  .mini-guide-open { padding: 10px 12px; font-size: 14px; }
  .mini-guide-mobile p { font-size: 11px; line-height: 1.6; }
  .mini-guide-grid { margin-top: 16px; padding: 15px; gap: 13px; }
  .mini-guide-join { display: flex; flex-direction: column; }
  .mini-guide ol { gap: 11px; }
  .mini-guide li { grid-template-columns: 26px 1fr; gap: 1px 8px; }
  .mini-guide li strong { font-size: 15px; }
  .mini-guide li span { font-size: 11px; line-height: 1.55; }
  .mini-guide-form {
    order: -1;
    margin: 0 0 16px;
    padding: 0 0 15px;
    border-top: 0;
    border-bottom: 1px solid #b798613c;
  }
  .mini-guide-form label { margin-bottom: 7px; }
  .mini-guide-form input { font-size: 16px; }
  .mini-guide-form button, .mini-guide-disconnect { min-height: 44px; }
  dialog#detail-dialog:has(.observatory) { width: calc(100% - 16px); padding: 0; }
  dialog#detail-dialog:has(.observatory) .dialog-close { right: 5px; top: 5px; }
  .observatory { padding: 31px 20px 24px; }
  .observatory-heading { padding-right: 34px; }
}

@media (max-width: 360px) {
  .site-header { padding-inline: 14px; }
  .site-header nav { gap: 1px; }
  .nav-button { font-size: 10px; padding-inline: 4px; }
  .site-header nav .site-return { padding-left: 5px; font-size: 10px; }
  .hero { padding-inline: 17px; }
  .hero-display { height: 241px; }
  .hero-card { width: 113px; }
  .hero-card.center { width: 137px; }
  .hero-card.left { transform: translate(-56px, 5px) rotate(-17deg); }
  .hero-card.right { transform: translate(56px, 7px) rotate(17deg); }
  .orbit { width: 222px; height: 222px; }
  .page-top { padding-inline: 16px; }
  .prepare { padding-inline: 17px; }
  .mini-invite { gap: 7px; padding-inline: 11px; }
  .mini-invite strong { font-size: 14px; }
  .mini-invite p { font-size: 10px; }
  .deck-wheel { height: 333px; }
  .quiet-content { padding-inline: 20px; }
  .quiet-line, .quiet-prose { font-size: 18px; }
  .analysis-top { padding-inline: 17px; }
  .analysis-hero { padding-inline: 18px; }
  .analysis-body { padding-inline: 19px; }
  dialog#detail-dialog { padding-inline: 17px; }
  .observatory { padding-inline: 16px; }
}
