:root{--desk-1: #3a2a22;--desk-2: #1f1612;--paper: #fbf3e2;--paper-edge: #e9dbbd;--ink: #3a2a24;--ink-soft: #6d5a50;--plum: #4d2f55;--plum-deep: #2f1b38;--gold: #dcb870;--rose: #c75b86;--topbar-h: 62px;--controls-h: 68px;--serif: "Lora", Georgia, "Times New Roman", serif;--display: "Playfair Display", "Lora", Georgia, serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:radial-gradient(1200px 700px at 50% 35%,var(--desk-1),var(--desk-2) 70%),var(--desk-2);color:var(--paper);font-family:var(--serif);-webkit-font-smoothing:antialiased;overscroll-behavior:none}button{font:inherit;color:inherit;cursor:pointer}.shell{position:relative;height:100dvh;display:flex;flex-direction:column;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}.stage{flex:1;min-height:0;position:relative;display:grid;place-items:center}.view{position:relative;width:100%;height:100%;display:flex;flex-direction:column;min-height:0}.topbar{height:var(--topbar-h);flex:none;display:flex;align-items:center;gap:12px;padding:0 16px}.brand{display:flex;flex-direction:column;align-items:flex-start;min-width:0;line-height:1.2;text-align:left}.brand-1{font-size:.66rem;letter-spacing:.03em;color:#cdbd9e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.brand-2{font-size:.72rem;letter-spacing:.02em;color:#e6d7b8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.brand-3{font-family:var(--display);font-weight:600;font-size:.94rem;letter-spacing:.01em;color:var(--gold);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.topbar{position:relative}.where{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);margin:0;font-size:.85rem;color:#d9c9b6;white-space:nowrap;pointer-events:none}.brand{max-width:calc(50% - 56px)}.icon-btn{background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:999px;width:36px;height:36px;display:grid;place-items:center}.icon-btn:hover{background:#ffffff29}.controls{position:relative;height:var(--controls-h);flex:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 16px}.nav-btn{background:#ffffff17;border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:10px 18px;min-height:44px;font-size:.95rem;white-space:nowrap}.nav-btn:hover:not(:disabled){background:#ffffff2e}.nav-btn:disabled{opacity:.35;cursor:default}.dots{display:flex;gap:5px;flex-wrap:nowrap;justify-content:center;max-width:70cqw}.dot{flex:0 1 22px;width:22px;height:6px;padding:0;min-width:8px;border-radius:999px;border:0;background:#ffffff4d;position:relative;transition:background .2s,transform .2s}.dot:after{content:"";position:absolute;inset:-14px -2px}.dot:hover{background:#ffffff8c}.dot.on{background:var(--gold);transform:scaleY(1.35)}.reader{flex:1;min-height:0;position:relative;--pw: min(47.5cqw, calc((100cqh - var(--controls-h) - 34px) / 1.25), 860px)}.paper{background:linear-gradient(90deg,rgba(0,0,0,.05),transparent 6%,transparent 94%,rgba(0,0,0,.05)),radial-gradient(120% 90% at 50% 0%,#fffaf0,var(--paper) 60%,var(--paper-edge));color:var(--ink)}.page-inner{width:100%;height:100%;position:relative;overflow:hidden}.page-inner.art{overflow:hidden;container:art / size}.sc-wrap{position:absolute;left:50%;top:50%;width:min(100cqw,80cqh);aspect-ratio:1122 / 1402;transform:translate(-50%,-50%);-webkit-user-select:none;user-select:none}.sc-base{position:absolute;inset:0;width:100%;height:100%;display:block;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.sc-hot{position:absolute;z-index:2;border-radius:10px;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.sc-fx{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:1}.fx-glow{position:absolute;border-radius:50%;mix-blend-mode:screen;opacity:0;animation:fx-glow 1.4s ease-in-out 1 both}.fx-frame{position:absolute;border-radius:8px;mix-blend-mode:screen;opacity:0;animation:fx-frame 1.5s ease-in-out 1 both}.fx-star{position:absolute;opacity:0;transform:scale(.4);background:radial-gradient(closest-side,#fff8dc 0,#ffe9a8 45%,#ffdc8c00);clip-path:polygon(50% 0,60% 40%,100% 50%,60% 60%,50% 100%,40% 60%,0 50%,40% 40%);animation:fx-star 1s ease-out 1 both}.fx-sweep{position:absolute;overflow:hidden;border-radius:8px;mix-blend-mode:screen;pointer-events:none}.fx-sweep-band{position:absolute;top:-20%;bottom:-20%;left:0;width:38%;background:linear-gradient(100deg,#fff4d600,#fff0c8bf 50%,#fff4d600);transform:translate(-130%) skew(-14deg);animation:fx-sweep 1.3s ease-in-out 1 both}@keyframes fx-sweep{0%{transform:translate(-130%) skew(-14deg);opacity:0}15%{opacity:1}85%{opacity:1}to{transform:translate(330%) skew(-14deg);opacity:0}}@keyframes fx-glow{0%{opacity:0;transform:scale(.92)}40%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.04)}}@keyframes fx-frame{0%{opacity:0}45%{opacity:1}to{opacity:0}}@keyframes fx-star{0%{opacity:0;transform:scale(.4)}35%{opacity:1;transform:scale(1.12)}to{opacity:0;transform:scale(.7)}}.page-inner.blank{background:transparent}.page-inner.text{display:flex;flex-direction:column;padding:9% 10% 6%;font-size:calc(1em * var(--fit, 1))}.chapter{margin:0 0 .9em;text-align:center;font-family:var(--display);font-size:1.05em;letter-spacing:.08em;text-transform:uppercase;color:var(--plum)}.chapter:after{content:"❖";display:block;font-size:.7em;color:var(--gold);margin-top:.5em}.prose{flex:1;min-height:0;display:flex;flex-direction:column;justify-content:flex-start;justify-content:safe center;gap:.8em}.prose:before{content:"❖";text-align:center;color:var(--gold);font-size:.8em}.prose p{margin:0;line-height:1.62;font-size:1em;text-align:left;-webkit-hyphens:auto;hyphens:auto}.prose p.first:first-letter{font-family:var(--display);float:left;font-size:3.1em;line-height:.85;padding:.06em .1em 0 0;color:var(--rose)}.folio{margin:.5em 0 0;flex:none;text-align:center;font-size:.78em;color:var(--ink-soft);letter-spacing:.1em}.page-inner.cover{padding:0;background:#f3d9c9}.cover-bg{position:absolute;inset:-4%;width:108%;height:108%;object-fit:cover;filter:blur(16px) saturate(1.05)}.cover-img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;display:block;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.book-stage{position:absolute;inset:0;display:grid;place-items:center}.book{position:relative;width:calc(var(--pw) * 2);height:calc(var(--pw) * 1.25);font-size:calc(var(--pw) / 23);perspective:2600px;transform:translate(var(--shift, 0));transition:transform .7s cubic-bezier(.4,0,.2,1)}.book-shadow{position:absolute;left:1%;right:1%;bottom:-3%;height:8%;background:radial-gradient(closest-side,rgba(0,0,0,.55),transparent);filter:blur(6px)}.half{position:absolute;top:0;width:50%;height:100%;overflow:hidden;box-shadow:0 10px 30px #00000073;cursor:pointer}.half.left{left:0;border-radius:14px 0 0 14px/22px 0 0 22px;box-shadow:-1px 1px #e4d7b8,-2px 2px #fbf3e2,-3px 3px #dccea9,-4px 4px #fbf3e2,-5px 5px #d4c59f,0 10px 30px #00000073}.half.right{left:50%;border-radius:0 14px 14px 0/0 22px 22px 0;box-shadow:1px 1px #e4d7b8,2px 2px #fbf3e2,3px 3px #dccea9,4px 4px #fbf3e2,5px 5px #d4c59f,0 10px 30px #00000073}.half.right:before,.half.left:before{content:"";position:absolute;inset:0;z-index:5;pointer-events:none}.half.right:before{background:linear-gradient(270deg,#6e552d24 0,#fffbee9e 1.1%,#fffbee00 5%),radial-gradient(120% 60% at 100% 100%,#fffbee00 62%,#6e552d14)}.half.left:before{background:linear-gradient(90deg,#6e552d24 0,#fffbee9e 1.1%,#fffbee00 5%),radial-gradient(120% 60% at 0 100%,#fffbee00 62%,#6e552d14)}.half[data-empty=true]:before{display:none}.half[data-empty=true]{background:transparent;box-shadow:none}.spine{position:absolute;left:50%;top:0;bottom:0;width:7%;transform:translate(-50%);background:linear-gradient(90deg,transparent,rgba(0,0,0,.16) 45%,rgba(0,0,0,.24) 50%,rgba(0,0,0,.16) 55%,transparent);pointer-events:none;z-index:3}.leaf{position:absolute;left:50%;top:0;width:50%;height:100%;transform-origin:left center;transform-style:preserve-3d;z-index:4;pointer-events:none}.leaf.next{animation:flipNext 1.5s cubic-bezier(.4,.08,.22,1) forwards}.leaf.prev{transform:rotateY(-180deg);animation:flipPrev 1.5s cubic-bezier(.4,.08,.22,1) forwards}.face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;overflow:hidden}.face.front{border-radius:0 8px 8px 0}.face.back{transform:rotateY(180deg);border-radius:8px 0 0 8px}@keyframes flipNext{0%{transform:rotateY(0)}50%{box-shadow:0 0 70px #0006}to{transform:rotateY(-180deg)}}@keyframes flipPrev{0%{transform:rotateY(-180deg)}50%{box-shadow:0 0 70px #0006}to{transform:rotateY(0)}}.m-stage{position:absolute;inset:0;padding:4px 12px 8px;touch-action:pan-y}.m-page{height:100%;display:flex;flex-direction:column;border-radius:12px;overflow:hidden;box-shadow:0 8px 28px #00000080;background:var(--paper)}.m-art{flex:0 0 60%;min-height:0;background:#2a1e1a}.m-art .page-inner.art img{object-fit:contain}.m-text{flex:1;min-height:0;overflow:auto;font-size:clamp(15px,4.2cqw,18px)}.m-text .page-inner.text{padding:14px 20px 12px;height:auto;min-height:100%}.m-text .prose{justify-content:flex-start}.m-single{flex:1;min-height:0;overflow:auto;font-size:clamp(15px,4.2cqw,18px)}.m-single .page-inner.cover{padding:0;font-size:clamp(13px,3.6cqw,17px)}.slide-next{animation:slideNext .55s ease-out both}.slide-prev{animation:slidePrev .55s ease-out both}@keyframes slideNext{0%{opacity:0;transform:translate(28px)}to{opacity:1;transform:none}}@keyframes slidePrev{0%{opacity:0;transform:translate(-28px)}to{opacity:1;transform:none}}@container frame (max-width: 820px),(max-aspect-ratio: 1/1){.controls{flex-wrap:wrap;justify-content:space-between;align-items:center;height:auto;padding:4px 12px calc(10px + var(--badge-room, 26px));gap:6px 8px}.controls .mid{display:contents}.nav-btn{flex:0 0 auto;min-width:84px;padding-inline:12px;order:1}.nav-btn:last-of-type{order:3}.play-btn{order:2}.dots{order:4;flex:0 0 100%;max-width:100%;flex-wrap:nowrap;gap:4px;justify-content:stretch;padding:0 4px}.dot{flex:1 1 0;width:auto;height:7px}.dot:after{inset:-14px -2px}:root{--controls-h: 0px}}@container frame (min-aspect-ratio: 1/1) and (max-height: 560px){.m-page{flex-direction:row}.m-art{flex:0 0 auto;height:100%;aspect-ratio:4 / 5;max-width:55%}}@media(prefers-reduced-motion:reduce){.book,.slide-next,.slide-prev{transition:none;animation:none}}.mid{display:flex;flex-direction:column;align-items:center;gap:8px}.play-btn{background:var(--gold);color:#2f1b38;border:0;border-radius:999px;padding:8px 20px;min-height:40px;font-weight:600;letter-spacing:.02em}.play-btn.on{background:#f3dba3}.sound-panel{position:absolute;top:var(--topbar-h);right:12px;z-index:30;width:min(320px,calc(100% - 24px));background:#1e141cf7;border:1px solid rgba(255,255,255,.18);border-radius:14px;padding:14px 16px;box-shadow:0 12px 40px #0000008c}.sp-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;color:var(--gold)}.sp-row{display:grid;grid-template-columns:38px 76px 1fr;align-items:center;gap:8px;margin:8px 0}.sp-mute{background:transparent;border:1px solid rgba(255,255,255,.2);border-radius:10px;width:36px;height:36px}.sp-mute.off{opacity:.5}.sp-label{font-size:.9rem}.sp-row input[type=range]{width:100%;accent-color:var(--gold)}.sp-opt{display:flex;gap:10px;align-items:flex-start;font-size:.85rem;margin-top:12px;color:#e8dccb;line-height:1.35}.sp-opt input{margin-top:3px;accent-color:var(--gold)}@container frame (max-width: 820px),(max-aspect-ratio: 1/1){.mid{width:100%;order:2;flex-basis:100%}.controls .nav-btn:first-child{order:1}.controls .nav-btn:last-child{order:3}}.sp-silent{display:flex;gap:10px;align-items:center;margin:0 0 8px;padding:8px 10px;background:#ffffff0f;border-radius:10px;font-size:.92rem}.sp-silent small{color:#bda9a0}.sp-silent input{accent-color:var(--gold)}.sp-row.dim{opacity:.45}.turn-hint{display:inline-flex;align-items:center;gap:6px;max-width:calc(100cqw - 24px);padding:6px 6px 6px 12px;background:#fff7e6;color:#4d2f55;border:1px solid #d9b36a;border-radius:999px;font-size:13px;line-height:1.2;white-space:nowrap;box-shadow:0 6px 18px #00000059;pointer-events:none;opacity:0;transition:opacity .7s ease,transform .7s ease;z-index:6}.turn-hint.in{opacity:1;transform:none}.turn-hint.out{opacity:0}.turn-hint:before{content:"";position:absolute;top:-6px;right:22px;width:10px;height:10px;background:#fff7e6;border-left:1px solid #d9b36a;border-top:1px solid #d9b36a;transform:rotate(45deg)}.turn-hint.desk{position:absolute;right:0;top:calc(100% + 12px);transform:translateY(-4px)}.turn-hint.mobile{position:absolute;right:12px;bottom:6px;transform:translateY(4px)}.turn-hint.mobile:before{top:-6px}.th-x{pointer-events:auto;width:22px;height:22px;padding:0;border-radius:50%;border:0;background:#4d2f551f;color:#4d2f55;font-size:15px;line-height:1}@media(prefers-reduced-motion:reduce){.turn-hint{transition:none}}.stage-inner{width:100%;height:100%;display:grid;place-items:center;min-height:0}.frame-wrap{position:relative}.frame{container:frame / size;position:relative;width:100%;height:100%;overflow:hidden;background:var(--desk-2)}.frame-wrap.boxed{filter:drop-shadow(0 18px 40px rgba(0,0,0,.5))}.frame.device-tablet{border-radius:22px;outline:10px solid #2a2230}.frame.device-phone{border-radius:34px;outline:10px solid #2a2230}.tools{margin-left:auto;display:flex;align-items:center;gap:8px}.where{margin:0}.device-group{display:flex;gap:4px;padding:3px;margin-right:6px;background:#ffffff0f;border-radius:999px}.device-group .icon-btn{width:32px;height:32px;border-color:transparent;background:transparent}.icon-btn{color:#f1e6d3}.icon-btn.active{background:var(--gold);color:#2f1b38;border-color:var(--gold)}.icon-btn.off{color:#f4a3a3}@media(max-width:480px){.where{font-size:.72rem}.tools{gap:6px}.brand-1{font-size:.58rem}.brand-2{font-size:.62rem}.brand-3{font-size:.8rem}.topbar{padding:0 12px}}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.welcome{position:absolute;inset:0;overflow:auto;display:flex;align-items:center;justify-content:center;gap:clamp(20px,5cqw,64px);padding:clamp(20px,5cqh,44px) clamp(16px,5cqw,64px);background:radial-gradient(70% 60% at 30% 40%,#78502852,#78502800 70%),linear-gradient(180deg,#2a1f1a,#1d1613)}.w-cover{flex:none;height:min(86cqh,55cqw);aspect-ratio:1145 / 1374}.w-cover img{width:100%;height:100%;object-fit:contain;object-position:center;display:block;border-radius:10px;box-shadow:0 0 0 4px #4a3a2c,0 0 0 6px #8a6d3b,0 18px 44px #0000008c;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.w-panel{flex:0 1 380px;min-width:0;display:flex;flex-direction:column;gap:16px}.w-kicker{margin:0;font-family:var(--display);font-weight:600;font-size:clamp(16px,2.4cqw,22px);letter-spacing:.02em;color:#e6cf9a;text-align:center}.w-kicker:after{content:"";display:block;width:64px;height:2px;margin:10px auto 0;background:linear-gradient(90deg,transparent,#c8a24a,transparent)}.w-cards{display:flex;flex-direction:column;gap:12px}.w-card{display:grid;grid-template-columns:52px 1fr;grid-template-areas:"i t" "i x";align-items:center;column-gap:14px;row-gap:2px;width:100%;min-height:78px;padding:12px 16px;text-align:left;background:linear-gradient(180deg,#24605f,#1b4a4b);color:#fff3dc;border:1.5px solid #c8a24a;border-radius:16px;box-shadow:0 6px 16px #1e3c3747,inset 0 1px #ffffff1f;transition:transform .15s ease,box-shadow .15s ease,filter .15s ease}.w-card:hover{transform:translateY(-2px);filter:brightness(1.08);box-shadow:0 10px 22px #1e3c3757}.w-card:focus-visible{outline:3px solid #c8a24a;outline-offset:3px}.w-card:disabled{background:#ffffff0a;border:1px dashed rgba(220,184,112,.35);box-shadow:none;color:#9d907f;cursor:not-allowed;transform:none;filter:none}.w-card:disabled .w-icon{background:transparent;color:#7d7164;border-color:#dcb87040}.w-card:disabled .w-text{color:#8a7e70}.w-soon{display:inline-block;margin-left:8px;padding:1px 8px;font-size:.62rem;letter-spacing:.08em;text-transform:none;border:1px solid rgba(220,184,112,.4);border-radius:999px;color:#c9b27a;vertical-align:middle;font-family:var(--serif);font-weight:400}.w-card.is-main{box-shadow:0 0 0 1px #f0d48a80,0 8px 26px #c8a24a47}.w-icon{grid-area:i;width:52px;height:52px;display:grid;place-items:center;border-radius:50%;background:#fff3dc1f;color:#f0d48a;border:1px solid rgba(240,212,138,.5)}.w-title{grid-area:t;display:flex;flex-wrap:wrap;align-items:center;gap:2px 0;font-family:var(--display);font-weight:700;font-size:1.05rem;letter-spacing:.03em;text-transform:uppercase}.w-text{grid-area:x;font-size:.88rem;color:#d9e8e3;line-height:1.35;overflow-wrap:anywhere}@container frame (max-aspect-ratio: 1/1){.welcome{flex-direction:column;justify-content:flex-start;justify-content:safe center;align-items:center;gap:16px;padding:18px 16px}.w-cover{flex:none;width:auto;max-width:100%;height:min(44cqh,calc((100cqw - 32px)*1.2));aspect-ratio:1145 / 1374}.w-cover img{object-fit:contain}.w-panel{flex:none;width:min(100%,440px);gap:12px}.w-card{min-height:64px;padding:10px 14px}}@container frame (max-width: 420px){.w-card{grid-template-columns:44px 1fr;column-gap:10px}.w-icon{width:44px;height:44px}.w-title{font-size:.95rem}.w-text{font-size:.82rem}}@container frame (min-aspect-ratio: 1/1) and (max-height: 520px){.welcome{gap:20px;padding:10px 16px}.w-cover{height:min(94cqh,55cqw)}.w-panel{gap:8px;flex-basis:340px}.w-card{min-height:56px;padding:8px 12px}.w-kicker{font-size:15px}.w-kicker:after{margin-top:6px}}.panel{position:absolute;inset:0;overflow:auto;padding:clamp(18px,4cqw,40px);background:radial-gradient(60% 35% at 50% 0%,#ffeec8cc,#ffeec800),linear-gradient(180deg,#f6dccb,#fbeadc 55%,#fdf3e6);color:#2f4f4e;display:flex;flex-direction:column;gap:16px;align-items:center}.panel>*{width:min(100%,760px);flex:none}.panel{justify-content:safe center}@container frame (min-width: 900px){.panel{padding-block:32px;gap:20px}.res-stat{padding:18px 8px}}.panel-title{font-family:var(--display);font-weight:700;font-size:clamp(22px,5cqw,32px);color:#1d4f50;margin:0;text-align:center}.panel-note{text-align:center;font-size:1.05rem;padding:18px;background:#fffaf0;border:1px dashed var(--gold);border-radius:14px;margin:0}.panel-note.ok{border-style:solid;color:#2d6a4f}.panel-foot{text-align:center;font-size:.8rem;color:#8a7a74;margin:0}.panel-actions{display:flex;flex-wrap:wrap;gap:10px 12px;justify-content:center;align-items:stretch}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 18px;font-family:var(--serif);font-size:.95rem;background:#fffaf0;color:#1d4f50;border:1.5px solid var(--gold);border-radius:999px}.btn:hover:not(:disabled){background:#fff1d2}.btn.primary{background:#1d4f50;color:#fff8ea;border-color:#1d4f50}.btn.primary:hover:not(:disabled){background:#173f40}.btn.ghost{background:transparent;border-color:transparent;text-decoration:underline}.btn:disabled{opacity:.5;cursor:default}.res-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.res-stat{background:#fffaf0;border:1.5px solid var(--gold);border-radius:16px;padding:14px 8px;text-align:center}.res-stat .n{display:block;font-family:var(--display);font-weight:700;font-size:clamp(22px,5cqw,32px);color:#1d4f50}.res-stat .l{font-size:.82rem;color:#7b5b62}.res-stat.good .n{color:#2d6a4f}.res-stat.bad .n{color:#b4606c}.res-stat.pct{background:#1d4f50}.res-stat.pct .n,.res-stat.pct .l{color:#fff8ea}.res-wrong h3,.res-open h3{font-family:var(--display);color:#1d4f50;margin:0 0 8px}.res-wrong ul,.res-open ul{list-style:none;padding:0;margin:0;display:grid;gap:10px}.res-wrong li,.res-open li{background:#fffaf0;border:1.5px solid #e4cfb6;border-radius:14px;padding:12px 14px}.res-wrong p,.res-open p{margin:.25em 0;line-height:1.45;overflow-wrap:anywhere}.res-wrong .rq,.res-open .rq{font-weight:600;color:#1d4f50}.res-wrong span,.res-open span{color:#7b5b62}.res-wrong .rc{color:#2d6a4f}.res-wrong .rf{background:#fbf0d9;padding:8px 10px;border-radius:10px}@container frame (max-width: 520px){.res-stat{padding:10px 4px}}.page-inner.closing{container:cl / size;position:relative;background:#f6ead2;display:flex;flex-direction:column;align-items:center;overflow:hidden}.cl-art{position:absolute;inset:0;margin:0}.cl-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}.cl-foot{position:absolute;left:50%;transform:translate(-50%);bottom:1.6cqh;width:66cqw;display:flex;flex-direction:column;align-items:center;gap:.7cqh;padding:0}.cl-guide{margin:0;padding:.35cqh 1.6cqh;border-radius:999px;background:#fffbf0d1;font-size:clamp(8px,1.7cqh,13px);line-height:1.25;color:#4a3a52;text-align:center;text-wrap:balance}.cl-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.8cqh 1.2cqh}@container cl (max-aspect-ratio: 3/4){.cl-art{position:relative;inset:auto;flex:1 1 0;min-height:0;width:100%}.cl-art img{object-fit:contain}.cl-foot{position:static;transform:none;width:100%;padding:6px 8px 10px;gap:6px}.cl-guide{background:none;padding:0;font-size:clamp(11px,3.6cqw,15px)}.cl-actions{gap:8px}}.cl-btn{display:inline-flex;align-items:center;justify-content:center;gap:.8cqh;min-height:clamp(24px,5.4cqh,36px);padding:0 clamp(8px,2.2cqh,14px);background:#fffcf4e6;color:#2c3a4f;border:1px solid #b9a876;border-radius:999px;font-family:var(--serif);font-size:clamp(9px,2cqh,14px);white-space:nowrap}@container cl (max-aspect-ratio: 3/4){.cl-btn{min-height:36px;padding:6px 14px;font-size:14px;gap:8px;background:transparent}}.cl-btn:hover:not(:disabled){background:#c8aa6424}.cl-btn:disabled{opacity:.55;cursor:not-allowed}.cl-soon{font-size:.72em;letter-spacing:.06em;text-transform:uppercase;color:#8a7a5a}.q-balloon{background:linear-gradient(180deg,#2b211c,#221915);color:#f3e8d3;border:1.5px solid rgba(220,184,112,.7);border-radius:16px;padding:14px 16px 16px;box-shadow:0 14px 40px #0000008c;display:flex;flex-direction:column;gap:10px;font-size:15px;line-height:1.45;animation:qIn .28s ease-out both}.q-balloon.desk{position:absolute;z-index:25;right:12px;top:50%;transform:translateY(-50%);width:clamp(260px,calc((100cqw - 2 * var(--pw)) / 2 - 28px),350px);min-width:260px;max-height:92%;overflow:auto}.q-balloon.inline{width:100%;height:100%;overflow:auto;border-radius:12px;box-shadow:none;animation:none}@keyframes qIn{0%{opacity:0;translate:24px 0}to{opacity:1;translate:0 0}}.q-title{margin:0;font-family:var(--display);font-size:1.1rem;color:var(--gold);letter-spacing:.02em}.q-text{margin:0;font-weight:600;overflow-wrap:anywhere}.q-hint{margin:-4px 0 0;font-size:.82rem;color:#cdbd9e}.q-options{display:grid;gap:8px}.q-opt{display:flex;align-items:flex-start;gap:10px;padding:9px 12px;border:1px solid rgba(255,255,255,.2);border-radius:12px;background:#ffffff0a;cursor:pointer;min-height:44px}.q-opt input{position:absolute;opacity:0;pointer-events:none}.q-mark{flex:none;width:20px;height:20px;margin-top:1px;border:1.5px solid #cdbd9e;border-radius:50%;display:grid;place-items:center}.q-opt-text{overflow-wrap:anywhere}.q-opt.picked{border-color:var(--gold);background:#dcb87024}.q-opt.picked .q-mark{background:var(--gold);border-color:var(--gold);box-shadow:inset 0 0 0 4px #2b211c}.q-opt input:focus-visible+.q-mark{outline:2px solid var(--gold);outline-offset:2px}.q-opt.right{border-color:#8fd19e;background:#8fd19e1f}.q-opt.right .q-mark{background:#8fd19e;border-color:#8fd19e;color:#1b2a1f;box-shadow:none}.q-opt.wrong{border-color:#f0a3a3;background:#f0a3a31a}.q-opt.wrong .q-mark{background:#f0a3a3;border-color:#f0a3a3;color:#3a1b1b;box-shadow:none}.q-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:8px 16px;border-radius:999px;border:1px solid rgba(255,255,255,.3);background:transparent;color:#f3e8d3;font-weight:600}.q-btn.primary{background:var(--gold);color:#2b1d12;border-color:var(--gold)}.q-btn:disabled{opacity:.45;cursor:not-allowed}.q-result{display:grid;gap:8px}.q-verdict{margin:0;font-weight:700}.q-verdict.ok{color:#8fd19e}.q-verdict.no{color:#f0b8a0}.q-feedback{margin:0;color:#e8dccb;overflow-wrap:anywhere}.q-actions{display:flex;flex-wrap:wrap;gap:8px}.q-chip{position:absolute;z-index:24;right:12px;bottom:10px;min-height:40px;padding:6px 16px;border-radius:999px;background:#2b211c;color:var(--gold);border:1.5px solid rgba(220,184,112,.8);font-weight:600;box-shadow:0 6px 18px #00000073}.q-notice{position:absolute;z-index:26;left:50%;bottom:14px;transform:translate(-50%);margin:0;padding:8px 14px;max-width:min(92%,420px);background:#2b211c;color:#f3e8d3;border:1px solid rgba(220,184,112,.7);border-radius:12px;font-size:.88rem;text-align:center}.m-page.q-open .m-art{flex:0 0 36%}.m-q{flex:1;min-height:0;min-width:0;display:flex;background:#1d1613;padding:6px}@container frame (min-aspect-ratio: 1/1) and (max-height: 560px){.m-page.q-open .m-art{flex:0 0 auto}.m-q{flex:1}}@media(prefers-reduced-motion:reduce){.q-balloon{animation:none}}.res-areas,.res-review{background:#fffaf0;border:1.5px solid #e4cfb6;border-radius:16px;padding:14px 16px}.res-areas h3,.res-review h3{margin:0 0 8px;font-family:var(--display);color:#1d4f50}.res-areas ul,.res-review ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}.res-areas li{display:grid;grid-template-columns:22px 1fr auto;gap:8px;align-items:center;padding:8px 10px;border-radius:10px;background:#fff;border:1px solid #ecdcc4}.res-areas li.ok .ra-ico{color:#2d6a4f}.res-areas li.again .ra-ico{color:#b4606c}.ra-state{font-size:.85rem;font-weight:600;color:#2d6a4f}.res-areas li.again .ra-state{color:#b4606c}.ra-note{margin:10px 0 0;font-size:.9rem;color:#6b5a52}.res-review li{padding:10px 12px;border:1px solid #ecdcc4;border-radius:12px;background:#fff}.res-review p{margin:.25em 0;line-height:1.45;overflow-wrap:anywhere}.res-review .rq{font-weight:600;color:#1d4f50}.res-review span{color:#7b5b62}.res-review .rf{background:#fbf0d9;padding:8px 10px;border-radius:10px}.q-quote{margin:0;padding:8px 12px;border-left:3px solid var(--gold);background:#dcb8701a;border-radius:0 10px 10px 0;font-family:var(--display);font-style:italic;overflow-wrap:anywhere}.res-review .rquote{font-style:italic;color:#5a4a42}@container frame (min-aspect-ratio: 1/1) and (max-height: 560px){.controls{flex-wrap:nowrap;height:52px;padding:0 12px;gap:8px;align-items:center;justify-content:space-between}.controls .mid{display:flex;flex-direction:row;align-items:center;gap:10px;order:2;flex:0 1 auto;width:auto}.controls .nav-btn{order:initial;min-width:88px;min-height:38px;padding:4px 12px;font-size:.85rem}.controls .nav-btn:first-child{order:1}.controls .nav-btn:last-child{order:3}.play-btn{min-height:38px;padding:4px 14px;font-size:.85rem;order:0}.dots{order:0;flex:0 1 auto;flex-wrap:nowrap;gap:4px;padding:0;justify-content:center;max-width:none}.dot{flex:0 1 18px;width:18px;height:6px}.dot:after{inset:-12px -2px}.reader{--pw: min(47.5cqw, calc((100cqh - 58px)*.8) , 860px)}.book{font-size:max(calc(var(--pw) / 23),12px)}.page-inner.text{font-size:1em;padding:7% 8% 4%}.page-inner.text .prose{overflow-y:auto}.page-inner.text .prose:before{display:none}.q-balloon.desk{width:min(310px,47cqw);min-width:240px;font-size:12.5px;line-height:1.35;padding:8px 12px 10px;gap:5px;top:6px;bottom:6px;transform:none;max-height:none;right:max(10px,env(safe-area-inset-right))}.q-balloon .q-title{font-size:1rem}.q-balloon .q-options{gap:5px}.q-balloon .q-btn{min-height:34px;padding:4px 14px}.q-opt{min-height:32px;padding:4px 10px}.q-balloon .q-result{gap:5px}.q-chip{bottom:6px;min-height:36px;padding:4px 12px;font-size:.85rem}}@media(orientation:landscape)and (max-height:520px){:root{--topbar-h: 46px}.topbar{padding:0 12px;gap:8px}.brand{line-height:1.1}.brand-1{font-size:.5rem}.brand-2{font-size:.54rem}.brand-3{font-size:.7rem}.icon-btn{width:30px;height:30px}.where{font-size:.7rem}}.shell{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}:root{--curl-r: linear-gradient(315deg, #e4d4b0 0 50%, transparent 50%), linear-gradient(135deg, #fffdf6 0%, #f3e6c8 38%, #cfba90 50%, transparent 50%);--curl-l: linear-gradient(45deg, #e4d4b0 0 50%, transparent 50%), linear-gradient(225deg, #fffdf6 0%, #f3e6c8 38%, #cfba90 50%, transparent 50%)}.half.right,.half.left{--curl: clamp(26px, 3.6cqw, 44px)}.half.right:after,.half.left:after{content:"";position:absolute;bottom:0;width:var(--curl);height:var(--curl);z-index:6;pointer-events:none;transition:width .25s ease,height .25s ease}.half.right:after{right:0;border-bottom-right-radius:8px;background:var(--curl-r)}.half.left:after{left:0;border-bottom-left-radius:8px;background:var(--curl-l)}.half[data-empty=true]:after{display:none}.half.right:hover,.half.left:hover{--curl: clamp(40px, 5.6cqw, 66px)}.m-page{position:relative}.m-page:after{content:"";position:absolute;right:0;bottom:0;width:34px;height:34px;z-index:6;pointer-events:none;background:var(--curl-r)}.m-page.q-open:after{display:none}@media(prefers-reduced-motion:reduce){.half.right:after,.half.left:after{transition:none}}.mode-btn{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border-radius:999px;border:1px solid rgba(255,255,255,.28);background:#ffffff14;color:#f1e6d3;font:600 .78rem/1 inherit;cursor:pointer;white-space:nowrap}.mode-btn:hover{background:#ffffff29}.mode-btn.auto{background:var(--gold);border-color:var(--gold);color:#2f1b38}.mode-btn:focus-visible{outline:2px solid #fff;outline-offset:2px}@media(max-width:480px){.mode-btn{padding:0 9px;font-size:.72rem}.mode-btn .mode-txt-long{display:none}}.book.is-paused .leaf{animation-play-state:paused}.m-page:has(.page-inner.closing):after{display:none}.media{display:flex;align-items:center;justify-content:center;gap:8px}.media-btn{width:40px;height:40px;flex:none;display:grid;place-items:center;border-radius:999px;background:#ffffff1a;border:1px solid rgba(255,255,255,.25);color:#f1e6d3}.media-btn:hover{background:#fff3}.media-btn.off{color:#f4a3a3}.speed{display:inline-flex;flex:none;border:1px solid rgba(255,255,255,.28);border-radius:999px;overflow:hidden}.speed-btn{min-width:40px;height:38px;padding:0 10px;background:transparent;color:#f1e6d3;font-weight:700;font-size:.9rem;border:0}.speed-btn+.speed-btn{border-left:1px solid rgba(255,255,255,.2)}.speed-btn:hover{background:#ffffff1f}.speed-btn.on{background:var(--gold);color:#2f1b38}@container frame (max-aspect-ratio: 1/1){.controls .media{order:0;flex:0 0 100%}}@container frame (min-aspect-ratio: 1/1) and (max-height: 560px){.media-btn{width:34px;height:34px}.speed-btn{height:34px;min-width:34px;padding:0 8px;font-size:.82rem}.media{gap:6px}}.controls .media>*{order:0}
