/* Free/paid labels do not bring keyword coloring back to the arcade prose. */
.chapter-access-tag { display:inline-flex; width:fit-content; max-width:100%; align-items:center; gap:.4em; padding:7px 12px; margin:0 0 12px; border:1px solid #bfd9cd; border-radius:999px; color:#315e51; background:#eff9f1; font:600 .9rem/1.55 var(--font-body,system-ui,sans-serif); }
.chapter-access-tag--paid { color:#6d5533; background:#fff6e7; border-color:#dfd1bb; }
.free-chapter-note,.chapter-access-note { margin:18px 0 0; padding:18px 20px; border-radius:14px; background:#f0f7f4; color:#355f54; font-size:1.1rem; line-height:1.8; }
.chapter-access-note { background:#faf5eb; color:#6a593f; }
.chapter-leave { flex:0 1 auto; }
.fairy-recovery { padding:0; border:2px solid #c6dbd3; border-radius:28px; width:min(720px,calc(100vw - 28px)); max-height:calc(100dvh - 28px); overflow:auto; background:#fffdf5; color:#254e49; box-shadow:0 24px 90px #17353644; }
.fairy-recovery::backdrop { background:#0d2c3da8; backdrop-filter:blur(4px); }
.fairy-card { position:relative; isolation:isolate; padding:26px clamp(20px,4vw,46px) 34px; text-align:center; overflow:hidden; background:radial-gradient(ellipse at 50% 7%,#fff1b7 0%,transparent 46%),linear-gradient(160deg,#effffb,#fffef7 48%,#f4ecff); }
.fairy-character { position:relative; width:150px; height:146px; display:grid; place-items:center; margin:0 auto 8px; border-radius:50%; background:radial-gradient(circle,#fffde6bb 0%,#cbece77a 60%,transparent 72%); }
.fairy-character>span { display:block; font:112px/1.15 "Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif; transform-origin:center; filter:drop-shadow(0 6px 7px #8582552b); animation:fairy-arrive 1s ease-out both; }
.fairy-constellation { position:absolute; inset:0; pointer-events:none; z-index:-1; }
.fairy-constellation i { position:absolute; top:66px; left:12%; color:#b48724; font:36px/1 Georgia,serif; animation:fairy-sparkle 1.8s ease-out 1 both; }
.fairy-constellation i:nth-child(2) { left:auto;right:16%;top:120px;font-size:44px;animation-delay:.15s;color:#7d67a5; }
.fairy-constellation i:nth-child(3) { left:24%;top:26px;font-size:25px;animation-delay:.3s; }
.fairy-constellation i:nth-child(4) { left:auto;right:25%;top:35px;font-size:28px;color:#b76180;animation-delay:.1s; }
.fairy-constellation i:nth-child(5) { left:9%;top:170px;font-size:28px;color:#428e90;animation-delay:.4s; }
.fairy-kicker { margin:0 0 9px; color:#577367; font:600 .9rem/1.6 var(--font-ui,system-ui,sans-serif); letter-spacing:.06em; }
.fairy-card h2 { font:600 clamp(1.6rem,3vw,2rem)/1.22 var(--font-ui,system-ui,sans-serif); color:#365d59; margin:0 0 12px; }
.fairy-chapter { font:500 .95rem/1.6 var(--font-body,system-ui,sans-serif); color:#60746a; margin:0 0 18px; }
.fairy-speech { padding:16px 18px; border:1px solid #d1e4db; border-radius:20px; background:#ffffffbd; font:400 1.1rem/1.75 var(--font-story,Georgia,serif); margin:0 0 20px; }
.fairy-lives { display:flex; justify-content:center; align-items:center; flex-wrap:wrap; gap:20px; padding:16px 18px; margin:12px 0 20px; border-radius:20px; background:#f7f3d8; border:1px solid #e5dbad; }
.fairy-lives small { display:block; font:600 .9rem/1.6 var(--font-body,system-ui,sans-serif); }
.fairy-lives b { font:600 2.2rem/1.2 var(--font-ui,system-ui,sans-serif); }
.fairy-arrow { font-size:1.8rem; color:#87996e; }
.fairy-heart { font-size:1.3rem; color:#b95f76; }
.fairy-card>p:not(.fairy-kicker):not(.fairy-chapter) { font-size:1.1rem; line-height:1.75; }
.fairy-reassurance { color:#5b7161; margin:0 0 22px; }
body .fairy-continue { padding:15px 22px; font:600 1.05rem/1.5 var(--font-ui,system-ui,sans-serif); white-space:normal; min-height:55px; border-radius:16px; }
@keyframes fairy-arrive { from{opacity:0;transform:translateY(30px) rotate(-12deg) scale(.85)} to{opacity:1;transform:translateY(0) rotate(0) scale(1)} }
@keyframes fairy-sparkle { 0%{opacity:0;transform:scale(.5) rotate(-20deg)} 45%{opacity:1;transform:scale(1.15) rotate(8deg)} 100%{opacity:.8;transform:scale(1) rotate(0)} }
@media(max-width:560px) { .fairy-recovery{border-radius:22px}.fairy-card{padding:20px 18px 25px}.fairy-lives{gap:12px;padding:14px 10px}.fairy-character{height:120px}.fairy-character>span{font-size:94px}.fairy-continue{width:100%}.chapter-leave{width:100%} }
@media(prefers-reduced-motion:reduce) { .fairy-character>span,.fairy-constellation i{animation:none} }
