@font-face{font-family:AlbumHand;src:url('assets/hand.ttf') format('truetype');font-display:swap}
:root{color-scheme:light;--ink:#37342c;--paper:#e7dcc4;--desk:#746e62;--hand:AlbumHand,'Hiragino Mincho ProN','Yu Mincho',serif;--ui:'Hiragino Sans','Yu Gothic',sans-serif;--paper-image:url('assets/paper.webp');font-family:var(--hand);color:var(--ink);font-synthesis:none}
*{box-sizing:border-box}
html{min-width:280px;min-height:100%;background:#746e62}
body{margin:0;min-height:100svh;background:radial-gradient(ellipse at 45% 18%,#9c9382 0%,#746e62 70%,#5e594f 100%);-webkit-font-smoothing:antialiased}
button,input{font:inherit;color:inherit}
button{cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
button:disabled{cursor:default}
button:focus-visible,[tabindex]:focus-visible,input:focus-visible{outline:2px solid #6d7258;outline-offset:6px}
button{border:0}
[hidden]{display:none!important}
.desk-grain{position:fixed;inset:0;pointer-events:none;background:var(--paper-image) center/650px;opacity:.13;mix-blend-mode:multiply}
.stage{position:relative;min-height:100svh;padding:20px 36px 24px;display:flex;flex-direction:column;align-items:center;isolation:isolate}
.toolbar{width:min(1260px,100%);min-height:46px;display:flex;align-items:center;gap:12px;z-index:4;margin-bottom:18px}
.toolbar-space{flex:1}
.back-button{display:flex;align-items:center;gap:9px;background:transparent;padding:3px 12px 3px 0;font-size:21px;color:#f0e7d6;min-height:44px;text-shadow:0 1px 2px #403b34}
.back-button span{font-family:Georgia,serif;font-size:34px;line-height:1}
.sound-button{border:1px solid #c7bfac55;border-radius:25px;background:#efe6d5c2;padding:8px 15px;display:flex;align-items:center;gap:7px;font-size:15px;min-height:40px;box-shadow:0 2px 4px #36312618}
.sound-waves{display:none}
.sound-button[aria-pressed=true] .sound-waves{display:block}
.sound-button[aria-pressed=true] .sound-slash{display:none}
.scene{width:100%;animation:arrive .4s ease both}
@keyframes arrive{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
.cover-scene{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:12px 0 0}
.album-cover{position:relative;width:min(870px,85vw);height:clamp(460px,67svh,660px);border-radius:8px 13px 11px 8px;background:#4e5140 url('assets/cloth.webp') center/cover;box-shadow:inset 0 0 0 2px #b8a0785c,inset 0 0 0 6px #24281e36,inset 0 0 24px #1f221d8f,1px 3px 0 #292b23,3px 6px 0 #4a4435,8px 19px 30px #25231e5e,0 40px 70px -32px #211f1bd9}
.album-cover:after{content:'';pointer-events:none;position:absolute;inset:10px;border:1px solid #b2a38438;border-radius:3px 7px 6px 3px;box-shadow:0 0 0 1px #23291f66}
.cover-spine{position:absolute;left:0;top:0;bottom:0;width:12%;background:linear-gradient(90deg,#171e1a8f,#22271e2e 72%,#c0ae7647 75%,#181e18c4 78%,transparent 83%);border-right:2px solid #b8ae7c35;border-radius:8px 0 0 8px}
.cover-spine i{position:absolute;left:42%;width:16px;height:22px;background:#25251c;border:3px solid #9e8659;border-radius:50%;box-shadow:1px 2px 4px #0008,inset 0 0 3px #030302;top:23%}
.cover-spine i:nth-child(2){top:auto;bottom:23%}
.cover-spine b{position:absolute;left:48%;top:25%;bottom:25%;width:7px;background:repeating-linear-gradient(135deg,#342b20,#534333 3px,#2b251d 5px);box-shadow:3px 1px 3px #0008;transform:rotate(1deg);border-radius:50%}
.cover-spine b:after{content:'';position:absolute;top:39%;left:-10px;width:24px;height:24px;border-radius:50%;background:repeating-linear-gradient(25deg,#2b2419,#4f4231 3px,#211f18 6px);box-shadow:2px 3px 3px #0008}
.cover-content{position:absolute;inset:0 7% 0 18%;display:flex;align-items:center;flex-direction:column;justify-content:center}
.title-label{margin:0;width:min(100%,570px);padding:10px 25px;background:#d2c09b var(--paper-image) center/cover;box-shadow:0 3px 5px #15180f6b,inset 0 0 12px #a0804533;transform:rotate(-.45deg);border:1px solid #b7a17f;position:relative}
.title-label:after{content:'';pointer-events:none;position:absolute;inset:9px;border:1px solid #79674970;outline:1px solid #79674940;outline-offset:3px}
.title-surface{width:100%;aspect-ratio:1000/240;position:relative;display:block}
.source-image{display:block;width:100%;height:100%;object-fit:contain;position:relative;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}
.visible-image{position:absolute;inset:0;background-color:#eee2cb;background-repeat:no-repeat;background-position:center;background-size:100% 100%;pointer-events:none;z-index:1}
.image-surface{position:relative;cursor:default;touch-action:pan-y;-webkit-user-select:none;user-select:none}
.image-surface:not([data-ready])::after{content:'…';position:absolute;inset:0;z-index:2;display:grid;place-items:center;font-size:20px;color:#928366;pointer-events:none}
.stars-label{margin-top:33px;align-self:center;background:#cdbb96 var(--paper-image) center/cover;transform:rotate(-6deg);font-size:40px;line-height:1.3;letter-spacing:4px;padding:1px 21px 5px;color:#6f6856;box-shadow:1px 3px 4px #141b1447;clip-path:polygon(0 3%,98% 0,100% 87%,94% 100%,1% 98%)}
.progress-star{display:inline-block;min-width:1em;text-align:center}
.progress-star.is-filled{color:#191b17}
.paper-button{background:#e4d9c1 var(--paper-image) center/700px;border:1px solid #b2a38d;border-radius:3px;box-shadow:0 3px 5px #302b2447,inset 0 1px 1px #fff9;min-height:49px;padding:11px 34px;font-size:22px;letter-spacing:.04em;transition:box-shadow .16s,background-color .16s,transform .16s}
.paper-button:hover{box-shadow:0 5px 8px #302b2447,inset 0 1px 1px #fff9;transform:translateY(-1px)}
.paper-button:active{transform:translateY(1px)}
.open-button{margin-top:clamp(38px,8svh,85px);width:230px;display:flex;align-items:center;justify-content:center;gap:20px}
.open-button span{font-family:Georgia,serif;font-size:27px;opacity:.6}
.desk-caption{font-size:15px;color:#e6ddcba6;letter-spacing:.13em;margin:26px 0 0;text-align:center}
.cover-answer{margin-top:29px;width:min(100%,420px);color:#e9dfca}
.cover-answer .answer-line{display:flex;gap:10px}
.cover-answer input{min-width:0;flex:1;width:80px;border:0;border-bottom:1px solid #d0c4a8;background:#dfd5ba13;color:#f1e5cc;padding:10px;font-size:21px;border-radius:0}
.cover-answer button{color:var(--ink);font-size:18px;padding:8px 14px;background:#ddd2bbd9;border:1px solid #a79a7f;border-radius:2px;white-space:nowrap}
.cover-answer .feedback{color:#e6d5c1}
.cover-resolved{font-size:22px;color:#eadac0;margin:24px 0 0}
.cover-answer:not([hidden])~.open-button,.cover-resolved:not([hidden])~.open-button{margin-top:19px}
.book-scene{width:min(1260px,100%);flex:1;display:flex;align-items:center;justify-content:center;flex-direction:column}
.album-book{position:relative;width:100%;min-height:610px;max-height:860px;height:calc(100svh - 170px);display:grid;grid-template-columns:1fr 1fr;padding:9px 12px 12px;border-radius:9px 11px 11px 9px;background:#514b3d url('assets/cloth.webp') center/cover;box-shadow:0 2px 0 #363329,0 5px 0 #b5a58a,0 7px 0 #4a4334,0 10px 14px #201e1b61,0 32px 45px -17px #26231d91;isolation:isolate}
.book-binding{position:absolute;top:2%;bottom:2%;left:calc(50% - 13px);width:26px;z-index:3;pointer-events:none;background:linear-gradient(90deg,transparent,#3a2f2166 43%,#211c13b0 50%,#e8d7ae22 60%,transparent);border-radius:50%}
.book-binding:after{content:'';position:absolute;top:9%;bottom:9%;left:49%;width:4px;background:repeating-linear-gradient(to bottom,transparent 0 65px,#5b4b33 66px 70px,transparent 71px 77px,#e0cba1 78px 80px)}
.page{position:relative;background:var(--paper) var(--paper-image) center/cover;padding:clamp(26px,4vw,64px) clamp(24px,3vw,47px) 78px;min-width:0;display:flex;flex-direction:column;justify-content:center;overflow:hidden}
.page-left{border-radius:4px 1px 1px 5px;box-shadow:inset -15px 0 20px -15px #6e573e90,inset 2px 0 5px #8d78564d}
.page-right{border-radius:1px 5px 5px 1px;box-shadow:inset 16px 0 22px -19px #54452fa3,inset -2px 0 5px #8d78564d}
.mounted-photo{position:relative;width:100%;margin:0;filter:drop-shadow(0 3px 3px #5d4d3238);transform:rotate(-.65deg);flex-shrink:0}
.mounted-photo .image-surface{display:block;width:100%;aspect-ratio:1200/1020;background:#eee2cb;box-shadow:0 0 0 1px #c8b899}
.corner{position:absolute;z-index:2;pointer-events:none;width:29px;height:29px;background:linear-gradient(135deg,#3a3c33,#191d19);filter:drop-shadow(1px 2px 1px #29271955)}
.corner.tl{left:-5px;top:-5px;clip-path:polygon(0 0,100% 0,0 100%)}
.corner.tr{right:-5px;top:-5px;clip-path:polygon(0 0,100% 0,100% 100%)}
.corner.bl{left:-5px;bottom:-5px;clip-path:polygon(0 0,0 100%,100% 100%)}
.corner.br{right:-5px;bottom:-5px;clip-path:polygon(100% 0,0 100%,100% 100%)}
.photo-note{font-size:clamp(17px,1.6vw,23px);line-height:1.9;letter-spacing:.02em;text-align:center;margin:23px -8px 0;white-space:pre-line}
.question-form{width:100%;max-width:390px;margin:auto;position:relative}
.question-form label{display:block;text-align:center;font-size:25px;letter-spacing:.1em;margin:0 0 27px}
.question-form input{width:100%;border:1px solid #887e695e;background:#f5ebd226;border-radius:0;box-shadow:inset 0 1px 3px #826c4314;height:55px;padding:8px 14px;font-size:25px;text-align:center;letter-spacing:.2em;outline-offset:3px;-webkit-appearance:none;appearance:none}
.question-form button[type=submit]{display:block;margin:23px auto 0;min-width:150px;min-height:47px;background:transparent;border:1px solid #9b8b6c;border-radius:2px;padding:8px 19px;font-size:20px;box-shadow:0 1px 1px #f9f1dcad}
.question-form button:hover{background:#fff3}
.feedback{min-height:1.8em;font-size:17px;line-height:1.8;text-align:center;margin:13px 0 0;color:#795849;white-space:pre-line}
.feedback.success{color:#4b5d48}
.answer-mark{color:#536048;text-align:center;font-size:21px;line-height:1.8;margin:16px 0 0;animation:arrive .4s ease both}
.page-navigation{position:absolute;bottom:22px;left:50%;right:20px;display:flex;align-items:center;justify-content:center;gap:25px;z-index:4}
.page-navigation button{width:48px;height:46px;display:grid;place-items:center;background:transparent;font-family:Georgia,serif;font-size:42px;font-weight:400;line-height:1;padding-bottom:9px;opacity:.8}
.page-navigation button:hover{opacity:1;background:#81735b10}
.page-navigation button:disabled{opacity:.2}
#page-number{width:24px;text-align:center;font-size:19px}
.book-footer{min-height:66px;display:flex;align-items:flex-end;justify-content:center}
.close-button{font-size:17px;min-height:40px;padding:7px 24px;background-color:#d8cdb4}
.opening-kicker{font-size:16px;letter-spacing:.24em;color:#85765c;margin:0 0 20px}
.story-note{font-size:clamp(17px,1.7vw,22px);line-height:2;white-space:pre-line;margin:0 0 30px;letter-spacing:.03em}
.example-photo{max-width:330px;margin:0 auto}
.example-answer{font-size:23px;text-align:center;margin:20px 0 0;letter-spacing:.14em}
.example-answer small{font-size:15px;letter-spacing:.05em;margin-right:14px}
.instruction-title{font-size:26px;font-weight:400;text-align:left;margin:0 0 22px}
.instruction-copy{font-size:clamp(18px,1.7vw,23px);line-height:2.1;white-space:pre-line;margin:0}
.tiny-note{margin:28px 0 0;font-size:16px;color:#83745b;line-height:1.9;white-space:pre-line}
.example-footnote{text-align:center;margin:15px 0 0;font-size:14px;color:#897a60}
.ending-note{font-size:clamp(26px,3.1vw,43px);line-height:1.9;letter-spacing:.01em;font-weight:400;margin:0;white-space:pre-line}
.ending-photo{transform:rotate(.7deg)}
.truth-copy{font-size:clamp(17px,1.55vw,21px);line-height:1.95;white-space:pre-line;margin:22px 0 0}
.truth-heading{font-size:clamp(24px,2.7vw,36px);margin:0;line-height:1.8;font-weight:400}
.ending-whisper{font-size:18px;color:#796b56;line-height:1.8;margin:25px 0 0}
.pressed-flower{position:absolute;width:90px;height:125px;bottom:87px;right:39px;transform:rotate(22deg);opacity:.65;pointer-events:none;filter:drop-shadow(1px 2px 1px #77634644)}
.pressed-flower svg{width:100%;height:100%}
.truth-page .pressed-flower{opacity:.24;right:22px;bottom:60px}
.photo-dialog{padding:0;border:1px solid #a29883;border-radius:7px;background:#e4dbc8;box-shadow:0 20px 80px #171812b3;width:min(760px,calc(100vw - 30px));max-height:calc(100dvh - 30px);overflow:auto;color:var(--ink)}
.photo-dialog::backdrop{background:#161a17d1;backdrop-filter:blur(4px)}
.preview-toolbar{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;padding:4px 12px 4px 22px;min-height:50px;background:#e3dac7;font-size:18px}
.preview-toolbar button{width:44px;height:44px;font:30px/1 var(--hand);background:transparent}
.preview-content{padding:10px 18px 20px;display:grid;place-items:center}
#preview-image{display:block;max-width:100%;max-height:calc(100dvh - 130px);width:auto;height:auto;object-fit:contain;-webkit-touch-callout:default;user-select:auto}
.wrong{animation:shake .35s ease both}
@keyframes shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-5px)}65%{transform:translateX(5px)}}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.page-turn{animation:turn-page .34s ease both}
@keyframes turn-page{from{opacity:.4;transform:translateX(5px)}to{opacity:1;transform:none}}

@media(min-width:761px) and (max-height:780px){.stage{padding-top:9px;padding-bottom:12px}.toolbar{margin-bottom:8px;min-height:40px}.album-book{min-height:510px;height:calc(100svh - 140px)}.page{padding-top:27px;padding-bottom:67px}.mounted-photo{max-width:440px;margin-left:auto;margin-right:auto}.story-note{font-size:18px;line-height:1.8;margin-bottom:21px}.example-photo{max-width:245px}.instruction-copy{font-size:20px;line-height:1.9}.photo-note{font-size:18px;margin-top:16px}.truth-copy{font-size:17px;line-height:1.75}.book-footer{min-height:53px}.album-cover{height:65svh;min-height:410px}}
@media(min-width:761px) and (min-width:1400px){.stage{padding-top:25px}.toolbar{margin-bottom:22px}.album-cover{width:900px;height:650px}.album-book{height:min(770px,calc(100svh - 190px))}}

@media(max-width:760px){
  .stage{padding:calc(9px + env(safe-area-inset-top)) 12px calc(16px + env(safe-area-inset-bottom));min-height:100svh}
  .toolbar{margin-bottom:16px;min-height:42px;padding:0 3px}
  .back-button{font-size:19px;min-height:42px;padding-right:12px;gap:5px}
  .sound-button{font-size:14px;min-height:36px;padding:7px 11px}
  .cover-scene{padding:0;justify-content:center}
  .album-cover{width:min(430px,100%);height:auto;min-height:0;aspect-ratio:365/545;max-height:none;border-radius:6px 9px 8px 6px}
  .cover-spine{width:13%}
  .cover-spine i{width:12px;height:18px;border-width:2px;left:40%}
  .cover-spine b{width:5px}
  .cover-spine b:after{width:19px;height:19px;left:-7px}
  .cover-content{inset:0 6% 0 19%;justify-content:flex-start;padding-top:34%}
  .title-label{width:100%;padding:13px 11px}
  .title-label:after{inset:7px;outline-offset:2px}
  .stars-label{font-size:33px;margin-top:29px;padding:0 14px 4px}
  .open-button{width:78%;font-size:23px;margin-top:auto;margin-bottom:20%;min-height:49px;padding:9px 15px}
  .desk-caption{font-size:12px;margin:22px 0 8px;letter-spacing:.08em}
  .cover-answer{margin-top:24px;width:100%}
  .cover-answer .answer-line{gap:6px}
  .cover-answer input{font-size:19px;height:42px;padding:5px}
  .cover-answer button{font-size:15px;padding:5px 8px}
  .cover-answer .feedback{font-size:14px;margin-top:7px;min-height:1.5em}
  .cover-resolved{font-size:18px;text-align:center;margin-top:25px}
  .cover-answer:not([hidden])~.open-button,.cover-resolved:not([hidden])~.open-button{margin-top:auto;margin-bottom:9%}
  .book-scene{width:min(480px,100%);justify-content:flex-start}
  .album-book{display:flex;flex-direction:column;height:auto;max-height:none;min-height:calc(100svh - 155px);padding:6px 6px 70px;border-radius:5px 7px 7px 5px;overflow:hidden;background:var(--paper) var(--paper-image) center/cover;box-shadow:inset 4px 0 0 #57503e,inset -4px 0 0 #57503e,0 3px 0 #bcae91,0 6px 0 #4b4637,0 15px 20px -7px #26231d83}
  .book-binding{left:0;top:6px;bottom:6px;width:17px;border-radius:0;background:linear-gradient(90deg,#2a241ad6,#594f3b3b 30%,transparent)}
  .book-binding:after{display:none}
  .page{background:none;box-shadow:none;padding:30px 22px 0;overflow:visible;justify-content:flex-start;border-radius:0}
  .page-left{padding-top:33px}
  .page-right{padding-top:27px;padding-bottom:7px;flex:1}
  .mounted-photo{transform:rotate(-.4deg);width:100%;max-width:none}
  .corner{width:24px;height:24px}
  .photo-note{font-size:17px;line-height:1.9;margin:18px -4px 0}
  .question-form{max-width:none;margin:0 auto;}
  .question-form label{font-size:21px;letter-spacing:.06em;margin:0 0 16px}
  .question-form input{font-size:23px;height:48px;letter-spacing:.13em}
  .question-form button[type=submit]{font-size:20px;margin:17px auto 0;min-height:44px;padding:7px 24px}
  .feedback{font-size:15px;min-height:1.5em;margin-top:10px}
  .page-navigation{left:17px;right:13px;bottom:10px;gap:31px}
  .page-navigation button{width:48px;height:44px;font-size:40px}
  #page-number{font-size:18px}
  .book-footer{min-height:63px}
  .close-button{font-size:17px;min-height:43px;padding:9px 25px}
  .opening-kicker{font-size:13px;margin-bottom:13px}
  .story-note{font-size:16px;line-height:1.9;margin-bottom:27px}
  .example-photo{max-width:280px;margin:0 auto}
  .example-answer{font-size:22px;margin-top:18px}
  .example-answer small{font-size:14px}
  .instruction-title{font-size:23px;margin:0 0 14px}
  .instruction-copy{font-size:17px;line-height:1.95}
  .tiny-note{font-size:14px;margin-top:19px}
  .example-footnote{font-size:13px}
  .album-book[data-page='1'] .page-right{padding-top:30px}
  .album-book[data-page='4'] .page-left{padding-top:34px}
  .album-book[data-page='4'] .page-right{padding-top:35px;min-height:190px;padding-bottom:40px}
  .ending-note{font-size:32px;line-height:1.85;letter-spacing:.015em;margin-right:11px}
  .pressed-flower{width:65px;height:95px;bottom:12px;right:25px}
  .truth-heading{font-size:28px;line-height:1.8}
  .truth-copy{font-size:18px;line-height:1.95;margin-top:22px}
  .truth-page .pressed-flower{bottom:5px;right:13px}
  .ending-whisper{font-size:16px;margin-top:20px}
  .answer-mark{font-size:18px;margin-top:10px}
  .photo-dialog{width:calc(100vw - 22px);max-height:calc(100dvh - 50px)}
  .preview-content{padding:7px 10px 14px}
}
@media(max-width:360px){.stage{padding-left:8px;padding-right:8px}.page{padding-left:20px;padding-right:18px}.photo-note{font-size:15px}.question-form label{font-size:19px}.title-label{padding:13px 7px}.cover-content{padding-top:31%}.stars-label{margin-top:24px;font-size:28px}.cover-answer{margin-top:19px}.ending-note{font-size:28px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
