:root{--maroon: #8c1d40;--maroon-deep: #5c1230;--maroon-soft: #f8e8ee;--gold: #ffc627;--ink: #241816;--ink-soft: #5c4e46;--paper: #f3eee6;--card: #fffdf8;--line: #e5d8c8;--shadow: 0 14px 34px rgba(72, 32, 28, .07);--serif: "Fraunces", "Palatino Linotype", Palatino, Georgia, serif;--sans: "Source Sans 3", "Segoe UI", sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;color:var(--ink);background:linear-gradient(var(--gold),var(--gold)) top / 100% 6px no-repeat,var(--paper);font-family:var(--sans);font-size:18px;line-height:1.45}button,input,textarea{font:inherit;color:inherit}button,a.button{cursor:pointer;text-decoration:none}h1,h2,h3{font-family:var(--serif);font-weight:560;letter-spacing:-.02em;margin:0;line-height:1.2}h1{font-size:1.85rem}h2{font-size:1.45rem}p{margin:0;overflow-wrap:break-word}.eyebrow{margin:0 0 .2rem;font-size:.74rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--maroon)}.app{min-height:100dvh}.topbar{display:flex;flex-wrap:wrap;gap:12px 28px;align-items:center;padding:18px 22px 14px}.brand{display:flex;gap:8px;align-items:center}.brand-logo-wrap{background:#fff;padding:28px;line-height:0;flex:0 0 auto}.brand-logo{height:56px;width:auto;display:block}.later-line{flex:1 1 280px;color:var(--ink-soft);max-width:36rem}.stage{width:min(880px,calc(100% - 32px));margin:0 auto;padding:8px 0 56px;display:flex;flex-direction:column;gap:16px}.hero{display:grid;grid-template-columns:220px minmax(0,1fr);gap:8px 18px;align-items:center;background:radial-gradient(circle at 30% 20%,rgba(255,198,39,.35),transparent 46%),linear-gradient(180deg,#7d1a3b 0%,var(--maroon-deep) 100%);color:#fff8ea;border-radius:28px;padding:12px 22px 18px 8px;box-shadow:var(--shadow)}.hero .eyebrow,.hero .status,.hero .now,.hero .live{color:#fff8ea}.hero-copy{min-width:0;padding:8px 8px 8px 0}.status{font-weight:700;margin-bottom:8px}.now{font-family:var(--serif);font-size:1.55rem;line-height:1.35}.live{margin-top:10px;color:#fff8eadb}.avatar-svg{width:210px;height:auto;display:block;margin:0 auto;background:radial-gradient(circle at 50% 46%,rgba(255,248,234,.2),transparent 62%);border-radius:50%}.avatar-caption{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.mouth-open{opacity:0}.ring{fill:none;stroke:var(--gold);stroke-width:1.5;opacity:0}.is-speak .mouth-closed{opacity:0}.is-speak .mouth-open{opacity:1;transform-box:fill-box;transform-origin:center;animation:talk .28s ease-in-out infinite}.is-listen .ring{animation:pulse 1.8s ease-out infinite}.is-think .pupil{transform:translateY(-2px)}.is-idle .figure{animation:float 5.6s ease-in-out infinite;transform-origin:160px 250px}@keyframes talk{0%,to{transform:scaleY(.45)}50%{transform:scaleY(1)}}@keyframes pulse{0%{opacity:.75}to{opacity:0}}@keyframes float{50%{transform:translateY(-4px)}}.card,.transcript,.drawer,.type-fallback{background:var(--card);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);padding:16px 18px}.card{display:flex;flex-direction:column;gap:12px}.card h2{margin-bottom:2px}.id-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.id-row label{flex:1 1 220px}input,textarea{width:100%;border:1px solid var(--line);background:#fff;border-radius:12px;padding:10px 12px}textarea{resize:vertical}.choices{display:grid;grid-template-columns:1fr 1fr;gap:10px}.choice,.button{border-radius:999px;border:1px solid transparent;padding:.7rem 1rem;font-weight:700;background:#fff;text-align:center}.choice{border-color:var(--line);min-height:52px;white-space:normal}.choice:hover{border-color:var(--maroon)}.button-primary,a.button-primary{background:var(--maroon);color:#fffaf3;display:inline-flex;align-items:center;justify-content:center}.button-ghost{background:#fffdf8;border-color:var(--maroon);color:var(--maroon)}.button-gold{background:var(--gold);color:#3b2806}.button:disabled{opacity:.45;cursor:not-allowed}.quiet-card{gap:8px}.bird-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.bird-row button{border-radius:999px;border:1px solid var(--line);background:#fff;padding:.35rem .75rem;font-weight:700}.bird-row button.is-on{background:var(--maroon);color:#fffaf3;border-color:var(--maroon)}.bird-row span{font-weight:700}.talk-controls{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center}.answer-row{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center}.answer-row .fine{margin:0}.text-button{border:0;background:transparent;color:var(--maroon);font-weight:700;padding:.3rem .1rem}.fine{color:var(--ink-soft)}.notice{background:#fff4cc;border-radius:12px;padding:10px 12px}.practice-notice{font-size:.98rem}.type-fallback{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.type-fallback label{flex:1 1 220px}.end-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.paste{display:flex;flex-direction:column;gap:6px;font-weight:700}.transcript{display:flex;flex-direction:column;gap:10px;max-height:280px;overflow:auto}.transcript h2{font-size:1.05rem;color:var(--ink-soft)}.transcript p{font-size:.98rem}.transcript span{display:block;font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--maroon);margin-bottom:2px}.transcript .is-student{color:var(--ink-soft)}.drawer summary{cursor:pointer;font-family:var(--serif);font-size:1.15rem}.drawer p,.drawer .fine{margin-top:8px}.records{margin:10px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px}.records a{color:var(--maroon);font-weight:700}.records li{overflow-wrap:break-word}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}:focus-visible{outline:3px solid var(--maroon);outline-offset:2px}@media(prefers-reduced-motion:reduce){.is-speak .mouth-open,.is-listen .ring,.is-idle .figure{animation:none}}@media(max-width:720px){.hero{grid-template-columns:1fr;padding:8px 16px 18px}.now{font-size:1.35rem}.choices{grid-template-columns:1fr}.avatar-svg{width:180px}}.hero .avatar-button{width:220px;max-width:100%;aspect-ratio:auto;border:0;background:transparent;padding:0}.voice-room{min-height:100dvh;height:auto;display:flex;flex-direction:column;align-items:center;overflow:auto;background:linear-gradient(var(--gold),var(--gold)) top / 100% 6px no-repeat,radial-gradient(circle at 50% 46%,rgba(255,198,39,.2),transparent 42%),var(--paper)}.avatar-button{border:0;margin:0;padding:0;background:transparent;cursor:pointer;display:block;width:min(78vh,88vw);aspect-ratio:320 / 340}.voice-room .avatar-svg{width:100%;height:100%;display:block}.avatar-caption{display:none}.voice-caption{max-width:42rem;margin:0 24px;text-align:center;font-family:var(--serif);font-size:1.35rem;line-height:1.35}.voice-choices{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:8px 16px 24px}.voice-room{grid-template-rows:1fr auto auto;align-content:center}.thesis-add{display:flex;flex-direction:column;gap:6px;font-weight:700}.access-form{display:flex;flex-direction:column;gap:10px}.access-form label{display:flex;flex-direction:column;gap:6px;font-weight:700}.bird-choices{border:0;margin:0;padding:0;min-width:0}.bird-choices-legend{font-family:var(--serif);font-size:1.15rem;font-weight:560;padding:0;margin-bottom:10px}.bird-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.bird-choice{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 8px 12px;background:#fff;border:2px solid var(--line);border-radius:16px;text-align:center}.bird-choice:hover{border-color:var(--maroon)}.bird-choice[aria-pressed=true]{border-color:var(--maroon);background:var(--maroon-soft);box-shadow:0 0 0 3px #8c1d4029}.bird-figure{width:100%;max-width:108px;height:auto;display:block}.bird-choice-name{font-family:var(--serif);font-size:1.1rem;font-weight:600;color:var(--maroon)}.bird-choice-note{font-size:.82rem;line-height:1.3;color:var(--ink-soft)}.start-button{align-self:flex-start}@media(max-width:720px){.bird-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.progress-label{margin:-2px 0 8px;font-size:.9rem;letter-spacing:.04em;color:#fff8ead1}.practice-controls{display:flex;flex-direction:column;gap:10px}.practice-buttons{display:flex;flex-wrap:wrap;gap:8px 10px}.practice-buttons .button{padding:.5rem .9rem;font-size:.95rem}.pause-note{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;background:#fff4cc;border-radius:12px;padding:10px 12px}.next-note{font-weight:700;color:var(--maroon)}
