/* WRITING YOUR STORY · THE DOOR (2026-10-05, day three). The room's own pages: big targets, high contrast,
   the site's own palette (style.css tokens), nothing that moves by itself. Loaded after /style.css. */

.door-nav { display: flex; flex-wrap: wrap; gap: 0.5rem; justify-content: center; padding: 0.75rem 1rem;
  background: var(--album, #EFE5D2); border-bottom: 1px solid var(--gold, #B9862F); }
.door-nav a, .door-nav button { font: inherit; font-size: 1.05rem; padding: 0.55rem 1rem; border-radius: 999px;
  border: 2px solid var(--gold-deep, #7C5A17); background: var(--paper, #FAF4E8); color: var(--ink, #38291A);
  text-decoration: none; cursor: pointer; min-height: 48px; }
.door-nav a[aria-current="page"] { background: var(--gold-bright, #E2B562); }
.door-nav a:hover, .door-nav button:hover { background: var(--gold-bright, #E2B562); }

.door-main { max-width: 52rem; margin: 0 auto; padding: 1.5rem 1rem 3rem; }
.door-main h1 { text-align: center; }
.door-panel { background: #fff9ee; border: 1px solid #e0cfae; border-radius: 14px; padding: 1.25rem 1.25rem 1.5rem;
  margin: 1.25rem 0; box-shadow: 0 1px 2px rgba(56, 41, 26, 0.08); }
.door-panel h2 { margin-top: 0; font-size: 1.5rem; }
.door-field { display: block; margin: 0.9rem 0; }
.door-field span { display: block; font-weight: 600; margin-bottom: 0.3rem; font-size: 1.1rem; }
.door-field input, .door-field select, .door-field textarea { width: 100%; box-sizing: border-box; font: inherit;
  font-size: 1.25rem; padding: 0.7rem 0.8rem; border: 2px solid var(--ink-soft, #6A573F); border-radius: 10px;
  background: #fffdf8; color: var(--ink, #38291A); }
.door-field textarea { min-height: 7rem; resize: vertical; }
.door-btn { font: inherit; font-size: 1.25rem; font-weight: 700; padding: 0.85rem 1.5rem; min-height: 56px;
  border-radius: 12px; border: 2px solid var(--gold-deep, #7C5A17); background: var(--gold-bright, #E2B562);
  color: var(--ink, #38291A); cursor: pointer; }
.door-btn:hover { background: var(--gold, #B9862F); }
.door-btn--quiet { background: var(--paper, #FAF4E8); }
.door-btn[disabled] { opacity: 0.6; cursor: not-allowed; }
.door-code { font-size: 2rem; font-weight: 700; letter-spacing: 0.04em; text-align: center; padding: 1rem;
  border: 3px dashed var(--gold-deep, #7C5A17); border-radius: 12px; background: #fffdf3; word-break: break-word; }
.door-note { color: var(--ink-soft, #6A573F); font-size: 1.05rem; }
.door-status { min-height: 1.5rem; font-weight: 600; }

.door-care { background: #f7e3d6; border: 3px solid #8a2f1d; border-radius: 12px; padding: 1rem 1.2rem; margin: 1rem 0;
  font-size: 1.2rem; color: #2a1a10; }
.door-care strong { color: #2a1a10; }

.room-log { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.8rem; }
.room-log li { padding: 0.9rem 1.1rem; border-radius: 14px; font-size: 1.2rem; line-height: 1.6; white-space: pre-wrap; }
.room-log .rye { background: #fff9ee; border: 1px solid #e0cfae; }
.room-log .rye::before { content: "Rye"; display: block; font-size: 0.85rem; font-weight: 700; letter-spacing: 0.12em;
  text-transform: uppercase; color: var(--gold-deep, #7C5A17); margin-bottom: 0.25rem; }
.room-log .you { background: #eef0e2; border: 1px solid #c9cdb0; margin-left: 2.5rem; }
.room-log .you::before { content: "You"; display: block; font-size: 0.85rem; font-weight: 700; letter-spacing: 0.12em;
  text-transform: uppercase; color: #4b5320; margin-bottom: 0.25rem; }
.room-log .helper::before { content: "Helper"; }
.room-log .care { background: #f7e3d6; border: 3px solid #8a2f1d; }
.room-readback { background: #fffdf3; border: 3px solid var(--gold, #B9862F); border-radius: 14px; padding: 1rem 1.2rem;
  margin: 0.5rem 0 0; }
.room-doors { display: flex; flex-wrap: wrap; gap: 0.6rem; margin: 1rem 0; }
.room-doors .door-btn { flex: 1 1 10rem; }
.room-input { display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: flex-end; }
.room-input .door-field { flex: 1 1 22rem; margin: 0; }
.door-mic { font: inherit; font-size: 1.15rem; padding: 0.8rem 1.2rem; min-height: 56px; border-radius: 999px;
  border: 2px dashed var(--ink-soft, #6A573F); background: #f1ece2; color: var(--ink-soft, #6A573F); cursor: not-allowed; }
.door-toggle { font: inherit; font-size: 1.05rem; padding: 0.55rem 1rem; min-height: 48px; border-radius: 999px;
  border: 2px solid var(--gold-deep, #7C5A17); background: var(--paper, #FAF4E8); color: var(--ink, #38291A); cursor: pointer; }
.door-toggle[aria-pressed="true"] { background: var(--gold-bright, #E2B562); }
.room-who { display: flex; gap: 1rem; flex-wrap: wrap; font-size: 1.1rem; margin: 0.5rem 0; }
.room-who label { display: flex; gap: 0.4rem; align-items: center; }
.room-who input { width: 1.4rem; height: 1.4rem; }

.book-telling { border-top: 1px solid #e0cfae; padding: 1rem 0; }
.book-telling h3 { margin: 0 0 0.4rem; }
.book-telling p { font-size: 1.2rem; line-height: 1.7; white-space: pre-wrap; }
.book-prov { font-size: 0.95rem; color: var(--ink-soft, #6A573F); }
.book-stamp { display: inline-block; padding: 0.25rem 0.8rem; border-radius: 999px; font-weight: 700;
  border: 2px solid var(--gold-deep, #7C5A17); background: #fffdf3; }

.sample-label { display: block; font-size: 0.95rem; font-weight: 700; color: #8a2f1d; margin-bottom: 0.3rem; }
@media (max-width: 40rem) {
  .room-log .you { margin-left: 0.75rem; }
  .door-code { font-size: 1.5rem; }
}
@media (prefers-reduced-motion: reduce) { * { transition: none !important; } }

/* THE VOICE IN (2026-10-06, voice-door.js): the microphone, hands-free, and what was heard — big targets, a visible
   listening state that never relies on colour alone (the words say it too). */
.voice-bar { background: #fff9ee; border: 2px solid var(--gold, #B9862F); border-radius: 14px; padding: 1rem 1.2rem; margin: 1rem 0; }
.voice-row { display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: center; }
.voice-mic { font: inherit; font-size: 1.25rem; font-weight: 700; padding: 0.85rem 1.4rem; min-height: 56px; border-radius: 999px;
  border: 2px solid var(--gold-deep, #7C5A17); background: var(--gold-bright, #E2B562); color: var(--ink, #38291A); cursor: pointer; }
.voice-mic[aria-pressed="true"] { background: #8a2f1d; color: #fff; border-color: #5c1f13; }
.voice-mic[disabled] { background: #f1ece2; color: var(--ink-soft, #6A573F); border-style: dashed; cursor: not-allowed; }
.voice-bar[data-listening="yes"] .voice-state::before { content: "\25CF  "; color: #8a2f1d; }
.voice-heard { border: 3px solid var(--gold, #B9862F); border-radius: 12px; background: #fffdf3; padding: 0.8rem 1rem; margin-top: 0.75rem; }
.voice-heard-label { font-weight: 700; margin: 0 0 0.4rem; }
.voice-heard-text { font-size: 1.25rem; margin: 0 0 0.5rem; padding: 0; }
.voice-listen-book { margin-top: 0.75rem; }
.door-main button:focus-visible, .door-main a:focus-visible, .door-main input:focus-visible, .door-main textarea:focus-visible,
.door-main select:focus-visible, .door-nav a:focus-visible, .door-nav button:focus-visible, .skip-link:focus-visible {
  outline: 3px solid #1d4f8a; outline-offset: 3px; }
.access-table { width: 100%; border-collapse: collapse; font-size: 1rem; }
.access-table th, .access-table td { border: 1px solid #e0cfae; padding: 0.5rem 0.6rem; text-align: left; vertical-align: top; }
.access-table th { background: #f6ecd8; }
.access-wrap { overflow-x: auto; }
/* touch targets at phone width (the CE's sim 11): every choice and every fold at least 44 px tall */
.room-who label { min-height: 44px; }
.door-main details > summary { min-height: 44px; display: list-item; padding: 0.55rem 0; box-sizing: border-box; }
