.gal-banner-editor{z-index:calc(var(--gal-z) + 10);background:var(--overlay-heavy,rgba(0,0,0,.96))}.gal-banner-hint{background:rgba(0,0,0,.65)}.gal-scale-track input[type=range]{z-index:var(--z-page)}.gal-banner-saving{background:rgba(0,0,0,.7)}.gal-banner-editor{position:fixed;inset:0;z-index:var(--z-modal,1000);background:var(--overlay-heavy,color-mix(in srgb,#000 96%,transparent));display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;animation:gal-fade-in .2s ease}.gal-banner-editor-title{color:var(--gal-text);font-size:1rem;font-weight:800;margin-bottom:.75rem;letter-spacing:.04em;text-transform:uppercase;display:flex;align-items:center;gap:.5rem;font-family:var(--gal-font-h)}.gal-banner-editor-title span{color:var(--gal-accent)}.gal-banner-canvas{width:min(760px,96vw);aspect-ratio:3/1;position:relative;overflow:hidden;border:2px solid var(--gal-accent);border-radius:8px;cursor:grab;background:var(--gal-surface2);box-shadow:0 0 40px color-mix(in srgb,var(--gal-accent) 12%,transparent);touch-action:none}.gal-banner-canvas:active{cursor:grabbing}.gal-banner-canvas img{position:absolute;transform-origin:top left;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none;max-width:none}.gal-banner-guide{position:absolute;inset:0;pointer-events:none;display:flex;align-items:center;justify-content:center;opacity:.18}.gal-banner-guide:after,.gal-banner-guide:before{content:"";position:absolute;background:var(--gal-accent)}.gal-banner-guide:before{width:100%;height:1px}.gal-banner-guide:after{width:1px;height:100%}.gal-banner-hint{position:absolute;bottom:8px;left:50%;transform:translateX(-50%);background:color-mix(in srgb,#000 65%,transparent);border:1px solid var(--gal-accent);color:var(--gal-accent);font-size:.6rem;font-weight:700;padding:3px 10px;letter-spacing:.05em;text-transform:uppercase;border-radius:20px;pointer-events:none;white-space:nowrap}.gal-banner-controls{width:min(760px,96vw);display:flex;flex-direction:column;gap:10px;padding:14px 16px;background:var(--gal-surface);border:1px solid var(--gal-border);border-top:none;border-radius:0 0 8px 8px}.gal-scale-row{display:flex;align-items:center;gap:10px}.gal-scale-label{font-size:.7rem;color:var(--gal-muted);text-transform:uppercase;letter-spacing:.05em;font-weight:700;width:52px}.gal-scale-track{flex:1;position:relative;height:24px;display:flex;align-items:center}.gal-scale-track input[type=range]{width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:4px;background:var(--gal-grad);border-radius:2px;outline:none;cursor:pointer;position:relative;z-index:var(--z-above,1)}.gal-scale-track input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:#fff;border:3px solid var(--gal-accent);cursor:pointer;box-shadow:0 0 8px color-mix(in srgb,var(--gal-accent) 55%,transparent)}.gal-scale-ticks{position:absolute;inset:0;top:auto;bottom:0;display:flex;justify-content:space-between;padding:0 1px;pointer-events:none}.gal-scale-ticks span{font-size:.48rem;color:var(--gal-muted);text-align:center;display:flex;flex-direction:column;align-items:center;gap:1px}.gal-scale-ticks span:before{content:"";display:block;width:1px;height:4px;background:var(--gal-muted)}.gal-scale-val{font-size:.7rem;color:var(--gal-accent);width:36px;text-align:right;font-weight:700}.gal-banner-actions{display:flex;justify-content:flex-end;gap:8px}.gal-banner-btn{padding:.5rem 1.4rem;font-size:.8rem;font-weight:700;cursor:pointer;clip-path:var(--gal-clip-md);border:none;transition:all .2s;font-family:var(--gal-font);letter-spacing:.04em}.gal-banner-btn--save{background:var(--gal-grad);color:var(--gal-on-accent)}.gal-banner-btn--save:hover:not(:disabled){filter:brightness(1.12);transform:translateY(-1px)}.gal-banner-btn--cancel{background:transparent;border:1px solid var(--gal-border);color:var(--gal-muted)}.gal-banner-btn--cancel:hover{border-color:var(--gal-accent3);color:var(--gal-accent3)}.gal-banner-btn:disabled{opacity:.4;cursor:not-allowed}.gal-banner-saving{position:absolute;inset:0;background:color-mix(in srgb,#000 70%,transparent);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;border-radius:8px}.gal-banner-saving-ring{width:48px;height:48px;border:3px solid var(--gal-border);border-top-color:var(--gal-accent);border-radius:50%;animation:gal-spin .8s linear infinite}.gal-banner-saving-text{font-size:.8rem;color:var(--gal-accent);font-weight:700}