[hidden]{display:none!important}.shelf-heading{text-align:center;padding:60px 0 35px}.shelf-heading h1{font-size:48px}.shelf-heading>p:last-child{margin-top:20px;color:#7a8871;font-size:14px}.books{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;padding-bottom:60px}.book-card{background:#fff;border:1px solid #e1e5d8;border-radius:20px;padding:12px;overflow:hidden}.book-card .scene-frame{border-radius:12px}.book-card h2{font-size:25px;margin:20px 8px 6px}.book-card p{font-size:12px;color:#859279;margin:0 8px 16px}.book-card .primary{width:100%;margin-top:12px;justify-content:center}.reader-head{display:flex;align-items:center;justify-content:space-between;padding:22px 0 14px;gap:12px}.reader-head>div{display:flex;align-items:center;gap:15px}.reader-head #book-title{font:24px Jua}.reader-head #page-count{font-size:12px;color:#8a9681}.plain{border:0;background:none;padding:8px 0;font-size:12px;color:#6f8265}.plain:hover{color:#304d38}.plain:disabled{color:#b9c0b1;cursor:default}.page-dots{display:flex;gap:7px;margin-bottom:30px}.page-dots span{height:5px;background:#e2e7d9;flex:1;border-radius:9px}.page-dots span.done{background:#8ca878}.page-dots span.current{background:#3f6046}.reading-layout{display:grid;grid-template-columns:1.5fr 1fr;gap:40px;align-items:center}.picture-side{min-width:0}.board{position:relative;aspect-ratio:1.6;overflow:hidden;border-radius:20px;background:#e9ecdd;box-shadow:0 4px 18px #344b3210}.scene-layer{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.scene-layer .scene-frame{width:100%;flex:none;}.scene-layer img{user-select:none}.scene-layer#after{opacity:0;transition:opacity .65s ease}.board.acted #after{opacity:1}#target{position:absolute;background:#ffffff29;border:2px dashed #ffffffed;border-radius:16px;display:grid;place-items:center;color:#3e5941;box-shadow:0 0 0 1px #42633a33;padding:0;min-width:36px;min-height:36px;transition:background .15s,box-shadow .15s}#target-symbol{background:#fffdf0d9;width:32px;height:32px;border-radius:50%;font-size:24px;line-height:30px}.target-label{position:absolute;bottom:-26px;left:50%;transform:translateX(-50%);font:12px Jua;white-space:nowrap;background:#fffbea;padding:3px 9px;border-radius:9px}.board.selected #target,.board.hovered #target{background:#fff6ac61;border-color:#f5c66e;box-shadow:0 0 0 5px #fff4ca55}.board.acted #target{display:none}.scene-status{position:absolute;top:12px;right:12px;font-size:11px;border-radius:20px;padding:4px 10px;background:#fffef0e6;color:#4e6e43}.scene-status:empty{display:none}#placed{position:absolute;object-fit:contain;pointer-events:none;z-index:2}.tray{display:flex;align-items:center;gap:18px;background:#eff1e5;border:1px solid #e0e6d6;border-radius:15px;padding:13px 16px;margin-top:14px;min-height:115px}.sticker{background:#fffef8;border:2px solid transparent;border-radius:14px;padding:5px;width:92px;min-width:92px;touch-action:none;user-select:none;cursor:grab}.sticker img{width:100%;height:65px;object-fit:contain;pointer-events:none}.sticker span{display:block;font:11px Jua;line-height:1.2}.sticker.selected{border-color:#d1ac57;box-shadow:0 3px 10px #6d76451b}.sticker:disabled{cursor:default;opacity:.65}.tray-copy .step-tag{font-size:9px;letter-spacing:1px;color:#8b9b7b}.tray-copy p{font:17px Jua;line-height:1.55;color:#435e3c;margin:3px 0}.tray-copy>span:last-child{font-size:10px;color:#8b9680}.story-copy{padding:12px 0}.story-copy h2{font-size:34px;line-height:1.35}.story-copy #story-text{font-size:19px;line-height:1.95;white-space:pre-line;margin-top:25px;color:#4c6148;word-break:keep-all}.result-box{background:#e9efdf;border-left:3px solid #92aa79;border-radius:0 13px 13px 0;padding:18px 20px;margin-top:24px;animation:reveal .4s ease}.result-box>span{font-size:10px;letter-spacing:1px;color:#7c926b}.result-box p{font-size:17px;line-height:1.85;margin-top:7px;white-space:pre-line;word-break:keep-all}#again{margin-top:9px}.reader-nav{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:25px 0 35px}.reader-nav .primary{margin:0;min-width:130px;justify-content:center}.reader-nav .primary:disabled{background:#e0e5d8;color:#97a18d;cursor:default}#next-hint{font-size:11px;color:#8d997e;text-align:center}.finish{max-width:550px;text-align:center;padding:65px 25px;margin:auto}.finish>span{font-size:80px;color:#caa15d}.finish h2{font-size:34px}.finish p{margin:20px 0 30px;line-height:1.9;color:#819171}.finish a{display:block;margin-top:20px;font-size:12px}.finish .primary{justify-content:center}#drag-ghost{position:fixed;z-index:99;width:110px;height:110px;object-fit:contain;pointer-events:none;transform:translate(-50%,-50%);filter:drop-shadow(0 10px 10px #31452d33)}@keyframes reveal{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media(max-width:900px){.reading-layout{grid-template-columns:1fr;gap:22px;max-width:720px;margin:auto}.story-copy{padding:0 6px}.story-copy h2{font-size:29px}.story-copy #story-text{font-size:17px;margin-top:13px}.story-copy .eyebrow{margin-bottom:8px}.books{grid-template-columns:repeat(2,minmax(0,1fr))}.result-box{margin-top:16px}.reader-nav{max-width:720px;margin:auto}}@media(max-width:500px){.shelf-heading{padding:35px 0 25px}.shelf-heading h1{font-size:35px}.shelf-heading>p:last-child{font-size:12px}.books{grid-template-columns:1fr;gap:18px}.reader-head{flex-wrap:wrap;padding-top:15px}.reader-head>div{order:-1;width:100%;justify-content:space-between}.reader-head #book-title{font-size:24px}.page-dots{margin-bottom:15px}.board{border-radius:13px}.tray{padding:10px;gap:11px;min-height:100px}.sticker{width:74px;min-width:74px}.sticker img{height:52px}.tray-copy p{font-size:15px}.tray-copy>span:last-child{font-size:9px}.story-copy #story-text{font-size:16px;line-height:1.85}.result-box p{font-size:16px}.reader-nav{gap:7px}.reader-nav .primary{min-width:105px;padding:11px 10px}#next-hint{font-size:10px;max-width:135px}.target-label{font-size:9px;bottom:-20px;padding:2px 6px}#target-symbol{width:24px;height:24px;line-height:23px;font-size:19px}.board #target{border-radius:9px}}@media(prefers-reduced-motion:reduce){.result-box{animation:none}}
