@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/dm-sans-latin-ext-500-normal-BJfUCQsA.woff2) format("woff2"),url(/assets/dm-sans-latin-ext-500-normal-DR84L5F-.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/dm-sans-latin-500-normal-B9HHJjqV.woff2) format("woff2"),url(/assets/dm-sans-latin-500-normal-Dr3UlScf.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/dm-sans-latin-ext-700-normal-CJIcxD6K.woff2) format("woff2"),url(/assets/dm-sans-latin-ext-700-normal-BLI3TTWz.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/dm-sans-latin-700-normal-DvUfVpUG.woff2) format("woff2"),url(/assets/dm-sans-latin-700-normal-CUSSCpQX.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/space-mono-vietnamese-400-normal-BNOj0Qhp.woff2) format("woff2"),url(/assets/space-mono-vietnamese-400-normal-B0PMp_xB.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/space-mono-latin-ext-400-normal-DTLbW2xa.woff2) format("woff2"),url(/assets/space-mono-latin-ext-400-normal-D4cJI_B-.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/space-mono-latin-400-normal-Rg4St2Dn.woff2) format("woff2"),url(/assets/space-mono-latin-400-normal-_3DlpgIW.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/space-mono-vietnamese-700-normal-DWQgDHuA.woff2) format("woff2"),url(/assets/space-mono-vietnamese-700-normal-D-KrLuLr.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/space-mono-latin-ext-700-normal-B2s3bDs2.woff2) format("woff2"),url(/assets/space-mono-latin-ext-700-normal-B_E7P90g.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/space-mono-latin-700-normal-mWgeinG7.woff2) format("woff2"),url(/assets/space-mono-latin-700-normal-D7A851RN.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:dark;--ff-bg: #050608;--ff-bg-vignette: rgba(168, 143, 92, .08);--ff-ambient-line: rgba(255, 255, 255, .008);--ff-panel: rgba(12, 15, 19, .84);--ff-panel-strong: rgba(14, 18, 23, .94);--ff-panel-edge: rgba(255, 255, 255, .09);--ff-panel-glow: rgba(255, 255, 255, .05);--ff-flap-top: linear-gradient(180deg, #1f242b 0%, #171b20 56%, #11151a 100%);--ff-flap-bottom: linear-gradient(180deg, #12161a 0%, #181d23 52%, #20262d 100%);--ff-copy: #f5f6f7;--ff-copy-muted: rgba(245, 246, 247, .62);--ff-accent: #d6b77c;--ff-accent-soft: rgba(214, 183, 124, .16);--ff-accent-copy: #fff4dd;--ff-button-fill: rgba(255, 255, 255, .08);--ff-button-border: rgba(255, 255, 255, .12);--ff-input-bg: rgba(255, 255, 255, .05);--ff-live: #79d68f;--ff-stale: #d7b45f;--ff-waiting: #8e97a5;--ff-setup: #8e97a5;--ff-error: #de7e7e}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;min-height:100%;margin:0;background:radial-gradient(circle at center top,var(--ff-bg-vignette),transparent 50%),var(--ff-bg)}body{font-family:DM Sans,sans-serif;overflow:hidden;overscroll-behavior:none}button,input,textarea{font:inherit}button,input,textarea,select{min-height:44px}.ff-app{position:relative;width:100vw;min-height:100vh;min-height:100svh;height:100dvh;overflow:hidden;color:var(--ff-copy);background:radial-gradient(circle at center top,var(--ff-bg-vignette),transparent 48%),linear-gradient(180deg,color-mix(in srgb,var(--ff-bg) 94%,black),color-mix(in srgb,var(--ff-bg) 98%,black))}.ff-app[data-theme=classic]{color-scheme:dark}.ff-app[data-theme=amber]{--ff-bg: #090603;--ff-bg-vignette: rgba(245, 173, 72, .09);--ff-panel: rgba(22, 13, 8, .84);--ff-panel-strong: rgba(29, 17, 10, .94);--ff-panel-edge: rgba(255, 205, 127, .12);--ff-flap-top: linear-gradient(180deg, #281d13 0%, #1e160f 56%, #140d08 100%);--ff-flap-bottom: linear-gradient(180deg, #140e09 0%, #1f1710 52%, #2b2016 100%);--ff-copy: #ffdba3;--ff-copy-muted: rgba(255, 219, 163, .62);--ff-accent: #f4b75b;--ff-accent-soft: rgba(244, 183, 91, .16);--ff-accent-copy: #fff2da;--ff-button-fill: rgba(255, 224, 178, .08);--ff-button-border: rgba(255, 211, 150, .14);--ff-input-bg: rgba(255, 233, 196, .06);--ff-live: #f8d16b;--ff-stale: #f4b75b;--ff-waiting: #cca068;--ff-setup: #cca068}.ff-app[data-theme=terminal]{--ff-bg: #031108;--ff-bg-vignette: rgba(84, 217, 136, .08);--ff-panel: rgba(5, 20, 12, .84);--ff-panel-strong: rgba(6, 24, 14, .94);--ff-panel-edge: rgba(112, 224, 154, .11);--ff-flap-top: linear-gradient(180deg, #102517 0%, #0b1b11 56%, #08120c 100%);--ff-flap-bottom: linear-gradient(180deg, #08120c 0%, #0f1c13 52%, #153024 100%);--ff-copy: #c7ffd7;--ff-copy-muted: rgba(199, 255, 215, .58);--ff-accent: #6be096;--ff-accent-soft: rgba(107, 224, 150, .15);--ff-accent-copy: #effff4;--ff-button-fill: rgba(120, 240, 164, .08);--ff-button-border: rgba(120, 240, 164, .12);--ff-input-bg: rgba(120, 240, 164, .05);--ff-live: #82f8ab;--ff-stale: #d3d66c;--ff-waiting: #7eb58f;--ff-setup: #7eb58f}.ff-app[data-theme=warmWhite]{color-scheme:light;--ff-bg: #ece5d8;--ff-bg-vignette: rgba(114, 84, 42, .08);--ff-ambient-line: rgba(36, 26, 14, .01);--ff-panel: rgba(247, 242, 236, .86);--ff-panel-strong: rgba(250, 246, 241, .96);--ff-panel-edge: rgba(71, 50, 24, .12);--ff-panel-glow: rgba(255, 255, 255, .55);--ff-flap-top: linear-gradient(180deg, #ece6dd 0%, #ddd5ca 56%, #d4cabf 100%);--ff-flap-bottom: linear-gradient(180deg, #d5cbc0 0%, #ddd5ca 52%, #e9e2d7 100%);--ff-copy: #20160d;--ff-copy-muted: rgba(32, 22, 13, .58);--ff-accent: #8b612d;--ff-accent-soft: rgba(139, 97, 45, .12);--ff-accent-copy: #fff7ed;--ff-button-fill: rgba(73, 54, 29, .06);--ff-button-border: rgba(73, 54, 29, .12);--ff-input-bg: rgba(73, 54, 29, .05);--ff-live: #21774c;--ff-stale: #91621f;--ff-waiting: #6d6f79;--ff-setup: #6d6f79;--ff-error: #a24d4d}.ff-ambient,.ff-dim-layer,.ff-splash,.ff-onboarding,.ff-rotate-hint,.ff-help-modal{position:absolute;top:0;right:0;bottom:0;left:0}.ff-ambient{background-image:linear-gradient(var(--ff-ambient-line) 1px,transparent 1px),linear-gradient(90deg,var(--ff-ambient-line) 1px,transparent 1px);background-size:46px 46px;pointer-events:none}.ff-dim-layer{background:#000;pointer-events:none;transition:opacity .28s ease;z-index:6}.ff-topbar{position:fixed;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:calc(18px + env(safe-area-inset-top,0px)) calc(24px + env(safe-area-inset-right,0px)) 18px calc(24px + env(safe-area-inset-left,0px));opacity:0;translate:0 -12px;transition:opacity .24s ease,translate .24s ease;pointer-events:none;z-index:20}.ff-topbar.is-visible{opacity:1;translate:0 0}.ff-topbar__brand,.ff-drawer__brand{display:flex;flex-direction:column;gap:4px}.ff-drawer__header-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.ff-topbar__brand span,.ff-drawer__brand span{font-size:.82rem;font-weight:700;letter-spacing:.28em}.ff-topbar__brand small,.ff-drawer__brand small{color:var(--ff-copy-muted);font-size:.82rem}.ff-topbar__ticker{max-width:min(64vw,1200px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;color:color-mix(in srgb,var(--ff-copy) 78%,transparent)}.ff-stage{position:relative;width:100%;height:100%;display:grid;place-items:center;padding:calc(72px + env(safe-area-inset-top,0px)) 24px calc(180px + env(safe-area-inset-bottom,0px)) 24px;z-index:10}.ff-stage__board{width:min(calc(100vw - 48px),calc((100vh - 180px)*2.64));opacity:1;translate:0 0;transition:opacity .2s ease,translate .2s ease,filter .2s ease,transform .6s ease}.ff-stage__board.is-switching{opacity:.92;translate:0 10px;filter:saturate(.92)}.ff-board{--ff-glyph-size: clamp(.9rem, min(4vw, 4.2vh), 5.1rem);display:grid;grid-template-columns:repeat(var(--ff-board-cols, 22),minmax(0,1fr));grid-template-rows:repeat(var(--ff-board-rows, 6),minmax(0,1fr));gap:clamp(2px,.34vw,7px);width:100%;aspect-ratio:var(--ff-board-aspect-ratio, 15.84 / 6);margin:0 auto;padding:clamp(10px,1vw,24px);border-radius:clamp(16px,1vw,22px);background:color-mix(in srgb,var(--ff-panel-strong) 92%,black 8%);border:1px solid color-mix(in srgb,var(--ff-panel-edge) 88%,transparent);box-shadow:0 22px 64px #00000073}.ff-flap{position:relative;width:100%;aspect-ratio:.72;perspective:420px;transform-style:preserve-3d}.ff-flap__card,.ff-flap__animated{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:5px}.ff-flap__card{background:linear-gradient(180deg,rgba(255,255,255,.025),transparent 28%);overflow:hidden}.ff-flap[data-blank=true] .ff-flap__card{opacity:.72}.ff-flap__half{position:absolute;left:0;right:0;height:50%;overflow:hidden;display:flex;justify-content:center}.ff-flap__half--top{top:0;align-items:flex-end;border-radius:5px 5px 0 0;background:var(--ff-flap-top)}.ff-flap__half--bottom{bottom:0;align-items:flex-start;border-radius:0 0 5px 5px;background:var(--ff-flap-bottom)}.ff-flap__hinge{position:absolute;top:calc(50% - 1px);left:0;right:0;height:2px;background:linear-gradient(180deg,#ffffff14,#000000e6),#000000e6;z-index:4}.ff-glyph{font-family:Space Mono,monospace;font-weight:700;font-size:var(--ff-glyph-size);line-height:1;color:var(--ff-copy);text-shadow:0 0 4px color-mix(in srgb,var(--ff-copy) 12%,transparent),0 1px 0 rgba(255,255,255,.1);-webkit-user-select:none;user-select:none}.ff-app[data-board-size=large] .ff-board{--ff-glyph-size: clamp(1.08rem, min(5vw, 5.6vh), 6rem)}.ff-app[data-board-size=dense] .ff-board{--ff-glyph-size: clamp(.76rem, min(3.2vw, 3.3vh), 4.1rem)}.ff-glyph--top{transform:translateY(56%)}.ff-glyph--bottom{transform:translateY(-44%)}.ff-flap__animated{z-index:8;backface-visibility:hidden;display:flex;justify-content:center;box-shadow:0 6px 18px #0000006b}.ff-flap__animated--top{top:0;height:50%;overflow:hidden;align-items:flex-end;transform-origin:bottom center;border-radius:5px 5px 0 0;background:var(--ff-flap-top);animation:ffFlipDown 76ms ease-in forwards}.ff-flap__animated--bottom{bottom:0;height:50%;overflow:hidden;align-items:flex-start;transform-origin:top center;border-radius:0 0 5px 5px;background:var(--ff-flap-bottom);animation:ffFlipUp 61ms ease-out forwards}@keyframes ffFlipDown{0%{transform:rotateX(0)}to{transform:rotateX(-90deg)}}@keyframes ffFlipUp{0%{transform:rotateX(90deg)}to{transform:rotateX(0)}}.ff-drawer{position:fixed;left:0;right:0;bottom:0;padding:24px calc(24px + env(safe-area-inset-right,0px)) calc(24px + env(safe-area-inset-bottom,0px)) calc(24px + env(safe-area-inset-left,0px));opacity:0;translate:0 18px;transition:opacity .26s ease,translate .26s ease;pointer-events:none;z-index:30}.ff-drawer.is-visible{opacity:1;translate:0 0;pointer-events:auto}.ff-drawer__shell{position:relative;margin:0 auto;width:min(1120px,calc(100vw - 32px));border-radius:16px;border:1px solid var(--ff-panel-edge);background:color-mix(in srgb,var(--ff-panel) 92%,transparent);box-shadow:0 18px 52px #00000061,inset 0 1px 0 var(--ff-panel-glow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);overflow:hidden}.ff-drawer__main{padding:18px;transition:opacity .22s ease,visibility .22s ease}.ff-drawer__main.is-hidden{opacity:0;visibility:hidden;pointer-events:none}.ff-drawer__advanced{position:absolute;top:0;right:0;bottom:0;left:0;background:color-mix(in srgb,var(--ff-panel-strong) 96%,transparent);opacity:0;pointer-events:none;translate:22px 0;transition:opacity .24s ease,translate .24s ease}.ff-drawer__advanced.is-open{opacity:1;pointer-events:auto;translate:0 0}.ff-drawer__header,.ff-scene-indicator,.ff-message-composer,.ff-inline,.ff-inline--compact,.ff-remote-actions,.ff-two-column,.ff-chip-list,.ff-list__row,.ff-boundary__actions,.ff-onboarding__actions,.ff-onboarding__header,.ff-advanced__header,.ff-section-heading,.ff-help-modal__header,.ff-status-list,.ff-status-list__item{display:flex;gap:12px}.ff-drawer__header,.ff-scene-indicator,.ff-onboarding__header,.ff-advanced__header,.ff-section-heading,.ff-help-modal__header{align-items:center;justify-content:space-between}.ff-remote-card,.ff-advanced__content,.ff-onboarding__body,.ff-list,.ff-about-card,.ff-summary-card,.ff-help-card__body{display:flex;flex-direction:column;gap:16px}.ff-remote-card{margin-top:18px}.ff-scene-indicator{align-items:center}.ff-scene-indicator__label{display:inline-flex;align-items:center;gap:10px;justify-content:center;min-width:180px}.ff-scene-indicator__label strong{font-size:1rem;font-weight:700}.ff-scene-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.ff-scene-button,.ff-button,.ff-chip{border:1px solid var(--ff-button-border);background:var(--ff-button-fill);color:var(--ff-copy);border-radius:12px;padding:12px 14px;cursor:pointer;transition:border-color .16s ease,background-color .16s ease,color .16s ease,transform .16s ease,box-shadow .16s ease}.ff-scene-button,.ff-chip{display:inline-flex;align-items:center;gap:10px;justify-content:center}.ff-scene-button:hover,.ff-button:hover,.ff-chip:hover{transform:translateY(-1px)}.ff-scene-button.is-active,.ff-chip.is-selected,.ff-button--primary{border-color:color-mix(in srgb,var(--ff-accent) 38%,transparent);background:var(--ff-accent-soft);color:var(--ff-accent-copy);box-shadow:0 0 0 1px color-mix(in srgb,var(--ff-accent) 12%,transparent)}.ff-button--ghost{background:transparent}.ff-button--danger{border-color:color-mix(in srgb,var(--ff-error) 34%,transparent);background:color-mix(in srgb,var(--ff-error) 14%,transparent);color:color-mix(in srgb,var(--ff-error) 92%,white 8%)}.ff-button--hero{min-width:220px}.ff-button--icon{width:44px;min-width:44px;padding:0;font-size:1.1rem}.ff-button:disabled{opacity:.45;cursor:default;transform:none}.ff-input,.ff-textarea{width:100%;border-radius:12px;border:1px solid var(--ff-button-border);background:var(--ff-input-bg);color:var(--ff-copy);padding:12px 14px;transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease}.ff-input:focus,.ff-textarea:focus{outline:none;border-color:color-mix(in srgb,var(--ff-accent) 48%,transparent);background:color-mix(in srgb,var(--ff-input-bg) 80%,white 20%);box-shadow:0 0 0 3px color-mix(in srgb,var(--ff-accent) 14%,transparent)}.ff-input--small{width:78px}.ff-textarea{min-height:120px;resize:vertical}.ff-label,.ff-boundary__eyebrow,.ff-onboarding__eyebrow{display:block;margin:0;color:var(--ff-copy-muted);font-size:.76rem;font-weight:600;letter-spacing:.08em}.ff-help{margin:0;color:var(--ff-copy-muted);font-size:.84rem}.ff-help--error{color:var(--ff-error)}.ff-range{width:100%;accent-color:var(--ff-accent)}.ff-checkbox{display:inline-flex;align-items:center;gap:10px}.ff-checkbox input{width:18px;height:18px;min-height:auto}.ff-chip-list{flex-wrap:wrap}.ff-chip--static{pointer-events:none}.ff-status-dot{width:10px;height:10px;border-radius:999px;background:var(--ff-waiting);flex:0 0 auto}.ff-status-dot--neutral{background:color-mix(in srgb,var(--ff-copy) 28%,transparent)}.ff-status-dot--live{background:var(--ff-live)}.ff-status-dot--stale{background:var(--ff-stale)}.ff-status-dot--setup,.ff-status-dot--waiting{background:var(--ff-waiting)}.ff-status-dot--error{background:var(--ff-error)}.ff-volume{display:flex;flex-direction:column;gap:8px;flex:1;min-width:160px}.ff-remote-actions{align-items:flex-end;flex-wrap:wrap}.ff-two-column{align-items:flex-start}.ff-two-column>*{flex:1;min-width:0}.ff-list{gap:12px}.ff-list__row{align-items:center;flex-wrap:wrap;padding:0}.ff-list__row--compact{justify-content:space-between;border-bottom:1px solid color-mix(in srgb,var(--ff-copy) 8%,transparent);padding-bottom:12px}.ff-inline{align-items:center}.ff-inline--compact{gap:8px}.ff-advanced{height:min(74vh,820px);padding:18px;display:flex;flex-direction:column;gap:18px;min-height:0}.ff-advanced__header h3,.ff-section-heading h4,.ff-help-modal__header h3,.ff-about-card strong,.ff-summary-card strong{margin:0;font-size:1rem}.ff-advanced__content{flex:1 1 auto;min-height:0;overflow:auto;padding-right:6px;padding-bottom:26px;-webkit-overflow-scrolling:touch}.ff-advanced__section{display:flex;flex-direction:column;gap:14px;padding-bottom:18px;border-bottom:1px solid color-mix(in srgb,var(--ff-copy) 8%,transparent)}.ff-advanced__section:last-child{padding-bottom:42px;border-bottom:none}.ff-status-list{flex-wrap:wrap}.ff-status-list__item{align-items:center;color:var(--ff-copy);font-size:.92rem}.ff-about-card{padding:16px;border-radius:14px;border:1px solid color-mix(in srgb,var(--ff-copy) 8%,transparent);background:color-mix(in srgb,var(--ff-input-bg) 85%,transparent)}.ff-about-card span,.ff-about-card small{color:var(--ff-copy-muted)}.ff-pack-grid,.ff-help-modal__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.ff-pack-card,.ff-help-modal__intro,.ff-help-modal__tips{display:flex;flex-direction:column;gap:10px;padding:16px;border-radius:16px;border:1px solid color-mix(in srgb,var(--ff-copy) 8%,transparent);background:color-mix(in srgb,var(--ff-input-bg) 86%,transparent)}.ff-pack-card span,.ff-pack-card small,.ff-help-modal__intro p,.ff-help-modal__tips p{margin:0;color:var(--ff-copy-muted)}.ff-card-actions{display:flex;gap:10px;flex-wrap:wrap}.ff-boundary,.ff-onboarding,.ff-splash,.ff-rotate-hint,.ff-help-modal{display:grid;place-items:center;z-index:40}.ff-boundary{min-height:min(70vh,720px)}.ff-boundary__card,.ff-onboarding__card,.ff-rotate-hint__card,.ff-help-modal__card{border-radius:20px;border:1px solid var(--ff-panel-edge);background:color-mix(in srgb,var(--ff-panel-strong) 92%,transparent);box-shadow:0 22px 72px #0006,inset 0 1px 0 var(--ff-panel-glow),0 0 0 1px color-mix(in srgb,var(--ff-accent) 8%,transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.ff-boundary__card{width:min(560px,calc(100vw - 32px));padding:24px}.ff-boundary__card h2,.ff-onboarding__card h2{margin:6px 0 0;font-size:clamp(1.5rem,1.1rem + 1vw,2.25rem)}.ff-boundary__card p{margin:0}.ff-onboarding{background:#050608a3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:45}.ff-onboarding__card{width:min(760px,calc(100vw - 32px));padding:24px}.ff-stepper{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:18px 0 24px}.ff-stepper__item{display:flex;flex-direction:column;gap:8px}.ff-stepper__bar{height:5px;border-radius:999px;background:color-mix(in srgb,var(--ff-copy) 12%,transparent)}.ff-stepper__item.is-active .ff-stepper__bar{background:color-mix(in srgb,var(--ff-accent) 90%,white 10%)}.ff-stepper__label{color:var(--ff-copy-muted);font-size:.8rem}.ff-stepper__item.is-active .ff-stepper__label{color:var(--ff-copy)}.ff-onboarding__step{min-height:280px;animation-duration:.24s;animation-fill-mode:both;animation-timing-function:ease}.ff-onboarding__step--forward{animation-name:ffStepInForward}.ff-onboarding__step--back{animation-name:ffStepInBack}@keyframes ffStepInForward{0%{opacity:0;translate:18px 0}to{opacity:1;translate:0 0}}@keyframes ffStepInBack{0%{opacity:0;translate:-18px 0}to{opacity:1;translate:0 0}}.ff-onboarding__lede{font-size:1rem;color:var(--ff-copy)}.ff-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.ff-summary-card{min-height:128px;padding:16px;border-radius:16px;border:1px solid color-mix(in srgb,var(--ff-copy) 8%,transparent);background:color-mix(in srgb,var(--ff-input-bg) 86%,transparent)}.ff-summary-card span{color:var(--ff-copy-muted)}.ff-splash{background:radial-gradient(circle at center,color-mix(in srgb,var(--ff-accent) 14%,transparent),transparent 44%),color-mix(in srgb,var(--ff-bg) 92%,black);transition:opacity .32s ease,visibility .32s ease;z-index:50}.ff-splash.is-hidden{opacity:0;visibility:hidden;pointer-events:none}.ff-splash__wordmark{font-size:clamp(1.7rem,1rem + 2vw,3.4rem);font-weight:700;letter-spacing:.32em}.ff-rotate-hint{pointer-events:none;opacity:0;visibility:hidden;z-index:35}.ff-rotate-hint__card{width:min(340px,calc(100vw - 40px));padding:18px 20px;display:flex;flex-direction:column;gap:8px;align-items:center;text-align:center}.ff-help-modal{z-index:55}.ff-help-modal__backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#050608ad}.ff-help-modal__card{position:relative;width:min(860px,calc(100vw - 32px));max-height:min(88dvh,860px);padding:22px;overflow:auto;-webkit-overflow-scrolling:touch}.ff-help-modal__nav,.ff-help-modal__actions{display:flex;gap:10px;margin-top:14px}.ff-help-tab{min-height:40px;padding:9px 14px;border-radius:999px;border:1px solid var(--ff-button-border);background:transparent;color:var(--ff-copy-muted);cursor:pointer;transition:border-color .16s ease,background-color .16s ease,color .16s ease}.ff-help-tab.is-active{border-color:color-mix(in srgb,var(--ff-accent) 36%,transparent);background:color-mix(in srgb,var(--ff-accent-soft) 88%,transparent);color:var(--ff-accent-copy)}.ff-help-modal__hero,.ff-help-panel,.ff-help-device,.ff-help-step,.ff-help-modal__tips{border:1px solid color-mix(in srgb,var(--ff-copy) 8%,transparent);background:color-mix(in srgb,var(--ff-input-bg) 88%,transparent)}.ff-help-modal__hero{display:flex;flex-direction:column;gap:14px;margin-top:18px;padding:18px;border-radius:18px;box-shadow:inset 0 1px color-mix(in srgb,var(--ff-panel-glow) 70%,transparent)}.ff-help-modal__intro strong,.ff-help-modal__tips strong{font-size:1.02rem}.ff-help-modal__chips{display:flex;flex-wrap:wrap;gap:8px}.ff-help-chip{display:inline-flex;align-items:center;min-height:34px;padding:8px 12px;border-radius:999px;border:1px solid color-mix(in srgb,var(--ff-accent) 18%,transparent);background:color-mix(in srgb,var(--ff-accent-soft) 85%,transparent);color:color-mix(in srgb,var(--ff-copy) 88%,white 12%);font-size:.82rem;font-weight:600}.ff-help-modal__layout{display:grid;grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);gap:14px;margin-top:16px}.ff-help-panel{display:flex;flex-direction:column;gap:14px;padding:18px;border-radius:18px}.ff-help-steps,.ff-help-device-list{display:flex;flex-direction:column;gap:10px}.ff-help-step,.ff-help-device{display:flex;gap:12px;align-items:flex-start;padding:14px;border-radius:14px}.ff-help-step__badge,.ff-help-card__badge{min-width:50px;height:50px;display:grid;place-items:center;border-radius:12px;background:color-mix(in srgb,var(--ff-accent) 16%,transparent);color:var(--ff-accent-copy);font-size:.78rem;font-weight:700;letter-spacing:.08em;flex:0 0 auto}.ff-help-step__body,.ff-help-device__body{display:flex;flex-direction:column;gap:6px}.ff-help-step__body h4,.ff-help-device__body strong{margin:0;font-size:1rem}.ff-help-step__body p,.ff-help-device__body p{margin:0;color:var(--ff-copy-muted);line-height:1.45}.ff-help-modal__footer{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}.ff-help-modal__actions{justify-content:flex-end}.ff-app--kiosk{cursor:none}@media(max-width:1100px){.ff-stage{padding-bottom:calc(216px + env(safe-area-inset-bottom,0px))}.ff-stage__board{width:min(calc(100vw - 28px),calc((100vh - 230px)*2.64))}.ff-summary-grid{grid-template-columns:1fr}}@media(max-width:820px){.ff-topbar{flex-direction:column;align-items:flex-start;gap:8px;padding:calc(12px + env(safe-area-inset-top,0px)) calc(14px + env(safe-area-inset-right,0px)) 12px calc(14px + env(safe-area-inset-left,0px))}.ff-topbar__ticker{max-width:100%;font-size:.74rem}.ff-stage{padding:calc(54px + env(safe-area-inset-top,0px)) 12px calc(232px + env(safe-area-inset-bottom,0px)) 12px}.ff-stage__board{width:min(calc(100vw - 20px),calc((100dvh - 250px)/.4))}.ff-help-modal__grid,.ff-help-modal__layout,.ff-help-modal__footer,.ff-pack-grid{grid-template-columns:1fr}.ff-scene-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ff-two-column,.ff-inline,.ff-message-composer,.ff-remote-actions,.ff-onboarding__header,.ff-onboarding__actions,.ff-scene-indicator,.ff-help-modal__header{flex-direction:column;align-items:stretch}.ff-drawer{padding:0}.ff-drawer__shell{width:100%;max-height:min(62dvh,620px);border-radius:20px 20px 0 0;border-bottom:none}.ff-drawer__main{max-height:min(62dvh,620px);overflow:auto;padding:16px 16px calc(16px + env(safe-area-inset-bottom,0px)) 16px;-webkit-overflow-scrolling:touch}.ff-advanced{height:min(62dvh,620px);padding:16px 16px calc(16px + env(safe-area-inset-bottom,0px)) 16px;min-height:0}.ff-drawer__advanced{translate:0 18px}.ff-volume,.ff-scene-indicator__label{min-width:0}.ff-onboarding__card,.ff-help-modal__card,.ff-boundary__card{width:min(calc(100vw - 20px),760px);max-height:min(92dvh,760px);overflow:auto;-webkit-overflow-scrolling:touch}.ff-onboarding__step{min-height:0}.ff-help-modal__nav,.ff-help-modal__actions{flex-wrap:wrap}}@media(max-width:640px){.ff-board{--ff-glyph-size: clamp(.8rem, min(5vw, 3.9vh), 2.7rem)}.ff-onboarding__card,.ff-boundary__card,.ff-help-modal__card{padding:18px}.ff-help-modal__hero,.ff-help-panel{padding:16px}.ff-help-step,.ff-help-device{padding:12px}.ff-stepper{gap:8px}.ff-stepper__label{font-size:.74rem}.ff-topbar__brand span,.ff-drawer__brand span,.ff-splash__wordmark{letter-spacing:.18em}.ff-message-composer{gap:10px}.ff-remote-actions{display:grid;grid-template-columns:1fr}.ff-volume{grid-column:auto}}@media(max-width:420px){.ff-scene-grid{grid-template-columns:1fr}.ff-topbar__brand span,.ff-drawer__brand span{font-size:.76rem;letter-spacing:.14em}.ff-topbar__brand small,.ff-drawer__brand small,.ff-topbar__ticker{font-size:.72rem}}.ff-app[data-mobile-portrait=true] .ff-rotate-hint{display:flex;align-items:flex-start;justify-content:center;opacity:1;visibility:visible;padding-top:calc(70px + env(safe-area-inset-top,0px))}.ff-app[data-mobile-portrait=true] .ff-stage{place-items:start center;padding:calc(62px + env(safe-area-inset-top,0px)) 4px calc(232px + env(safe-area-inset-bottom,0px)) 4px}.ff-app[data-mobile-portrait=true] .ff-stage__board{width:min(calc(100vw - 8px),calc((100dvh - 236px)*2.72),560px);max-width:calc(100vw - 8px)}.ff-app[data-mobile-portrait=true] .ff-rotate-hint__card{width:min(320px,calc(100vw - 24px));padding:12px 14px;gap:6px}.ff-app[data-mobile-portrait=true] .ff-board{gap:clamp(1px,.22vw,4px);padding:6px;border-radius:14px}.ff-app[data-mobile-portrait=true] .ff-glyph{font-size:var(--ff-glyph-size)}.ff-app[data-mobile-portrait=true] .ff-board{--ff-glyph-size: clamp(.94rem, min(5.4vw, 4.8vh), 3.15rem)}.ff-app[data-mobile-portrait=true][data-board-size=dense] .ff-board{--ff-glyph-size: clamp(.78rem, min(4.4vw, 4.1vh), 2.4rem)}.ff-app[data-mobile-portrait=true][data-board-size=large] .ff-board{--ff-glyph-size: clamp(1.05rem, min(6vw, 5.4vh), 3.5rem)}.ff-app[data-short-landscape=true] .ff-topbar{gap:8px;padding:calc(8px + env(safe-area-inset-top,0px)) calc(12px + env(safe-area-inset-right,0px)) 8px calc(12px + env(safe-area-inset-left,0px))}.ff-app[data-short-landscape=true] .ff-topbar__ticker{display:none}.ff-app[data-short-landscape=true] .ff-topbar__brand span{font-size:.74rem;letter-spacing:.14em}.ff-app[data-short-landscape=true] .ff-topbar__brand small{font-size:.72rem}.ff-app[data-short-landscape=true] .ff-stage{padding:calc(38px + env(safe-area-inset-top,0px)) 10px calc(118px + env(safe-area-inset-bottom,0px)) 10px}.ff-app[data-short-landscape=true] .ff-stage__board{width:min(calc(100vw - 20px),calc((100dvh - 176px)/.4))}.ff-app[data-short-landscape=true] .ff-glyph{font-size:var(--ff-glyph-size)}.ff-app[data-short-landscape=true] .ff-board{--ff-glyph-size: clamp(.7rem, min(3.2vw, 3.1vh), 2.1rem)}.ff-app[data-short-landscape=true][data-board-size=dense] .ff-board{--ff-glyph-size: clamp(.62rem, min(2.7vw, 2.7vh), 1.7rem)}.ff-app[data-short-landscape=true] .ff-drawer__shell{max-height:min(46dvh,280px)}.ff-app[data-short-landscape=true] .ff-drawer__main{max-height:min(46dvh,280px);padding:12px 12px calc(12px + env(safe-area-inset-bottom,0px)) 12px}.ff-app[data-short-landscape=true] .ff-advanced{height:min(46dvh,280px);padding:12px 12px calc(12px + env(safe-area-inset-bottom,0px)) 12px;min-height:0}.ff-app[data-short-landscape=true] .ff-remote-card{gap:12px;margin-top:12px}.ff-app[data-short-landscape=true] .ff-scene-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.ff-app[data-short-landscape=true] .ff-scene-button,.ff-app[data-short-landscape=true] .ff-button,.ff-app[data-short-landscape=true] .ff-chip,.ff-app[data-short-landscape=true] .ff-input{min-height:38px;padding:9px 10px}.ff-app[data-short-landscape=true] .ff-volume{gap:4px}.ff-app[data-short-landscape=true] .ff-onboarding__card,.ff-app[data-short-landscape=true] .ff-help-modal__card,.ff-app[data-short-landscape=true] .ff-boundary__card{max-height:min(94dvh,360px)}
