@import"https://fonts.googleapis.com/css2?family=EB+Garamond:wght@400;500;600&family=JetBrains+Mono:wght@400;500;600&display=swap";.emulator-canvas-container{position:relative;width:100%;height:100%;background:#000}.loading-screen{position:absolute;inset:0;z-index:10;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#1a1918;color:#e8e8e8;padding:24px}.loading-title{font-family:var(--font-mono, "Monaco", monospace);font-size:14px;letter-spacing:.05em;margin-bottom:24px;opacity:.9}.loading-details{width:280px;text-align:center}.loading-filename{font-family:var(--font-mono, "Monaco", monospace);font-size:11px;color:var(--text-dim, #808080);margin-bottom:16px;opacity:.8}.loading-progress-bar{height:4px;background:var(--screen-bezel, #3A3832);border-radius:2px;overflow:hidden;margin-bottom:12px}.loading-progress-fill{height:100%;background:var(--led-power-on, #22C55E);transition:width .15s ease-out;box-shadow:0 0 8px var(--led-power-glow, rgba(34, 197, 94, .5))}.loading-stats{display:flex;justify-content:space-between;align-items:center;font-family:var(--font-mono, "Monaco", monospace);font-size:10px}.loading-size{color:var(--text-dim, #808080)}.loading-percentage{color:var(--text-on-dark, #E8E8E8);letter-spacing:.1em}.create-disk-form{display:flex;flex-direction:column;gap:16px}.form-field{display:flex;flex-direction:column;gap:6px}.form-field label{font-size:11px;font-weight:600;color:var(--text-dim, rgba(255, 255, 255, .6));text-transform:uppercase;letter-spacing:.05em}.input-with-suffix{display:flex;align-items:center;background:var(--input-bg, rgba(0, 0, 0, .3));border:1px solid var(--border-subtle, rgba(255, 255, 255, .1));border-radius:6px;overflow:hidden}.input-with-suffix input{flex:1;padding:10px 12px;border:none;background:transparent;color:var(--text-primary, #fff);font-family:var(--font-mono, monospace);font-size:14px}.input-with-suffix input:focus{outline:none}.input-with-suffix:focus-within{border-color:var(--accent-primary, #4a9eff)}.input-suffix{padding:10px 12px;color:var(--text-dim, rgba(255, 255, 255, .5));font-family:var(--font-mono, monospace);font-size:14px;background:var(--input-suffix-bg, rgba(255, 255, 255, .05));border-left:1px solid var(--border-subtle, rgba(255, 255, 255, .1))}.size-presets{display:flex;gap:8px;flex-wrap:wrap}.preset-btn{padding:8px 12px;border:1px solid var(--border-subtle, rgba(255, 255, 255, .15));border-radius:6px;background:var(--input-bg, rgba(0, 0, 0, .3));color:var(--text-primary, #fff);font-size:12px;font-weight:500;cursor:pointer;transition:all .15s ease}.preset-btn:hover{background:var(--control-hover, rgba(255, 255, 255, .1));border-color:var(--border-hover, rgba(255, 255, 255, .25))}.preset-btn.active{background:var(--accent-primary, #4a9eff);border-color:var(--accent-primary, #4a9eff);color:#fff}.preset-btn:disabled{opacity:.5;cursor:not-allowed}.custom-size{display:flex;align-items:center;gap:8px;margin-top:8px}.custom-size input{width:100px;padding:8px 12px;border:1px solid var(--border-subtle, rgba(255, 255, 255, .1));border-radius:6px;background:var(--input-bg, rgba(0, 0, 0, .3));color:var(--text-primary, #fff);font-family:var(--font-mono, monospace);font-size:14px}.custom-size input:focus{outline:none;border-color:var(--accent-primary, #4a9eff)}.custom-size .input-suffix{border:none;background:none;padding:0}.size-hint{font-size:11px;color:var(--text-dim, rgba(255, 255, 255, .4));margin-top:4px}.form-error{padding:10px 12px;border-radius:6px;background:#ef444426;border:1px solid rgba(239,68,68,.3);color:#fca5a5;font-size:13px}.form-success{padding:10px 12px;border-radius:6px;background:#22c55e26;border:1px solid rgba(34,197,94,.3);color:#86efac;font-size:13px}.create-btn{padding:12px 20px;border:none;border-radius:6px;background:var(--accent-primary, #4a9eff);color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:all .15s ease}.create-btn:hover:not(:disabled){background:var(--accent-hover, #3a8eef)}.create-btn:disabled{opacity:.5;cursor:not-allowed}.settings-modal-overlay{position:fixed;inset:0;z-index:1200;display:flex;align-items:center;justify-content:center;background:#000000bf;backdrop-filter:blur(8px);animation:modal-fade-in .2s ease-out}.settings-modal{width:480px;max-width:95vw;max-height:85vh;background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:16px;box-shadow:0 8px 32px #0006,0 0 0 1px #ffffff0d;overflow:hidden;display:flex;flex-direction:column;animation:modal-scale-in .2s ease-out}.theme-dark .settings-modal{--accent-primary: #00a86b;--accent-rgb: 0, 168, 107}.settings-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem .75rem}.header-title{display:flex;align-items:center;gap:.625rem}.header-title h2{margin:0;font-family:var(--font-badge);font-size:1.125rem;font-weight:500;color:var(--text-primary)}.dev-badge{padding:2px 6px;font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;background:#b4820040;color:#7a5c00;border-radius:4px}.theme-dark .dev-badge,.theme-powerbook .dev-badge{background:#ffb40033;color:#e6a800}.settings-modal-header .close-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:6px;color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.settings-modal-header .close-btn:hover{background:var(--control-hover);color:var(--text-primary)}.settings-modal-header .close-btn svg{width:18px;height:18px}.settings-tabbar{display:flex;position:relative;padding:0 1.25rem;border-bottom:1px solid var(--panel-border)}.settings-tab{flex:1;padding:.75rem 0;font-family:var(--font-ui);font-size:.8125rem;font-weight:500;color:var(--text-secondary);background:transparent;border:none;cursor:pointer;transition:color .15s ease}.settings-tab:hover{color:var(--text-primary)}.settings-tab.active{color:var(--accent-primary)}.settings-tab:focus-visible{outline:2px solid var(--accent-primary);outline-offset:-2px;border-radius:4px}.tab-indicator{position:absolute;bottom:-1px;left:calc(1.25rem + (100% - 2.5rem) / var(--tab-count) * var(--tab-index));width:calc((100% - 2.5rem) / var(--tab-count));height:2px;background:var(--accent-primary);border-radius:1px 1px 0 0;transition:left .2s ease}.settings-modal-content{flex:1;min-height:0;overflow-y:auto;padding:1rem 1.25rem}.tab-content{animation:tab-fade-in .2s ease-out}@keyframes tab-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.settings-section{margin-bottom:1.5rem}.settings-section:last-child{margin-bottom:0}.section-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.section-title{margin:0 0 .5rem;font-family:var(--font-ui);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary)}.section-header .section-title{margin-bottom:0}.section-hint{margin:0 0 .75rem;font-size:.75rem;color:var(--text-dim);line-height:1.4}.section-count{font-size:.6875rem;font-weight:500;color:var(--text-dim);background:var(--control-bg);padding:2px 6px;border-radius:4px}.restart-badge,.live-badge{font-size:.5625rem;font-weight:600;text-transform:uppercase;letter-spacing:.3px;padding:2px 5px;border-radius:3px}.restart-badge{background:#b4820033;color:#8a6d14}.live-badge{background:#288c5033;color:#1a7a42}.theme-dark .restart-badge,.theme-powerbook .restart-badge{background:#ffb40026;color:#d4a012}.theme-dark .live-badge,.theme-powerbook .live-badge{background:#50c87826;color:#50c878}.setting-group{margin-bottom:1rem}.setting-group:last-child{margin-bottom:0}.setting-label{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem;font-size:.8125rem;font-weight:500;color:var(--text-primary)}.radio-group{display:flex;flex-wrap:wrap;gap:.5rem}.radio-group.vertical{flex-direction:column}.radio-option{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:var(--control-bg);border:1px solid var(--control-border);border-radius:8px;cursor:pointer;transition:all .15s ease}.radio-option:hover{background:var(--control-hover);border-color:var(--text-dim)}.radio-option.selected{background:rgba(var(--accent-rgb, 100, 150, 255),.1);border-color:var(--accent-primary)}.radio-option.detailed{align-items:flex-start;padding:.75rem}.radio-option input{position:absolute;opacity:0;pointer-events:none}.radio-indicator{width:16px;height:16px;border:2px solid var(--control-border);border-radius:50%;transition:all .15s ease;flex-shrink:0}.radio-option.selected .radio-indicator{border-color:var(--accent-primary);background:var(--accent-primary);box-shadow:inset 0 0 0 3px var(--panel-bg)}.radio-option.disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.radio-option.disabled:hover{background:var(--control-bg);border-color:var(--control-border)}.settings-section.disabled-section{opacity:.6}.settings-section.disabled-section .section-title{color:var(--text-dim)}.disabled-hint{font-style:italic;color:var(--text-dim)}.radio-label{font-size:.8125rem;color:var(--text-primary)}.checkbox-group{display:flex;flex-direction:column;gap:.5rem}.checkbox-option{display:flex;align-items:flex-start;gap:.625rem;padding:.75rem;background:var(--control-bg);border:1px solid var(--control-border);border-radius:8px;cursor:pointer;transition:all .15s ease}.checkbox-option:hover{background:var(--control-hover);border-color:var(--text-dim)}.checkbox-option.selected{background:rgba(var(--accent-rgb, 100, 150, 255),.1);border-color:var(--accent-primary)}.checkbox-option.toggle.selected{background:var(--control-bg);border-color:var(--control-border)}.checkbox-option.toggle.selected:hover{background:var(--control-hover);border-color:var(--text-dim)}.checkbox-option input{position:absolute;opacity:0;pointer-events:none}.checkbox-indicator{position:relative;width:16px;height:16px;border:2px solid var(--control-border);border-radius:4px;transition:all .15s ease;flex-shrink:0;margin-top:1px}.checkbox-option.selected .checkbox-indicator{border-color:var(--accent-primary);background:var(--accent-primary)}.checkbox-option.selected .checkbox-indicator:after{content:"";position:absolute;left:4px;top:1px;width:5px;height:9px;border:solid var(--panel-bg);border-width:0 2px 2px 0;transform:rotate(45deg)}.option-content{flex:1;display:flex;flex-direction:column;gap:.25rem}.option-title{font-size:.8125rem;font-weight:500;color:var(--text-primary)}.option-title-row{display:flex;align-items:center;gap:.5rem}.option-desc{font-size:.75rem;color:var(--text-dim);line-height:1.4}.disk-list{display:flex;flex-direction:column;gap:.375rem}.disk-option{display:flex;align-items:center;gap:.5rem;padding:.625rem .75rem;background:var(--control-bg);border:1px solid var(--control-border);border-radius:8px;cursor:pointer;transition:all .15s ease}.disk-option:hover{background:var(--control-hover);border-color:var(--text-dim)}.disk-option.selected{background:rgba(var(--accent-rgb, 100, 150, 255),.1);border-color:var(--accent-primary)}.disk-option.disabled{opacity:.5;cursor:not-allowed}.disk-option.disabled:hover{background:var(--control-bg);border-color:var(--control-border)}.disk-option input{position:absolute;opacity:0;pointer-events:none}.disk-option .radio-indicator{width:16px;height:16px;border:2px solid var(--control-border);border-radius:50%;transition:all .15s ease;flex-shrink:0}.disk-option.selected .radio-indicator{border-color:var(--accent-primary);background:var(--accent-primary);box-shadow:inset 0 0 0 3px var(--panel-bg)}.disk-option.checkbox .checkbox-indicator{position:relative;width:16px;height:16px;border:2px solid var(--control-border);border-radius:4px;transition:all .15s ease;flex-shrink:0}.disk-option.checkbox.selected .checkbox-indicator{border-color:var(--accent-primary);background:var(--accent-primary)}.disk-option.checkbox.selected .checkbox-indicator:after{content:"";position:absolute;left:4px;top:1px;width:5px;height:9px;border:solid var(--panel-bg);border-width:0 2px 2px 0;transform:rotate(45deg)}.disk-name{flex:1;font-size:.8125rem;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.disk-size{font-size:.6875rem;color:var(--text-dim);font-variant-numeric:tabular-nums}.input-group{display:flex;align-items:center;gap:.5rem}.text-input{flex:1;padding:.625rem .75rem;font-family:var(--font-ui);font-size:.8125rem;color:var(--text-primary);background:var(--control-bg);border:1px solid var(--control-border);border-radius:8px;transition:all .15s ease}.text-input::placeholder{color:var(--text-dim)}.text-input:hover{border-color:var(--text-dim)}.text-input:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px rgba(var(--accent-rgb, 100, 150, 255),.15)}.input-badge{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.3px;padding:4px 6px;background:rgba(var(--accent-rgb, 100, 150, 255),.15);color:var(--accent-primary);border-radius:4px}.invite-link-section{margin-top:1rem;padding-top:.75rem;border-top:1px solid var(--panel-border)}.invite-link-row{display:flex;gap:.5rem;align-items:stretch}.invite-link-preview{flex:1;padding:.5rem .75rem;font-family:var(--font-mono, "SF Mono", Monaco, "Consolas", monospace);font-size:.6875rem;color:var(--text-secondary);background:var(--control-bg);border:1px solid var(--control-border);border-radius:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center}.copy-link-btn{display:inline-flex;align-items:center;gap:.375rem;padding:.5rem .875rem;font-family:var(--font-ui);font-size:.75rem;font-weight:500;color:var(--accent-primary);background:transparent;border:1px solid var(--accent-primary);border-radius:6px;cursor:pointer;transition:all .15s ease;white-space:nowrap}.copy-link-btn:hover{background:rgba(var(--accent-rgb, 100, 150, 255),.1)}.copy-link-btn.copied{color:#27ae60;border-color:#27ae60;background:#27ae601a}.copy-link-btn svg{width:14px;height:14px;flex-shrink:0}.loading-state,.error-state,.empty-state{display:flex;align-items:center;gap:.75rem;padding:1rem;background:var(--control-bg);border:1px solid var(--control-border);border-radius:8px;font-size:.8125rem;color:var(--text-secondary)}.loading-spinner{width:16px;height:16px;border:2px solid var(--control-border);border-top-color:var(--accent-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error-state{flex-direction:column;align-items:flex-start;gap:.5rem}.error-message{color:#ff6b6b}.retry-btn{padding:.375rem .75rem;font-family:var(--font-ui);font-size:.75rem;font-weight:500;color:var(--accent-primary);background:transparent;border:1px solid var(--accent-primary);border-radius:6px;cursor:pointer;transition:all .15s ease}.retry-btn:hover{background:rgba(var(--accent-rgb, 100, 150, 255),.1)}.cache-section{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--panel-border)}.storage-summary{margin-bottom:1rem}.storage-bar-container{height:8px;background:var(--control-bg);border-radius:4px;overflow:hidden;margin-bottom:.5rem}.storage-bar{height:100%;width:var(--storage-percentage, 0%);background:var(--accent-primary);border-radius:4px;transition:width .3s ease-out}.storage-bar.warning{background:#e67e22}.storage-text{font-size:.75rem;color:var(--text-secondary)}.storage-used{font-weight:500;color:var(--text-primary)}.storage-separator{color:var(--text-dim)}.storage-total{color:var(--text-secondary)}.storage-loading{display:flex;align-items:center;gap:.5rem;font-size:.75rem;color:var(--text-secondary)}.cache-actions{display:flex;align-items:center}.clear-cache-btn{width:100%;padding:.625rem 1rem;font-family:var(--font-ui);font-size:.8125rem;font-weight:500;color:#c0392b;background:transparent;border:1px solid #c0392b;border-radius:8px;cursor:pointer;transition:all .15s ease}.clear-cache-btn:hover:not(:disabled){background:#c0392b1a}.clear-cache-btn:disabled{opacity:.5;cursor:not-allowed}.confirm-inline{display:flex;align-items:center;gap:.5rem;width:100%}.confirm-text{flex:1;font-size:.8125rem;font-weight:500;color:var(--text-primary)}.confirm-btn-inline{padding:.5rem .875rem;font-family:var(--font-ui);font-size:.75rem;font-weight:500;border:none;border-radius:6px;cursor:pointer;transition:all .15s ease}.confirm-btn-inline.destructive{background:#c0392b;color:#fff}.confirm-btn-inline.destructive:hover:not(:disabled){background:#a93226}.confirm-btn-inline.cancel{background:var(--control-bg);color:var(--text-secondary)}.confirm-btn-inline.cancel:hover:not(:disabled){background:var(--control-hover);color:var(--text-primary)}.confirm-btn-inline:disabled{opacity:.6;cursor:not-allowed}.theme-grid-compact{display:grid;grid-template-columns:repeat(3,1fr);gap:.625rem}.theme-card-compact{display:flex;flex-direction:column;gap:.375rem;padding:.5rem;background:var(--card-bg);border:2px solid transparent;border-radius:8px;cursor:pointer;transition:all .15s ease;position:relative}.theme-card-compact:hover{background:var(--control-hover);border-color:var(--text-dim)}.theme-card-compact.selected{border-color:var(--accent-primary)}.theme-preview-compact{aspect-ratio:4 / 3;border-radius:4px;overflow:hidden}.preview-housing-compact{width:100%;height:100%;display:flex;flex-direction:column;background:var(--preview-housing);border-radius:4px;padding:3px;box-shadow:inset 0 1px #ffffff26}.preview-vents-compact{display:flex;justify-content:center;gap:1px;padding:1px 0}.preview-vent-compact{width:6px;height:1.5px;background:#00000080;border-radius:1px}.preview-bezel-compact{flex:1;background:var(--preview-bezel);border-radius:2px;padding:2px;margin:1px 0}.preview-screen-compact{width:100%;height:100%;background:var(--preview-screen);border-radius:1px}.preview-control-compact{display:flex;align-items:center;gap:2px;padding:1px 2px;background:var(--preview-control);border-radius:2px}.preview-led-compact{width:3px;height:3px;border-radius:50%;background:#222}.preview-led-compact.active{background:#0f0;box-shadow:0 0 3px #00ff0080}.theme-name-compact{font-size:.625rem;font-weight:600;color:var(--text-primary);text-align:center}.theme-check-compact{position:absolute;top:4px;right:4px;width:14px;height:14px;display:flex;align-items:center;justify-content:center;background:var(--accent-primary);border-radius:50%;color:#fff}.theme-check-compact svg{width:8px;height:8px}.settings-modal-footer{display:flex;justify-content:flex-end;align-items:center;padding:.75rem 1.25rem;border-top:1px solid var(--panel-border);min-height:56px}.no-changes-hint{font-size:.75rem;color:var(--text-dim)}.save-restart-btn{padding:.625rem 1.25rem;font-family:var(--font-ui);font-size:.8125rem;font-weight:600;color:#fff;background:var(--accent-primary);border:none;border-radius:8px;cursor:pointer;transition:all .15s ease}.save-restart-btn:hover{filter:brightness(1.1)}.save-restart-btn:active{transform:scale(.98)}.confirm-dialog-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#0009;border-radius:16px;animation:modal-fade-in .15s ease-out}.confirm-dialog{width:320px;padding:1.25rem;background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:12px;box-shadow:0 8px 24px #0000004d;animation:modal-scale-in .15s ease-out}.confirm-dialog h3{margin:0 0 .5rem;font-family:var(--font-badge);font-size:1rem;font-weight:600;color:var(--text-primary)}.confirm-dialog p{margin:0 0 1rem;font-size:.8125rem;color:var(--text-secondary);line-height:1.5}.confirm-actions{display:flex;justify-content:flex-end;gap:.5rem}.confirm-btn{padding:.5rem 1rem;font-family:var(--font-ui);font-size:.8125rem;font-weight:500;border:none;border-radius:6px;cursor:pointer;transition:all .15s ease}.confirm-btn.secondary{color:var(--text-secondary);background:var(--control-bg)}.confirm-btn.secondary:hover{background:var(--control-hover);color:var(--text-primary)}.confirm-btn.primary{color:#fff;background:#e74c3c}.confirm-btn.primary:hover{background:#c0392b}@media(max-width:560px){.settings-modal-overlay{align-items:flex-end}.settings-modal{width:100%;max-width:100%;max-height:90dvh;max-height:90vh;border-radius:16px 16px 0 0;animation:modal-slide-up .25s ease-out}@supports (max-height: 90dvh){.settings-modal{max-height:90dvh}}@keyframes modal-slide-up{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.settings-modal-footer{padding-bottom:max(.75rem,env(safe-area-inset-bottom))}.theme-grid-compact{grid-template-columns:repeat(2,1fr)}.radio-group:not(.vertical){flex-direction:column}}.disk-option.locked{opacity:.7}.disk-option.locked:hover{border-color:var(--control-border)}.lock-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:4px;font-size:.6875rem;font-weight:600;text-transform:uppercase;background:#b4820033;color:#b48200;margin-left:auto}.theme-dark .lock-badge,.theme-powerbook .lock-badge{background:#ffb40026;color:#e6a800}.lock-badge .lock-icon{width:12px;height:12px}.unlock-btn{padding:4px 10px;font-size:.75rem;font-weight:500;background:transparent;border:1px solid var(--control-border);border-radius:4px;color:var(--text-secondary);cursor:pointer;transition:all .15s ease;margin-left:8px}.unlock-btn:hover{background:var(--control-bg);color:var(--text-primary);border-color:var(--text-dim)}.lock-dialog-overlay{position:fixed;inset:0;z-index:1300;display:flex;align-items:center;justify-content:center;background:#000c;backdrop-filter:blur(4px);animation:modal-fade-in .15s ease-out}.lock-dialog{width:360px;max-width:90vw;background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:12px;padding:1.25rem;animation:modal-scale-in .15s ease-out}.lock-dialog h3{margin:0 0 1rem;font-size:1rem;font-weight:600;color:var(--text-primary)}.lock-dialog-warning{padding:.75rem;background:#b482001a;border:1px solid rgba(180,130,0,.3);border-radius:8px;margin-bottom:1rem}.lock-dialog-warning p{margin:0 0 .5rem;font-size:.8125rem;color:var(--text-primary)}.lock-dialog-warning ul{margin:0;padding-left:1.25rem;font-size:.75rem;color:var(--text-secondary)}.lock-dialog-warning li{margin-bottom:.25rem}.lock-dialog-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1rem}.lock-dialog-actions button{padding:.5rem 1rem;font-size:.8125rem;font-weight:500;border-radius:6px;cursor:pointer;transition:all .15s ease}.lock-dialog-actions .cancel-btn{background:transparent;border:1px solid var(--control-border);color:var(--text-secondary)}.lock-dialog-actions .cancel-btn:hover{background:var(--control-hover);color:var(--text-primary)}.lock-dialog-actions .takeover-btn{background:#b48200;border:none;color:#fff}.lock-dialog-actions .takeover-btn:hover{background:#996e00}.lock-lost-toast{position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%);z-index:1400;display:flex;align-items:flex-start;gap:.75rem;padding:1rem;background:var(--panel-bg);border:1px solid rgba(180,130,0,.4);border-radius:10px;box-shadow:0 4px 16px #0000004d;max-width:380px;animation:toast-slide-up .2s ease-out}@keyframes toast-slide-up{0%{transform:translate(-50%) translateY(100%);opacity:0}to{transform:translate(-50%) translateY(0);opacity:1}}.lock-lost-toast-icon{flex-shrink:0;width:24px;height:24px;color:#b48200}.lock-lost-toast-content{flex:1}.lock-lost-toast-title{font-size:.875rem;font-weight:600;color:var(--text-primary);margin-bottom:.25rem}.lock-lost-toast-body{font-size:.75rem;color:var(--text-secondary);line-height:1.4}.lock-lost-toast-actions{display:flex;gap:.5rem;margin-top:.75rem}.lock-lost-toast-actions button{padding:.375rem .75rem;font-size:.75rem;font-weight:500;border-radius:4px;cursor:pointer}.lock-lost-toast-actions .dismiss-btn{background:transparent;border:1px solid var(--control-border);color:var(--text-secondary)}.lock-lost-toast-actions .reacquire-btn{background:var(--accent-primary);border:none;color:#fff}.volume-knob{position:relative;border-radius:50%;background:var(--housing-dark, #C4BFB4);cursor:grab;transition:box-shadow .1s ease;user-select:none;flex-shrink:0;touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;background-image:radial-gradient(ellipse at 30% 30%,var(--housing-lighter, #FAF8F4) 0%,transparent 50%),radial-gradient(ellipse at 70% 70%,var(--housing-darker, #B4AFA4) 0%,transparent 50%),linear-gradient(135deg,var(--housing-light, #F5F2EB) 0%,var(--housing-dark, #C4BFB4) 100%);box-shadow:inset 0 1px #fff6,inset 0 -1px #0000001a,0 2px 4px #00000026,0 0 0 1px var(--control-border, #C8C3B8)}.volume-knob:hover{box-shadow:inset 0 1px #fff6,inset 0 -1px #0000001a,0 2px 6px #0003,0 0 0 1px var(--control-border, #C8C3B8)}.volume-knob.dragging{cursor:grabbing;box-shadow:inset 0 1px #fff6,inset 0 -1px #0000001a,0 3px 8px #00000040,0 0 0 1px var(--accent-primary, #2B6CB0)}.volume-knob-indicator{position:absolute;top:3px;left:50%;transform:translate(-50%);width:2px;height:6px;background:var(--text-secondary, #5A5850);border-radius:1px;box-shadow:0 0 0 .5px #0003}.theme-dark .volume-knob{background:var(--housing-primary, #2A2A2A);background-image:radial-gradient(ellipse at 30% 30%,rgba(255,255,255,.1) 0%,transparent 50%),radial-gradient(ellipse at 70% 70%,rgba(0,0,0,.2) 0%,transparent 50%),linear-gradient(135deg,var(--housing-light, #3A3A3A) 0%,var(--housing-dark, #1A1A1A) 100%);box-shadow:inset 0 1px #ffffff0d,inset 0 -1px #0003,0 2px 4px #0000004d,0 0 0 1px var(--control-border, #444)}.theme-dark .volume-knob-indicator{background:var(--text-primary, #E8E8E8)}.vu-meter{display:flex;align-items:center;padding:0 .25rem}.vu-meter-bar{display:flex;gap:2px;padding:4px 6px;background:#00000026;border-radius:3px;box-shadow:inset 0 1px 2px #0003}.vu-segment{width:4px;height:10px;border-radius:1px;transition:opacity .05s ease,box-shadow .05s ease}.vu-segment.green{background:#0a2a14}.vu-segment.yellow{background:#2a2a0a}.vu-segment.red{background:#2a0a0a}.vu-segment.green.lit{--b: var(--segment-brightness, 1);background:color-mix(in srgb,#22C55E calc(var(--b) * 100%),#0A2A14);opacity:calc(.4 + var(--b) * .6);box-shadow:0 0 calc(4px * var(--b)) rgba(34,197,94,calc(.5 * var(--b))),0 0 calc(8px * var(--b)) rgba(34,197,94,calc(.3 * var(--b)))}.vu-segment.yellow.lit{--b: var(--segment-brightness, 1);background:color-mix(in srgb,#EAB308 calc(var(--b) * 100%),#2A2A0A);opacity:calc(.4 + var(--b) * .6);box-shadow:0 0 calc(4px * var(--b)) rgba(234,179,8,calc(.5 * var(--b))),0 0 calc(8px * var(--b)) rgba(234,179,8,calc(.3 * var(--b)))}.vu-segment.red.lit{--b: var(--segment-brightness, 1);background:color-mix(in srgb,#EF4444 calc(var(--b) * 100%),#2A0A0A);opacity:calc(.4 + var(--b) * .6);box-shadow:0 0 calc(4px * var(--b)) rgba(239,68,68,calc(.5 * var(--b))),0 0 calc(8px * var(--b)) rgba(239,68,68,calc(.3 * var(--b)))}.vu-segment.red.clipping{animation:clip-flash .1s ease-in-out}@keyframes clip-flash{0%,to{background:#ef4444}50%{background:red;box-shadow:0 0 8px #f00c,0 0 16px #ff000080}}.theme-dark .vu-meter-bar{background:#0000004d;box-shadow:inset 0 1px 3px #0006}.file-transfer-drop-zone{position:relative;width:100%;height:100%}.file-transfer-overlay{position:absolute;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;background:#000000d9;backdrop-filter:blur(4px);animation:overlay-fade-in .15s ease-out}@keyframes overlay-fade-in{0%{opacity:0}to{opacity:1}}.file-transfer-overlay-content{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:2rem;animation:content-scale-in .15s ease-out}@keyframes content-scale-in{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}.file-transfer-icon{width:64px;height:64px;display:flex;align-items:center;justify-content:center;background:#ffffff1a;border:2px dashed rgba(255,255,255,.5);border-radius:16px;color:#ffffffe6}.file-transfer-icon svg{width:32px;height:32px}.file-transfer-text{display:flex;flex-direction:column;align-items:center;gap:.375rem;text-align:center}.file-transfer-title{font-size:1.25rem;font-weight:600;color:#fff}.file-transfer-hint{font-size:.875rem;color:#fff9}@media(max-width:560px){.file-transfer-icon{width:48px;height:48px;border-radius:12px}.file-transfer-icon svg{width:24px;height:24px}.file-transfer-title{font-size:1rem}.file-transfer-hint{font-size:.75rem}}.file-transfer-modal-overlay{position:fixed;inset:0;z-index:1500;display:flex;align-items:center;justify-content:center;background:#000000bf;backdrop-filter:blur(4px);animation:modal-fade-in .15s ease-out}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}.file-transfer-modal{width:380px;max-width:95vw;background:var(--panel-bg, #1a1a1a);border:1px solid var(--panel-border, #333);border-radius:12px;box-shadow:0 8px 32px #00000080;overflow:hidden;animation:modal-scale-in .15s ease-out}@keyframes modal-scale-in{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}.file-transfer-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--panel-border, #333)}.file-transfer-modal-header h3{margin:0;font-size:1rem;font-weight:600;color:var(--text-primary, #fff)}.file-transfer-close-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:6px;color:var(--text-secondary, #888);cursor:pointer;transition:all .15s ease}.file-transfer-close-btn:hover{background:var(--control-hover, rgba(255, 255, 255, .1));color:var(--text-primary, #fff)}.file-transfer-close-btn svg{width:16px;height:16px}.file-transfer-modal-content{padding:1.25rem}.file-transfer-progress{display:flex;flex-direction:column;gap:.5rem}.file-transfer-progress-bar{height:8px;background:var(--control-bg, #2a2a2a);border-radius:4px;overflow:hidden}.file-transfer-progress-fill{height:100%;background:var(--accent-primary, #4a9eff);border-radius:4px;transition:width .2s ease-out}@keyframes progress-pulse{0%,to{opacity:1}50%{opacity:.6}}.file-transfer-progress-text{font-size:.875rem;color:var(--text-secondary, #888);text-align:center}.file-transfer-success{display:flex;flex-direction:column;align-items:center;gap:1rem;text-align:center}.file-transfer-success-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:#50c87826;border-radius:50%;color:#50c878}.file-transfer-success-icon svg{width:24px;height:24px}.file-transfer-success-info{width:100%}.file-transfer-disk-name{margin:0 0 .25rem;font-size:1rem;font-weight:600;color:var(--text-primary, #fff)}.file-transfer-disk-size{margin:0 0 .75rem;font-size:.875rem;color:var(--text-secondary, #888)}.file-transfer-file-list{margin:0;padding:0;list-style:none;background:var(--control-bg, #2a2a2a);border-radius:8px;overflow:hidden}.file-transfer-file-list li{display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem;border-bottom:1px solid var(--panel-border, #333);font-size:.8125rem}.file-transfer-file-list li:last-child{border-bottom:none}.file-transfer-file-list .file-name{color:var(--text-primary, #fff);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-transfer-file-list .file-type{font-size:.6875rem;color:var(--text-dim, #666);font-family:monospace;flex-shrink:0;margin-left:.5rem}.file-transfer-file-list .file-list-more{justify-content:center;color:var(--text-dim, #666);font-style:italic}.file-transfer-error{display:flex;flex-direction:column;align-items:center;gap:.75rem;text-align:center}.file-transfer-error-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:#ff646426;border-radius:50%;color:#ff6464}.file-transfer-error-icon svg{width:24px;height:24px}.file-transfer-error-message{margin:0;font-size:.875rem;color:#ff6464}.file-transfer-modal-footer{display:flex;justify-content:flex-end;gap:.5rem;padding:1rem 1.25rem;border-top:1px solid var(--panel-border, #333)}.file-transfer-btn{padding:.625rem 1rem;font-size:.875rem;font-weight:500;border:none;border-radius:6px;cursor:pointer;transition:all .15s ease}.file-transfer-btn-primary{background:var(--accent-primary, #4a9eff);color:#fff}.file-transfer-btn-primary:hover{filter:brightness(1.1)}.file-transfer-btn-secondary{background:var(--control-bg, #2a2a2a);color:var(--text-secondary, #888)}.file-transfer-btn-secondary:hover{background:var(--control-hover, rgba(255, 255, 255, .1));color:var(--text-primary, #fff)}@media(max-width:560px){.file-transfer-modal{width:100%;max-width:100%;border-radius:16px 16px 0 0;position:fixed;bottom:0;animation:modal-slide-up .2s ease-out}@keyframes modal-slide-up{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.file-transfer-modal-footer{padding-bottom:max(1rem,env(safe-area-inset-bottom))}}:root{--shell-bg: #E8E2D8;--shell-bg-gradient: radial-gradient(ellipse at 50% 30%, #F0EBE3 0%, #E8E2D8 50%, #D8D2C8 100%);--housing-primary: #EDE8DF;--housing-light: #F5F2EB;--housing-lighter: #FAF8F4;--housing-dark: #D4CFC4;--housing-darker: #C4BFB4;--screen-bezel: #3A3832;--screen-inner: #1A1918;--screen-shadow: rgba(0, 0, 0, .6);--screen-radius: 8px;--control-bg: #E0DBD0;--control-border: #C8C3B8;--control-hover: #D4CFC4;--text-primary: #2A2824;--text-secondary: #5A5850;--text-dim: #8A887E;--text-on-dark: #E8E8E8;--accent-primary: #2B6CB0;--accent-secondary: #38A169;--accent-warning: #D69E2E;--accent-error: #C53030;--panel-bg: #F5F2EB;--panel-border: #D4CFC4;--card-bg: #FFFFFF;--led-power-off: #4A4840;--led-power-on: #22C55E;--led-power-glow: rgba(34, 197, 94, .5);--chamfer-size: 4px;--noise-opacity: .025;--vent-color: #2A2824;--vent-shadow: inset 0 1px 3px rgba(0, 0, 0, .7);--font-badge: "EB Garamond", Georgia, serif;--font-ui: "Geneva", "Helvetica Neue", Helvetica, sans-serif;--font-mono: "JetBrains Mono", "Monaco", "SF Mono", monospace;--font-badge-size: .8rem;--font-label-size: .625rem;--transition-fast: .12s ease;--transition-normal: .2s ease;--transition-smooth: .3s cubic-bezier(.4, 0, .2, 1)}.emulator-shell{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;min-height:100dvh;background:var(--shell-bg);background-image:var(--shell-bg-gradient);padding:2rem;font-family:var(--font-ui);color:var(--text-primary);position:relative}.emulator-shell:before{content:"";position:absolute;inset:0;background-image:var(--noise-texture, url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.025'/%3E%3C/svg%3E"));pointer-events:none;opacity:var(--noise-opacity, .025)}.emulator-housing{position:relative;background:var(--housing-primary);border-radius:20px;padding:1rem;box-shadow:inset 0 2px 0 var(--housing-lighter),inset 0 -2px 0 var(--housing-dark),inset 2px 0 0 var(--housing-light),inset -2px 0 0 var(--housing-dark),0 4px 8px #00000026,0 12px 32px #0000001a;background-image:linear-gradient(180deg,var(--housing-lighter) 0%,var(--housing-primary) 4%,var(--housing-primary) 96%,var(--housing-dark) 100%)}.emulator-housing:before{content:"";position:absolute;inset:-4px;border-radius:24px;border:4px solid transparent;border-top-color:var(--housing-lighter);border-left-color:var(--housing-light);border-right-color:var(--housing-darker);border-bottom-color:var(--housing-darker);pointer-events:none;opacity:.5}.housing-brand{display:flex;justify-content:center;padding:.75rem 0 .5rem}.brand-name{font-family:var(--font-badge);font-size:1.1rem;font-weight:500;letter-spacing:.25em;color:var(--text-secondary);text-transform:uppercase}.screen-bezel{background:var(--screen-bezel);border-radius:calc(var(--screen-radius) + 4px);padding:14px;margin:.5rem 0;position:relative;box-shadow:inset 0 4px 12px var(--screen-shadow),inset 0 0 30px #0000004d}.bezel-inner{background:var(--screen-inner);border-radius:var(--screen-radius);padding:8px;box-shadow:inset 0 0 30px #0009,0 0 0 1px #ffffff05}.crt-frame{position:relative;width:calc(var(--screen-width, 800px) * var(--display-scale, 1));height:calc(var(--screen-height, 600px) * var(--display-scale, 1));border-radius:calc(var(--screen-radius) - 4px);overflow:hidden;background:#000}.crt-frame canvas{display:block;cursor:none}.power-off-screen,.loading-placeholder{width:calc(var(--screen-width, 800px) * var(--display-scale, 1));height:calc(var(--screen-height, 600px) * var(--display-scale, 1));display:flex;flex-direction:column;align-items:center;justify-content:center;background:#000;color:var(--text-dim);font-family:var(--font-mono);font-size:.875rem;letter-spacing:.1em;text-transform:uppercase}.loading-placeholder .retry-btn{margin-top:16px;padding:8px 16px;background:#ffffff1a;border:1px solid rgba(255,255,255,.3);border-radius:4px;color:#fff;cursor:pointer;font-family:var(--font-mono);font-size:.75rem;text-transform:uppercase;letter-spacing:.05em}.loading-placeholder .retry-btn:hover{background:#ffffff26}.loading-placeholder .retry-btn:active{background:#fff3}.crt-overlay{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at center,transparent 0%,transparent 70%,rgba(0,0,0,.12) 100%)}.crt-scanlines{position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,transparent 0px,transparent 1px,rgba(0,0,0,.08) 1px,rgba(0,0,0,.08) 2px);opacity:.35}.control-strip{position:relative;display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:var(--control-bg);border:1px solid var(--control-border);border-radius:10px;margin-top:.625rem;box-shadow:inset 0 1px #ffffff80,inset 0 -1px #0000000d,0 1px 2px #0000000d}.status-cluster{display:flex;gap:1rem}.center-controls{position:absolute;left:50%;transform:translate(-50%);display:flex;align-items:center;justify-content:center}.status-led{display:flex;flex-direction:column;align-items:center;gap:.25rem}.status-led .led-glow{width:8px;height:8px;border-radius:50%;background:var(--led-power-off);box-shadow:inset 0 1px 2px #00000080;transition:all .05s ease}.status-led.on .led-glow,.status-led.active .led-glow{background:var(--led-power-on);box-shadow:0 0 8px var(--led-power-glow),0 0 16px var(--led-power-glow),inset 0 -1px 2px #0003}.status-led.connected .led-glow{background:var(--led-network-connected, var(--led-power-on));box-shadow:0 0 4px var(--led-network-glow, var(--led-power-glow)),0 0 8px var(--led-network-glow, var(--led-power-glow))}.status-led.hd-led .led-glow{background:#2a1a0a;box-shadow:inset 0 1px 2px #00000080}.status-led.hd-led.active .led-glow{--glow-mult: calc(.4 + var(--led-intensity, 0) * .6);background:#e67e22;box-shadow:0 0 calc(6px * var(--glow-mult)) rgba(230,126,34,calc(.5 * var(--glow-mult))),0 0 calc(12px * var(--glow-mult)) rgba(230,126,34,calc(.3 * var(--glow-mult))),inset 0 -1px 2px #0003}.status-led.tx-led .led-glow{background:#3d2a0a;box-shadow:inset 0 1px 2px #00000080}.status-led.tx-led.active .led-glow{--glow-mult: calc(.4 + var(--led-intensity, 0) * .6);background:#f59e0b;box-shadow:0 0 calc(6px * var(--glow-mult)) rgba(245,158,11,calc(.5 * var(--glow-mult))),0 0 calc(12px * var(--glow-mult)) rgba(245,158,11,calc(.3 * var(--glow-mult))),inset 0 -1px 2px #0003}.status-led.rx-led .led-glow{background:#0a2a14;box-shadow:inset 0 1px 2px #00000080}.status-led.rx-led.active .led-glow{--glow-mult: calc(.4 + var(--led-intensity, 0) * .6);background:#22c55e;box-shadow:0 0 calc(6px * var(--glow-mult)) rgba(34,197,94,calc(.5 * var(--glow-mult))),0 0 calc(12px * var(--glow-mult)) rgba(34,197,94,calc(.3 * var(--glow-mult))),inset 0 -1px 2px #0003}.status-led .led-label{font-family:var(--font-mono);font-size:var(--font-label-size);font-weight:600;letter-spacing:.05em;color:var(--text-dim);text-transform:uppercase}.control-buttons{display:flex;align-items:center;gap:.75rem}.control-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--housing-primary);border:1px solid var(--control-border);border-radius:6px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);box-shadow:inset 0 1px 0 var(--housing-lighter),0 1px 2px #0000001a}.control-btn:hover{background:var(--control-hover);color:var(--text-primary)}.control-btn:active{box-shadow:inset 0 1px 3px #00000026;transform:translateY(1px)}.control-btn svg{width:16px;height:16px}.power-btn:hover{color:var(--accent-error)}.theme-btn:hover{color:var(--accent-primary)}@media(max-width:700px){.emulator-shell{padding:.5rem;padding-top:max(.5rem,env(safe-area-inset-top));padding-bottom:max(.5rem,env(safe-area-inset-bottom))}.emulator-housing{padding:.5rem;border-radius:12px}.screen-bezel{padding:8px;margin:.25rem 0}.bezel-inner{padding:4px}.control-strip{flex-wrap:wrap;gap:.5rem;padding:.5rem}.housing-brand{padding:.5rem 0 .25rem}.brand-name{font-size:.9rem}}@media(max-width:400px){.emulator-shell{padding:.25rem}.emulator-housing{padding:.25rem;border-radius:8px}.screen-bezel{padding:4px;border-radius:6px}.bezel-inner{padding:2px}.control-strip{padding:.25rem .5rem}.status-cluster{gap:.5rem}}.theme-dark .emulator-housing{box-shadow:0 2px 4px #0000004d,0 8px 24px #0006,inset 0 1px #ffffff08;background-image:none}.theme-dark .emulator-housing:before{display:none}.theme-dark .control-strip{box-shadow:none;border:1px solid var(--control-border)}.theme-dark .control-btn{box-shadow:none}.fullscreen-btn{position:relative}.fullscreen-btn:hover,.keyboard-lock-btn:hover{color:var(--accent-primary)}.keyboard-lock-btn.locked{color:var(--accent-secondary);background:#22c55e1a;border-color:var(--accent-secondary)}.emulator-shell.fullscreen-mode{padding:1rem}.emulator-shell.fullscreen-mode .emulator-housing{display:flex;flex-direction:column;align-items:center;margin:auto;box-shadow:inset 0 2px 0 var(--housing-lighter),inset 0 -2px 0 var(--housing-dark),inset 2px 0 0 var(--housing-light),inset -2px 0 0 var(--housing-dark),0 8px 32px #0000004d,0 24px 64px #0003,0 0 120px #00000026}.emulator-shell.fullscreen-mode .control-strip{flex:0 0 auto;width:100%;box-sizing:border-box}.theme-dark.fullscreen-mode .emulator-housing{box-shadow:0 8px 32px #00000080,0 24px 64px #0006,0 0 120px #0000004d,inset 0 1px #ffffff05}@media(max-height:700px){.emulator-shell.fullscreen-mode .housing-brand{padding:.25rem 0}.emulator-shell.fullscreen-mode .brand-name{font-size:.9rem}.emulator-shell.fullscreen-mode .control-strip{padding:.5rem}}.trackpad{--trackpad-bg: var(--housing-dark, #3A3836);--trackpad-border: var(--housing-darker, #2A2826);--trackpad-surface: var(--control-bg, #3E3C3A);position:relative;flex:1;width:100%;max-width:100%;min-height:60px;margin:0 auto;padding:8px;border-radius:12px;background:var(--trackpad-bg);box-shadow:inset 0 2px 4px #0003,inset 0 0 0 1px #00000026,0 1px #ffffff0d;touch-action:none;-webkit-touch-callout:none!important;-webkit-user-select:none!important;-webkit-user-drag:none;-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:none;user-select:none!important;outline:none;-webkit-focus-ring-color:transparent;transition:transform 80ms ease-out,box-shadow 80ms ease-out}.trackpad,.trackpad *,.trackpad *:before,.trackpad *:after{-webkit-touch-callout:none!important;-webkit-user-select:none!important;-webkit-user-drag:none;user-select:none!important;outline:none}.trackpad:focus{outline:none}.trackpad--disabled{opacity:.5;pointer-events:none}.trackpad--drag-held{box-shadow:inset 0 2px 4px #0003,inset 0 0 0 1px #00000026,inset 0 0 12px #ffffff14,0 1px #ffffff0d}.trackpad--drag-held .trackpad__surface{animation:trackpad-hold-pulse .8s ease-in-out infinite}@keyframes trackpad-hold-pulse{0%,to{box-shadow:inset 0 1px 3px #00000026,inset 0 0 0 1px #0000001a,inset 0 0 6px #ffffff0f}50%{box-shadow:inset 0 1px 3px #00000026,inset 0 0 0 1px #0000001a,inset 0 0 10px #ffffff1f}}@media(prefers-reduced-motion:reduce){.trackpad--drag-held .trackpad__surface{animation:none;box-shadow:inset 0 1px 3px #00000026,inset 0 0 0 1px #0000001a,inset 0 0 8px #ffffff1a}}.trackpad__surface{position:absolute;inset:8px;border-radius:8px;background:var(--trackpad-surface);box-shadow:inset 0 1px 3px #00000026,inset 0 0 0 1px #0000001a;background-image:radial-gradient(circle at center,transparent 0%,rgba(0,0,0,.02) 100%)}@media(orientation:landscape)and (max-height:500px){.trackpad{padding:6px}}@media(max-width:360px){.trackpad{padding:6px}.trackpad__surface{inset:6px}}@media(max-width:360px){.trackpad--compact{padding:4px}.trackpad--compact .trackpad__surface{inset:4px}}@media(min-width:768px){.trackpad{padding:12px;border-radius:16px}.trackpad__surface{inset:12px;border-radius:10px}}@media(min-width:1024px){.trackpad{padding:14px;border-radius:18px}.trackpad__surface{inset:14px;border-radius:12px}}@media(min-width:1200px){.trackpad{padding:16px;border-radius:20px}.trackpad__surface{inset:16px;border-radius:14px}}@media(min-width:768px)and (orientation:landscape){.trackpad{padding:10px;border-radius:14px}.trackpad__surface{inset:10px;border-radius:8px}}@media(min-width:1024px)and (orientation:landscape){.trackpad{padding:12px;border-radius:16px}.trackpad__surface{inset:12px;border-radius:10px}}@media(min-width:1200px)and (orientation:landscape){.trackpad{padding:14px;border-radius:18px}.trackpad__surface{inset:14px;border-radius:12px}}.virtual-keyboard{width:100%;padding:2px 4px;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;-webkit-user-drag:none;touch-action:none}.virtual-keyboard *{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.virtual-keyboard--disabled{opacity:.5;pointer-events:none}.vk-keyboard{display:flex;flex-direction:column;gap:4px}.vk-row{display:flex;justify-content:center;gap:3px}.vk-key{flex:1;min-width:0;height:38px;max-width:44px;display:flex;align-items:center;justify-content:center;padding:0 2px;background:var(--housing-primary);border:1px solid var(--housing-dark);border-radius:4px;color:var(--text-secondary);font-family:var(--font-mono, "JetBrains Mono", monospace);font-size:11px;font-weight:500;letter-spacing:.02em;box-shadow:inset 0 1px #ffffff26,0 2px 0 var(--housing-darker),0 3px 2px #0003;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform 40ms ease,box-shadow 40ms ease,background 40ms ease}.vk-key:active,.vk-key--pressed{transform:translateY(2px);box-shadow:inset 0 1px #ffffff14,0 0 0 var(--housing-darker);background:var(--housing-dark)}.vk-key--letter{text-transform:uppercase}.vk-key--special,.vk-key--modifier{background:var(--control-bg);font-size:9px;letter-spacing:.05em}.vk-key--modifier.vk-key--active{background:var(--accent-primary);color:var(--text-on-dark);border-color:var(--accent-primary);box-shadow:inset 0 1px #fff3,0 2px #4a90d980,0 0 8px #4a90d94d}.vk-key--action{background:var(--housing-dark);font-size:9px;font-weight:600;letter-spacing:.05em}.vk-row--utility{margin-bottom:1px;padding-bottom:2px;border-bottom:1px solid var(--housing-dark)}.vk-key--utility{background:var(--housing-light);font-size:8px;font-weight:600;letter-spacing:.03em;height:32px}.vk-key--space{max-width:none;min-width:120px}.vk-arrows-overlay{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:12px;background:var(--housing-dark);border-radius:8px;min-height:140px}.vk-arrows-grid{display:flex;flex-direction:column;gap:4px}.vk-arrows-row{display:flex;justify-content:center;gap:4px}.vk-arrow-spacer{width:48px;height:44px}.vk-key--arrow{width:48px;height:44px;max-width:none;font-size:10px;font-weight:600}.vk-arrows-close{margin-top:8px;padding:6px 16px;background:var(--housing-dark);border:1px solid var(--housing-darker);border-radius:4px;color:var(--text-secondary);font-family:var(--font-mono, monospace);font-size:10px;font-weight:600;cursor:pointer}.vk-arrows-close:active{background:var(--housing-darker)}@media(max-width:360px){.vk-key{height:34px;font-size:10px}.vk-key--special,.vk-key--modifier,.vk-key--action{font-size:8px}.vk-row{gap:2px}.vk-keyboard{gap:3px}}@media(min-width:430px){.vk-key{height:42px;max-width:48px;font-size:12px}.vk-key--special,.vk-key--modifier,.vk-key--action{font-size:10px}.vk-row{gap:4px}.vk-keyboard{gap:5px}}@media(orientation:landscape)and (max-height:500px){.vk-key{height:32px;font-size:10px}.vk-key--special,.vk-key--modifier,.vk-key--action{font-size:8px}.vk-keyboard,.vk-row{gap:2px}}@keyframes keyboard-letter-sweep{0%{color:var(--text-secondary);text-shadow:none}20%{color:#fff;text-shadow:0 0 4px rgba(255,255,255,.8),0 0 8px rgba(255,255,255,.4),0 0 12px rgba(255,255,255,.2)}to{color:#ffffffd9;text-shadow:0 0 3px rgba(255,255,255,.5),0 0 6px rgba(255,255,255,.2)}}@keyframes keyboard-letter-sweep-green{0%{color:var(--text-secondary);text-shadow:none}20%{color:#c8ffdc;text-shadow:0 0 4px rgba(0,255,136,.8),0 0 8px rgba(0,255,136,.4),0 0 12px rgba(0,255,136,.2)}to{color:#c8ffdce6;text-shadow:0 0 3px rgba(0,255,136,.4),0 0 6px rgba(0,255,136,.15)}}@keyframes keyboard-letter-breathe{0%,to{text-shadow:0 0 3px rgba(255,255,255,.5),0 0 6px rgba(255,255,255,.2)}50%{text-shadow:0 0 2px rgba(255,255,255,.35),0 0 4px rgba(255,255,255,.1)}}@keyframes keyboard-letter-breathe-green{0%,to{text-shadow:0 0 3px rgba(0,255,136,.4),0 0 6px rgba(0,255,136,.15)}50%{text-shadow:0 0 2px rgba(0,255,136,.25),0 0 4px rgba(0,255,136,.08)}}.theme-powerbook .vk-key[data-backlit=true]{color:#ffffffd9;text-shadow:0 0 3px rgba(255,255,255,.5),0 0 6px rgba(255,255,255,.2)}.theme-dark .vk-key[data-backlit=true]{color:#c8ffdce6;text-shadow:0 0 3px rgba(0,255,136,.4),0 0 6px rgba(0,255,136,.15)}.theme-powerbook .vk-key[data-loading=true]{animation:keyboard-letter-sweep .6s ease-out forwards;animation-delay:var(--key-stagger, 0ms);color:var(--text-secondary);text-shadow:none}.theme-dark .vk-key[data-loading=true]{animation:keyboard-letter-sweep-green .6s ease-out forwards;animation-delay:var(--key-stagger, 0ms);color:var(--text-secondary);text-shadow:none}.theme-powerbook .virtual-keyboard[data-system-state=ready] .vk-key[data-backlit=true]{animation:keyboard-letter-breathe 4s ease-in-out infinite}.theme-dark .virtual-keyboard[data-system-state=ready] .vk-key[data-backlit=true]{animation:keyboard-letter-breathe-green 4s ease-in-out infinite}.theme-powerbook .vk-key[data-backlit=true].vk-key--pressed,.theme-powerbook .vk-key[data-backlit=true]:active{color:#ffffff80;text-shadow:0 0 2px rgba(255,255,255,.2)}.theme-dark .vk-key[data-backlit=true].vk-key--pressed,.theme-dark .vk-key[data-backlit=true]:active{color:#c8ffdc80;text-shadow:0 0 2px rgba(0,255,136,.15)}.theme-powerbook .vk-key[data-backlit=true].vk-key--active{color:#fff;text-shadow:0 0 4px rgba(255,255,255,.7),0 0 8px rgba(255,255,255,.3)}.theme-dark .vk-key[data-backlit=true].vk-key--active{color:#c8ffdc;text-shadow:0 0 4px rgba(0,255,136,.6),0 0 8px rgba(0,255,136,.25)}@media(prefers-reduced-motion:reduce){.theme-powerbook .vk-key[data-loading=true],.theme-dark .vk-key[data-loading=true],.theme-powerbook .virtual-keyboard[data-system-state=ready] .vk-key[data-backlit=true],.theme-dark .virtual-keyboard[data-system-state=ready] .vk-key[data-backlit=true]{animation:none}}@media(min-width:768px){.virtual-keyboard{padding:4px 8px}.vk-keyboard{gap:6px}.vk-row{gap:5px}.vk-key{height:48px;max-width:56px;font-size:14px;border-radius:6px}.vk-key--special,.vk-key--modifier,.vk-key--action{font-size:11px}.vk-key--utility{height:38px;font-size:10px}.vk-key--space{min-width:160px}.vk-arrows-overlay{gap:12px;padding:16px;min-height:180px}.vk-arrows-grid,.vk-arrows-row{gap:6px}.vk-arrow-spacer{width:56px;height:52px}.vk-key--arrow{width:56px;height:52px;font-size:12px}.vk-arrows-close{padding:8px 20px;font-size:12px}}@media(min-width:1024px){.virtual-keyboard{padding:6px 12px}.vk-keyboard{gap:7px}.vk-row{gap:6px}.vk-key{height:52px;max-width:60px;font-size:15px;border-radius:7px}.vk-key--special,.vk-key--modifier,.vk-key--action{font-size:12px}.vk-key--utility{height:42px;font-size:11px}.vk-key--space{min-width:180px}.vk-arrow-spacer{width:60px;height:56px}.vk-key--arrow{width:60px;height:56px;font-size:13px}}@media(min-width:1200px){.vk-keyboard{gap:8px}.vk-row{gap:7px}.vk-key{height:56px;max-width:64px;font-size:16px;border-radius:8px}.vk-key--special,.vk-key--modifier,.vk-key--action{font-size:13px}.vk-key--utility{height:44px;font-size:12px}.vk-key--space{min-width:200px}}@media(min-width:768px)and (orientation:landscape){.virtual-keyboard{padding:2px 4px}.vk-keyboard,.vk-row{gap:4px}.vk-key{height:42px;max-width:48px;font-size:12px}.vk-key--special,.vk-key--modifier,.vk-key--action{font-size:10px}.vk-key--utility{height:34px;font-size:9px}.vk-key--space{min-width:120px}}@media(min-width:1024px)and (orientation:landscape){.virtual-keyboard{padding:4px 6px}.vk-keyboard,.vk-row{gap:5px}.vk-key{height:46px;max-width:52px;font-size:13px}.vk-key--special,.vk-key--modifier,.vk-key--action{font-size:11px}.vk-key--utility{height:36px;font-size:10px}.vk-key--space{min-width:140px}}@media(min-width:1200px)and (orientation:landscape){.virtual-keyboard{padding:6px 8px}.vk-keyboard,.vk-row{gap:6px}.vk-key{height:50px;max-width:56px;font-size:14px}.vk-key--special,.vk-key--modifier,.vk-key--action{font-size:12px}.vk-key--utility{height:40px;font-size:11px}.vk-key--space{min-width:160px}}.laptop-shell{display:flex;flex-direction:column;min-height:100dvh;max-height:100dvh;background:var(--shell-bg, #3A3836);overflow:hidden;padding-top:env(safe-area-inset-top);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.laptop-screen-area{flex-shrink:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:8px 8px 4px;overflow:hidden}.laptop-screen-bezel{background:var(--screen-bezel, #1A1918);padding:6px;border-radius:var(--screen-radius, 6px);box-shadow:inset 0 2px 8px #00000080,0 2px 4px #0000004d;width:100%;max-height:100%}.laptop-screen-inner{position:relative;width:100%;max-width:640px;max-height:100%;aspect-ratio:640 / 480;margin:0 auto;background:var(--screen-inner, #0A0909);border-radius:2px;overflow:hidden}.laptop-screen-inner canvas{display:block;width:100%;height:100%;object-fit:contain;image-rendering:pixelated}.laptop-screen-inner--glide{width:100%;max-width:none;max-height:none;aspect-ratio:640 / 480;overflow:visible;transition:transform .05s ease-out}.laptop-screen-inner--glide canvas{width:100%;height:100%}.laptop-power-off{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text-dim, #787674);font-size:14px;background:var(--screen-inner, #0A0909)}.laptop-loading-placeholder{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text-dim, #787674);font-size:14px;background:var(--screen-inner, #0A0909)}.laptop-retry-btn{margin-top:16px;padding:8px 16px;background:#ffffff1a;border:1px solid rgba(255,255,255,.3);border-radius:4px;color:#fff;cursor:pointer}.laptop-retry-btn:active{background:#fff3}.laptop-control-strip{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:4px 12px;background:var(--control-bg, #3E3C3A);border-top:1px solid var(--housing-dark, #2A2826);border-bottom:1px solid var(--housing-dark, #2A2826);gap:8px;width:100%}.laptop-status-cluster{display:flex;gap:10px}.laptop-status-led{display:flex;flex-direction:column;align-items:center;gap:2px}.laptop-status-led .led-glow{width:6px;height:6px;border-radius:50%;background:var(--led-power-off, #4A4840);box-shadow:inset 0 1px 2px #00000080;transition:all .05s ease}.laptop-status-led .led-label{font-family:var(--font-mono, "JetBrains Mono", monospace);font-size:8px;font-weight:600;letter-spacing:.02em;color:var(--text-dim, #787674);text-transform:uppercase}.laptop-status-led.power-led.on .led-glow{background:var(--led-power-on, #22C55E);box-shadow:0 0 6px var(--led-power-glow, rgba(34, 197, 94, .5)),0 0 12px var(--led-power-glow, rgba(34, 197, 94, .3)),inset 0 -1px 2px #0003}.laptop-status-led.hd-led .led-glow{background:#2a1a0a}.laptop-status-led.hd-led.active .led-glow{--glow-mult: calc(.4 + var(--led-intensity, 0) * .6);background:#e67e22;box-shadow:0 0 calc(4px * var(--glow-mult)) rgba(230,126,34,calc(.5 * var(--glow-mult))),0 0 calc(8px * var(--glow-mult)) rgba(230,126,34,calc(.3 * var(--glow-mult))),inset 0 -1px 2px #0003}.laptop-status-led.tx-led .led-glow{background:#3d2a0a}.laptop-status-led.tx-led.active .led-glow{--glow-mult: calc(.4 + var(--led-intensity, 0) * .6);background:#f59e0b;box-shadow:0 0 calc(4px * var(--glow-mult)) rgba(245,158,11,calc(.5 * var(--glow-mult))),0 0 calc(8px * var(--glow-mult)) rgba(245,158,11,calc(.3 * var(--glow-mult))),inset 0 -1px 2px #0003}.laptop-status-led.rx-led .led-glow{background:#0a2a14}.laptop-status-led.rx-led.active .led-glow{--glow-mult: calc(.4 + var(--led-intensity, 0) * .6);background:#22c55e;box-shadow:0 0 calc(4px * var(--glow-mult)) rgba(34,197,94,calc(.5 * var(--glow-mult))),0 0 calc(8px * var(--glow-mult)) rgba(34,197,94,calc(.3 * var(--glow-mult))),inset 0 -1px 2px #0003}.laptop-audio-controls{display:flex;align-items:center;gap:8px}.laptop-action-buttons{display:flex;gap:6px}.laptop-action-btn{width:32px;height:32px;border:none;border-radius:6px;background:var(--housing-primary, #4A4846);color:var(--text-secondary, #A8A6A4);cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 2px #0003,inset 0 1px #ffffff14;transition:background .1s ease,transform 80ms ease}.laptop-action-btn:active{background:var(--control-hover, #3E3C3A);transform:scale(.95)}.laptop-action-btn--active{background:var(--accent-primary, #4A90D9);color:#fff;box-shadow:0 0 6px #4a90d966,inset 0 1px #fff3}.laptop-action-btn--active:active{background:var(--accent-primary, #4A90D9)}.laptop-action-btn svg{width:16px;height:16px}.laptop-keyboard-area{flex-shrink:0;padding:0 8px;background:var(--housing-primary, #4A4846)}.laptop-trackpad-area{flex:1;display:flex;flex-direction:column;min-height:80px;padding:4px 12px;padding-bottom:max(4px,env(safe-area-inset-bottom));background:var(--housing-primary, #4A4846);border-top:1px solid var(--housing-dark, #2A2826)}@media(max-height:700px)and (orientation:portrait){.laptop-screen-area,.laptop-screen-bezel{padding:4px}.laptop-control-strip{padding:4px 8px}.laptop-keyboard-area{padding:2px 6px}.laptop-trackpad-area{padding:4px 8px;padding-bottom:max(4px,env(safe-area-inset-bottom))}.laptop-status-cluster{gap:6px}.laptop-status-led .led-label{font-size:7px}}@media(orientation:landscape){.laptop-shell{flex-direction:row}.laptop-screen-area{flex:1;padding:8px;max-height:100dvh}.laptop-screen-bezel{max-width:calc(100% - 8px);max-height:calc(100% - 8px)}.laptop-control-strip{position:absolute;bottom:0;left:0;right:0;width:auto;flex-direction:row;align-items:center;justify-content:space-between;gap:12px;padding:6px 12px;border-top:1px solid var(--housing-dark, #2A2826);border-left:none;border-radius:0}.laptop-status-cluster{justify-content:flex-start}.laptop-audio-controls{justify-content:center}.laptop-action-buttons{justify-content:flex-end}.laptop-keyboard-area{position:absolute;top:0;right:0;width:280px;height:calc(100% - 100px);padding:8px;border-top:none;border-left:1px solid var(--housing-dark, #2A2826);overflow-y:auto}.laptop-trackpad-area{display:none}.laptop-trackpad-area .trackpad{height:100%;max-width:none}}@media(max-height:500px)and (orientation:landscape){.laptop-control-strip{padding:4px 8px}.laptop-keyboard-area{width:240px;padding:4px}}@media(min-width:768px){.laptop-screen-inner{max-width:720px}.laptop-screen-area{padding:16px 16px 8px}.laptop-screen-bezel{padding:10px;border-radius:10px}.laptop-control-strip{padding:8px 20px;gap:12px}.laptop-status-cluster{gap:14px}.laptop-status-led .led-glow{width:8px;height:8px}.laptop-status-led .led-label{font-size:9px;margin-top:4px}.laptop-action-btn{width:40px;height:40px;border-radius:8px}.laptop-action-btn svg{width:20px;height:20px}.laptop-action-buttons{gap:10px}.laptop-keyboard-area{padding:4px 16px}.laptop-trackpad-area{min-height:140px;padding:8px 20px;padding-bottom:max(8px,env(safe-area-inset-bottom))}}@media(min-width:1024px){.laptop-screen-inner{max-width:800px}.laptop-screen-area{padding:20px 20px 12px}.laptop-screen-bezel{padding:12px;border-radius:12px}.laptop-control-strip{padding:10px 24px;gap:16px}.laptop-status-cluster{gap:18px}.laptop-status-led .led-glow{width:10px;height:10px}.laptop-status-led .led-label{font-size:10px}.laptop-action-btn{width:44px;height:44px}.laptop-action-btn svg{width:22px;height:22px}.laptop-keyboard-area{padding:6px 24px}.laptop-trackpad-area{min-height:160px;padding:12px 24px;padding-bottom:max(12px,env(safe-area-inset-bottom))}}@media(min-width:1200px){.laptop-screen-inner{max-width:880px}.laptop-control-strip{padding:12px 32px}.laptop-trackpad-area{min-height:180px;padding:16px 32px;padding-bottom:max(16px,env(safe-area-inset-bottom))}}@media(min-width:768px)and (orientation:landscape){.laptop-shell{flex-direction:row}.laptop-screen-area{flex:1;padding:16px;max-height:100dvh}.laptop-screen-bezel{max-width:calc(100% - 16px);max-height:calc(100% - 16px)}.laptop-control-strip{position:absolute;bottom:0;left:0;right:0;width:auto;flex-direction:row;align-items:center;justify-content:space-between;border-top:1px solid var(--housing-dark, #2A2826);border-left:none;border-radius:0}.laptop-keyboard-area{position:absolute;top:0;right:0;width:320px;height:calc(100% - 60px);padding:12px;border-top:none;border-left:1px solid var(--housing-dark, #2A2826);overflow-y:auto;display:flex;flex-direction:column}.laptop-trackpad-area{display:flex;position:absolute;top:auto;bottom:60px;right:0;width:320px;min-height:100px;max-height:140px;border-left:1px solid var(--housing-dark, #2A2826);border-top:1px solid var(--housing-dark, #2A2826);padding:8px 12px}.laptop-trackpad-area .trackpad{height:100%;max-width:none}}@media(min-width:1024px)and (orientation:landscape){.laptop-keyboard-area{width:360px;padding:16px;height:calc(100% - 70px)}.laptop-trackpad-area{width:360px;min-height:120px;max-height:160px;bottom:70px;padding:10px 16px}.laptop-screen-bezel{max-width:calc(100% - 24px);max-height:calc(100% - 24px)}.laptop-control-strip{padding:12px 24px}}@media(min-width:1200px)and (orientation:landscape){.laptop-keyboard-area{width:400px;padding:20px;height:calc(100% - 80px)}.laptop-trackpad-area{width:400px;min-height:140px;max-height:180px;bottom:80px;padding:12px 20px}.laptop-control-strip{padding:14px 32px}}.disk-drive{display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .1s ease}.disk-drive:hover{transform:translateY(-1px)}.disk-drive.drag-over{transform:translateY(-2px)}.drive-slot{position:relative;width:160px;height:10px;background:var(--housing-darker, #B4AFA4);border-radius:2px;box-shadow:inset 0 2px 3px #0006,inset 0 0 0 1px #0003,0 1px #ffffff4d}.drive-slot-inner{position:absolute;top:2px;left:10px;right:20px;height:6px;background:#0a0a0a;border-radius:1px;box-shadow:inset 0 1px 2px #000c}.drive-eject-hole{position:absolute;top:50%;right:7px;transform:translateY(-50%);width:4px;height:4px;border-radius:50%;background:#1a1a1a;box-shadow:inset 0 .5px 1px #0009}.disk-drive.drag-over .drive-slot{box-shadow:inset 0 2px 3px #0006,inset 0 0 0 1px var(--accent-primary, #2B6CB0),0 0 8px #2b6cb04d}.theme-dark .drive-slot{background:var(--housing-dark, #2A2A2A);box-shadow:inset 0 2px 3px #0009,inset 0 0 0 1px #0006,0 1px #ffffff0d}
