:root{--ff-bg: #05070c;--ff-panel: #0b1220;--ff-panel-dark: #070d18;--ff-border: #ffffff;--ff-border-inner:#aaaaff;--ff-text: #ffffff;--ff-text-dim: #aaaaff;--ff-cursor: #ffffff;--ff-selected-bg: #13233c;--ff-gap: #03060b}*{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:BIZ UDGothic,Hiragino Sans,Yu Gothic,sans-serif;font-weight:700;font-size:16px;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:minmax(0,.72fr) minmax(0,2.56fr) minmax(0,.72fr);grid-template-rows:minmax(0,.72fr) minmax(0,2.56fr) minmax(0,.72fr);height:100vh;width:100vw;gap:1px;background:var(--ff-border-inner);padding:0;border:0;outline:0;touch-action:manipulation}.grid-item{background:var(--ff-panel);color:var(--ff-text);border:0;outline:0;display:flex;align-items:center;justify-content:center;text-align:center;font-family:BIZ UDGothic,Hiragino Sans,Yu Gothic,sans-serif;font-weight:700;font-size:clamp(1.15rem,2.5vw,1.8rem);line-height:1.45;white-space:pre-wrap;word-break:break-word;min-width:0;min-height:0;padding:8px;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 2px var(--ff-cursor)}.grid-item.active{background:var(--ff-selected-bg);color:var(--ff-cursor)}.grid-item-unimplemented{background:#22141a;color:#ffd7dc}.grid-item-unimplemented:hover,.grid-item-unimplemented:focus,.grid-item-unimplemented.active{background:#3a1e28;color:#fff0f2}.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);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:BIZ UDGothic,Hiragino Sans,Yu Gothic,sans-serif;font-weight:700;font-size:.95rem;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}.status-message{display:flex;align-items:center;justify-content:center;width:100vw;height:100vh;padding:24px;background:var(--ff-bg)}.status-message__panel{width:min(720px,100%);padding:24px;background:var(--ff-panel);border:2px solid var(--ff-border);outline:2px solid var(--ff-border-inner);outline-offset:-4px}.status-message__title{margin-bottom:16px;font-size:clamp(1.2rem,2.4vw,1.7rem);line-height:1.6}.status-message__body,.status-message__hint{font-size:clamp(.9rem,1.8vw,1.2rem);line-height:1.9;white-space:pre-wrap}.status-message__hint{margin-top:16px;color:var(--ff-text-dim)}.status-message__type-label{margin-bottom:8px;font-size:clamp(.75rem,1.5vw,1rem);font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--ff-text-dim)}.status-message--loading .status-message__panel{border-color:var(--ff-accent, #4a90e2);animation:pulse-border 1.4s ease-in-out infinite}.status-message--loading .status-message__type-label{color:var(--ff-accent, #4a90e2)}.status-message--failure .status-message__panel{border-color:var(--ff-error, #c0392b)}.status-message--failure .status-message__type-label{color:var(--ff-error, #c0392b)}.status-message--blocked .status-message__panel{border-color:var(--ff-warn, #e67e22)}.status-message--blocked .status-message__type-label{color:var(--ff-warn, #e67e22)}@keyframes pulse-border{0%,to{opacity:1}50%{opacity:.45}}
