:root{--bg:#fffaf2;--fg:#2b2b2b;--accent:#1f6f5c;--accent-fg:#fff;--muted:#6b6b6b;--card:#fff;--line:#e4dccd}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--fg);margin:0}body{-webkit-text-size-adjust:100%;font-family:Hiragino Sans,Hiragino Kaku Gothic ProN,system-ui,sans-serif;font-size:24px;line-height:1.6}main{max-width:860px;margin:0 auto;padding:32px 20px 64px}h1{margin:0 0 16px;font-size:40px}.big-button{background:var(--accent);width:100%;min-height:120px;color:var(--accent-fg);cursor:pointer;border:none;border-radius:24px;margin:24px 0;font-size:36px;font-weight:700;display:block}.big-button[disabled]{opacity:.5}.big-button.listening{background:#b5482f}.card{background:var(--card);border:2px solid var(--line);border-radius:20px;margin:16px 0;padding:20px}.muted{color:var(--muted);font-size:18px}.log{white-space:pre-wrap;max-height:280px;font-family:ui-monospace,monospace;font-size:16px;overflow:auto}a{color:var(--accent)}main.talk-page{height:100dvh;padding:12px 20px calc(8px + env(safe-area-inset-bottom));flex-direction:column;display:flex;overflow:hidden}.touch-area{background:var(--accent);width:100%;min-height:0;color:var(--accent-fg);cursor:pointer;border:none;border-radius:32px;flex:1;font-size:56px;font-weight:700}.talk{text-align:center;flex-direction:column;flex:1;gap:clamp(8px,1.5dvh,16px);min-height:0;display:flex}.talk-top{flex-direction:column;flex:1;justify-content:safe center;align-items:center;gap:clamp(6px,1.5dvh,20px);min-height:0;display:flex;overflow-y:auto}.talk-top>*{flex-shrink:0}.talk-bottom{flex-direction:column;flex-shrink:0;gap:clamp(8px,1.5dvh,16px);display:flex}.talk-bottom:empty{display:none}.said{font-size:clamp(24px,5dvh,48px);font-weight:700;line-height:1.4}.mic{background:var(--line);opacity:.35;border-radius:50%;justify-content:center;align-items:center;width:clamp(52px,11dvh,140px);height:clamp(52px,11dvh,140px);font-size:clamp(28px,6dvh,72px);display:flex}.mic.on{opacity:1;background:#f3c9bd;animation:1.2s ease-in-out infinite pulse}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}.heard{color:var(--muted);min-height:52px;font-size:32px}.answer-buttons{gap:24px;width:100%;display:flex}.answer-buttons .big-button{flex:1;min-height:clamp(72px,12dvh,120px);margin:0;font-size:clamp(32px,5.5dvh,48px)}.big-button.no{background:#8a8a8a}.place{color:var(--accent);border:3px solid var(--accent);border-radius:999px;padding:4px 24px;font-size:clamp(22px,3.5dvh,28px);font-weight:700}.checked{font-size:20px}.wait-note{color:var(--accent);font-size:clamp(20px,3.5dvh,28px);font-weight:700}.big-button.undo{color:var(--muted);border:2px solid var(--line);background:0 0;min-height:clamp(44px,6dvh,64px);margin:0;font-size:24px}.heard-box{border:3px solid var(--line);background:var(--card);border-radius:20px;flex-wrap:wrap;justify-content:center;align-items:baseline;column-gap:12px;width:100%;padding:clamp(4px,1dvh,12px) 20px;display:flex}.heard-box .who{color:var(--muted);font-size:22px}.heard-box .heard{color:var(--fg);min-height:0;font-size:clamp(28px,5dvh,44px)}.heard-box.ok{border-color:var(--accent);background:#e6f3ee}.heard-box.ok .who{color:var(--accent);font-weight:700}.talk-page .family-log{flex-shrink:0;margin-top:8px}.talk-page .family-log .log{max-height:30dvh}main.talk-page.start{background:#fff}.sample-tag{right:12px;bottom:calc(12px + env(safe-area-inset-bottom));color:#b5482f;background:#fff;border:1px solid #e3b5a9;border-radius:12px;padding:8px 12px;font-size:18px;position:fixed}.practice-tag{color:#b5482f;font-size:20px;font-weight:700;position:fixed;top:8px;right:12px}.start-wrap{flex:1;justify-content:center;align-items:center;min-height:0;display:flex}.start-button{background:var(--accent);color:#fff;cursor:pointer;border:6px solid #134a3d;border-radius:40px;flex-direction:column;justify-content:center;align-items:center;gap:1dvh;width:min(88vw,640px);height:min(64dvh,520px);transition:transform 80ms,box-shadow 80ms,background 80ms;display:flex;box-shadow:0 14px #0f3b31,0 24px 40px #00000040}.start-button .finger{font-size:min(14dvh,120px);line-height:1}.start-button .line{font-size:min(9dvh,8.5vw,76px);font-weight:700;line-height:1.25}.start-button:active,.start-button.pressed{background:#e0892f;border-color:#a85e17;transform:translateY(12px);box-shadow:0 2px #0f3b31,0 6px 12px #00000040}.now-place{color:var(--fg);font-size:clamp(40px,9dvh,88px);font-weight:700;line-height:1.3;transition:color .2s}.now-place.flash{color:var(--accent)}.end-lead{color:var(--muted);font-size:clamp(32px,6dvh,56px);font-weight:700}.mic.ok{opacity:1;color:var(--accent);background:#bfe6d6;font-weight:700}.big-button.sub{color:var(--fg);background:#fff;border:4px solid #9a9a9a;min-height:clamp(64px,9dvh,96px);margin:0;font-size:clamp(26px,4dvh,36px);box-shadow:0 6px #9a9a9a}.talk-bottom .big-button{margin:0;box-shadow:0 6px #00000040}.said-line{color:#444;max-width:24em;font-size:clamp(26px,4.5dvh,44px);font-weight:700;line-height:1.45}.family-corner{left:12px;bottom:calc(12px + env(safe-area-inset-bottom));color:#9a9a9a;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:0 0;border:1px solid #ddd;border-radius:12px;padding:8px 12px;font-size:18px;position:fixed}
