:root{--ff-bg: #000080;--ff-panel: #0000AA;--ff-panel-dark: #000066;--ff-border: #ffffff;--ff-border-inner:#aaaaff;--ff-text: #ffffff;--ff-text-dim: #aaaaff;--ff-cursor: #ffffff;--ff-selected-bg: #0000CC;--ff-gap: #000044}*{box-sizing:border-box;padding:0;margin:0}html,body,#app{height:100vh;width:100vw}body{color:var(--ff-text);background:var(--ff-bg);font-family:"Press Start 2P",Courier New,Courier,monospace;font-size:14px;margin:0;padding:0;overflow:hidden}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.grid-container{display:grid;grid-template-columns:1fr 1fr 1fr;grid-template-rows:1fr 1fr 1fr;height:100vh;width:100vw;gap:3px;background:var(--ff-gap);padding:8px;border:3px solid var(--ff-border);outline:6px solid var(--ff-panel-dark);outline-offset:-9px}.grid-item{background:var(--ff-panel);color:var(--ff-text);border:2px solid var(--ff-border);outline:2px solid var(--ff-border-inner);outline-offset:-4px;display:flex;align-items:center;justify-content:center;text-align:center;font-family:"Press Start 2P",Courier New,Courier,monospace;font-size:clamp(.6rem,1.4vw,1rem);line-height:1.6;white-space:pre-wrap;word-break:break-word;cursor:pointer;position:relative;transition:none}.grid-item:hover{background:var(--ff-selected-bg);color:var(--ff-text)}.grid-item:focus{background:var(--ff-selected-bg);box-shadow:inset 0 0 0 3px var(--ff-cursor);outline:2px solid var(--ff-border-inner);outline-offset:-4px}.grid-item.active{background:var(--ff-selected-bg);color:var(--ff-cursor)}.grid-item.active:before{content:"▶";position:absolute;left:6px;top:50%;transform:translateY(-50%);color:var(--ff-cursor);font-size:.7em;animation:ff-blink .8s step-end infinite}.grid-item.opacity-50{opacity:1!important;background:var(--ff-panel-dark);color:var(--ff-text-dim);border-color:var(--ff-border-inner);cursor:default}@keyframes ff-blink{0%,to{opacity:1}50%{opacity:0}}.ff-status-bar{position:fixed;top:12px;left:50%;transform:translate(-50%);background:var(--ff-panel);color:var(--ff-text);border:2px solid var(--ff-border);outline:2px solid var(--ff-border-inner);outline-offset:-3px;padding:6px 16px;font-family:"Press Start 2P",Courier New,Courier,monospace;font-size:.7rem;z-index:1000;white-space:nowrap}.ff-status-bar--recording{animation:ff-blink .6s step-end infinite}.h-screen{height:100vh}.w-screen{width:100vw}.p-4{padding:1rem}.text-center{text-align:center}
