.paper-companion{--arrival-ink:var(--ink);--arrival-green:var(--accent);--arrival-paper:var(--paper);--arrival-cream:color-mix(in srgb,var(--paper) 88%,#d6b86a);--arrival-fold:color-mix(in srgb,var(--paper) 67%,#b69b54);--arrival-cheek:#d9a18c}
.reading-arrival{--arrival-ink:var(--ink);--arrival-green:var(--accent);--arrival-paper:var(--paper);--arrival-cream:color-mix(in srgb,var(--paper) 88%,#d6b86a);--arrival-fold:color-mix(in srgb,var(--paper) 67%,#b69b54);--arrival-cheek:#d9a18c;box-sizing:border-box;max-width:600px;margin:0 auto;padding:8px 20px 40px;text-align:center;color:var(--ink);font-family:var(--interface,system-ui,sans-serif);min-height:520px}
.reading-arrival[hidden],.reading-arrival [hidden]{display:none}
.reading-arrival *{box-sizing:border-box}
.reading-arrival .arrival-greeting{font:13px/1.7 var(--interface,system-ui,sans-serif);color:var(--accent);margin:0 0 28px;letter-spacing:.02em}
.reading-arrival .arrival-context{font:11px/1.5 var(--interface,system-ui,sans-serif);color:var(--muted);letter-spacing:.12em;margin:0 0 12px}
.reading-arrival .arrival-quote{font:400 clamp(22px,4.4vw,28px)/1.75 var(--book,"Songti SC",serif);max-width:480px;margin:0 auto 16px;padding:0;border:0;color:var(--ink);text-wrap:balance;overflow-wrap:anywhere}
.reading-arrival .arrival-original{font:13px/1.7 var(--english,Georgia,serif);max-width:450px;color:var(--muted);margin:0 auto 20px;overflow-wrap:anywhere}
.reading-arrival .arrival-source{font:12px/1.9 var(--interface,system-ui,sans-serif);color:var(--muted);margin:0}
.arrival-provenance{display:block}
.reading-arrival .arrival-status{font:12px/1.8 var(--interface,system-ui,sans-serif);color:var(--muted);margin:28px 0 0;letter-spacing:.04em}
.reading-arrival .arrival-retry{display:inline-block;font:13px/1.6 var(--interface,system-ui,sans-serif);color:var(--accent);background:transparent;border:0;text-decoration:underline;text-underline-offset:4px;min-height:44px;padding:10px 16px;margin-top:4px;cursor:pointer}
.reading-arrival .arrival-retry:hover{color:var(--ink)}
.reading-arrival .arrival-retry:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}
.arrival-library{--book:"Songti SC","STSong",serif;--english:Georgia,serif;padding-top:0;min-height:510px;width:100%}
.arrival-scene{position:relative;width:194px;height:160px;margin:0 auto 4px;user-select:none;pointer-events:none}
.arrival-floor{position:absolute;width:145px;height:8px;bottom:17px;left:24px;background:color-mix(in srgb,var(--ink) 8%,transparent);border-radius:50%}
.arrival-person{position:absolute;left:59px;top:16px;width:84px;height:124px;transform:rotate(-5deg);transform-origin:bottom center;animation:arrival-sway 3.2s ease-in-out infinite}
.arrival-face{position:absolute;width:65px;height:69px;top:0;left:9px;border:1.5px solid var(--arrival-ink);border-radius:9px 17px 12px 12px;background:var(--arrival-cream);z-index:3;transform:rotate(7deg)}
.arrival-fold{position:absolute;right:-1px;top:-1px;width:17px;height:17px;background:var(--arrival-fold);border-left:1.5px solid var(--arrival-ink);border-bottom:1.5px solid var(--arrival-ink);border-radius:0 13px 0 4px}
.arrival-eye{position:absolute;top:30px;width:4px;height:6px;background:var(--arrival-ink);border-radius:50%;animation:arrival-blink 4.3s linear infinite}
.arrival-eye-left{left:19px}.arrival-eye-right{left:40px}
.arrival-smile{position:absolute;width:10px;height:6px;top:40px;left:27px;border-bottom:1.5px solid var(--arrival-ink);border-radius:50%}
.arrival-cheek{position:absolute;top:39px;width:9px;height:4px;background:var(--arrival-cheek);border-radius:50%;opacity:.65}
.arrival-cheek-left{left:9px}.arrival-cheek-right{right:7px}
.arrival-shirt{position:absolute;width:57px;height:47px;top:57px;left:13px;border:1.5px solid var(--arrival-ink);border-radius:15px 15px 9px 9px;background:var(--arrival-green);z-index:2}
.arrival-arm{position:absolute;width:28px;height:9px;top:78px;border:1.5px solid var(--arrival-ink);background:var(--arrival-cream);border-radius:20px;z-index:5}
.arrival-arm-left{left:3px;transform:rotate(33deg)}.arrival-arm-right{right:2px;transform:rotate(-33deg)}
.arrival-leg{position:absolute;width:10px;height:27px;top:99px;border:1.5px solid var(--arrival-ink);border-radius:0 0 7px 7px;background:var(--arrival-cream);transform-origin:top}
.arrival-leg-left{left:22px;animation:arrival-leg 2.8s ease-in-out infinite}.arrival-leg-right{left:49px;animation:arrival-leg 2.8s .6s ease-in-out infinite reverse}
.arrival-book{position:absolute;width:71px;height:36px;left:6px;top:75px;z-index:4;perspective:180px;transform:rotate(-3deg)}
.arrival-page{position:absolute;width:36px;height:33px;border:1.5px solid var(--arrival-ink);background:var(--arrival-paper);top:0}
.arrival-page-left{left:0;transform:skewY(13deg);border-radius:3px 0 0 5px}.arrival-page-right{left:35px;transform:skewY(-13deg);border-radius:0 3px 5px 0}
.arrival-page-turn{left:35px;transform-origin:left center;border-radius:0 3px 5px 0;animation:arrival-page 3.2s ease-in-out infinite;background:var(--arrival-cream)}
.arrival-leaf{position:absolute;width:15px;height:21px;border:1px solid color-mix(in srgb,var(--accent) 60%,transparent);background:var(--paper);border-radius:2px}
.arrival-leaf-one{left:33px;top:65px;transform:rotate(-23deg);animation:arrival-leaf 4s ease-in-out infinite}.arrival-leaf-two{right:20px;top:35px;width:10px;height:14px;transform:rotate(24deg);animation:arrival-leaf 4s .6s ease-in-out infinite reverse}
.reading-arrival[data-arrival-state="hidden"] *,.arrival-paused .reading-arrival *{animation-play-state:paused}
@keyframes arrival-sway{0%,100%{transform:rotate(-5deg) translateY(0)}50%{transform:rotate(-2deg) translateY(-3px)}}
@keyframes arrival-leg{0%,100%{transform:rotate(15deg)}50%{transform:rotate(-8deg)}}
@keyframes arrival-blink{0%,43%,47%,100%{transform:scaleY(1)}45%{transform:scaleY(.1)}}
@keyframes arrival-page{0%,37%{transform:skewY(-13deg) rotateY(0)}62%,100%{transform:skewY(-13deg) rotateY(-170deg)}}
@keyframes arrival-leaf{0%,100%{translate:0 0}50%{translate:0 -6px}}
@media(max-width:600px){.reading-arrival{min-height:500px;padding:0 4px 32px}.reading-arrival .arrival-quote{font-size:23px}.reading-arrival .arrival-greeting{margin-bottom:24px}.reading-arrival .arrival-original{font-size:12px;max-width:340px}.arrival-library{padding-top:0}.arrival-scene{height:148px}}
@media(prefers-reduced-motion:reduce){.reading-arrival *{animation:none}}

/* The bookmark is deliberately still, even when the dialog is open. */
.reading-dialog .ending-heading{display:grid;grid-template-columns:minmax(0,1fr) 68px 44px;gap:0 8px;align-items:center}
.ending-heading #reading-ending-title{grid-column:1 / -1;margin-top:2px;text-wrap:balance}
.reading-dialog .ending-heading>button{margin:0;align-self:start}
.ending-companion{flex:none;width:68px;height:70px;overflow:hidden;margin:-5px 0 0;opacity:.82;pointer-events:none;user-select:none}
.ending-companion .paper-companion{margin:0;transform:scale(.42);transform-origin:top left}
.paper-companion-bookmark *{animation:none!important}
.paper-companion-bookmark .arrival-person{transform:rotate(-3deg)}
.paper-companion-bookmark .arrival-book{transform:rotate(-6deg);top:79px}
.paper-companion-bookmark .arrival-arm-left{transform:rotate(17deg)}
.paper-companion-bookmark .arrival-arm-right{transform:rotate(-46deg);top:73px}
.arrival-bookmark{position:absolute;left:46px;top:-8px;width:8px;height:30px;background:var(--arrival-green);border:1px solid var(--arrival-ink);clip-path:polygon(0 0,100% 0,100% 100%,50% 83%,0 100%);z-index:6}
.ending-save-state{font-size:12px;color:var(--muted);line-height:1.8;margin:0 0 7px}
.ending-save-state p{margin:3px 0}.ending-save-state p:empty{display:none}
@media(max-width:400px){.reading-dialog .ending-heading{grid-template-columns:minmax(0,1fr) 56px 44px}.ending-companion{width:56px}.ending-companion .paper-companion{transform:scale(.36)}}
