.scheme-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}@media(max-width:480px){.scheme-grid{grid-template-columns:repeat(3,1fr)}}.scheme-item{cursor:pointer;border:2.5px solid var(--border);background:none;padding:0;border-radius:8px;overflow:hidden;aspect-ratio:5 / 3;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:16px;letter-spacing:1px;transition:border-color .2s,box-shadow .2s,transform .15s;-webkit-tap-highlight-color:transparent}.scheme-item.active{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-muted)}.scheme-item.custom-trigger{font-size:13px;color:var(--sub);background:var(--card-alt)}.custom-color-row{display:none;gap:14px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}.custom-color-row.show{display:flex}.cc-item{flex:1;display:flex;align-items:center;gap:8px;font-size:13px;color:var(--sub);font-weight:600;cursor:pointer}.cc-item input[type=color]{width:36px;height:28px;border:1px solid var(--border);border-radius:6px;padding:0;background:var(--card-alt);cursor:pointer}.cc-hex{font-family:Menlo,Consolas,monospace;font-size:12px;color:var(--text);font-variant-numeric:tabular-nums}.preview-box{position:relative;height:84px;border-radius:12px;overflow:hidden;box-shadow:var(--shadow);background:#000}.preview-track{position:absolute;inset:0;display:flex;align-items:center;will-change:transform}.preview-text{display:inline-block;font-size:44px;font-weight:800;color:#fff;white-space:nowrap;padding:0 16px;line-height:1}@keyframes pvLeft{0%{transform:translate3d(100%,0,0)}to{transform:translate3d(-100%,0,0)}}@keyframes pvRight{0%{transform:translate3d(-100%,0,0)}to{transform:translate3d(100%,0,0)}}.preview-track.static{justify-content:center}.preview-track.mirror{transform:scaleX(-1)}.gradient-chips{display:flex;gap:6px;flex:1;overflow-x:auto;scrollbar-width:none}.gradient-chips::-webkit-scrollbar{display:none}.gradient-chip{flex-shrink:0;width:44px;height:28px;border-radius:6px;border:2px solid var(--border);cursor:pointer;padding:0;transition:border-color .15s,box-shadow .15s,transform .15s;-webkit-tap-highlight-color:transparent}.gradient-chip.active{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-muted)}.tap-btn{flex-shrink:0;padding:6px 12px;border-radius:6px;border:1.5px solid var(--border);background:var(--card-alt);color:var(--text);font-size:12px;font-weight:600;cursor:pointer;transition:all .15s;white-space:nowrap}.tap-btn:active,.tap-btn.flash{background:var(--primary);color:#fff;border-color:var(--primary);transform:scale(.94)}.sub-row[hidden]{display:none!important}.preview-label{position:absolute;top:6px;right:10px;font-size:11px;color:#fff6;pointer-events:none;z-index:3}.setting-row{display:flex;align-items:center;gap:12px;padding:10px 0}.setting-row+.setting-row{border-top:1px solid var(--border)}.s-label{font-size:14px;font-weight:600;color:var(--text);white-space:nowrap;min-width:72px}.setting-row input[type=range]{flex:1;accent-color:var(--primary)}.s-val{font-size:14px;color:var(--sub);min-width:28px;text-align:right;font-variant-numeric:tabular-nums}.pill-group{display:flex;gap:4px;background:var(--card-alt);border-radius:8px;padding:3px;flex:1;overflow-x:auto;scrollbar-width:none}.pill-group::-webkit-scrollbar{display:none}.pill{flex:1;padding:6px 8px;border-radius:6px;border:none;background:transparent;font-size:13px;font-weight:600;color:var(--sub);cursor:pointer;transition:all .2s;text-align:center;white-space:nowrap}.pill.active{background:var(--primary);color:#fff}.toggle-track{position:relative;width:46px;height:26px;background:var(--card-alt);border:2px solid var(--border);border-radius:13px;cursor:pointer;transition:all .2s;flex-shrink:0;padding:0}.toggle-track.on{background:var(--primary);border-color:var(--primary)}.toggle-thumb{position:absolute;top:2px;left:2px;width:18px;height:18px;background:#fff;border-radius:50%;transition:transform .2s;box-shadow:0 1px 3px #00000026}.toggle-track.on .toggle-thumb{transform:translate(20px)}.share-mask{position:fixed;inset:0;z-index:1100;background:#0000008c;display:none;align-items:center;justify-content:center;padding:20px;backdrop-filter:blur(4px)}.share-mask.open{display:flex}.share-dialog{width:min(360px,100%);background:var(--card);color:var(--text);border-radius:14px;box-shadow:0 12px 40px #0006;overflow:hidden}.share-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border);font-size:15px;font-weight:700}.share-close{width:28px;height:28px;border-radius:50%;border:none;background:var(--card-alt);color:var(--sub);cursor:pointer;font-size:14px}.share-close:hover{color:var(--text)}.share-body{padding:18px 16px 20px;display:flex;flex-direction:column;align-items:center;gap:12px}#shareQr{width:240px;height:240px;max-width:100%;background:#fff;border-radius:8px;padding:8px;box-sizing:border-box}.share-tip{font-size:13px;color:var(--sub);text-align:center;line-height:1.6;padding:0 8px}.share-url-row{display:flex;gap:6px;width:100%}.share-url-row input{flex:1;min-width:0;padding:8px 10px;border:1.5px solid var(--border);border-radius:8px;background:var(--card-alt);color:var(--text);font-family:Menlo,Consolas,monospace;font-size:12px;outline:none}.share-url-row button{padding:0 14px;border:none;border-radius:8px;background:var(--primary);color:#fff;font-weight:700;font-size:13px;cursor:pointer;flex-shrink:0}.share-url-row button:hover{filter:brightness(1.08)}.share-hint{font-size:12px;color:var(--sub);min-height:16px;text-align:center}.share-hint.ok{color:#2e9c5e}.banner-stage{position:fixed;top:0;left:0;width:100vw;height:100vh;height:100dvh;z-index:1000;display:none;overflow:hidden;touch-action:none;-webkit-touch-callout:none;user-select:none;-webkit-user-select:none;background:#000}.banner-stage.open{display:block}.banner-rotator{position:absolute;top:50%;left:50%;width:100vw;height:100vh;height:100dvh;transform:translate(-50%,-50%);transform-origin:center;transition:transform .3s ease,width .3s ease,height .3s ease}.banner-rotator.rotated{width:100vh;width:100dvh;height:100vw;transform:translate(-50%,-50%) rotate(90deg)}.banner-viewport{position:absolute;inset:0;overflow:hidden;display:flex;align-items:center;transition:transform .25s}.banner-viewport.mirror{transform:scaleX(-1)}.banner-track-stage{position:relative;display:flex;align-items:center;width:100%;height:100%;will-change:transform}.banner-track-stage.run-left{animation-name:stageLeft;animation-timing-function:linear;animation-iteration-count:infinite}.banner-track-stage.run-right{animation-name:stageRight;animation-timing-function:linear;animation-iteration-count:infinite}.banner-track-stage.paused{animation-play-state:paused}.banner-track-stage.static{justify-content:center}@keyframes stageLeft{0%{transform:translate3d(100%,0,0)}to{transform:translate3d(calc(-1 * var(--text-w, 100%)),0,0)}}@keyframes stageRight{0%{transform:translate3d(calc(-1 * var(--text-w, 100%)),0,0)}to{transform:translate3d(100%,0,0)}}.banner-text-stage{display:inline-block;font-weight:800;white-space:nowrap;line-height:1;padding:0 4vw;letter-spacing:2px}.banner-text-stage.fx-beat,.preview-text.fx-beat{animation:bannerBeat var(--beat-dur, .5s) ease-in-out infinite;transform-origin:center}@keyframes bannerBeat{0%,to{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(.92)}}.banner-ctrl{position:absolute;bottom:0;left:0;right:0;display:flex;align-items:center;gap:8px;padding:12px 14px calc(12px + env(safe-area-inset-bottom,0px));z-index:15;background:linear-gradient(transparent,#000000a6 60%);transition:opacity .35s}.banner-ctrl.fade{opacity:0;pointer-events:none}.bcb{min-width:40px;height:40px;padding:0 10px;border-radius:20px;border:none;background:#ffffff26;color:#fff;font-size:15px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s;flex-shrink:0}.bcb:hover{background:#ffffff47}.bcb.on{background:var(--primary)}.bcb-spacer{flex:1}@media(max-width:600px){.banner-ctrl{padding:8px 10px calc(8px + env(safe-area-inset-bottom,0px));gap:6px}.bcb{min-width:38px;height:38px;font-size:14px;padding:0 8px}}
