.library-shell{max-width:1180px;margin:auto;padding:64px 32px 48px}.library-shell h1{font:500 clamp(32px,4vw,46px) Georgia,"Batang",serif;letter-spacing:-.05em;margin:12px 0 20px}.library-shell h1:focus{outline:none}.library-intro{color:var(--muted);font-size:15px;line-height:1.9;margin-bottom:44px}.library-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:36px}.work-card{min-width:0}.work-cover{position:relative;width:100%;height:300px;border:0;border-radius:2px 8px 8px 2px;padding:32px 25px;display:flex;align-items:center;flex-direction:column;color:#faf6e9;background:#526158;box-shadow:10px 12px 24px #30271e24,inset 5px 0 6px #0002;overflow:hidden}.work-cover:before{content:"";position:absolute;inset:12px;border:1px solid #eee5cb50;pointer-events:none}.work-cover.cover-1{background:#746253}.work-cover.cover-2{background:#5a6372}.work-cover img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}.cover-kicker{font-size:8px;letter-spacing:.2em;margin:7px 0 44px}.cover-title{font:500 28px/1.45 Batang,Georgia,serif;word-break:keep-all;max-height:120px;overflow:hidden}.cover-rule{width:28px;height:1px;background:#eee5cb70;margin:22px 0 12px}.cover-author{font-size:11px;color:#e0decc}.cover-footer{margin-top:auto;font-size:23px}.work-details{padding:19px 2px}.work-badge{font-size:11px;color:var(--muted)}.work-details h2{font-size:18px;font-weight:650;margin:9px 0}.work-details p{font-size:12px;line-height:1.7;color:var(--muted);min-height:41px;margin:0 0 12px}.read-work{width:100%;justify-content:space-between!important}.import-card{height:300px;border:1px dashed #8b7e6b80;border-radius:5px;background:#fff5;color:var(--ink);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:15px}.import-card>span:first-child{font-size:38px;font-weight:200;color:#86715a}.import-card>span:last-child{font-size:12px;color:var(--muted)}.library-privacy{margin-top:44px;padding-top:22px;border-top:1px solid #8275612b;color:var(--muted);font-size:12px;line-height:1.8}.app[data-theme=night] .import-card{background:#ffffff08}.app-notice{margin:12px auto;padding:12px 20px;max-width:1120px;border:1px solid #a48e72;border-radius:8px;line-height:1.6;display:flex;justify-content:space-between;gap:12px}.app-notice button{background:none;border:0;color:inherit;font-size:20px}.route-message{max-width:650px;padding:80px 24px;margin:auto;line-height:1.8}@media(max-width:650px){.library-shell{padding:38px 22px}.library-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 16px}.work-cover,.import-card{height:240px}.work-cover{padding:25px 14px}.cover-kicker{font-size:7px;margin-bottom:30px}.cover-title{font-size:21px}.cover-author{font-size:10px}.cover-rule{margin-top:14px}.work-details h2{font-size:16px}.import-card strong{font-size:12px}.import-card>span:last-child{font-size:10px}.library-intro{font-size:14px}}.photo-cover:before{display:none}.cover-editor{margin:0;padding:16px;border:1px solid #a99b8866;border-radius:8px;display:grid;gap:14px;min-width:0}.cover-editor legend{font-size:14px;padding:0 5px}.cover-preview{display:block;width:150px;max-width:100%;height:210px;object-fit:cover;border-radius:5px;background:#fffdf7;box-shadow:0 4px 12px #0002}.cover-editor .btn{justify-self:start}.cover-editor p{margin:0}.btn[href]{text-decoration:none}.service-gate{max-width:720px;margin:auto;padding:clamp(64px,12vh,150px) 28px;text-align:center}.service-gate h1{font:500 clamp(28px,4vw,42px)/1.4 Georgia,"Batang",serif;letter-spacing:-.045em}.service-gate p{line-height:1.9;color:var(--muted);margin:22px 0 30px}.account-email{overflow-wrap:anywhere;font-size:14px}.service-empty{padding:30px;border:1px dashed #8b7e6b80;border-radius:8px;color:var(--muted);line-height:1.8}.author-shell{max-width:1180px;margin:auto;padding:48px 28px 80px}.author-heading{display:flex;justify-content:space-between;align-items:center;gap:24px}.author-heading h1{font:500 36px Georgia,Batang,serif;margin:12px 0}.author-links{display:flex;gap:10px;margin:20px 0 28px}.author-work{display:flex;justify-content:space-between;gap:24px;align-items:center;border:1px solid #82756140;background:var(--paper);border-radius:10px;padding:24px;margin-bottom:14px}.author-work h2{margin:12px 0 5px;font-size:20px;overflow-wrap:anywhere}.author-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.publication-badge{font-size:11px;padding:5px 9px;border-radius:5px;background:#e8e0d1;color:#514736}.publication-badge.published{background:#dfe8dd;color:#324e36}.author-success{padding:14px 18px;background:#e4ebdf;color:#324e36;border-radius:8px;line-height:1.7}.account-section{margin-top:52px;border-top:1px solid #82756140;padding-top:24px}.account-list{list-style:none;padding:0}.account-list li{display:flex;justify-content:space-between;gap:24px;padding:20px 0;border-bottom:1px solid #82756130}.account-list strong{font-weight:600;overflow-wrap:anywhere}.account-list span{display:block;font-size:12px;color:var(--muted);margin-top:7px}.author-editor{display:flex;flex-direction:column;gap:20px}.author-field{display:flex;flex-direction:column;gap:10px;font-size:14px}.author-field input{min-width:0;max-width:100%;padding:12px;border:1px solid #a99b88;border-radius:6px;background:var(--paper,#fffdf7);color:var(--ink,#252620)}.author-field input[type=file]{font-size:12px;padding:10px}.author-warning{font-size:13px;line-height:1.8;padding:14px;border-left:3px solid #9a7852;background:#b7976b1a}.author-error,.danger{color:#8f3329}.confirmation-copy{line-height:1.9;margin:24px 0}.app[data-theme=night] .danger{color:#ffc4b5}@media(max-width:650px){.author-shell{padding:30px 18px 60px}.author-heading,.author-work,.account-list li{align-items:flex-start;flex-direction:column;gap:14px}.author-heading h1{font-size:30px}.author-work{padding:20px}.service-gate{padding-top:64px}.author-actions .btn{padding:9px 12px}.topbar .top-actions{flex-shrink:0}}:root{font-family:system-ui,-apple-system,Apple SD Gothic Neo,Malgun Gothic,sans-serif;color:#262820;background:#f0eee9}*{box-sizing:border-box}button,input,select{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible{outline:3px solid #bc8a55;outline-offset:3px}body{margin:0;min-height:100vh}.app{--paper:#fffdf7;--ink:#252620;--muted:#807b6f;--page-font: "Noto Serif KR","Nanum Myeongjo", "Batang", "AppleMyungjo",serif;--page-font-size:18px;--page-line-height:1.94;--margin:52px;--book-shadow:0 25px 70px rgba(49,40,30,.16),0 2px 14px rgba(49,40,30,.06);min-height:100vh;background:radial-gradient(ellipse 65% 48% at 50% 48%,#faf8f3,#efebe3 85%,#eae5db)}.app[data-theme=night]{--paper:#252924;--ink:#e5dfd4;--muted:#a5a398;--book-shadow:0 26px 70px rgba(0,0,0,.43);color:#e8e8df;background:radial-gradient(ellipse at 50% 45%,#33362f,#222720 80%)}.app[data-theme=sepia]{--paper:#f6e8cc;--ink:#463b2c;--muted:#8f816b;background:radial-gradient(ellipse at 50% 40%,#f2e8d3,#e5d8bf 90%)}.app[data-font=sans]{--page-font:"Pretendard","Apple SD Gothic Neo","Malgun Gothic",sans-serif}.topbar{height:77px;display:flex;align-items:center;padding:0 clamp(16px,4vw,66px);justify-content:space-between;gap:20px;border-bottom:1px solid rgba(130,117,97,.14)}.brand{display:flex;align-items:center;gap:10px;flex-shrink:0;background:none;border:none;color:inherit;padding:0;font-family:inherit;font-weight:750;letter-spacing:-.045em;font-size:24px}.brand-logo{width:42px;height:42px;object-fit:contain;flex-shrink:0}.brand-name{white-space:nowrap}.app[data-theme=night] .brand-logo{filter:brightness(0) invert(1)}.top-actions{display:flex;align-items:center;gap:10px}.top-caption{font-size:12px;color:#928b7d;letter-spacing:.1em;font-weight:650}.btn{border:1px solid rgba(128,118,96,.22);border-radius:10px;background:#ffffff75;color:inherit;padding:10px 15px;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;font-size:13px;font-weight:650;transition:transform .15s,background .15s}.btn:hover{background:#b1946821}.btn:active{transform:translateY(1px)}.btn.primary{background:#7c6650;color:#fff;border-color:#7c6650}.btn.primary:hover{background:#65503c}.icon-btn{width:42px;height:42px;padding:0;font-size:18px}.shell{max-width:1800px;margin:0 auto;padding:18px 16px 28px}.reading-heading{text-align:center;margin-bottom:14px}.eyebrow{color:#a78f70;letter-spacing:.22em;font-size:11px;font-weight:800;margin-bottom:11px}.reading-heading .eyebrow{margin-bottom:6px;font-size:10px}.story-title{font-family:Georgia,Nanum Myeongjo,serif;font-weight:600;letter-spacing:-.035em;font-size:clamp(22px,2vw,28px);margin:0 0 6px}.chapter-line{color:#92897c;font-size:13px;letter-spacing:.02em}.toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:13px;margin-bottom:18px}.toggle{display:inline-flex;background:#826f551a;border:1px solid rgba(130,111,85,.1);border-radius:12px;padding:4px;gap:2px}.toggle button{border:0;background:transparent;color:inherit;padding:9px 15px;border-radius:9px;font-size:13px;opacity:.63}.toggle button[aria-pressed=true]{background:var(--paper);color:var(--ink);box-shadow:0 2px 8px #00000014;opacity:1;font-weight:750}.toolbar-right{display:flex;gap:9px}.book-surround{position:relative;padding:10px 0 18px}.book{width:100%;height:clamp(620px,84dvh,980px);display:flex;position:relative;perspective:1900px;filter:drop-shadow(0 25px 27px rgba(59,45,28,.09));border-radius:5px}.book:after{content:"";position:absolute;left:50%;top:1%;height:98%;width:5px;transform:translate(-50%);box-shadow:0 0 13px 4px #2e261f26;pointer-events:none;z-index:1}.paper-page{background:var(--paper);color:var(--ink);position:relative;flex:1;min-width:0;height:100%;overflow:hidden;box-shadow:var(--book-shadow);isolation:isolate}.paper-page.left{border-radius:3px 0 0 4px;background-image:linear-gradient(to left,rgba(63,44,25,.075),transparent 13%)}.paper-page.right{border-radius:0 4px 4px 0;background-image:linear-gradient(to right,rgba(63,44,25,.08),transparent 14%)}.paper-heading{position:absolute;top:31px;left:var(--margin);right:var(--margin);font-size:11px;font-family:system-ui,Malgun Gothic,sans-serif;color:var(--muted);letter-spacing:.07em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.page-prose{position:absolute;top:79px;bottom:69px;left:var(--margin);right:var(--margin);font-family:var(--page-font);font-size:var(--page-font-size);line-height:var(--page-line-height);font-weight:400;letter-spacing:-.018em;word-break:keep-all;overflow-wrap:anywhere;overflow:hidden}.page-prose p,.measure p{margin:0 0 1.18em;text-indent:1em}.page-prose p:first-child,.measure p:first-child{text-indent:0}.page-bottom{position:absolute;bottom:25px;left:var(--margin);right:var(--margin);text-align:center;color:var(--muted);font-size:11px;font-family:Georgia,serif}.paper-page .corner{position:absolute;bottom:0;right:0;width:52px;height:52px;pointer-events:none;background:linear-gradient(135deg,transparent 51%,rgba(146,117,81,.1) 51%,rgba(255,255,255,.3) 100%);clip-path:polygon(100% 0,100% 100%,0 100%)}.measure{position:absolute;top:-10000px;left:-10000px;overflow:hidden;visibility:hidden;pointer-events:none;font-family:var(--page-font);font-size:var(--page-font-size);line-height:var(--page-line-height);font-weight:400;letter-spacing:-.018em;word-break:keep-all;overflow-wrap:anywhere}.flip-sheet{position:absolute;top:0;bottom:0;width:50%;transform-style:preserve-3d;pointer-events:none;z-index:9;transition:transform .72s cubic-bezier(.24,.65,.15,1)}.flip-sheet.forward{left:50%;transform-origin:left center;transform:rotateY(0)}.flip-sheet.backward{left:0;transform-origin:right center;transform:rotateY(0)}.flip-sheet.forward.go{transform:rotateY(-180deg)}.flip-sheet.backward.go{transform:rotateY(180deg)}.sheet-face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden}.sheet-face.back{transform:rotateY(180deg)}.sheet-face .paper-page{width:100%;height:100%}.sheet-face.front{filter:drop-shadow(4px 0px 8px rgba(45,30,17,.12))}.book-hint{text-align:center;font-size:12px;color:#9e9687;margin-top:10px}.bottom-controls{display:flex;align-items:center;justify-content:center;gap:22px;margin-top:10px}.nav{width:42px;height:42px;border-radius:100px;border:1px solid rgba(131,111,85,.21);background:#ffffff7a;color:inherit;font-size:20px}.nav:disabled{opacity:.35;cursor:not-allowed}.location{min-width:125px;text-align:center;font-size:12px;color:#928777;font-variant-numeric:tabular-nums}.progress{max-width:540px;height:3px;border-radius:100px;background:#7462471f;margin:16px auto 0;overflow:hidden}.progress-fill{height:100%;width:0%;background:#ae8661;transition:width .3s}.scroll-reader{display:none;background:var(--paper);color:var(--ink);max-width:830px;margin:0 auto;min-height:560px;max-height:68vh;overflow-y:auto;padding:clamp(26px,7vw,74px);font-family:var(--page-font);font-size:var(--page-font-size);line-height:var(--page-line-height);box-shadow:var(--book-shadow);border-radius:5px;overscroll-behavior:contain;scrollbar-color:#b3a28c transparent}.scroll-reader p{margin:0 0 1.3em;text-indent:1em;word-break:keep-all;overflow-wrap:anywhere}.scroll-reader p:first-of-type{text-indent:0}.scroll-reader h2{font-size:1.25em;margin:0 0 1.8em}.app[data-mode=scroll] .book-surround{display:none}.app[data-mode=scroll] .scroll-reader{display:block}.app[data-mode=scroll] .book-hint{display:none}.app[data-mode=scroll] .location{min-width:160px}.panel-backdrop{position:fixed;inset:0;background:#1a1a1552;z-index:20;display:none}.panel-backdrop.open{display:block}.panel{position:fixed;top:0;bottom:0;right:0;width:min(410px,100%);z-index:21;background:#fcfaf5;color:#2c2c26;box-shadow:-15px 0 70px #00000029;transform:translate(105%);transition:transform .25s ease;padding:32px 27px;overflow:auto}.panel.open{transform:translate(0)}.panel-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:26px}.panel-heading h2{font-size:22px;margin:0}.panel-sub{font-size:11px;color:#9e927e;letter-spacing:.13em;font-weight:750;margin:24px 0 11px}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 0;border-bottom:1px solid #eae5dc;font-size:14px}.settings-row input[type=range]{accent-color:#a47f58;width:150px}.choice-row{display:flex;gap:8px;flex-wrap:wrap}.choice{border:1px solid #ded3c2;background:#fffefa;border-radius:9px;padding:12px 15px;color:#52493e}.choice[aria-pressed=true]{border:2px solid #9a7852;background:#f3ece0;padding:11px 14px;font-weight:800}.toc-item{display:block;width:100%;text-align:left;border:none;border-bottom:1px solid #ece7dc;background:none;color:#383530;padding:18px 10px;font-size:15px}.toc-item span{display:block;font-size:11px;color:#a58e73;margin-top:5px}.toc-item.active{background:#f3ebdf;font-weight:800}.note{font-size:12px;line-height:1.7;color:#8c8377}.toast{position:fixed;bottom:26px;left:50%;transform:translate(-50%,20px);background:#39362f;color:#fff;padding:11px 17px;border-radius:99px;z-index:30;font-size:12px;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s}.toast.show{opacity:1;transform:translate(-50%)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:800px){.shell{padding:16px 10px}.topbar{height:66px}.top-caption{display:none}.book{height:clamp(560px,82dvh,900px)}.app{--margin:36px}.paper-heading{top:28px}.page-prose{top:68px;bottom:62px}.page-bottom{bottom:20px}}@media(max-width:650px){.topbar{padding:0 16px}.brand{font-size:22px}.top-actions .hide-phone{display:none}.shell{padding:14px 6px 22px}.reading-heading{margin-bottom:12px}.story-title{font-size:22px}.toolbar{justify-content:center;margin-bottom:11px}.toggle{width:100%;justify-content:center}.toggle button{flex:1}.toolbar-right{width:100%;justify-content:center}.app{--margin:30px}.book{height:clamp(520px,82dvh,860px)}.book:after{display:none}.paper-page.left,.paper-page.right{border-radius:4px}.flip-sheet{width:100%}.flip-sheet.forward,.flip-sheet.backward{left:0;transform-origin:left center}.flip-sheet.backward.go{transform:rotateY(-180deg)}.book-hint{font-size:11px}.scroll-reader{max-height:66dvh;min-height:430px}.panel{padding:26px 22px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.app{--muted:#676354;color:var(--ink)}.app[data-theme=sepia]{--muted:#695a43}.app[data-theme=night]{--muted:#c1bdb1}.top-caption,.chapter-line,.location,.book-hint,.note,.panel-sub,.eyebrow,.toc-item span,.progress-caption{color:var(--muted,#676354)}button:disabled{cursor:not-allowed;opacity:.45}a:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:3px solid #a4764f;outline-offset:4px}h1[tabindex="-1"]:focus{outline:none}.page-prose,.scroll-reader p{white-space:pre-wrap}.book{touch-action:pan-y}.paper-page,.page-prose,.scroll-reader{-webkit-user-select:text;user-select:text}.scroll-reader{display:block}.scroll-reader .chapter-end{font-family:system-ui,sans-serif;font-size:12px;text-align:center;text-indent:0;color:var(--muted);margin-top:3em}.progress-caption{text-align:center;font-size:11px;margin-top:8px}dialog.panel{margin:0 0 0 auto;border:0;height:100dvh;max-height:100dvh;max-width:100%;inset:0 0 0 auto;transform:none}dialog.panel::backdrop{background:#1a1a156b}.settings-row{flex-wrap:wrap}.settings-row input[type=checkbox]{width:20px;height:20px;accent-color:#7c6650}.settings-row select{max-width:210px;padding:8px;border-radius:6px;background:#fffdf7;color:#252620;border:1px solid #a79a88}.settings-row output{font-size:12px}.toggle button{opacity:1}.app[data-theme=night] .btn,.app[data-theme=night] .nav{background:#343a32;border-color:#626a5a;color:#eee8de}.app[data-theme=night] .panel{background:#252924;color:#e5dfd4;--muted:#c1bdb1}.app[data-theme=night] .choice,.app[data-theme=night] .toc-item{background:#343a32;border-color:#626a5a;color:#eee8de}.app[data-theme=night] .choice[aria-pressed=true],.app[data-theme=night] .toc-item.active{background:#514736}@media(max-width:650px){.brand{font-size:18px;gap:8px}.brand-logo{width:34px;height:34px}.topbar{gap:10px;flex-wrap:wrap;height:auto;min-height:77px;padding:12px 16px}.topbar>.btn,.topbar>.top-actions{margin-left:auto}.top-actions{gap:6px}.import-action{padding:9px}.book{min-height:430px}.toolbar-right .btn{padding:10px 12px}.settings-row input[type=range]{width:140px}}.pwa-install{padding:18px 20px max(24px,env(safe-area-inset-bottom));text-align:center;background:#f0eee9;color:#65503c}.pwa-install-button,.pwa-install-close{font:inherit;color:inherit;border:1px solid #a89580;border-radius:10px;background:#faf8f3;padding:11px 17px;min-height:44px}.pwa-install-button{font-size:14px}.pwa-install-button:hover,.pwa-install-close:hover{background:#e9e1d5}.pwa-install-button:disabled{cursor:wait;opacity:.6}.pwa-install-guide{max-width:470px;margin:14px auto 0;text-align:left;font-size:14px;line-height:1.7}.pwa-install-guide p{margin:0 0 12px}.pwa-install-close{font-size:13px}
