:root{--color-accent: #3b82f6;--color-accent-hover: #2563eb;--color-accent-light: rgba(59, 130, 246, .1);--color-accent-border: rgba(59, 130, 246, .5);--color-danger: #ef4444;--color-danger-light: rgba(239, 68, 68, .15);--color-success: #22c55e;--color-success-light: rgba(34, 197, 94, .15);--ball-body: linear-gradient(120deg, #ffffff 10%, #fafafa 25%, #bebebe 85%);--goo-body: 255, 255, 255;--page-color: #000000;--bg-body: linear-gradient( 210deg, rgba(210, 210, 210, 1) 13%, rgba(179, 179, 179, 1) 48%, rgba(150, 150, 150, 1) 90% );--bg-primary: rgba(255, 255, 255, .9);--bg-secondary: rgba(240, 240, 240, 1);--bg-tertiary: rgba(0, 0, 0, .1);--bg-glass: rgba(255, 255, 255, .5);--bg-glass-solid: rgba(255, 255, 255, 1);--bg-hover: rgba(0, 0, 0, .06);--bg-active: rgba(0, 0, 0, .2);--text-primary: #222;--text-secondary: #666;--text-tertiary: #888;--text-muted: #aaa;--text-inverse: #fff;--border-color: rgba(0, 0, 0, .1);--border-color-strong: rgba(0, 0, 0, .2);--border-color-subtle: rgba(0, 0, 0, .05);--shadow-sm: 0 2px 4px rgba(0, 0, 0, .1);--shadow-md: 0 4px 10px rgba(0, 0, 0, .15);--shadow-lg: 0 8px 20px rgba(0, 0, 0, .2);--shadow-xl: 0 16px 40px rgba(0, 0, 0, .25);--shadow-glass: 0 8px 32px rgba(0, 0, 0, .3), inset 0 1px 2px rgba(255, 255, 255, .9);--shadow-glass-hover: 0 8px 32px rgba(0, 0, 0, .4), inset 0 1px 2px rgba(255, 255, 255, .9);--shadow-elevated: 0 2px 12px rgba(0, 0, 0, .3), 0 0 0 1px rgba(0, 0, 0, .05);--shadow-elevated-active: 0 2px 12px rgba(0, 0, 0, .2), 0 0 0 1px rgba(0, 0, 0, .05), inset 0 0 4px 2px rgba(25, 119, 235, .8);--shadow-float: 0 5px 10px rgba(0, 0, 0, .3);--shadow-popup: 0 10px 45px rgba(0, 0, 0, .7);--shadow-inset: inset 0 1px 3px rgba(0, 0, 0, .15);--shadow-inset-light: inset 0 0 5px 2px rgba(0, 0, 0, .1);--transition-fast: .15s ease;--transition-normal: .2s ease;--transition-slow: .3s ease;--transition-bounce: .3s cubic-bezier(.34, 1.56, .64, 1);--transition-smooth: .4s cubic-bezier(.4, 0, .2, 1);--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-2xl: 20px;--radius-full: 9999px;--z-base: 0;--z-dropdown: 100;--z-sticky: 500;--z-overlay: 998;--z-modal: 1000;--z-popover: 10000;--z-tooltip: 10001}[data-color=yellow]{--anno-primary: #ffd54f;--anno-secondary: #ffb300;--anno-fill: rgba(255, 235, 59, .35);--anno-fill-hover: rgba(255, 235, 59, .55);--anno-fill-selected: rgba(255, 235, 59, .6);--anno-shadow: rgba(255, 179, 0, .4);--anno-bg: rgba(255, 246, 222, .8);--anno-stroke: #f9a825;--anno-text: #5d4037;--anno-underline: rgba(255, 193, 7, .85);--anno-underline-hover: rgba(255, 193, 7, 1)}[data-color=red]{--anno-primary: #ef5350;--anno-secondary: #e53935;--anno-fill: rgba(244, 67, 54, .3);--anno-fill-hover: rgba(244, 67, 54, .5);--anno-fill-selected: rgba(244, 67, 54, .55);--anno-shadow: rgba(229, 57, 53, .4);--anno-bg: rgba(253, 222, 220, .8);--anno-stroke: #c62828;--anno-text: #fff;--anno-underline: rgba(229, 57, 53, .85);--anno-underline-hover: rgba(229, 57, 53, 1)}[data-color=blue]{--anno-primary: #42a5f5;--anno-secondary: #1e88e5;--anno-fill: rgba(33, 150, 243, .3);--anno-fill-hover: rgba(33, 150, 243, .5);--anno-fill-selected: rgba(33, 150, 243, .55);--anno-shadow: rgba(30, 136, 229, .4);--anno-bg: rgba(219, 237, 253, .8);--anno-stroke: #1565c0;--anno-text: #fff;--anno-underline: rgba(30, 136, 229, .85);--anno-underline-hover: rgba(30, 136, 229, 1)}[data-color=green]{--anno-primary: #66bb6a;--anno-secondary: #43a047;--anno-fill: rgba(76, 175, 80, .3);--anno-fill-hover: rgba(76, 175, 80, .5);--anno-fill-selected: rgba(76, 175, 80, .55);--anno-shadow: rgba(67, 160, 71, .4);--anno-bg: rgba(226, 241, 226, .8);--anno-stroke: #2e7d32;--anno-text: #fff;--anno-underline: rgba(56, 142, 60, .85);--anno-underline-hover: rgba(56, 142, 60, 1)}body.night-mode{--bg-body: rgba(46, 48, 53, 1);--bg-primary: rgba(40, 40, 40, .95);--bg-secondary: rgba(55, 55, 55, 1);--bg-tertiary: rgba(255, 255, 255, .1);--bg-glass: rgba(0, 0, 0, .2);--bg-glass-solid: rgba(40, 40, 40, .85);--bg-hover: rgba(255, 255, 255, .08);--bg-active: rgba(255, 255, 255, .12);--text-primary: #eee;--text-secondary: #aaa;--text-tertiary: #888;--text-muted: #666;--text-inverse: #333;--border-color: rgba(255, 255, 255, .1);--border-color-strong: rgba(255, 255, 255, .2);--border-color-subtle: rgba(255, 255, 255, .05);--shadow-float: 0 5px 10px rgba(0, 0, 0, .5);--shadow-popup: 0 10px 20px 20px rgba(0, 0, 0, .5);--shadow-elevated-active: 0 2px 12px rgba(0, 0, 0, .2), 0 0 0 1px rgba(0, 0, 0, .05), inset 0 0 4px 2px rgba(219, 147, 52, .8);--color-accent: #60a5fa;--color-accent-hover: #3b82f6}html,body{margin:0;padding:0;background:var(--bg-body);font-family:Elms Sans,monospace;display:flex;flex-direction:column;box-sizing:border-box;height:100%;width:100%;overflow:hidden}*,*:before,*:after{box-sizing:inherit}.window-container{display:flex;flex:1;width:100%;height:100%;overflow:hidden;z-index:var(--z-base)}.window-container.split-vertical{flex-direction:row}.window-container.split-horizontal{flex-direction:column}.viewer-pane{flex:1;min-height:0;position:relative;display:flex;flex-direction:column;background:transparent;z-index:1}.pane-scroll-area{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;display:block}.pane-scroll-area::-webkit-scrollbar{display:none}.pane-scroll-area::-webkit-scrollbar:vertical{display:none}.pane-scroll-area::-webkit-scrollbar:horizontal{display:block;height:9px}.pane-scroll-area::-webkit-scrollbar-track{background:#fffc}.pane-scroll-area::-webkit-scrollbar-thumb{background:#32323266;border-radius:5px}.pane-scroll-area::-webkit-scrollbar-thumb:hover{background:#32323299}.pane-scroll-area::-webkit-scrollbar-corner{background-color:#32323266}.viewer-pane.active .pane-controls{box-shadow:var(--shadow-elevated-active)}.pane-scroll-area.hand-mode{cursor:grab}.pane-scroll-area.hand-mode.panning{cursor:grabbing}.pane-scroll-area.hand-mode .textLayer{user-select:none;pointer-events:none}.pane-scroll-area.hand-mode .annotationLayer{pointer-events:none}.split-resizer{flex-shrink:0;background:#3232321a;box-shadow:0 2px 12px #0000004d,0 0 0 1px #0000000d,inset 1px 0 2px 1px #3232324d;transition:background var(--transition-normal)}.split-resizer.vertical{width:4px;cursor:col-resize}.split-resizer.horizontal{height:4px;cursor:row-resize}.split-resizer:hover,.split-resizer.dragging{background:#1977ebcc}.night-mode .split-resizer{background:#fff6}.pane-controls{position:absolute;top:12px;left:50%;transform:translate(-50%);z-index:var(--z-dropdown);background:var(--bg-glass-solid);border-radius:var(--radius-2xl);box-shadow:var(--shadow-elevated);padding:6px 16px;pointer-events:auto;user-select:none;transition:opacity var(--transition-normal),transform var(--transition-normal)}.pane-controls.hidden{transform:translate(-50%) translateY(-70px)}.pane-controls-inner{display:flex;align-items:center;justify-content:center;gap:8px;font-size:13px;color:var(--text-primary)}.pane-btn{background:none;border:1px solid transparent;border-radius:6px;padding:4px 8px;cursor:pointer;transition:all var(--transition-fast);font-size:14px;color:var(--text-secondary)}.pane-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.pane-btn.active{background:var(--color-accent-light);border-color:var(--color-accent-border);color:var(--color-accent-hover)}.pane-btn.small{padding:2px 8px;font-size:16px;font-weight:600}.pane-btn img{display:block;vertical-align:middle}.pane-btn.small img{margin:0 auto}.pane-mode-toggle{display:flex;align-items:center;gap:2px;background:var(--bg-tertiary);border-radius:6px;padding:2px}.pane-mode-toggle .pane-btn{padding:4px 6px;border-radius:var(--radius-sm)}.pane-mode-toggle .pane-btn.active{background:var(--color-accent-light);box-shadow:var(--shadow-inset)}.pane-page-info,.pane-zoom-controls{display:flex;align-items:center;gap:4px}.pane-page-sep{opacity:.4;margin:0 2px}.pane-zoom-level,.pane-current-page,.pane-total-pages{min-width:28px;text-align:center;font-variant-numeric:tabular-nums}.viewer-stage{position:relative;display:flex;background:transparent;flex-direction:column;align-items:center;width:fit-content;min-width:100%;min-height:min-content;transform-origin:0 0}.page-wrapper{display:block;position:relative;background:transparent;box-shadow:0 4px 10px 5px #00000040}.page-wrapper canvas{position:relative;z-index:0}.page-rotate-inner{position:relative;transform-origin:0 0}.pane-rotated .textLayer{user-select:none;pointer-events:none}.pane-rotated .annotation-svg-layer{pointer-events:none;opacity:.3;transition:opacity var(--transition-normal, .2s ease)}.pane-rotated .comments-container{display:none}.page-num{position:relative;color:#fff;font-weight:100;font-size:12px;user-select:none;pointer-events:none}.annotationLayer{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:60;user-select:none}.annotationLayer a{pointer-events:auto;position:absolute;background-color:transparent;text-decoration:none;user-select:none}.annotationLayer a:hover{outline:2px dashed rgba(0,0,255,.3)}.citation-overlay{position:absolute;z-index:2;pointer-events:none}.citation-rect{display:block;background-color:transparent;border-bottom:1px dotted var(--color-accent);pointer-events:auto;cursor:pointer}.crossref-rect{display:block;background-color:transparent;border-bottom:1px dotted rgb(0,255,0);pointer-events:auto;cursor:pointer}.citation-rect:hover{background-color:#3b82f626}.crossref-rect:hover{background-color:#56f24626}.spread-container{display:flex;flex-direction:column;align-items:center;width:100%}.spread-row{display:flex;flex-direction:row;justify-content:center;align-items:flex-start;gap:4px;margin:14px 0}.spread-row-single{justify-content:center}.spread-page{margin:0!important}.spread-row .page-wrapper{margin:0}.demo-banner{position:fixed;top:16px;left:16px;z-index:9999;max-width:520px;font-family:Elms Sans,monospace;animation:demo-banner-in .4s ease-out;transition:opacity .3s ease,transform .3s ease}.demo-banner.dismissed{opacity:0;transform:translateY(12px);pointer-events:none}.demo-banner-content{display:flex;align-items:center;gap:10px;padding:10px 14px;background:#1e1e1ebf;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.08);border-radius:12px;box-shadow:0 4px 24px #0000004d,0 0 0 1px #ffffff0a;color:#ffffffd9;font-size:12.5px;line-height:1.45}.demo-banner-text{flex:1}.demo-banner-text a{color:var(--color-accent)}.demo-banner-text strong{color:#fffffff2;font-weight:600}.demo-banner-dismiss{flex-shrink:0;background:none;border:none;color:#fff6;font-size:18px;cursor:pointer;padding:0 2px;line-height:1;transition:color .15s ease}.demo-banner-dismiss:hover{color:#fffc}@keyframes demo-banner-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.textLayer{position:absolute;text-align:initial;inset:0;overflow:clip;opacity:1;line-height:1;text-size-adjust:none;forced-color-adjust:none;transform-origin:0 0;caret-color:CanvasText;font-family:Times New Rome,serif;z-index:2}.textLayer.highlighting{touch-action:none}.textLayer :is(span,br){color:transparent;position:absolute;white-space:pre;cursor:text;transform-origin:0% 0%;line-height:1;pointer-events:all}.textLayer{--min-font-size: 1;--text-scale-factor: calc(var(--total-scale-factor) * var(--min-font-size));--min-font-size-inv: calc(1 / var(--min-font-size))}.textLayer>:not(.markedContent),.textLayer .markedContent span:not(.markedContent){z-index:1;--font-height: 0;font-size:calc(var(--text-scale-factor) * var(--font-height));--scale-x: 1;--rotate: 0deg;transform:rotate(var(--rotate)) scaleX(var(--scale-x)) scale(var(--min-font-size-inv))}.textLayer .markedContent{display:contents}.textLayer span{padding:.1em 0;margin:-.1em 0;color:transparent}.textLayer span[role=img]{user-select:none;cursor:default}.textLayer ::selection{background:color-mix(in srgb,AccentColor,transparent 75%)}@supports not (background: color-mix(in srgb,AccentColor,transparent 75%)){.textLayer ::selection{background:#0000ff40}}.textLayer br::selection{background:transparent}.textLayer .endOfContent{display:block;position:absolute;inset:100% 0 0;z-index:0;cursor:default;user-select:none}.textLayer.selecting .endOfContent{top:0}.textLayer .highlight{--highlight-bg-color: rgba(255, 235, 59, .4);--highlight-selected-bg-color: rgba(255, 193, 7, .6);margin:-1px;padding:1px;background-color:var(--highlight-bg-color);border-radius:var(--radius-sm, 4px);cursor:pointer;transition:background-color var(--transition-fast, .15s ease)}.textLayer .highlight:hover{background-color:var(--highlight-selected-bg-color)}.textLayer .highlight.appended{position:initial}.textLayer .highlight.begin{border-radius:4px 0 0 4px}.textLayer .highlight.end{border-radius:0 4px 4px 0}.textLayer .highlight.middle{border-radius:0}.textLayer .highlight.selected{background-color:var(--highlight-selected-bg-color)}.textLayer .highlight.yellow{--highlight-bg-color: rgba(255, 235, 59, .4);--highlight-selected-bg-color: rgba(255, 193, 7, .6)}.textLayer .highlight.green{--highlight-bg-color: rgba(76, 175, 80, .4);--highlight-selected-bg-color: rgba(56, 142, 60, .6)}.textLayer .highlight.blue{--highlight-bg-color: rgba(33, 150, 243, .4);--highlight-selected-bg-color: rgba(25, 118, 210, .6)}.textLayer .highlight.pink{--highlight-bg-color: rgba(233, 30, 99, .3);--highlight-selected-bg-color: rgba(194, 24, 91, .5)}.textLayer .highlight.purple{--highlight-bg-color: rgba(156, 39, 176, .3);--highlight-selected-bg-color: rgba(123, 31, 162, .5)}@media screen and (forced-colors:active){.textLayer .highlight{--highlight-bg-color: transparent;--highlight-selected-bg-color: transparent;outline:2px solid currentColor}}.floating-toolbar-wrapper{position:fixed;z-index:var(--z-modal);pointer-events:none;display:flex;flex-direction:column;align-items:center;gap:10px;transition:transform var(--transition-smooth),opacity .4s ease}.floating-toolbar-wrapper.hidden{transform:translate(calc(100% + 50px));opacity:.6}.floating-toolbar-wrapper.tree-open .floating-toolbar{opacity:0;pointer-events:none;transform:scale(.8)}.floating-toolbar-wrapper.tree-open .floating-ball{cursor:grab}.floating-toolbar-hit-area{position:fixed;width:120px;height:380px;right:0;pointer-events:none;z-index:0}.floating-toolbar-hit-area.active{pointer-events:auto}.goo-container{position:relative;width:75px;height:75px;background:transparent;z-index:calc(var(--z-overlay) + 1);--x: 50;--y: 50;--goo-opacity: 0;--brt: 1;transition:transform var(--transition-bounce),opacity var(--transition-slow)}.goo-container:before{content:"";position:absolute;border-radius:50%;inset:-18px;filter:url(#goo) drop-shadow(0 .2em .2em #00000099) brightness(var(--brt));background:var(--ball-body) content-box,radial-gradient(40px 40px at calc(var(--x) * 1%) calc(var(--y) * 1%),rgba(var(--goo-body),var(--goo-opacity)) 0%,transparent 100%) border-box;padding:20px;z-index:0;pointer-events:none;transition:filter var(--transition-normal),--goo-opacity var(--transition-normal)}.goo-container.dragging:before{--goo-opacity: 1}.floating-ball{position:absolute;inset:0;border-radius:50%;display:flex;align-items:center;justify-content:center;pointer-events:auto;cursor:grab;user-select:none;z-index:1}@property --goo-opacity{syntax: "<number>"; initial-value: 0; inherits: true;}.inner{position:absolute;z-index:calc(var(--z-overlay) - 1);display:flex;align-items:center;justify-content:center}.goo-container:hover:not(.dragging){transform:scale(1.1)}.goo-container.dragging .floating-ball{cursor:grabbing}.page-display{display:flex;flex-direction:column;align-items:center;font-family:Elms Sans,monospace;color:var(--page-color);font-size:20px;font-weight:300;line-height:1;z-index:calc(var(--z-modal) + 2)}.page-divider{font-size:15px;opacity:.7;transform:scaleX(4)}.floating-toolbar{position:absolute;left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:8px;pointer-events:none;z-index:calc(var(--z-overlay) - 8)}.floating-toolbar-top{bottom:calc(100% + 10px);flex-direction:column-reverse}.floating-toolbar-bottom{top:calc(100% + 10px)}.tool-btn{--btn-scale: 1;--btn-delay: 0ms;--btn-y: 0px;width:40px;height:40px;border-radius:50%;border:none;background:#fffc;backdrop-filter:blur(5px) saturate(180%);color:var(--text-primary);cursor:pointer;box-shadow:inset 2px 2px 5px #0003,inset -1px -2px 5px #0000001a,inset 3px 1px 8px 3px #ffffffa6,inset -3px -3px 12px 5px #fff9,inset -2px -1px 1px #0000000d,0 4px 10px #0000004d;display:flex;align-items:center;justify-content:center;pointer-events:auto;opacity:0;transform:scale(0) translateY(0);transition:opacity var(--transition-slow) var(--btn-delay),transform .5s var(--btn-delay) cubic-bezier(.165,.84,.44,1)}[data-state=expanding] .tool-btn,[data-state=expanded] .tool-btn{opacity:1;transform:scale(var(--btn-scale)) translateY(var(--btn-y))}[data-state=expanded] .tool-btn{transition-delay:0ms}[data-state=expanded] .tool-btn:hover{transform:scale(calc(var(--btn-scale) * 1.1)) translateY(var(--btn-y))}[data-state=collapsing] .tool-btn{opacity:0;transform:scale(0) translateY(0)}.rotate-icon{transition:transform .35s cubic-bezier(.4,0,.2,1)}.jump-indicators{position:fixed;pointer-events:none;z-index:var(--z-popover);opacity:0;transition:opacity var(--transition-normal)}.jump-indicators.visible{opacity:1}.jump-indicator{position:absolute;width:45px;height:45px;border-radius:50%;background:#fff6;border:2px solid rgba(50,50,50,.8);display:flex;align-items:center;justify-content:center;color:#323232cc;transition:all var(--transition-fast);transform:translate(-50%);left:50%;font-size:30px}.jump-indicator.jump-top{bottom:100%;margin-bottom:180px}.jump-indicator.jump-bottom{top:100%;margin-top:230px}.jump-indicator.active{background:#64c8ff4d;border-color:#64c8ff99;color:#64c8ff;transform:translate(-50%) scale(1.1)}.jump-indicator.triggered{background:#64ff9666;border-color:#64ff96cc;color:#fff;transform:translate(-50%) scale(1.2)}.citation-popup{z-index:var(--z-popover);max-width:450px;min-width:320px;font-size:14px;display:none;pointer-events:auto;position:absolute;border-radius:var(--radius-lg);box-shadow:0 10px 45px #000000b3,0 0 0 1px #ffffff80,inset 0 5px 20px #fffc;background:var(--bg-glass);background-clip:padding-box;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);opacity:0;transform:translateY(-10px) scale(.95);overflow:hidden;-webkit-transform:translate3d(0,0,0);-webkit-backface-visibility:hidden;-webkit-perspective:1000;transition:opacity var(--transition-normal) cubic-bezier(.4,0,.2,1),transform var(--transition-normal) cubic-bezier(.4,0,.2,1);-webkit-transition:opacity var(--transition-normal) cubic-bezier(.4,0,.2,1),-webkit-transform var(--transition-normal) cubic-bezier(.4,0,.2,1)}.citation-popup.error{color:#d32f2f;border-color:#d32f2f;padding:12px 16px}.citation-popup-header{display:flex;align-items:center;padding:8px 12px 5px;border-bottom:1px solid var(--border-color);background:var(--bg-glass)}.citation-popup-tabs{display:flex;gap:0;border-radius:var(--radius-md);padding:3px}.sep-line{background-color:#ccc;margin:8px 5px;width:2px;height:1rem;border-radius:var(--radius-sm)}.citation-tab{padding:6px 5px;border:none;background:transparent;border-radius:6px;font-family:inherit;font-size:14px;font-weight:400;color:var(--text-muted);cursor:pointer;transition:all .1s ease}.citation-tab:hover{background:var(--bg-hover);color:var(--text-secondary);box-shadow:0 1px 3px #0003}.citation-tab:active{background:var(--bg-active)}.citation-tab.active{background:var(--bg-active);color:var(--text-primary);box-shadow:var(--shadow-inset)}.citation-nav-container{display:flex;align-items:center;gap:4px;margin-left:auto;padding-left:8px}.citation-nav-arrow{display:flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;border:none;background:transparent;border-radius:var(--radius-sm);cursor:pointer;color:var(--text-secondary);transition:background .15s ease,color .15s ease}.citation-nav-arrow:hover{background:var(--bg-hover);color:var(--text-primary)}.citation-nav-arrow:active{background:var(--bg-active)}.citation-nav-arrow svg{width:16px;height:16px;flex-shrink:0}.citation-nav-indicators{display:flex;align-items:center;gap:2px;padding:0 2px;max-width:180px;overflow-x:auto;scrollbar-width:none}.citation-nav-indicators::-webkit-scrollbar{display:none}.citation-nav-indicator{display:flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 2px;border:none;background:transparent;border-radius:var(--radius-sm);font-family:inherit;font-size:11px;font-weight:500;color:var(--text-muted);cursor:pointer;flex-shrink:0;transition:background .15s ease,color .15s ease}.citation-nav-indicator:hover{background:var(--bg-hover);color:var(--text-primary)}.citation-nav-indicator.active{background:var(--bg-active);color:var(--text-primary);font-weight:600;box-shadow:var(--shadow-inset)}.citation-popup-content{padding:12px 16px}.citation-popup-text{font-family:Georgia,Times New Roman,serif;color:var(--text-primary);line-height:1.4;white-space:pre-wrap;word-wrap:break-word}.citation-popup-toggle{display:inline;background:transparent;color:var(--text-primary);border:none;border-radius:var(--radius-sm);font-family:inherit;font-size:14px;font-weight:700;letter-spacing:1px;cursor:pointer;padding:1px 5px;margin-left:2px;vertical-align:baseline;transition:all var(--transition-fast)}.citation-popup-toggle:hover{background:#32323226;color:var(--text-primary)}.citation-popup-toggle.expanded{font-size:16px;letter-spacing:0;padding:0 6px}.citation-skeleton{display:flex;flex-direction:column;gap:10px;padding:4px 0}.skeleton-bar{height:14px;background:linear-gradient(90deg,#00000014,#0000001f,#00000014);border-radius:var(--radius-sm);animation:skeleton-pulse 1.5s ease-in-out infinite}.skeleton-title{width:85%;height:18px}.skeleton-authors{width:70%;height:12px;margin-bottom:4px}.skeleton-abstract{width:100%}.skeleton-abstract.short{width:60%}@keyframes skeleton-pulse{0%,to{opacity:.4}50%{opacity:1}}.citation-popup-abstract{font-family:Georgia,Times New Roman,serif}.scholar-title{display:block;font-size:15px;font-weight:500;color:#2252c9;text-decoration:none;line-height:1.3;margin-bottom:6px;transition:color var(--transition-fast)}.scholar-title:hover{color:#21419c;text-decoration:underline}.scholar-authors{font-size:12px;color:var(--text-secondary);line-height:1.4;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid var(--border-color)}.scholar-abstract{font-size:13px;color:var(--text-primary);line-height:1.55}.scholar-no-abstract{font-size:13px;color:var(--text-tertiary);font-style:italic}.scholar-error{display:flex;flex-direction:column;align-items:center;gap:12px;padding:8px 0;text-align:center}.scholar-error-text{font-size:13px;color:var(--text-secondary)}.scholar-search-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;background:#1a73e81a;color:#1a73e8;border:1px solid rgba(26,115,232,.3);border-radius:var(--radius-2xl);font-size:13px;font-weight:500;text-decoration:none;cursor:pointer;transition:all var(--transition-fast)}.scholar-search-btn:hover{background:#1a73e833;border-color:#1a73e880}.nav-tree-backdrop{position:fixed;top:0;bottom:0;z-index:var(--z-overlay);pointer-events:none;opacity:0;transition:all var(--transition-slow);overflow:hidden;background:var(--bg-glass);backdrop-filter:blur(11px) saturate(180%);-webkit-backdrop-filter:blur(11px) saturate(180%);mask:linear-gradient(to right,transparent 0%,rgba(0,0,0,.3) 20%,rgba(0,0,0,.6) 30%,rgba(0,0,0,.9) 40%,black 60%)}.nav-tree-backdrop.visible{opacity:1;pointer-events:auto}body.night-mode .nav-tree-backdrop{backdrop-filter:blur(30px) saturate(180%);-webkit-backdrop-filter:blur(30px) saturate(180%);background:#0000001a}.nav-tree-container{position:fixed;z-index:calc(var(--z-overlay) + 1);pointer-events:none;opacity:0;transition:opacity .25s ease;overflow-y:auto;overflow-x:hidden;background:transparent}.nav-tree-container.visible{opacity:1;pointer-events:auto}.nav-tree-container::-webkit-scrollbar{display:none}.nav-tree-wrapper{position:relative;padding:12px 8px;min-height:50px}.nav-tree-list{position:relative;z-index:1;min-width:180px}.nav-tree-branches{position:absolute;top:0;left:0;pointer-events:none;z-index:0}.nav-tree-branch{stroke:#32323299;stroke-width:1;fill:none}body.night-mode .nav-tree-branch{stroke:#fff6}.nav-tree-item{position:relative;max-width:95%}.nav-tree-item.pinned>.nav-tree-row .nav-tree-chevron{color:#000;transform:scale(1.3)}body.night-mode .nav-tree-item.pinned>.nav-tree-row .nav-tree-chevron{color:var(--color-accent)}.nav-tree-row{display:flex;align-items:center;gap:3px;padding:4px 0;cursor:pointer;border-radius:var(--radius-sm);background:transparent;margin:1px 0;transition:background-color var(--transition-normal);white-space:nowrap}.nav-tree-row:hover,.nav-tree-row.hovered{background:var(--bg-tertiary);box-shadow:var(--shadow-inset-light)}.nav-tree-chevron{width:12px;height:12px;margin-left:5px;display:flex;align-items:center;justify-content:center;font-size:20px;color:var(--text-secondary);flex-shrink:0;transition:transform var(--transition-fast);cursor:pointer}.nav-tree-chevron:empty{margin-left:0;visibility:hidden}.nav-tree-chevron:hover{color:var(--text-primary);transform:scale(1.2)}.nav-tree-icon{width:16px;height:16px;display:flex;align-items:center;justify-content:center;font-size:11px;flex-shrink:0;color:var(--text-secondary)}.nav-tree-row--section .nav-tree-icon{color:var(--text-secondary)}.nav-tree-row--figure .nav-tree-icon{color:#ea580c}.nav-tree-row--table .nav-tree-icon{color:#16a34a}body.night-mode .nav-tree-row--figure .nav-tree-icon{color:#fb923c}body.night-mode .nav-tree-row--table .nav-tree-icon{color:#4ade80}.nav-tree-title{flex:1;font-size:14px;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.nav-tree-dots{display:flex;align-items:center;gap:2px;margin-left:4px;flex-shrink:0}.nav-tree-dot{width:6px;height:6px;border-radius:50%}.nav-tree-dot-badge{font-size:9px;color:var(--text-tertiary);margin-left:2px}.nav-tree-empty{padding:20px;text-align:center;color:var(--text-tertiary);font-size:13px}.night-mode .page-wrapper canvas{filter:invert(1) hue-rotate(75deg) brightness(1.1) contrast(.9)}.night-mode .page-wrapper{box-shadow:0 0 10px 2px #00000080}.night-mode .page-num{color:#888}.night-mode .citation-popup{background:#0003;box-shadow:0 10px 20px 20px #00000080,0 0 0 2px #0003,inset 0 0 20px 3px #ffffff4d}.night-mode .citation-popup-header{background:#2f3035}.night-mode .citation-tab{color:#fff}.night-mode .citation-tabs{background:#323232}.night-mode .citation-tab:hover{background:#646464b3}.night-mode .citation-tab:active{background:#969696}.night-mode .citation-tab.active{background:#646464;box-shadow:inset 0 0 5px 1px #ffffff1a}.night-mode .citation-popup-text,.night-mode .citation-popup-toggle,.night-mode .scholar-abstract{color:#fff}.night-mode .scholar-title{color:#4778f5}.night-mode .scholar-title:hover{color:#4795f5}.night-mode .scholar-authors{color:#e6e6e6;border-bottom:1px solid rgba(180,180,180)}.night-mode .pane-controls{background:#282828d9;box-shadow:0 2px 12px #0000004d,0 0 0 1px #ffffff1a,inset 0 -2px 10px 1px #ffffff1a}.night-mode .pane-btn img{filter:invert(.8)}.night-mode .pane-btn.active{background:#3b82f64d;border-color:#3b82f680;box-shadow:inset 0 0 3px 1px #ffffff1a}.night-mode .goo-container:before{filter:url(#goo) drop-shadow(0 .3em .1em #00000099) drop-shadow(0 -.05em 1em #ffffff4d);background:radial-gradient(ellipse 50% 50% at 75% 85%,rgba(0,0,0,.5) 0%,transparent 45%) content-box,linear-gradient(140deg,#c8c8c8 20%,#787878 45%,#e6e6e6 90%) content-box,radial-gradient(45px 45px at calc(var(--x) * 1%) calc(var(--y) * 1%),rgba(200,200,200,var(--goo-opacity)) 0%,transparent 100%) border-box}.page-display.night-mode{filter:invert(1)}.night-mode .tool-btn{background:linear-gradient(135deg,#828282cc 18%,#969696cc 65%,#fafafacc 90%);box-shadow:inset -2px -2px 5px 1px #0000008e,inset 1px 1px 5px 1px #0000006d,0 3px 5px 2px #ffffff10,0 0 10px 2px #ffffff05}.night-mode .inner{filter:invert(1)}.night-mode .jump-indicator{color:#ffffff80;background:#fff3;border-color:#fff9}.night-mode .jump-indicator.active{background:#6496ff4d;border-color:#6496ff80}.night-mode .file-menu-container.active{filter:url(#file-menu-goo-filter) drop-shadow(0 0 3px rgb(0,0,0,.5)) drop-shadow(-1px -1px 2px rgb(255,255,255,.1))}.night-mode .progress-bar-track{background:linear-gradient(to bottom,#ffffff0d,#ffffff1a,#ffffff0d)}.night-mode .progress-bar-glow{background:linear-gradient(to bottom,#c8dcff80,#b4c8ffcc);box-shadow:0 0 8px #b4c8ff99,0 0 16px #96b4ff4d,0 0 24px #78a0ff26}.night-mode .indicator-core{background:radial-gradient(circle at 40% 40%,#c8dcff,#b4c8ffe6 40%,#96b4ffcc)}.night-mode .section-tick{background:#64646480}.night-mode .section-mark.reached .section-tick{background:#b4c8ffcc;box-shadow:0 0 4px #b4c8ff80,0 0 8px #96b4ff4d}.night-mode .progress-end-marker{background:#64646466}.night-mode .progress-end-marker.reached{background:#b4c8ffe6;box-shadow:0 0 6px #b4c8ffb3,0 0 12px #96b4ff66}.night-mode .pane-progress-ring .progress-ring-bg{stroke:#64646433}.night-mode .pane-progress-ring .progress-ring-fill{stroke:#db933466}.night-mode .pane-progress-ring .progress-ring-glow{stroke:#db933433}.night-mode .viewer-pane.active .pane-progress-ring .progress-ring-fill{stroke:#db9334cc}.night-mode .viewer-pane.active .pane-progress-ring .progress-ring-glow{stroke:#db933466}.night-mode .pane-progress-ring.completed .progress-ring-fill{stroke:#b4c8ffcc}.night-mode .pane-progress-ring.completed .progress-ring-glow{stroke:#b4c8ff66}.night-mode .viewer-pane:not(.active) .pane-progress-ring .progress-ring-fill{stroke:#6464644d}.night-mode .viewer-pane:not(.active) .pane-progress-ring .progress-ring-glow{stroke:#64646426}.night-mode .annotation-toolbar{background:#ffffff4d}.night-mode .toolbar-divider{background:#fff3}.night-mode .action-btn{filter:invert(1) hue-rotate(75deg)}.night-mode .action-btn.active{background:#ffffff4d}.night-mode .action-btn.delete-btn:hover{color:#ff3c3c;filter:none}.annotation-toolbar-container{position:fixed;z-index:var(--z-popover);pointer-events:none;opacity:0;transform:scale(.8);transition:opacity var(--transition-fast),transform var(--transition-fast)}.annotation-toolbar-container.visible{pointer-events:auto;opacity:1;transform:scale(1)}.annotation-toolbar{display:flex;align-items:center;background:#fff3;backdrop-filter:blur(8px);border-radius:22px;box-shadow:inset 1px 1px 5px 1px #fffc,inset -2px -2px 3px 2px #fff3,0 4px 20px #0000004d,0 2px 4px 5px #0000001a;padding:0;overflow:hidden;transition:all var(--transition-normal) cubic-bezier(.4,0,.2,1)}.annotation-toolbar.collapsed{width:44px;height:44px;border-radius:50%;cursor:pointer}.annotation-toolbar.collapsed .toolbar-content{opacity:0;pointer-events:none;width:0}.annotation-toolbar.collapsed .toolbar-ball{display:flex;align-items:center;justify-content:center;width:44px;height:44px}.annotation-toolbar.collapsed .toolbar-ball:after{content:"";width:28px;height:28px;border-radius:50%;transition:background var(--transition-normal),box-shadow var(--transition-normal);background:linear-gradient(135deg,var(--anno-primary) 0%,var(--anno-secondary) 100%);box-shadow:0 2px 8px var(--anno-shadow)}.annotation-toolbar.expanded{width:auto;height:44px;padding:0 8px}.annotation-toolbar.expanded .toolbar-ball{display:none}.annotation-toolbar.expanded .toolbar-content{display:flex;align-items:center;gap:4px;opacity:1;pointer-events:auto}.toolbar-content{display:flex;align-items:center;gap:4px;transition:opacity var(--transition-fast)}.toolbar-colors{display:flex;gap:4px;padding:4px}.color-btn{width:38px;height:38px;border:none;background:transparent;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform var(--transition-fast),background-color var(--transition-fast)}.color-btn:hover{transform:scale(1.15)}.color-circle{width:26px;height:26px;border-radius:50%;box-shadow:1px 2px 4px 1px #0003;transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.color-circle.yellow{background:linear-gradient(135deg,#ffd54f,#ffb300)}.color-circle.red{background:linear-gradient(135deg,#ef5350,#e53935)}.color-circle.blue{background:linear-gradient(135deg,#42a5f5,#1e88e5)}.color-circle.green{background:linear-gradient(135deg,#66bb6a,#43a047)}.toolbar-divider{width:2px;height:24px;border-radius:3px;background:#32323233;margin:0 4px}.toolbar-actions{display:flex;gap:2px;padding:4px}.action-btn{width:32px;height:32px;border:none;background:transparent;border-radius:var(--radius-md);cursor:pointer;display:flex;align-items:center;justify-content:center;color:#323232b3;transition:all var(--transition-fast)}.action-btn:hover{background:#3232321a;box-shadow:inset 0 0 2px 1px #fff3}.action-btn.active{background:#32323226;box-shadow:var(--shadow-inset-light);color:#fff}.action-btn.delete-btn:hover{background:#ef53504d;color:#222}.action-btn.hidden{display:none}.action-btn .icon{width:18px;height:18px}.comment-input-container{position:fixed;z-index:calc(var(--z-popover) + 1);pointer-events:none;opacity:0;transform:scale(.9) translateY(-10px);transition:opacity var(--transition-normal),transform var(--transition-normal)}.comment-input-container.visible{pointer-events:auto;opacity:1;transform:scale(1) translateY(0)}.comment-input-popup{width:280px;background:#fff9;backdrop-filter:blur(10px);border-radius:var(--radius-lg);box-shadow:0 8px 32px #0006;overflow:hidden}.comment-input-container .comment-input-header{background:linear-gradient(135deg,color-mix(in srgb,var(--anno-primary) 90%,transparent),color-mix(in srgb,var(--anno-secondary) 70%,transparent))}.comment-input-header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid rgba(255,255,255,.1);box-shadow:-1px -1px 2px 2px #0003,inset 0 2px 6px 1px #fff9}.comment-input-title{font-size:14px;font-weight:400;color:#ffffffe6}.comment-close-btn{width:24px;height:24px;border:none;background:transparent;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#ffffffe6;transition:all var(--transition-fast);font-size:14px}.comment-close-btn:hover{background:#ffffff1a;color:#fff}.comment-textarea{width:100%;padding:12px;border:none;background:transparent;color:#5c5c5c;font-size:14px;line-height:1.5;resize:none;outline:none;font-family:georgia;font-weight:400}.comment-textarea::placeholder{color:#fff6}.comment-input-actions{display:flex;justify-content:flex-end;gap:8px;padding:8px 12px 12px}.comment-save-btn{padding:6px 14px;border:none;border-radius:6px;font-family:inherit;font-size:14px;font-weight:400;cursor:pointer;transition:all var(--transition-fast);background:#3232324d;color:#fff}.comment-save-btn:hover{background:#32323280;box-shadow:inset 0 0 5px 2px #3232324d}.comments-container{position:absolute;top:0;bottom:0;right:0;width:260px;pointer-events:none;z-index:var(--z-dropdown)}.comments-container.collapsed-mode{width:40px}.comment-card{position:absolute;right:16px;pointer-events:auto;transition:all var(--transition-normal)}.comments-container.collapsed-mode .comment-card{right:0}.comment-collapsed-indicator{display:none;width:32px;height:32px;border-radius:4px 0 0 4px;cursor:pointer;align-items:center;justify-content:center;box-shadow:-2px 0 8px #0003;transition:all var(--transition-fast);background:var(--anno-primary, rgba(255, 213, 79, .9));color:var(--anno-text, #5d4037)}.comment-collapsed-indicator svg{width:16px;height:16px;opacity:.8}.comment-collapsed-indicator:hover{width:36px}.comments-container.collapsed-mode .comment-collapsed-indicator{display:flex}.comments-container.collapsed-mode .comment-expanded-content{display:none}.comments-container.collapsed-mode .comment-card.force-expanded .comment-expanded-content{display:block;position:absolute;right:40px;top:0;width:220px}.comments-container.collapsed-mode .comment-card.force-expanded .comment-collapsed-indicator{background:#fff!important}.comments-container.collapsed-mode .comment-card.force-expanded .comment-collapsed-indicator svg{color:#5c5c5c}.comment-expanded-content{backdrop-filter:blur(5px) brightness(1.1);border-radius:5px;box-shadow:inset 0 1px 10px 1px #fff6,0 3px 8px #0006;overflow:hidden;background:var(--anno-bg, rgba(255, 246, 222, .8))}.comment-text{padding:8px 12px;font-family:georgia;font-size:13px;line-height:1.5;color:#5c5c5c;max-height:120px;overflow-y:auto}.comment-actions{display:flex;justify-content:flex-end;gap:4px;padding:6px 8px;opacity:0;transition:opacity var(--transition-fast)}.comment-card:hover .comment-actions{opacity:1}.comment-edit-btn,.comment-delete-btn{width:28px;height:28px;border:none;background:transparent;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#5c5c5c;transition:all var(--transition-fast)}.comment-edit-btn:hover,.comment-delete-btn:hover{background:#ffffff1a;color:#000}.comment-delete-btn:hover{background:#ef535033;color:#ef5350}.comment-edit-btn svg,.comment-delete-btn svg{width:14px;height:14px}.comment-card.highlighted .comment-expanded-content{box-shadow:inset 0 1px 10px 1px #fff6,0 3px 12px #00000080}.annotation-svg-layer{position:absolute;top:0;left:0;pointer-events:none;z-index:50;overflow:visible}.annotation-group{pointer-events:none}.annotation-group .annotation-outline{opacity:0;transition:opacity var(--transition-fast);stroke:var(--anno-stroke, #f9a825)}.annotation-group.hovered .annotation-outline,.annotation-group.selected .annotation-outline{opacity:1}.annotation-mark{pointer-events:auto;cursor:pointer;transition:fill var(--transition-fast),opacity var(--transition-fast)}.annotation-mark.highlight{fill:var(--anno-fill, rgba(255, 235, 59, .35))}.annotation-group.hovered .annotation-mark.highlight{fill:var(--anno-fill-hover, rgba(255, 235, 59, .55))}.annotation-group.selected .annotation-mark.highlight{fill:var(--anno-fill-selected, rgba(255, 235, 59, .6))}.annotation-mark.underline{fill:var(--anno-underline, rgba(255, 193, 7, .85))}.annotation-group.hovered .annotation-mark.underline{fill:var(--anno-underline-hover, rgba(255, 193, 7, 1))}.progress-bar-container{position:fixed;left:20px;top:50%;transform:translateY(-50%);height:60vh;width:20px;z-index:var(--z-sticky);pointer-events:none;opacity:1;transition:opacity .4s ease,transform var(--transition-smooth)}.progress-bar-container.split-mode{opacity:0;transform:translateY(-50%) translate(-40px);pointer-events:none}.progress-bar-track{position:relative;width:2px;height:100%;margin-left:8px;background:linear-gradient(to bottom,#ffffff14,#ffffff26,#ffffff14);border-radius:2px;box-shadow:0 0 8px #ffffff1a,-2px -2px 6px 3px #0000001a,inset 0 0 2px #ffffff0d;transition:box-shadow var(--transition-slow)}.progress-bar-glow{position:absolute;top:0;left:0;width:100%;height:0%;background:linear-gradient(to bottom,#fff9,#ffffffe6);border-radius:2px;box-shadow:0 0 6px #fff9,0 0 12px #ffffff4d,0 0 20px #ffffff26;transition:height .15s ease-out}.progress-bar-track.completion-pulse{animation:track-pulse .6s ease-out}@keyframes track-pulse{0%{box-shadow:0 0 8px #ffffff1a,inset 0 0 2px #ffffff0d}50%{box-shadow:0 0 20px #ffffff80,0 0 40px #ffffff4d,inset 0 0 4px #fff3}to{box-shadow:0 0 8px #ffffff1a,inset 0 0 2px #ffffff0d}}.progress-indicator{position:absolute;left:50%;top:0%;transform:translate(-50%,-50%);width:12px;height:12px;z-index:10;transition:top .15s ease-out}.indicator-core{position:absolute;inset:3px;background:radial-gradient(circle at 40% 40%,#fff,#ffffffe6 40%,#dce6ffcc);border-radius:50%;box-shadow:0 0 4px #ffffffe6,0 0 8px #fff9}.indicator-glow{position:absolute;inset:0;background:radial-gradient(circle,rgba(255,255,255,.4) 0%,rgba(255,255,255,.1) 50%,transparent 70%);border-radius:50%;filter:blur(2px)}.indicator-pulse{position:absolute;inset:-4px;background:radial-gradient(circle,rgba(255,255,255,.3) 0%,transparent 70%);border-radius:50%;opacity:.7;animation:indicator-breathe 2s ease-in-out infinite}@keyframes indicator-breathe{0%,to{transform:scale(1);opacity:.5}50%{transform:scale(1.5);opacity:.3}}.progress-indicator.section-pulse .indicator-core{animation:section-hit .4s ease-out}.progress-indicator.section-pulse .indicator-glow{animation:glow-burst .5s ease-out}@keyframes section-hit{0%{transform:scale(1);box-shadow:0 0 4px #ffffffe6,0 0 8px #fff9}30%{transform:scale(1.5);box-shadow:0 0 10px #fff,0 0 20px #fffc,0 0 30px #c8dcff80}to{transform:scale(1);box-shadow:0 0 4px #ffffffe6,0 0 8px #fff9}}@keyframes glow-burst{0%{transform:scale(1);opacity:.2}50%{transform:scale(2.5);opacity:.6}to{transform:scale(1);opacity:.2}}.progress-sections{position:absolute;top:0;left:100%;width:10px;height:100%;margin-left:3px}.section-mark{position:absolute;right:0;transform:translateY(-50%);width:8px;height:8px;cursor:default;pointer-events:auto}.section-tick{position:absolute;right:0;top:50%;transform:translateY(-50%);width:6px;height:2px;background:#32323266;box-shadow:1px 1px 3px 1px #0000001a;border-radius:1px;transition:background var(--transition-slow),width var(--transition-slow),box-shadow var(--transition-slow)}.section-mark.reached .section-tick{background:#ffffffb3;width:8px;box-shadow:0 0 4px #ffffff80,0 0 8px #fff3}.section-mark.celebrating .section-tick{animation:tick-celebrate .5s ease-out}@keyframes tick-celebrate{0%{transform:translateY(-50%) scaleX(1);background:#ffffffb3}40%{transform:translateY(-50%) scaleX(2);background:#fff;box-shadow:0 0 8px #fffc,0 0 16px #fff6}to{transform:translateY(-50%) scaleX(1);background:#ffffffb3}}.section-ripple{position:absolute;inset:-6px;border:1px solid rgba(255,255,255,.6);border-radius:50%;animation:ripple-expand .6s ease-out forwards}@keyframes ripple-expand{0%{transform:scale(.5);opacity:1}to{transform:scale(3);opacity:0}}.progress-end-marker{position:absolute;bottom:-2px;left:50%;transform:translate(-50%);width:6px;height:6px;background:#9696964d;border-radius:50%;transition:background var(--transition-normal),box-shadow var(--transition-normal),transform var(--transition-normal)}.progress-end-marker.reached{background:#ffffffe6;box-shadow:0 0 6px #ffffffb3,0 0 12px #fff6}.progress-end-marker.celebrating{animation:end-celebrate .8s ease-out}@keyframes end-celebrate{0%{transform:translate(-50%) scale(1)}30%{transform:translate(-50%) scale(2);box-shadow:0 0 15px #fff,0 0 30px #c8dcffb3,0 0 50px #96b4ff66}60%{transform:translate(-50%) scale(1.5)}to{transform:translate(-50%) scale(1)}}.progress-bar-container.completion-celebration:after{content:"";position:absolute;inset:-20px;background:radial-gradient(ellipse at center,rgba(255,255,255,.2) 0%,transparent 70%);animation:completion-flash 1s ease-out forwards;pointer-events:none}@keyframes completion-flash{0%{opacity:0;transform:scale(.8)}30%{opacity:1;transform:scale(1.2)}to{opacity:0;transform:scale(1.5)}}.pane-progress-ring{position:absolute;top:-3px;left:-3px;pointer-events:none;z-index:-1;overflow:visible}.pane-progress-ring .progress-ring-bg{fill:none;stroke:#64646433;stroke-width:2}.pane-progress-ring .progress-ring-fill{fill:none;stroke:#3b82f680;stroke-width:2.5;stroke-linecap:round;transition:stroke-dasharray var(--transition-fast)}.pane-progress-ring .progress-ring-glow{fill:none;stroke:#3b82f633;stroke-width:5;stroke-linecap:round;filter:blur(3px);transition:stroke-dasharray var(--transition-fast)}.pane-progress-ring .progress-grad-start{stop-color:#3b82f699}.pane-progress-ring .progress-grad-end{stop-color:#63aaffcc}.viewer-pane.active .pane-progress-ring .progress-ring-fill{stroke:#3b82f6e6}.viewer-pane.active .pane-progress-ring .progress-ring-glow{stroke:#3b82f666}.pane-progress-ring.completed .progress-ring-fill{stroke:#22c55ecc;animation:progress-ring-complete-pulse 1s ease-out}.pane-progress-ring.completed .progress-ring-glow{stroke:#22c55e66;animation:progress-ring-glow-pulse 1s ease-out}@keyframes progress-ring-complete-pulse{0%{stroke-width:2.5}40%{stroke-width:4}to{stroke-width:2.5}}@keyframes progress-ring-glow-pulse{0%{stroke-width:5;filter:blur(3px)}40%{stroke-width:10;filter:blur(6px)}to{stroke-width:5;filter:blur(3px)}}.viewer-pane.active .pane-controls:has(.pane-progress-ring){box-shadow:var(--shadow-elevated)}.viewer-pane:not(.active) .pane-progress-ring .progress-ring-fill{stroke:#9696964d}.viewer-pane:not(.active) .pane-progress-ring .progress-ring-glow{stroke:#96969626}@media(max-height:600px){.progress-bar-container{height:50vh}}@media(max-width:768px){.progress-bar-container{left:12px;height:50vh}.progress-indicator{width:10px;height:10px}.indicator-core{inset:2px}}.file-menu-hit-area{position:fixed;right:0;bottom:0;width:130px;height:130px;z-index:calc(var(--z-modal) - 1);pointer-events:auto}.file-menu-container{position:fixed;bottom:40px;right:53px;z-index:var(--z-modal);display:flex;flex-direction:row-reverse;align-items:flex-start;gap:0;pointer-events:none;transition:filter var(--transition-normal)}.file-menu-button{position:relative;width:40px;height:40px;border:none;border-radius:var(--radius-xl);cursor:pointer;pointer-events:auto;z-index:2;background:transparent;transition:background var(--transition-bounce),transform var(--transition-bounce),border-radius var(--transition-normal)}.file-menu-icon{display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:var(--text-secondary);transition:color var(--transition-slow),transform var(--transition-slow)}.file-menu-icon svg{width:20px;height:20px}.file-menu-container.active{filter:url(#file-menu-goo-filter) drop-shadow(0 0 5px rgba(0,0,0,.5)) drop-shadow(-1px -1px 1px rgba(255,255,255,.2))}.file-menu-container.active .file-menu-button{background:var(--bg-secondary);border-radius:var(--radius-lg);transform:scale(1.05) translateZ(0)}.file-menu-button.open{border-radius:4px 16px 16px;transform:scale(1.08)}.file-menu-button.open .file-menu-icon{transform:rotate(90deg);color:var(--text-primary)}.file-menu-container.active .file-menu-button:hover{transform:scale(1.1) translateZ(0)}.file-menu-list{position:absolute;bottom:25px;right:28px;min-width:200px;padding:8px 0;pointer-events:none;z-index:0;background:var(--bg-secondary);border-radius:var(--radius-xl);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 8px 15px #0000004d,0 16px 64px #0000001a,inset 0 1px 2px #ffffffe6,inset 0 -1px 2px #0000000d;opacity:0;transform:scale(.2) translate(50px) translateY(50px);transform-origin:bottom right;transition:opacity var(--transition-normal),transform var(--transition-bounce)}.file-menu-container.open .file-menu-list{opacity:1;border-radius:var(--radius-xl);transform:scale(1) translate(0) translateY(0);pointer-events:auto}input[type=file]{display:none}.file-menu-item{display:flex;align-items:center;gap:12px;width:100%;padding:8px 18px;border:none;background:transparent;cursor:pointer;font-family:inherit;font-size:14px;color:var(--text-primary);text-align:left;opacity:0;transform:translate(10px);transition:opacity var(--transition-normal) var(--item-delay, 0ms),transform var(--transition-bounce) var(--item-delay, 0ms),background var(--transition-fast),color var(--transition-fast)}.file-menu-container.open .file-menu-item{opacity:1;transform:translate(0)}.file-menu-item:hover{background:var(--bg-hover)}.file-menu-item:active{background:var(--bg-active);transform:scale(.98)}.file-menu-item svg{width:18px;height:18px;flex-shrink:0;opacity:.7;transition:opacity var(--transition-fast)}.file-menu-item:hover svg{opacity:1}.file-menu-item span:first-of-type{flex:1}.file-menu-item .shortcut{font-size:11px;color:var(--text-muted);font-family:system-ui,sans-serif}.file-menu-toggle-item{cursor:pointer}.file-menu-toggle-item:active{transform:none}.file-menu-toggle{position:relative;width:32px;height:14px;cursor:pointer;display:flex;align-items:center}.file-menu-toggle-input{opacity:0;width:0;height:0;position:absolute}.file-menu-toggle-track{position:absolute;left:3px;right:3px;height:1.5px;background:#555;transition:background .35s cubic-bezier(.4,0,.2,1),box-shadow .35s cubic-bezier(.4,0,.2,1)}.file-menu-toggle-knob{position:absolute;left:0;width:11px;height:11px;border-radius:50%;border:1.5px solid #555;background:var(--bg-secondary);transition:all .35s cubic-bezier(.4,0,.2,1);top:50%;transform:translateY(-50%)}.file-menu-toggle-input:checked~.file-menu-toggle-track{background:#fff;box-shadow:0 0 4px #ffffff80,0 0 10px #fff3}.file-menu-toggle-input:checked~.file-menu-toggle-knob{left:20px;border-color:#fff;background:#fff;box-shadow:0 0 6px #fff9,0 0 14px #ffffff40}.file-menu-divider{height:1px;margin:6px 12px;background:var(--border-color);opacity:0;transform:scaleX(0);transform-origin:left;transition:opacity var(--transition-normal) var(--item-delay, 0ms),transform var(--transition-slow) var(--item-delay, 0ms)}.file-menu-container.open .file-menu-divider{opacity:1;transform:scaleX(1)}.file-menu-modal-overlay{position:fixed;inset:0;background:#0006;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:calc(var(--z-popover) * 10);opacity:0;transition:opacity var(--transition-slow)}.file-menu-modal-overlay.visible{opacity:1}.file-menu-modal{background:var(--bg-glass-solid);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-radius:var(--radius-2xl);box-shadow:0 16px 64px #0000004d,0 8px 32px #0003,inset 0 1px 2px #ffffffe6;max-width:420px;width:90%;max-height:80vh;overflow:hidden;transform:scale(.9) translateY(20px);transition:transform var(--transition-bounce)}.file-menu-modal-overlay.visible .file-menu-modal{transform:scale(1) translateY(0)}.file-menu-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-color)}.file-menu-modal-header h2{margin:0;font-size:18px;font-weight:500;color:var(--text-primary)}.file-menu-modal-close{width:32px;height:32px;border:none;background:transparent;border-radius:var(--radius-md);cursor:pointer;font-size:24px;color:var(--text-secondary);display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.file-menu-modal-close:hover{background:var(--bg-hover);color:var(--text-primary)}.file-menu-modal-content{padding:20px;overflow-y:auto;max-height:calc(80vh - 70px)}.metadata-row{display:flex;align-items:flex-start;gap:12px;padding:8px 0}.metadata-label{flex-shrink:0;width:80px;font-size:13px;color:var(--text-tertiary)}.metadata-value{flex:1;font-size:14px;color:var(--text-primary);word-break:break-word}.metadata-divider{height:1px;margin:12px 0;background:var(--border-color)}.file-menu-toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%) translateY(20px);padding:12px 24px;background:#282828e6;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#fff;font-size:14px;border-radius:var(--radius-lg);box-shadow:0 4px 16px #0000004d;z-index:calc(var(--z-popover) * 10 + 1);opacity:0;transition:opacity var(--transition-slow),transform var(--transition-bounce)}.file-menu-toast.visible{opacity:1;transform:translate(-50%) translateY(0)}.citation-modal{max-width:560px;max-height:85vh}.citation-modal .file-menu-modal-content{max-height:65vh;overflow-y:auto;padding:0 20px 20px}.citation-search-info{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--bg-tertiary);border-radius:var(--radius-md);margin-bottom:16px;font-size:12px;gap:12px}.citation-query-text{color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.citation-scholar-link{color:#1a73e8;text-decoration:none;font-weight:500;white-space:nowrap;flex-shrink:0}.citation-scholar-link:hover{text-decoration:underline}.citation-formats{display:flex;flex-direction:column;gap:12px}.citation-format-card{background:var(--bg-glass-solid);border:1px solid var(--border-color);border-radius:10px;overflow:hidden;transition:border-color var(--transition-normal),box-shadow var(--transition-normal)}.citation-format-card:hover{border-color:var(--border-color-strong);box-shadow:var(--shadow-sm)}.citation-format-header{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--bg-tertiary);border-bottom:1px solid var(--border-color-subtle)}.citation-format-name{font-size:12px;font-weight:600;color:var(--text-primary);text-transform:uppercase;letter-spacing:.5px}.citation-copy-btn{display:flex;align-items:center;gap:5px;padding:5px 10px;background:transparent;color:var(--text-secondary);border:1px solid var(--border-color-strong);border-radius:5px;font-size:11px;cursor:pointer;transition:all var(--transition-fast)}.citation-copy-btn:hover{background:var(--bg-tertiary);border-color:var(--border-color-strong);color:var(--text-primary)}.citation-copy-btn.copied{background:#e8f5e9;border-color:#4caf50;color:#2e7d32}.citation-copy-btn svg{flex-shrink:0}.citation-text{padding:12px 14px;font-size:13px;line-height:1.55;color:var(--text-primary);cursor:text;user-select:text}.bibtex-card .citation-format-header{background:#4285f414}.bibtex-card .citation-format-name{color:#1a73e8}.bibtex-text{margin:0;padding:12px 14px;font-family:SF Mono,Menlo,monospace;font-size:11px;line-height:1.5;color:var(--text-primary);background:var(--bg-tertiary);white-space:pre-wrap;word-break:break-word;cursor:text;user-select:text;max-height:200px;overflow-y:auto}.citation-no-results{text-align:center;padding:32px 24px;color:var(--text-secondary)}.citation-no-results p{margin:0 0 8px}.citation-no-results a{color:#1a73e8;text-decoration:none}.citation-no-results a:hover{text-decoration:underline}.tutorial-section h3{color:var(--text-primary)}.tutorial-section li{color:var(--text-secondary)}.tutorial-section li strong{color:var(--text-primary)}.tutorial-section kbd{background:var(--bg-tertiary);color:var(--text-secondary)}.search-bar{position:fixed;bottom:-80px;left:50%;transform:translate(-50%);z-index:var(--z-modal);display:flex;align-items:center;gap:16px;padding:12px 20px;background:transparent;transition:bottom var(--transition-smooth)}.search-bar.visible{bottom:50px}.search-close-btn{width:36px;height:36px;border:none;border-radius:50%;background:var(--bg-glass-solid);box-shadow:var(--shadow-float);backdrop-filter:blur(3px);color:var(--text-primary);font-size:24px;font-weight:300;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast);flex-shrink:0}.search-close-btn:hover{background:#ffb8bc;box-shadow:0 8px 12px #ba434b80;color:#dc2626}.search-main{flex-shrink:0}.search-input-wrapper{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--bg-glass-solid);border:1px solid var(--border-color);border-radius:25px;box-shadow:var(--shadow-float);backdrop-filter:blur(3px);transition:all var(--transition-fast)}.search-input-wrapper:focus-within{border-color:var(--color-accent-border);box-shadow:0 8px 12px #0006,0 0 8px 3px var(--color-accent-light)}.search-icon{color:var(--text-tertiary);flex-shrink:0}.search-input{width:220px;border:none;background:transparent;font-size:14px;color:var(--text-primary);outline:none}.search-input::placeholder{color:var(--text-muted)}.search-result-count{display:flex;align-items:center;gap:2px;padding:2px 8px;background:var(--bg-tertiary);border-radius:6px;font-size:12px;font-variant-numeric:tabular-nums;color:var(--text-tertiary);flex-shrink:0}.search-result-count.has-results{background:var(--color-accent-light);color:var(--color-accent-hover)}.search-result-count.no-results{background:var(--color-danger-light);color:var(--color-danger)}.search-range{display:flex;align-items:center;background:var(--bg-glass-solid);box-shadow:var(--shadow-float);backdrop-filter:blur(3px);border:1px solid var(--border-color);border-radius:25px;gap:4px;padding-left:8px}.search-range-field{display:flex;flex-direction:row;padding:4px;align-items:center;gap:4px}.search-range-field.disabled{opacity:.5;pointer-events:none}.search-range-field label{font-size:10px;font-weight:600;color:var(--text-primary);text-transform:uppercase;letter-spacing:.5px}.search-range-input-wrapper{position:relative;display:flex;align-items:center}.search-range-input{position:relative;width:140px;padding:6px 10px;border:1px solid var(--border-color);border-radius:var(--radius-xl);font-size:12px;background:var(--bg-glass);color:var(--text-primary);outline:none;transition:all var(--transition-fast)}.clear-button{position:absolute;right:5px;background:var(--bg-tertiary);color:var(--text-primary);border:none;border-radius:10px;transition:all var(--transition-bounce)}.clear-button:hover{transform:scale(1.1)}.clear-button:active{background:var(--color-danger-light)}.search-range-input:focus{border-color:var(--color-accent-border);box-shadow:0 0 10px 3px var(--color-accent-light)}.search-range-input.invalid{animation:shake .3s ease;border-color:var(--color-danger)}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}.search-range-input::placeholder{color:var(--text-muted);font-size:11px}.search-to-toggle{width:24px;height:24px;margin-right:4px;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-glass);color:var(--text-secondary);font-size:14px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast);flex-shrink:0}.search-to-toggle:hover{background:var(--color-accent-light);border-color:var(--color-accent-border)}.search-to-toggle.active{background:#3b82f633;border-color:var(--color-accent-border);color:var(--color-accent-hover)}.search-dropdown{position:absolute;bottom:calc(100% + 4px);top:auto;left:0;right:0;max-height:200px;overflow-y:auto;background:var(--bg-glass-solid);backdrop-filter:blur(10px);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:0 -4px 16px #00000026;z-index:10;display:none}.search-dropdown.visible{display:block}.search-dropdown-option{background:var(--bg-primary);padding:8px 12px;font-size:12px;color:var(--text-primary);cursor:pointer;transition:background .1s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-dropdown-option:hover{background:var(--color-accent-light)}.search-dropdown-option:first-child{border-radius:8px 8px 0 0}.search-dropdown-option:last-child{border-radius:0 0 8px 8px}.search-dropdown-option:only-child{border-radius:7px}.search-dropdown::-webkit-scrollbar{width:6px}.search-dropdown::-webkit-scrollbar-track{background:transparent}.search-dropdown::-webkit-scrollbar-thumb{background:#0003;border-radius:3px}.search-highlight-layer,.search-highlight-group{pointer-events:none}.search-highlight-rect{transition:fill-opacity var(--transition-fast)}.search-highlight-group:hover .search-highlight-rect,.search-highlight-group.focused .search-highlight-rect{fill-opacity:.7}.search-focus-outline{transition:opacity var(--transition-normal)}.search-dropdown-option{padding:8px 12px;cursor:pointer;transition:background-color .15s ease;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-dropdown-option:hover{background-color:#0000000d}.search-dropdown-option.selected{background-color:#3b82f626;outline:none}.search-dropdown-option.selected:hover{background-color:#3b82f633}.search-dropdown{max-height:200px;overflow-y:auto;scroll-behavior:smooth}.search-focus-outline{transition:opacity .15s ease}body.pdf-loading .window-container{filter:blur(4px);transition:filter .2s ease}body.pdf-loading .progress-bar-container,body.pdf-loading .floating-toolbar-wrapper,body.pdf-loading .file-menu-container,body.pdf-loading .file-menu-hit-area{filter:none!important}.loading-overlay{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:#1c1c1e;opacity:0;pointer-events:none;transition:opacity .2s ease;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;color:#e5e5ea}.loading-overlay.visible{opacity:1;pointer-events:auto}.loading-overlay.dissolving{opacity:0;transition:opacity .3s ease}.loading-bar{display:flex;flex-direction:column;align-items:center;gap:0;transform:translateY(8px);opacity:0;transition:transform .3s ease,opacity .3s ease}.loading-overlay.visible .loading-bar{transform:translateY(0);opacity:1}.loading-overlay.dissolving .loading-bar{transform:translateY(-8px);opacity:0;transition:transform .2s ease,opacity .2s ease}.loading-spinner{width:32px;height:32px;border:3px solid rgba(255,255,255,.12);border-top-color:#a0a0b0;border-radius:50%;animation:loading-spin .8s linear infinite;margin-bottom:20px}@keyframes loading-spin{to{transform:rotate(360deg)}}.loading-title{font-size:15px;font-weight:500;color:#e5e5ea;margin-bottom:6px;letter-spacing:.01em}.loading-status{font-size:13px;color:#8e8e93;margin-bottom:16px;transition:opacity .2s ease;min-height:1.2em}.loading-bar-track{position:relative;width:200px;height:3px;background:#ffffff14;border-radius:2px;overflow:hidden}.loading-bar-fill{position:absolute;top:0;left:0;height:100%;width:0%;background:#a0a0b0;border-radius:2px;transition:width .3s ease}.loading-overlay.indeterminate .loading-bar-fill{width:30%;animation:loading-indeterminate 1.5s ease-in-out infinite}@keyframes loading-indeterminate{0%{left:0%;width:30%}50%{left:35%;width:35%}to{left:70%;width:30%}}@media(max-width:480px){.loading-bar-track{width:160px}.loading-title{font-size:14px}.loading-status{font-size:12px}}.onboarding-overlay{position:fixed;inset:0;z-index:var(--z-modal, 9999);pointer-events:none;opacity:0;transition:opacity .4s ease}.onboarding-overlay.visible{opacity:1}.onboarding-overlay.interactive{pointer-events:auto}.onboarding-spotlight{position:fixed;z-index:var(--z-modal, 9999);pointer-events:none;border-radius:8px;background:transparent;box-shadow:0 0 0 9999px #000000bf,0 0 20px 5px #0000004d inset;filter:blur(3px);transition:top .4s cubic-bezier(.4,0,.2,1),left .4s cubic-bezier(.4,0,.2,1),width .4s cubic-bezier(.4,0,.2,1),height .4s cubic-bezier(.4,0,.2,1),border-radius .3s ease,opacity .3s ease;opacity:0}.onboarding-spotlight.visible{opacity:1}.onboarding-spotlight:before{content:"";position:absolute;inset:-20px;border-radius:inherit;background:transparent;box-shadow:0 0 40px 10px #0000004d;pointer-events:none;filter:blur(15px)}.onboarding-spotlight.hidden{opacity:0;pointer-events:none}.onboarding-full-overlay{position:fixed;inset:0;z-index:var(--z-modal, 9999);background:#000000bf;backdrop-filter:blur(4px);opacity:0;transition:opacity .4s ease;pointer-events:none}.onboarding-full-overlay.visible{opacity:1;pointer-events:auto}.onboarding-tooltip{position:fixed;z-index:calc(var(--z-modal, 9999) + 1);max-width:320px;min-width:200px;background:#0009;backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.1);border-radius:12px;box-shadow:0 8px 32px #00000080,1px 1px 10px 1px #ffffff14 inset;padding:20px 24px;font-family:DM Sans,-apple-system,BlinkMacSystemFont,sans-serif;color:#fff;opacity:0;transform:translateY(10px) scale(.95);transition:opacity .3s ease,transform .3s cubic-bezier(.4,0,.2,1),top .4s cubic-bezier(.4,0,.2,1),left .4s cubic-bezier(.4,0,.2,1);pointer-events:auto}.onboarding-tooltip.visible{opacity:1;transform:translateY(0) scale(1)}.onboarding-tooltip.centered{top:50%;left:50%;transform:translate(-50%,-50%) scale(.95)}.onboarding-tooltip.centered.visible{transform:translate(-50%,-50%) scale(1)}.onboarding-tooltip-text{font-size:18px;font-weight:600;line-height:1.4;margin:0 0 8px;color:#fff}.onboarding-tooltip-subtext{font-size:14px;font-weight:400;line-height:1.5;margin:0;color:#ffffffb3}.onboarding-tooltip-buttons{display:flex;gap:12px;margin-top:20px;justify-content:flex-end}.onboarding-btn-primary{padding:10px 20px;border:none;border-radius:8px;background:var(--color-accent);color:#fff;font-family:inherit;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 10px #3b82f633}.onboarding-btn-primary:hover{background:var(--color-accent-hover);box-shadow:0 4px 12px #3b82f666;transform:translateY(-1px)}.onboarding-btn-primary:active{transform:translateY(0)}.onboarding-skip-btn{position:fixed;top:20px;right:20px;z-index:calc(var(--z-modal, 9999) + 2);padding:8px 16px;border:1px solid rgba(255,255,255,.1);border-radius:20px;background:#00000080;backdrop-filter:blur(8px);font-family:Elms Sans,-apple-system,BlinkMacSystemFont,sans-serif;font-size:13px;font-weight:500;color:#ffffffb3;cursor:pointer;transition:all .2s ease;opacity:0;pointer-events:none}.onboarding-skip-btn.visible{opacity:1;pointer-events:auto}.onboarding-skip-btn:hover{background:#000000b3;border-color:#ffffff4d;color:#fff}.onboarding-indicators{position:fixed;inset:0;z-index:calc(var(--z-modal, 9999) + 1);pointer-events:none}.onboarding-indicator{position:fixed;z-index:calc(var(--z-modal, 9999) + 1);pointer-events:none}.onboarding-circle-indicator{width:40px;height:40px;border:3px solid #3b82f6;border-radius:50%;background:#3b82f61a;animation:onboarding-pulse 1.5s ease-in-out infinite}@keyframes onboarding-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.15);opacity:.7}}.onboarding-circle-indicator:before{content:"";position:absolute;inset:-8px;border:2px solid rgba(59,130,246,.4);border-radius:50%;animation:onboarding-ring-pulse 1.5s ease-in-out infinite}@keyframes onboarding-ring-pulse{0%,to{transform:scale(1);opacity:.5}50%{transform:scale(1.3);opacity:0}}.onboarding-tool-label{position:absolute;z-index:calc(var(--z-modal, 9999) + 1);padding:6px 12px;background:#232328f2;backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.1);border-radius:6px;font-family:DM Sans,-apple-system,BlinkMacSystemFont,sans-serif;font-size:12px;font-weight:500;color:#fff;white-space:nowrap;pointer-events:none;opacity:0;transform:translate(-10px);transition:all .3s ease}.onboarding-tool-label.visible{opacity:1;transform:translate(0)}.onboarding-tool-label:before{content:"";position:absolute;left:101%;top:50%;transform:translateY(-50%);border:4px solid;border-color:transparent transparent transparent rgba(35,35,40,.95)}.onboarding-tool-label:nth-child(1){transition-delay:0ms}.onboarding-tool-label:nth-child(2){transition-delay:50ms}.onboarding-tool-label:nth-child(3){transition-delay:.1s}.onboarding-tool-label:nth-child(4){transition-delay:.15s}.onboarding-tool-label:nth-child(5){transition-delay:.2s}.onboarding-tool-label:nth-child(6){transition-delay:.25s}.onboarding-tooltip.floating{background:#232328fa;box-shadow:0 12px 40px #00000080,0 0 0 1px #ffffff14 inset,0 0 60px #0000004d}.onboarding-progress{display:flex;gap:6px;margin-top:16px;justify-content:center}.onboarding-progress-dot{width:6px;height:6px;border-radius:50%;background:#ffffff4d;transition:all .3s ease}.onboarding-progress-dot.active{background:#3b82f6;transform:scale(1.2)}.onboarding-progress-dot.completed{background:#3b82f680}.onboarding-kbd{display:inline-block;padding:3px 8px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:4px;font-family:Elms Sans,Monaco,Consolas,monospace;font-size:12px;font-weight:500;color:#fff}@media(max-width:768px){.onboarding-tooltip{max-width:280px;padding:16px 20px}.onboarding-tooltip-text{font-size:16px}.onboarding-tooltip-subtext{font-size:13px}}.night-mode .onboarding-tooltip{background:#19191ef2;border-color:#ffffff14}.night-mode .onboarding-skip-btn{background:#0f0f14cc}.night-mode .onboarding-tool-label{background:#19191efa}.settings-modal{max-width:520px;width:92%}.settings-content{padding:16px 20px 20px}.settings-section{margin-bottom:20px}.settings-section:last-child{margin-bottom:0}.settings-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.settings-section-title{margin:0;font-size:13px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.settings-section-actions{display:flex;align-items:center;gap:6px}.settings-edit-btn,.settings-delete-confirm-btn{display:flex;align-items:center;gap:4px;padding:5px 8px;background:transparent;border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;font-size:11px;transition:all var(--transition-fast)}.settings-edit-btn:hover,.settings-delete-confirm-btn:hover{background:var(--bg-hover);border-color:var(--border-color-strong);color:var(--text-primary)}.settings-edit-btn.active{background:var(--color-accent-light, rgba(59, 130, 246, .1));border-color:var(--color-accent-border, rgba(59, 130, 246, .3));color:var(--color-accent-hover, #2563eb)}.settings-delete-confirm-btn{color:#dc2626;border-color:#dc26264d}.settings-delete-confirm-btn:hover{background:#dc262614;border-color:#dc2626;color:#dc2626}.delete-count{font-size:11px;font-weight:600}.wallpaper-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:12px}.wallpaper-card{display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer;transition:transform var(--transition-fast)}.wallpaper-card:hover{transform:translateY(-1px)}.wallpaper-card:active{transform:scale(.97)}.wallpaper-card-preview{position:relative;width:100%;aspect-ratio:16 / 10;border-radius:var(--radius-lg);overflow:hidden;background:var(--bg-tertiary);border:2px solid transparent;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.wallpaper-card.selected .wallpaper-card-preview{border-color:var(--color-accent-hover, #2563eb);box-shadow:0 0 0 2px #3b82f640}.wallpaper-card-preview img{width:100%;height:100%;object-fit:cover;display:block}.wallpaper-card-label{font-size:11px;color:var(--text-secondary);text-align:center;line-height:1.2;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wallpaper-card.selected .wallpaper-card-label{color:var(--color-accent-hover, #2563eb);font-weight:600}.wallpaper-none-preview{display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary)}.wallpaper-card-add{position:relative}.wallpaper-add-preview{display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);border:2px dashed var(--border-color);transition:border-color var(--transition-fast),background var(--transition-fast)}.wallpaper-card-add:hover .wallpaper-add-preview{border-color:var(--border-color-strong);background:var(--bg-hover)}.wallpaper-card-add:hover .wallpaper-add-preview svg{opacity:.8}.wallpaper-add-popover{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%) translateY(8px);z-index:10;background:var(--bg-glass-solid);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:0 8px 24px #00000026,0 2px 8px #0000001a;padding:4px;min-width:140px;opacity:0;transition:opacity var(--transition-fast),transform var(--transition-fast)}.wallpaper-add-popover.visible{opacity:1;transform:translate(-50%) translateY(0)}.wallpaper-add-option{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;border:none;background:transparent;border-radius:var(--radius-md);font-size:13px;color:var(--text-primary);cursor:pointer;font-family:inherit;white-space:nowrap;transition:background var(--transition-fast),color var(--transition-fast)}.wallpaper-add-option:hover{background:var(--bg-hover)}.wallpaper-add-option svg{flex-shrink:0;opacity:.6}.wallpaper-url-input-area{display:flex;align-items:center;gap:6px;margin-top:14px;padding:8px 10px;background:var(--bg-tertiary);border-radius:var(--radius-lg);border:1px solid var(--border-color);transition:border-color var(--transition-fast)}.wallpaper-url-input-area:focus-within{border-color:var(--color-accent-hover, #2563eb)}.wallpaper-url-input{flex:1;min-width:0;border:none;background:transparent;font-size:13px;font-family:inherit;color:var(--text-primary);outline:none}.wallpaper-url-input::placeholder{color:var(--text-muted)}.wallpaper-url-confirm,.wallpaper-url-cancel{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:var(--radius-md);cursor:pointer;background:transparent;transition:all var(--transition-fast)}.wallpaper-url-confirm{color:#16a34a}.wallpaper-url-confirm:hover{background:#16a34a1a}.wallpaper-url-cancel{color:var(--text-muted)}.wallpaper-url-cancel:hover{background:var(--bg-hover);color:var(--text-secondary)}.wallpaper-card-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary)}.wallpaper-spinner{width:18px;height:18px;border:2px solid var(--border-color);border-top-color:var(--text-secondary);border-radius:50%;animation:wp-spin .7s linear infinite}@keyframes wp-spin{to{transform:rotate(360deg)}}.wallpaper-card-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary)}.wallpaper-card-custom.edit-mode .wallpaper-card-preview{border-color:var(--border-color)}.wallpaper-card-custom.edit-mode:hover .wallpaper-card-preview{border-color:#dc2626}.wallpaper-card-custom.marked-delete .wallpaper-card-preview{border-color:#dc2626;box-shadow:0 0 0 2px #dc262633}.wallpaper-delete-check{position:absolute;top:6px;right:6px;width:20px;height:20px;border-radius:50%;background:#0006;border:2px solid rgba(255,255,255,.6);display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.wallpaper-delete-check svg{opacity:0;transition:opacity var(--transition-fast)}.wallpaper-delete-check.checked{background:#dc2626;border-color:#dc2626}.wallpaper-delete-check.checked svg{opacity:1}.wallpaper-card.selected .wallpaper-card-preview:after{content:"";position:absolute;top:6px;left:6px;width:20px;height:20px;border-radius:50%;background:var(--color-accent-hover, #2563eb);background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' xmlns='http://www.w3.org/2000/svg'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");background-size:12px 12px;background-repeat:no-repeat;background-position:center;box-shadow:0 1px 4px #0003}.wallpaper-card-custom.edit-mode.selected .wallpaper-card-preview:after{display:none}.settings-toggle-row{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:var(--bg-tertiary);border-radius:var(--radius-lg);border:1px solid var(--border-color)}.settings-toggle-info{display:flex;flex-direction:column;gap:2px}.settings-toggle-label{font-size:13px;font-weight:500;color:var(--text-primary)}.settings-toggle-description{font-size:11px;color:var(--text-secondary);transition:color .3s ease}.settings-toggle-switch{position:relative;width:52px;height:28px;cursor:pointer;display:flex;align-items:center}.progress-bar-toggle{opacity:0;width:0;height:0;position:absolute}.settings-toggle-slider{position:absolute;left:3px;right:3px;height:1.5px;background:#555;transition:background .35s cubic-bezier(.4,0,.2,1),box-shadow .35s cubic-bezier(.4,0,.2,1)}.settings-toggle-knob{position:absolute;left:0;width:16px;height:16px;border-radius:50%;border:1.5px solid #555;background:var(--bg-secondary);transition:all .35s cubic-bezier(.4,0,.2,1);top:50%;transform:translateY(-50%)}.progress-bar-toggle:checked~.settings-toggle-slider{background:#fff;box-shadow:0 0 4px #ffffff80,0 0 10px #fff3}.progress-bar-toggle:checked~.settings-toggle-knob{left:38px;border-color:#fff;background:#fff;box-shadow:0 0 6px #fff9,0 0 14px #ffffff40}.ball-style-editor{display:flex;gap:28px;align-items:flex-start;padding:4px 0}.ball-style-editor-preview{flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:8px}.ball-style-editor-controls{flex:1;min-width:0;display:flex;flex-direction:column;gap:16px}.ball-preview-container{width:75px;height:75px;position:relative;border-radius:50%;background:var(--preview-ball-body, var(--ball-body));box-shadow:2px 4px 15px #0000004d;display:flex;align-items:center;justify-content:center;cursor:default;transition:background var(--transition-normal)}.ball-preview-page-display{display:flex;flex-direction:column;align-items:center;font-family:Elms Sans,monospace;color:var(--preview-page-color, var(--page-color));font-size:20px;font-weight:var(--preview-page-weight, var(--page-weight, 300));line-height:1;user-select:none;transition:color var(--transition-normal)}.ball-preview-page-divider{font-size:15px;opacity:.8;transform:scaleX(4)}.ball-control-group{display:flex;flex-direction:column;gap:8px}.ball-control-label{margin-left:-8px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary)}.gradient-editor{display:flex;flex-direction:column;gap:10px}.gradient-bar-wrapper{position:relative;height:36px}.gradient-bar{position:relative;width:100%;height:26px;border-radius:13px;border:1px solid var(--border-color);box-shadow:var(--shadow-inset),0 1px 3px #0000001a;cursor:pointer;overflow:visible;top:5px}.gradient-bar-inner{width:100%;height:100%;border-radius:12px}.gradient-bar:before{content:"";position:absolute;inset:0;border-radius:12px;background:repeating-conic-gradient(#d0d0d0 0% 25%,#f0f0f0 0% 50%) 0 0 / 10px 10px;z-index:0}.gradient-bar-inner{position:relative;z-index:1}.gradient-stop{position:absolute;top:50%;width:22px;height:22px;border-radius:50%;transform:translate(-50%,-50%);cursor:grab;z-index:2;border:2.5px solid #fff;box-shadow:0 1px 4px #00000059,0 0 0 1px #0000001a;transition:box-shadow var(--transition-fast),transform var(--transition-fast)}.gradient-stop:hover{transform:translate(-50%,-50%) scale(1.12);box-shadow:0 2px 8px #0006,0 0 0 1px #00000026}.gradient-stop.selected{box-shadow:0 0 0 2px var(--color-accent),0 2px 8px #3b82f666;transform:translate(-50%,-50%) scale(1.15);z-index:3}.gradient-stop.selected:hover{transform:translate(-50%,-50%) scale(1.2)}.gradient-stop.dragging{cursor:grabbing;transform:translate(-50%,-50%) scale(1.25);transition:none;box-shadow:0 0 0 2px var(--color-accent),0 4px 12px #3b82f680;z-index:4}.gradient-stop-remove{position:absolute;top:-7px;right:-7px;width:14px;height:14px;border-radius:50%;background:var(--color-danger);color:#fff;border:1.5px solid #fff;font-size:10px;line-height:1;display:none;align-items:center;justify-content:center;cursor:pointer;z-index:4;padding:0;box-shadow:0 1px 3px #0000004d}.gradient-stop.selected .gradient-stop-remove{display:flex}.gradient-stop-color-input{position:absolute;width:0;height:0;opacity:0;pointer-events:none}.gradient-stop-detail{display:flex;align-items:center;gap:8px;min-height:28px}.gradient-stop-detail.empty{color:var(--text-muted);font-size:12px;font-style:italic}.stop-color-swatch{width:24px;height:24px;border-radius:6px;border:2px solid var(--border-color-strong);cursor:pointer;flex-shrink:0;transition:border-color var(--transition-fast);box-shadow:var(--shadow-sm)}.stop-color-swatch:hover{border-color:var(--color-accent)}.stop-hex-input{width:72px;padding:4px 6px;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-glass);color:var(--text-primary);font-family:monospace;font-size:12px;outline:none;transition:border-color var(--transition-fast)}.stop-hex-input:focus{border-color:var(--color-accent)}.stop-position-label{font-size:11px;color:var(--text-tertiary);min-width:14px;text-align:right}.styled-slider-row{display:flex;align-items:center;gap:10px}.styled-slider-label{font-size:11px;color:var(--text-tertiary);min-width:54px;flex-shrink:0}.styled-slider{flex:1;-webkit-appearance:none;appearance:none;height:6px;border-radius:3px;background:var(--bg-tertiary);outline:none;cursor:pointer;box-shadow:var(--shadow-inset)}.styled-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:#fff;border:2px solid var(--color-accent);box-shadow:0 1px 4px #00000040;cursor:grab;transition:transform var(--transition-fast)}.styled-slider::-webkit-slider-thumb:hover{transform:scale(1.15)}.styled-slider::-webkit-slider-thumb:active{cursor:grabbing;transform:scale(1.05)}.styled-slider::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:#fff;border:2px solid var(--color-accent);box-shadow:0 1px 4px #00000040;cursor:grab}.styled-slider-value{font-size:12px;font-family:monospace;color:var(--text-secondary);min-width:36px;text-align:right}.gradient-actions{display:flex;gap:32px;align-items:center}.gradient-action-btn{padding:4px 10px;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-glass);color:var(--text-secondary);font-size:11px;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast);display:flex;align-items:center;gap:4px}.gradient-action-btn:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-color-strong)}.gradient-action-btn:disabled{opacity:.4;cursor:not-allowed}.gradient-action-btn svg{width:12px;height:12px}.page-color-row{display:flex;align-items:center;gap:10px}.page-color-swatch{width:24px;height:24px;border-radius:6px;border:2px solid var(--border-color-strong);cursor:pointer;flex-shrink:0;position:relative;overflow:hidden;box-shadow:var(--shadow-sm);transition:border-color var(--transition-fast)}.page-color-swatch:hover{border-color:var(--color-accent)}.page-color-native-input{position:absolute;inset:-4px;width:calc(100% + 8px);height:calc(100% + 8px);opacity:0;cursor:pointer}.page-color-hex{width:76px;padding:5px 8px;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-glass);color:var(--text-primary);font-family:monospace;font-size:12px;outline:none;transition:border-color var(--transition-fast)}.page-color-hex:focus{border-color:var(--color-accent)}
