/* Paper, light, and small physical actions carry the interface. */
:root{--brass:#c1a16a;--paper:#e5d5af;--ink:#342e23}
button:focus-visible,a:focus-visible{outline:2px solid #edcf8b;outline-offset:5px}button:disabled{cursor:default}
#title-screen{overflow:hidden;perspective:1000px;background:linear-gradient(90deg,#101b16ee,#252d1c91 27%,#352d1c08 61%)}
.title-mode .background{animation:cover-camera 18s ease-in-out infinite alternate}
#title-screen h1{top:15%;font-size:clamp(48px,6.6vw,100px);text-shadow:0 1px #faeec3,2px 4px 1px #27301a,0 0 35px #d7b15c44}
.title-buttons{top:38%;gap:20px}.title-buttons button{font-size:clamp(14px,1.6vw,23px);padding:13px 5px;letter-spacing:4px}
.title-buttons button:active{transform:translate(3px,1px)}.title-buttons button:disabled{opacity:.35}
.cover-page{display:none}.cover-book-object{position:absolute;left:55%;top:59%;width:39%;height:30%;object-fit:contain;filter:drop-shadow(1px 8px 6px #24150699);transform-origin:50% 70%;transform:translate(calc(var(--pointer-x,0)*7px),calc(var(--pointer-y,0)*4px));animation:open-book-breathe 6s ease-in-out infinite;pointer-events:none}
.cover-page-fan{position:absolute;left:74%;top:65%;width:15.5%;height:14%;perspective:650px;transform:rotate(-14deg) skewY(8deg);pointer-events:none}
.cover-page-fan i{position:absolute;inset:0;border:1px solid #b7a07488;background:repeating-linear-gradient(0deg,transparent 0 11px,#73633f35 12px 13px,transparent 14px 20px),linear-gradient(90deg,#beab7d,#ead8a8 26%,#f1e5c8 78%,#ceb783);transform-origin:0 100%;clip-path:polygon(0 0,93% 0,100% 98%,4% 95%);box-shadow:3px 0 8px #27190755;opacity:0;animation:visible-page-turn 8s cubic-bezier(.36,.01,.38,1) infinite}
.cover-page-fan i:nth-child(2){animation-delay:.12s;filter:brightness(.94)}.cover-page-fan i:nth-child(3){animation-delay:.24s;filter:brightness(.88)}
.cover-booklight{animation:book-bloom 5s ease-in-out infinite}.cover-ray{animation:cover-sunlight 5.5s ease-in-out infinite alternate}
#stage.opening-cover #background{animation:opening-dive 1.5s ease both}
#experience-atmosphere{position:absolute;inset:0;z-index:3;pointer-events:none;overflow:hidden;mix-blend-mode:screen}
.pan-heat{position:absolute;left:30%;right:10%;bottom:15%;height:70%;background:repeating-linear-gradient(85deg,transparent 0 18px,#dbd3b014 21px,transparent 25px 43px);filter:blur(7px);mask-image:linear-gradient(transparent,#000,transparent);animation:heat-waver 3s ease-in-out infinite alternate}
.pan-breath{position:absolute;left:38%;top:36%;width:35%;height:40%;border-radius:50%;background:radial-gradient(ellipse,#f4ecd622,transparent 67%);filter:blur(9px);animation:pot-breath 4.5s ease-in-out infinite}
.hot-air{position:absolute;inset:0;background:linear-gradient(110deg,transparent 48%,#ead59016 50%,transparent 52%);animation:heat-waver 5s ease-in-out infinite alternate}.fan-shadow{position:absolute;right:-8%;top:-10%;width:47%;aspect-ratio:1;border-radius:50%;background:repeating-conic-gradient(#201b1b22 0 35deg,transparent 40deg 120deg);filter:blur(11px);animation:fan-turn 4s linear infinite;mix-blend-mode:multiply}
.memory-mode #background{filter:sepia(.12) saturate(.87)}.memory-grain{position:absolute;inset:0;box-shadow:inset 0 0 150px #b99e6366;background:repeating-linear-gradient(0deg,transparent 0 3px,#d6c58f05 4px);animation:memory-flicker 7s steps(1) infinite}
.character[data-character='a4-young-sister-bust']{height:72%;width:37%;bottom:2%}.character[data-character='a4-young-sister-bust'].right{right:2%}
.task-prompt{position:absolute;bottom:34%;left:30%;right:30%;text-align:center;z-index:27}.task-prompt button{width:100%;padding:14px 22px;border:1px solid #c3a36b;background:linear-gradient(90deg,#41351ff2,#70572ff0,#41351ff2);box-shadow:inset 0 0 0 4px #e6c77715,0 4px 20px #17110866;letter-spacing:3px;font-size:clamp(14px,1.5vw,20px);animation:task-arrive .45s ease both}
.story-tabs{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid #b6955755;margin:0 0 24px;gap:12px}.story-tabs button{text-align:left;padding:12px 10px 18px;position:relative;line-height:1.6}.story-tabs small{display:block;color:#ae976f;letter-spacing:3px;font-size:11px;margin-bottom:6px}.story-tabs strong{font-size:15px;font-weight:400;display:block}.story-tabs .selected{background:linear-gradient(transparent,#bc9a5920)}.story-tabs .selected:after{content:'';height:2px;position:absolute;bottom:-1px;left:0;right:0;background:#cbae76}.story-tabs :disabled{opacity:.38}
.chapter-shelf{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.chapter-card{position:relative;background:#17181055;border:1px solid #b59a6444;padding:0;text-align:left;overflow:hidden;transition:transform .2s,border-color .2s}.chapter-card:not(:disabled):hover{transform:translateY(-3px);border-color:#d0b075}.chapter-card img,.closed-chapter{width:100%;aspect-ratio:16/9;object-fit:cover;display:block}.chapter-card img{filter:saturate(.8);transition:filter .3s}.chapter-card:hover img{filter:saturate(1)}.chapter-card>span:last-child{display:flex;align-items:baseline;gap:10px;padding:13px 12px;min-height:58px}.chapter-card small{font:12px Georgia,serif;color:#a58e63}.chapter-card strong{font-size:14px;font-weight:400;line-height:1.6}.closed-chapter{background:repeating-linear-gradient(90deg,transparent 0 4px,#a1875110 5px 6px),linear-gradient(110deg,#342e20,#28271c)}.closed-chapter:after{content:'';display:block;width:28%;height:60%;border:1px solid #977d4444;transform:rotate(-7deg);margin:11% auto;box-shadow:3px 3px #15180e55}.sealed{opacity:.5}
.paper-task p,.stitch-task>p,.torch-task>p{font-size:15px;line-height:1.8;letter-spacing:1px;color:#d5c39d;text-align:center}.paper-sorting{display:flex;gap:8px;justify-content:space-around;height:175px;padding:12px 0}.loose-papers{position:relative;width:31%;transform:rotate(var(--angle));cursor:grab;touch-action:none;transition:opacity .4s,scale .4s;z-index:2}.loose-papers:active{cursor:grabbing;z-index:4}.loose-papers img{width:100%;height:135px;object-fit:contain;filter:drop-shadow(3px 5px 4px #100d0b77)}.loose-papers span{font-size:12px;letter-spacing:3px;display:block}.loose-papers.paper-filed{opacity:0;scale:.5;pointer-events:none}.paper-folder{display:block;position:relative;width:65%;height:245px;margin:0 auto}.paper-folder img{width:100%;height:100%;object-fit:contain}.paper-folder span{display:block;position:absolute;bottom:10px;left:0;right:0;font-size:13px;letter-spacing:2px;color:#eddbb2}.paper-folder i{position:absolute;top:14%;width:16%;height:53%;left:34%;background:#cdbb91;border:1px solid #9b7d4c;transform:rotate(-3deg);opacity:0;pointer-events:none}.paper-folder i:nth-of-type(2){left:48%;transform:rotate(6deg)}.paper-folder i:nth-of-type(3){left:55%;transform:rotate(9deg)}.paper-folder i.filled{opacity:.55;animation:task-arrive .5s ease both}.paper-task>.plain-button,.stitch-task>.plain-button,.torch-task>.plain-button{display:block;margin:18px auto 0}
.fabric-board{height:330px;position:relative;max-width:600px;margin:20px auto;background:#251f16;box-shadow:0 7px 22px #0c090866,inset 0 0 30px #110e09;overflow:hidden}.fabric-piece{position:absolute;width:50%;height:50%;background:repeating-linear-gradient(0deg,#ffffff08 0 1px,transparent 1px 3px),repeating-linear-gradient(90deg,#00000013 0 1px,transparent 1px 3px),var(--cloth);border:1px dashed #e8dac150;box-shadow:inset 0 0 28px #0b090b22}.piece-0{left:0;top:0}.piece-1{right:0;top:0}.piece-2{left:0;bottom:0}.piece-3{right:0;bottom:0}.fabric-board svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.sewn-line{stroke:#e9dec1;stroke-width:3;fill:none;stroke-dasharray:900;stroke-dashoffset:900;filter:drop-shadow(1px 1px #2f251c)}#stitch-hold{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border:1px solid #d8bb7b;background:#32271cde;padding:18px 25px;white-space:nowrap;font-size:16px;letter-spacing:2px;touch-action:none;user-select:none}#stitch-hold:active{background:#655034;box-shadow:0 0 45px #d8bb7b22}
.torch-view{position:relative;aspect-ratio:16/9;background-size:cover;background-position:center;overflow:hidden;cursor:crosshair;touch-action:none}.torch-dark{position:absolute;inset:0;background:#100f0af5;transition:background .3s}.torch-on .torch-dark{background:radial-gradient(circle at var(--beam-x,20%) var(--beam-y,65%),#ffeab011 0 5%,#d9c19733 12%,#1c1c18cc 23%,#080a08f5 36%)}.torch-found .torch-dark{background:radial-gradient(circle at 55% 45%,transparent 0 23%,#100f0a99 70%)}.torch-grip{position:absolute;bottom:12px;left:0;right:0;font-size:12px;letter-spacing:3px;text-align:center;text-shadow:0 2px 4px #000;color:#c6b88d}
.share-preview{background:#201a11;padding:14px;text-align:center;max-height:62svh;overflow:auto}.share-preview img{display:block;width:min(100%,460px);height:auto;margin:auto;box-shadow:0 5px 20px #0006}.share-page{align-self:center;font:14px Georgia,serif}.toolbar a{text-decoration:none;display:inline-flex;align-items:center;color:inherit}
.collage-intro{margin:0 0 16px;font-size:14px;line-height:1.8;color:#c5b18a}.collage-layout{display:grid;grid-template-columns:minmax(0,1fr) 170px;gap:20px}.collage-paper{position:relative;background:repeating-linear-gradient(0deg,#8c724a07 0 1px,transparent 1px 4px),#e5d6b6;color:#4c3b25;aspect-ratio:1.65;border:1px solid #bc9e6b;box-shadow:0 7px 20px #110d0755;overflow:hidden}.collage-paper:before{content:'留 在 书 页 之 外';position:absolute;left:8%;top:8%;font-size:12px;letter-spacing:3px;border-bottom:1px solid #8e754f55;padding-bottom:9px;right:8%;pointer-events:none}.collage-object{position:absolute;width:31%;height:61%;transform:translate(-50%,-50%) rotate(var(--rotation,0deg)) scale(var(--piece-scale,1));cursor:grab;touch-action:none;filter:drop-shadow(2px 5px 4px #45301a44);border:1px dashed transparent;padding:0}.collage-object:focus-visible,.collage-object:active{border-color:#8e754f;outline:0;cursor:grabbing}.collage-object img{width:100%;height:100%;object-fit:contain;pointer-events:none}.collage-picks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;max-height:300px;overflow:auto;align-content:start}.collage-picks button{padding:6px;border:1px solid #b1945544;font-size:10px;line-height:1.6;background:#1f1b1433}.collage-picks button.chosen{border-color:#e0c38c;background:#bc9a5833}.collage-picks img{display:block;width:100%;height:58px;object-fit:contain;margin-bottom:4px}.collage-editor{margin-top:20px;display:grid;gap:12px}.collage-editor label{font-size:13px;letter-spacing:1px}.collage-editor textarea{width:100%;height:100px;resize:vertical;font:15px/1.8 var(--serif);padding:12px 15px;background:#e5d6b6;color:#443522;border:1px solid #b59862}.collage-object[aria-pressed="true"]{border-color:#8e754f}.collage-adjust{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px 12px;margin:0;padding:10px 14px 14px;min-inline-size:0;border:1px solid #b1945566}.collage-adjust legend{padding:0 6px;color:#d7bd89;font-size:14px}.collage-adjust select{min-width:0;padding:5px;background:#e5d6b6;color:#443522;border:1px solid #b59862}.collage-adjust input{width:100%;min-width:0;accent-color:#c2a168}.collage-adjust output{color:#c5b18a}
/* The second story turns like strips of film; the third opens a rain-soaked aperture. */
.chapter-transition{background:#141712;perspective:1500px;isolation:isolate;animation:film-out 2.8s both}.chapter-preview{position:absolute;inset:-3%;background-size:cover;background-position:center;opacity:0;filter:sepia(.15);animation:preview-develop 2.8s both}.chapter-transition .hall-shadow,.chapter-transition .chapter-window{display:none}.chapter-hinge{position:absolute;top:0;bottom:0;width:51%;z-index:2;background:repeating-linear-gradient(0deg,transparent 0 80px,#06070522 81px 83px),linear-gradient(90deg,#21251b,#333a2b,#151a13);box-shadow:0 0 50px #0009;backface-visibility:visible}.hinge-left{left:0;transform-origin:left center;animation:hinge-open-left 2.8s cubic-bezier(.6,0,.2,1) both}.hinge-right{right:0;transform-origin:right center;animation:hinge-open-right 2.8s cubic-bezier(.6,0,.2,1) both}.chapter-reel{position:absolute;inset:-20% 0;z-index:3;border-left:28px solid #10150deb;border-right:28px solid #10150deb;animation:reel-pull 2.8s cubic-bezier(.2,.7,.3,1) both;pointer-events:none}.chapter-reel i{position:absolute;left:-23px;right:-23px;top:calc(var(--i)*13%);height:5%;border-left:13px solid #bfa97955;border-right:13px solid #bfa97955;border-radius:3px}
.chapter-transition #chapter-from{position:absolute;z-index:4;top:32%;left:12%;right:12%;text-align:center;color:#bda779;font-size:clamp(12px,1.25vw,18px);letter-spacing:4px;animation:film-from 2.8s both}.chapter-transition #chapter-to{position:absolute;z-index:4;top:45%;left:9%;right:9%;text-align:center;font-size:clamp(22px,3vw,44px);font-family:KaiTi,var(--serif);font-weight:400;letter-spacing:6px;color:#eddab0;text-shadow:0 3px 12px #060d06;animation:film-caption 2.8s both}
.sense-film-transition .chapter-hinge{display:none}.sense-film-transition .chapter-reel{border-width:0;inset:0;mix-blend-mode:screen;animation:rain-aperture 2.8s both}.sense-film-transition .chapter-reel i{left:calc(var(--i)*14%);right:auto;top:50%;width:50%;height:50%;border:1px solid #d9d6bd55;border-radius:50%;transform:translate(-50%,-50%);animation:aperture-ring 2.8s both;animation-delay:calc(var(--i)*.025s)}.sense-film-transition .chapter-preview{animation:sense-develop 2.8s both}
/* A coda that can be paused, advanced, or closed at any point. */
.finale,.end-screen{position:absolute;inset:0;z-index:72;background:#101810;overflow:hidden}.finale-image{position:absolute;inset:-4%;background-size:cover;background-position:center;filter:saturate(.78)}.finale-shade{position:absolute;inset:0;background:linear-gradient(90deg,#101810ec 0%,#152016a0 35%,#17201615 75%),linear-gradient(0deg,#0a120fe0,transparent 47%)}.finale-copy{position:absolute;left:9%;right:46%;top:25%;color:#e9dcbd}.finale-copy>span{font:12px/1 Georgia,serif;color:#ac9360;letter-spacing:5px;display:block;margin-bottom:25px}.finale-copy h2{font-family:KaiTi,var(--serif);font-size:clamp(25px,3.4vw,48px);font-weight:400;letter-spacing:3px;margin:0 0 26px;line-height:1.4}.finale-copy p{font-size:calc(clamp(14px,1.4vw,21px) * var(--reading-scale,1));line-height:2.3;letter-spacing:1px;margin:0;color:#d1c8ad}.finale-card-arrive .finale-image{animation:finale-camera 14s ease-out both}.finale-card-arrive .finale-copy{animation:finale-words .9s .1s both}.finale-progress{position:absolute;bottom:0;height:2px;background:#b6975d;transform-origin:left;width:100%;transform:scaleX(var(--progress,0));transition:transform .5s ease}.finale-controls{position:absolute;left:9%;right:7%;bottom:7%;display:flex;gap:25px;align-items:center}.finale-controls button{padding:9px 0;color:#ad9f7b;letter-spacing:2px;border-bottom:1px solid #b69b5b44;font-size:13px}.finale-controls #finale-next{margin-left:auto;min-width:75px;color:#ead5a4}.finale-paper-drift{position:absolute;inset:0;pointer-events:none;opacity:.3}.finale-paper-drift i{position:absolute;right:10%;bottom:-10%;width:70px;height:90px;border:1px solid #b9a47744;background:linear-gradient(120deg,#bdad7c11,#d8c8a033);animation:finale-paper 18s linear infinite}.finale-paper-drift i:nth-child(2){right:30%;animation-delay:-7s;scale:.6}.finale-paper-drift i:nth-child(3){right:52%;animation-delay:-13s;scale:.4}
.end-screen{background-image:linear-gradient(#0f170c99,#141e11da),var(--end-art);background-size:cover;background-position:center;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3% 8%;animation:end-arrive 1.8s ease both}.end-light{position:absolute;inset:0;background:linear-gradient(115deg,transparent 0 48%,#f5dc9d1f 51%,transparent 57%);pointer-events:none;animation:window-sweep 8s ease-in-out infinite alternate}.end-heading{position:relative;text-align:center}.end-heading small{font-size:12px;letter-spacing:6px;color:#ab9667}.end-heading h2{font-family:KaiTi,var(--serif);font-size:clamp(30px,4.1vw,58px);font-weight:400;letter-spacing:7px;margin:20px 0;color:#e8d5a9}.end-heading p{font-size:13px;letter-spacing:2px;line-height:2;color:#b6ac8e;margin:0 0 7%}.end-bookmarks{position:relative;display:grid;grid-template-columns:repeat(3,1fr);width:min(760px,90%);gap:25px;margin:30px 0 34px}.end-bookmarks button{padding:25px 18px 24px;text-align:left;background:linear-gradient(100deg,#8f774b22,#f4dfae10);border-top:1px solid #b9a16c88;border-bottom:1px solid #b9a16c55;box-shadow:5px 3px 20px #090e0877;animation:bookmark-arrive 1.2s calc(var(--i)*.22s + .4s) both;transition:translate .2s}.end-bookmarks button:hover{translate:0 -4px;background:#b0975722}.end-bookmarks span{font-size:11px;letter-spacing:3px;color:#ac966a}.end-bookmarks strong{display:block;font-family:KaiTi,var(--serif);font-weight:400;font-size:clamp(17px,1.6vw,23px);line-height:1.6;margin:14px 0;min-height:3.2em;letter-spacing:2px}.end-bookmarks small{font-size:11px;color:#b6a479;letter-spacing:2px}.end-actions{display:flex;gap:28px;position:relative;flex-wrap:wrap;justify-content:center}.end-actions button{font-size:13px;letter-spacing:2px;border-bottom:1px solid #9c865455;padding:9px 0;color:#c4b58b}
@keyframes open-book-breathe{0%,100%{translate:0 0;filter:drop-shadow(1px 8px 6px #24150699)}50%{translate:0 -4px;filter:drop-shadow(1px 13px 10px #24150677)}}
@keyframes visible-page-turn{0%,13%{opacity:0;transform:rotateY(0) rotateZ(0)}17%{opacity:.92}40%{opacity:.95;transform:rotateY(-105deg) rotateZ(-4deg)}50%,100%{opacity:0;transform:rotateY(-160deg) rotateZ(-9deg)}}
@keyframes book-bloom{0%,100%{opacity:.25;scale:.95}50%{opacity:.65;scale:1.12}}
@keyframes opening-dive{0%{filter:blur(8px) brightness(1.7);scale:1.12}100%{filter:none;scale:1}}
@keyframes heat-waver{from{transform:translate(-5px,5px) skewX(-2deg)}to{transform:translate(7px,-7px) skewX(3deg)}}@keyframes pot-breath{0%,100%{transform:translateY(15px) scale(.85);opacity:.2}50%{transform:translateY(-25px) scale(1.1);opacity:.6}}@keyframes fan-turn{to{rotate:360deg}}@keyframes memory-flicker{0%,87%,93%,100%{opacity:.5}89%,96%{opacity:.27}}
@keyframes film-out{0%{opacity:0}9%,86%{opacity:1}100%{opacity:0}}@keyframes preview-develop{0%,18%{opacity:0;transform:scale(1.08);filter:blur(4px) sepia(.6)}42%,100%{opacity:.65;transform:scale(1);filter:blur(0) sepia(.12)}}@keyframes hinge-open-left{0%,18%{transform:rotateY(0)}62%,100%{transform:rotateY(-105deg)}}@keyframes hinge-open-right{0%,18%{transform:rotateY(0)}62%,100%{transform:rotateY(105deg)}}@keyframes reel-pull{0%{transform:translateY(16%);opacity:0}20%{opacity:.7}73%{transform:translateY(-4%);opacity:.7}100%{transform:translateY(-14%);opacity:0}}@keyframes film-from{0%,10%,70%,100%{opacity:0;transform:translateY(8px)}24%,52%{opacity:1;transform:translateY(0)}}@keyframes film-caption{0%,20%{opacity:0;transform:translateY(13px);filter:blur(3px)}43%,78%{opacity:1;transform:translateY(0);filter:none}100%{opacity:0;transform:translateY(-7px)}}@keyframes sense-develop{0%{opacity:0;clip-path:circle(0 at center);transform:scale(1.15)}46%{opacity:.6;clip-path:circle(75% at center)}100%{opacity:.85;clip-path:circle(85% at center);transform:scale(1)}}@keyframes rain-aperture{0%,100%{opacity:0}24%,80%{opacity:1}}@keyframes aperture-ring{0%{scale:.1;opacity:0}22%{opacity:.5}85%,100%{scale:2.5;opacity:0}}
@keyframes finale-camera{from{transform:scale(1);opacity:.4}8%{opacity:1}to{transform:scale(1.055) translate(-.6%,.5%);opacity:1}}@keyframes finale-words{from{opacity:0;transform:translateY(12px);filter:blur(3px)}to{opacity:1;transform:translateY(0);filter:none}}@keyframes finale-paper{from{translate:0 0;rotate:-15deg;opacity:0}15%,85%{opacity:.7}to{translate:-140px -900px;rotate:80deg;opacity:0}}@keyframes end-arrive{from{opacity:0;filter:blur(5px)}to{opacity:1;filter:none}}@keyframes bookmark-arrive{from{opacity:0;transform:translateY(25px) rotate(-3deg)}to{opacity:1;transform:translateY(0) rotate(0)}}
@media(max-width:700px) and (orientation:portrait){
 #title-screen{background:linear-gradient(90deg,#111f18b8,#25311b22 70%)}#title-screen h1{top:12%;left:13%;font-size:57px}.title-buttons{left:43%;top:35%;width:46%;gap:22px}.title-buttons button{font-size:20px;padding:15px 6px;letter-spacing:3px}.cover-book-object{left:35%;top:65%;width:63%;height:22%;animation-duration:6s}.cover-page-fan{left:65%;top:71%;width:28%;height:8%}.cover-page-fan i{background:linear-gradient(90deg,#bca374,#f1dfb7)}
 .task-prompt{bottom:calc(232px + 8%);left:12%;right:12%}.task-prompt button{font-size:16px;padding:14px 12px}.story-tabs{gap:5px}.story-tabs button{padding:8px 6px 14px}.story-tabs strong{font-size:12px}.story-tabs small{font-size:10px;letter-spacing:2px}.chapter-shelf{grid-template-columns:repeat(2,1fr);gap:10px}.chapter-card>span:last-child{padding:10px 8px;gap:7px}.chapter-card strong{font-size:12px}.chapter-card small{font-size:10px}.paper-sorting{height:140px}.loose-papers img{height:110px}.loose-papers span{font-size:10px;letter-spacing:1px}.paper-folder{height:200px;width:88%}.fabric-board{height:265px}#stitch-hold{font-size:14px;padding:16px 20px}.collage-layout{grid-template-columns:1fr;gap:12px}.collage-picks{grid-template-columns:repeat(4,1fr);max-height:180px}.collage-paper{aspect-ratio:1.4}.collage-editor textarea{height:130px}.collage-object{height:58%}.torch-grip{font-size:10px;letter-spacing:1px}
 .finale-image{background-position:64% center}.finale-shade{background:linear-gradient(0deg,#101810f5,#172015aa 50%,#18231516 90%)}.finale-copy{left:9%;right:9%;top:auto;bottom:19%}.finale-copy h2{font-size:31px;margin-bottom:18px}.finale-copy p{font-size:calc(16px * var(--reading-scale,1));line-height:2.05}.finale-copy>span{margin-bottom:18px}.finale-controls{bottom:7%;gap:18px}.finale-controls button{font-size:12px}.end-screen{padding:7%}.end-heading h2{font-size:34px;letter-spacing:4px;margin:20px 0}.end-heading p{font-size:12px;letter-spacing:1px}.end-bookmarks{width:100%;grid-template-columns:1fr;gap:12px;margin:26px 0}.end-bookmarks button{padding:14px 16px;display:grid;grid-template-columns:56px 1fr;column-gap:15px;align-items:center}.end-bookmarks span{font-size:10px;grid-row:1/3}.end-bookmarks strong{font-size:18px;line-height:1.4;min-height:0;margin:0 0 5px;letter-spacing:1px}.end-bookmarks small{font-size:10px}.end-actions{gap:12px 20px}.end-actions button{font-size:12px}.character[data-character='a4-young-sister-bust']{height:67%;width:100%}.character[data-character='a4-young-sister-bust'].right{right:-18%}
 .chapter-transition #chapter-to{font-size:26px;letter-spacing:3px;top:45%}.chapter-transition #chapter-from{font-size:12px;letter-spacing:2px;top:38%}
}
@media(max-height:500px) and (orientation:landscape){.title-buttons{top:35%;gap:11px}.title-buttons button{font-size:15px;padding:9px 5px}.task-prompt{bottom:39%;left:30%;right:30%}.task-prompt button{padding:9px 10px;font-size:13px}.finale-copy{top:15%;left:8%;right:39%}.finale-copy h2{font-size:26px;margin-bottom:15px}.finale-copy p{font-size:calc(13px * var(--reading-scale,1));line-height:1.9}.finale-copy>span{margin-bottom:14px}.finale-controls{bottom:5%}.end-heading small{font-size:10px}.end-heading h2{font-size:27px;margin:12px 0}.end-heading p{font-size:11px;margin:0}.end-bookmarks{margin:18px 0;gap:18px}.end-bookmarks button{padding:12px 13px}.end-bookmarks strong{font-size:16px;margin:8px 0}.end-bookmarks small{font-size:10px}.end-actions button{font-size:11px;padding:5px 0}.end-screen{padding:3% 7%}.chapter-transition #chapter-to{font-size:28px}.fabric-board{height:240px}.paper-folder{height:180px}.paper-sorting{height:130px}.loose-papers img{height:100px}}
@media(prefers-reduced-motion:reduce){.cover-book-object,.cover-page-fan i,.pan-heat,.pan-breath,.fan-shadow,.hot-air,.memory-grain,.end-light,.finale-paper-drift{animation:none!important}.cover-page-fan{display:none}.finale-copy,.end-bookmarks button{animation:none!important;opacity:1!important;filter:none!important}.finale-image{animation:none!important;opacity:1!important}.chapter-hinge,.chapter-reel{display:none}.chapter-preview{opacity:.6!important;animation:none!important;clip-path:none!important}.chapter-transition #chapter-to,.chapter-transition #chapter-from{animation:none!important;opacity:1!important}}
.fabric-early .fabric-piece{background-image:radial-gradient(ellipse at 30% 30%,#eee0be55 0 2%,transparent 3% 9%,#eee0be33 10% 12%,transparent 13% 23%,#eee0be22 24% 27%,transparent 28%),repeating-linear-gradient(0deg,#ffffff08 0 1px,transparent 1px 3px);background-size:46px 58px,auto;background-color:var(--cloth)}
.fabric-late .piece-0{background-image:repeating-linear-gradient(0deg,#e4e1cb33 0 2px,transparent 2px 15px,#182a301a 15px 18px,transparent 18px 28px),repeating-linear-gradient(90deg,#e4e1cb44 0 2px,transparent 2px 17px,#182a3022 17px 20px,transparent 20px 28px)}
.fabric-late .piece-1{background:radial-gradient(circle,#e7e0cc 0 2px,transparent 2.5px) 0 0/18px 18px,#343632}.fabric-late .piece-3{background-image:repeating-linear-gradient(58deg,transparent 0 25px,#c8cbb344 26px 27px,transparent 28px 42px),radial-gradient(ellipse at 45% 30%,#d0cead55 0 3%,transparent 4% 100%);background-size:auto,26px 33px}
.sewn-line{stroke-dasharray:4 6;stroke-dashoffset:0;clip-path:inset(0 0 100% 0)}.sewing-needle{position:absolute;left:50%;top:7%;width:2px;height:38px;background:linear-gradient(90deg,#e5ddc4,#776b52);box-shadow:1px 1px 1px #171107;rotate:35deg;transform-origin:50% 100%;pointer-events:none}.sewing-needle:after{content:'';position:absolute;top:3px;left:0;width:2px;height:4px;background:#4a4233;border:1px solid #bcb6a1}.needle-moving{animation:needle-pierce .3s ease-in-out infinite alternate}@keyframes needle-pierce{to{translate:2px 5px;rotate:42deg}}
@media(prefers-reduced-motion:reduce){.needle-moving{animation:none!important}}
.collage-inscription{position:absolute;left:21%;right:21%;top:43%;text-align:center;white-space:pre-line;font:clamp(8px,1vw,12px)/1.6 KaiTi,serif;color:#59432d;pointer-events:none}
.background[data-flip='true'],.background-previous[data-flip='true']{scale:-1 1}.low-light .background{filter:brightness(.58) saturate(.8)}

/* Separate drops travel through the stage at different speeds and depths. */
.rain-field{position:absolute;inset:0;overflow:hidden;pointer-events:none;container-type:size;z-index:0}
.rain-drop{
 position:absolute;top:-46px;left:var(--x);width:var(--width);height:var(--length);
 border-radius:70% 70% 45% 45%;
 background:linear-gradient(transparent,#c5d0d9 52%,#edf1ee);
 box-shadow:1px 0 1px #24343d55;
 opacity:var(--alpha);animation:rain-fall var(--time) var(--delay) linear infinite;
}
@keyframes rain-fall{
 from{transform:translate3d(0,0,0) rotate(var(--tilt))}
 to{transform:translate3d(var(--drift),calc(100cqh + 92px),0) rotate(var(--tilt))}
}
@media(prefers-reduced-motion:reduce){.rain-field{display:none}}
