:root{--sky:#e6eef2;--ink:#3a3f44;--card:#ffffffdb;--accent:#c98a3a}html,body{background:var(--sky);height:100%;color:var(--ink);margin:0;font:16px/1.4 system-ui,-apple-system,Segoe UI,sans-serif;overflow:hidden}#scene{width:100vw;height:100vh;touch-action:none;height:100dvh;display:block}.hint{left:50%;bottom:max(24px, env(safe-area-inset-bottom));background:var(--card);pointer-events:none;white-space:nowrap;border-radius:999px;padding:10px 18px;transition:opacity .8s;position:fixed;transform:translate(-50%);box-shadow:0 4px 16px #00000014}.hint.gone{opacity:0}.overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#e6eef28c;place-items:center;transition:opacity .6s;display:grid;position:fixed;inset:0}.overlay.hidden{opacity:0;pointer-events:none}.card{background:var(--card);border-radius:18px;align-items:center;gap:12px;padding:16px 24px;font-size:18px;display:flex;box-shadow:0 6px 24px #00000014}.dot{background:var(--accent);border-radius:50%;width:12px;height:12px;animation:2.4s ease-in-out infinite breathe}@keyframes breathe{0%,to{opacity:.35;transform:scale(.8)}50%{opacity:1;transform:scale(1.1)}}@media (prefers-reduced-motion:reduce){.dot{animation:none}.overlay,.hint{transition:none}}.hidden{display:none!important}.ui{-webkit-overflow-scrolling:touch;background:linear-gradient(#ecf3f6f0,#e2eed6f5);position:fixed;inset:0;overflow-y:auto}.screen{max-width:560px;padding:max(20px, env(safe-area-inset-top)) 16px 40px;justify-items:stretch;gap:16px;margin:0 auto;display:grid}.screen h1{text-align:center;margin:8px 0 0;font-size:30px}.screen h2{margin:0 0 8px;font-size:17px}.lede,.switch,.note{text-align:center;color:#5a6168;margin:0}.panel{background:var(--card);border-radius:18px;gap:14px;padding:18px;display:grid;box-shadow:0 6px 24px #0000000f}.panel label,.pick{gap:6px;font-size:15px;font-weight:600;display:grid}input,select{font:inherit;color:var(--ink);background:#fff;border:1px solid #c9d2d8;border-radius:12px;min-height:48px;padding:12px 14px;font-size:17px}button{font:inherit;cursor:pointer}.primary{background:var(--accent);color:#fff;border:0;border-radius:14px;min-height:52px;padding:14px 18px;font-size:18px;font-weight:600}.primary.secondary{color:var(--ink);background:#fff;border:1px solid #c9d2d8}.primary:disabled{opacity:.6}.link{color:#2f6f8f;background:0 0;border:0;min-height:44px;padding:8px;font-size:16px;text-decoration:underline}.danger{color:#a33a2a}.error{color:#a33a2a;text-align:center;min-height:1.2em;margin:0}.lang{justify-content:flex-end;gap:8px;display:flex}.chip{min-height:44px;color:var(--ink);background:#fff;border:1px solid #c9d2d8;border-radius:999px;padding:10px 14px;font-size:15px}.chip[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#fff}.chip:disabled{opacity:.35}.chip.intro{border-radius:14px}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.row select{flex:1;min-width:140px}.figures{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px;display:grid}.figure{background:var(--card);color:var(--ink);border:2px solid #0000;border-radius:20px;justify-items:center;gap:6px;padding:10px;font-size:17px;font-weight:600;display:grid;box-shadow:0 4px 16px #0000000f}.figure:focus-visible,.chip:focus-visible,.pin:focus-visible,.primary:focus-visible{outline-offset:2px;outline:3px solid #2f6f8f}.thumb{width:100%;height:auto}.parent{min-height:44px;color:var(--ink);background:0 0;border:1px solid #c9d2d8;border-radius:999px;justify-self:center;padding:10px 18px;font-size:16px}.pin-figure{justify-items:center;display:grid}.pin-figure .thumb{max-width:260px}.big-name{text-align:center;font-size:22px;font-weight:700}.pin-box{justify-items:center;gap:14px;display:grid}.pin-slots{gap:12px;display:flex}.slot{background:#fff;border:2px dashed #c9d2d8;border-radius:16px;place-items:center;width:64px;height:64px;font-size:38px;display:grid}.pin-grid{grid-template-columns:repeat(3,84px);gap:12px;display:grid}.pin{background:#fff;border:0;border-radius:20px;width:84px;height:84px;font-size:46px;box-shadow:0 3px 10px #00000014}.pin:active{transform:scale(.94)}.shake{animation:.45s shake}@keyframes shake{20%,60%{transform:translate(-8px)}40%,80%{transform:translate(8px)}}.manage-list{gap:10px;display:grid}.manage-row{background:var(--card);border-radius:16px;grid-template-columns:90px 1fr auto auto;align-items:center;gap:10px;padding:8px 12px;display:grid}.manage-row .thumb{width:90px}.manage-row button{background:#fff;border:1px solid #c9d2d8;border-radius:12px;min-height:44px;padding:8px 12px}.row-name{font-weight:600}.danger-zone{justify-items:center;gap:4px;margin-top:12px;display:grid}.builder section{background:var(--card);border-radius:16px;padding:12px 14px}.preview-box{z-index:1;background:linear-gradient(#eef4f7,#e3eed8);border-radius:18px;justify-items:center;padding:6px 0 10px;display:grid;position:sticky;top:0;box-shadow:0 4px 14px #0000000d}.preview{width:min(320px,80vw);height:auto}.pick{grid-template-columns:70px 1fr;align-items:center;margin-bottom:8px}.actions{justify-content:center}.actions .primary{min-width:140px}.back{top:max(12px, env(safe-area-inset-top));background:var(--card);min-height:44px;color:var(--ink);border:0;border-radius:999px;padding:10px 16px;font-size:16px;position:fixed;left:12px;box-shadow:0 4px 16px #00000014}.intro-card{left:50%;bottom:max(76px, calc(env(safe-area-inset-bottom) + 64px));background:var(--card);border-radius:18px;gap:6px;min-width:220px;max-width:calc(100vw - 32px);padding:14px 20px;display:grid;position:fixed;transform:translate(-50%);box-shadow:0 6px 24px #0000001f}.card-name{font-size:20px;font-weight:700}.card-line{font-size:17px}@media (prefers-reduced-motion:reduce){.shake{animation:none}.pin:active{transform:none}}.talk{right:16px;bottom:max(20px, env(safe-area-inset-bottom));z-index:3;background:var(--accent);color:#fff;border:0;border-radius:999px;min-height:60px;padding:0 22px;font-size:20px;font-weight:600;position:fixed;box-shadow:0 6px 20px #00000024}.talk[aria-expanded=true]{color:var(--ink);background:#fff}.phrases{z-index:2;max-width:720px;max-height:62vh;padding:14px 16px calc(92px + env(safe-area-inset-bottom));background:#fafaf6f5;border-radius:22px 22px 0 0;gap:10px;margin:0 auto;display:grid;position:fixed;bottom:0;left:0;right:0;overflow-y:auto;box-shadow:0 -6px 24px #0000001a}.phrases h3{color:#6b7278;margin:4px 2px 0;font-size:15px;font-weight:600}.phrase-row{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;display:grid}.phrase{min-height:56px;color:var(--ink);text-align:left;background:#fff;border:1px solid #d8dfe3;border-radius:16px;align-items:center;gap:10px;padding:8px 14px;font-size:17px;display:flex}.phrase .sym{font-size:28px;line-height:1}.type-box{gap:8px;display:grid}.type-box input{box-sizing:border-box;width:100%;font-size:18px}.type-box .matches{gap:8px;display:grid}.type-box .matches:empty{display:none}.phrase.words{background:#fdf6ea;border-color:#e6cfa8}.voice{top:max(12px, env(safe-area-inset-top));z-index:3;background:var(--card);border:0;border-radius:999px;min-width:48px;min-height:48px;font-size:22px;position:fixed;right:12px;box-shadow:0 4px 16px #00000014}.nudge{left:50%;top:max(72px, calc(env(safe-area-inset-top) + 64px));z-index:3;box-sizing:border-box;background:#fff8ea;border:1px solid #efd9b0;border-radius:20px;gap:10px;width:min(440px,100vw - 32px);padding:14px 16px;animation:.5s ease-out nudge-in;display:grid;position:fixed;transform:translate(-50%);box-shadow:0 6px 22px #0000001a}.nudge-text{font-size:18px;line-height:1.35}.nudge-actions{flex-wrap:wrap;gap:8px;display:flex}.nudge-actions .phrase{flex:auto}.nudge-later{color:#6b7278;background:0 0;border:0;min-height:48px;padding:0 12px;font-size:16px}@keyframes nudge-in{0%{opacity:0;transform:translate(-50%,-8px)}to{opacity:1;transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.nudge{animation:none}}.holding{left:16px;bottom:max(20px, env(safe-area-inset-bottom));z-index:3;background:var(--card);color:var(--ink);border:0;border-radius:999px;min-height:56px;padding:0 18px;font-size:18px;position:fixed;box-shadow:0 6px 20px #0000001f}.card-actions{flex-wrap:wrap;gap:8px;margin-top:4px;display:flex}.game-join{left:50%;bottom:max(88px, calc(env(safe-area-inset-bottom) + 80px));z-index:3;color:var(--ink);background:#fff8ea;border:2px solid #e8c77f;border-radius:999px;min-height:56px;padding:0 22px;font-size:18px;font-weight:600;position:fixed;transform:translate(-50%);box-shadow:0 6px 20px #0000001f}.game-panel{left:0;right:0;bottom:max(86px, calc(env(safe-area-inset-bottom) + 78px));z-index:2;box-sizing:border-box;background:#fafaf6f5;border-radius:20px;gap:10px;width:min(720px,100vw - 24px);max-height:60vh;margin:0 auto;padding:12px 14px;display:grid;position:fixed;overflow-y:auto;box-shadow:0 6px 24px #00000024}.game-head{justify-content:space-between;align-items:center;display:flex}.game-title{font-size:18px;font-weight:700}.game-leave{min-height:44px;color:var(--ink);background:0 0;border:1px solid #c9d2d8;border-radius:999px;padding:0 16px;font-size:16px}.game-seats{flex-wrap:wrap;gap:6px;display:flex}.game-seat{background:#fff;border:1px solid #d8dfe3;border-radius:999px;padding:6px 12px;font-size:15px}.game-seat.turn{background:#fff3dc;border-color:#e0a64a;font-weight:600}.game-status{font-size:17px}.game-middle{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.game-color{color:#fff;border-radius:50%;place-items:center;width:44px;height:44px;font-size:22px;display:grid;box-shadow:inset 0 0 0 3px #fff9}.game-btn{background:var(--accent);color:#fff;border:0;border-radius:16px;min-height:52px;padding:0 18px;font-size:17px;font-weight:600}.game-btn.big{min-height:64px;font-size:20px}.game-hand{gap:8px;padding:4px 2px 8px;display:flex;overflow-x:auto}.game-cardbtn{opacity:.55;background:0 0;border:0;border-radius:14px;padding:0}.game-cardbtn.fits{opacity:1;box-shadow:0 0 0 3px #fff,0 0 14px 4px #ffd36b}.game-cardbtn:disabled{opacity:.8}.gcard{color:#fff;border-radius:12px;place-items:center;width:62px;height:88px;display:grid;position:relative;box-shadow:inset 0 0 0 4px #ffffffbf,0 2px 6px #00000026}.gcard.big{width:76px;height:108px}.gcard.rainbow{background:conic-gradient(#e4574c,#eeb92e,#4ca86a,#4a84d2,#e4574c)}.gcard .face{text-shadow:0 1px 2px #0000004d;font-size:30px;font-weight:800}.gcard.big .face{font-size:36px}.gcard .shape{font-size:15px;position:absolute;top:6px;left:8px}.game-pick{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.game-colorbtn{color:#fff;border:3px solid #fff;border-radius:50%;width:60px;height:60px;font-size:26px;box-shadow:0 2px 8px #0003}.game-face{background:linear-gradient(#eef4f7,#e3eed8);border-radius:16px;width:180px;height:150px}.game-ask{flex:1;gap:8px;min-width:200px;display:grid}.game-btn.feeling{color:var(--ink);background:#fff;border:1px solid #d8dfe3}.game-panel.calm{text-align:center;background:#f7f0f8f7;justify-items:center}.breath-orb{background:radial-gradient(circle at 40% 35%,#fbe3ee,#efb8d0);border-radius:50%;width:120px;height:120px;animation:8s ease-in-out infinite breathe-orb}@keyframes breathe-orb{0%,to{transform:scale(.7)}50%{transform:scale(1.1)}}@media (prefers-reduced-motion:reduce){.breath-orb{animation-duration:16s}}.breath-words{font-size:22px}.host-btn{left:16px;top:max(64px, calc(env(safe-area-inset-top) + 56px));z-index:3;color:var(--ink);background:#fff3c9;border:2px solid #e8c77f;border-radius:999px;min-height:48px;padding:0 16px;font-size:17px;font-weight:600;position:fixed;box-shadow:0 4px 16px #0000001a}.story-picture{text-align:center;letter-spacing:4px;font-size:56px;line-height:1.2}.story-text{text-align:center;font-size:20px;line-height:1.45}#card:not(.hidden)~.game-join{bottom:max(230px, calc(env(safe-area-inset-bottom) + 222px))}.overlay{z-index:4}.back{z-index:5}.ui{z-index:6}.card{box-sizing:border-box;max-width:calc(100vw - 32px)}.choice{text-align:left;background:var(--card);min-height:64px;color:var(--ink);border:1px solid #d8dfe3;border-radius:20px;grid-template-rows:auto auto;grid-template-columns:auto 1fr;align-items:center;column-gap:12px;padding:14px 18px;font-size:18px;font-weight:600;display:grid;box-shadow:0 4px 16px #0000000f}.choice>span:not(.choice-icon){grid-column:2}.choice small{color:#6b7278;grid-column:2;font-size:15px;font-weight:400}.choice.big{min-height:84px;font-size:21px}.choice:disabled{opacity:.6;cursor:default}.choice-icon{grid-row:1/span 2;font-size:38px}.study-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;display:grid}.study-game{background:var(--card);min-height:110px;color:var(--ink);border:1px solid #d8dfe3;border-radius:20px;justify-items:center;gap:6px;padding:14px 8px;font-size:16px;font-weight:600;display:grid;box-shadow:0 4px 16px #0000000f}.study-symbol{font-size:40px;line-height:1.1}.choice:focus-visible,.study-game:focus-visible{outline-offset:2px;outline:3px solid #2f6f8f}.coach{left:50%;top:max(72px, calc(env(safe-area-inset-top) + 64px));z-index:3;box-sizing:border-box;background:#eef6f2;border:1px solid #bcd9cc;border-radius:20px;gap:8px;width:min(460px,100vw - 32px);padding:12px 16px;animation:.5s ease-out nudge-in;display:grid;position:fixed;transform:translate(-50%);box-shadow:0 6px 22px #0000001a}.coach-head{color:#4d6b5f;justify-content:space-between;gap:10px;font-size:15px;font-weight:600;display:flex}.coach-dots{letter-spacing:2px;color:#6fa58c}.coach-text{font-size:18px;line-height:1.35}.coach-actions{flex-wrap:wrap;gap:8px;display:flex}.coach-actions .phrase{flex:auto}body[data-glow=join] [data-act=join],body[data-glow=hand] [data-act=hand],body[data-glow=roll] [data-act=roll],body[data-glow=pass] [data-act=pass],body[data-glow=answer] [data-act=answer],body[data-glow=dance] [data-act=dance],body[data-glow=boat] [data-act=boat],body[data-glow=pick] [data-act=pick],body[data-glow=give] [data-act=give],body[data-glow=take\:lantern] [data-act=take\:lantern],body[data-glow=take\:seed] [data-act=take\:seed],body[data-glow=take\:can] [data-act=take\:can],body[data-glow=page] [data-act=page]{animation:2.4s ease-in-out infinite coach-glow;box-shadow:0 0 0 4px #ffd36b,0 6px 20px #0000001f}@keyframes coach-glow{0%,to{box-shadow:0 0 0 3px #ffd36b8c,0 6px 20px #0000001f}50%{box-shadow:0 0 0 7px #ffd36bf2,0 6px 20px #0000001f}}@media (prefers-reduced-motion:reduce){.coach{animation:none}[data-act]{animation:none!important}}
