@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap";:root{--color-primary: #0095f6;--color-primary-hover: #1aa3ff;--color-primary-light: rgba(0, 149, 246, .15);--color-primary-dark: #0081d6;--color-background: #000000;--color-surface: #1a1a1a;--color-surface-elevated: #262626;--color-overlay: rgba(255, 255, 255, .06);--color-border: #2a2a2a;--color-border-subtle: #1f1f1f;--color-border-strong: #3d3d3d;--color-text: #f5f5f5;--color-text-secondary: #8e8e8e;--color-text-muted: #5a5a5a;--color-text-subtle: #3a3a3a;--color-error: #ed4956;--color-error-light: rgba(237, 73, 86, .15);--color-success: #2ecc71;--color-success-light: rgba(46, 204, 113, .15);--color-warning: #f9a825;--color-warning-light: rgba(249, 168, 37, .15);--color-accent: #c13584;--color-accent-light: rgba(193, 53, 132, .15);--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-base: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px;--space-3xl: 64px;--space-4xl: 96px;--radius-xs: 2px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-2xl: 24px;--radius-full: 9999px;--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px -1px rgba(0, 0, 0, .1);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .1);--shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, .25);--shadow-inner: inset 0 2px 4px 0 rgba(0, 0, 0, .05);--shadow-primary: 0 10px 15px -3px rgba(37, 99, 235, .2), 0 4px 6px -4px rgba(37, 99, 235, .1);--shadow-accent: 0 10px 15px -3px rgba(124, 58, 237, .2), 0 4px 6px -4px rgba(124, 58, 237, .1);--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--font-display: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "SF Mono", Monaco, "Cascadia Code", "Roboto Mono", Consolas, "Courier New", monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-4xl: 2.25rem;--text-5xl: 3rem;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--font-extrabold: 800;--leading-none: 1;--leading-tight: 1.25;--leading-snug: 1.375;--leading-normal: 1.5;--leading-relaxed: 1.625;--leading-loose: 2;--tracking-tighter: -.05em;--tracking-tight: -.025em;--tracking-normal: 0em;--tracking-wide: .025em;--tracking-wider: .05em;--tracking-widest: .1em;--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-base: .2s cubic-bezier(.4, 0, .2, 1);--transition-slow: .3s cubic-bezier(.4, 0, .2, 1);--transition-slower: .5s cubic-bezier(.4, 0, .2, 1);--spring-snappy: .2s cubic-bezier(.34, 1.56, .64, 1);--spring-smooth: .3s cubic-bezier(.22, 1, .36, 1);--spring-bounce: .4s cubic-bezier(.68, -.55, .265, 1.55);--z-base: 0;--z-dropdown: 1000;--z-sticky: 1100;--z-fixed: 1200;--z-modal-backdrop: 1300;--z-modal: 1400;--z-popover: 1500;--z-tooltip: 1600;--max-width: 1200px;--max-width-narrow: 768px;--header-height: 64px;--blur-sm: 4px;--blur-md: 8px;--blur-lg: 16px;--blur-xl: 24px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;overscroll-behavior:none;height:100%}body{margin:0;font-family:var(--font-sans);font-size:var(--text-base);line-height:1.5;color:var(--color-text);background-color:var(--color-background);min-height:100%;height:100%;color-scheme:dark;overscroll-behavior:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}h1,h2,h3,h4,h5,h6{font-weight:var(--font-semibold);line-height:1.2}h1{font-size:var(--text-3xl)}h2{font-size:var(--text-2xl)}h3{font-size:var(--text-xl)}button{font-family:inherit;font-size:inherit;line-height:inherit;cursor:pointer;border:none;background:none;padding:0;touch-action:manipulation}button:disabled{cursor:not-allowed;opacity:.6}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}img{max-width:100%;height:auto;display:block}#root{height:100%;display:flex;flex-direction:column;user-select:none;-webkit-user-select:none}input,textarea{user-select:text;-webkit-user-select:text}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.app-layout{min-height:100vh;display:flex;flex-direction:column;background:var(--color-background)}.app-layout__main{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-xl) var(--space-lg) 90px;max-width:var(--max-width);margin:0 auto;width:100%}@media(max-width:768px){.app-layout__main{padding:var(--space-lg) var(--space-base) 90px}}@media(max-width:640px){.app-layout__main{padding:var(--space-base) var(--space-sm) 80px}}.header{height:52px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;background:var(--color-background);border-bottom:1px solid var(--color-border);padding:0 var(--space-base);position:sticky;top:0;z-index:var(--z-sticky)}.header__slot{display:flex;align-items:center;min-width:0}.header__slot--left{justify-content:flex-start}.header__slot--right{justify-content:flex-end}.header__title{font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--color-text);letter-spacing:var(--tracking-wide);text-transform:uppercase;margin:0;white-space:nowrap}@media(max-width:640px){.header{padding:0 var(--space-sm);height:48px}.header__title{font-size:var(--text-sm)}}.toast{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-base);background:var(--color-surface-elevated);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);box-shadow:0 8px 32px #00000080;border-left:3px solid;min-width:280px;max-width:400px;animation:slideInRight .3s cubic-bezier(.34,1.56,.64,1);position:relative;overflow:hidden}.toast:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:currentColor}.toast__icon{flex-shrink:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center}.toast__message{flex:1;font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text);line-height:1.5}.toast__close{flex-shrink:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer;color:var(--color-text-secondary);transition:all var(--spring-smooth)}.toast__close:hover{background:var(--color-overlay);color:var(--color-text)}.toast__close:active{transform:scale(.9)}.toast--success{border-left-color:#10b981}.toast--success .toast__icon{color:#10b981}.toast--error{border-left-color:#ef4444}.toast--error .toast__icon{color:#ef4444}.toast--info{border-left-color:var(--color-primary)}.toast--info .toast__icon{color:var(--color-primary)}@keyframes slideInRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideOutRight{0%{transform:translate(0);opacity:1}to{transform:translate(100%);opacity:0}}.toast--exiting{animation:slideOutRight .2s ease-out forwards}@media(max-width:640px){.toast{min-width:unset;max-width:calc(100vw - var(--space-lg) * 2);width:100%}}.toast-container{position:fixed;top:var(--space-lg);right:var(--space-lg);z-index:9999;display:flex;flex-direction:column;gap:var(--space-sm);pointer-events:none}.toast-container>*{pointer-events:auto}@media(max-width:640px){.toast-container{top:var(--space-base);right:var(--space-base);left:var(--space-base)}}.upload-zone{width:100%;max-width:480px;min-height:360px;display:flex;align-items:center;justify-content:center;border:1.5px dashed var(--color-border-strong);border-radius:var(--radius-xl);background:var(--color-surface);cursor:pointer;transition:border-color var(--transition-base),background var(--transition-base)}.upload-zone:hover{border-color:var(--color-text-muted);background:var(--color-surface-elevated)}.upload-zone--dragging{border-color:var(--color-primary);border-style:solid;background:var(--color-primary-light)}.upload-zone--error{border-color:var(--color-error);animation:shake .4s cubic-bezier(.36,.07,.19,.97)}.upload-zone__content{display:flex;flex-direction:column;align-items:center;gap:var(--space-base);padding:var(--space-2xl);text-align:center}.upload-zone__icon{color:var(--color-text-secondary);transition:color var(--transition-base),transform var(--transition-base)}.upload-zone:hover .upload-zone__icon{color:var(--color-text);transform:translateY(-3px)}.upload-zone--dragging .upload-zone__icon{color:var(--color-primary)}.upload-zone__title{font-size:var(--text-xl);font-weight:var(--font-semibold);color:var(--color-text);margin:0}.upload-zone__text{font-size:var(--text-base);color:var(--color-text-secondary);margin:0}.upload-zone__hint{font-size:var(--text-xs);color:var(--color-text-muted);margin:0;letter-spacing:var(--tracking-wide)}.upload-zone__error{font-size:var(--text-sm);color:var(--color-error);margin:var(--space-sm) 0 0;font-weight:var(--font-medium)}.upload-zone__spinner{width:40px;height:40px;border:2px solid var(--color-border-strong);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-6px)}40%,80%{transform:translate(6px)}}@media(max-width:640px){.upload-zone{min-height:280px}.upload-zone__content{padding:var(--space-lg)}.upload-zone__title{font-size:var(--text-lg)}}.canvas-renderer{display:flex;justify-content:center;align-items:center;width:100%;animation:fadeIn .3s ease-out}.canvas-renderer__canvas{max-width:100%;width:100%;height:auto;border-radius:var(--radius-lg);display:block}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.canvas-editor{display:flex;flex-direction:column;align-items:center;gap:var(--space-lg);width:100%;max-width:560px}.draggable-crop-preview{display:flex;flex-direction:column;align-items:center;gap:var(--space-base);margin-top:var(--space-xl);animation:fadeIn .3s ease-out}.draggable-crop-preview__label{font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-text-muted);margin:0;padding:var(--space-xs) var(--space-base);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-full);letter-spacing:var(--tracking-wider);text-transform:uppercase}.draggable-crop-preview__canvas{border:1px solid var(--color-border-strong);border-radius:var(--radius-md);cursor:grab;background-color:var(--color-surface);touch-action:none;transition:border-color var(--transition-fast)}.draggable-crop-preview__canvas:hover{border-color:var(--color-primary)}.draggable-crop-preview__canvas--dragging{cursor:grabbing;border-color:var(--color-primary)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media(max-width:640px){.draggable-crop-preview__canvas{max-width:100%;height:auto}}.control-panel{position:fixed;bottom:0;left:0;right:0;z-index:var(--z-sticky);background:var(--color-surface);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);padding-bottom:env(safe-area-inset-bottom)}.control-panel__bar{display:flex;align-items:center;overflow-x:auto;overflow-y:visible;scrollbar-width:none;-ms-overflow-style:none;border-top:1px solid var(--color-border)}.control-panel__bar::-webkit-scrollbar{display:none}.control-panel__section{display:flex;align-items:center;flex-shrink:0;padding:10px 20px}.control-panel__section+.control-panel__section{border-left:1px solid var(--color-border)}.caption-trigger{display:flex;flex-direction:column;align-items:center;gap:var(--space-xs)}.caption-trigger__label{font-size:10px;font-weight:var(--font-medium);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:var(--tracking-wider)}.caption-trigger__btn{background:var(--color-background);border:1px solid var(--color-border-strong);border-radius:var(--radius-full);color:var(--color-text-secondary);cursor:pointer;font-size:var(--text-xs);font-weight:var(--font-semibold);padding:5px 14px;white-space:nowrap;transition:all var(--transition-fast);letter-spacing:var(--tracking-wide);max-width:110px;overflow:hidden;text-overflow:ellipsis}.caption-trigger__btn:hover{color:var(--color-text);border-color:var(--color-text-muted)}.caption-trigger__btn--active{background:var(--color-surface-elevated);color:var(--color-text);border-color:var(--color-text-muted);box-shadow:0 1px 3px #0006}.tooltip-trigger{display:inline-flex;align-items:center;justify-content:center}.tooltip{position:fixed;z-index:10000;padding:var(--space-xs) var(--space-sm);background:#000000e6;color:#fff;font-size:var(--text-xs);font-weight:var(--font-medium);line-height:1.4;border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);max-width:200px;text-align:center;pointer-events:none;white-space:nowrap;animation:tooltipFadeIn .15s ease-out}.tooltip:after{content:"";position:absolute;width:0;height:0;border:4px solid transparent}.tooltip--top:after{bottom:-8px;left:50%;transform:translate(-50%);border-top-color:#000000e6}.tooltip--bottom:after{top:-8px;left:50%;transform:translate(-50%);border-bottom-color:#000000e6}.tooltip--left:after{right:-8px;top:50%;transform:translateY(-50%);border-left-color:#000000e6}.tooltip--right:after{left:-8px;top:50%;transform:translateY(-50%);border-right-color:#000000e6}@keyframes tooltipFadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.tooltip[role=tooltip]{clip-path:none}.crop-controls{display:flex;flex-direction:column;align-items:center;gap:var(--space-xs)}.crop-controls__label{font-size:10px;font-weight:var(--font-medium);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:var(--tracking-wider)}.crop-controls__buttons{display:flex;gap:2px;background:var(--color-background);border:1px solid var(--color-border-strong);border-radius:var(--radius-full);padding:3px}.crop-controls__button{min-width:40px;padding:5px 8px;font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--color-text-secondary);background:transparent;border:none;border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;text-align:center;letter-spacing:var(--tracking-wide)}.crop-controls__button:hover:not(.crop-controls__button--active){color:var(--color-text)}.crop-controls__button:active:not(.crop-controls__button--active){opacity:.7}.crop-controls__button--active{background:var(--color-surface-elevated);color:var(--color-text);box-shadow:0 1px 3px #0006}.crop-controls__button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;z-index:1}.toggle{display:flex;flex-direction:column;align-items:center;gap:var(--space-xs)}.toggle__label{font-size:10px;font-weight:var(--font-medium);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:var(--tracking-wider)}.toggle__button{position:relative;display:flex;min-width:110px;align-items:center;padding:3px;background:var(--color-background);border:1px solid var(--color-border-strong);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-semibold);cursor:pointer;transition:border-color var(--transition-fast)}.toggle__button:hover{border-color:var(--color-text-muted)}.toggle__button:active{opacity:.8}.toggle__option{flex:1;position:relative;z-index:2;padding:5px 4px;transition:color var(--transition-fast);border-radius:var(--radius-full);white-space:nowrap;color:var(--color-text-secondary);letter-spacing:var(--tracking-wide);text-align:center}.toggle__divider{display:none}.toggle__indicator{position:absolute;top:3px;left:3px;bottom:3px;width:calc(50% - 3px);background:var(--color-surface-elevated);border-radius:var(--radius-full);transition:transform var(--spring-smooth);z-index:1;box-shadow:0 1px 3px #0006}.toggle__button:has(.toggle__indicator[style*="translateX(0)"]) .toggle__option:first-child{color:var(--color-text)}.toggle__button:has(.toggle__indicator[style*="translateX(100%)"]) .toggle__option:last-child{color:var(--color-text)}.toggle__button:has(.toggle__indicator[style*="translateX(0)"]) .toggle__option:last-child{color:var(--color-text-secondary)}.toggle__button:has(.toggle__indicator[style*="translateX(100%)"]) .toggle__option:first-child{color:var(--color-text-secondary)}.toggle__button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);font-family:var(--font-sans);font-weight:var(--font-medium);border-radius:var(--radius-lg);transition:all var(--transition-base);cursor:pointer;border:none;text-decoration:none;-webkit-user-select:none;user-select:none;position:relative;overflow:visible;white-space:nowrap}.button:disabled{cursor:not-allowed;opacity:.4;transform:none!important}.button--primary{background:var(--color-primary);color:#fff;font-weight:var(--font-semibold)}.button--primary:hover:not(:disabled){background:var(--color-primary-hover)}.button--primary:active:not(:disabled){opacity:.85}.button--secondary{background:var(--color-surface-elevated);color:var(--color-text);border:1px solid var(--color-border-strong)}.button--secondary:hover:not(:disabled){background:var(--color-border-strong)}.button--secondary:active:not(:disabled){opacity:.8}.button--ghost{background:transparent;color:var(--color-text-secondary);border:none;font-weight:var(--font-medium)}.button--ghost:hover:not(:disabled){color:var(--color-text);background:var(--color-overlay)}.button--ghost:active:not(:disabled){opacity:.7}.button--danger{background:var(--color-error);color:#fff}.button--danger:hover:not(:disabled){opacity:.9}.button--danger:active:not(:disabled){opacity:.8}.button--small{padding:6px 12px;font-size:var(--text-sm);gap:6px;min-height:32px}.button--medium{padding:8px 16px;font-size:var(--text-base);min-height:40px}.button--large{padding:10px 20px;font-size:var(--text-base);min-height:44px;font-weight:var(--font-semibold);gap:8px}.button svg{flex-shrink:0}.export-button__spinner{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.confirm-dialog-overlay{position:fixed;inset:0;z-index:9998;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:var(--space-lg);animation:overlayFadeIn .2s ease-out}.confirm-dialog{background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-xl);box-shadow:0 24px 48px #0009;max-width:400px;width:100%;animation:dialogSlideIn .3s cubic-bezier(.34,1.56,.64,1);position:relative}.confirm-dialog__header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-lg);border-bottom:1px solid var(--color-border)}.confirm-dialog__title{margin:0;font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-text)}.confirm-dialog__close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer;color:var(--color-text-secondary);transition:all var(--spring-smooth)}.confirm-dialog__close:hover{background:var(--color-overlay);color:var(--color-text)}.confirm-dialog__close:active{transform:scale(.9)}.confirm-dialog__body{padding:var(--space-lg)}.confirm-dialog__message{margin:0;font-size:var(--text-base);line-height:1.6;color:var(--color-text-secondary)}.confirm-dialog__footer{display:flex;gap:var(--space-sm);padding:var(--space-lg);border-top:1px solid var(--color-border);justify-content:flex-end}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}@keyframes dialogSlideIn{0%{opacity:0;transform:scale(.9) translateY(-20px)}to{opacity:1;transform:scale(1) translateY(0)}}@media(max-width:640px){.confirm-dialog-overlay{padding:var(--space-base)}.confirm-dialog{max-width:100%}.confirm-dialog__footer{flex-direction:column-reverse}.confirm-dialog__footer button{width:100%}}.caption-panel{display:flex;flex-direction:column;gap:12px;padding:14px 20px;background:var(--color-surface);border-top:1px solid var(--color-border);box-shadow:0 -8px 32px #00000080;animation:caption-panel-in .22s cubic-bezier(.32,0,.15,1) both}@keyframes caption-panel-in{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.caption-panel__header{display:flex;align-items:center;justify-content:space-between}.caption-panel__title{font-size:13px;font-weight:var(--font-semibold);color:var(--color-text);letter-spacing:.02em}.caption-panel__close{display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--color-text-secondary);cursor:pointer;padding:4px;border-radius:var(--radius-sm);transition:color var(--transition-fast)}.caption-panel__close:hover{color:var(--color-text)}.caption-panel__input{width:100%;background:var(--color-background);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);padding:10px 14px;font-size:14px;color:var(--color-text);font-family:var(--font-sans);outline:none;transition:border-color var(--transition-fast);box-sizing:border-box}.caption-panel__input:focus{border-color:var(--color-text-secondary)}.caption-panel__input::placeholder{color:var(--color-text-muted)}.caption-panel__controls{display:flex;align-items:flex-end;gap:16px}.caption-panel__control{display:flex;flex-direction:column;align-items:center;gap:6px}.caption-panel__control--grow{flex:1;align-items:stretch}.caption-panel__control-label{font-size:10px;font-weight:var(--font-medium);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:var(--tracking-wider);text-align:center}.caption-panel__slider-row{display:flex;align-items:center;gap:8px}.caption-panel__slider-bound{font-size:10px;color:var(--color-text-muted);min-width:14px;text-align:center}.caption-panel__slider{flex:1;-webkit-appearance:none;appearance:none;height:3px;background:var(--color-border-strong);border-radius:2px;outline:none;cursor:pointer}.caption-panel__slider::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;background:var(--color-text);border-radius:50%;cursor:pointer;box-shadow:0 1px 4px #00000080}.caption-panel__slider::-moz-range-thumb{width:18px;height:18px;background:var(--color-text);border-radius:50%;border:none;cursor:pointer}.caption-panel__pill{background:var(--color-background);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;padding:4px 12px;font-size:15px;font-style:italic;font-weight:600;font-family:Georgia,Times New Roman,serif;transition:all var(--transition-fast);line-height:1.4}.caption-panel__pill:hover{border-color:var(--color-text-muted);color:var(--color-text)}.caption-panel__pill--active{background:var(--color-text);color:var(--color-background);border-color:var(--color-text)}.caption-panel__swatches{display:flex;gap:6px}.caption-panel__swatch{width:22px;height:22px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:border-color var(--transition-fast),transform var(--transition-fast);outline:none;box-shadow:0 0 0 1px var(--color-border-strong)}.caption-panel__swatch:hover{transform:scale(1.1)}.caption-panel__swatch--active{border-color:var(--color-text);box-shadow:0 0 0 1px var(--color-text)}
