:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--black:#000;--white:#f6f7fb;--blue:#2e8cff;--red:#ff3b30;--gray:#7d8593;--yellow:#f2d36b;--surface:#050505;--soft:#111827}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--black);color:var(--white);font-family:var(--system-font,"Noto Sans Mono"), "Noto Sans KR", "Noto Sans JP", "Noto Sans SC", sans-serif;overflow-x:hidden}button,input,select,textarea{font:inherit}button{color:inherit}.app-shell{background:radial-gradient(circle at 20% 10%, #2e8cff14, transparent 24rem), radial-gradient(circle at 80% 82%, #ff3b3012, transparent 20rem), var(--black);min-height:100dvh;font-family:var(--system-font,"Noto Sans Mono"), "Noto Sans KR", "Noto Sans JP", "Noto Sans SC", sans-serif;letter-spacing:.01em;overflow-x:hidden}.topbar{z-index:10;padding:calc(env(safe-area-inset-top,0px) + 1.1rem) 1.35rem .8rem;background:linear-gradient(#000000f5,#000000b8);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex;position:sticky;top:0}.primary-tabs,.account-strip,.command-row,.reader-info{align-items:center;gap:1rem;min-width:0;display:flex}.account-strip{flex-wrap:wrap;justify-content:flex-end}.nav-button,.text-action{appearance:none;color:var(--white);cursor:pointer;letter-spacing:.08em;text-transform:uppercase;background:0 0;border:0;border-radius:0;padding:0 0 .2rem;font-weight:700;text-decoration:none}.nav-button:hover,.text-action:hover,.app-shell :where(button,a,select,input):focus,.app-shell :where(button,a,select,input)[data-selected-option=true],.nav-button:focus-visible,.text-action:focus-visible{color:var(--red);text-underline-offset:.35em;outline:0;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;text-decoration-thickness:.12em}.nav-button.active,.text-action.active{color:var(--red);text-underline-offset:.35em;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;text-decoration-thickness:.12em}.text-action.danger{color:var(--red)}.status-text,.hint,.muted{color:var(--gray)}.status-text{font-size:.82rem}.workspace{width:min(100%,1280px);margin:0 auto;padding:1rem 1.35rem 4rem}.library-workspace{gap:1.3rem;display:grid}.command-row{flex-wrap:wrap}.hidden-input{display:none}.drop-zone{appearance:none;width:100%;min-height:5rem;color:var(--blue);cursor:pointer;font:inherit;text-align:center;text-transform:uppercase;text-underline-offset:.35em;background:0 0;border:0;place-items:center;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;display:grid}.drop-zone:hover,.drop-zone:focus-visible,.drop-zone.active,.library-workspace.drag-active .drop-zone{color:var(--red);outline:0}.error-line{color:var(--red);font-weight:700}.library-grid{align-items:start;gap:1.2rem;display:grid}.library-grid.list{grid-template-columns:1fr}.library-grid.grid{grid-template-columns:repeat(auto-fill,minmax(12rem,1fr))}.book-card{appearance:none;width:100%;min-width:0;color:var(--white);cursor:pointer;text-align:left;background:0 0;border:0;grid-template-columns:4.7rem minmax(0,1fr);grid-template-areas:"cover title""cover author""cover meta";gap:.25rem 1rem;padding:.4rem;display:grid}.library-grid.grid .book-card{grid-template-columns:1fr;grid-template-areas:"cover""title""author""meta";align-content:start}.book-card:hover,.book-card:focus-visible,.book-card.selected{outline:0}.book-card:focus .book-title,.book-card[data-selected-option=true] .book-title,.book-card.selected .book-title{color:var(--red);text-underline-offset:.28em;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;text-decoration-thickness:.12em}.book-cover{aspect-ratio:2/3;width:4.7rem;color:var(--white);background:linear-gradient(#2e8cff2e,#0000 35%),linear-gradient(160deg,#ff3b3033,#0000 60%),#02050b;grid-area:cover;align-content:space-between;place-items:stretch stretch;padding:.55rem;display:grid;overflow:hidden}.book-cover.has-image{background:#050505;align-content:center;padding:0}.book-cover img{object-fit:contain;width:100%;height:100%;display:block}.library-grid.grid .book-cover{width:min(100%,15rem);margin:0 auto .65rem}.book-cover span,.book-cover em{color:var(--blue);text-transform:uppercase;font-size:.62rem;font-style:normal}.book-cover strong{color:var(--white);overflow-wrap:anywhere;font-size:.74rem;line-height:1.3}.book-title{min-width:0;color:var(--blue);overflow-wrap:anywhere;grid-area:title;font-size:1rem;font-weight:700}.book-author{color:var(--white);overflow-wrap:anywhere;grid-area:author}.book-meta{color:var(--gray);overflow-wrap:anywhere;grid-area:meta}.reader-workspace{width:100%;max-width:none;min-height:calc(100dvh - 4.5rem);display:block;position:relative}.reader-stage{z-index:1;isolation:isolate;touch-action:none;--rsvp-guide-half:clamp(1.35rem, calc(var(--reader-font-size) * .32), 2.6rem);--rsvp-guide-gap:clamp(.28rem, calc(var(--reader-font-size) * .06), .62rem);--rsvp-guide-tick:clamp(.32rem, calc(var(--reader-font-size) * .08), .58rem);place-items:center;min-height:100dvh;display:grid;position:fixed;inset:0;overflow:hidden}.reader-tap,.anchor-line{appearance:none;cursor:pointer;background:0 0;border:0}.reader-tap{z-index:3;touch-action:manipulation;width:34%;position:absolute;top:0;bottom:0}.reader-tap.left{left:0}.reader-tap.right{right:0}.reader-tap.center{width:32%;left:34%}.reader-tap:focus{outline:0}.anchor-line{top:var(--rsvp-anchor-y,50%);left:var(--rsvp-anchor-x,35%);width:calc(var(--rsvp-guide-half) * 2);height:calc(var(--reader-font-size) * 1.18);z-index:5;background:0 0;padding:0;position:absolute;overflow:visible;transform:translate(-50%,-50%)}.anchor-line:before,.anchor-line:after{z-index:0;background:var(--blue);content:"";pointer-events:none;width:.14rem;position:absolute;left:50%;transform:translate(-50%)}.anchor-line:before{height:var(--rsvp-line-top-height,45vh);bottom:50%}.anchor-line:after{height:var(--rsvp-line-bottom-height,35vh);top:50%}.anchor-guide-bar,.anchor-guide-tick{z-index:1;content:"";pointer-events:none;position:absolute}.anchor-guide-bar{background:linear-gradient(to right, var(--gray) 0 calc(50% - var(--rsvp-guide-gap)), transparent calc(50% - var(--rsvp-guide-gap)) calc(50% + var(--rsvp-guide-gap)), var(--gray) calc(50% + var(--rsvp-guide-gap)) 100%);width:100%;height:.1rem;left:0}.anchor-guide-bar.top{top:0}.anchor-guide-bar.bottom{bottom:0}.anchor-guide-tick{width:.12rem;height:var(--rsvp-guide-tick);background:var(--red);left:50%;transform:translate(-50%)}.anchor-guide-tick.top{top:0}.anchor-guide-tick.bottom{bottom:0}.anchor-line:focus{outline:0}.anchor-line:hover:before,.anchor-line:hover:after,.anchor-line:focus:before,.anchor-line:focus:after,.anchor-line:focus-visible:before,.anchor-line:focus-visible:after,.anchor-line[data-selected-option=true]:before,.anchor-line[data-selected-option=true]:after{background:var(--red);width:.2rem}.anchor-line:focus,.anchor-line:focus-visible,.anchor-line[data-selected-option=true]{border-bottom:.12rem dotted var(--red)}.anchor-line:hover .anchor-guide-bar,.anchor-line:focus .anchor-guide-bar,.anchor-line:focus-visible .anchor-guide-bar,.anchor-line[data-selected-option=true] .anchor-guide-bar{background:linear-gradient(to right, var(--red) 0 calc(50% - var(--rsvp-guide-gap)), transparent calc(50% - var(--rsvp-guide-gap)) calc(50% + var(--rsvp-guide-gap)), var(--red) calc(50% + var(--rsvp-guide-gap)) 100%)}.anchor-line:hover .anchor-guide-tick,.anchor-line:focus .anchor-guide-tick,.anchor-line:focus-visible .anchor-guide-tick,.anchor-line[data-selected-option=true] .anchor-guide-tick{background:var(--red)}.current-word{top:var(--rsvp-anchor-y,50%);z-index:2;color:var(--white);font-family:var(--reader-font,"Noto Sans Mono"), "Noto Sans KR", "Noto Sans JP", "Noto Sans SC", sans-serif;font-size:var(--reader-font-size);font-weight:var(--reader-font-weight,700);overflow-wrap:normal;word-break:keep-all;white-space:nowrap;pointer-events:none;line-height:1;position:absolute;transform:translateY(-50%)}.anchor-letter{color:var(--red)}.chapter-title-word{text-underline-offset:.18em;text-decoration:underline;text-decoration-thickness:.08em}.phantom-word{top:var(--rsvp-anchor-y,50%);z-index:1;color:var(--gray);font-family:var(--reader-font,"Noto Sans Mono"), "Noto Sans KR", "Noto Sans JP", "Noto Sans SC", sans-serif;font-size:var(--reader-font-size);font-weight:var(--reader-font-weight,700);opacity:.34;overflow-wrap:normal;pointer-events:none;white-space:nowrap;word-break:keep-all;line-height:1;position:absolute;overflow:visible;transform:translateY(-50%)}.phantom-word.previous{text-align:right}.phantom-word.next{text-align:left}.reader-console{z-index:5;gap:1rem;width:min(100vw - 2.7rem,1280px);margin:0 auto;display:grid;position:fixed;bottom:clamp(1rem,3dvh,2.2rem);left:50%;right:auto;transform:translate(-50%)}.reader-info{flex-wrap:wrap}.reader-title,.reader-chapter,.reader-progress,.reader-speed{min-width:0}.strong{font-weight:700}.truncate{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:min(32rem,92vw);overflow:hidden}.timeline-wrap{gap:.8rem;display:grid}.timeline-track{cursor:pointer;background:0 0;border:0;width:100%;height:3.8rem;display:block;position:relative}.timeline-track:focus-visible,.timeline-track[data-selected-option=true]{color:var(--red);text-underline-offset:.35em;outline:0;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;text-decoration-thickness:.12em}.timeline-track:focus-visible .timeline-base,.timeline-track[data-selected-option=true] .timeline-base{background:var(--red)}.timeline-base,.timeline-progress{height:.18rem;position:absolute;top:50%;left:0;transform:translateY(-50%)}.timeline-base{background:var(--white);width:100%}.timeline-progress{background:var(--red)}.timeline-marker{background:var(--blue);cursor:pointer;border:0;border-radius:999px;width:.72rem;height:.72rem;padding:0;position:absolute;top:50%;transform:translate(-50%,-50%)}.timeline-marker.active{background:var(--red)}.timeline-marker:hover,.timeline-marker:focus-visible,.timeline-marker[data-selected-option=true]{background:var(--red);outline:0;width:.95rem;height:.95rem}.timeline-readout{max-width:min(28rem,78vw);color:var(--white);letter-spacing:.08em;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap;pointer-events:none;font-size:.82rem;font-weight:700;position:absolute;top:0;overflow:hidden;transform:translate(-50%)}.timeline-chapter-picker{gap:.55rem;max-height:min(34dvh,22rem);padding-top:.2rem;display:grid;overflow:auto}.timeline-chapter-option{appearance:none;color:var(--white);cursor:pointer;text-align:left;background:0 0;border:0;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:1rem;padding:.3rem 0 .38rem;display:grid}.timeline-chapter-option.active,.timeline-chapter-option:hover,.timeline-chapter-option:focus-visible,.timeline-chapter-option[data-selected-option=true]{color:var(--red);text-underline-offset:.35em;outline:0;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;text-decoration-thickness:.12em}.timeline-chapter-index{color:var(--blue);letter-spacing:.08em;text-transform:uppercase;font-size:.82rem}.timeline-chapter-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.timeline-chapter-pos{color:var(--gray);white-space:nowrap;font-size:.82rem}.reader-help{color:var(--gray)}.empty-reader{place-items:center;min-height:60vh;display:grid}.settings-workspace{place-items:center;min-height:70vh;display:grid}.settings-panel{gap:1.3rem;width:min(78rem,100%);display:grid}.settings-panel h1{color:var(--white);margin:0}.setting-line{grid-template-columns:9rem minmax(10rem,1fr) 5.5rem;align-items:center;gap:1rem;display:grid}.setting-line input,.setting-line select{width:100%;color:var(--white);background:0 0;border:0;border-radius:0;outline:0}.setting-line input:focus,.setting-line select:focus,.setting-line input[data-selected-option=true],.setting-line select[data-selected-option=true]{color:var(--red);border-bottom:.12rem dotted var(--red);box-shadow:0 .35rem 0 -.22rem var(--red)}.setting-line input[type=range]{accent-color:var(--red)}.setting-line input[type=checkbox]{width:1.15rem;min-width:1.15rem;height:1.15rem;accent-color:var(--red)}.setting-line select{border-bottom:.12rem dotted var(--blue);padding:.25rem 0}.account-panel{z-index:30;background:radial-gradient(circle at 100% 0,#2e8cff29,#0000 14rem),#000000f5;gap:1.4rem;width:min(36rem,100vw - 2.7rem);padding:1.2rem;display:grid;position:fixed;inset:5.2rem 1.35rem auto auto;box-shadow:0 2rem 5rem #000000a8}.account-panel-header{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.account-panel h1{color:var(--white);overflow-wrap:anywhere;margin:.2rem 0 0;font-size:1.6rem}.panel-kicker{color:var(--blue);letter-spacing:.1em;text-transform:uppercase;font-weight:700}.account-detail-grid{grid-template-columns:9rem minmax(0,1fr);gap:.75rem 1rem;display:grid}.account-detail-grid span{color:var(--gray)}.account-detail-grid strong{overflow-wrap:anywhere}.password-form{gap:1rem;display:grid}.account-setting-line{grid-template-columns:9rem minmax(0,1fr)}.account-setting-line input{border-bottom:.12rem dotted var(--blue);padding:.25rem 0}.account-message{color:var(--red);font-weight:700}.admin-panel{gap:1.2rem;margin-top:1.5rem;display:grid}.admin-header,.admin-library-header{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.admin-header h2,.admin-library-header h3,.admin-user-column h3{margin:.2rem 0 0}.admin-mode-row,.admin-actions{flex-wrap:wrap;gap:1rem;display:flex}.admin-message{color:var(--red);font-weight:700}.admin-user-list,.admin-book-list{gap:.8rem;display:grid}.admin-user-list.compact{gap:.35rem}.admin-user-card,.admin-book-row{gap:.7rem;display:grid}.admin-user-button,.admin-book-main{appearance:none;width:100%;color:var(--white);cursor:pointer;text-align:left;background:0 0;border:0;grid-template-columns:minmax(0,1fr) auto auto;gap:1rem;padding:.15rem 0 .35rem;display:grid}.admin-book-main{grid-template-columns:minmax(0,1fr) auto}.admin-user-button span,.admin-book-main span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.admin-user-button span:not(:first-child),.admin-book-main span:not(:first-child){color:var(--gray)}.admin-user-button:hover,.admin-user-button:focus,.admin-user-button.active,.admin-user-button[data-selected-option=true],.admin-book-main:hover,.admin-book-main:focus,.admin-book-main[data-selected-option=true],.admin-book-row.active .admin-book-main{color:var(--red);text-underline-offset:.35em;outline:0;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;text-decoration-thickness:.12em}.admin-edit-panel{grid-template-columns:7rem minmax(0,1fr);align-items:start;gap:1.2rem;padding:.3rem 0 .9rem;display:grid}.admin-avatar{aspect-ratio:1;width:6.2rem;color:var(--white);background:radial-gradient(circle at 30% 20%,#2e8cff59,#0000 2.4rem),#ffffff0d;place-items:center;font-size:1.8rem;font-weight:800;display:grid}.admin-edit-fields{gap:1rem;display:grid}.admin-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem 1.2rem;display:grid}.admin-stat{gap:.2rem;display:grid}.admin-stat span{color:var(--gray);text-transform:uppercase;font-size:.8rem}.admin-stat strong{color:var(--white);overflow-wrap:anywhere}.admin-book-manager{grid-template-columns:minmax(14rem,.35fr) minmax(0,1fr);align-items:start;gap:2rem;display:grid}.admin-user-column,.admin-library-panel{gap:1rem;min-width:0;display:grid}.admin-library-header p{margin:.35rem 0 0}.admin-book-row{grid-template-columns:minmax(0,1fr) auto;align-items:center}.admin-empty{color:var(--gray)}@media (width<=900px),(pointer:coarse){.topbar{padding:calc(env(safe-area-inset-top,0px) + .72rem) 1rem .55rem;align-items:center;gap:.35rem .85rem}.primary-tabs{scrollbar-width:none;-webkit-overflow-scrolling:touch;flex:auto;gap:clamp(.72rem,3vw,1rem);overflow-x:auto}.primary-tabs::-webkit-scrollbar{display:none}.account-strip{flex:100%;justify-content:flex-start;gap:.65rem .9rem}.view-reader .account-strip{flex-basis:auto;justify-content:flex-end}.view-reader .status-text{display:none}.nav-button,.text-action{white-space:nowrap;align-items:center;min-height:2.35rem;font-size:clamp(.82rem,2.9vw,1rem);line-height:1.05;display:inline-flex}.workspace{padding:.85rem 1rem calc(env(safe-area-inset-bottom,0px) + 3rem)}.command-row{gap:.55rem .9rem}.drop-zone{min-height:4.25rem;padding:.6rem 0}.reader-info{width:100%}.reader-workspace{min-height:100dvh;padding:0}.reader-stage{min-height:100dvh}.reader-console{right:auto;bottom:calc(env(safe-area-inset-bottom,0px) + .75rem);gap:.58rem;width:min(100vw - 1.35rem,70rem);left:50%}.reader-info{grid-template-columns:auto auto minmax(0,1fr) auto;align-items:center;gap:.25rem .72rem;display:grid}.reader-title{grid-area:2/1/auto/3;max-width:none}.reader-chapter{grid-area:2/3/auto/-1;max-width:none}.reader-progress,.reader-speed{justify-self:end}.current-word{font-size:min(var(--reader-font-size), clamp(3.4rem, 16vw, 6.2rem))}.phantom-word{text-overflow:clip;max-width:30vw;font-size:min(var(--reader-font-size), clamp(2.8rem, 12vw, 5.1rem));opacity:.22;overflow:hidden}.timeline-track{height:3.45rem}.timeline-base,.timeline-progress{height:.22rem}.timeline-marker{width:.95rem;height:.95rem}.timeline-marker:hover,.timeline-marker:focus-visible,.timeline-marker[data-selected-option=true]{width:1.2rem;height:1.2rem}.timeline-readout{max-width:min(34rem,86vw);font-size:.74rem}.timeline-chapter-picker{max-height:min(32dvh,18rem)}.timeline-chapter-option{min-height:2.45rem;padding:.42rem 0}.reader-help{font-size:.86rem}.account-panel{width:auto;inset:4.8rem 1rem auto}.setting-line{grid-template-columns:1fr}.admin-header,.admin-library-header{display:grid}.admin-user-button,.admin-book-main,.admin-book-row,.admin-edit-panel,.admin-book-manager,.admin-stat-grid{grid-template-columns:1fr}}@media (width<=760px){.topbar{align-items:flex-start}.primary-tabs,.account-strip{width:100%}.view-reader .account-strip{justify-content:flex-start}.current-word{font-size:min(var(--reader-font-size), clamp(3.3rem, 19vw, 5.4rem))}.phantom-word{display:none}.reader-info{grid-template-columns:auto auto minmax(0,1fr)}.reader-speed{display:none}.reader-title,.reader-chapter{grid-column:1/-1}.reader-title{grid-row:2}.reader-chapter{grid-row:3}}@media (height<=620px) and (orientation:landscape){.view-reader .topbar{padding:calc(env(safe-area-inset-top,0px) + .5rem) .9rem .35rem;gap:.18rem .8rem}.view-reader .nav-button,.view-reader .text-action{min-height:1.95rem;font-size:clamp(.72rem,1.8vw,.9rem)}.view-reader .primary-tabs{flex:auto;width:auto}.view-reader .account-strip{flex:0 auto;width:auto}.reader-console{bottom:calc(env(safe-area-inset-bottom,0px) + .35rem);gap:.28rem}.reader-info{grid-template-columns:auto auto minmax(0,1fr) auto auto;gap:.15rem .65rem}.reader-title{grid-area:1/3}.reader-chapter{display:none}.reader-progress,.reader-speed{grid-row:1}.current-word{font-size:min(var(--reader-font-size), clamp(3.2rem, 20dvh, 6.8rem))}.phantom-word{max-width:24vw;font-size:min(var(--reader-font-size), clamp(2.7rem, 13dvh, 4.6rem));display:block}.timeline-wrap{gap:.22rem}.timeline-track{height:2.6rem}.timeline-readout{display:none}.timeline-marker{width:.85rem;height:.85rem}.reader-help{display:none}}
