/* Un umbral, un hilo y el mismo color en todos los recuerdos. */
.preparation-coordinate{font-family:'Sora',sans-serif;font-size:7px;letter-spacing:.36em;color:#b795a5;margin-bottom:17px}
.preparation-orbit{position:relative;width:180px;height:180px;margin:auto;display:grid;place-items:center}
.preparation-orbit svg{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:#ae75875c;stroke-width:.6}
.preparation-orbit .orbit-trace{stroke:#76556430}.preparation-orbit .orbit-progress{stroke:#e3b3bc;stroke-width:1;stroke-dasharray:428;stroke-dashoffset:calc(428 * (1 - var(--loaded)));transform:rotate(-90deg);transform-origin:center;transition:stroke-dashoffset .25s linear}
#preparationPercent{font-family:'Reenie Beanie',cursive;font-size:44px;color:#e9c9cc;rotate:-4deg}
.preparation-title{font-family:'Reenie Beanie',cursive;font-size:46px;line-height:.95;color:#eed8d2;margin:22px 0 23px;rotate:-2deg}
.preparation-status{font-family:'Sora',sans-serif;font-size:8px;line-height:1.9;color:#b6a0ad;max-width:270px;margin:0 auto;min-height:40px;padding:0 12px}
.preparation-retry{font-family:'Reenie Beanie',cursive;font-size:26px;min-height:48px;justify-self:center;color:#e4b5c7;padding:12px 22px;background:#211622;border:1px solid #bf91a145;clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px)}
.preparation-light{position:absolute;z-index:-1;inset:0;background:radial-gradient(ellipse at 50% 60%,#74374a26,transparent 58%)}
.preparing .entry,.preparing #experience{visibility:hidden;pointer-events:none}
.threshold{position:fixed;inset:0;z-index:14;display:grid;place-items:center;text-align:center;opacity:0;pointer-events:none;transition:opacity .65s ease}
.threshold.active{opacity:1}.threshold>span{font-family:'Reenie Beanie',cursive;font-size:clamp(32px,3.8vw,52px);line-height:1.03;color:#e9c4ca;max-width:min(750px,78vw);text-wrap:balance;translate:0 -8px}
.threshold:after{content:'';position:absolute;top:64%;left:42%;right:42%;height:18px;border-bottom:1px solid #c38fa25c;border-radius:50%;rotate:-5deg}
.words{isolation:isolate}.words.film-words:before{content:'';position:absolute;z-index:-1;inset:-27px -25px -30px;background:radial-gradient(ellipse,#08060bbb 0,#08060b45 53%,transparent 74%);pointer-events:none}
.words.film-words .line{color:#f5e7de;text-shadow:0 1px 4px #000,0 3px 17px #000a}
.words.film-words .line em{color:#f0c4c4}.words .word-ink{animation-duration:.8s}
body[data-world=prologo] .words{top:44%}body[data-world=prologo] .words .line{font-size:clamp(43px,5.3vw,72px)}
.collection.teaser{top:auto;bottom:25%;left:30%;right:30%;opacity:.6;gap:10%}.collection.teaser .collected-stamp>span{display:none}.collection.teaser .collected-stamp svg{width:29px;height:29px}.collection.teaser .collected-stamp:after{top:15px}
.collected-stamp{transition:opacity 1.2s ease}.collected-scene{width:76px;height:76px;object-fit:cover;border:1px solid #d7a6b883;border-radius:48% 48% 10% 10%;box-shadow:0 6px 15px #0005}
.collection:not(.teaser) .collected-stamp svg{position:absolute;top:53px;right:calc(50% - 49px);width:25px;height:25px;padding:4px;background:#140b18;border:1px solid #c99ca55e;border-radius:50%}
.collection:not(.teaser) .collected-stamp:after{top:38px}.collection.teaser .collected-scene{display:none}
body[data-world=todavia] .photographs{opacity:.14}body[data-world=todavia] .memory-frame{opacity:0}body[data-world=todavia] .words{top:43%}body[data-world=todavia] .words .line{font-size:clamp(43px,5.5vw,76px)}

/* Controles con tinta y respaldo oscuro, legibles sobre cualquier plano. */
.global-controls{border-radius:0;padding:4px;gap:1px;background:#100b16ed;border:1px solid #c59ba650;box-shadow:0 3px 18px #0005;clip-path:polygon(9px 0,100% 0,100% calc(100% - 9px),calc(100% - 9px) 100%,0 100%,0 9px)}
.global-controls .icon-button{width:42px;height:44px;border-radius:0;color:#e8d0d6}.global-controls .icon-button svg{width:17px;height:17px;stroke-width:1.5}
.global-controls .icon-button[aria-pressed=true]{background:#9c58632e;color:#f3c8b4}.global-controls .icon-button:hover{background:#a76d8930;color:white}
.global-controls #wakeButton[data-supported=false]{color:#b3a0b0}
.flow-button{padding:4px 12px;min-height:44px;background:linear-gradient(90deg,#0c0912e8,#0c09127a);border-left:1px solid #d2a8b75c;color:#edc3ce;text-shadow:0 1px 4px #000}
.flow-button svg{stroke-width:1.25}.flow-button[aria-pressed=false]{color:#d8bccc}
.last-reel{padding:5px 9px 5px 12px;background:linear-gradient(90deg,#0b081100,#0b0811da 25%,#0b0811df);color:#e9c0cb;text-shadow:0 1px 4px #000}
.last-reel svg{stroke:#f0c3c6;fill:#0c0912cc;stroke-width:1.2}
.continue{width:57px;height:61px;border:1px solid #d6a2b4b3;border-radius:0;background:#170e1cf0;display:grid;grid-template-rows:29px 18px;align-content:center;justify-items:center;padding:4px 0;clip-path:polygon(8px 0,100% 0,100% calc(100% - 9px),calc(100% - 9px) 100%,0 100%,0 8px);color:#f1d3dc;box-shadow:0 4px 18px #0006}
.continue:before{display:none}.continue:hover{background:#392133}.continue svg{height:21px;width:18px}.next-caption{font-family:'Reenie Beanie',cursive;font-size:19px;line-height:1;color:#efc6c9}
.pace-track{left:6px;right:6px;bottom:3px}.pace-track i{background:#f0c5c8}
.previous-note{min-width:42px;min-height:44px;background:#100b16e8;border-bottom:1px solid #c094ab66;color:#e2bdcf;opacity:1;font-size:25px;rotate:-3deg}
.credits-button{background:#110c19df;border-bottom:1px solid #cda4b85c;color:#e6ccdd;min-height:40px;min-width:42px}
.music-dock{background:#100b16ed;border-color:#cba1b44d;box-shadow:0 4px 20px #0005}
#songTitle{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;color:#f0dfe4}
.reader-tools{border-radius:2px;background:#130c1af5;border:1px solid #d0a4b75c;padding:3px;gap:3px}.reader-tools .icon-button{border-radius:1px;color:#f0d4de}
.reader-tools .icon-button:hover{background:#9b5a7a45}
.trail button i{width:4px;height:4px;border:1px solid #d2a1b488;background:#130a18;box-shadow:0 1px 4px #000}

/* Cinco palabras que se convierten en una sola dedicatoria. */
.words.language-words{top:25%;bottom:auto;translate:0 -50%}.words.language-words .line{font-size:clamp(36px,4.7vw,61px);line-height:1.05}
.language-moment{position:fixed;z-index:15;left:14%;right:14%;top:43%;bottom:20%;display:flex;flex-direction:column;align-items:center;justify-content:center}
.language-moment .languages{position:static;inset:auto;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));width:100%;gap:14px;margin:0;align-items:center}
.language-moment .languages button,.language-moment .languages button:nth-child(n){position:relative;min-width:0;min-height:58px;rotate:0deg;translate:none;transform:none;padding:10px 9px;font-family:'Cormorant Garamond',serif;font-style:italic;font-size:30px;line-height:1.1;color:#ebd1df;background:#160d1be3;border:0;border-bottom:1px solid #b4859c50;box-shadow:0 5px 17px #0003;transition:color .5s,background .5s,border-color .5s}
.language-moment .languages button:before{content:'';inset:auto 13% -6px;bottom:-6px;height:8px;border:0;border-bottom:1px solid #d3a0b6;border-radius:50%;opacity:0;transform:rotate(-4deg);transition:opacity .6s}
.language-moment .languages button[aria-pressed=true]{color:#ffe8d9;background:#69405251;border-bottom-color:#e2acbd}.language-moment .languages button.remembered:before{opacity:1}
.language-moment .languages button[lang=ja],.language-moment .languages button[lang=ko]{font-family:'Yu Mincho','Malgun Gothic',serif;font-size:17px;font-style:normal}
.language-meaning{font-family:'Reenie Beanie',cursive;font-size:32px;line-height:1.05;color:#e5b5c8;text-align:center;max-width:600px;min-height:70px;margin:31px auto 0;text-wrap:balance}
.language-count{font-family:'Sora',sans-serif;font-size:6px;letter-spacing:.2em;color:#b58d9f;margin-top:12px}

/* Las fotos pertenecen al mismo pequeño universo de luz y tinta. */
.memory-mount{padding:4px;background:#2c1b29;border:1px solid #d2ad9a9c;border-radius:43% 43% 4px 4px / 23% 23% 4px 4px;box-shadow:0 18px 40px #0008}
.memory-mount>img{border-radius:inherit;filter:sepia(.12) saturate(.78) contrast(1.04) brightness(.96)}
.memory-mount:before{inset:-8px;background:none;border:1px solid #d7a2b43d;border-radius:inherit;width:auto;height:auto;rotate:0deg;pointer-events:none}
.memory-mount:after{color:#efd0ac}.memory-frame>.memory-echo{border-color:#9a7d84;border-width:2px;border-radius:35% 35% 2px 2px / 18% 18% 2px 2px;filter:sepia(.15) saturate(.65);opacity:.65}
.memory-inscription{color:#e5bccb;top:calc(100% + 14px)}
.photo,.photo.current{transition:opacity 1.85s cubic-bezier(.23,.64,.3,1)}
.memory-glow{position:absolute;inset:0;pointer-events:none;border-radius:inherit;background:linear-gradient(115deg,transparent 5%,#c78d7c35 37%,#e3c5a84d 49%,#a56d9a1f 65%,transparent 86%);mix-blend-mode:screen;opacity:0}
.photo.current .memory-glow{animation:memory-light 1.9s ease both}
.photo-words .word-ink{animation-delay:calc(var(--word-delay) + 450ms)}
@keyframes memory-light{0%{opacity:0}35%{opacity:.75}100%{opacity:0}}
.letter{background:#140e18;border-color:#d9a2b64d}.letter-portrait{background:radial-gradient(ellipse at 55% 50%,#57324170,transparent 70%),#140e18;border-bottom-color:#c995aa35}
.letter-photo{padding:4px 4px 31px;background:none;border:1px solid #d6ad969c;border-radius:44% 44% 5px 5px / 22% 22% 5px 5px;box-shadow:0 16px 34px #0005;rotate:-4deg}
.letter-photo:before{inset:-7px;width:auto;height:auto;background:none;border:1px solid #c78da340;border-radius:inherit;rotate:0deg;pointer-events:none}
.letter-portrait .letter-photo img{border-radius:44% 44% 3px 3px / 28% 28% 3px 3px;background:#251723;filter:sepia(.1) saturate(.77) contrast(1.04)}
.letter-photo figcaption{color:#e6b8c8;font-size:21px;bottom:7px}.letter-photo.secondary{rotate:6deg}.letter-photo.secondary figcaption{color:#dec0c4}
.letter-body{background:linear-gradient(90deg,transparent 18px,#c997ac12 19px,transparent 20px)}
.letter-body>.letter-cover-note{font-size:36px;line-height:1.02;color:#d6adbf;max-width:550px}
.letter h1{font-size:80px;color:#f0c5d4}.letter #letterText p{font-size:23px;line-height:1.5;color:#ead9d3}.letter #letterText p:first-child{font-size:26px}
.letter-quote{border-top-color:#c694aa4d;border-bottom-color:#c694aa4d;background:radial-gradient(ellipse,#9a596f0e,transparent 72%);padding:28px 17px;font-size:39px;line-height:1.05}
.letter-scene{background:#211422;border:1px solid #c9a18e91;border-radius:2px;padding:5px 5px 50px;rotate:-.6deg;box-shadow:0 12px 30px #0005}
.letter-scene:before,.letter-scene:after{top:5px;bottom:50px;width:4px;height:auto;background:repeating-linear-gradient(0deg,transparent 0 9px,#e6c6bc50 9px 13px,transparent 13px 21px);rotate:0deg}
.letter-scene:before{left:-9px}.letter-scene:after{right:-9px}.letter-scene>figcaption{color:#e9bfce}.letter-scene>img{aspect-ratio:2/1;object-fit:contain;background:#08060b}
.letter-keepsakes{gap:12px}.keepsake-shot img{outline-color:#b98d9f80;outline-offset:3px;aspect-ratio:1.6;opacity:.67}
.letter-memories{gap:8%;margin:54px -10px 44px}.letter-memories figure{background:#271927;border:1px solid #cfaa9796;border-radius:42% 42% 3px 3px / 21% 21% 3px 3px;padding:4px 4px 31px;box-shadow:0 12px 22px #0005}
.letter-memories img{border-radius:42% 42% 2px 2px / 25% 25% 2px 2px;background:#271927;filter:sepia(.13) saturate(.75) contrast(1.04)}
.letter-memories figcaption{color:#e1b1c3;bottom:8px}.letter-language-ribbon{display:flex;flex-wrap:wrap;gap:15px 20px;justify-content:center;margin:42px 0 30px;padding:20px 0;border-top:1px solid #b7809936;border-bottom:1px solid #b7809936;color:#d3b1c0;font-family:'Cormorant Garamond',serif;font-style:italic;font-size:19px}
.letter-language-ribbon [lang=ja],.letter-language-ribbon [lang=ko]{font-family:serif;font-style:normal;font-size:12px;align-self:center}
.letter .letter-ending em{font-size:56px}.letter .save-memory{color:#e9c6b0}
.cinema-mode .frame-header{opacity:.35}.cinema-mode .global-controls{border-color:#e0b2bd80}.cinema-mode .screen{inset:0}.cinema-mode .letterbox{border:0}

@media(max-width:700px){
 .preparation-title{font-size:43px}.preparation-orbit{width:165px;height:165px}
 .global-controls{right:8px;padding:3px;gap:0}.global-controls .icon-button{width:36px;height:44px}.global-controls .icon-button svg{width:16px;height:16px}
 .music-dock{left:13px;max-width:calc(100vw - 143px);gap:7px;padding:6px}.cover-link{width:35px;height:35px}.music-dock .icon-button{width:26px;flex-shrink:0}#songTitle{font-size:9px}
 .flow-button{top:60px;padding:4px 9px;font-size:20px;left:6%}.last-reel{right:6%;padding-right:7px;top:69px}.last-reel span{font-size:21px}
 .continue{width:49px;height:56px}.next-caption{font-size:18px}.story-navigation{right:6%;bottom:118px;gap:9px}.previous-note{width:38px;min-width:38px;height:44px}
 .credits-button{right:8px;bottom:80px;min-height:33px;min-width:40px}
 .collection.teaser{left:20%;right:20%;bottom:25%;gap:9%;display:flex}.collection.teaser .collected-stamp svg{width:24px;height:24px}
 .collected-scene{width:43px;height:43px}.collection:not(.teaser) .collected-stamp svg{top:29px;right:calc(50% - 31px);width:20px;height:20px;padding:3px}.collection:not(.teaser) .collected-stamp:after{top:22px}
 body[data-world=prologo] .words .line{font-size:42px;line-height:1.02}body[data-world=todavia] .words .line{font-size:41px;line-height:1.05}
 .threshold>span{font-size:35px;max-width:78vw}.threshold:after{top:66%}
 .words.language-words{top:24%}.words.language-words .line{font-size:39px;line-height:1.04}
 .language-moment{left:10%;right:10%;top:39%;bottom:23%}.language-moment .languages{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px}.language-moment .languages button,.language-moment .languages button:nth-child(n){font-size:25px;min-height:44px;padding:8px 3px}.language-moment .languages button:last-child{grid-column:1/-1;justify-self:center;min-width:43%}.language-moment .languages button[lang=ja],.language-moment .languages button[lang=ko]{font-size:14px}
 .language-meaning{font-size:26px;line-height:1.02;min-height:65px;margin-top:24px}.language-count{margin-top:7px}
 .memory-inscription{font-size:22px}.letter-photo figcaption{font-size:17px}.letter-body>.letter-cover-note{font-size:31px;max-width:280px}.letter h1{font-size:66px}
 .letter #letterText p{font-size:21px;line-height:1.49}.letter #letterText p:first-child{font-size:23px}.letter-quote{font-size:32px;padding:24px 7px}
 .letter-scene{padding-bottom:44px}.letter-scene:before,.letter-scene:after{bottom:44px;width:3px}.letter-scene:before{left:-7px}.letter-scene:after{right:-7px}
 .letter-memories{gap:7%;margin:40px -5px 25px}.letter-memories figure{padding:3px 3px 27px}.letter-memories figcaption{font-size:18px;bottom:6px}
 .letter-language-ribbon{font-size:17px;gap:12px 17px;margin:31px 0 25px}.letter-language-ribbon [lang=ja],.letter-language-ribbon [lang=ko]{font-size:10px}.letter .letter-ending em{font-size:45px}
}
@media(orientation:landscape) and (max-height:580px){
 .preparation-coordinate{margin-bottom:0}.preparation-orbit{width:110px;height:110px}.preparation-title{font-size:35px;margin:10px 0 14px}.preparation-status{font-size:7px}#preparationPercent{font-size:33px}
 .flow-button{top:53px;left:5%;min-height:36px;font-size:20px}.global-controls{right:5%;padding:2px}.global-controls .icon-button{width:37px;height:38px}.music-dock{max-width:min(240px,32vw);left:5%}
 .story-navigation{right:calc(5% + 154px);bottom:12px}.continue{width:42px;height:48px;grid-template-rows:23px 16px}.next-caption{font-size:17px}.previous-note{min-height:38px;height:38px;min-width:33px;width:33px}
 .credits-button{bottom:12px;right:calc(5% + 121px);min-width:32px;min-height:35px;font-size:9px}
 .last-reel{top:54px;right:5%;font-size:20px}.collection.teaser{left:34%;right:34%;bottom:23%;display:flex}
 body[data-world=prologo] .words{top:44%}body[data-world=prologo] .words .line,body[data-world=todavia] .words .line{font-size:42px}
 .words.language-words{top:27%}.words.language-words .line{font-size:39px;line-height:1}.language-moment{left:15%;right:15%;top:46%;bottom:20%}.language-moment .languages{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.language-moment .languages button,.language-moment .languages button:nth-child(n){font-size:25px;min-height:40px;padding:6px 4px}.language-moment .languages button:last-child{grid-column:auto;justify-self:stretch;min-width:0}.language-moment .languages button[lang=ja],.language-moment .languages button[lang=ko]{font-size:13px}.language-meaning{font-size:25px;min-height:35px;max-width:540px;margin-top:19px}.language-count{margin-top:5px}
 .letter-body>.letter-cover-note{font-size:34px;max-width:500px}.letter-photo figcaption{font-size:20px}
}
@media(prefers-reduced-motion:reduce){.threshold,.orbit-progress{transition:none}.word-ink{animation:none}}
#story{z-index:10}
@media(prefers-reduced-motion:reduce){.memory-glow{display:none}.photo,.collected-stamp{transition:none}}
@media(max-width:700px){
 .global-controls .icon-button{width:44px;height:44px}
 .music-dock{max-width:calc(100vw - 169px)}
}
@media(orientation:landscape) and (max-height:580px){
 .global-controls .icon-button{width:44px;height:44px}
 .story-navigation{right:calc(5% + 196px)}
 .continue{width:44px;height:48px}.previous-note{width:44px;min-width:44px;height:44px}
 .credits-button{right:calc(5% + 144px);width:44px;height:44px}
 .language-moment .languages button[lang=de]{font-size:20px;white-space:nowrap;letter-spacing:-.01em;padding-inline:2px}
}
