.fo-stage{--fo-accent:#8f65fb;width:100%;max-width:480px;margin:0 auto}[data-scheme=dark] .fo-stage{--fo-accent:#9580ff}.fo-hud{justify-content:space-between;align-items:center;gap:8px;display:flex}.fo-lives{align-items:center;gap:6px;display:flex}.fo-life{width:18px;height:18px}.fo-toast{background:var(--fo-accent);color:#1b1726;border:2px solid var(--ink,#1b1726);text-align:center;box-shadow:var(--shadow,3px 3px 0 #1b1726);border-radius:12px;padding:8px 12px;font-weight:800;animation:.2s ease-out fo-pop}.fo-bands{flex-direction:column;gap:8px;display:flex}.fo-gband{color:#1b1726;box-shadow:var(--shadow,3px 3px 0 #1b1726);border:2px solid #1b1726;border-radius:12px;align-items:center;gap:10px;padding:8px 12px;animation:.16s ease-out fo-slide-down;display:flex}.fo-gband b{font-size:14px;display:block}.fo-gband span{opacity:.9;font-size:12px;font-weight:700}.fo-mark{flex:none;width:22px;height:22px}.fo-words{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.fo-word{border:2px solid var(--ink,#1b1726);background:var(--surface,#fff);min-height:54px;color:var(--ink,#1b1726);text-transform:uppercase;text-align:center;cursor:pointer;box-shadow:var(--shadow,3px 3px 0 #1b1726);overflow-wrap:anywhere;-webkit-user-select:none;user-select:none;touch-action:manipulation;border-radius:12px;justify-content:center;align-items:center;padding:6px 4px;font-family:inherit;font-size:12px;font-weight:800;line-height:1.15;transition:transform 90ms ease-out,box-shadow 90ms ease-out;display:flex;position:relative}.fo-word:active{box-shadow:1px 1px 0 var(--ink,#1b1726);transform:translate(1px,1px)}.fo-word.on{box-shadow:inset 0 0 0 3px var(--fo-accent)}.fo-word.on:after{content:"";background:var(--fo-accent);border:2px solid #1b1726;border-radius:3px;width:10px;height:10px;position:absolute;top:3px;right:3px}.fo-word.shake{animation:.25s ease-in-out fo-shake}.fo-tools{gap:8px;display:flex}.fo-tools .casual-btn{flex:1;padding:0 8px;font-size:13px}@keyframes fo-shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-4px)}40%,80%{transform:translate(4px)}}@keyframes fo-pop{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes fo-slide-down{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.fo-word.shake,.fo-toast,.fo-gband{animation:none}}@media (max-height:430px){.fo-stage{gap:6px;padding-top:6px;padding-bottom:6px}.fo-word{min-height:46px}}
