:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:#ecf2ed;font-synthesis:none;--surface:#151a18;--surface-raised:#1d2421;--line:#344139;--muted:#9baaa2;--accent:#ff7a3d;--accent-soft:#4e2a1c;--screen:#fe8a2c;--ink:#000;--success:#91d18b;--hardware:#79b8ff;--warning:#ffc36b;background:#0d100f;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}finvm-device-shell,finvm-control-strip,finvm-storage-state,finvm-advanced-inspector{display:block}:root[data-light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:#1a211e;--surface:#fafbf8;--surface-raised:#fff;--line:#c8d0ca;--muted:#59665f;--accent-soft:#ffe0d0;--hardware:#1769aa;background:#eff1ed}*{box-sizing:border-box}body{background:radial-gradient(circle at 16% 0%, color-mix(in srgb, var(--accent) 10%, transparent), transparent 32rem), linear-gradient(145deg, transparent 0 70%, color-mix(in srgb, var(--surface) 65%, transparent) 70%), #0d100f;min-width:320px;min-height:100vh;margin:0}:root[data-light] body{background:#eff1ed}button,label{font:inherit}button,.primary-button{border:1px solid var(--line);min-height:2.75rem;color:inherit;background:var(--surface-raised);cursor:pointer;border-radius:.65rem;padding:.65rem 1rem;transition:border-color .12s,transform .12s,background .12s}button:hover:not(:disabled),.primary-button:hover{border-color:var(--accent)}button:active:not(:disabled),.primary-button:active{transform:translateY(1px)}button:focus-visible,.primary-button:focus-visible,summary:focus-visible,:is(.primary-button:has(+input:focus-visible),.storage-import-button:has(+input:focus-visible)){outline:3px solid color-mix(in srgb, var(--accent) 65%, transparent);outline-offset:3px}button:disabled{cursor:not-allowed;opacity:.42}.skip-link{z-index:20;color:#fff;background:var(--accent);padding:.75rem 1rem;position:fixed;top:.5rem;left:.5rem;transform:translateY(-200%)}.skip-link:focus{transform:none}.site-header,footer{align-items:center;gap:1rem;width:min(1180px,100% - 2rem);margin:0 auto;display:flex}.site-header{border-bottom:1px solid var(--line);height:5rem}.site-header p{color:var(--muted);margin:0;font-size:.85rem}.brand{color:inherit;align-items:center;gap:.6rem;font-size:1.15rem;font-weight:800;text-decoration:none;display:inline-flex}.brand-mark{width:2rem;height:2rem;image-rendering:pixelated;display:block}.quiet-button{min-height:2.2rem;color:var(--muted);margin-left:auto;padding:.35rem .7rem;font-size:.78rem}.workspace{grid-template-columns:minmax(0,1.4fr) minmax(310px,.85fr);align-items:start;gap:1.25rem;width:min(1180px,100% - 2rem);margin:2.5rem auto;display:grid}.emulator-panel,.inspector{border:1px solid var(--line);background:color-mix(in srgb, var(--surface) 94%, transparent);border-radius:1rem;box-shadow:0 1rem 3rem #00000026}.emulator-panel{padding:clamp(1rem,3vw,2rem)}.inspector{position:sticky;top:1rem;overflow:hidden}.panel-heading{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem;display:flex}.panel-heading.compact{margin:0;padding:1.25rem 1.35rem}.eyebrow{color:var(--accent);letter-spacing:.16em;text-transform:uppercase;margin:0 0 .25rem;font-size:.68rem;font-weight:800}h1,h2{margin:0;line-height:1.1}h1{font-size:clamp(1.55rem,4vw,2.4rem)}h2{font-size:1.15rem}.state-pill,.tiny-badge{border:1px solid var(--line);color:var(--muted);background:var(--surface-raised);letter-spacing:.06em;text-transform:uppercase;border-radius:99rem;padding:.3rem .55rem;font-size:.68rem;font-weight:750}.state-pill[data-state=loaded],.state-pill[data-state=stopped]{color:var(--success);border-color:color-mix(in srgb, var(--success) 45%, var(--line))}.state-pill[data-state=running],.state-pill[data-state=loading],.state-pill[data-state=paused]{color:var(--warning);border-color:color-mix(in srgb, var(--warning) 45%, var(--line))}.state-pill[data-state=faulted]{color:#ff8b7b;border-color:#91483e}.device.dragging{outline:4px solid color-mix(in srgb, var(--accent) 60%, transparent);outline-offset:.4rem}.device[data-vibrating=true]{outline:2px solid color-mix(in srgb, var(--warning) 55%, transparent);outline-offset:.2rem}.drop-message{text-align:center;color:#0000;pointer-events:none;place-content:center;display:grid;position:absolute;inset:0}.drop-message strong,.drop-message span{font-size:0}.dpad button:first-child{grid-area:1/2}.dpad button:nth-child(2){grid-area:2/1}.dpad button:nth-child(3){grid-area:2/2}.dpad button:nth-child(4){grid-area:2/3}.dpad button:nth-child(5){grid-area:3/2}.primary-button{border-color:var(--accent);color:#1b100a;background:var(--accent);align-items:center;font-weight:750;display:inline-flex}#fap-file,.visually-hidden-input{clip:rect(0, 0, 0, 0);width:1px;height:1px;position:absolute;overflow:hidden}.metadata-list{margin:0;padding:0 1.35rem 1.1rem}.metadata-list div{border-top:1px solid var(--line);grid-template-columns:minmax(6rem,.8fr) minmax(0,1.2fr);gap:1rem;padding:.6rem 0;display:grid}.metadata-list dt{color:var(--muted);font-size:.75rem}.metadata-list dd{text-align:right;text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:0;font-family:ui-monospace,monospace;font-size:.75rem;overflow:hidden}details{border-top:1px solid var(--line)}summary{cursor:pointer;color:var(--muted);letter-spacing:.06em;text-transform:uppercase;padding:.9rem 1.35rem;font-size:.76rem;font-weight:750}.detail-content{max-height:13rem;padding:0 1.35rem 1rem;font-size:.8rem;overflow:auto}.detail-content p{margin:0 0 .6rem}.muted{color:var(--muted)}.success{color:var(--success)}.warning{color:var(--warning)}.import-line{justify-content:space-between;align-items:center;gap:.75rem;font-family:ui-monospace,monospace;display:flex}.import-line.incompatible{color:#ff6b6b}.import-line.hardware-backed{color:var(--hardware)}.import-line.incompatible .tiny-badge{border-color:currentColor}.tiny-badge{padding:.15rem .4rem;font-family:inherit;font-size:.55rem}.session-log{max-height:12rem;color:var(--muted);margin:0;padding:0 1.35rem 1rem 2.7rem;font:.72rem/1.5 ui-monospace,monospace;overflow:auto}.log-toolbar{color:var(--muted);justify-content:flex-end;align-items:center;gap:.55rem;padding:0 1.35rem .7rem;font-size:.72rem;display:flex}.log-toolbar select{border:1px solid var(--line);min-height:2rem;color:inherit;background:var(--surface-raised);font:inherit;border-radius:.45rem;padding:.25rem 1.8rem .25rem .55rem}.log-toolbar select:focus-visible{outline:3px solid color-mix(in srgb, var(--accent) 65%, transparent);outline-offset:2px}.session-log li[data-kind=api]::marker{color:var(--accent)}.session-log li[data-kind=input]::marker{color:var(--warning)}.session-log li::marker{color:var(--line)}.session-log .error{color:#ff8b7b}.storage-panel,.hardware-panel{gap:.75rem;display:grid}.hardware-status{margin:0}.hardware-status[data-state=ready]{color:var(--success)}.hardware-status[data-state=working],.hardware-status[data-state=missing]{color:var(--warning)}.hardware-status[data-state=error]{color:#ff8b7b}.compact-metadata{padding:0}.compact-metadata div{padding-inline:0}.storage-panel p{margin:0}.storage-actions{flex-wrap:wrap;gap:.55rem;display:flex}.storage-import-button{border:1px solid var(--line);cursor:pointer;background:var(--surface-raised);border-radius:.55rem;align-items:center;min-height:2.35rem;padding:.55rem .8rem;font-size:.78rem;display:inline-flex}.storage-import-button[data-disabled=true]{cursor:not-allowed;opacity:.45}.storage-import-button:focus-within{outline:3px solid color-mix(in srgb, var(--accent) 65%, transparent);outline-offset:2px}.storage-note{color:var(--muted);font-size:.7rem}.control-binding-grid{grid-template-columns:minmax(3.5rem,auto) minmax(8rem,1fr) minmax(5rem,.55fr);align-items:center;gap:.45rem;font-size:.72rem;display:grid}.files-release input,.files-release select,.import-row input[type=text],.control-binding-grid input,.control-profile-panel>input,.control-profile-panel>select,.execution-option-group select{border:1px solid var(--line);min-width:0;color:inherit;background:var(--surface-raised);font:inherit;border-radius:.45rem;padding:.48rem .55rem}.execution-option-group .control-group-buttons{flex-wrap:wrap;align-items:center}.execution-option-group label{font-size:.72rem}.firmware-option-group .control-group-buttons{flex-wrap:wrap;align-items:center}.firmware-option-group select{min-width:8rem}.unsupported-imports-option{align-items:center;gap:.35rem;display:inline-flex}.debugger-panel{max-height:36rem}.debug-toolbar{grid-template-columns:minmax(0,1fr) auto auto;align-items:end;gap:.45rem;display:grid}.debug-toolbar label{color:var(--muted);grid-column:1/-1;font-size:.7rem}.debug-toolbar input{border:1px solid var(--line);min-width:0;min-height:2.35rem;color:inherit;background:var(--surface-raised);border-radius:.55rem;padding:.5rem .65rem;font:.75rem ui-monospace,monospace}.debug-toolbar input:focus-visible{outline:3px solid color-mix(in srgb, var(--accent) 65%, transparent);outline-offset:2px}.debugger-panel h3{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;margin:1rem 0 .4rem;font-size:.68rem}.debug-registers{grid-template-columns:repeat(2,minmax(0,1fr));gap:.2rem .7rem;margin:0;font:.68rem/1.45 ui-monospace,monospace;display:grid}.debug-registers div{justify-content:space-between;gap:.4rem;display:flex}.debug-registers dt{color:var(--muted)}.debug-registers dd{margin:0}.debug-output{max-width:100%;color:var(--muted);margin:0;font:.65rem/1.5 ui-monospace,monospace;overflow:auto}.debug-calls{color:var(--muted);margin:0;padding-left:1.2rem;font:.65rem/1.5 ui-monospace,monospace}.wide-button{width:calc(100% - 2.7rem);margin:1rem 1.35rem 1.35rem}footer{border-top:1px solid var(--line);min-height:4rem;color:var(--muted);justify-content:space-between;font-size:.7rem}@media (max-width:800px){.workspace{grid-template-columns:minmax(0,1fr);margin-top:1rem}.inspector{position:static}.site-header p{display:none}}@media (max-width:520px){.site-header,footer,.workspace{width:min(100% - 1rem,1180px)}.emulator-panel{padding:1rem}.device{border-radius:1.4rem 1.4rem 2rem;padding:1rem}.device-controls{gap:1rem}footer{flex-direction:column;justify-content:center;align-items:flex-start;gap:.25rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}.device-stage{--lcd-width:512px;--lcd-height:256px;--lcd-border:10px;width:min(42rem,100%);min-height:0;margin:0 auto;display:block}.device-stage finvm-device-shell,.device-stage[data-rotation] finvm-device-shell{width:100%;max-width:100%;display:block;position:static;transform:translate(0,0)rotate(0)scale(1)}.device{border:1px solid var(--line);width:100%;max-width:42rem;min-height:0;color:inherit;background:var(--surface-raised);clip-path:none;border-radius:1.2rem;margin:0 auto;padding:clamp(.75rem,3vw,1.25rem);position:relative;box-shadow:inset 0 1px #ffffff0f,0 .8rem 1.8rem #00000038}.device:before{content:none}.device-face{grid-template-columns:minmax(0,1fr);align-items:center;gap:clamp(.9rem,3vw,1.35rem);display:grid}.screen-viewport{width:calc(var(--lcd-width) + var(--lcd-border) + var(--lcd-border));height:calc(var(--lcd-height) + var(--lcd-border) + var(--lcd-border));place-items:center;margin:0 auto;display:grid;position:relative}.screen-bezel{width:calc(var(--lcd-width) + var(--lcd-border) + var(--lcd-border));height:calc(var(--lcd-height) + var(--lcd-border) + var(--lcd-border));border:var(--lcd-border) solid #191b1a;background:var(--screen);transform-origin:50%;border-radius:.65rem;margin:0;position:absolute;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%);box-shadow:0 0 0 1px #070807,0 .2rem .7rem #00000040}.device-stage[data-rotation="90"] .screen-viewport,.device-stage[data-rotation="270"] .screen-viewport{width:calc(var(--lcd-height) + var(--lcd-border) + var(--lcd-border));height:calc(var(--lcd-width) + var(--lcd-border) + var(--lcd-border))}.device-stage[data-rotation="90"] .screen-bezel{transform:translate(-50%,-50%)rotate(90deg)}.device-stage[data-rotation="180"] .screen-bezel{transform:translate(-50%,-50%)rotate(180deg)}.device-stage[data-rotation="270"] .screen-bezel{transform:translate(-50%,-50%)rotate(270deg)}.screen{z-index:1;aspect-ratio:auto;background:var(--screen);width:100%;height:100%;image-rendering:crisp-edges;image-rendering:pixelated;display:block;position:relative}.device-controls{flex-wrap:nowrap;justify-content:center;align-items:center;gap:clamp(1rem,7vw,3rem);margin:0;padding:0;display:flex}.dpad{width:9rem;height:9rem;box-shadow:none;background:0 0;border:0;border-radius:1rem;flex:0 0 9rem;grid-template:repeat(3,1fr)/repeat(3,1fr);gap:0;display:grid}.dpad button,.dpad .ok,.back-button{color:#fff8f1;touch-action:none;-webkit-user-select:none;user-select:none;background:#d95e2b;border:1px solid #7a3420;min-width:44px;min-height:44px;box-shadow:inset 0 1px #ffffff38,0 .2rem #81331b}.dpad button{border-radius:.7rem;width:3rem;height:3rem;padding:0;font-size:1.15rem;font-weight:800}.dpad .ok{color:#17110e;background:#ff8a45;border-radius:50%;place-self:center;width:3rem;height:3rem;font-size:.72rem;font-weight:850}.back-button{border-radius:.85rem;width:5.3rem;height:3.4rem;padding:.5rem .7rem;font-size:1.3rem;font-weight:750}.dpad button.is-held,.back-button.is-held{transform:translateY(.15rem);box-shadow:inset 0 .16rem .3rem #4318076b}.control-deck{border:1px solid var(--line);background:linear-gradient(145deg, color-mix(in srgb, var(--surface-raised) 96%, var(--accent) 4%), var(--surface-raised));border-radius:1rem;width:min(42rem,100%);margin:1rem auto 0;overflow:hidden;box-shadow:inset 0 1px #ffffff0d,0 .7rem 1.7rem #0000001f}.control-deck-status{border-bottom:1px solid color-mix(in srgb, var(--line) 72%, transparent);align-items:center;gap:.75rem;padding:.65rem .75rem;display:flex}.control-deck-label,.control-group legend{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;font-size:.62rem;font-weight:800}.control-deck-label{flex:none}.effect-strip{min-width:0;color:var(--muted);text-transform:uppercase;flex-wrap:wrap;flex:1;justify-content:flex-end;align-items:center;gap:.35rem;font:.58rem ui-monospace,monospace;display:flex}.effect-item{border:1px solid color-mix(in srgb, var(--line) 72%, transparent);background:color-mix(in srgb, var(--surface) 68%, transparent);white-space:nowrap;border-radius:99rem;align-items:center;gap:.3rem;min-height:1.85rem;padding:.32rem .52rem;display:inline-flex}#effect-led i{background:#202522;border:1px solid #68736d;border-radius:50%;width:.5rem;height:.5rem;box-shadow:0 0 #0000}#effect-led[data-active=true] i{box-shadow:0 0 .65rem}.effect-audio-toggle{border-color:color-mix(in srgb, var(--line) 85%, transparent);min-height:1.85rem;color:var(--muted);background:color-mix(in srgb, var(--surface) 68%, transparent);text-transform:none;border-radius:99rem;padding:.3rem .58rem;font-size:.58rem}.effect-audio-toggle[aria-pressed=true]:before{content:"●";color:var(--success);margin-right:.35rem;font-size:.48rem}.control-groups{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:.65rem;padding:.75rem;display:grid}.control-group{border:1px solid color-mix(in srgb, var(--line) 76%, transparent);background:color-mix(in srgb, var(--surface) 56%, transparent);border-radius:.75rem;min-width:0;margin:0;padding:.55rem}.control-group legend{margin-left:.15rem;padding:0 .35rem}.app-action-group{grid-column:1/-1}.control-group-buttons{align-items:stretch;gap:.45rem;display:flex}.control-group-buttons>button{flex:auto;min-width:0}.control-group-buttons>button,.control-group-buttons>.primary-button{white-space:nowrap;justify-content:center;min-height:2.75rem;padding:.55rem .75rem;font-size:.84rem}.app-action-group #demo-button,.app-action-group #reload-remote-button:not([hidden]){flex:12rem}.load-actions{flex-wrap:wrap;margin:0}.control-deck-footer{border-top:1px solid color-mix(in srgb, var(--line) 72%, transparent);grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.8rem;padding:.65rem .75rem .75rem;display:grid}.storage-summary{border:1px solid color-mix(in srgb, var(--success) 34%, var(--line));width:-moz-fit-content;width:fit-content;color:var(--muted);background:color-mix(in srgb, var(--surface) 68%, transparent);white-space:nowrap;border-radius:99rem;margin:0;padding:.36rem .65rem;font-size:.7rem}.storage-summary:before{content:"●";color:var(--muted);margin-right:.38rem;font-size:.5rem}.storage-summary[data-state=ready]:before{color:var(--success)}.storage-summary[data-state=working]:before{color:var(--warning)}.storage-summary[data-state=warning]:before,.storage-summary[data-state=error]:before{color:#ff8b7b}.privacy-note{color:var(--muted);text-align:right;margin:0;font-size:.7rem;line-height:1.4}@media (max-width:960px){.device-stage{--lcd-width:384px;--lcd-height:192px;--lcd-border:8px}}@media (max-width:520px){.device-stage{--lcd-width:256px;--lcd-height:128px;--lcd-border:6px}.device-stage:is([data-rotation="90"],[data-rotation="270"]){--lcd-width:384px;--lcd-height:192px}.control-deck{border-radius:.85rem}.control-deck-status{flex-direction:column;align-items:flex-start;gap:.45rem}.effect-strip{justify-content:flex-start}.control-groups{grid-template-columns:minmax(0,1fr);gap:.55rem;padding:.65rem}.app-action-group{grid-column:auto}.control-deck-footer{grid-template-columns:minmax(0,1fr);gap:.5rem}.privacy-note{text-align:left}}@media (max-width:430px){.device{border-radius:.9rem;padding:.65rem}.device-controls{gap:.75rem}.screen-bezel{border-radius:.45rem}.app-action-group .control-group-buttons{flex-direction:column}.app-action-group .primary-button{width:100%}.app-action-group #demo-button,.app-action-group #reload-remote-button:not([hidden]){flex:none;width:100%}.session-action-group .control-group-buttons>button{padding-inline:.4rem;font-size:.78rem}}.storage-save-error{color:#792116;overflow-wrap:anywhere;background:#fff0eb;border:1px solid #b33220;border-radius:.5rem;margin:0;padding:.75rem 1rem}.files-dialog,.files-review{color:inherit;background:var(--surface);border:1px solid var(--line);border-radius:12px;max-height:88vh;padding:24px;overflow:auto}.files-dialog{width:min(1050px,94vw)}.files-review{width:min(850px,90vw)}.files-dialog::backdrop{background:#0009}.files-review::backdrop{background:#0009}.files-heading{justify-content:space-between;align-items:center;gap:16px;display:flex}.files-heading h2{margin:0}.files-heading p{opacity:.7;margin:4px 0 16px}.files-toolbar,.files-breadcrumbs{flex-wrap:wrap;align-items:center;gap:8px;margin:12px 0;display:flex}.files-list{border:1px solid var(--line);border-radius:8px;min-height:220px;max-height:42vh;overflow:auto}.files-list.dragging{outline:3px solid #ff8b35}.files-list table{border-collapse:collapse;width:100%}.files-list th,.files-list td{text-align:left;border-bottom:1px solid #5557;padding:8px}.files-list th{background:var(--surface);position:sticky;top:0}.files-list td:nth-child(2){overflow-wrap:anywhere;width:65%}.files-list td button{text-align:left;background:0 0;border-color:#0000;padding-inline:0}.files-list input[type=checkbox],.import-row input[type=checkbox]{width:auto}.files-status{overflow-wrap:anywhere;min-height:1.5em}.files-empty{text-align:center;opacity:.7;padding:35px}.files-release{padding:16px 0}.files-release summary{padding:4px 0}.files-release-row:not([hidden]){grid-template-columns:minmax(0,1fr) 9rem;align-items:end;gap:12px;margin-top:16px;display:grid}.files-release-row label{gap:8px;min-width:0;display:grid}.files-release input,.files-release select{width:100%;min-height:2.75rem}@media (max-width:600px){.files-release-row:not([hidden]){grid-template-columns:1fr}}.files-review ul{overflow-wrap:anywhere;max-height:50vh;overflow:auto}.files-review>button{margin:16px 8px 0 0}.import-row{align-items:center;gap:10px;margin:8px 0;display:flex}.import-row input[type=text]{flex:1;min-width:80px}.import-row span{width:120px;font-size:.85rem}.files-review>div{max-height:52vh;overflow:auto}.files-review [role=alert]{color:#ffb274}.files-dialog progress{accent-color:#ff8b35;width:160px}
