.sfx-fab{position:fixed;right:16px;top:50%;transform:translateY(-50%);z-index:60;width:46px;height:46px;border-radius:50%;cursor:pointer;border:1px solid var(--amber);background:var(--surface);color:var(--amber-d);box-shadow:0 6px 18px #78501433;display:grid;place-items:center;transition:transform .15s ease,box-shadow .15s ease}.sfx-fab .ic{width:22px;height:22px}.sfx-fab:hover{transform:translateY(-50%) scale(1.08);box-shadow:0 9px 24px #78501447}.sfx-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;background:#281c0a6b;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;padding:20px;animation:sfxFade .15s ease}@keyframes sfxFade{0%{opacity:0}}.sfx-modal{width:min(760px,100%);max-height:86vh;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg, 16px);box-shadow:0 24px 60px #3c280a4d;overflow:hidden;animation:sfxPop .2s cubic-bezier(.3,1.2,.5,1)}@keyframes sfxPop{0%{opacity:0;transform:translateY(12px) scale(.98)}}.sfx-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 22px;border-bottom:1px solid var(--line)}.sfx-head h3{margin:0;font-family:var(--display, serif);font-size:20px}.sfx-head p{margin:3px 0 0;font-size:12.5px;color:var(--ink-faint)}.sfx-close{flex:none;width:32px;height:32px;border-radius:8px;cursor:pointer;border:1px solid var(--line);background:var(--surface-2);color:var(--ink-soft);display:grid;place-items:center}.sfx-close:hover{background:var(--surface-3)}.sfx-scroll{overflow:auto}.sfx-table{width:100%;border-collapse:collapse;font-size:13.5px}.sfx-table thead th{position:sticky;top:0;z-index:1;text-align:left;background:var(--surface-2);color:var(--ink-soft);font-weight:700;font-size:12px;padding:10px 14px;border-bottom:1px solid var(--line)}.sfx-table td{padding:9px 14px;border-bottom:1px solid var(--line);vertical-align:top}.sfx-table tr:last-child td{border-bottom:none}.sfx-table tbody tr:hover{background:var(--surface-2)}.sfx-suf{font-family:var(--display, serif);font-weight:700;color:var(--amber-d);white-space:nowrap}.sfx-ex{white-space:nowrap;font-weight:600}.sfx-tr{color:var(--ink-soft)}@media (max-width: 560px){.sfx-table{font-size:12.5px}.sfx-table td,.sfx-table thead th{padding:8px 10px}.sfx-ex{white-space:normal}}.auth-page{min-height:100vh;display:grid;grid-template-columns:1.15fr 1fr;background:var(--bg)}.auth-aside{position:relative;overflow:hidden;background:#e7dcc4;color:var(--ink);padding:clamp(30px,4vw,60px);display:flex;flex-direction:column;border-right:1px solid var(--line)}.auth-aside .auth-brand,.auth-aside-body{position:relative;z-index:1}.auth-aside .auth-brand{display:flex;align-items:center;gap:10px}.auth-aside .auth-brand .name{font-family:var(--display);font-weight:600;font-size:24px;color:var(--ink)}.auth-aside .auth-brand .name b{color:var(--amber-d);font-weight:600}.auth-aside-body{margin-top:clamp(26px,8vh,70px)}.auth-aside h1{font-family:var(--display);font-weight:600;font-size:clamp(30px,3.6vw,47px);line-height:1.04;letter-spacing:-.02em;color:var(--ink);margin:0 0 18px}.auth-aside p{color:var(--ink-soft);font-size:14.5px;line-height:1.65;margin:18px 0 0;max-width:42ch}.auth-shelf{position:absolute;z-index:0;left:-30px;bottom:0;height:clamp(400px,70vh,720px);width:auto;pointer-events:none;-webkit-user-select:none;user-select:none}.auth-main{display:flex;align-items:center;justify-content:center;padding:clamp(24px,5vw,56px);background:var(--bg)}.auth-card{width:100%;max-width:360px}.auth-kicker{display:inline-flex;align-items:center;gap:9px;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint)}.auth-kicker i{width:22px;height:2px;border-radius:2px;background:var(--amber-d)}.auth-card h2{font-family:var(--display);font-weight:600;font-size:34px;margin:12px 0 24px;color:var(--ink)}.auth-form{display:flex;flex-direction:column;gap:13px}.auth-field{display:flex;align-items:center;gap:10px;background:var(--surface);border:1.5px solid var(--line);border-radius:12px;padding:0 14px;height:52px;color:var(--ink-faint);transition:border-color .15s,box-shadow .15s}.auth-field:focus-within{border-color:var(--amber);box-shadow:0 0 0 4px var(--amber-w);color:var(--amber-d)}.auth-field input{flex:1;min-width:0;border:none;background:transparent;outline:none;font-family:var(--ui);font-size:15px;color:var(--ink)}.auth-field input::placeholder{color:var(--ink-faint)}.auth-eye{border:none;background:transparent;color:var(--ink-faint);cursor:pointer;display:grid;place-items:center;padding:4px}.auth-eye:hover{color:var(--amber-d)}.auth-submit{margin-top:5px;height:52px;border:none;border-radius:12px;cursor:pointer;background:var(--amber-d);color:#fff;font-family:var(--ui);font-weight:800;font-size:15px;transition:filter .15s,transform .05s}.auth-submit:hover{filter:brightness(1.06)}.auth-submit:active{transform:translateY(1px)}.auth-submit:disabled{opacity:.6;cursor:default}.auth-or{display:flex;align-items:center;gap:12px;color:var(--ink-faint);font-size:13px;margin:18px 0}.auth-or:before,.auth-or:after{content:"";flex:1;height:1px;background:var(--line)}.auth-google{width:100%;height:50px;display:flex;align-items:center;justify-content:center;gap:10px;background:var(--surface);border:1.5px solid var(--line);border-radius:12px;font-family:var(--ui);font-weight:700;font-size:14px;color:var(--ink);cursor:pointer;transition:border-color .15s,background .15s}.auth-google:hover{border-color:var(--ink-faint);background:var(--surface-2)}.auth-error{background:var(--rose-w);color:var(--rose-d);border-radius:10px;padding:11px 14px;font-size:14px;font-weight:600}.auth-foot{text-align:center;font-size:14px;color:var(--ink-soft);margin:22px 0 0}.auth-foot a{color:var(--amber-d);font-weight:800}@media (max-width: 860px){.auth-page{grid-template-columns:1fr}.auth-aside{display:none}}:root{--bg: #f7f2e8;--shell: #FFFFFF;--surface: #ffffff;--surface-2: #FBF6EC;--surface-3: #F4ECDC;--ink: #38270e;--ink-soft: #272117;--ink-faint: #A79E8E;--line: #ECE3D3;--line-soft: #F1EADB;--amber: #D99A3E;--amber-d: #ce7c09;--amber-w: #F7E7CB;--green: #5C9A6E;--green-d: #3F7A55;--green-w: #E0EFE2;--rose: #CC6B52;--rose-d: #A64A32;--rose-w: #F6DFD6;--lilac: #6f5bd4;--lilac-d: #5a49b8;--lilac-w: #ece9fb;--band1: var(--green);--band2: var(--amber);--band3: var(--rose);--shadow-sm: 0 1px 2px rgba(60,45,15,.05), 0 2px 8px rgba(60,45,15,.05);--shadow-md: 0 6px 20px rgba(60,45,15,.1), 0 2px 6px rgba(60,45,15,.06);--shadow-lg: 0 24px 55px rgba(60,45,15,.16), 0 8px 20px rgba(60,45,15,.08);--r-sm: 9px;--r-md: 10px;--r-lg: 14px;--r-xl: 26px;--ui: "Spectral", Georgia, serif;--read: "Newsreader", Georgia, serif;--display: "Manrope", system-ui, sans-serif;--sidebar-w: 248px;--read-size: clamp(18px, 1.35vw, 21px);--read-leading: 1.85;--read-width: 1000px}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;min-height:100%}body{font-family:var(--ui);color:var(--ink);background-color:var(--bg);background-image:radial-gradient(120% 90% at 50% -10%,rgba(255,254,250,.7),transparent 60%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.03'/%3E%3C/svg%3E");background-attachment:fixed;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3,h4{font-family:var(--display);font-weight:600;letter-spacing:-.015em;margin:0;color:var(--ink)}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer}::selection{background:var(--amber-w);color:var(--ink)}.ic{width:18px;height:18px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round;flex:none}.ic-sm{width:15px;height:15px}.ic-lg{width:22px;height:22px}.kicker{font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--amber-d)}.muted{color:var(--ink-soft)}.faint{color:var(--ink-faint)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--ui);font-size:14px;font-weight:700;line-height:1;padding:11px 18px;border-radius:var(--r-md);border:1px solid transparent;transition:.16s;white-space:nowrap}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:linear-gradient(160deg,var(--amber),var(--amber-d));color:#fff;box-shadow:0 6px 14px -6px #d99a3eb3,inset 0 1px #fff3}.btn-primary:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 10px 20px -8px #d99a3ecc}.btn-ghost{background:var(--surface);color:var(--ink);border-color:var(--line)}.btn-ghost:not(:disabled):hover{border-color:var(--amber);transform:translateY(-1px)}.btn-soft{background:var(--amber-w);color:var(--amber-d)}.btn-soft:not(:disabled):hover{background:#f3ddba}.btn-danger{background:var(--rose-w);color:var(--rose-d);border-color:transparent}.btn-danger:not(:disabled):hover{background:#f1cabd}.btn-block{width:100%}.btn-lg{padding:14px 22px;font-size:15px}.btn-sm{padding:8px 13px;font-size:13px;border-radius:var(--r-sm)}.icon-btn{width:40px;height:40px;border-radius:var(--r-md);border:1px solid var(--line);background:var(--surface);color:var(--ink-soft);display:grid;place-items:center;transition:.16s}.icon-btn:hover{color:var(--ink);border-color:var(--amber);transform:translateY(-1px)}.field,.input,.select,.textarea{width:100%;font-family:var(--ui);font-size:15px;color:var(--ink);background:var(--surface);border:1.5px solid var(--line);border-radius:var(--r-md);padding:12px 14px;transition:.16s;outline:none}.textarea{resize:vertical;min-height:120px;line-height:1.5}.field:focus,.input:focus,.select:focus,.textarea:focus{border-color:var(--amber);box-shadow:0 0 0 4px var(--amber-w)}.field::placeholder,.input::placeholder,.textarea::placeholder{color:var(--ink-faint)}.field-label{font-size:13px;font-weight:700;color:var(--ink-soft);margin-bottom:7px;display:block}.ui-select{position:relative}.ui-select-btn{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;font-family:var(--ui);font-size:15px;color:var(--ink);background:var(--surface);border:1.5px solid var(--line);border-radius:var(--r-md);padding:12px 14px;text-align:left;transition:.16s}.ui-select-btn:hover{border-color:var(--ink-faint)}.ui-select.open .ui-select-btn{border-color:var(--amber);box-shadow:0 0 0 4px var(--amber-w)}.ui-select-ph{color:var(--ink-faint)}.ui-select-chev{color:var(--ink-faint);transition:transform .18s}.ui-select.open .ui-select-chev{transform:rotate(180deg)}.ui-select-menu{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:70;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-lg);padding:6px;max-height:280px;overflow-y:auto;animation:uiSelIn .15s ease}@keyframes uiSelIn{0%{opacity:0;transform:translateY(-4px)}}.ui-select-opt{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;background:transparent;border:none;border-radius:var(--r-sm);padding:10px 12px;font-family:var(--ui);font-size:14.5px;color:var(--ink);text-align:left;transition:.12s}.ui-select-opt:hover{background:var(--surface-2)}.ui-select-opt.on{background:var(--amber-w);color:var(--amber-d)}.ui-select-opt .ic{color:var(--amber-d)}.ui-select-opt-main{display:flex;flex-direction:column;min-width:0}.ui-select-opt-main small{font-size:12px;color:var(--ink-faint)}.search-field{display:flex;align-items:center;gap:10px;background:var(--surface);border:1.5px solid var(--line);border-radius:var(--r-md);padding:0 14px;height:46px;color:var(--ink-faint)}.search-field:focus-within{border-color:var(--amber);box-shadow:0 0 0 4px var(--amber-w)}.search-field input{flex:1;border:none;background:transparent;outline:none;font-family:var(--ui);font-size:14px;color:var(--ink)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-sm)}.panel{padding:20px}.tag{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:800;letter-spacing:.02em;padding:4px 9px;border-radius:999px}.tag-b1{color:var(--green-d);background:var(--green-w)}.tag-b2{color:var(--amber-d);background:var(--amber-w)}.tag-b3{color:var(--rose-d);background:var(--rose-w)}.tag-muted{color:var(--ink-faint);background:var(--surface-3)}.tag-known{color:var(--green-d);background:var(--green-w)}.tag-learning{color:var(--amber-d);background:var(--amber-w)}.tag-new{color:var(--rose-d);background:var(--rose-w)}.pill{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;color:var(--ink-soft);background:var(--surface-3);padding:5px 11px;border-radius:999px}.progress{height:7px;border-radius:99px;background:var(--surface-3);overflow:hidden}.progress>i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--amber),var(--amber-d))}.progress.green>i{background:linear-gradient(90deg,var(--green),var(--green-d))}.segmented{display:inline-flex;padding:4px;gap:4px;border-radius:999px;background:var(--surface-3);border:1px solid var(--line)}.segmented button{border:none;background:transparent;color:var(--ink-soft);font-family:var(--ui);font-weight:700;font-size:14px;padding:8px 16px;border-radius:999px;transition:.16s}.segmented button.on{background:var(--surface);color:var(--amber-d);box-shadow:var(--shadow-sm)}*::-webkit-scrollbar{width:11px;height:11px}*::-webkit-scrollbar-thumb{background:#e3d6bf;border-radius:10px;border:3px solid var(--bg)}*::-webkit-scrollbar-thumb:hover{background:#d4c2a4}.app-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;min-height:60vh;color:var(--ink-soft);font-size:15px}.spinner{width:38px;height:38px;border-radius:50%;border:3px solid var(--surface-3);border-top-color:var(--amber);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{text-align:center;padding:48px 24px;color:var(--ink-soft)}.empty-state .empty-ic{width:56px;height:56px;border-radius:16px;background:var(--surface-3);display:grid;place-items:center;color:var(--ink-faint);margin:0 auto 16px}.empty-state h3{margin-bottom:8px}.app-shell{min-height:100vh;background:radial-gradient(130% 130% at 28% -10%,#f3f4f7,#e6e8ee);padding:var(--shell-pad, clamp(0px, 1.4vw, 16px))}.app-frame{display:flex;gap:4px;max-width:1360px;margin:0 auto;background:transparent;min-height:calc(100vh - 2 * var(--shell-pad, clamp(0px, 1.4vw, 16px)))}.app-sidebar{width:var(--sidebar-w);flex:none;z-index:50;display:flex;flex-direction:column;padding:22px 16px;background:var(--shell);border-radius:22px 0 0 22px;box-shadow:var(--shadow-md)}.app-main{flex:1;min-width:0;background:var(--bg);border-radius:0 26px 26px 0}.app-shell:not(.reading) .app-main{position:relative;background:var(--shell);padding:18px;border-radius:0 32px 32px 0;box-shadow:var(--shadow-md)}.app-shell:not(.reading) .app-main:before{content:"";position:absolute;top:18px;right:18px;bottom:18px;left:18px;z-index:0;background:var(--bg);border-radius:16px;pointer-events:none;box-shadow:inset 0 2px 2px #ffffff80,inset 0 14px 26px -14px #46371e33,inset 0 -14px 26px -14px #46371e21,inset 16px 0 28px -16px #46371e2e,inset -16px 0 28px -16px #46371e1a}.app-shell:not(.reading) .app-main>*{position:relative;z-index:1}.app-shell.reading{padding:0;background:var(--bg)}.app-shell.reading .app-frame{max-width:none;margin:0;border-radius:0;box-shadow:none;min-height:100vh;background:var(--bg)}.app-shell.reading .app-sidebar{display:none}.app-shell.reading .app-main{border-radius:0;background:var(--bg)}.sb-logo{display:flex;align-items:center;gap:10px;padding:0 8px 6px}.sb-logo .owl{width:32px;height:32px;color:var(--amber)}.sb-logo .name{font-family:var(--display);font-weight:600;font-size:25px;letter-spacing:-.01em}.sb-logo .name b{color:var(--amber-d);font-weight:600}.sb-nav{display:flex;flex-direction:column;gap:3px;margin-top:22px;overflow-y:auto}.sb-section{font-size:10.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);padding:16px 14px 6px}.sb-link{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:var(--r-md);color:var(--ink-soft);font-size:14.5px;font-weight:700;transition:.15s}.sb-link:hover{background:var(--surface-2);color:var(--ink)}.sb-link.active{background:var(--amber-w);color:var(--amber-d);box-shadow:inset 0 0 0 1px #f0d6a8}.sb-link .ic{opacity:.9}.sb-spacer{flex:1}.sb-footer{position:sticky;bottom:0;background:var(--shell);display:flex;flex-direction:column;padding-top:12px;padding-bottom:4px}.sb-continue{display:block;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-lg);padding:14px;text-align:center;margin-top:12px;transition:.16s}.sb-continue:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.sb-continue-lbl{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:11px}.sb-continue-cover{position:relative;width:78px;height:108px;margin:0 auto;border-radius:5px 8px 8px 5px;box-shadow:0 8px 16px -6px #281e0a73;display:flex;align-items:flex-end;padding:9px;color:#fff;font-family:var(--display);font-size:11px;line-height:1.15;text-align:left;overflow:hidden}.sb-continue-cover .edge{position:absolute;left:0;top:0;bottom:0;width:5px;background:#0003;border-radius:5px 0 0 5px}.sb-continue-cta{display:inline-flex;align-items:center;gap:6px;margin-top:12px;background:var(--amber);color:#fff;font-weight:700;font-size:13px;padding:8px 13px;border-radius:11px;box-shadow:0 6px 14px -5px #d99a3eb3}.sb-streak{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:12px;font-size:12.5px;font-weight:700;color:var(--rose-d);background:var(--rose-w);padding:7px 12px;border-radius:999px}.sb-user{display:flex;align-items:center;gap:10px;padding:10px 8px;margin-top:10px;border-top:1px solid var(--line)}.sb-avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;flex:none;color:#fff;font-weight:800;font-size:13px;background:linear-gradient(150deg,#cda76e,#9c7b48)}.sb-user .who{min-width:0}.sb-user .who .nm{font-weight:700;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sb-user .who .rl{font-size:12px;color:var(--ink-faint)}.sb-logout{margin-left:auto;width:34px;height:34px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--ink-soft);display:grid;place-items:center;flex:none}.sb-logout:hover{color:var(--rose-d);border-color:var(--rose)}.app-topbar,.sb-scrim{display:none}@media (max-width: 900px){.app-shell{padding:0;background:var(--bg)}.app-frame{display:block;max-width:none;margin:0;border-radius:0;box-shadow:none;min-height:100vh;background:var(--bg)}.app-main{border-radius:0}.app-shell:not(.reading) .app-main{box-shadow:none;margin:0;border:none;border-radius:0;padding:0;background:var(--bg)}.app-shell:not(.reading) .app-main:before{display:none}.app-shell.reading .app-frame{max-width:none}.app-topbar{display:flex;align-items:center;gap:12px;height:58px;padding:0 16px;position:sticky;top:0;z-index:40;background:#f9f4ece6;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.app-topbar .name{font-family:var(--display);font-weight:600;font-size:18px}.app-topbar .name b{color:var(--amber-d)}.app-sidebar{position:fixed;top:0;left:0;bottom:0;height:100vh;border-radius:0;transform:translate(-100%);transition:transform .25s ease;box-shadow:var(--shadow-lg)}.app-sidebar.open{transform:translate(0)}.sb-scrim.show{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:45;background:#28211459}}.page-wrap{max-width:1120px;margin:0 auto;padding:clamp(18px,3vw,34px)}.confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;background:#28211466;display:grid;place-items:center;padding:20px;animation:cFade .15s ease}@keyframes cFade{0%{opacity:0}}.confirm-box{width:100%;max-width:400px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);padding:24px;animation:cPop .18s ease}@keyframes cPop{0%{transform:translateY(8px);opacity:0}}.confirm-msg{font-family:var(--read);font-size:17px;line-height:1.5;color:var(--ink);margin:0 0 20px}.confirm-actions{display:flex;gap:10px;justify-content:flex-end}.cover-1{background:linear-gradient(155deg,#2c5d52,#173b33)}.cover-2{background:linear-gradient(155deg,#8a4a2a,#5e2c17)}.cover-3{background:linear-gradient(155deg,#3a4f6b,#222f44)}.cover-4{background:linear-gradient(155deg,#6b5e7a,#3f3349)}.cover-5{background:linear-gradient(155deg,#7a5a2c,#4f3717)}.shelf-row{display:flex;align-items:flex-end;gap:clamp(14px,2.4vw,30px);padding:0 10px;min-height:178px;overflow-x:auto;scrollbar-width:none}.shelf-row::-webkit-scrollbar{display:none}.shelf-plank{height:23px;border-radius:4px;margin:-16px -2px 0;z-index:1;background:linear-gradient(180deg,#f6edda,#eedfc1 34%,#e4d2ae);box-shadow:inset 0 1.5px #ffffffd9,inset 0 -4px 5px -3px #7858286b,0 10px 12px -8px #50371473,0 20px 26px -12px #5037144d;position:relative}.shelf-book{position:relative;flex:none;z-index:0;width:clamp(94px,9vw,112px);height:clamp(132px,13vw,158px);border-radius:0;color:#fff;cursor:pointer;box-shadow:0 14px 20px -10px #281e0a8c,0 3px 6px #281e0a40,7px 2px 12px -5px #281e0a6b;display:flex;flex-direction:column;padding:13px 12px;overflow:hidden;transition:.2s}.shelf-book:hover{transform:translateY(-8px);box-shadow:0 24px 30px -12px #281e0a99,9px 4px 16px -6px #281e0a6b}.shelf-book:before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:#00000038}.shelf-book:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(115deg,rgba(255,255,255,.18),transparent 42%);pointer-events:none}.shelf-book .sb-title{font-family:var(--display);font-weight:600;font-size:14px;line-height:1.12}.shelf-book .sb-foot{margin-top:auto;font-size:10px;opacity:.9}.shelf-col{display:flex;flex-direction:column;align-items:center;flex:none;position:relative}.shelf-col .sb-prog{position:relative;z-index:2;margin-top:8px;width:95%;height:8px;background:#46301459;box-shadow:inset 0 1px 1px #32220e73;overflow:hidden}.shelf-col .sb-prog>i{display:block;height:100%;background:#cba97b}.shelf-book-add{flex:none;width:clamp(94px,9vw,112px);height:clamp(132px,13vw,158px);margin-bottom:16px;border-radius:8px;border:2px dashed var(--line);background:transparent;color:var(--amber-d);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;font-weight:700;font-size:12px;text-align:center;padding:10px}.shelf-book-add:hover{border-color:var(--amber);background:var(--surface-2)}
