/* The adventure continues below the cast: one atmosphere, four distinct scenes. */
.world-site{background:#101a29}
.world-play,.world-gallery,.world-download,.world-faq{position:relative;isolation:isolate;color:var(--cream);scroll-margin-top:0}
.chapter-kicker{display:flex;align-items:center;gap:18px;color:var(--gold);font:11px/1.5 var(--body);letter-spacing:.2em}
.chapter-kicker>span{display:grid;place-content:center;width:34px;height:34px;border:1px solid #f4c86770;font-size:12px;letter-spacing:0;transform:rotate(-4deg)}
.chapter-lead{font-size:16px;line-height:2.15;color:#d4dcd8;letter-spacing:.025em}
.world-play h2,.world-gallery h2,.world-download h2,.world-faq h2{font-family:var(--display);letter-spacing:-.055em}
.world-play h2 em,.world-gallery h2 em,.world-download h2 em{color:var(--gold)}
.world-play{padding:125px max(6%,calc((100% - 1280px)/2)) 0;background:#10262b;overflow:hidden}
.play-scenery{position:absolute;inset:0;z-index:-2;background:linear-gradient(180deg,#131e34 0%,#142b30ad 24%,#102b2cad 64%,#111e2c 100%),linear-gradient(90deg,#0d242af5 5%,#0e252c99 55%,#10242b38),var(--forest-image, none) center 52%/cover}
.play-scenery:after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 76% 28%,#8fdbac16,transparent 45%),repeating-linear-gradient(120deg,transparent 0 12%,#fff4be03 13%,transparent 20%);pointer-events:none}
.chapter-watermark{position:absolute;bottom:90px;left:-35px;font:390px/1 var(--display);color:#a6cbb509;-webkit-text-stroke:1px #d7e2b211;z-index:-1;pointer-events:none}
.play-layout{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:70px}
.play-intro{padding:8px 0 35px}
.world-play h2{font-size:clamp(43px,4.2vw,65px);line-height:1.37;margin:30px 0}
.play-intro .chapter-lead{max-width:33em}
.play-steps{list-style:none;padding:0;margin:37px 0 0;display:grid;gap:24px}
.play-steps li{display:flex;gap:17px;align-items:flex-start}
.play-steps li>span{font:11px/28px var(--body);letter-spacing:.05em;color:#f0d99e;flex:none;width:30px;text-align:center;border-bottom:1px solid #e2c98499}
.play-steps h3{font:17px/1.8 var(--display);letter-spacing:-.03em;color:#f9f2de}
.play-steps p{font-size:13px;line-height:1.9;color:#bdcece;margin-top:3px}
.play-invitation{margin-top:30px;color:var(--gold);font-size:14px;letter-spacing:.08em}
.play-invitation>span{font-size:26px;display:inline-block;margin-left:22px}
.world-play .demo{margin:0;width:100%;max-width:570px;outline:0;border:1px solid #d9c68b75;background:#152934;box-shadow:0 35px 90px #03151c70,0 0 60px #a8d4970b;border-radius:8px;overflow:hidden}
.world-play .demo:after{display:none}
.world-play .demo-label{background:#122532e6;padding:15px 22px;border-color:#f4c86732;font-size:10px}
.world-play .demo-label span{color:#e2d6b7;font-size:11px}
.world-play .demo-puzzles{background:#152b35;padding:10px 15px;border-color:#e1cd9030}
.world-play .demo-puzzles button{min-height:38px;font-size:12px}
.world-play .demo-scene{height:265px;background-image:linear-gradient(0deg,#152934,transparent 65%),var(--forest-image, none)}
.world-play .demo[data-enemy=boss] .demo-scene{background-image:linear-gradient(0deg,#152934,transparent 65%),var(--office-image, none)}
.world-play .demo-scene img{height:256px;width:192px;left:calc(50% - 96px)}
.world-play .demo-impact{top:50%;font-size:36px;line-height:1.04;color:#fff;-webkit-text-stroke:6px #090d15;paint-order:stroke fill;text-shadow:0 3px 0 #090d15,0 6px 10px #0009;transform:translateY(-50%) rotate(-10deg);pointer-events:none}
.world-play .demo-controls{padding:0 30px 19px}
.world-play .demo-result{border-color:#d3c08435;margin-bottom:14px}
.world-play .demo-result p{font-size:13px}
.world-play .letter-choices{gap:12px;width:min(100%,330px)}
.world-play .letter-choices.eight-letters{width:min(100%,370px)}
.world-play .letter-choices button{min-height:59px;border-color:#efe3bf;border-radius:5px}
.world-play .letter-choices button>span{font-size:32px}
.world-play .demo-foot{font-size:11px}
.world-play .demo-caption{font-size:10px}
.chapter-end{display:flex;align-items:center;justify-content:center;gap:24px;margin-top:85px;padding:28px 0;color:#bdc9ba;font:10px/1.6 var(--body);letter-spacing:.25em;border-top:1px solid #bdc28f30}
.chapter-end:before,.chapter-end:after{content:'';height:1px;max-width:180px;flex:1;background:linear-gradient(90deg,transparent,#e0c88a45)}
.chapter-end:after{transform:scaleX(-1)}
.chapter-end b{font-size:18px;font-weight:400;color:var(--gold)}

/* One large game scene at a time. All content remains available without JavaScript. */
.world-gallery{background:#111e2c;padding:85px 0 0;overflow:clip}
.gallery-intro{max-width:1280px;margin:0 auto 36px;padding:0 0 0 0;display:grid;grid-template-columns:1.3fr 1fr;gap:24px 48px;align-items:end}
.gallery-intro .chapter-kicker{grid-column:1/-1}
.world-gallery h2{font-size:clamp(36px,3.3vw,50px);line-height:1.55}
.world-gallery h2 em{display:block}
.gallery-intro .chapter-lead{font-size:15px;padding-bottom:10px}
.scene-navigation{display:flex;align-items:center;gap:22px;border-top:1px solid #d9c89033;padding:12px max(6%,calc((100% - 1280px)/2));position:sticky;top:84px;z-index:4;background:#111e2cf5;backdrop-filter:blur(14px)}
.scene-navigation>button{background:transparent;border:1px solid #b8c6cb55;color:#f6dda3;width:46px;height:46px;font-size:22px;transition:background .2s,border-color .2s;flex:none}
.scene-navigation>button:disabled{opacity:.3}
.scene-navigation>button:not(:disabled):hover{background:#f4c8671a;border-color:var(--gold)}
.scene-pages{display:flex;gap:28px;flex:1;justify-content:center}
.scene-pages button{position:relative;min-height:48px;padding:8px 20px;border:0;background:transparent;color:#b5c4ca;font-size:15px;letter-spacing:.12em;transition:color .2s}
.scene-pages button small{font-size:11px;letter-spacing:.1em;margin-right:16px;color:#bac2b0}
.scene-pages button:after{content:'';position:absolute;left:20px;right:20px;bottom:1px;height:2px;background:var(--gold);transform:scaleX(0);transition:transform .3s}
.scene-pages button[aria-current]{color:#fff3cb}
.scene-pages button[aria-current]:after{transform:scaleX(1)}
.scene-gallery{display:flex;gap:0;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain}
.scene-gallery::-webkit-scrollbar{display:none}
.scene-panel{position:relative;isolation:isolate;flex:0 0 100%;min-width:0;margin:0;scroll-snap-align:center;scroll-snap-stop:always;overflow:hidden;background:#12232f}
.scene-landscape{position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,#10232bf2 6%,#10232ba8 42%,#12262e36 70%,#10232b9c),linear-gradient(180deg,#111e2c88,transparent 30%,#111e2c88),var(--forest-image, none) center 48%/cover}
.scene-result .scene-landscape{background-image:linear-gradient(90deg,#1c2034f0 6%,#1c2034c9 42%,#1c203440 70%,#1c203488),linear-gradient(180deg,#111e2c88,transparent 30%,#111e2c88),var(--world-image, none);background-position:center,center,center 48%}
.scene-codex .scene-landscape{background-image:linear-gradient(90deg,#23262af5 6%,#23262ac9 42%,#23262a40 70%,#23262a88),linear-gradient(180deg,#111e2c88,transparent 30%,#111e2c88),var(--library-image, none);background-position:center,center,center 48%}
.scene-inner{max-width:1280px;margin:auto;min-height:720px;display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center;padding:45px 0 55px}
.scene-copy{position:relative;z-index:1;margin:0}
.scene-label{color:var(--gold);font-size:12px;letter-spacing:.25em;display:flex;align-items:center;gap:22px}
.scene-label>span{font:21px/1 var(--body);letter-spacing:0;opacity:.85}
.scene-copy h3{font:clamp(40px,4vw,63px)/1.5 var(--display);letter-spacing:-.05em;margin:27px 0}
.scene-copy h3 em{color:var(--gold)}
.scene-copy>p:not(.scene-label):not(.scene-footnote){font-size:16px;line-height:2.25;color:#e0e4e0}
.scene-rule{display:block;width:52px;height:2px;background:var(--gold);margin:38px 0 25px}
.scene-footnote{color:#cbd2cd;font:10px/1.7 var(--body);letter-spacing:.2em}
.scene-footnote>span{margin-left:35px;color:var(--gold)}
.scene-art{position:relative;display:flex;justify-content:center;align-items:center;min-width:0;padding:0 40px}
.scene-kanji{position:absolute;right:3%;top:55px;color:#fbe8ad12;-webkit-text-stroke:1px #fae3b34d;font:clamp(230px,26vw,415px)/1 var(--display);z-index:-1;pointer-events:none}
.scene-vertical{position:absolute;right:4px;top:30px;writing-mode:vertical-rl;letter-spacing:.2em;font:20px/1.5 var(--display);color:#fff1c9;text-shadow:0 2px 12px #091a2c}
.scene-phone{position:relative;width:266px;flex:none;max-width:100%;border:1px solid #d2d3bc;border-radius:30px;padding:6px;background:#152131;box-shadow:0 32px 55px #06101799,3px 5px 0 #a1a69580;transform:rotate(3deg);transition:transform .35s,box-shadow .35s}
.scene-phone:after{content:'';position:absolute;inset:-12px;border:1px solid #f4d89a30;border-radius:40px;pointer-events:none}
.scene-phone img{width:100%;height:auto;border-radius:24px}
.scene-result .scene-phone{transform:rotate(-3deg)}
.scene-zoom{display:flex;align-items:center;gap:24px;justify-content:center;position:absolute;bottom:25px;left:50%;transform:translateX(-50%);white-space:nowrap;font-size:11px;background:#102032f2;border:1px solid #ccb477;color:#fff0c8;padding:7px 15px;border-radius:20px}
.scene-zoom b{font-size:16px;font-weight:400}
.scene-phone:hover,.scene-phone:focus-visible{transform:rotate(0) translateY(-5px);box-shadow:0 36px 65px #030b1799}
.gallery-meta{display:flex;justify-content:space-between;max-width:1280px;margin:auto;padding:18px 0;color:#b6c5ce;font-size:11px;letter-spacing:.04em;border-bottom:1px solid #bdc9cd22}

/* An illustrated epilogue, followed by a quieter information layer. */
.world-download{overflow:hidden;background:#101a2b;padding:140px max(6%,calc((100% - 1280px)/2)) 95px;text-align:center}
.epilogue-scenery{position:absolute;inset:0;z-index:-2;background:linear-gradient(180deg,#111e2c 0%,#111e2c2e 25%,#111b2b40 54%,#101a2b 100%),linear-gradient(90deg,#111b2b8c,#111b2b33 50%,#111b2b8c),var(--world-image, none) center 37%/cover}
.epilogue-scenery:after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 35%,#ffcf5711,transparent 60%);pointer-events:none}
.epilogue-content{max-width:1000px;margin:auto}
.epilogue-content .chapter-kicker{justify-content:center}
.epilogue-prelude{font-size:16px;color:#fff1d7;letter-spacing:.15em;margin-top:48px;text-shadow:0 2px 18px #101a2b}
.world-download h2{font-size:clamp(48px,5vw,78px);line-height:1.5;margin:22px 0 27px;text-shadow:0 3px 25px #101a2b88}
.epilogue-content>p:not(.chapter-kicker):not(.epilogue-prelude):not(.release-note){font-size:16px;color:#f4e5c7;letter-spacing:.07em}
.epilogue-content>p>span{font-size:12px;margin-left:14px}
.world-download .official-store-group{margin-top:42px}
.world-download .store-availability{font-size:12px;letter-spacing:.12em;color:#ffebbc;margin-bottom:16px}
.world-download .release-note{font-size:12px;line-height:2.1;color:#ccd4da;margin-top:22px}
.world-download .game-spec{max-width:920px;margin-top:75px;font-size:13px;grid-template-columns:1fr 1fr;gap:0 48px;border-color:#ebd29d55}
.world-download .game-spec>div{padding:17px 0;border-color:#ebd29d33;gap:25px}
.world-download .game-spec dt{color:#bdc9d2;min-width:72px}
.world-download .game-spec dd{color:#f4e9d7}
.world-download .game-spec small{font-size:11px}
.world-faq{display:grid;grid-template-columns:.85fr 1.3fr;gap:75px;background:#101a2b;padding:35px max(6%,calc((100% - 1280px)/2)) 100px}
.world-faq h2{font-size:32px;margin-top:24px;line-height:1.6}
.world-faq .chapter-kicker{font-size:10px;letter-spacing:.14em}
.world-faq .faq-list details,.world-faq .faq-list details:first-child{border-color:#cabd982e}
.world-faq .faq-list summary{font-size:15px;line-height:1.8;padding:25px 0;color:#f6eddc}
.world-faq .faq-list summary span{color:var(--gold);font-size:22px}
.world-faq .faq-list details p{font-size:14px;color:#bdcbd5;line-height:2.1;padding-right:25px}
.world-faq .faq-list details[open]{background:linear-gradient(90deg,transparent,#f4c86704)}
.world-site .site-footer{border-top:1px solid #ead29c20;background:#0c1422}

@media(min-width:761px) and (max-width:1450px){
 .gallery-intro,.scene-inner,.gallery-meta{margin-left:6%;margin-right:6%}
 .play-layout{gap:45px}.world-play h2{font-size:clamp(39px,4.2vw,60px)}.play-steps h3{font-size:16px}.play-steps p{font-size:12px}
 .scene-inner{gap:45px}.scene-copy h3{font-size:clamp(39px,4vw,58px)}.scene-copy>p:not(.scene-label):not(.scene-footnote){font-size:14px}
}
@media(min-width:761px) and (max-width:1000px){
 .world-play .demo-impact{font-size:30px;-webkit-text-stroke-width:5px}
 .world-play{padding-top:95px}.play-layout{gap:28px;grid-template-columns:.95fr 1.05fr}.world-play h2{font-size:38px}.chapter-lead{font-size:13px}.play-steps li{gap:11px}.play-steps h3{font-size:14px}.play-steps p{font-size:11px}.play-invitation{font-size:12px}
 .world-play .demo-controls{padding:0 18px 16px}.world-play .demo-label{padding:12px 14px}.world-play .demo-label span{font-size:9px}.world-play .demo-puzzles{padding:8px}.world-play .demo-puzzles button{padding:3px 8px;font-size:10px}.world-play .demo-scene{height:228px}.world-play .demo-scene img{height:220px;width:166px;left:calc(50% - 83px)}.world-play .demo-result p{font-size:12px}.world-play .letter-choices button{min-height:52px}.world-play .letter-choices button>span{font-size:28px}
 .gallery-intro{gap:24px;grid-template-columns:1.1fr 1fr}.world-gallery h2{font-size:33px}.gallery-intro .chapter-lead{font-size:13px}.scene-inner{gap:18px;min-height:640px}.scene-copy h3{font-size:39px}.scene-copy>p:not(.scene-label):not(.scene-footnote){font-size:12px}.scene-phone{width:228px}.scene-art{padding:0 30px}.scene-vertical{font-size:16px;right:-8px}.world-faq{gap:35px;grid-template-columns:.9fr 1.2fr}.world-faq .chapter-kicker{font-size:8px;gap:12px}
}
@media(max-width:760px){
 .world-play .demo-impact{font-size:24px;-webkit-text-stroke-width:4px;text-shadow:0 2px 0 #090d15,0 4px 7px #0009}
 .chapter-kicker{font-size:9px;gap:13px;letter-spacing:.16em}.chapter-kicker>span{width:29px;height:29px;font-size:10px}.chapter-lead{font-size:13px;line-height:2.1}
 .world-play{padding:80px 24px 0}.play-scenery{background:linear-gradient(180deg,#131e34,#152e36a8 25%,#10262bce 75%,#111e2c),var(--forest-image, none) center 30%/auto 100%}.chapter-watermark{font-size:270px;left:-50px;top:110px;bottom:auto}
 .play-layout{grid-template-columns:1fr;gap:28px}.play-intro{padding:0}.world-play h2{font-size:clamp(31px,8.6vw,47px);line-height:1.5;margin:24px 0 23px}.desktop-break{display:none}.play-steps{grid-template-columns:repeat(3,1fr);gap:17px;margin-top:27px}.play-steps li{display:block;border-top:1px solid #dfcc984d;padding-top:10px}.play-steps h3{font-size:12px;line-height:1.9;margin-top:5px}.play-steps p{display:none}.play-steps li>span{font-size:9px;width:auto;line-height:22px;border:0}.play-invitation{font-size:13px;letter-spacing:.05em;margin-top:18px}.play-invitation>span{font-size:23px}
 .world-play .demo{width:100%;max-width:480px;justify-self:center;border-radius:6px}.world-play .demo-label{padding:10px 13px;font-size:9px}.world-play .demo-label span{font-size:9px}.world-play .demo-puzzles{gap:6px;padding:6px 8px}.world-play .demo-puzzles button{min-height:34px;font-size:10px;padding:3px 8px}.world-play .demo-scene{height:170px}.world-play .demo-scene img{height:174px;width:137px;left:calc(50% - 68.5px)}.world-play .demo-controls{padding:0 15px 12px}.world-play .demo-result{min-height:96px;margin-bottom:12px;padding:10px 0}.world-play .demo-result p{font-size:11px}.world-play .demo-result strong{font-size:16px}.world-play .letter-choices,.world-play .letter-choices.eight-letters{width:min(100%,285px);gap:9px}.world-play .letter-choices button{min-height:49px}.world-play .letter-choices button>span{font-size:27px}.world-play .demo-foot{font-size:10px;min-height:34px}.world-play .demo-caption{font-size:8px}
 .chapter-end{margin-top:55px;padding:22px 0;gap:12px;font-size:8px;letter-spacing:.13em}.chapter-end b{font-size:15px}
 .world-gallery{padding-top:65px}.gallery-intro{display:block;margin:0 24px 25px;text-align:left}.world-gallery h2{font-size:clamp(29px,8vw,40px);line-height:1.55;margin:23px 0}.gallery-intro .chapter-lead{font-size:13px;line-height:2.1;padding:0}.scene-navigation{top:65px;padding:9px 24px;gap:4px;border-bottom:1px solid #d9c89033}.scene-navigation>button{width:38px;min-width:38px;height:44px;font-size:18px;border:0}.scene-pages{gap:0}.scene-pages button{padding:8px 12px;font-size:13px;letter-spacing:.04em}.scene-pages button small{display:block;margin:0 0 2px;font-size:9px}.scene-pages button:after{left:10px;right:10px;bottom:0}
 .scene-inner{display:flex;flex-direction:column;align-items:stretch;gap:38px;min-height:0;padding:40px 26px 50px}.scene-copy{order:2;padding:0 0 0 4px}.scene-label{font-size:9px;gap:12px}.scene-label>span{font-size:15px}.scene-copy h3{font-size:clamp(31px,9vw,43px);line-height:1.5;margin:15px 0}.scene-copy h3 br{display:none}.scene-copy h3 em{display:block}.scene-copy>p:not(.scene-label):not(.scene-footnote){font-size:12px;line-height:2}.scene-rule,.scene-footnote{display:none}
 .scene-art{padding:0 35px;max-width:390px;width:100%;margin:auto}.scene-phone{width:218px;border-radius:26px;padding:5px}.scene-phone img{border-radius:21px}.scene-phone:after{inset:-9px;border-radius:34px}.scene-vertical{top:20px;right:0;font-size:15px;letter-spacing:.17em}.scene-kanji{top:auto;bottom:280px;right:-7px;font-size:240px}.scene-zoom{bottom:20px;font-size:10px;padding:5px 13px;gap:15px}.scene-landscape{background-image:linear-gradient(180deg,#111e2c,#10232b40 48%,#111e2cd9),linear-gradient(90deg,#10232b88,transparent 60%),var(--forest-image, none);background-position:center,center,center 45%}.scene-result .scene-landscape{background-image:linear-gradient(180deg,#111e2c,#1c203438 48%,#111e2cd9),linear-gradient(90deg,#1c203499,transparent 60%),var(--world-image, none)}.scene-codex .scene-landscape{background-image:linear-gradient(180deg,#111e2c,#23262a38 48%,#111e2cd9),linear-gradient(90deg,#23262a99,transparent 60%),var(--library-image, none)}
 .gallery-meta{margin:0 24px;font-size:9px;letter-spacing:0;padding:15px 0;gap:12px}.gallery-meta>span:first-child{font-size:8px}
 .world-download{padding:95px 24px 60px}.epilogue-scenery{background-image:linear-gradient(180deg,#111e2c,#111b2b44 22%,#111b2b77 58%,#101a2b 88%),var(--world-image, none);background-position:center,center 35%}.epilogue-prelude{font-size:12px;letter-spacing:.08em;margin-top:35px}.world-download h2{font-size:clamp(35px,10vw,54px);line-height:1.6;margin:21px 0}.epilogue-content>p:not(.chapter-kicker):not(.epilogue-prelude):not(.release-note){font-size:14px}.epilogue-content>p>span{display:block;font-size:10px;margin:5px 0 0}.world-download .official-store-group{margin-top:30px}.world-download .store-availability{font-size:10px;margin-bottom:12px}.world-download .release-note{font-size:10px;max-width:29em;margin:20px auto 0}.world-download .game-spec{font-size:12px;margin-top:45px;grid-template-columns:1fr;gap:0}.world-download .game-spec>div{padding:14px 0;gap:25px}.world-download .game-spec dt{min-width:70px}.world-download .game-spec small{font-size:10px}
 .world-faq{padding:10px 24px 70px;grid-template-columns:1fr;gap:29px}.world-faq .chapter-kicker{font-size:9px;gap:13px}.world-faq h2{font-size:26px;margin-top:20px}.world-faq .faq-list summary{font-size:13px;padding:21px 0}.world-faq .faq-list details p{font-size:12px}
}
@media(max-width:360px){
 .world-play .demo-label{padding-top:7px;padding-bottom:7px}.world-play .demo-scene{height:140px}.world-play .demo-scene img{height:145px;width:110px;left:calc(50% - 55px)}.world-play .demo-speech{font-size:10px;top:6px}.world-play .reaction-revealed .demo-speech{font-size:13px}.world-play .demo-impact{font-size:20px;-webkit-text-stroke-width:3.5px}.world-play .demo-result{min-height:84px;margin-bottom:8px;padding:7px 0}.world-play .word-tiles.insertion-slots{margin-bottom:9px}.world-play .letter-choices{margin-top:9px;margin-bottom:9px}.world-play .letter-choices button{min-height:44px}.world-play .demo-foot{min-height:29px}.world-play .demo-controls{padding-bottom:8px}
 .world-play,.world-download,.world-faq{padding-left:20px;padding-right:20px}.world-play h2{font-size:28px}.chapter-lead{font-size:11px}.play-steps h3{font-size:12px}.play-steps p{font-size:10px}.world-play .demo-label span{font-size:8px}.world-play .demo-controls{padding-left:12px;padding-right:12px}.world-play .demo-result strong{font-size:14px}.world-play .demo-result p{font-size:10px}.world-play .letter-choices button>span{font-size:25px}.world-play .demo-puzzles button{font-size:9px}.world-play .demo-puzzles>span{font-size:8px}.world-play .demo-foot{font-size:9px}.world-play .reset-demo{font-size:10px}.world-play .demo-caption{font-size:7px}
 .gallery-intro,.gallery-meta{margin-left:20px;margin-right:20px}.gallery-intro .chapter-kicker{font-size:8px;gap:10px}.world-gallery h2{font-size:27px}.gallery-intro .chapter-lead{font-size:12px}.scene-navigation{gap:0;padding-left:20px;padding-right:20px}.scene-navigation>button{width:30px;min-width:30px}.scene-pages button{padding-left:10px;padding-right:10px;font-size:12px}.scene-inner{padding:33px 22px 40px;gap:29px}.scene-copy h3{font-size:29px}.scene-copy>p:not(.scene-label):not(.scene-footnote){font-size:11px}.scene-art{padding:0 30px}.scene-phone{width:190px}.scene-vertical{font-size:13px}.scene-kanji{font-size:200px}.gallery-meta{font-size:8px}.world-download h2{font-size:31px}
}

/* Activate scenery near its section, without competing with the hero. */
[data-scenery].scenery-ready{--world-image:url('/assets/optimized/world.c3bd524074.webp');--forest-image:url('/assets/optimized/forest.b7a2b6dc17.webp');--library-image:url('/assets/optimized/library.f818e74589.webp');--office-image:url('/assets/optimized/office.0d770601f1.webp');}

/* The same five-row kana table and explicit cast action as the game. */
.world-play .letter-choices.kana-keyboard{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:5px;width:100%;margin:14px 0 9px}
.world-play .kana-keyboard button{width:100%;min-width:0;min-height:44px;height:46px;padding:0;border:1px solid #a4abc34d;border-radius:6px;color:#fffaf0;background:linear-gradient(180deg,#454d70 0%,#343b5c 42%,#20273e 100%);box-shadow:inset 0 1px 0 #ffffff1f,0 3px 0 #0c1725;transform:none}
.world-play .kana-keyboard button>span{font-size:21px;line-height:1}
.world-play .kana-keyboard button:hover{background:linear-gradient(#5d688b,#344261);border-color:#e8ce88;transform:translateY(-1px)}
.world-play .kana-keyboard button[aria-pressed=true],.keyboard-actions button[aria-pressed=true]{background:linear-gradient(#ffe599,#e9ac32);border-color:#fff2be;color:#111b2b;box-shadow:inset 0 1px 0 #fff6c3,0 2px 0 #846326;transform:translateY(1px)}
.keyboard-actions{display:grid;grid-template-columns:1.15fr .6fr .8fr 1.7fr;gap:7px}
.keyboard-actions button{min-width:0;min-height:48px;padding:8px 3px;border:1px solid #9faec447;border-radius:6px;background:linear-gradient(#3d4564,#232b42);color:#fff8e6;font:700 15px/1.3 var(--body);box-shadow:0 3px 0 #0c1725;transition:filter .15s,transform .15s}
.keyboard-actions button:hover:not(:disabled){filter:brightness(1.15)}
.keyboard-actions button:active:not(:disabled){transform:translateY(2px)}
.keyboard-actions button:disabled{opacity:.35;cursor:default;box-shadow:none}
.keyboard-actions #demo-fire{display:flex;justify-content:center;align-items:center;gap:10px;font-family:var(--display);font-size:19px;font-weight:400;background:linear-gradient(130deg,#ffe69a,#edb63f);color:#111b2b;border-color:#ffedb4;box-shadow:0 3px 0 #82602a}
.keyboard-actions #demo-fire:disabled{box-shadow:none}
.keyboard-actions #demo-fire>span{font-size:20px}
.keyboard-actions #demo-long-vowel{font-family:var(--display);font-size:22px}
.world-play .has-letter .word-tiles .letter-slot{background:var(--gold);border:2px solid #ffeab8;color:var(--ink);box-shadow:0 4px 0 #9f864a}
.world-play .demo-prompt{margin:12px 0 0}
.world-play .demo-result{min-height:98px}
@media(max-width:760px){
 .world-play .demo-controls{padding-left:10px;padding-right:10px}
 .world-play .letter-choices.kana-keyboard{gap:3px;margin-top:11px;margin-bottom:9px}
 .world-play .kana-keyboard button{height:44px;min-height:44px;border-radius:4px}
 .world-play .kana-keyboard button>span{font-size:18px}
 .keyboard-actions{gap:5px}
 .keyboard-actions button{font-size:13px;min-height:46px}
 .keyboard-actions #demo-fire{font-size:17px;gap:4px}
 .world-play .demo-result{min-height:82px;margin-bottom:9px;padding:9px 0}
 .world-play .demo-prompt{font-size:10px;margin-top:8px}
}
@media(max-width:360px){
 .world-play .demo-controls{padding-left:8px;padding-right:8px}
 .world-play .letter-choices.kana-keyboard{gap:2px}
 .world-play .kana-keyboard button>span{font-size:15px}
 .keyboard-actions button{font-size:12px}
 .keyboard-actions #demo-fire{font-size:15px}
 .world-play .demo-result strong{font-size:14px}
 .world-play .demo-caption{font-size:8px}
}

/* Keep the boss's face below every speech bubble, including multi-line replies. */
.world-play .demo[data-enemy=boss]{--boss-portrait-height:256px}
.world-play .demo[data-enemy=boss] .demo-scene{height:auto;display:flex;flex-direction:column;align-items:center;padding-top:12px}
.world-play .demo[data-enemy=boss] .demo-speech{position:relative;top:auto;left:auto;flex:none;width:max-content;max-width:calc(100% - 36px);margin:0 0 18px;transform:rotate(-2deg)}
.world-play .demo[data-enemy=boss] .demo-scene img{position:relative;left:auto;bottom:0;flex:none;height:var(--boss-portrait-height);width:calc(var(--boss-portrait-height) * .75)}
.world-play .demo[data-enemy=boss] .demo-impact{top:auto;bottom:calc(var(--boss-portrait-height) / 2);transform:translateY(50%) rotate(-10deg)}
.world-play .demo[data-enemy=boss].reaction-revealed .demo-speech{animation-name:boss-reply-pop}
@keyframes boss-reply-pop{from{transform:rotate(-2deg) scale(.9)}to{transform:rotate(-2deg) scale(1)}}
@media(min-width:761px) and (max-width:1000px){.world-play .demo[data-enemy=boss]{--boss-portrait-height:220px}}
@media(max-width:760px){.world-play .demo[data-enemy=boss]{--boss-portrait-height:174px}.world-play .demo[data-enemy=boss] .demo-scene{padding-top:10px}}
@media(max-width:360px){.world-play .demo[data-enemy=boss]{--boss-portrait-height:145px}}

/* The completed word lifts off the tiles, then accelerates into the enemy. */
.word-cast-fx{position:absolute;inset:0;z-index:8;pointer-events:none;overflow:hidden;border-radius:inherit}
.cast-projectile{position:absolute;left:0;top:0;display:flex;gap:.08em;white-space:nowrap;font:46px/1.2 var(--display);letter-spacing:0;color:#fff9e7;-webkit-text-stroke:4px #111b2b;paint-order:stroke fill;text-shadow:0 3px 0 #071320,0 0 22px #ffe3a580;transform-origin:center;will-change:transform,opacity}
.cast-projectile .cast-inserted{color:#ffdc75;text-shadow:0 3px 0 #38270b,0 0 20px #ffc956aa}
.cast-afterimage{color:#efc663;-webkit-text-stroke-width:2px;text-shadow:none}
.cast-afterimage .cast-inserted{color:inherit;text-shadow:none}
.cast-burst{position:absolute;width:0;height:0;color:#ffe7a0}
.cast-shockwave{position:absolute;left:0;top:0;width:76px;height:76px;border:3px solid currentColor;border-radius:50%;background:radial-gradient(circle,#fff3c450,transparent 65%);box-shadow:0 0 18px #f9ce7850,inset 0 0 16px #f9ce7830}
.cast-hit-spark{position:absolute;left:-2px;top:-9px;width:4px;height:18px;border-radius:50%;background:#ffefbe;transform-origin:2px 9px;box-shadow:0 0 7px #f7be66}
.cast-miss{color:#a8c2d0}
.cast-miss .cast-shockwave{border-width:2px;background:none;box-shadow:none}
.world-play .demo[data-cast=windup] .letter-slot{color:#fff3c9}
.world-play .demo[data-cast=flight] .letter-slot{color:#fff3c9}
.world-play .demo[data-cast=windup] .word-tiles,.world-play .demo[data-cast=flight] .word-tiles{opacity:.24}
.world-play .demo[data-cast=windup] .position-help,.world-play .demo[data-cast=flight] .position-help{opacity:.4}
@media(max-width:760px){.cast-projectile{font-size:40px;-webkit-text-stroke-width:3px}.cast-shockwave{width:60px;height:60px}}
@media(max-width:360px){.cast-projectile{font-size:34px}}
@media(prefers-reduced-motion:reduce){.word-cast-fx{display:none}}

/* Playable battle: the app's portrait / log / items / tiles / keypad / HP order. */
.world-play .battle-demo{max-width:440px;border-radius:22px;border:1px solid #8e99b447;background:#12152a;box-shadow:0 30px 75px #02091699,0 0 0 5px #ffffff04;color:#fff}
.world-play .battle-demo .demo-label{padding:12px 16px;background:#12152a;border:0;letter-spacing:.14em}
.world-play .battle-demo .demo-puzzles{background:#12152a;padding:0 12px 10px;border:0;gap:8px}
.world-play .battle-demo .demo-puzzles button{flex:1;border-radius:7px;border-color:#ffffff20;background:#24283d;font:700 12px/1.3 var(--body);color:#bbc2d6;min-height:36px}
.world-play .battle-demo .demo-puzzles button[aria-pressed=true]{background:#f5c54220;color:#ffe09a;border-color:#f5c5428c}
.battle-screen{position:relative;display:flex;flex-direction:column;gap:7px;padding:10px 9px 12px;min-height:745px;background:linear-gradient(180deg,#12152a12 15%,#12152a22 52%,#12152acc 100%),var(--forest-image,none) center top/cover;font-family:var(--body);overflow:hidden}
.battle-demo[data-enemy=boss] .battle-screen{background-image:linear-gradient(180deg,#12152a12 15%,#12152a22 52%,#12152acc 100%),var(--office-image,none)}
.world-play .battle-demo[data-enemy] .demo-scene{display:flex;flex-direction:column;align-items:stretch;flex:1;min-height:272px;height:auto;padding:0;background:none;overflow:visible}
.battle-enemy-hud,.battle-player-hud{background:#14182cdb;border:1px solid #ffffff12;box-shadow:0 3px 10px #0003;border-radius:12px;padding:9px 12px}
.battle-enemy-info{display:flex;align-items:center;gap:6px;margin-bottom:7px;white-space:nowrap;font-size:10px}
.battle-enemy-info strong{font-size:15px;letter-spacing:.12em;font-weight:900}
.battle-enemy-info #battle-stage{font-size:10px;color:#d5d7e0}
.battle-enemy-info #battle-enemy-hp{margin-left:auto;font-family:var(--display);font-size:10px;letter-spacing:0}
.battle-attr{display:grid;place-items:center;width:19px;height:19px;border-radius:50%;background:#4fc3f7;color:#fff;font-size:12px;font-weight:900;box-shadow:0 0 9px #4fc3f766}
.battle-demo[data-enemy=boss] .battle-attr{background:#ffcd48;color:#2a2318;box-shadow:0 0 9px #ffcd4866}
.battle-gauge{height:9px;overflow:hidden;border-radius:7px;background:#060916a8;box-shadow:inset 0 1px 2px #0008,0 0 0 1px #ffffff25;flex:1}
.battle-gauge i{display:block;height:100%;width:100%;border-radius:inherit;background:repeating-linear-gradient(90deg,transparent 0 calc(25% - 1px),#05283c50 calc(25% - 1px) 25%),linear-gradient(#85eadb,#2ec4b6 60%,#238c93);transition:width .45s cubic-bezier(.2,.65,.3,1)}
.battle-demo[data-enemy=boss] #enemy-gauge i{background:repeating-linear-gradient(90deg,transparent 0 calc(25% - 1px),#091b5350 calc(25% - 1px) 25%),linear-gradient(#9aade9,#597bc1 60%,#3a5ba0)}
.battle-portrait{position:relative;flex:1;min-height:172px;margin-top:3px;overflow:hidden}
.world-play .battle-demo[data-enemy] .demo-scene img{position:absolute;left:50%;bottom:-18px;width:178px;height:238px;max-height:none;transform:translateX(-50%);object-fit:contain;filter:drop-shadow(0 6px 10px #06142775);transform-origin:50% 90%;transition:opacity .3s}
.world-play .battle-demo[data-enemy=boss] .demo-scene img{width:160px;height:213px;bottom:-22px}
.world-play .battle-demo[data-enemy] .demo-speech{position:relative;flex:none;display:flex;align-items:center;width:100%;max-width:none;min-height:48px;left:auto;top:auto;bottom:auto;margin:0;padding:9px 14px;border:0;border-radius:15px;background:#fbf7ee;box-shadow:0 4px 10px #0004;color:#2a2318;transform:none;text-align:left;white-space:pre-line;font:700 12px/1.5 var(--body);letter-spacing:0;cursor:default;transition:background .15s}
.world-play .battle-demo .demo-speech:after{display:none}
.world-play .battle-demo .demo-speech:not(:disabled){cursor:pointer;padding-right:34px}
.world-play .battle-demo .demo-speech:not(:disabled):after{display:block;content:'';position:absolute;right:15px;left:auto;bottom:15px;width:8px;height:8px;border:0;border-right:2px solid #766744;border-bottom:2px solid #766744;transform:rotate(45deg)}
.world-play .battle-demo[data-enemy].reaction-revealed .demo-speech{font-size:13px;animation:battle-reply .24s ease-out}
@keyframes battle-reply{from{transform:scale(.96)}to{transform:scale(1)}}
.world-play .battle-demo .demo-result{flex:none;min-height:77px;margin:0 4px;padding:9px 12px;text-align:left;background:#151a30dc;border:1px solid #ffffff0d;border-radius:12px;box-shadow:0 3px 10px #0002}
.world-play .battle-demo .demo-result strong{display:block;font:700 11px/1.45 var(--body);color:#f5dc96;margin:0 0 3px}
.world-play .battle-demo .demo-result p{font:500 12px/1.55 var(--body);margin:0;color:#fff}
.world-play .battle-demo #demo-result-text>span{display:inline}
.battle-items{display:flex;align-items:center;gap:6px;padding:0 4px}
.battle-items>button{display:flex;align-items:center;justify-content:center;gap:4px;min-height:34px;min-width:0;padding:4px 7px;border:1px solid #ffffff14;border-radius:9px;background:#161a30db;color:#ffe09a;font:700 10px/1 var(--body);cursor:pointer;box-shadow:0 2px 6px #0003}
.battle-items>button .ui-icon{width:18px;height:18px}
#battle-heal .ui-icon{color:#ff83ab}
.battle-items>button:disabled{opacity:.45;cursor:default}
.battle-items>button:active:not(:disabled){transform:scale(.96)}
.battle-combo{display:flex;align-items:center;gap:6px;flex:1;min-width:0;min-height:34px;border-radius:9px;padding:5px 8px;background:#161a30db;font:10px/1 var(--body)}
.battle-combo .battle-gauge{height:6px}
.battle-combo .battle-gauge i{width:0;background:linear-gradient(#ffdd87,#e5a52c)}
.battle-combo>b{font:13px/1 var(--display)}
.world-play .battle-demo .position-help,.world-play .battle-demo .demo-prompt{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.world-play .battle-demo .word-tiles.insertion-slots{flex:none;justify-content:center;gap:5px;min-height:62px;margin:0;padding:4px 0 6px}
.world-play .battle-demo .word-tiles>[data-base-letter],.world-play .battle-demo .word-tiles>.letter-slot{display:grid;place-items:center;width:51px;height:53px;min-height:0;border:1px solid #fff5d9;border-radius:9px;background:linear-gradient(#fff,#eee8d9);color:#2a2318;box-shadow:0 4px 0 #d9cdb0;font:900 34px/1 var(--body);padding:0;transform:none}
.world-play .battle-demo .word-tiles>.letter-slot{background:linear-gradient(#ffe486,#f5c542);border-color:#ffdf79;box-shadow:0 4px 0 #c18b23,0 0 18px #ffc84040;color:#2a2318}
.world-play .battle-demo .word-tiles>button:not(.letter-slot){display:grid;place-items:center;min-height:0;width:30px;height:39px;padding:0;border:1px solid #ffffff14;border-radius:9px;background:#232941dd;box-shadow:0 2px 3px #0004;color:#b1b6c9;transform:none}
.world-play .battle-demo .word-tiles>button:disabled{cursor:default}
.world-play .battle-demo .word-tiles>button:not(:disabled):active{transform:scale(.95)}
.battle-keyboard-panel{flex:none;padding:8px 6px 7px;background:#171d33de;border:1px solid #ffffff19;border-radius:17px;box-shadow:0 4px 14px #0004}
.world-play .battle-demo .letter-choices.kana-keyboard{gap:5px;width:100%;margin:0 0 6px}
.world-play .battle-demo .kana-keyboard button{height:34px;min-height:34px;border-radius:7px;background:linear-gradient(#3a4064,#1e2238);box-shadow:inset 0 1px 0 #ffffff17,0 2px 3px #0006;border-color:#ffffff26}
.world-play .battle-demo .kana-keyboard button>span{font:900 19px/1 var(--body)}
.world-play .battle-demo .kana-keyboard button[aria-pressed=true]{background:linear-gradient(#ffe08a,#e9a820);border-color:#fff3c4;color:#2a2318}
.world-play .battle-demo .kana-keyboard button[data-hinted=true]{border-color:#f5c542;box-shadow:0 0 10px #f5c54280,inset 0 0 0 1px #f5c542}
.world-play .battle-demo .kana-keyboard button:disabled{color:#ffffff60;cursor:default;transform:none}
.world-play .battle-demo .keyboard-actions{gap:5px;grid-template-columns:3fr 2fr 2fr 4fr}
.world-play .battle-demo .keyboard-actions button{min-height:42px;font:700 13px/1.2 var(--body);border-radius:8px}
.world-play .battle-demo .keyboard-actions #demo-fire{font-family:var(--body);font-size:15px;font-weight:900;gap:4px;border:2px solid #c39535;background:linear-gradient(#ffe494,#eeb735);box-shadow:inset 0 0 0 1px #fff1b160,0 3px 0 #805a20;color:#2a2318}
.world-play .battle-demo #demo-fire>span{font-size:inherit}
.world-play .battle-demo #demo-fire .ui-icon{width:15px;height:15px}
.world-play .battle-demo .keyboard-actions #demo-fire:disabled{opacity:.5}
.battle-player-hud{display:flex;align-items:center;gap:9px;flex:none;padding:9px 12px;margin:0 4px;font-size:11px;min-height:37px}
.battle-player-hud strong{font-weight:900;letter-spacing:.08em}
.battle-player-hud b{font:11px/1 var(--display);white-space:nowrap}
#player-gauge i{background:repeating-linear-gradient(90deg,transparent 0 calc(25% - 1px),#063b2855 calc(25% - 1px) 25%),linear-gradient(#a0ffc5,#5be38a 55%,#2eae68)}
.world-play .battle-demo .demo-foot{padding:10px 14px 0;min-height:33px;font-size:10px}
.world-play .battle-demo .demo-caption{display:block;text-align:center;padding:9px 12px 12px;font:9px/1.5 var(--body);color:#a8b1c3}
.world-play .battle-demo .demo-impact,.world-play .battle-demo[data-enemy=boss] .demo-impact{top:50%;bottom:auto;left:12%;font-size:28px;transform:translateY(-50%) rotate(-8deg);-webkit-text-stroke-width:4px;z-index:2}
.world-play .battle-demo .demo-spark{top:30%;right:16%;font-size:32px}
.world-play .battle-demo[data-reaction] .demo-scene img{animation:none}
.world-play .battle-demo[data-reaction=salted] .demo-scene img{transform:translateX(-50%) scale(.76)}
.world-play .battle-demo[data-reaction=transparent] .demo-scene img{opacity:.45}
.world-play .battle-demo[data-reaction=dream] .demo-scene img{opacity:.2}
body.battle-in-view .mobile-store-bar{visibility:hidden;pointer-events:none}
@media(max-width:760px){
 .world-play .battle-demo{max-width:440px;border-radius:17px;width:calc(100% + 20px);max-width:calc(100% + 20px)}
 .battle-screen{min-height:660px;padding:8px 7px 10px;gap:6px}
 .world-play .battle-demo[data-enemy] .demo-scene{min-height:224px}
 .battle-portrait{min-height:126px}
 .world-play .battle-demo[data-enemy] .demo-scene img{width:149px;height:198px;bottom:-20px}
 .world-play .battle-demo[data-enemy=boss] .demo-scene img{width:129px;height:172px;bottom:-15px}
 .battle-enemy-info strong{font-size:13px}.battle-enemy-info #battle-stage{font-size:9px}.battle-enemy-hud{padding:8px 10px}
 .world-play .battle-demo .demo-result{min-height:75px;padding:8px 10px}
 .world-play .battle-demo .demo-result p{font-size:11px}
 .world-play .battle-demo .demo-speech{font-size:11px;min-height:46px;padding:8px 11px}
 .world-play .battle-demo[data-enemy].reaction-revealed .demo-speech{font-size:12px}
 .world-play .battle-demo .word-tiles.insertion-slots{min-height:55px}
 .world-play .battle-demo .word-tiles>[data-base-letter],.world-play .battle-demo .word-tiles>.letter-slot{width:44px;height:46px;font-size:30px}
 .world-play .battle-demo .word-tiles>button:not(.letter-slot){width:28px;height:35px}
 .world-play .battle-demo .letter-choices.kana-keyboard{gap:4px}
 .world-play .battle-demo .kana-keyboard button{height:32px;min-height:32px}
 .world-play .battle-demo .kana-keyboard button>span{font-size:18px}
 .battle-items>button{padding:4px 6px}.battle-items>button span{display:none}.battle-items>button .ui-icon{width:20px;height:20px}
 .battle-combo{gap:7px}.battle-keyboard-panel{padding:7px 5px 6px;border-radius:14px}
 .world-play .battle-demo .keyboard-actions button{min-height:40px;font-size:12px}
 .world-play .battle-demo .keyboard-actions #demo-fire{font-size:14px}
 .world-play .battle-demo .demo-impact{font-size:24px}
}
@media(max-width:360px){
 .battle-screen{min-height:633px;padding-left:5px;padding-right:5px}
 .battle-enemy-info{gap:4px}.battle-enemy-info strong{font-size:12px}.battle-enemy-info #battle-stage{font-size:8px}.battle-enemy-info #battle-enemy-hp{font-size:9px}
 .world-play .battle-demo .letter-choices.kana-keyboard{gap:3px}
 .world-play .battle-demo .kana-keyboard button{height:30px;min-height:30px}
 .world-play .battle-demo .kana-keyboard button>span{font-size:16px}
 .world-play .battle-demo .keyboard-actions #demo-fire{font-size:12px}
 .world-play .battle-demo .keyboard-actions #demo-fire .ui-icon{width:13px;height:13px}
 .world-play .battle-demo .demo-result{min-height:80px}
 .world-play .battle-demo[data-enemy] .demo-scene{min-height:204px}
 .battle-portrait{min-height:108px}
 .world-play .battle-demo[data-enemy] .demo-scene img{height:177px;width:133px}
 .world-play .battle-demo[data-enemy=boss] .demo-scene img{height:157px;width:118px}
}
.world-play .battle-demo[data-enemy] .demo-scene .battle-portrait img{height:calc(100% + 14px);width:auto;max-width:80%;bottom:-14px}

@font-face{font-family:MojiBattleUi;src:url('/assets/optimized/battle-ui.039337d0ba.woff2') format('woff2');font-weight:900;font-display:swap}
.battle-enemy-info strong,.battle-player-hud strong,.world-play .battle-demo .word-tiles>[data-base-letter],.world-play .battle-demo .word-tiles>.letter-slot,.world-play .battle-demo .kana-keyboard button>span,.world-play .battle-demo .keyboard-actions #demo-fire{font-family:MojiBattleUi,var(--body);font-weight:900}
/* Give the portrait the same visual priority as the app. */
.world-play .battle-demo .battle-portrait{min-height:195px}
@media(max-width:760px){.world-play .battle-demo .battle-portrait{min-height:168px}}
@media(max-width:360px){.world-play .battle-demo .battle-portrait{min-height:150px}}
.battle-demo .cast-projectile{font-family:MojiBattleUi,var(--body);font-weight:900}
.battle-enemy-info{line-height:1.25}
.battle-player-hud{line-height:1.2}
@media(max-width:760px) and (max-height:780px){
 .battle-screen{gap:4px}
 .world-play .battle-demo .battle-portrait{min-height:120px}
 .world-play .battle-demo .demo-result{min-height:64px;padding-top:6px;padding-bottom:6px}
 .battle-player-hud{min-height:34px;padding-top:7px;padding-bottom:7px}
}
