:root{--ink:#23221d;--ink2:#6b675c;--line:#d9d6cd;--moss:#6d7369;--moss-d:#4c5347;--ai:#42586b;--ai-d:#33465a;--karashi:#b0964a;--karashi-d:#8f7939;--kaki:#9c5f47;--kaki-d:#7e4a37;--sumi:#212019;--washi:#f7f4ec;--mincho:"Hiragino Mincho ProN","Hiragino Mincho Pro","Yu Mincho","YuMincho","Noto Serif JP","MS PMincho",serif;--goth:"Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic","YuGothic","Noto Sans JP","Meiryo",sans-serif;--hand:"Segoe Script","Bradley Hand","Comic Sans MS","Yomogi","Hiragino Maru Gothic ProN",cursive;--mono:"Courier New",ui-monospace,Menlo,monospace;}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:#131110 radial-gradient(1100px 640px at 50% 32%,#26211a 0%,#14100b 72%);font-family:var(--goth);overflow:hidden;color:var(--ink)}#stage{position:fixed;inset:0;display:flex;align-items:center;justify-content:center}#book{position:relative;width:min(96vw,calc(90vh * 1.457));aspect-ratio:1.457;background:#fff;box-shadow:0 26px 90px rgba(0,0,0,.8);border-radius:2px;overflow:hidden}.spread{position:absolute;inset:0;display:none;overflow:hidden;font-size:clamp(6.5px,1.72vmin,15px)}.spread.on{display:block;animation:pg .55s cubic-bezier(.22,.8,.36,1)}@keyframes pg{from{opacity:0;transform:translateX(1.6%)}to{opacity:1;transform:none}}.spread::after{content:"";position:absolute;top:0;bottom:0;left:50%;width:6%;transform:translateX(-50%);background:linear-gradient(90deg,transparent,rgba(30,24,12,.12) 46%,rgba(30,24,12,.2) 50%,rgba(30,24,12,.12) 54%,transparent);pointer-events:none;z-index:8}.pg{position:absolute;top:0;bottom:0;width:50%;overflow:hidden;background:#fff;padding:3.2em 3em 2.8em}.pg.l{left:0}.pg.r{right:0}.pg.hasbg{padding:0}.bgimg{position:absolute;inset:0;z-index:0}.bgimg img{width:100%;height:100%;object-fit:cover}.pg>*{position:relative;z-index:1}.pg>.bgimg{position:absolute;inset:0;z-index:0}.pg-sumi{background:var(--sumi);color:#efece2}.pg-moss{background:var(--moss-d);color:#f1f2ea}.pg-ai{background:var(--ai-d);color:#eef1f0}.pg-washi{background-color:var(--washi);background-image:linear-gradient(rgba(253,252,248,.62),rgba(253,252,248,.62)),url("washi-texture.webp");background-size:auto,640px auto}.pnum{position:absolute;bottom:1em;font-family:var(--mono);font-size:.58em;letter-spacing:.22em;opacity:.6;z-index:6}.pg.l .pnum{left:2em}.pg.r .pnum{right:2em}.folio{position:absolute;top:1.4em;font-family:var(--mono);font-size:.6em;letter-spacing:.3em;opacity:.65;z-index:6}.pg.l .folio{left:2em}.pg.r .folio{right:2em}.ghost{position:absolute;font-family:var(--mincho);font-weight:800;font-size:12em;line-height:1;opacity:.06;pointer-events:none;z-index:0}.hand{font-family:var(--hand)}.mono{font-family:var(--mono)}.mincho{font-family:var(--mincho)}.fude{font-family:var(--mincho);font-weight:800;letter-spacing:.05em;text-shadow:.025em .03em 0 rgba(35,34,29,.22)}@font-face{font-family:'italiana';src:url(italiana.ttf) format('truetype');font-weight:normal;font-style:normal}.latina{font-family:'italiana',var(--mincho)}@font-face{font-family:'kouzan';src:url(kouzan.woff2) format('woff2');font-weight:normal;font-style:normal}.fudek{font-family:'kouzan',var(--mincho);letter-spacing:.03em}.wavy{text-decoration:underline wavy currentColor 1.5px;text-underline-offset:.42em}.tate{writing-mode:vertical-rl}.lead{line-height:2.05;letter-spacing:.03em}.bignum{font-family:var(--mincho);font-weight:800;line-height:1}.kick{font-family:var(--mono);font-size:.62em;letter-spacing:.36em}.rule{height:2px;background:currentColor;opacity:.85}.panel{background:rgba(255,255,255,.95);box-shadow:0 10px 30px rgba(20,16,8,.25)}.check{display:flex;gap:.7em;align-items:baseline;font-size:.76em;line-height:1.7;padding:.34em 0;border-bottom:1px dashed var(--line)}.check b{color:var(--moss-d);font-family:var(--mono);font-size:1em;flex:none}.polaroid{background:#fff;padding:.65em .65em 1.9em;box-shadow:0 10px 26px rgba(20,16,8,.3);position:relative;flex:none}.polaroid img{display:block;width:100%;height:100%;object-fit:cover}.pol-cap{position:absolute;bottom:.3em;left:.35em;right:.35em;text-align:center;font-family:var(--hand);color:#5d6056;font-size:.72em;background:#fff;padding:.25em .2em}.tape{position:absolute;width:5em;height:1.4em;background:rgba(206,198,164,.85);box-shadow:0 1px 4px rgba(0,0,0,.18);top:-.65em;left:50%;transform:translateX(-50%) rotate(-3deg);z-index:3}.tape.l{left:10%;transform:rotate(-42deg);top:-.4em}.tape.r{left:auto;right:8%;transform:rotate(40deg);top:-.4em}.r-2{transform:rotate(-2deg)}.r-1{transform:rotate(-1.2deg)}.r1{transform:rotate(1.4deg)}.r2{transform:rotate(2.4deg)}.cstamp{border:.24em double currentColor;border-radius:50%;display:flex;align-items:center;justify-content:center;text-align:center;font-weight:800;letter-spacing:.1em;line-height:1.5;padding:.5em}.hanko{display:inline-flex;align-items:center;justify-content:center;background:var(--kaki);color:#fff;font-family:var(--mincho);writing-mode:vertical-rl;letter-spacing:.2em;padding:.5em .4em;font-size:.7em;border-radius:2px}.chip{border:1.4px solid currentColor;padding:.4em 1em;font-size:.68em;letter-spacing:.08em;border-radius:2em;display:inline-block}.note{background:#fff;box-shadow:0 8px 20px rgba(20,16,8,.16);padding:1.1em 1.3em;position:relative}.cap{position:absolute;left:3.6em;right:3.6em;bottom:2.8em;color:#fff;font-family:var(--hand);font-size:1.18em;letter-spacing:.05em;line-height:1.85;text-shadow:0 2px 14px rgba(0,0,0,.65);z-index:2}.cap small{display:block;font-family:var(--mono);font-size:.5em;letter-spacing:.32em;opacity:.85;margin-top:.7em}.vf{position:absolute;inset:1.6em;z-index:3;pointer-events:none}.vf .c{position:absolute;width:2.2em;height:2.2em;border:2px solid rgba(255,255,255,.9)}.vf .tl{top:0;left:0;border-right:0;border-bottom:0}.vf .tr{top:0;right:0;border-left:0;border-bottom:0}.vf .bl{bottom:0;left:0;border-right:0;border-top:0}.vf .br{bottom:0;right:0;border-left:0;border-top:0}.vf .grid{position:absolute;inset:0;background:linear-gradient(rgba(255,255,255,.14) 1px,transparent 1px) 0 33.3%/100% 33.4% repeat-y,linear-gradient(90deg,rgba(255,255,255,.14) 1px,transparent 1px) 33.3% 0/33.4% 100% repeat-x}.vf .focus{position:absolute;left:50%;top:46%;width:7em;height:7em;transform:translate(-50%,-50%);border:1.5px solid rgba(255,255,255,.85);border-radius:50%}.vf .focus::after{content:"";position:absolute;left:50%;top:50%;width:.5em;height:.5em;transform:translate(-50%,-50%);background:rgba(255,255,255,.9);border-radius:50%}.vf .t{position:absolute;font-family:var(--mono);color:rgba(255,255,255,.92);font-size:.62em;letter-spacing:.22em}.shelf{display:flex;align-items:flex-end;gap:.3em;border-bottom:.7em solid #37332b;padding:0 .6em;filter:drop-shadow(0 6px 10px rgba(0,0,0,.35))}.spine{writing-mode:vertical-rl;display:flex;align-items:center;justify-content:center;color:#f4f1e6;font-size:.6em;letter-spacing:.24em;padding:.6em .2em;font-family:var(--mincho)}.bars{display:flex;align-items:flex-end;gap:.8em;height:9em}.bar{flex:1;position:relative;background:#f4f2ea;border-radius:2px 2px 0 0;min-height:2%}.bar.hot{background:var(--karashi)}.bar.goal{background:repeating-linear-gradient(45deg,rgba(255,255,255,.28) 0 6px,transparent 6px 12px);border:1.5px dashed #f4f2ea}.bar i{position:absolute;top:-1.7em;left:50%;transform:translateX(-50%);font-style:normal;font-weight:700;font-size:.66em}.bar u{position:absolute;bottom:-1.8em;left:50%;transform:translateX(-50%);text-decoration:none;font-size:.58em;opacity:.8;white-space:nowrap}.stack{display:flex;align-items:center;gap:.9em;margin:.65em 0}.stack .y{width:5em;font-size:.68em;text-align:right;opacity:.75}.stack .barw{flex:1;display:flex;height:1.5em;border-radius:2px;overflow:hidden}.stack .a{background:var(--moss-d);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.62em}.stack .b{background:var(--karashi);color:#2c2410;display:flex;align-items:center;justify-content:center;font-size:.62em}.circ{display:flex;flex-direction:column;align-items:center}.circ .c{width:10.5em;height:10.5em;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;margin-top:-2em;border:5px solid #fff;box-shadow:0 8px 24px rgba(20,16,8,.25)}.circ .c:first-child{margin-top:0}.circ b{font-family:var(--mincho);font-size:.95em;letter-spacing:.12em;color:#fff}.circ span{font-size:.58em;color:rgba(255,255,255,.92);margin-top:.4em;line-height:1.6;padding:0 1.6em}.c1{background:var(--moss-d)}.c2{background:var(--ai-d)}.c3{background:var(--karashi-d)}.nav{position:fixed;top:50%;transform:translateY(-50%);width:52px;height:52px;border-radius:50%;border:1px solid rgba(255,255,255,.25);background:rgba(24,20,14,.5);color:#e7dfc9;font-size:20px;cursor:pointer;z-index:60;transition:.25s}.nav:hover{background:var(--moss-d);border-color:transparent}#prev{left:14px}#next{right:14px}#cnt{position:fixed;bottom:12px;left:50%;transform:translateX(-50%);color:#c4bba4;font-size:11px;letter-spacing:.3em;z-index:60;font-family:var(--mono)}#tocbtn{position:fixed;top:14px;right:16px;z-index:60;background:rgba(24,20,14,.55);border:1px solid rgba(255,255,255,.25);color:#e7dfc9;font-size:11px;letter-spacing:.25em;padding:9px 16px;border-radius:20px;cursor:pointer}#tocbtn:hover{background:var(--moss-d)}#hint{position:fixed;bottom:12px;right:18px;color:#776d5c;font-size:10px;letter-spacing:.14em;z-index:60}#toc{position:fixed;inset:0;background:rgba(12,10,7,.93);z-index:80;display:none;align-items:center;justify-content:center}#toc.on{display:flex}#toc .box{width:min(640px,86vw);color:#ece5d2}#toc h3{font-family:var(--hand);letter-spacing:.2em;font-size:20px;color:var(--karashi);margin-bottom:20px;text-align:center}#toc .row{display:flex;align-items:baseline;gap:14px;padding:10px 6px;border-bottom:1px dashed rgba(255,255,255,.25);cursor:pointer;transition:.2s}#toc .row:hover{color:var(--karashi);transform:translateX(6px)}#toc .row .n{font-family:var(--mono);color:var(--karashi);font-size:11px}#toc .row .l{font-family:var(--mincho);letter-spacing:.18em;font-size:15px}#toc .row .s{font-size:11px;color:#9d927a}#toc .close{margin-top:20px;text-align:center;font-size:11px;letter-spacing:.3em;color:#877c64;cursor:pointer}