@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700;900&display=swap');
:root{--ink:#2c402f;--green:#31583b;--paper:#f8f5e9;--muted:#61715d;--cover:#204c42}*{box-sizing:border-box}html{scroll-behavior:auto;scroll-padding-top:90px}body{margin:0;color:var(--ink);background:var(--paper);font:16px/1.8 'M PLUS Rounded 1c','Yu Gothic',sans-serif}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit}a:focus-visible,button:focus-visible{outline:3px solid #ca8c33;outline-offset:5px}h1,h2,h3,p{margin:0}h1,h2{font-weight:800;line-height:1.5;letter-spacing:.01em;text-wrap:balance}h1{font-size:clamp(42px,4.5vw,68px)}h2{font-size:clamp(34px,3.65vw,54px)}.skip{position:fixed;top:-90px;left:20px;z-index:100;background:white;padding:10px}.skip:focus{top:10px}.topbar{height:88px;position:fixed;z-index:40;top:0;left:0;width:100%;display:flex;align-items:center;justify-content:space-between;padding:0 4.5%;gap:20px;background:linear-gradient(#f8f5e9f5,#f8f5e900)}.brand{font-size:28px;line-height:1;letter-spacing:-.06em;font-weight:900;display:flex;align-items:center;gap:10px}.brand small{font-size:10px;letter-spacing:.24em;font-weight:500;display:block;margin-top:7px}.brand-emblem{border-radius:50%;background:var(--green);color:var(--paper);width:36px;height:36px;line-height:28px;text-align:center;font-size:30px}.topbar nav{display:flex;gap:34px;font-size:14px;font-weight:700}.motion-toggle{background:#fff9;border:1px solid #74846a44;border-radius:30px;padding:8px 15px;color:var(--ink);font-size:12px;cursor:pointer}.motion-toggle span{display:inline-block;margin-right:5px}.journey{height:850svh;position:relative}.stage{height:100svh;min-height:640px;position:sticky;top:0;overflow:hidden;isolation:isolate;background:#e8efde}.world,.sky,.landscape,.world-tint,.sunlight,.scene-vignette,.copy-shade{position:absolute;inset:0;pointer-events:none}.world{overflow:hidden;opacity:0}.sky{background:linear-gradient(#bedddd,#f0efcd 70%,#7da658)}.landscape{width:110%;height:110%;max-width:none;object-fit:cover;left:-5%;top:-5%;opacity:0}.world-tint{background:linear-gradient(100deg,#15233b55,#33194877);opacity:0}.sunlight{background:radial-gradient(ellipse at 80% 10%,#ffe9a385,transparent 62%);mix-blend-mode:screen}.scene-vignette{background:linear-gradient(0deg,#273f2566,transparent 26%)}.copy-shade{z-index:7;background:linear-gradient(90deg,#f8f5e9fc,#f8f5e9e8 27%,#f8f5e970 46%,#f8f5e900 62%);pointer-events:none}.scenery,.actor-art,.enemy,.quest{background-repeat:no-repeat;pointer-events:none}.scenery{position:absolute;background-size:300% 200%;aspect-ratio:1}.cloud{width:30vw;top:9%;opacity:.8}.cloud-one{left:22%}.cloud-two{right:-4%;top:1%;width:24vw}.tree{width:47vw;bottom:7%;transform-origin:center bottom}.tree-left{left:24%;opacity:0}.tree-right{right:-16%}.bush{width:37vw;bottom:-18%;z-index:6}.bush-left{left:30%}.bush-right{right:-10%;width:43vw;bottom:-17%}.castle-wrap{position:absolute;right:3%;bottom:20%;width:45vw;aspect-ratio:1;opacity:0;transform-origin:center bottom}.castle{width:100%;height:100%;object-fit:contain}.gate-light{position:absolute;bottom:20%;left:40%;width:25%;height:35%;background:radial-gradient(#ffd87866,transparent 65%);opacity:0}.party{position:absolute;right:3%;bottom:9%;width:62%;height:47%;z-index:4;pointer-events:none}.actor{position:absolute;width:43%;aspect-ratio:3/2;bottom:0;transform-origin:50% 92%;opacity:0}.actor-art{width:100%;height:100%;background-size:200% 200%;filter:drop-shadow(0 12px 6px #1d321533)}.tanunun{left:15%;z-index:4}.mofuta{left:-6%;bottom:3%;z-index:3}.kuromaru{left:38%;bottom:3%;z-index:2}.koharun{left:61%;bottom:0;z-index:3}.ground-shadow{position:absolute;right:6%;bottom:8%;width:48%;height:6%;background:radial-gradient(ellipse,#24311855,transparent 70%)}.enemy{position:absolute;background-size:300% 100%;aspect-ratio:1/2;transform-origin:center 85%;opacity:0;z-index:3}.enemy-small{right:8%;bottom:4%;width:16vw}.enemy-boss{right:1%;bottom:5%;width:27vw}.quest{position:absolute;background-size:300% 100%;aspect-ratio:1/2;width:12vw;right:21%;bottom:24%;z-index:5;opacity:0}.treasure{right:19%;width:21vw;bottom:6%;z-index:3;opacity:0}.shield{position:absolute;right:30%;bottom:17%;width:18vw;height:21vw;border-radius:50%;border:3px solid #bceffc;background:radial-gradient(ellipse,#8de7ff33,#c9ffff11 65%,#ddffff88 72%,transparent 75%);box-shadow:0 0 20px #c6ffff77;opacity:0;z-index:5;pointer-events:none}.magic-ring{position:absolute;right:7%;bottom:10%;width:35vw;aspect-ratio:1;border:2px dashed #ffe6a0;border-radius:50%;opacity:0;z-index:5;pointer-events:none}.attack-trail{position:absolute;right:7%;bottom:23%;width:31vw;height:7px;border-radius:50%;background:linear-gradient(90deg,transparent,#fff5bd,#fff);box-shadow:0 0 16px #ffda73;opacity:0;z-index:5;transform-origin:left center}.impact{position:absolute;right:9%;bottom:18%;width:25vw;aspect-ratio:1;background:radial-gradient(circle,#fffef9 0%,#ffed9b77 22%,#ffe08811 50%,transparent 65%);opacity:0;z-index:5;pointer-events:none}.particles{position:absolute;inset:0;pointer-events:none;z-index:6}.spark{position:absolute;width:7px;height:7px;background:#ffe8a5;border-radius:2px;opacity:0}.book-area{position:absolute;right:8%;top:19%;width:39vw;height:63vh;z-index:6;perspective:1800px;pointer-events:none}.book{position:absolute;width:78%;height:100%;left:18%;transform:rotateZ(8deg) rotateY(-15deg);transform-style:preserve-3d;transform-origin:50% 50%}.book-pages{position:absolute;inset:2% -2% 0 0;border-radius:4px 18px 18px 4px;background:repeating-linear-gradient(0deg,#e0d7b9 0 1px,#fff8db 1px 4px);box-shadow:12px 18px 25px #2d3b2925;transform:translateZ(-12px);overflow:hidden;border:8px solid #e9ddba}.page-illustration{position:absolute;inset:4%;border-radius:4px;background-position:center;background-size:cover;opacity:.9}.page-corner{position:absolute;right:14px;bottom:5px;color:#a39464}.book-cover{position:absolute;inset:0;transform-origin:left center;transform-style:preserve-3d}.cover-front,.cover-back{position:absolute;inset:0;border-radius:4px 13px 13px 4px;backface-visibility:hidden}.cover-front{background:radial-gradient(ellipse at 80% 10%,#4f7960,#173c36);border:3px solid #bda56b;box-shadow:inset 12px 0 10px #061e3455,10px 8px 0 #183c31;color:#f3e4aa;padding:7%}.cover-frame{height:100%;border:1px solid #bbac7880;border-radius:2px 8px 8px 2px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:19px;position:relative}.cover-frame:before,.cover-frame:after{content:'✦';position:absolute;font-size:27px;top:11px;color:#d4c383}.cover-frame:before{left:14px}.cover-frame:after{right:14px}.cover-edition{font-size:10px;letter-spacing:.28em}.cover-frame strong{font-family:Georgia,serif;font-size:clamp(27px,3vw,50px);font-weight:400}.cover-seal{border:1px solid #c4ae72;border-radius:50%;width:clamp(70px,10vw,140px);height:clamp(70px,10vw,140px);font-size:clamp(50px,7vw,100px);font-weight:800;line-height:1.2;box-shadow:0 0 0 8px #c4ae720e,0 0 0 9px #c4ae7255}.cover-sub{font-size:13px;letter-spacing:.18em}.cover-flourish{font-size:14px;color:#c4b575}.cover-back{background:#f3e9c9;transform:rotateY(180deg);border:9px solid #eadab0;box-shadow:inset -7px 0 20px #b1a27355}.book-shadow{position:absolute;left:8%;bottom:-12%;width:90%;height:20%;background:radial-gradient(ellipse,#2d422945,transparent 70%);transform:rotate(-9deg)}.panels{position:absolute;inset:0;z-index:10;pointer-events:none}.panel{position:absolute;inset:0;display:flex;align-items:center;padding:95px 0 65px 7%;opacity:0;visibility:hidden;pointer-events:none}.panel.active{visibility:visible;pointer-events:auto}.panel-inner{width:42%;max-width:590px}.eyebrow{font-family:Arial,sans-serif;font-size:11px;letter-spacing:.2em;font-weight:700;color:#637957;margin-bottom:20px}.lead{font-size:16px;line-height:2;color:var(--muted);margin:22px 0 26px}.button{display:inline-flex;align-items:center;gap:38px;min-height:54px;border-radius:40px;padding:13px 27px;font-weight:700;font-size:15px}.primary{background:var(--green);color:#fff;box-shadow:0 5px 0 #23472d}.primary:hover{background:#234a2e}.small-note{font-size:11px;color:#68755f;margin-top:20px}.scroll-hint{display:flex;align-items:center;gap:12px;margin-top:40px;font-size:12px;color:#637457}.scroll-hint>span{width:32px;height:46px;border:1px solid #63745766;border-radius:20px;display:grid;place-items:center;font-size:19px}.friend-names{display:grid;grid-template-columns:1fr 1fr;gap:24px 12px;margin-top:28px}.friend-names>div{display:flex;gap:12px;align-items:flex-start}.friend-names strong{display:block;font-size:18px}.friend-names small{display:block;font-size:12px;color:var(--muted);margin-top:4px}.dot{border-radius:50%;width:13px;height:13px;flex:0 0 13px;margin-top:10px}.brown{background:#ad7349}.orange{background:#e19b48}.cocoa{background:#655146}.cream{background:#edbcad}.game-list{display:flex;flex-direction:column;gap:15px;margin-top:22px}.game-list article{display:grid;grid-template-columns:100px 1fr;gap:18px;padding:16px;background:#fffdf4df;border:1px solid #ced3be;border-radius:15px}.game-list img{width:100%;height:124px;object-fit:cover;border-radius:8px;background:#c6c4ad}.game-list small{font-size:10px;color:#67775c}.game-list h3{font-size:21px;line-height:1.5}.game-list p{font-size:12px;color:var(--muted);margin-top:6px}.game-links{display:flex;gap:19px;font-size:12px;font-weight:700;margin-top:10px}.game-links a:first-child{color:#fff;background:var(--green);padding:2px 14px;border-radius:20px}.game-links a:last-child{text-decoration:underline;text-underline-offset:4px}.system-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px 24px;margin-top:28px}.system-grid article{border-top:1px solid #84967755;padding-top:14px}.system-grid article>span{font-size:29px;line-height:1.2;font-weight:800;color:#658050}.system-grid h3{font-size:17px;margin:8px 0 5px}.system-grid p{font-size:12px;color:var(--muted);line-height:1.8}.guide-list{margin-top:25px}.guide-list a{border-bottom:1px solid #82957655;display:flex;justify-content:space-between;align-items:center;padding:17px 0;font-size:15px;font-weight:700}.guide-list small{display:block;font-size:10px;font-weight:400;color:var(--muted)}.guide-list b{font-size:21px;font-weight:400}.news-link{display:flex;justify-content:space-between;align-items:center;padding:22px;background:#fffbedb8;border:1px solid #98a78866;border-radius:12px;font-size:18px;font-weight:700}.news-link small{display:block;font-size:10px;letter-spacing:.18em;font-weight:500;color:#687858;margin-bottom:8px}.status-note{font-size:12px;color:#777461;margin-top:25px}.status-note>span{display:inline-block;width:7px;height:7px;border-radius:50%;background:#be9861;margin-right:6px}.login-link{display:block;width:max-content;font-size:13px;margin-top:24px;text-decoration:underline;text-underline-offset:4px}.journey-ui{position:absolute;z-index:12;bottom:20px;left:4.5%;right:4.5%;display:flex;align-items:center;gap:18px;color:#42543c;font-size:11px;pointer-events:none}.page-count{font:12px Arial,sans-serif;white-space:nowrap}.page-count b{font-size:17px}.progress-track{height:2px;background:#53664a44;width:140px}.progress-track>span{height:100%;background:#49653c;width:0;display:block;transform-origin:left}.scene-label{font-size:11px;letter-spacing:.1em}.scroll-mark{margin-left:auto;font:10px Arial,sans-serif;letter-spacing:.2em}footer{position:relative;background:var(--paper);padding:35px 5%;display:flex;align-items:center;gap:25px;justify-content:space-between;z-index:15}footer .brand{font-size:24px}footer>div{display:flex;gap:25px;font-size:12px}footer>small{font:11px Arial,sans-serif;color:#697962}.assets-loading .book{opacity:1}.is-paused .actor-art{animation:none}.no-js .journey,.is-reduced .journey{height:auto}.no-js .stage,.is-reduced .stage{height:auto;min-height:0;position:relative;overflow:visible;background:#edf0df}.no-js .world,.is-reduced .world{position:absolute;height:100svh;opacity:.4;overflow:hidden}.no-js .book-area,.is-reduced .book-area,.no-js .journey-ui,.is-reduced .journey-ui{display:none}.no-js .panels,.is-reduced .panels{position:relative}.no-js .panel,.is-reduced .panel{position:relative;visibility:visible;opacity:1!important;transform:none!important;pointer-events:auto;min-height:620px;padding:110px 7% 60px;border-bottom:1px solid #cbd2ba}.no-js .panel-inner,.is-reduced .panel-inner{width:100%;max-width:760px;margin:auto}.is-reduced .world .actor,.is-reduced .world .enemy,.is-reduced .world .scenery,.is-reduced .castle-wrap{display:none}.is-reduced .copy-shade,.no-js .copy-shade{display:none}.is-reduced .game-list{display:grid;grid-template-columns:1fr 1fr}.is-reduced .game-list article{grid-template-columns:90px 1fr}
@media(max-width:1000px){.topbar nav{gap:20px}.panel{padding-left:5%}.panel-inner{width:45%}.game-list article{grid-template-columns:74px 1fr;gap:12px;padding:12px}.game-list img{height:120px}.game-list h3{font-size:18px}.game-list p{font-size:11px}.friend-names{grid-template-columns:1fr;gap:12px}.friend-names small{display:inline;margin-left:10px}.friend-names strong{display:inline;font-size:16px}.book-area{right:6%;width:42vw;height:55vh;top:25%}.cover-frame{gap:12px}.lead{font-size:14px}.system-grid{gap:15px}.system-grid h3{font-size:15px}}
@media(max-width:650px){.topbar{height:68px;padding:0 19px;background:linear-gradient(#f8f5e9f5,#f8f5e960)}.brand{font-size:23px;gap:8px}.brand small{font-size:8px}.brand-emblem{width:29px;height:29px;font-size:24px;line-height:23px}.topbar nav{display:none}.motion-toggle{font-size:10px;padding:6px 11px}.journey{height:760svh}.stage{min-height:620px}.panel{align-items:flex-start;padding:94px 25px 0}.panel-inner{width:100%;max-width:440px}.eyebrow{font-size:9px;letter-spacing:.15em;margin-bottom:12px}h1{font-size:35px;line-height:1.48}h2{font-size:29px;line-height:1.5}.lead{font-size:13px;line-height:1.9;margin:13px 0 18px}.button{font-size:13px;min-height:45px;padding:11px 21px;gap:27px}.small-note{font-size:9px;margin-top:13px}.scroll-hint{margin-top:17px;font-size:10px;gap:9px}.scroll-hint>span{width:23px;height:32px;font-size:15px}.copy-shade{background:linear-gradient(#f8f5e9fa,#f8f5e9f0 22%,#f8f5e9a0 42%,#f8f5e900 63%)}.world .landscape{width:180%;height:100%;left:-60%;top:0;object-fit:cover}.cloud-one{left:5%;width:54vw;top:32%}.cloud-two{top:39%;width:49vw;right:-6%}.tree{width:96vw;bottom:10%}.tree-left{left:-39%}.tree-right{right:-48%}.bush{width:82vw;bottom:-9%}.bush-left{left:-32%}.bush-right{right:-34%;width:93vw;bottom:-11%}.party{width:115%;right:-6%;bottom:9%;height:29%}.actor{width:43%}.castle-wrap{width:94vw;right:-7%;bottom:20%}.enemy-small{width:31vw;bottom:6%;right:1%}.enemy-boss{width:49vw;right:-5%;bottom:6%}.quest{width:24vw;right:33%;bottom:29%}.treasure{width:43vw;right:23%;bottom:6%}.ground-shadow{width:85%;right:3%;bottom:10%}.shield{width:34vw;height:40vw;right:27%;bottom:13%}.magic-ring{width:63vw;right:2%;bottom:11%}.attack-trail{width:60vw;right:5%;bottom:22%}.impact{width:52vw;right:-4%;bottom:13%}.book-area{width:63vw;height:37svh;right:12%;top:auto;bottom:9%}.book{width:78%;left:15%}.cover-edition{font-size:7px}.cover-frame strong{font-size:24px}.cover-seal{width:67px;height:67px;font-size:52px}.cover-sub{font-size:10px}.cover-frame{gap:13px}.cover-flourish{font-size:10px}.cover-frame:before,.cover-frame:after{font-size:18px;top:3px}.friend-names{grid-template-columns:1fr 1fr;gap:13px 8px;margin-top:17px}.friend-names>div{gap:8px}.friend-names strong{font-size:14px;display:block}.friend-names small{font-size:10px;display:block;margin:1px 0 0}.dot{width:9px;height:9px;flex-basis:9px;margin-top:8px}.game-list{gap:10px;margin-top:15px;max-width:355px}.game-list article{padding:10px;gap:12px;grid-template-columns:65px 1fr;background:#fffdf4ed}.game-list img{height:89px}.game-list h3{font-size:18px}.game-list small{font-size:9px}.game-list p{font-size:10px;margin-top:1px}.game-links{font-size:10px;margin-top:5px;gap:15px}.system-grid{gap:13px 20px;margin-top:16px;max-width:345px}.system-grid article{padding-top:8px}.system-grid article>span{font-size:24px}.system-grid h3{font-size:14px;margin:4px 0}.system-grid p{font-size:10px;line-height:1.7}.guide-list{margin-top:13px;max-width:340px}.guide-list a{font-size:13px;padding:10px 0}.guide-list small{font-size:9px}.guide-list b{font-size:18px}.news-link{font-size:16px;padding:18px;max-width:345px}.news-link small{font-size:9px}.status-note{font-size:10px;margin-top:17px}.login-link{font-size:12px;margin-top:18px}.journey-ui{left:20px;right:20px;bottom:16px;gap:12px}.page-count{font-size:10px}.page-count b{font-size:14px}.progress-track{width:75px}.scene-label{font-size:9px}.scroll-mark{font-size:8px}.is-reduced .panel,.no-js .panel{min-height:0;padding:100px 25px 70px}.is-reduced .game-list{display:flex}.is-reduced .panel h2,.no-js .panel h2{font-size:30px}.is-reduced .friend-names{gap:24px}.is-reduced .system-grid p{font-size:13px}.is-reduced .guide-list a{font-size:14px}.is-reduced .book-area{display:none}footer{flex-wrap:wrap;padding:30px 22px;gap:25px}footer>div{gap:15px;font-size:11px}footer>small{width:100%}}
@media(max-height:740px) and (min-width:651px){.topbar{height:70px}.panel{padding-top:90px}.panel h2{font-size:33px}.lead{margin:15px 0}.system-grid{gap:12px;margin-top:18px}.friend-names{gap:15px}.book-area{top:22%;height:61vh}.game-list{gap:10px}.game-list img{height:100px}.game-list article{padding:10px}}
.actor,.book,.book-cover{will-change:transform}.is-reduced .actor,.is-reduced .book{will-change:auto}.no-js .game-list img{display:none}.no-js .game-list article{display:block}@media(max-width:650px){.friend-names small,.system-grid p,.game-list p,.game-links{font-size:12px}.game-list small{font-size:11px}.guide-list a{font-size:14px}}@media(max-width:650px) and (max-height:720px){.panel{padding-top:80px}h2{font-size:26px}.game-list{gap:8px;margin-top:10px}.game-list article{padding:8px}.game-list img{height:88px}.game-list p{font-size:11px}.system-grid{gap:9px 16px}.system-grid article{padding-top:6px}.system-grid p{font-size:11px}.lead{margin:10px 0 14px}.friend-names{gap:10px}.book-area{height:34svh;bottom:8%}.cover-seal{width:52px;height:52px;font-size:40px}.cover-frame{gap:8px}}
/* Every character/prop uses its own transparent file; no shared sprite crop. */
.scenery,.actor-art,.enemy,.quest{background-size:contain;background-position:center bottom}
.actor{aspect-ratio:1;width:31%}
.tanunun{left:23%}.mofuta{left:0}.kuromaru{left:47%}.koharun{left:71%}
.enemy,.quest{aspect-ratio:1}
.enemy-small{width:19vw;bottom:9%}.enemy-boss{width:34vw;bottom:9%}.quest{width:16vw}
@media(max-width:650px){.actor{width:31%}.enemy-small{width:35vw;bottom:10%}.enemy-boss{width:56vw;bottom:10%}.quest{width:29vw}.party{right:0%;width:104%}}
.is-reduced .world,.no-js .world{opacity:.16!important}
.is-reduced .panel,.no-js .panel{background:#f8f5e955}
/* Keep faces above foreground foliage and clear of the copy column. */
.party{width:54%;right:2%}
.bush-left{width:28vw;bottom:-12vw;left:39%}
.bush-right{width:30vw;bottom:-12vw;right:-7%}
@media(max-width:650px){.party{width:104%;right:0}.bush-left{width:65vw;bottom:-28vw;left:-27%}.bush-right{width:68vw;bottom:-29vw;right:-28%}}
@media(max-width:650px){.party{width:98%;right:1%}}
.treasure{z-index:5;width:17vw;right:22%;bottom:2%}
@media(max-width:650px){.treasure{width:29vw;right:35%;bottom:5%}}
@media(max-height:560px){.motion-toggle{display:none}}
@media(max-width:650px) and (max-height:720px){.scroll-hint{font-size:0;width:24px;gap:0}}
/* One close-up per scroll chapter, then shrink into the companion row. */
.journey{height:1180svh}
.friend-profiles{position:relative;min-height:310px}
.friend-profile{position:absolute;inset:0;visibility:hidden;opacity:0}
.friend-profile.current{visibility:visible}
.friend-role{font-size:16px;color:#77835e;letter-spacing:.06em;margin-bottom:7px}
.friend-profile h2{font-size:clamp(48px,5.4vw,78px)}
.friend-profile .lead{font-size:16px;line-height:2.1;max-width:430px}
.friend-pagination{display:flex;gap:12px;margin-top:20px}
.friend-pagination a{width:39px;height:39px;display:grid;place-items:center;border:1px solid #67805755;border-radius:50%;font:12px Arial,sans-serif;color:#5a7050;background:#faf9ef88}
.friend-pagination a[aria-current]{background:#31583b;color:white;border-color:#31583b}
.profile-still{display:none}
.is-reduced .friend-profiles,.no-js .friend-profiles{min-height:0}
.is-reduced .friend-profile,.no-js .friend-profile{position:relative;visibility:visible;opacity:1!important;transform:none!important;padding:25px 0 40px}
.is-reduced .profile-still,.no-js .profile-still{display:block}
.profile-still img{display:block;width:min(80%,340px);height:auto;margin:15px auto}
.is-reduced .friend-pagination,.no-js .friend-pagination{display:none}
@media(max-width:650px){.journey{height:1110svh}.friend-profiles{min-height:188px}.friend-role{font-size:13px;margin-bottom:5px}.friend-profile h2{font-size:42px;line-height:1.35}.friend-profile .lead{font-size:13px;line-height:1.9;margin-top:12px}.friend-pagination{gap:9px;margin-top:8px}.friend-pagination a{width:30px;height:30px;font-size:10px}.is-reduced .journey,.no-js .journey{height:auto}}
@media(max-width:650px) and (max-height:720px){.friend-profiles{min-height:171px}.friend-profile h2{font-size:37px}.friend-profile .lead{font-size:12px;margin-top:10px}.friend-pagination{margin-top:2px}}
.is-reduced .journey,.no-js .journey{height:auto}
.friend-profile .lead{text-wrap:pretty}
.journey{height:1300svh}
.treasure-closed{position:absolute;z-index:5;width:17vw;aspect-ratio:1;right:22%;bottom:2%;background-size:contain;background-position:center bottom;background-repeat:no-repeat;opacity:0;visibility:hidden}
.party-celebrate{position:absolute;z-index:5;width:54%;height:43%;right:2%;bottom:24%;background-size:contain;background-position:center bottom;background-repeat:no-repeat;opacity:0;visibility:hidden;pointer-events:none}
.finale-panel footer{padding:0;background:none;display:flex;flex-direction:column;align-items:flex-start;gap:30px}
.finale-panel footer .brand{font-size:42px}.finale-panel footer>div{flex-direction:column;gap:15px;font-size:15px}.finale-panel footer>small{font-size:12px}
.finale-still{display:none}.ending-link{display:block;margin-top:25px;font-size:12px;text-decoration:underline;text-underline-offset:5px}
.is-reduced .finale-still,.no-js .finale-still{display:block;margin-top:35px}.finale-still img{width:100%;height:auto}
.is-reduced .treasure-closed,.is-reduced .party-celebrate,.no-js .treasure-closed,.no-js .party-celebrate{display:none}
@media(max-width:650px){.journey{height:1230svh}.treasure-closed{width:29vw;right:35%;bottom:5%}.party-celebrate{width:98%;right:1%;height:35%;bottom:24%}.finale-panel footer{gap:23px}.finale-panel footer .brand{font-size:33px}.finale-panel footer>div{gap:12px;font-size:14px}}

.battle-art{position:absolute;inset:0;background-size:contain;background-position:center bottom;background-repeat:no-repeat;opacity:0;visibility:hidden;pointer-events:none;filter:drop-shadow(0 9px 5px #1d321533)}
.combat-fx,.strike-burst{position:absolute;left:0;top:0;pointer-events:none;z-index:5;opacity:0;visibility:hidden;width:90px;height:90px;margin:-45px}
.combat-fx svg,.strike-burst svg{display:block;width:100%;height:100%;overflow:visible}
.fx-1{width:110px;height:110px;margin:-55px}.fx-2,.fx-3{width:58px;height:58px;margin:-29px}
.is-reduced .combat-fx,.is-reduced .strike-burst,.no-js .combat-fx,.no-js .strike-burst{display:none}
/* Combat light is drawn by SVG; keep the scenery itself as raster layers. */
.shield,.magic-ring,.attack-trail,.impact,.spark{background:none!important;border:0!important;box-shadow:none!important}
.shield svg,.magic-ring svg,.attack-trail svg,.impact svg,.spark svg{width:100%;height:100%;overflow:visible}
@media(max-width:650px){.combat-fx,.strike-burst{width:58px;height:58px;margin:-29px}.fx-2,.fx-3{width:38px;height:38px;margin:-19px}}
@media(max-width:650px) and (max-height:720px){.friend-profiles{min-height:190px}}
/* An arched opening covers the painted doors; two separate leaves swing inside it. */
.castle-gate{position:absolute;left:44.95%;top:55.35%;width:19.55%;height:24.25%;border-radius:50% 50% 0 0 / 42% 42% 0 0;overflow:hidden;perspective:600px;isolation:isolate;background:#342716}
.gate-depth{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 80%,#bc8841,#493621 48%,#241d17 86%);box-shadow:inset 0 0 20px #130f0bcc}
.gate-door{position:absolute;top:0;width:50.5%;height:100%;background:repeating-linear-gradient(90deg,#996137 0%,#ad7142 15%,#754320 17%,#a96d3b 19%,#ba8050 35%);border:1px solid #6d4024;box-shadow:inset 3px 0 8px #efb87755,inset -3px 0 7px #482a1c66;backface-visibility:hidden;will-change:transform}
.gate-left{left:0;transform-origin:left center}.gate-right{right:0;transform-origin:right center}
.gate-door i{position:absolute;top:61%;width:23%;height:13%;border:3px solid #ddb267;border-radius:50%;box-shadow:1px 2px 2px #3b271c;background:#7a4c2844}
.gate-left i{right:11%}.gate-right i{left:11%}
.castle-gate .gate-light{inset:0;width:100%;height:100%;background:radial-gradient(ellipse at 50% 75%,#ffeda1cc,transparent 72%);mix-blend-mode:screen;pointer-events:none}
@media(max-width:650px){.gate-door i{border-width:2px}.quest{width:27vw}.castle-wrap{bottom:16%}}
@media(max-width:650px) and (max-height:720px){.castle-wrap{bottom:6%}}

body:not(.is-reduced):not(.no-js) .journey{height:1300svh}@media(max-width:650px){body:not(.is-reduced):not(.no-js) .journey{height:1230svh}}
.page-count,.scene-label{display:none}
.eyebrow{display:none}
.friend-pagination{display:none}
/* A reading surface follows the full copy height on the mobile story chapters. */
@media(max-width:650px){
 :is(#systems,#guide,#news,#start) .panel-inner{position:relative;isolation:isolate}
 :is(#systems,#guide,#news,#start) .panel-inner::before{content:'';position:absolute;inset:-22px -20px -28px;z-index:-1;background:linear-gradient(180deg,#f8f5e9a6 0%,#f8f5e978 58%,#f8f5e973 84%,#f8f5e940 100%);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);mask-image:linear-gradient(180deg,transparent,#000 7%,#000 85%,transparent);-webkit-mask-image:linear-gradient(180deg,transparent,#000 7%,#000 85%,transparent);border-radius:24px;pointer-events:none}
 :is(#systems,#guide,#news,#start) .panel-inner{text-shadow:0 1px 5px #fffbedb3}
 :is(#systems,#guide,#news,#start) .button{text-shadow:none}
 :is(#systems,#guide,#news,#start) .lead,
 :is(#systems,#guide,#news,#start) .small-note,
 :is(#systems,#guide,#news,#start) .status-note{color:#23332a}
 #systems .system-grid p{color:#23332a}
}
/* Clear Japanese type, informed by the two supplied reference sites. */
:root{--ink:#23332a;--muted:#435447}
body{font-family:'Noto Sans JP','Hiragino Kaku Gothic ProN','Yu Gothic',Meiryo,sans-serif;font-weight:500;letter-spacing:.025em}
h1,h2,h3{font-weight:700;letter-spacing:.025em;line-height:1.5}
.lead,.friend-profile .lead{font-size:18px;line-height:2;font-weight:500;color:var(--ink)}
.friend-role{color:#435447;font-size:16px;font-weight:700}
.system-grid p,.game-list p{font-size:15px;line-height:1.85;color:var(--ink)}
.game-list small,.small-note,.status-note{font-size:13px;line-height:1.8;color:#435447;font-weight:500}
.game-links,.login-link,.ending-link{font-size:15px;font-weight:700}
.guide-list a{font-size:17px}.guide-list small{font-size:13px;color:#435447}
.motion-toggle{font-size:13px;font-weight:500}.button{font-size:16px}
.topbar .brand,.book,.finale-panel footer .brand{letter-spacing:0}
@media(max-width:650px){
 h1{font-size:35px}h2{font-size:29px}
 .lead,.friend-profile .lead{font-size:15px;line-height:1.95}
 .friend-role{font-size:14px}.friend-profile h2{font-size:42px}
 .system-grid h3{font-size:16px}.system-grid p,.game-list p{font-size:14px;line-height:1.75}
 .game-list small,.small-note,.status-note{font-size:12px;line-height:1.75}
 .game-links,.login-link,.ending-link{font-size:14px}.game-list h3{font-size:18px}
 .guide-list a{font-size:15px}.guide-list small{font-size:12px}
 .motion-toggle{font-size:12px}.button{font-size:15px}
 .system-grid{gap:14px 18px}.game-list article{grid-template-columns:58px 1fr;gap:10px}.game-list img{height:106px}
}
@media(max-width:650px) and (max-height:720px){
 h1{font-size:32px}h2{font-size:27px}.friend-profile h2{font-size:38px}
 .lead,.friend-profile .lead{font-size:15px;line-height:1.8}.system-grid{gap:9px 16px}
 .game-list article{padding:8px}.game-list img{height:100px}.game-list p{font-size:13px}
}

/* The opening scene uses the four juvenile mascots around the book. */
.juvenile-party{position:absolute;z-index:5;right:1.5%;top:10%;width:55vw;height:62vh;pointer-events:none;opacity:0;visibility:hidden;transform-origin:center bottom;will-change:transform,opacity}.juvenile-party img{position:absolute;display:block;object-fit:contain;filter:drop-shadow(0 14px 8px #1d32152c);transform-origin:center bottom;will-change:transform,opacity}.juvenile-party img[data-juvenile="grass"]{left:-1%;top:24%;width:22%}.juvenile-party img[data-juvenile="fire"]{left:17%;top:13%;width:24%}.juvenile-party img[data-juvenile="water"]{left:49%;top:13%;width:25%}.juvenile-party img[data-juvenile="lightning"]{right:-2%;top:12%;width:26%}.juvenile-party img[data-juvenile="fire"],.juvenile-party img[data-juvenile="lightning"]{filter:drop-shadow(0 14px 8px #1d32152c) drop-shadow(0 0 12px #ffd76a33)}
@media(max-width:650px){.juvenile-party{right:1%;top:auto;bottom:8%;width:98vw;height:39svh}.juvenile-party img[data-juvenile="grass"]{left:-3%;top:24%;width:26%}.juvenile-party img[data-juvenile="fire"]{left:15%;top:13%;width:28%}.juvenile-party img[data-juvenile="water"]{left:48%;top:14%;width:29%}.juvenile-party img[data-juvenile="lightning"]{right:-4%;top:13%;width:30%}}
