@font-face{font-family:Inter;font-style:normal;font-weight:100 900;src:url(/fonts/Inter-var.woff2) format("woff2");font-display:swap}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 900;src:url(/fonts/JetBrainsMono-var.woff2) format("woff2");font-display:swap}:root{--color-bg: #05050a;--color-white: #ffffff;--color-text: #ffffff;--color-text-muted: rgba(255, 255, 255, .78);--color-accent: #0a84ff;--color-accent-hover: #3395ff;--color-success: #4aff8a;--color-error: #ff4a4a;--color-warning: #ffaa4a;--color-focus: #4a9eff;--control-bg: rgba(10, 11, 15, .86);--control-bg-hover: rgba(20, 20, 35, .95);--control-border: rgba(255, 255, 255, .12);--control-border-active: rgba(74, 158, 255, .5);--touch-target-min: 40px;--control-padding: 16px;--control-gap: 7px;--control-radius: 12px;--panel-width: clamp(300px, 22vw, 390px);--transition-fast: .15s ease;--transition-normal: .3s ease;--safe-area-top: env(safe-area-inset-top, 0);--safe-area-right: env(safe-area-inset-right, 0);--safe-area-bottom: env(safe-area-inset-bottom, 0);--safe-area-left: env(safe-area-inset-left, 0)}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;width:100%;height:100%;overflow:hidden;background-color:#fff;color:var(--color-text);font-family:Inter,-apple-system,BlinkMacSystemFont,SF Pro Display,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;user-select:none;-webkit-user-select:none}#app{position:relative;width:100%;height:100%}#vessel-canvas{position:absolute;top:0;left:0;width:100%;height:100%;display:block;z-index:1}.ui-axes-overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:40;pointer-events:none}.bg-slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:opacity .7s ease}.bg-media{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;z-index:0;pointer-events:none}.ui-controls{position:absolute;bottom:calc(var(--control-padding) + var(--safe-area-bottom));left:calc(50% - var(--panel-width) - 5vw);transform:translate(0);display:flex;flex-direction:column;gap:var(--control-gap);pointer-events:auto;background:var(--control-bg);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,.07);box-shadow:0 16px 44px #00000080;border-radius:var(--control-radius);padding:calc(var(--control-padding) * .6) calc(var(--control-padding) * .6) 18px;width:var(--panel-width);max-width:92vw;max-height:min(calc(100vh - 24px),560px);font-size:11px;overflow-y:auto;overflow-x:hidden;scroll-padding-bottom:18px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.2) transparent;transition:opacity var(--transition-normal),transform var(--transition-normal);z-index:100}.ui-controls::-webkit-scrollbar{width:8px}.ui-controls::-webkit-scrollbar-thumb{background:#ffffff29;border-radius:999px}.ui-controls::-webkit-scrollbar-track{background:transparent}.ui-controls.hidden{opacity:0;transform:translate(-16px);pointer-events:none}.ui-controls.visible{opacity:1;transform:translate(0)}.ui-controls.dimmed>*:not(.ui-source-selector):not(.ui-actions):not(.ui-status-region):not(.ui-footer):not(.ui-help-overlay){opacity:.55}.ui-status-region{text-align:center;padding:2px 0 4px;border-bottom:1px solid var(--control-border);margin-bottom:2px}.ui-status-text{font-size:12px;font-weight:400;letter-spacing:.02em;color:#ffffffeb;transition:color var(--transition-fast)}.ui-status-text.success{color:var(--color-success)}.ui-status-text.error{color:var(--color-error)}.ui-status-text.info{color:var(--color-text-muted)}.ui-meter-container{padding:2px 0}.ui-meter-track{width:100%;height:10px;background:#ffffff1f;border-radius:5px;overflow:hidden}.ui-meter-fill{height:100%;background:var(--color-success);border-radius:5px;transition:width .05s linear}.ui-meter-fill.clip{background:var(--color-success)}.ui-group{display:flex;flex-direction:column;gap:4px}.ui-group-label{font-size:11px;color:#ffffffe6;text-transform:uppercase;letter-spacing:.08em;font-weight:400}.ui-collapsible-head{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:7px 4px;margin-bottom:3px;background:none;border:none;border-bottom:1px solid var(--color-border, rgba(255,255,255,.18));border-radius:6px;cursor:pointer;font-size:11px;font-family:inherit;color:var(--color-text, #fff);text-transform:uppercase;letter-spacing:1px;font-weight:500;text-align:left;transition:background .15s ease,color .15s ease}.ui-collapsible-head:hover,.ui-collapsible-head:focus-visible{background:var(--color-surface-hover, rgba(255,255,255,.1));color:var(--color-accent, #5aa9e6);outline:none}.ui-collapsible-head:active{background:var(--color-surface-hover, rgba(255,255,255,.18))}.ui-collapsible-head .ui-collapsible-title{display:inline-flex;align-items:center;gap:6px}.ui-collapsible-chevron{flex:0 0 auto;padding:0 2px;font-size:14px;line-height:1;font-weight:500;opacity:.9;color:var(--color-accent, #5aa9e6);transform:translateY(-1px)}.ui-section-reset{flex:0 0 auto;margin-left:8px;padding:1px 6px;font-size:10px;font-family:inherit;border:1px solid var(--color-border, rgba(255,255,255,.2));border-radius:5px;background:transparent;color:var(--color-text-muted, #aaa);cursor:pointer;text-transform:none;letter-spacing:0;font-weight:400;transition:background .15s ease,color .15s ease}.ui-section-reset:hover{background:var(--color-surface-hover, rgba(255,255,255,.12));color:var(--color-text, #fff)}.ui-preset-name{flex:1;min-width:0;padding:6px 8px;font-size:13px;font-family:inherit;color:var(--color-text, #fff);background:var(--color-surface, rgba(255,255,255,.06));border:1px solid var(--color-border, rgba(255,255,255,.18));border-radius:6px}.ui-preset-btn-action{flex:0 0 auto;padding:6px 10px;font-size:12px;font-family:inherit;border:1px solid var(--color-border, rgba(255,255,255,.2));border-radius:6px;background:var(--color-surface, rgba(255,255,255,.08));color:var(--color-text, #fff);cursor:pointer}.ui-preset-btn-action:hover{background:var(--color-surface-hover, rgba(255,255,255,.14))}.ui-preset-list{display:flex;flex-direction:column;gap:4px;margin-top:6px;max-height:160px;overflow-y:auto}.ui-preset-empty{font-size:12px;color:var(--color-text-muted, #999);padding:4px 2px}.ui-preset-item{display:flex;align-items:center;gap:6px}.ui-preset-apply{flex:1;min-width:0;text-align:left;padding:5px 8px;font-size:12px;font-family:inherit;border:1px solid var(--color-border, rgba(255,255,255,.18));border-radius:6px;background:transparent;color:var(--color-text, #fff);cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-preset-apply:hover{background:var(--color-surface-hover, rgba(255,255,255,.12))}.ui-preset-delete{flex:0 0 auto;width:26px;height:26px;font-size:14px;line-height:1;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--color-text-muted, #999);cursor:pointer}.ui-preset-delete:hover{color:#ff7b7b;background:#ff50501f}.ui-collapsible-body{display:block}.ui-collapsible-body[hidden]{display:none}.ui-source-buttons{display:flex;gap:4px}.ui-source-btn{flex:1;min-height:28px;padding:4px 8px;border:1px solid var(--control-border);border-radius:9px;background:linear-gradient(180deg,#ffffff1a,#ffffff0d);box-shadow:inset 0 1px #ffffff14,0 2px 6px #00000059;color:var(--color-text);font-size:11px;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;transition:all var(--transition-fast)}.ui-source-btn:hover{background:#ffffff1a;border-color:#fff3}.ui-source-selector.has-active .ui-source-btn:not(.active){opacity:.5;color:var(--color-text-muted)}.ui-checkbox:disabled,.ui-slider:disabled{opacity:.35;cursor:not-allowed}.ui-dimmed,.ui-band-slider.ui-dimmed .ui-band-input{opacity:.45}.ui-visual-cell.ui-shadows-cell{display:flex;flex-direction:column;align-items:stretch;gap:4px}.ui-visual-cell.ui-shadows-cell .ui-checkbox{align-self:flex-end}.ui-source-btn.active{background:var(--color-accent);border-color:var(--color-accent);color:#000;font-weight:400}.ui-led{width:10px;height:10px;border-radius:50%;background:#ff4a4a;box-shadow:0 0 6px #ff4a4ab3;flex:0 0 auto}.ui-led.on{background:#4aff8a;box-shadow:0 0 8px #4aff8ae6}.ui-slider-header{display:flex;justify-content:space-between;align-items:center}.ui-slider-label{font-size:11px;color:var(--color-text-muted);font-weight:400}.ui-slider-value{font-size:12px;color:var(--color-accent);font-weight:400;font-variant-numeric:tabular-nums;font-family:JetBrains Mono,ui-monospace,SF Mono,Menlo,Monaco,Consolas,monospace}.ui-slider{width:100%;height:22px;-webkit-appearance:none;appearance:none;background:transparent;cursor:pointer;margin:0;--pct: 0%}.ui-slider:focus{outline:none}.ui-slider:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 4px #ffffff80,0 2px 8px #00000080}.ui-slider:focus-visible::-moz-range-thumb{box-shadow:0 0 0 4px #ffffff80,0 2px 8px #00000080}.ui-slider::-webkit-slider-runnable-track{height:3px;border-radius:999px;background:linear-gradient(to right,rgba(255,255,255,.6) var(--pct),rgba(255,255,255,.16) var(--pct))}.ui-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:13px;height:13px;border-radius:50%;background:#fff;border:none;margin-top:-5px;box-shadow:0 1px 4px #00000080;transition:transform .16s ease,box-shadow .16s ease,background .16s ease}.ui-slider:hover::-webkit-slider-thumb{transform:scale(1.45);box-shadow:0 0 0 5px #ffffff2e,0 1px 5px #00000080}.ui-slider:active::-webkit-slider-thumb{transform:scale(1.55);box-shadow:0 0 0 6px #ffffff38,0 1px 6px #0000008c}.ui-slider::-moz-range-track{height:3px;border-radius:999px;background:linear-gradient(to right,rgba(255,255,255,.6) var(--pct),rgba(255,255,255,.16) var(--pct));border:none}.ui-slider::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:#fff;border:none;box-shadow:0 1px 4px #00000080;transition:transform .16s ease,box-shadow .16s ease}.ui-slider:hover::-moz-range-thumb{transform:scale(1.45);box-shadow:0 0 0 5px #ffffff2e,0 1px 5px #00000080}.ui-slider:active::-moz-range-thumb{transform:scale(1.55);box-shadow:0 0 0 6px #ffffff38,0 1px 6px #0000008c}.ui-band-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px 2px}.ui-audio-controls.ui-band-grid{grid-template-columns:repeat(2,1fr);gap:6px}.ui-band-slider{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:0}.ui-band-slider .ui-band-label{font-size:8px;letter-spacing:.02em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;text-align:center}.ui-band-slider .ui-slider-value{font-size:10px}.ui-vband{position:relative;width:22px;height:54px;cursor:pointer}.ui-vband-track{position:absolute;left:50%;top:4px;bottom:4px;width:3px;transform:translate(-50%);background:#ffffff47;border-radius:999px}.ui-vband-thumb{position:absolute;left:50%;width:15px;height:15px;transform:translate(-50%,-50%);border-radius:50%;background:#fff;border:2px solid var(--color-accent);box-shadow:0 1px 3px #00000080;pointer-events:none}.ui-vband-input{position:absolute;inset:0;opacity:0;pointer-events:none;margin:0;padding:0;width:100%;height:100%}.ui-band-label{font-size:11px;color:var(--color-text-muted);font-weight:400;white-space:nowrap;overflow:hidden;max-width:100%}.ui-band-input::-webkit-slider-thumb{width:12px;height:12px;margin-top:-4px}.ui-band-input::-moz-range-thumb{width:12px;height:12px}.ui-slider-inline{flex:1;min-width:40px}.ui-visual-section{font-size:11px;font-weight:400;letter-spacing:.08em;text-transform:uppercase;color:#ffffffd9;margin:9px 0 5px}.ui-visual-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:2px 4px}.ui-perf-row{grid-template-columns:1fr auto;align-items:end}.ui-perf-row .ui-slider-label{display:inline-flex;align-items:center;gap:6px;font-size:10px;letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-muted);align-self:center}.ui-perf-row .ui-checkbox{align-self:center}.ui-visual-item{display:flex;flex-direction:column;gap:1px;padding:2px 0}.ui-visual-bg{display:flex;justify-content:space-between;align-items:center;margin-top:6px}.ui-colour-line{flex-wrap:nowrap;gap:6px}.ui-colour-line .ui-band-label{flex:0 0 auto}.ui-colour-line input[type=color]{width:18px!important;height:18px!important;padding:0!important;flex:0 0 auto;border-radius:5px}.ui-colour-line .ui-check{flex:0 0 auto}.ui-colour-line .ui-slider-inline{flex:1 1 auto;min-width:40px}.ui-colour-line .ui-slider-value{flex:0 0 30px;text-align:right}.ui-visual-bg input[type=color]{width:44px;height:30px;border:1px solid var(--control-border);border-radius:6px;background:transparent;cursor:pointer}.ui-preset-buttons{display:flex;gap:6px}.ui-preset-btn{flex:1;min-height:28px;padding:4px 8px;border:1px solid rgba(255,255,255,.1);border-radius:9px;background:linear-gradient(180deg,#ffffff1a,#ffffff0d);box-shadow:inset 0 1px #ffffff14,0 2px 6px #00000059;color:var(--color-text);font-size:11px;font-weight:400;white-space:nowrap;cursor:pointer;transition:all var(--transition-fast)}.ui-preset-btn:hover{background:#ffffff1a}.ui-preset-btn.active{background:#4a9eff33;border-color:var(--color-accent);color:var(--color-accent)}.ui-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.ui-actions .ui-btn{min-height:28px;padding:4px 5px;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-actions .ui-btn-primary{background:var(--color-accent);border-color:var(--color-accent);color:#000;font-weight:600}.ui-reset-camera{margin-top:6px;width:100%;padding:6px 8px;font-size:11px;border:1px solid var(--color-border, rgba(255,255,255,.15));border-radius:6px;background:var(--color-surface, rgba(255,255,255,.06));color:var(--color-text, #fff);cursor:pointer}.ui-reset-camera:hover{background:var(--color-surface-hover, rgba(255,255,255,.12))}.ui-bg-media{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin-top:4px}.ui-divider{border:none;border-top:1px solid var(--control-border);margin:10px 0 6px}.ui-btn-sm{min-height:32px;padding:6px 9px;font-size:11px;border-radius:6px;border:1px solid var(--control-border);background:#ffffff0d;color:var(--color-text);font-weight:400;white-space:nowrap;cursor:pointer;transition:all var(--transition-fast)}.ui-btn-sm:hover{background:#ffffff1a}.ui-toggle-row{display:flex;align-items:center;justify-content:space-between;padding:4px 0}.ui-slider-row{display:flex;align-items:center;gap:8px;padding:4px 0}.ui-slider-row .ui-band-label{flex:0 0 auto}.ui-slider-row .ui-slider-value{flex:0 0 26px;text-align:right}.ui-slider-row .ui-slider{flex:1 1 auto;min-width:0}.ui-autolevel-row{grid-column:1 / -1;display:flex;align-items:center;gap:8px;flex-wrap:nowrap}.ui-autolevel-row .ui-band-label{flex:0 0 auto}.ui-autolevel-row .ui-slider-value{flex:0 0 30px;text-align:right}.ui-autolevel-row .ui-slider{flex:1 1 auto;min-width:0}.ui-dimmed{opacity:.45}.ui-dimmed .ui-slider,.ui-dimmed input[type=range]{opacity:.45;cursor:not-allowed}.ui-gap{width:18px;flex:0 0 18px}.ui-checkbox{-webkit-appearance:none;appearance:none;width:30px;height:18px;border-radius:999px;background:#ffffff1a;border:1px solid rgba(255,255,255,.14);position:relative;cursor:pointer;flex:0 0 auto;padding:0;margin:0;vertical-align:middle;transition:background .18s ease,border-color .18s ease,box-shadow .18s ease}.ui-checkbox:after{content:"";position:absolute;top:50%;left:2px;transform:translateY(-50%) translate(0);width:12px;height:12px;border-radius:50%;background:#ffffff8c;box-shadow:0 1px 2px #00000080;transition:transform .18s ease,background .18s ease}.ui-checkbox:hover{box-shadow:0 0 0 3px #ffffff24}.ui-checkbox:checked{background:#ffffff52;border-color:#fff6}.ui-checkbox:checked:after{transform:translateY(-50%) translate(14px);background:#fff}.ui-checkbox:focus-visible{outline:2px solid rgba(255,255,255,.7);outline-offset:1px}:is(.ui-btn,.ui-collapsible-head,button,a):focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:4px}.ui-check{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--color-text-muted);cursor:pointer;white-space:nowrap}.ui-check .ui-checkbox{width:30px;height:18px}.ui-check .ui-checkbox:after{width:12px;height:12px}.ui-check .ui-checkbox:checked:after{transform:translateY(-50%) translate(14px)}.ui-panel-top{display:flex;align-items:center;gap:9px;flex-wrap:nowrap;margin-bottom:4px}.ui-top-toggle{display:inline-flex;align-items:center;gap:6px;cursor:pointer;white-space:nowrap}.ui-top-toggle .ui-band-label{font-size:9px;letter-spacing:.05em;text-transform:uppercase;color:var(--color-text-muted)}.ui-top-spacer{flex:1 1 auto}.ui-icon-btn{background:transparent;border:none;color:var(--color-text-muted);width:26px;height:26px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;opacity:.65;transition:opacity .15s ease,background .15s ease}.ui-icon-btn:hover{opacity:1;background:#ffffff14}.ui-controls.ui-elegant .ui-slider::-webkit-slider-runnable-track{background:linear-gradient(to right,var(--color-accent) var(--pct),rgba(255,255,255,.16) var(--pct))}.ui-controls.ui-elegant .ui-slider::-moz-range-track{background:linear-gradient(to right,var(--color-accent) var(--pct),rgba(255,255,255,.16) var(--pct))}.ui-controls.ui-elegant .ui-slider::-webkit-slider-thumb{background:var(--color-accent);border:2px solid rgba(255,255,255,.85)}.ui-controls.ui-elegant .ui-slider::-moz-range-thumb{background:var(--color-accent);border:2px solid rgba(255,255,255,.85)}.ui-controls.ui-elegant .ui-checkbox:checked{background:var(--color-accent);border-color:var(--color-accent)}.ui-controls.ui-elegant .ui-checkbox:hover{box-shadow:0 0 0 3px #4a9eff33}.ui-controls:not(.ui-elegant){--color-accent: #9a9aa2;--color-accent-hover: #b2b2b9}.ui-controls:not(.ui-elegant){background:#050609eb;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.ui-controls:not(.ui-elegant) .ui-source-btn.active{background:linear-gradient(180deg,#ffffff29,#ffffff0f);color:#fff}.ui-controls:not(.ui-elegant) .ui-btn-primary{background:linear-gradient(180deg,#b7b7be,#9a9aa2);border-color:#ffffff40;box-shadow:inset 0 1px #fff6,0 2px 6px #00000059;color:#111}.ui-controls:not(.ui-elegant) .ui-btn-primary.active{background:linear-gradient(180deg,#d0d0d6,#b5b5bc);box-shadow:inset 0 1px #ffffff80,0 2px 6px #00000059;color:#111}.ui-controls:not(.ui-elegant) .ui-preset-btn.active{background:#ffffff2e;border-color:#ffffff73;color:#fff}.ui-hint{font-size:11px;color:var(--color-text-muted);text-align:center;margin-top:2px;line-height:1.3}.ui-footer{font-size:10px;color:var(--color-text-muted);text-align:center;padding-top:6px;border-top:1px solid var(--control-border);margin-top:4px}.ui-fps{color:var(--color-text-muted);font-variant-numeric:tabular-nums;margin-left:8px}.ui-playback-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:2px}.ui-playback-track{font-size:12px;color:var(--color-text);text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1 1 auto;min-width:0}.ui-playback-top .ui-check{flex:0 0 auto}.ui-help-overlay{position:fixed;inset:0;z-index:500;display:none;align-items:center;justify-content:center;padding:24px;background:#0009}.ui-help-overlay.open{display:flex}.ui-help-panel{background:var(--control-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--control-border);border-radius:16px;max-width:640px;max-height:86vh;overflow-y:auto;padding:28px 32px;color:var(--color-text)}.ui-help-panel h2{margin:0 0 12px;font-size:22px}.ui-help-panel h3{margin:20px 0 6px;font-size:15px;color:var(--color-accent);border-bottom:1px solid var(--control-border);padding-bottom:4px}.ui-help-panel p{font-size:13px;line-height:1.5;margin:6px 0;color:var(--color-text-muted)}.ui-help-panel ul{margin:6px 0;padding-left:18px}.ui-help-panel li{font-size:13px;line-height:1.5;margin:3px 0;color:var(--color-text-muted)}.ui-help-panel b{color:var(--color-text)}.ui-help-close{float:right}.ui-help-footer{margin-top:16px;font-size:12px}.ui-btn{min-height:28px;padding:4px 9px;border:1px solid rgba(255,255,255,.1);border-radius:9px;background:linear-gradient(180deg,#ffffff1a,#ffffff0d);box-shadow:inset 0 1px #ffffff14,0 2px 6px #00000059,0 1px 2px #0006;color:var(--color-text);font-size:11px;font-weight:400;cursor:pointer;white-space:nowrap;transition:all var(--transition-fast)}.ui-btn:hover{background:linear-gradient(180deg,#ffffff26,#ffffff14);border-color:#ffffff2e}.ui-btn-primary{background:linear-gradient(180deg,#3395ff,#0a84ff);border-color:#ffffff40;box-shadow:inset 0 1px #ffffff40,0 2px 8px #0a84ff66,0 1px 2px #0006;color:#fff;font-weight:600}.ui-btn-primary:hover{filter:brightness(1.08)}.ui-btn-primary.active{background:linear-gradient(180deg,#ff5f57,#ff453a);border-color:#ffffff40;box-shadow:inset 0 1px #ffffff40,0 2px 8px #ff453a66,0 1px 2px #0006;color:#fff}.ui-btn.active:not(.ui-btn-primary){background:linear-gradient(180deg,#ffffff29,#ffffff14);border-color:var(--color-accent);color:#000;font-weight:600;box-shadow:inset 0 0 0 2px #ffffff80}@media(max-width:500px){.ui-controls{bottom:calc(var(--control-padding) + var(--safe-area-bottom));left:50%;right:auto;transform:translate(-50%);width:auto;max-width:min(calc(100vw - 24px),360px);min-width:min(calc(100vw - 24px),320px);max-height:min(62vh,560px);font-size:12px;padding:10px}.ui-controls.hidden{transform:translate(-50%) translateY(20px)}.ui-controls.visible{transform:translate(-50%) translateY(0)}.ui-controls .ui-group-label,.ui-controls .ui-collapsible-head{font-size:11px;padding:5px 4px}.ui-controls .ui-band-label,.ui-controls .ui-slider-value{font-size:10px}.ui-controls .ui-visual-item,.ui-controls .ui-visual-bg{margin-top:4px}.ui-controls .ui-band-grid{gap:3px}.ui-controls .ui-collapsible-body{padding-bottom:2px}.ui-band-grid{grid-template-columns:repeat(3,1fr)}.ui-audio-controls.ui-band-grid{grid-template-columns:repeat(2,1fr)}}@media(max-height:500px)and (orientation:landscape){.ui-controls{top:calc(var(--control-padding) + var(--safe-area-top));bottom:auto;left:calc(var(--control-padding) + var(--safe-area-left));right:auto;transform:none;width:min(44vw,340px);min-width:min(42vw,300px);max-height:calc(100dvh - (var(--control-padding) * 2) - var(--safe-area-top) - var(--safe-area-bottom));font-size:11px;padding:8px}.ui-controls.hidden{transform:translate(-16px)}.ui-controls.visible{transform:translate(0)}.ui-band-grid{grid-template-columns:repeat(3,1fr)}.ui-audio-controls.ui-band-grid{grid-template-columns:repeat(2,1fr)}}.sf-paywall{position:fixed;inset:0;z-index:80;display:flex;align-items:center;justify-content:center;padding:16px;background:radial-gradient(120% 120% at 50% 0%,#0a84ff2e,#000000f0 55%);backdrop-filter:blur(6px);opacity:0;visibility:hidden;transition:opacity .25s ease,visibility .25s ease}.sf-paywall.open{opacity:1;visibility:visible}.sf-paywall-panel{width:min(480px,100%);max-height:92vh;overflow-y:auto;padding:28px 24px;border-radius:18px;background:linear-gradient(180deg,#0d0f16,#10131c);border:1px solid rgba(74,158,255,.28);box-shadow:0 24px 60px #0000008c}.sf-paywall-brand{font-size:13px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#4a9eff}.sf-paywall-panel h1{font-size:24px;line-height:1.2;margin:10px 0 8px;color:#fff}.sf-paywall-panel>p{font-size:13px;line-height:1.5;color:var(--color-text-muted);margin:0 0 16px}.sf-paywall-plans{display:flex;gap:10px;flex-wrap:wrap}.sf-plan{flex:1 1 160px;display:flex;flex-direction:column;gap:4px;padding:12px;border-radius:12px;background:var(--control-bg);border:1px solid var(--control-border)}.sf-plan-star{border-color:#4a9eff8c;box-shadow:0 0 0 1px #4a9eff40}.sf-plan-name{font-size:14px;font-weight:600}.sf-plan-note{font-size:11px;color:var(--color-text-muted)}.sf-paywall-b2b{font-size:12px;margin:16px 0 8px!important}.sf-keyrow{display:flex;gap:6px;margin-top:4px}.sf-paywall-key{flex:1 1 auto;min-width:0;padding:8px 10px;border-radius:8px;border:1px solid var(--control-border);background:#ffffff0d;color:#fff;font-size:13px}.sf-paywall-key::placeholder{color:#fff6}.sf-paywall-hint{font-size:11px;color:var(--color-text-muted);margin:8px 0 0;line-height:1.4}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.ui-controls::-webkit-scrollbar{width:0;height:0}.ui-controls:hover::-webkit-scrollbar{width:4px}.ui-controls:hover::-webkit-scrollbar-track{background:transparent}.ui-controls:hover::-webkit-scrollbar-thumb{background:#fff3;border-radius:2px}
