*,*:before,*:after{box-sizing:border-box}*{margin:0;line-height:calc(1em + .5rem)}html{min-height:calc(100% + env(safe-area-inset-top));scrollbar-gutter:stable}body{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;touch-action:pan-x pan-y}body[style*=--scrollbar-width]{padding-right:0!important}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit;color:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}p{text-wrap:pretty}h1,h2,h3,h4,h5,h6{text-wrap:balance}@media(prefers-reduced-motion:reduce){html:focus-within{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}:root{--bg-color: black;--bg-secondary-color: hsl(0, 0%, 15%);--text-strong-color: white;--text-color: hsl(0, 0%, 80%);--text-secondary-color: hsl(0, 0%, 50%);--main-color: #e2b714;--green-color: #34c759;--danger-color: #ff3b30;--element-background-color: #2c2c2e;--modal-background-color: #1c1c1e;--border-color: rgba(255, 255, 255, .1)}html{color-scheme:dark}@media(prefers-color-scheme:light){:root:not([data-theme]),:root[data-theme=system]{--bg-color: white;--bg-secondary-color: #eeeeef;--text-strong-color: black;--text-color: hsl(0, 0%, 30%);--text-secondary-color: hsl(0, 0%, 50%);--main-color: #e2b714;--green-color: #34c759;--danger-color: #ff3b30;--element-background-color: white;--modal-background-color: hsl(0, 0%, 95%);--border-color: rgba(0, 0, 0, .1)}html:not([data-theme]),html[data-theme=system]{color-scheme:light}}:root[data-theme=light]{--bg-color: white;--bg-secondary-color: #eeeeef;--text-strong-color: black;--text-color: hsl(0, 0%, 30%);--text-secondary-color: hsl(0, 0%, 50%);--main-color: #e2b714;--green-color: #34c759;--danger-color: #ff3b30;--element-background-color: white;--modal-background-color: hsl(0, 0%, 95%);--border-color: rgba(0, 0, 0, .1)}:root[data-theme=dark]{--bg-color: black;--bg-secondary-color: hsl(0, 0%, 15%);--text-strong-color: white;--text-color: hsl(0, 0%, 80%);--text-secondary-color: hsl(0, 0%, 50%);--main-color: #e2b714;--green-color: #34c759;--danger-color: #ff3b30;--element-background-color: #2c2c2e;--modal-background-color: #1c1c1e;--border-color: rgba(255, 255, 255, .1)}html[data-theme=light]{color-scheme:light}html[data-theme=dark]{color-scheme:dark}html{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol;font-size:18px;color:var(--text-color);background-color:var(--bg-color);caret-color:var(--main-color)}.monospace{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}h1{font-size:2.058rem;font-weight:500;color:var(--text-strong-color)}h2{font-size:1.618rem;font-weight:500;color:var(--text-strong-color)}h3{font-size:1.272rem;font-weight:500;color:var(--text-strong-color)}.page-container{margin-top:calc(68px + env(safe-area-inset-top))}.page-title{padding-top:16px;padding-left:16px;user-select:none;-webkit-user-select:none}@keyframes fade-in{0%{opacity:0}}@keyframes fade-out{to{opacity:0}}@keyframes slide-from-right{0%{transform:translate(30px)}}@keyframes slide-to-left{to{transform:translate(-30px)}}@keyframes slide-from-left{0%{transform:translate(-30px)}}@keyframes slide-to-right{to{transform:translate(30px)}}@keyframes full-slide-from-right{0%{transform:translate(100%)}}@keyframes full-slide-to-left{to{transform:translate(-100%)}}@keyframes full-slide-from-left{0%{transform:translate(-100%)}}@keyframes full-slide-to-right{to{transform:translate(100%)}}::view-transition-old(root){animation:.3s cubic-bezier(.22,.61,.36,1) both full-slide-to-left}::view-transition-new(root){animation:.3s cubic-bezier(.22,.61,.36,1) both full-slide-from-right}:active-view-transition-type(back-transition)::view-transition-old(root){animation:.3s cubic-bezier(.22,.61,.36,1) both full-slide-to-right}:active-view-transition-type(back-transition)::view-transition-new(root){animation:.3s cubic-bezier(.22,.61,.36,1) both full-slide-from-left}@media(min-width:500px){::view-transition-old(root){animation:90ms cubic-bezier(.4,0,1,1) both fade-out,.3s cubic-bezier(.4,0,.2,1) both slide-to-left}::view-transition-new(root){animation:.21s cubic-bezier(0,0,.2,1) 90ms both fade-in,.3s cubic-bezier(.4,0,.2,1) both slide-from-right}:active-view-transition-type(back-transition)::view-transition-old(root){animation:90ms cubic-bezier(.4,0,1,1) both fade-out,.3s cubic-bezier(.4,0,.2,1) both slide-to-right}:active-view-transition-type(back-transition)::view-transition-new(root){animation:.21s cubic-bezier(0,0,.2,1) 90ms both fade-in,.3s cubic-bezier(.4,0,.2,1) both slide-from-left}}.header{position:fixed;top:0;left:0;right:0;display:flex;padding-top:calc(16px + env(safe-area-inset-top));padding-bottom:16px;padding-left:16px;padding-right:16px;background:linear-gradient(to bottom,var(--bg-color),transparent);view-transition-name:header;gap:8px;z-index:10}.header-button.header-right{margin-left:auto}.header-button{all:unset;pointer-events:auto;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background-color:var(--bg-secondary-color);color:var(--text-strong-color);cursor:pointer;transition:transform .4s cubic-bezier(.34,1.56,.64,1),opacity .2s;-webkit-tap-highlight-color:transparent}@media(hover:hover){.header-button:hover{filter:brightness(.8)}}.header-button:active{transform:scale(1.32);filter:brightness(5)}.header-button-primary{color:var(--main-color)}.modal-overlay{position:fixed;inset:0;background-color:#00000080;z-index:1000}html.modal-open,body.modal-open{overflow:hidden;overscroll-behavior:none}.modal-overlay[data-expanded]{animation:overlay-fade-in var(--animation-duration) cubic-bezier(.36,.66,.04,1) forwards}.modal-overlay[data-closed]{animation:overlay-fade-out var(--animation-duration) cubic-bezier(.32,.72,0,1) forwards}@keyframes overlay-fade-in{0%{opacity:0}to{opacity:1}}@keyframes overlay-fade-out{0%{opacity:1}to{opacity:0}}.modal-positioner{position:fixed;inset:0;margin-top:env(safe-area-inset-top);z-index:1001;display:flex;align-items:flex-end;justify-content:center;touch-action:none}.modal-content{position:relative;width:100%;max-width:500px;height:100%;border-radius:32px 32px 0 0;background-color:var(--modal-background-color);display:flex;flex-direction:column}.modal-content .header-button{background-color:var(--element-background-color);position:relative}.modal-handle{position:absolute;top:8px;left:50%;transform:translate(-50%);width:36px;height:5px;background-color:color-mix(in srgb,var(--text-color),transparent 80%);border-radius:2.5px;cursor:grab;z-index:10}.modal-handle:after{content:"";position:absolute;inset:-12px -20px}.modal-handle:active{cursor:grabbing}.modal-fixed-header{padding:16px;display:flex;position:relative;align-items:center;flex-shrink:0;cursor:grab;user-select:none;-webkit-user-select:none}.modal-fixed-header:active{cursor:grabbing}.modal-fixed-title{position:absolute;left:50%;transform:translate(-50%);margin:0;font-size:inherit;font-weight:600;pointer-events:none}.modal-icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);opacity:0;transition:opacity .25s ease;display:flex;align-items:center;justify-content:center}.modal-icon-visible{opacity:1}.modal-button{all:unset;display:flex;align-items:center;justify-content:space-between;height:28px;font-size:16px;font-weight:500;cursor:pointer;background-color:var(--element-background-color);flex-shrink:0;margin:8px 16px;padding:12px 16px;border-radius:32px;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;position:relative;overflow:hidden;-webkit-tap-highlight-color:transparent;transition:background-color .1s ease;touch-action:none}.modal-button svg{width:18px;height:18px}.modal-button-danger{color:var(--danger-color)}@media(hover:hover){.modal-button:hover{background-color:color-mix(in srgb,var(--element-background-color),var(--text-color) 8%)}}.modal-button:active,.modal-select-wrapper:active .modal-button{background-color:color-mix(in srgb,var(--element-background-color),var(--text-color) 15%)}.modal-toggle{display:flex;align-items:center;justify-content:space-between;background-color:var(--element-background-color);margin:8px 16px;padding:12px 16px;border-radius:32px;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.modal-toggle-label{font-size:16px;font-weight:500}.modal-toggle-switch{position:relative;display:inline-block;width:64px;height:28px;cursor:pointer;flex-shrink:0;-webkit-tap-highlight-color:transparent;touch-action:none}.modal-toggle-switch input{opacity:0;width:0;height:0}.modal-toggle-slider{position:absolute;inset:0;background-color:color-mix(in srgb,var(--text-color),transparent 85%);transition:background-color .2s ease;border-radius:15.5px}.modal-toggle-slider:before{content:"";position:absolute;height:24px;width:38px;left:2px;bottom:2px;background-color:#fff;transition:transform .2s ease;border-radius:25.5px;box-shadow:0 3px 8px #00000026,0 3px 1px #0000000f}.modal-toggle-switch:active .modal-toggle-slider:before{transform:scale(1.5)}.modal-toggle-switch input:checked+.modal-toggle-slider{background-color:var(--green-color)}.modal-toggle-switch input:checked+.modal-toggle-slider:before{transform:translate(22px)}.modal-toggle-switch:active input:checked+.modal-toggle-slider:before{transform:translate(22px) scale(1.5)}.modal-pages-container{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.modal-page{display:flex;flex-direction:column;overflow-y:auto;overscroll-behavior:contain;touch-action:none}.modal-page-scrollable{touch-action:pan-y}.modal-page[data-animate=forward]{animation:page-slide-in-forward var(--animation-duration) cubic-bezier(.36,.66,.04,1)}.modal-page[data-animate=backward]{animation:page-slide-in-backward var(--animation-duration) cubic-bezier(.36,.66,.04,1)}.modal-content p{margin:0 32px 16px;font-size:.8rem;color:var(--text-secondary-color);font-weight:500}@keyframes page-slide-in-forward{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes page-slide-in-backward{0%{opacity:0;transform:translate(-100%)}to{opacity:1;transform:translate(0)}}.modal-select-wrapper{position:relative;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.modal-select-content{display:flex;align-items:center;gap:8px;color:var(--text-secondary-color)}.modal-select-value{font-size:14px}.modal-native-select{position:absolute;inset:8px 16px;opacity:0;cursor:pointer;width:calc(100% - 32px);height:calc(100% - 16px);-webkit-appearance:none;appearance:none;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.modal-slider-wrapper{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;background-image:linear-gradient(90deg,color-mix(in srgb,var(--text-color),transparent 90%) 0%,color-mix(in srgb,var(--text-color),transparent 90%) var(--slider-progress),transparent var(--slider-progress),transparent 100%)}.modal-slider-content{display:flex;align-items:center;gap:8px;color:var(--text-secondary-color)}.modal-slider-value{font-size:14px}.nav-button-text{display:flex;align-items:center;color:var(--text-secondary-color)}.about-content{padding:16px;max-width:680px}.about-content section{margin-bottom:32px}.about-content h3{font-size:20px;font-weight:600;margin-bottom:8px;color:var(--text-color)}.about-content p{font-size:17px;line-height:1.5;color:var(--text-secondary-color, #666)}.about-content strong{font-weight:600;color:var(--text-color)}.upload-zone{border:2px dashed #444;border-radius:8px;padding:2rem;text-align:center;margin:1rem;transition:all .3s;cursor:pointer}.upload-zone:hover,.upload-zone.drag-over{border-color:var(--main-color);background:var(--element-background-color)}.book-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:1rem;padding:1rem}.book-item{background:var(--element-background-color);border-radius:8px;overflow:hidden;cursor:pointer;transition:transform .2s;position:relative}.book-item:active{transform:scale(.98)}.book-cover{aspect-ratio:2/3;background:#333;display:flex;align-items:center;justify-content:center}.book-cover img{width:100%;height:100%;object-fit:cover}.placeholder-cover{font-size:2rem;color:#555;font-weight:700}.book-info{padding:.5rem}.book-info h3{font-size:.9rem;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.book-info p{font-size:.7rem;color:#888;margin:.2rem 0}.delete-btn{position:absolute;top:5px;right:5px;font-size:.7rem;background:#00000080;border:none;color:#fff;width:24px;height:24px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center}.scroll-lock,.scroll-lock body{overflow:hidden;overscroll-behavior:none}.reader-container{position:fixed;top:env(safe-area-inset-top);left:0;right:0;bottom:0;display:flex;flex-direction:column}.reader-viewer{width:100%;flex:1;overflow:hidden;position:relative;margin:8px 0}.reader-footer{height:36px;display:flex;align-items:center;justify-content:center;width:100%}.reader-controls-overlay{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;z-index:10;pointer-events:auto}.nav-zone{height:100%;touch-action:manipulation;pointer-events:auto}.nav-zone.left{width:30%;cursor:w-resize}.nav-zone.center{width:40%;cursor:pointer}.nav-zone.right{width:30%;cursor:e-resize}.reader-ui-layer{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:20;padding:0;display:flex;flex-direction:column;opacity:0;transition:opacity .2s ease-in-out}.reader-ui-layer.visible{opacity:1}.reader-ui-layer .header-wrapper{pointer-events:auto}.reader-ui-layer:not(.visible) .header{view-transition-name:none}.top-bar{width:100%;padding:1rem;display:flex;justify-content:space-between;pointer-events:auto;box-sizing:border-box}.page-indicator{text-align:center;font-size:.75rem;pointer-events:none;z-index:1001;width:100%;box-sizing:border-box}.control-btn.pill{background:#333;color:#fff;border:none;padding:10px 20px;border-radius:20px;font-size:.9rem;cursor:pointer;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center}.settings-panel{pointer-events:auto;background:#282828f2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;padding:1rem;border-radius:12px;margin:0 1rem auto auto;position:absolute;top:60px;right:1rem;width:250px;box-shadow:0 4px 15px #00000080}.setting-row{margin-bottom:1rem}.setting-row:last-child{margin-bottom:0}.setting-row .label{display:block;font-size:.8rem;margin-bottom:.5rem;opacity:.7}.theme-toggles{display:flex;gap:.5rem}.theme-btn{flex:1;border:2px solid transparent;border-radius:4px;padding:.5rem;cursor:pointer;font-weight:700}.theme-btn.active{border-color:var(--accent-color)}.theme-btn.light{background:#fff;color:#000}.theme-btn.dark{background:#1a1a1a;color:#fff}.control-group{display:flex;align-items:center;justify-content:space-between;background:#ffffff1a;border-radius:8px;padding:2px}.control-group button{background:transparent;border:none;color:#fff;padding:.5rem 1rem;cursor:pointer;border-radius:6px;flex:1}.control-group button.active{background:#fff3}
