/* Tiny Defense — the courtyard and its book. No external fonts or runtime dependencies. */
.courtyard-page { --paper:#0b1720; --ink:#f1ebda; --muted:#acb9ba; --line:#304047; background:#0b1720; color:#f1ebda; }
.courtyard-page .site-header { background:#0b1720f5; border-bottom:1px solid #ffffff14; color:#e9e5d7; }
.courtyard-page .primary-nav, .courtyard-page .menu-toggle { color:#e9e5d7; }
.courtyard-page .primary-nav>a { color:#d4dedb; }
@media (hover: hover) and (pointer: fine) {
.courtyard-page .primary-nav>a:hover { color:#f2cf92; }}

.courtyard-page .language-switcher a[aria-current=page] { background:#e3c38a; color:#14222b; }
.courtyard-page .menu-toggle span { background:#e9e5d7; }
.courtyard-page .wordmark-logo { border-radius:50%; background:#e9e5d7; }
.courtyard-page .site-footer { background:#081219; color:#b9c3c1; border-color:#2b3940; }
.courtyard-page .game-card { background:#11232d; color:#eee8d8; border-color:#34454b; }
.courtyard-page .game-card-body p,.courtyard-page .library-heading p { color:#b3c1c0; }
.courtyard-page .game-status { color:#b9d5b7; }
.courtyard-page .studio-summary { background:#0d1c26; }
.courtyard-page .eyebrow { color:#d3b77e; }
.courtyard-page .game-library { padding-top:72px; }
.world { max-width:1600px; margin:0 auto; padding:48px 48px 0; }
.world-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:24px; padding:0 0 30px; }
.world-eyebrow { font-size:12px; font-weight:600; letter-spacing:.19em; color:#d6b77c; margin:0 0 12px; }
.world h1 { font-family:Georgia,'Noto Serif KR','Batang','Yu Mincho',serif; font-size:clamp(30px,3.4vw,52px); font-weight:400; line-height:1.3; letter-spacing:-.035em; margin:0; }
.world-intro { font-size:15px; color:#aabbbd; margin:12px 0 0; }
.world-controls { display:flex; align-items:center; gap:8px; flex-shrink:0; }
[hidden] { display:none !important; }
.time-switch { display:flex; background:#061018; border:1px solid #34484f; padding:4px; border-radius:30px; }
.time-switch button { border:0; background:none; padding:8px 15px; border-radius:24px; color:#a8b6b9; font-size:14px; cursor:pointer; min-height:40px; }
.time-switch,.time-switch button,.quiet-button { white-space:nowrap; }
.time-switch button[aria-pressed=true] { background:#e3c38a; color:#14222b; }
.quiet-button { border:1px solid #34484f; background:transparent; padding:10px 14px; font-size:14px; cursor:pointer; border-radius:28px; min-height:48px; }
.quiet-button[aria-pressed=true]:not(.motion-button) { color:#e6c58a; border-color:#b99c69; }
.motion-button { width:48px; }
.world-stage { position:relative; border:1px solid #bca37255; background:#0d1c27; overflow:hidden; }
.world-landscape { position:relative; aspect-ratio:1.9; overflow:hidden; isolation:isolate; }
.courtyard { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 60%; }
.courtyard-night { opacity:0; transition:opacity 1.8s ease; }
.courtyard-actors { position:absolute; z-index:1; pointer-events:none; }
.courtyard-combat { position:absolute; inset:0; width:100%; height:100%; z-index:80; pointer-events:none; }
.night-encounter .courtyard-walker { opacity:0 !important; pointer-events:none; }
.night-encounter .courtyard-walker,.night-encounter .courtyard-walker * { animation-play-state:paused !important; }
@media(prefers-reduced-motion:reduce) { .courtyard-combat { display:none; } }
.courtyard-walker { position:absolute; width:9.5%; aspect-ratio:1; left:var(--x1); top:var(--y1); opacity:0; transform:translate(-50%,-90.625%); animation:courtyard-scene 168s linear var(--delay) infinite both; }
.walker-facing { width:100%; height:100%; animation:courtyard-facing 168s steps(1,end) var(--delay) infinite both; }
.walker-motion,.walker-rest { position:absolute; inset:0; }
.walker-motion { animation:courtyard-walking 168s steps(1,end) var(--delay) infinite both; }
.walker-rest { animation:courtyard-resting 168s steps(1,end) var(--delay) infinite both; }
.walker-sprite,.walker-idle { width:100%; height:100%; background-repeat:no-repeat; filter:drop-shadow(0 3px 2px #0006); }
.walker-sprite { background-size:600% 100%; animation:resident-steps .85s steps(6) infinite; }
.walker-idle { background-size:800% 100%; animation:courtyard-idle 1.6s steps(8) infinite; }
[data-time=night] .walker-sprite,[data-time=night] .walker-idle { filter:brightness(.8) drop-shadow(0 3px 2px #0008); }
@keyframes courtyard-idle { to { background-position:114.285714% 0; } }
@keyframes courtyard-scene {
 0% { opacity:0; left:var(--x1); top:var(--y1); }
 .6% { opacity:1; }
 2%,12% { opacity:1; left:var(--x2); top:var(--y2); }
 13.5% { opacity:1; }
 14.5%,100% { opacity:0; left:var(--x3); top:var(--y3); }
}
@keyframes courtyard-facing { 0% { transform:scaleX(var(--enter)); } 2% { transform:scaleX(var(--facing)); } 12%,100% { transform:scaleX(var(--leave)); } }
@keyframes courtyard-walking { 0% { opacity:1; } 2% { opacity:0; } 12% { opacity:1; } 14.5%,100% { opacity:0; } }
@keyframes courtyard-resting { 0% { opacity:0; } 2% { opacity:1; } 12%,100% { opacity:0; } }
.courtyard-bubble { position:absolute; bottom:100%; left:50%; width:max-content; max-width:170px; margin:0 0 4px; padding:9px 12px; transform:translateX(-50%); border:1px solid #cbb887; border-radius:12px; background:#fff4db; color:#302b24; box-shadow:0 3px 12px #0003; font:14px/1.5 var(--reading-font,system-ui,sans-serif); word-break:keep-all; text-align:center; opacity:0; animation:courtyard-speech 168s linear var(--delay) infinite both; }
.courtyard-bubble::after { content:''; position:absolute; top:100%; left:50%; border:6px solid transparent; border-top-color:#fff4db; transform:translateX(-50%); }
.courtyard-bubble[data-reply] { animation-name:courtyard-reply; }
@keyframes courtyard-speech { 0%,3.5% { opacity:0; } 4%,6.8% { opacity:1; } 7.2%,100% { opacity:0; } }
@keyframes courtyard-reply { 0%,7.8% { opacity:0; } 8.3%,10.8% { opacity:1; } 11.2%,100% { opacity:0; } }
@media(max-width:699px) { .courtyard-bubble { max-width:145px; padding:7px 9px; font-size:13px; } }
@media(prefers-reduced-motion:reduce) {
 .courtyard-walker { display:none; }
 .courtyard-walker[data-scene="0"] { display:block; opacity:1; left:var(--x2); top:var(--y2); }
 .walker-motion,.courtyard-bubble { display:none; }
 .walker-rest { opacity:1; }
}
.gate-guard { position:absolute; top:56.5%; left:48%; width:18%; aspect-ratio:1; transform:translate(-50%,-61.875%); }
.guard-right { left:69%; }
.lancer-sprite { width:100%; height:100%; background:url('/assets/world/lancer-idle.webp') 0 0 / 1200% 100%; animation:lancer-idle 1.5s steps(12) infinite; filter:drop-shadow(0 2px 2px #0005); transition:filter 1.8s; }
.guard-right .lancer-sprite { transform:scaleX(-1); animation-delay:-.55s; }
[data-time=night] .lancer-sprite { filter:brightness(.72) drop-shadow(0 2px 2px #0007); }
@keyframes lancer-idle { to { background-position:109.090909% 0; } }
[data-time=night] .courtyard-night { opacity:1; }
.world-landscape::after { content:''; position:absolute; inset:0; pointer-events:none; background:linear-gradient(0deg,#07131d75,transparent 23%,transparent 85%,#07131d18); }
.world-marker { position:absolute; z-index:3; display:flex; flex-direction:column; align-items:center; gap:8px; transform:translate(-50%,-50%); white-space:nowrap; }
.marker-forest { left:16%; top:61%; }
.marker-gate { left:59%; top:38%; }
.marker-book { left:81%; top:78%; }
.marker-point { display:grid; place-items:center; width:44px; height:44px; border:1px solid #f6deb1; border-radius:50%; background:#10212ddd; color:#f4d49c; font-size:22px; box-shadow:0 0 0 6px #f8d79715,0 3px 20px #0006; transition:transform .25s,background .25s; }
.marker-label { padding:5px 13px; border:1px solid #e1c59266; background:#081721e8; color:#fff0d4; font-size:14px; border-radius:3px; box-shadow:0 2px 12px #0006; }
@media (hover: hover) and (pointer: fine) {
.world-marker:hover .marker-point,.world-marker:focus-visible .marker-point { transform:translateY(-4px); background:#876638; }}

.marker-book .marker-point { animation:beacon 3s ease-in-out infinite; }
@keyframes beacon { 50% { box-shadow:0 0 0 10px #f8d79722,0 0 32px #ffbd5a55; } }
.world-caption { position:relative; display:flex; justify-content:space-between; gap:16px; padding:14px 22px; background:#0e1c25; font-size:13px; color:#bac5c5; border-top:1px solid #d8bd7f33; }
.world-place { color:#d1b47e; font-size:11px; letter-spacing:.15em; }
.world-place span { margin:0 12px; color:#607277; }
.world-bottom { display:flex; justify-content:space-between; border-bottom:1px solid #35434a; padding:20px 4px; gap:18px; }
.world-bottom a { display:flex; align-items:center; gap:20px; color:#c6aa79; font-size:13px; }
.world-bottom a span { font-size:15px; color:#dfdfd2; }
@media (hover: hover) and (pointer: fine) {
.world-bottom a:hover span { color:#f6cd84; }}

.world-notice { margin:8px 0; font-size:14px; color:#d7c8a8; min-height:1.7em; }
.fire-glow,.lantern-glow { position:absolute; width:18%; height:26%; left:36%; top:59%; background:radial-gradient(ellipse,#ffad4338,transparent 65%); mix-blend-mode:screen; pointer-events:none; animation:flicker 3.1s ease-in-out infinite alternate; }
.lantern-glow { left:83%; top:54%; width:14%; animation-duration:4.7s; }
@keyframes flicker { 0%,100% { opacity:.35; } 22%,60% { opacity:.9; } 45% { opacity:.55; } }
.world-dust { position:absolute; inset:0; opacity:.13; background:linear-gradient(115deg,transparent 30%,#ffe2a321 40%,transparent 55%); animation:light-drift 18s ease-in-out infinite alternate; pointer-events:none; }
[data-time=night] .world-dust { opacity:.05; }
@keyframes light-drift { to { transform:translateX(12%); } }
.world-motes { position:absolute; inset:0; overflow:hidden; pointer-events:none; }
.courtyard-resident { position:absolute; top:49%; left:24%; width:clamp(65px,8vw,120px); aspect-ratio:1; pointer-events:none; animation:resident-walk 32s linear infinite; }
.resident-sprite { width:100%; height:100%; background:url('/assets/world/resident-run.webp') 0 0 / 600% 100%; animation:resident-steps .75s steps(6) infinite; filter:drop-shadow(0 3px 2px #0005); }
[data-time=night] .resident-sprite { filter:brightness(.62) drop-shadow(0 3px 2px #0006); }
@keyframes resident-steps { to { background-position:120% 0; } }
@keyframes resident-walk { 0%,8% { left:22%; opacity:0; transform:scaleX(1); } 12% { opacity:1; } 44% { left:66%; opacity:1; transform:scaleX(1); } 47% { left:68%; opacity:0; transform:scaleX(1); } 51% { left:68%; opacity:0; transform:scaleX(-1); } 55% { opacity:1; } 88% { left:23%; opacity:1; transform:scaleX(-1); } 92%,100% { left:22%; opacity:0; transform:scaleX(-1); } }
.world-motes i { position:absolute; left:calc(10% + var(--i)*6%); top:calc(42% + var(--i)*3%); width:3px; height:3px; background:#ffd99a; border-radius:50%; opacity:0; box-shadow:0 0 8px #ffdc98; animation:mote calc(6s + var(--i)*.35s) ease-in-out infinite; animation-delay:calc(var(--i)*-.8s); }
@keyframes mote { 10% { opacity:0; transform:translate(0,30px); } 35%,60% { opacity:.75; } 95% { opacity:0; transform:translate(25px,-55px); } }
.world.motion-paused *, .world.motion-paused *::after { animation-play-state:paused !important; }
.story-invitation { max-width:1260px; padding:62px 64px 72px; margin:auto; display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:80px; }
.invitation-art { position:relative; aspect-ratio:1.2; }
.invitation-art::after { content:''; position:absolute; inset:12px -12px -12px 12px; border:1px solid #bda37455; z-index:-1; }
.invitation-art img { width:100%; height:100%; object-fit:cover; border:1px solid #bcaa7d66; }
.invitation-copy h2 { font-family:Georgia,'Batang','Yu Mincho',serif; font-weight:400; font-size:clamp(30px,3vw,46px); line-height:1.3; margin:14px 0 20px; letter-spacing:-.035em; }
.invitation-copy>p:not(.world-eyebrow) { color:#b5c2c2; max-width:380px; }
.book-cta { display:inline-flex; gap:38px; align-items:center; padding:13px 23px; margin-top:18px; color:#16242d; background:#e2c491; font-weight:600; border:1px solid #e9d4ac; }
@media (hover: hover) and (pointer: fine) {
.book-cta:hover { background:#f0d8ae; }}

.resume-link { display:block; border:0; background:none; color:#d6bd91; padding:12px 0; text-decoration:underline; cursor:pointer; }
.world-credits { max-width:1160px; margin:0 auto; padding:4px 32px 20px; font-size:12px; color:#9cadb1; }
.world-credits summary { cursor:pointer; font-size:14px; }
.world-credits a { text-decoration:underline; }
.story-reader { position:fixed; inset:0; border:0; max-width:none; max-height:none; width:100%; height:100%; margin:0; padding:20px; background:#061119eF; color:#ece5d5; overflow:auto; }
.story-reader::backdrop { background:#061119ef; backdrop-filter:blur(8px); }
body:has(.story-reader[open]) { overflow:hidden; }
.reader-shell { width:min(1120px,100%); margin:auto; }
.reader-toolbar { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:0 0 16px; }
.reader-kicker { font-size:11px; letter-spacing:.18em; color:#b79c70; }
.reader-toolbar h2 { font-size:16px; font-weight:400; margin:4px 0 0; }
.reader-actions { display:flex; align-items:center; gap:10px; }
.reader-actions button { cursor:pointer; background:transparent; color:#e8deca; border:1px solid #65707166; min-height:44px; padding:8px 14px; font-size:14px; }
@media (hover: hover) and (pointer: fine) {
.reader-actions button:hover { background:#ffffff0d; }}

.book-spread { position:relative; isolation:isolate; display:grid; grid-template-columns:46% 54%; min-height:580px; background:#e9dec4; color:#3c342b; border:6px solid #3e332a; border-radius:4px 9px 9px 4px; box-shadow:0 0 0 1px #988462,0 8px 0 -3px #b7a588,0 12px 0 -5px #655744,0 25px 60px #0009; perspective:1800px; }
.book-illustration { position:relative; overflow:hidden; background:#102534; }
.book-illustration>img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; }
.story-art-shade { position:absolute; inset:0; background:linear-gradient(90deg,transparent 75%,#0005),linear-gradient(0deg,#051521d9,transparent 30%); }
.art-chapter { position:absolute; left:30px; bottom:28px; color:#e9d2a9; letter-spacing:.2em; font-size:11px; }
.art-chapter b { font-family:Georgia,serif; font-size:34px; font-weight:400; margin-left:10px; }
.book-page { padding:44px 42px 32px; position:relative; outline:none; background:linear-gradient(90deg,#9c896f55,transparent 5%,#fff9ea50 65%,#c5b69630); box-shadow:inset 1px 0 #42352533; }
.page-eyebrow { color:#81613b; font-size:11px; letter-spacing:.16em; margin:0 0 18px; text-transform:uppercase; }
.book-page h3 { font-family:Georgia,'Batang','Yu Mincho',serif; color:#403628; font-weight:400; font-size:30px; line-height:1.4; margin:0 0 25px; word-break:keep-all; }
.story-lines { font-size:16px; line-height:1.85; overflow-wrap:anywhere; }
.story-lines p { margin:0 0 17px; }
.story-lines p:last-child { margin-bottom:0; }
.story-lines .speaker { display:block; color:#74582f; font-size:12px; font-weight:700; margin-bottom:3px; letter-spacing:.08em; }
.story-lines .narration { color:#6b6051; }
.page-ornament { font-size:17px; color:#a38a5d; text-align:center; margin-top:22px; }
.reader-footer { display:flex; justify-content:space-between; align-items:center; margin-top:25px; gap:16px; }
.reader-footer button { min-height:46px; border:1px solid #9b896855; background:#11212b; color:#eee1c9; padding:10px 20px; cursor:pointer; font-size:14px; }
@media (hover: hover) and (pointer: fine) {
.reader-footer button:hover:not(:disabled) { background:#243642; }}

.reader-footer button:disabled { opacity:.3; cursor:default; }
.page-progress { font-size:13px; color:#b9bcb4; text-align:center; }
.reader-settings { display:flex; justify-content:space-between; align-items:center; padding:20px 0 10px; font-size:12px; color:#a5b2b3; gap:20px; }
.reader-settings label { display:flex; align-items:center; gap:12px; }
.reader-settings input { width:90px; accent-color:#d6b67e; min-height:32px; }
.reader-settings a { text-decoration:underline; }
.story-contents { padding:12px; border:1px solid #6a634d; margin:0 0 20px; background:#12222c; display:grid; grid-template-columns:repeat(3,1fr); gap:5px; }
.story-contents button { text-align:left; background:transparent; border:1px solid transparent; padding:10px; font-size:14px; cursor:pointer; color:#ccd0c6; }
.story-contents button[aria-current=page] { color:#f3d59d; border-color:#7b7056; }
.story-gate { font-size:16px; line-height:1.8; }
.story-gate button,.story-gate a { display:block; margin:16px 0 0; width:100%; padding:12px 15px; background:#273d43; color:#f7ead0; border:1px solid #273d43; text-align:center; cursor:pointer; font-size:15px; }
.story-gate button.secondary { color:#51432e; background:transparent; border-color:#a39376; }
.world a:focus-visible,.world button:focus-visible,.story-reader button:focus-visible,.story-reader a:focus-visible,.story-invitation a:focus-visible,.story-invitation button:focus-visible { outline:3px solid #ffe0a1; outline-offset:5px; }
.story-text-page { background:#0b1720; color:#e7e0d0; }
.story-text-page header,.story-text-page main,.story-text-page footer { max-width:1000px; margin:auto; padding:32px 24px; }
.story-text-page header p { color:#c7ad7c; font-size:12px; letter-spacing:.2em; margin-top:50px; }
.story-text-page h1 { font-size:40px; font-family:Georgia,'Batang',serif; font-weight:400; }
.story-text-page section { display:grid; grid-template-columns:1fr 1.3fr; gap:40px; margin-bottom:64px; }
.story-text-page section img { width:100%; max-height:460px; object-fit:cover; }
.story-text-page h2 { font-family:Georgia,'Batang',serif; font-weight:400; }
.story-text-page strong { color:#d0b383; font-size:14px; }
@media(min-width:1600px) { .world-landscape { aspect-ratio:2.1; } }
@media(max-width:1000px) { .world { padding:32px 24px 0; } .world-heading { align-items:flex-start; flex-direction:column; gap:20px; } .world-landscape { aspect-ratio:1.6; } .marker-forest { top:59%; } .marker-gate { top:39%; } .marker-book { top:77%; } .story-invitation { padding:48px 32px; gap:40px; } .book-page { padding:30px 26px; } .book-spread { min-height:560px; } .book-page h3 { font-size:27px; } .world-caption { flex-wrap:wrap; } }
@media(max-width:699px) {
 .courtyard-page .primary-nav { background:#0c1c27; border-color:#304047; }
 .world { padding:28px 16px 0; } .world h1 { font-size:30px; } .world-eyebrow { font-size:10px; letter-spacing:.12em; } .world-intro { font-size:14px; max-width:29em; }
 .world-heading { padding-bottom:22px; } .world-controls { width:100%; gap:7px; } .time-switch button { padding:7px 14px; } .quiet-button { font-size:13px; padding:8px 12px; } .motion-button { margin-left:auto; width:44px; }
 .world-stage { margin:0 -16px; border-left:0; border-right:0; } .world-landscape { aspect-ratio:1.25; } .courtyard { object-fit:cover; object-position:52% 50%; }
 .marker-forest { left:10%; top:61%; } .marker-gate { left:61%; top:38%; } .marker-book { left:86%; top:79%; } .marker-label { font-size:12px; padding:4px 8px; } .marker-point { width:40px; height:40px; font-size:20px; } .world-marker { gap:6px; }
 .marker-forest .marker-label { transform:translateX(22px); } .marker-book .marker-label { transform:translateX(-15px); }
 .time-switch { flex-shrink:0; } .time-switch button { padding:7px 10px; } .quiet-button { padding:8px 10px; } .motion-button { flex-shrink:0; width:40px; }
 .world-caption { padding:12px 16px; gap:5px; font-size:12px; } .world-place { font-size:10px; } .world-caption>span:last-child { width:100%; }
 .world-bottom { gap:10px; padding:18px 0; } .world-bottom a { gap:7px; font-size:10px; } .world-bottom a span { font-size:12px; } .world-bottom a:nth-child(2) { flex:1; justify-content:center; }
 :lang(en) .world-bottom a { gap:4px; font-size:0; flex:1; } :lang(en) .world-bottom a span { font-size:12px; line-height:1.5; }
 .story-invitation { grid-template-columns:1fr; padding:34px 26px 46px; gap:35px; } .invitation-art { aspect-ratio:1.55; } .invitation-art img { object-position:50% 44%; } .invitation-copy h2 { font-size:34px; } .invitation-copy>p:not(.world-eyebrow) { font-size:15px; } .world-credits { padding:0 24px 18px; }
 .story-reader { padding:12px 12px 24px; } .reader-toolbar { position:sticky; top:-12px; z-index:10; background:#08151f; padding-top:12px; gap:8px; align-items:center; } .reader-toolbar h2 { font-size:14px; } .reader-kicker { font-size:9px; letter-spacing:.1em; } .reader-actions { gap:5px; } .reader-actions button { padding:7px 10px; font-size:12px; } .reader-sound span { display:none; }
 .book-spread { display:block; min-height:0; border-width:4px; } .book-illustration { height:180px; } .book-illustration>img { object-position:50% 42%; } .art-chapter { bottom:12px; left:18px; font-size:9px; } .art-chapter b { font-size:24px; }
 .story-art-shade { background:linear-gradient(0deg,#06131ba6,transparent 60%); } .book-page { padding:25px 22px; min-height:320px; } .book-page h3 { font-size:25px; margin-bottom:18px; } .page-eyebrow { font-size:10px; margin-bottom:10px; } .story-lines { font-size:16px; line-height:1.8; } .story-lines p { margin-bottom:17px; } .page-ornament { margin-top:18px; }
 .reader-footer { position:sticky; bottom:-24px; z-index:10; background:#08151ff5; padding:10px 0; margin-top:20px; gap:8px; } .reader-footer button { padding:9px 12px; font-size:13px; } .page-progress { font-size:11px; } .story-contents { grid-template-columns:1fr 1fr; }
 .story-text-page section { grid-template-columns:1fr; gap:16px; } .story-text-page section img { max-height:300px; }
}
@media(prefers-reduced-motion:reduce) { .world *, .world *::after,.story-reader * { animation:none !important; transition:none !important; scroll-behavior:auto !important; } }

/* Sketchbook: warm paper on the courtyard's dark reading desk. */
.story-reader { background:radial-gradient(ellipse at 50% 35%,#334544f5,#08151bf9 78%); padding:28px 28px 36px; }
.reader-shell { width:min(1180px,100%); }
.book-spread { grid-template-columns:1fr 1fr; min-height:620px; border:7px solid #284446; border-radius:5px 12px 12px 5px; background:#f4edda; perspective:2200px; isolation:auto; box-shadow:0 0 0 1px #75908a,0 4px 0 -1px #d0c6ac,0 7px 0 -1px #ece3cb,0 10px 0 -1px #a59b81,0 14px 0 -2px #233b3e,0 30px 70px #0008; touch-action:pan-y; }
.book-spread::after { content:''; position:absolute; z-index:2; pointer-events:none; top:0; bottom:0; left:calc(50% - 18px); width:36px; background:linear-gradient(90deg,transparent,#76634518 37%,#453c3430 49%,#fff9e55e 53%,transparent); }
.book-left { position:relative; min-width:0; background:#f4edda; }
.book-illustration { height:100%; min-height:560px; margin:0; background:#f4edda; }
.book-illustration>img { inset:8% 7% 13%; width:86%; height:79%; object-fit:contain; filter:drop-shadow(0 4px 5px #493c2526); user-select:none; -webkit-user-drag:none; }
.story-art-shade { display:none; }
.art-chapter { left:8%; bottom:8%; color:#7a6544; font-size:11px; }
.art-chapter b { font-size:23px; }
.book-page { padding:52px 46px 60px; background:linear-gradient(90deg,#b6a78914,transparent 14%,#fffdf433 80%,#aa927412); box-shadow:none; min-width:0; }
.left-page { min-height:100%; }
.text-spread>.book-page { padding-top:100px; }
.book-page h3 { font-size:clamp(25px,2.5vw,34px); line-height:1.5; letter-spacing:-.025em; }
.story-lines { font-family:Georgia,'Batang','Yu Mincho',serif; font-size:17px; line-height:1.95; }
.story-lines p { margin-bottom:24px; }
.story-lines .speaker { font-family:system-ui,sans-serif; font-size:12px; color:#796844; margin-bottom:6px; }
.folio { position:absolute; bottom:20px; right:26px; color:#99896a; font:italic 13px Georgia,serif; letter-spacing:.12em; }
.book-left>.folio { right:auto; left:26px; }
.book-gesture-hint { margin:25px 0 0; text-align:center; color:#b5bfb6; font-size:13px; }
.reader-footer { margin-top:14px; }
.reader-footer button { border-radius:24px; background:transparent; min-width:120px; }
.story-contents { max-height:45vh; overflow-y:auto; }
.story-text-page section.text-only { display:block; background:#f4edda; color:#403628; padding:40px; }
.story-text-page .text-only .text-dialogue { columns:2; column-gap:60px; }
.story-text-page .text-only p { break-inside:avoid; }
.story-text-page .text-only strong { color:#796844; }
.is-turning > .book-left,.is-turning > .book-page { visibility:hidden; }
.is-turning::after { display:none; }
.paper-turn { position:absolute; inset:0; z-index:5; perspective:2200px; pointer-events:none; }
.paper-bed { position:absolute; top:0; height:100%; overflow:hidden; }
.paper-curl { position:absolute; top:0; left:50%; width:50%; height:100%; transform-origin:left center; transform-style:preserve-3d; }
.paper-strip { position:absolute; top:0; left:0; height:100%; transform-origin:left center; transform-style:preserve-3d; }
.paper-strip>.paper-strip { left:100%; }
.backward .paper-curl { left:auto; right:50%; transform-origin:right center; }
.backward .paper-strip { left:auto; right:0; transform-origin:right center; }
.backward .paper-strip>.paper-strip { left:auto; right:100%; }
.paper-face { position:absolute; inset:0; overflow:hidden; background:#f4edda; backface-visibility:hidden; }
.paper-strip>.paper-face { width:calc(100% + .6px); }
.paper-back { transform:rotateY(180deg); }
.paper-strip>.paper-face::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,#32251608,#322516); opacity:var(--paper-shadow,0); }
.book-snapshot { position:absolute; top:0; margin:0; border:0; border-radius:0; box-shadow:none; perspective:none; pointer-events:none; }
.book-snapshot::after { display:none; }
@media(max-width:1000px) and (min-width:700px) {
 .book-page { padding:36px 27px 55px; } .story-lines { font-size:16px; line-height:1.8; }
 .text-spread>.book-page { padding-top:85px; }
}
@media(max-width:699px) {
 .story-reader { padding:12px 12px 24px; }
 .book-spread { display:block; min-height:0; border-width:4px; }
 .book-spread::after { display:none; }
 .book-illustration { min-height:0; height:260px; }
 .book-illustration>img { inset:5% 8% 12%; width:84%; height:83%; }
 .book-left>.folio { display:none; }
 .art-chapter { left:7%; bottom:7%; font-size:9px; } .art-chapter b { font-size:18px; }
 .book-page { padding:28px 25px 48px; min-height:0; }
 .book-page h3 { font-size:27px; }
 .story-lines { font-size:16px; line-height:1.9; }
 .text-spread .left-page { padding-bottom:0; }
 .text-spread>.book-page { padding-top:24px; }
 .book-gesture-hint { font-size:12px; margin-top:20px; }
 .reader-footer button { min-width:0; }
 .story-text-page section.text-only { padding:26px 22px; }
 .story-text-page .text-only .text-dialogue { columns:1; }
}

/* Promote only the two moving faces, not dozens of full spread copies. */
.paper-curl { will-change:transform; }
.paper-curl>.paper-face { contain:paint; }
.paper-curl>.paper-face::after { content:''; position:absolute; inset:0; pointer-events:none; background:linear-gradient(90deg,#43331b20,transparent 12%,transparent 88%,#fff8e530); }
.paper-face>.leaf-content { margin:0; box-sizing:border-box; }
.paper-face.text-leaf>.book-page { padding-top:100px; }
@media(max-width:1000px) and (min-width:700px) { .paper-face.text-leaf>.book-page { padding-top:85px; } }
body:has(.story-reader[open]) .world * { animation-play-state:paused !important; }

/* The map's book becomes the reading surface, without cloning its story DOM. */
.book-arriving { background:transparent; }
.book-arriving::backdrop { backdrop-filter:none; background:#061119ed; animation:reading-desk 1.2s ease both; }
.book-arriving .reader-shell { perspective:1800px; }
.book-arriving .book-spread { opacity:0; }
.book-arriving.arrival-ready .book-spread { opacity:1; will-change:transform; }
.book-arriving .book-spread { background:transparent; border-color:transparent; box-shadow:none; }
.book-arriving .book-page { background-color:#f4edda; }
.book-arriving .reader-toolbar>div:first-child,
.book-arriving .reader-actions>button:not([data-close-story]),
.book-arriving .reader-footer,.book-arriving .reader-settings,
.book-arriving .book-gesture-hint { opacity:0; pointer-events:none; }
.book-arriving .reader-toolbar { background:transparent; }
.book-arriving .book-left { opacity:0; }
.book-arriving.arrival-ready .book-left { animation:arrival-left .55s .78s ease both; }
.arrival-cover,.arrival-leaf { position:absolute; z-index:20; left:50%; top:0; width:50%; height:100%; transform-origin:left center; backface-visibility:hidden; pointer-events:none; will-change:transform; }
.arrival-cover { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:28px; padding:12%; color:#e3c789; background:linear-gradient(100deg,#183a40,#28545a 15%,#1b424a 90%,#112d35); border:2px solid #ac935b; border-radius:0 8px 8px 0; box-shadow:inset 0 0 0 12px #1b4147,inset 0 0 0 13px #b9a16d80,8px 8px 18px #0004; }
.arrival-cover span { font-family:Georgia,'Batang','Yu Mincho',serif; text-align:center; font-size:clamp(24px,3.5vw,48px); font-weight:400; line-height:1.6; word-break:keep-all; }
.arrival-cover small { font-size:11px; letter-spacing:.24em; white-space:nowrap; }
.arrival-leaf { z-index:16; background:linear-gradient(90deg,#c4b696,#f4edda 8%,#fbf5e6 88%,#b9a783); border-right:1px solid #b7a58a; }
.arrival-leaf:nth-last-child(3) { z-index:17; }
.arrival-leaf:nth-last-child(4) { z-index:18; }
@keyframes reading-desk { from { opacity:0; } to { opacity:1; } }
@keyframes arrival-left { from { opacity:0; } to { opacity:1; } }
@media(max-width:699px) {
 .arrival-cover,.arrival-leaf { left:0; width:100%; }
 .arrival-cover { padding:12%; }
 .book-arriving .book-left { opacity:1; }
 .book-arriving.arrival-ready .book-left { animation:none; }
}
@media(prefers-reduced-motion:reduce) {
 .book-arriving .book-spread,.book-arriving .book-left { opacity:1; }
 .arrival-cover,.arrival-leaf { display:none; }
}

/* Match the game's typeface, including book text and its cover. */
.world h1,.invitation-copy h2,.book-page h3,.story-lines,
.story-lines .speaker,.story-text-page h1,.story-text-page h2,
.arrival-cover span,.art-chapter b,.folio { font-family:var(--game-font); font-weight:400; font-style:normal; }
.story-lines { line-height:1.8; }
.story-lines .speaker { font-size:14px; letter-spacing:.02em; }
.reader-pages { min-width:0; }
@media(max-width:699px) {
 .story-reader { height:100dvh; overflow:hidden; padding:max(8px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(6px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left)); }
 .reader-shell { display:flex; flex-direction:column; height:100%; min-height:0; }
 .reader-toolbar { position:relative; top:auto; flex-shrink:0; padding:4px 0 10px; gap:8px; }
 .reader-toolbar>div:first-child { min-width:0; flex:1; }
 .reader-toolbar h2 { font-size:16px; line-height:1.3; overflow-wrap:anywhere; }
 .reader-kicker { font-size:10px; letter-spacing:.04em; }
 .reader-actions { flex-shrink:0; gap:4px; }
 .reader-actions button { min-width:44px; min-height:44px; font-size:14px; padding:8px; }
 .reader-pages { min-height:0; flex:1; overflow-y:auto; overscroll-behavior:contain; padding:2px 2px 20px; scrollbar-width:thin; }
 .book-arriving .reader-pages { overflow:visible; }
 .book-illustration { height:clamp(170px,28dvh,245px); }
 .book-page { padding:22px 22px 40px; }
 .book-page h3 { font-size:26px; margin-bottom:18px; line-height:1.4; }
 .story-lines { font-size:18px; line-height:1.75; }
 .story-lines p { margin-bottom:20px; }
 .page-eyebrow { font-size:11px; letter-spacing:.07em; }
 .reader-footer { position:relative; bottom:auto; flex-shrink:0; margin:0; padding:10px 0 4px; background:#08151f; gap:8px; }
 .reader-footer button { min-height:46px; font-size:15px; padding:8px 14px; }
 .page-progress { font-size:13px; }
 .reader-settings { flex-shrink:0; padding:4px 2px 0; font-size:14px; gap:12px; }
 .reader-settings input { min-height:32px; }
 .story-contents { flex-shrink:0; max-height:32dvh; margin-bottom:10px; padding:6px; gap:3px; }
 .story-contents button { min-height:44px; padding:8px; line-height:1.45; }
 .book-gesture-hint { font-size:13px; }
 .arrival-cover,.arrival-leaf { max-height:calc(100dvh - 155px); }
 .world-controls { flex-wrap:wrap; }
 .world h1 { font-size:32px; }
 .world-intro { font-size:16px; }
 .marker-point { width:44px; height:44px; }
 .marker-label { font-size:14px; }
 .world-bottom a span { font-size:14px; }
 .world-caption { font-size:14px; }
 .world-place { font-size:11px; }
}
@media(max-width:374px) {
 .reader-toolbar h2 { font-size:14px; }
 .reader-kicker { font-size:9px; }
 .book-page { padding-inline:18px; }
 .reader-settings input { width:75px; }
}
@media(max-height:500px) and (min-width:700px) {
 .story-reader { height:100dvh; overflow:hidden; padding:6px max(16px,env(safe-area-inset-right)) 6px max(16px,env(safe-area-inset-left)); }
 .reader-shell { height:100%; display:flex; flex-direction:column; min-height:0; }
 .reader-toolbar { flex-shrink:0; padding-bottom:6px; }
 .reader-toolbar h2 { font-size:14px; }
 .reader-actions button { min-height:44px; }
 .reader-pages { flex:1; min-height:0; overflow-y:auto; padding:2px 2px 18px; overscroll-behavior:contain; }
 .book-arriving .reader-pages { overflow:visible; }
 .reader-footer { flex-shrink:0; margin-top:4px; }
 .reader-footer button { min-height:40px; padding:6px 16px; }
 .reader-settings { flex-shrink:0; padding:0; }
 .reader-settings input { min-height:26px; }
 .book-gesture-hint { display:none; }
 .story-contents { flex-shrink:0; max-height:25dvh; margin-bottom:4px; }
 .book-spread { min-height:360px; }
 .book-illustration { min-height:360px; }
 .book-page { padding:24px 28px 45px; }
 .story-lines { font-size:16px; }
}

.book-spread { cursor:pointer; }
.book-spread button,.book-spread a,.book-spread input { cursor:auto; }

/* Every destination opens one level above the courtyard. */
.world-ready main>.story-invitation,.world-ready main>.game-library,.world-ready main>.studio-summary { display:none; }
.world-ready .world-notice:empty { min-height:0; margin:0; }
.world-ready .world-bottom { justify-content:center; flex-wrap:wrap; gap:10px; padding:18px 0; }
.world-ready .world-bottom a { border:1px solid #506264; border-radius:24px; padding:9px 18px; min-height:44px; }
.world-ready .world-bottom a span { font-size:15px; }
.marker-fire { left:43%; top:80%; }
.marker-guard { left:48%; top:53%; }
.marker-gate { top:32%; }
body:has(.map-popup[open]) { overflow:hidden; }
body:has(.map-popup[open]) .world * { animation-play-state:paused !important; }
.map-popup { margin:auto; padding:0; width:min(980px,calc(100% - 48px)); max-width:none; max-height:calc(100dvh - 48px); color:#eee8d6; border:1px solid #a18a5b; border-radius:16px; background:#12272f; box-shadow:0 30px 90px #0009; overflow:hidden; }
.map-popup::backdrop { background:#06131bba; }
.map-panel-shell { display:flex; flex-direction:column; max-height:calc(100dvh - 50px); }
.map-panel-toolbar { display:flex; justify-content:space-between; align-items:center; flex-shrink:0; gap:16px; padding:20px 26px; border-bottom:1px solid #43524c; background:#10232b; }
.map-panel-toolbar .world-eyebrow { font-size:10px; margin:0 0 4px; }
.map-panel-toolbar h2 { font-size:26px; font-weight:400; margin:0; line-height:1.2; }
.map-panel-toolbar button { flex-shrink:0; min-height:44px; padding:8px 14px; border:1px solid #647067; background:none; color:#f0e4c8; border-radius:24px; cursor:pointer; }
.map-panel-content { overflow-y:auto; overscroll-behavior:contain; min-height:0; padding:24px 26px; }
.guide-tabs { display:flex; gap:8px; margin-bottom:20px; }
.guide-tabs button,.guide-index button,.guide-navigation button { cursor:pointer; border:1px solid #536259; background:transparent; color:#e8ddc5; min-height:44px; padding:9px 14px; border-radius:8px; }
.guide-tabs button[aria-pressed=true],.guide-index button[aria-pressed=true] { background:#dfc18a; color:#172c32; border-color:#dfc18a; }
.guide-scene { display:grid; grid-template-columns:minmax(200px,.85fr) 1.15fr; gap:34px; align-items:center; }
.guide-scene video { width:100%; max-height:48dvh; aspect-ratio:9/16; background:#08171c; border-radius:10px; object-fit:contain; }
.guide-scene h3 { font-size:34px; font-weight:400; line-height:1.3; margin:0 0 18px; }
.guide-scene p:not(.world-eyebrow) { font-size:20px; line-height:1.7; margin:0; color:#dce1d3; }
.guide-index { display:grid; grid-template-columns:repeat(5,1fr); gap:7px; margin-top:22px; }
.guide-index button { font-size:15px; text-align:left; line-height:1.4; }
.guide-index button span { display:block; color:#a49c87; font-size:12px; }
.guide-index button[aria-pressed=true] span { color:#314647; }
.guide-navigation { display:flex; justify-content:space-between; align-items:center; gap:10px; margin-top:16px; }
.guide-navigation button:disabled { opacity:.35; cursor:default; }
.guide-navigation span { font-size:14px; color:#c0c9c0; }
.map-popup[data-panel=stores] { width:min(720px,calc(100% - 40px)); }
.store-banner { display:flex; align-items:center; gap:22px; padding:8px 0 26px; }
.store-banner img { width:90px; height:90px; border-radius:20px; }
.store-banner p:last-child { margin:0; font-size:22px; }
.map-popup .store-grid { margin:0; gap:12px; grid-template-columns:1fr 1fr; }
.map-popup .store-card { min-height:104px; background:#203a42; border-color:#718173; color:#f2e6cd; flex-direction:column; align-items:flex-start; justify-content:center; gap:8px; }
.map-popup .store-name { white-space:nowrap; }
@media (hover: hover) and (pointer: fine) {
.map-popup .store-card.is-live:hover { background:#2d4c51; transform:translateY(-2px); }}

.map-popup .store-card.is-coming { opacity:.55; }
.map-popup .store-name { font-size:22px; }
.map-popup .store-state { font-size:14px; color:#d5c393; }
.map-popup[data-panel=game] { width:min(460px,calc(100% - 32px)); height:calc(100dvh - 32px); max-height:920px; }
.map-popup[data-panel=game] .map-panel-shell { height:100%; max-height:100%; }
.map-popup[data-panel=game] .map-panel-content { flex:1; display:flex; flex-direction:column; padding:0; overflow:hidden; }
.mini-note { font-size:13px; text-align:center; color:#c5cebf; margin:0; padding:8px 12px; flex-shrink:0; }
.map-minigame { display:block; border:0; width:100%; flex:1; min-height:0; background:#dbe8d8; }
.map-popup .studio-summary { padding:0; }
.map-popup .studio-summary-grid { display:block; padding:0; }
.map-popup .studio-summary h2 { font-size:30px; }
.map-popup .studio-summary p { color:#dbe0d2; }
.map-popup button:focus-visible,.map-popup a:focus-visible { outline:3px solid #f3d390; outline-offset:3px; }
.world-bottom .resume-link { margin:0; padding:9px 18px; min-height:44px; border:1px solid #8e805c; border-radius:24px; background:transparent; color:#e4c58d; cursor:pointer; font-size:15px; }
@media(max-width:699px) {
 .marker-guard { left:43%; top:47%; }
 .marker-fire { left:44%; top:81%; }
 .marker-gate { left:64%; top:25%; }
 .world-marker .marker-label { font-size:13px; padding:4px 8px; }
 .world-ready .world-bottom { gap:6px; padding:14px 0; }
 .world-ready .world-bottom a { padding:7px 10px; flex:initial; font-size:14px; }
 .world-ready .world-bottom a span { font-size:14px; }
 .map-popup { width:calc(100% - 20px); max-height:calc(100dvh - 20px); border-radius:12px; }
 .map-panel-shell { max-height:calc(100dvh - 22px); }
 .map-panel-toolbar { padding:12px 14px; gap:10px; }
 .map-panel-toolbar h2 { font-size:23px; }
 .map-panel-toolbar button { min-width:44px; padding:8px; }
 .map-panel-toolbar button span { display:none; }
 .map-panel-content { padding:16px; }
 .guide-tabs { margin-bottom:14px; }
 .guide-tabs button { flex:1; padding:8px; }
 .guide-scene { grid-template-columns:1fr; gap:16px; }
 .guide-scene video { max-height:31dvh; }
 .guide-scene h3 { font-size:26px; margin-bottom:10px; }
 .guide-scene p:not(.world-eyebrow) { font-size:18px; line-height:1.65; }
 .guide-index { grid-template-columns:repeat(5,1fr); gap:4px; margin-top:16px; }
 .guide-index button { font-size:12px; padding:6px 4px; text-align:center; }
 .guide-navigation { position:sticky; bottom:-16px; padding:10px 0; background:#12272f; }
 .guide-navigation button { padding:8px; font-size:14px; }
 .map-popup[data-panel=stores] { width:calc(100% - 20px); }
 .store-banner { gap:14px; padding-bottom:20px; }
 .store-banner img { width:64px; height:64px; }
 .store-banner p:last-child { font-size:20px; }
 .map-popup .store-grid { gap:8px; }
 .map-popup .store-card { padding:16px 12px; min-height:100px; }
 .map-popup .store-name { font-size:20px; }
 .map-popup[data-panel=game] { width:100%; height:100dvh; max-height:none; border:0; border-radius:0; }
 .map-popup[data-panel=game] .map-panel-toolbar { padding-top:max(10px,env(safe-area-inset-top)); }
}
@media(prefers-reduced-motion:reduce) { .map-popup * { transition:none !important; } }

.courtyard-page .game-details { display:none; }
.courtyard-page.world-ready .bgm-player { display:none; }

.mobile-hint { display:none; }
/* Phones have their own menu below the scene, rather than miniature map labels. */
@media(max-width:699px) {
 .courtyard-page { -webkit-text-size-adjust:100%; }
 .courtyard-page .site-header { --header-height:60px; }
 .courtyard-page .primary-nav a { font-size:17px; min-height:46px; }
 .world { padding:24px 18px 0; }
 .world-heading { gap:18px; padding-bottom:18px; }
 .world-eyebrow { font-size:12px; letter-spacing:.08em; line-height:1.6; }
 .world h1 { font-size:clamp(27px,7.5vw,34px); line-height:1.35; word-break:keep-all; }
 .world-intro { font-size:17px; line-height:1.65; margin-top:10px; color:#c4d1d0; }
 .world-controls { display:grid; grid-template-columns:1fr 48px; width:100%; gap:10px; }
 .time-switch { grid-column:1/-1; display:flex; padding:4px; border-radius:14px; }
 .time-switch button { flex:1; min-height:46px; font-size:18px; border-radius:10px; }
 .quiet-button { min-height:46px; font-size:17px; border-radius:12px; }
 .motion-button { width:48px; margin:0; font-size:20px; }
 .world-stage { margin:0 -18px; }
 .world-landscape { aspect-ratio:1.45; }
 .world-marker { display:none; }
 .world-caption { padding:12px 18px; gap:6px; font-size:15px; line-height:1.5; }
 .world-place { font-size:12px; }
 .world-caption .desktop-hint { display:none; }
 .world-caption .mobile-hint { display:block; color:#c4d1d0; }
 .world-ready .world-bottom,.world-bottom { display:grid; grid-template-columns:1fr 1fr; gap:10px; padding:18px 0 24px; }
 .world-ready .world-bottom a,.world-bottom a { display:flex; align-items:center; justify-content:center; min-height:58px; margin:0; padding:12px 10px; border:1px solid #627776; border-radius:12px; background:#142c34; text-align:center; }
 .world-ready .world-bottom a span,.world-bottom a span,:lang(en) .world-bottom a span { font-size:18px; line-height:1.4; }
 .world-bottom [data-open-story] { grid-column:1/-1; grid-row:1; background:#e3c38a !important; color:#11232b; border-color:#e3c38a !important; min-height:62px !important; }
 .world-bottom [data-open-story] span { color:#11232b; }
 .world-bottom [data-open-story]::before { content:'✦'; margin-right:10px; font-size:20px; }
 .world-bottom .resume-link { grid-column:1/-1; min-height:48px; font-size:17px; border-radius:12px; }
 .world-credits { padding:0 18px 24px; font-size:14px; line-height:1.7; }
 .world-credits summary { min-height:44px; padding:10px 0; font-size:16px; }
 .story-reader { padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom); background:#0b1c24; }
 .reader-toolbar { padding:12px 14px; gap:8px; border-bottom:1px solid #405453; background:#0b1c24; }
 .reader-toolbar h2 { font-size:18px; line-height:1.4; }
 .reader-kicker { display:none; }
 .reader-actions { gap:6px; }
 .reader-actions button { font-size:16px; min-height:46px; min-width:46px; padding:8px 10px; border-radius:10px; border-color:#536868; }
 .reader-pages { padding:14px 12px 22px; background:#142a31; }
 .book-spread { border-width:2px; border-radius:10px; box-shadow:0 5px 0 #c5b697,0 9px 16px #0003; cursor:auto; }
 .book-illustration { height:clamp(180px,28dvh,260px); }
 .book-illustration>img { inset:12px 12px 18px; width:calc(100% - 24px); height:calc(100% - 30px); }
 .art-chapter { display:none; }
 .book-page { padding:22px 22px 40px; }
 .book-page h3 { font-size:27px; line-height:1.4; margin:0 0 20px; }
 .story-lines { font-size:20px; line-height:1.85; color:#302c25; word-break:normal; overflow-wrap:break-word; }
 .story-lines p { margin-bottom:22px; }
 .story-lines .speaker { font-size:16px; color:#65512c; margin-bottom:6px; }
 .page-eyebrow { font-size:13px; line-height:1.6; letter-spacing:.04em; color:#705b36; }
 .folio { font-size:14px; bottom:14px; }
 .book-gesture-hint { display:none; }
 .reader-footer { display:grid; grid-template-columns:1fr auto 1fr; gap:12px; margin:0; padding:12px 14px 8px; background:#0b1c24; border-top:1px solid #405453; }
 .reader-footer button { min-height:50px; min-width:0; padding:10px; font-size:17px; border-radius:12px; }
 .reader-footer button[data-story-next] { background:#e3c38a; color:#14242a; border-color:#e3c38a; }
 .page-progress { font-size:15px; color:#d5ddcf; white-space:nowrap; }
 .reader-settings { padding:0 14px 8px; gap:10px; font-size:15px; background:#0b1c24; }
 .reader-settings label { gap:6px; }
 .reader-settings input { width:100px; min-height:40px; }
 .reader-settings a { display:flex; align-items:center; min-height:44px; }
 .story-contents { margin:0; padding:10px 12px; max-height:35dvh; gap:8px; background:#0b1c24; }
 .story-contents button { font-size:16px; min-height:48px; padding:10px; }
 .story-gate { font-size:18px; line-height:1.7; }
 .story-gate button,.story-gate a { min-height:48px; font-size:17px; padding:12px; }
 .map-popup,.map-popup[data-panel=stores] { width:100%; height:100dvh; max-height:none; border:0; border-radius:0; }
 .map-panel-shell { height:100%; max-height:100%; padding-top:env(safe-area-inset-top); }
 .map-panel-toolbar { padding:14px 18px; }
 .map-panel-toolbar h2 { font-size:25px; }
 .map-panel-toolbar .world-eyebrow { font-size:12px; }
 .map-panel-toolbar button { min-width:48px; min-height:48px; font-size:19px; }
 .map-panel-content { padding:18px 18px max(18px,env(safe-area-inset-bottom)); }
 .guide-tabs button { font-size:18px; min-height:48px; }
 .guide-scene h3 { font-size:28px; }
 .guide-scene p:not(.world-eyebrow) { font-size:19px; line-height:1.75; }
 .guide-index { grid-template-columns:1fr 1fr; gap:8px; }
 .guide-index button { display:flex; align-items:center; gap:8px; min-height:50px; text-align:left; padding:10px; font-size:16px; }
 .guide-index button span { font-size:14px; }
 .guide-navigation { display:grid; grid-template-columns:1fr auto 1fr; gap:8px; bottom:-18px; padding:12px 0 max(12px,env(safe-area-inset-bottom)); }
 .guide-navigation button { min-height:48px; font-size:17px; padding:10px 8px; }
 .guide-navigation span { font-size:16px; white-space:nowrap; }
 .map-popup .store-grid { grid-template-columns:1fr; }
 .map-popup .store-card { min-height:88px; padding:18px; }
 .map-popup .store-state { font-size:16px; }
 .mini-note { font-size:15px; line-height:1.5; }
}
@media(max-width:359px) {
 .world { padding-inline:14px; }
 .world-stage { margin-inline:-14px; }
 .world h1 { font-size:26px; }
 .reader-toolbar { padding-inline:10px; }
 .reader-toolbar h2 { font-size:16px; }
 .reader-actions { gap:4px; }
 .reader-actions button { padding:8px; }
 .book-page { padding-inline:18px; }
 .reader-footer { gap:8px; padding-inline:10px; }
 .reader-footer button { font-size:16px; padding:8px; }
 .reader-settings { padding-inline:10px; }
}

/* Reading desk: full artwork, quiet type, controls always within reach. */
.courtyard-page,.story-reader,.map-popup,.story-text-page { color-scheme:dark; --reading-font:'Apple SD Gothic Neo','Malgun Gothic','Hiragino Kaku Gothic ProN','Yu Gothic',system-ui,sans-serif; }
.story-reader { height:100dvh; overflow:hidden; padding:16px max(16px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left)); }
.reader-shell { height:100%; min-height:0; display:flex; flex-direction:column; }
.reader-toolbar,.reader-footer,.reader-settings,.story-contents { flex-shrink:0; }
.reader-toolbar { position:relative; top:auto; padding:0 0 12px; }
.reader-toolbar>div:first-child { min-width:0; }
.reader-toolbar h2 { font-size:20px; line-height:1.3; overflow-wrap:anywhere; }
.reader-pages { flex:1; min-height:0; overflow-y:auto; overscroll-behavior:contain; padding:0 3px 12px; scrollbar-width:thin; }
.reader-footer { position:relative; bottom:auto; display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); align-items:center; gap:12px; margin:0; padding:12px 0 6px; background:transparent; }
.reader-footer button { min-height:48px; min-width:0; width:fit-content; max-width:100%; padding:10px 20px; border-radius:10px; }
.reader-footer button:last-child { justify-self:end; background:#e3c38a; color:#14242a; border-color:#e3c38a; }
.reader-settings { padding:0; min-height:38px; flex-wrap:wrap; gap:8px 24px; }
.reader-settings a { display:inline-flex; align-items:center; min-height:44px; text-underline-offset:4px; }
.reader-settings input { min-height:32px; }
.book-gesture-hint { display:none; }
.book-spread { cursor:auto; }
.book-spread:not(.text-spread) { display:grid; grid-template-columns:minmax(0,1fr); min-height:100%; background:#10232c; overflow:clip; }
.book-spread:not(.text-spread)::after { display:none; }
.book-spread:not(.text-spread)>.book-left { grid-area:1/1; background:transparent; }
.book-spread:not(.text-spread) .book-illustration { height:auto; min-height:0; }
.book-spread:not(.text-spread) .book-illustration>img { position:relative; display:block; inset:auto; width:100%; height:auto; filter:none; }
.book-spread:not(.text-spread)>.book-page { grid-area:1/1; position:sticky; bottom:0; align-self:end; z-index:1; margin:0; padding:0; min-height:0; color:#fff6e5; background:linear-gradient(0deg,#08131bf7,#08131bed 80%,#08131bdd); }
.story-text-toggle { display:block; width:100%; min-height:48px; padding:12px 24px; border:0; border-bottom:1px solid #ffffff26; background:#10232ceb; color:#ffe0a1; text-align:right; font:inherit; cursor:pointer; }
.story-copy { padding:22px 32px 28px; }
.book-spread:not(.text-spread) .story-copy { max-height:min(36dvh,330px); overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; }
.story-lines { font-family:var(--reading-font); font-size:18px; line-height:1.9; letter-spacing:0; word-break:normal; overflow-wrap:break-word; }
.story-lines p { max-width:68ch; margin:0 auto 22px; }
.story-lines .speaker { font-family:var(--reading-font); font-size:13px; font-weight:700; letter-spacing:.02em; }
.book-spread:not(.text-spread) .story-lines,.book-spread:not(.text-spread) .book-page h3 { color:#fff6e5; }
.book-spread:not(.text-spread) .story-lines .narration { color:#eee5d6; }
.book-spread:not(.text-spread) .story-lines .speaker,.book-spread:not(.text-spread) .page-eyebrow { color:#f0ce91; }
.book-spread:not(.text-spread) .folio,.book-spread:not(.text-spread) .art-chapter,.book-spread:not(.text-spread) .page-ornament { display:none; }
.story-copy>h3,.story-copy>.page-eyebrow { max-width:68ch; margin-inline:auto; }
.text-spread .story-copy { padding:0; }
.text-spread .story-lines { color:#3c342b; }
.text-spread .story-lines .narration { color:#514737; }
.story-copy:focus-visible { outline:2px solid #f0ce91; outline-offset:-4px; }
.story-contents { max-height:30dvh; margin-bottom:12px; }
.story-contents button { min-height:44px; border-radius:6px; }
.story-gate button.secondary { color:#f0ce91; border-color:#a39376; }
.text-spread .story-gate button.secondary { color:#51432e; }
.world-marker:focus-visible .marker-point { outline:3px solid #ffe0a1; outline-offset:4px; }

/* The title remains readable; selection lights the scenery without opening a tooltip. */
.world-marker.scenery-target { display:block; transform:none; cursor:pointer; outline:none; }
.world-marker .marker-name { color:#fff3d8; font:600 15px/1.4 var(--reading-font,system-ui,sans-serif); background:rgb(8 23 33 / 78%); border:1px solid #e1c59266; border-radius:5px; box-shadow:0 2px 8px #0004; text-shadow:0 1px 2px #0009; pointer-events:none; transition:background .18s,border-color .18s,box-shadow .18s,scale .18s; }
.scenery-target .marker-name { position:absolute; top:calc(50% - 68px); left:50%; transform:translateX(-50%); padding:7px 10px; }
.scenery-target .marker-point,.scenery-target .marker-label { display:none; }
.scenery-selection { position:absolute; inset:-8%; pointer-events:none; opacity:0; border-radius:50%; background:radial-gradient(ellipse at center, rgb(255 230 165 / 30%) 0%, rgb(255 226 151 / 20%) 42%, rgb(255 224 145 / 8%) 62%, transparent 76%); mix-blend-mode:screen; transition:opacity .18s ease; }
.world .scenery-target:focus-visible { z-index:4; outline:none; }
.scenery-target:focus-visible .scenery-selection,.scenery-target:active .scenery-selection { opacity:1; }
.world .scenery-target:focus-visible .marker-name,.world .scenery-target:active .marker-name { background:rgb(38 42 36 / 92%); border-color:#ffe0a1; box-shadow:0 0 0 2px #e8bf6850,0 0 16px #e8bf6855; scale:1.06; }
@media (hover:hover) and (pointer:fine) {
 .scenery-target:hover { z-index:4; }
 .scenery-target:hover .scenery-selection { opacity:1; }
 .world .scenery-target:hover .marker-name { background:rgb(38 42 36 / 92%); border-color:#ffe0a1; box-shadow:0 0 0 2px #e8bf6850,0 0 16px #e8bf6855; scale:1.06; }
}
@media(max-width:699px) { .scenery-selection { display:none; } }
@media(prefers-reduced-motion:reduce) { .scenery-selection,.world-marker .marker-name { transition:none; } }
.guide-scene p:not(.world-eyebrow),.map-popup .studio-summary-copy,.world-intro { font-family:var(--reading-font); }
.map-panel-toolbar>div { min-width:0; }
.map-panel-toolbar h2 { overflow-wrap:anywhere; text-wrap:balance; }
.guide-tabs button { flex:1; min-width:0; }
.guide-index button { overflow-wrap:anywhere; }
.guide-index button span { color:#c3beac; }
.map-popup .store-card.is-coming { opacity:1; background:#162d35; color:#b8c5c4; }
.world-credits summary { min-height:44px; padding-block:10px; }
.world-credits p { line-height:1.8; overflow-wrap:anywhere; }
.world-credits a { text-underline-offset:3px; }
.story-text-page { background:#0b1c24; color:#eee5d6; }
.story-text-page header,.story-text-page main,.story-text-page footer { max-width:960px; }
.story-text-page header { padding-top:48px; }
.story-text-page header p { margin-top:28px; letter-spacing:.08em; }
.story-text-page h1 { font-size:clamp(32px,5vw,54px); margin:12px 0 28px; }
.story-text-page h2,.story-text-page h3 { text-wrap:balance; }
.story-text-page section { display:block; margin:0 0 48px; padding:0 0 36px; border-bottom:1px solid #3e5055; }
.story-text-page section img { width:100%; height:auto; max-height:none; object-fit:contain; border-radius:8px; margin-bottom:28px; }
.story-text-page section>div { max-width:68ch; margin-inline:auto; }
.story-text-page section h3 { font-size:28px; color:#f0ce91; margin:0 0 24px; }
.story-text-page .text-dialogue { font-family:var(--reading-font); font-size:18px; line-height:1.95; overflow-wrap:break-word; }
.story-text-page .text-dialogue p { margin:0 0 24px; }
.story-text-page .text-dialogue strong { display:inline-block; font-size:14px; color:#f0ce91; }
.story-text-page section.text-only { background:#112730; color:#eee5d6; padding:28px; border-radius:8px; }
.story-text-page .text-only .text-dialogue { columns:1; }
.story-text-page .text-chapter { padding:30px 0 18px; color:#f0ce91; scroll-margin-top:100px; }
.reading-nav { position:sticky; top:0; z-index:4; display:flex; flex-wrap:wrap; gap:4px 16px; align-items:center; padding:10px max(20px,calc((100vw - 912px)/2)); background:#0b1c24f5; border-block:1px solid #3e5055; }
.reading-nav a { display:inline-flex; align-items:center; min-height:44px; color:#f0ce91; text-decoration:underline; text-underline-offset:5px; }
.story-text-page footer a,.story-text-page header>a { display:inline-flex; align-items:center; min-height:44px; }
@media (hover:hover) and (pointer:fine) {
 .story-text-toggle:hover,.story-contents button:hover { background:#25404a; }
 .reader-footer button:last-child:hover:not(:disabled) { background:#f3d8a6; }
}
@media(max-width:699px) {
 .story-reader { padding:env(safe-area-inset-top) max(0px,env(safe-area-inset-right)) env(safe-area-inset-bottom) max(0px,env(safe-area-inset-left)); }
 .reader-toolbar { padding:10px 12px; gap:8px; }
 .reader-toolbar h2 { font-size:17px; }
 .reader-actions button { min-width:44px; min-height:44px; padding:8px; font-size:14px; }
 .reader-pages { padding:0 0 12px; }
 .book-spread:not(.text-spread) { border:0; border-radius:0; }
 .story-copy { padding:20px 22px 24px; }
 .book-spread:not(.text-spread) .story-copy { max-height:min(35dvh,270px); }
 .story-lines { font-size:18px; line-height:1.85; }
 .story-text-toggle { padding-inline:20px; }
 .reader-footer { gap:8px; padding:10px 12px 4px; }
 .reader-footer button { width:100%; min-height:46px; padding:9px 8px; font-size:15px; }
 .page-progress { font-size:13px; }
 .reader-settings { padding:0 12px; font-size:13px; justify-content:space-between; }
 .reader-settings input { width:82px; }
 .story-contents { margin:0; max-height:28dvh; }
 .story-contents button { font-size:14px; }
 .text-spread .book-page { padding-inline:22px; }
 .map-panel-toolbar { padding:12px 16px; }
 .guide-scene p:not(.world-eyebrow) { font-size:17px; line-height:1.8; }
 .guide-scene h3 { font-size:26px; }
 .guide-tabs button { font-size:16px; }
 .guide-index button { font-size:15px; }
 .story-text-page header,.story-text-page main,.story-text-page footer { padding-inline:22px; }
 .story-text-page section.text-only { padding:22px 18px; }
 .reading-nav { gap:2px 16px; padding:6px 22px; font-size:14px; }
}
@media(max-height:500px) {
 .reader-toolbar { padding-block:4px; }
 .reader-settings { display:none; }
 .reader-footer { padding-block:6px; }
 .book-spread:not(.text-spread) .story-copy { max-height:32dvh; }
}

[data-book-page]:focus { outline:none; }
@media(max-width:699px) {
 .book-spread:not(.text-spread) { box-shadow:none; }
 .book-spread:not(.text-spread) .book-left { min-height:100%; }
 .book-spread:not(.text-spread) .book-illustration { min-height:100%; }
}
.story-copy>h3,.story-copy>.page-eyebrow,.story-copy>.story-lines,.story-copy>.story-gate { width:min(100%,760px); max-width:none; margin-inline:auto; }
.story-copy .story-lines p { max-width:none; }

/* A single reading surface on phones: prose is no longer a nested scroll box. */
.story-lines,.text-dialogue { white-space:pre-line; }
:lang(ko) .story-lines,:lang(ko) .text-dialogue { word-break:keep-all; overflow-wrap:break-word; }
@media(max-width:699px), (max-height:500px) {
 .reader-pages { padding:0; scroll-padding-top:12px; }
 .book-spread:not(.text-spread) .book-illustration { background:#08131b; }
 .story-text-toggle { position:sticky; top:0; z-index:2; }
 .book-spread:not(.text-spread)>.book-page { position:relative; bottom:auto; align-self:start; margin-top:clamp(130px,28dvh,260px); background:linear-gradient(#08131be8,#08131b 180px); }
 .book-spread:not(.text-spread) .story-copy { max-height:none; overflow:visible; padding:20px 20px 32px; }
 .book-spread:not(.text-spread):has(.story-copy[hidden])>.book-page { align-self:end; margin-top:0; }
 .story-lines { font-size:19px; line-height:1.9; }
 .story-lines p { margin-bottom:26px; }
 .story-lines .speaker { font-size:14px; margin-bottom:4px; }
 .story-copy>h3 { font-size:25px; margin-bottom:24px; }
 .reader-kicker { display:none; }
 .reader-toolbar { padding-block:4px; }
 .reader-footer { padding-block:5px; }
}
/* Revised story: artwork and dialogue have separate, predictable space. */
.world { max-width:1320px; padding-top:32px; }
.world-heading { padding-bottom:22px; align-items:center; }
.world h1 { font-size:clamp(28px,3vw,42px); }
.world-eyebrow { letter-spacing:.08em; }
.world-landscape { aspect-ratio:1.85; }
.world-caption { padding-block:12px; }
.world-ready .world-bottom { gap:8px; }
.world-ready .world-bottom a { border-radius:8px; }
.story-reader { background:#0b1c24; }
.reader-shell { width:min(1320px,100%); }
.reader-toolbar { align-items:center; }
.reader-kicker { display:none; }
.reader-pages { display:flex; padding:0; background:#10232c; border:1px solid #34484f; border-radius:12px; }
.book-spread:not(.text-spread) { flex:1; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); min-height:100%; border:0; border-radius:0; box-shadow:none; overflow:visible; }
.book-spread:not(.text-spread)>.book-left { grid-area:1/1; position:sticky; top:0; align-self:start; height:100%; min-height:0; background:#08171f; }
.book-spread:not(.text-spread) .book-illustration { height:100%; min-height:0; display:flex; align-items:center; justify-content:center; }
.book-spread:not(.text-spread) .book-illustration>img { width:100%; height:100%; max-height:calc(100dvh - 170px); object-fit:contain; }
.book-spread:not(.text-spread)>.book-page { grid-area:1/2; position:relative; bottom:auto; align-self:start; margin:0; background:#10232c; }
.book-spread:not(.text-spread) .story-copy { max-height:none; overflow:visible; padding:28px 32px 36px; }
.story-text-toggle { background:#10232c; color:#b9caca; padding:10px 24px; min-height:44px; font:14px/1.5 var(--reading-font); text-align:right; }
.story-copy>h3 { font-size:30px; line-height:1.4; margin-bottom:24px; }
.story-lines { font-size:18px; line-height:1.9; }
.story-lines .speaker { display:block; margin-bottom:5px; }
.story-art-shade { display:none; }
.reader-footer { border-top:0; }
.reader-settings { color:#b3c1c0; }
.story-contents { grid-template-columns:repeat(3,minmax(0,1fr)); }
@media(min-width:700px) {
 .book-spread:not(.text-spread):has(.story-copy[hidden]) { grid-template-columns:1fr; }
 .book-spread:not(.text-spread):has(.story-copy[hidden])>.book-page { grid-area:1/1; align-self:end; }
}
@media(max-width:699px) {
 .world { padding:24px 18px 0; }
 .world-heading { gap:18px; padding-bottom:18px; }
 .world h1 { font-size:28px; }
 .world-intro { font-size:15px; line-height:1.7; margin-top:10px; }
 .world-eyebrow { font-size:10px; margin-bottom:10px; }
 .world-controls { display:flex; flex-wrap:nowrap; width:100%; gap:8px; }
 .time-switch { flex:1; width:auto; padding:3px; border-radius:10px; }
 .time-switch button { flex:1; min-height:40px; padding:6px 9px; font-size:14px; border-radius:7px; }
 .world-controls .quiet-button { flex:none; min-height:48px; padding:8px 12px; border-radius:10px; font-size:14px; }
 .world-controls .motion-button { width:44px; padding:8px; }
 .world-landscape { aspect-ratio:1.5; }
 .world-caption { padding:10px 18px; }
 .world-place { display:none; }
 .world-caption .mobile-hint { font:13px/1.6 var(--reading-font); }
 .world-ready .world-bottom,.world-bottom { padding:14px 0 18px; gap:8px; }
 .world-ready .world-bottom a,.world-bottom a { min-height:48px; padding:10px; border-radius:8px; }
 .world-ready .world-bottom a span,.world-bottom a span,:lang(en) .world-bottom a span { font-size:16px; }
 .world-bottom [data-open-story] { min-height:52px !important; }
 .reader-toolbar { padding:8px 12px; }
 .reader-toolbar h2 { font-size:17px; }
 .reader-pages { border:0; border-radius:0; display:block; }
 .book-spread:not(.text-spread) { display:flex; flex-direction:column; min-height:100%; }
 .book-spread:not(.text-spread)>.book-left { position:relative; width:100%; height:auto; min-height:0; }
 .book-spread:not(.text-spread) .book-illustration { min-height:0; height:auto; }
 .book-spread:not(.text-spread) .book-illustration>img { height:auto; width:100%; max-height:36dvh; object-fit:contain; }
 .book-spread:not(.text-spread)>.book-page { width:100%; margin-top:0; background:#10232c; }
 .book-spread:not(.text-spread) .story-copy { padding:22px 22px 30px; }
 .book-spread:not(.text-spread):has(.story-copy[hidden]) .book-illustration>img { max-height:none; }
 .story-text-toggle { position:static; padding:10px 20px; }
 .story-lines { font-size:17px; line-height:1.85; }
 .story-copy>h3 { font-size:25px; margin-bottom:20px; }
 .story-lines p { margin-bottom:22px; }
 .story-contents { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .reader-footer { padding:8px 12px 4px; }
 .reader-settings { min-height:36px; }
 .reader-settings a { min-height:36px; }
}
@media(max-width:359px) {
 .world { padding-inline:14px; }
 .world-controls { gap:5px; }
 .world-controls .quiet-button { padding-inline:8px; font-size:13px; }
 .time-switch button { padding-inline:7px; }
 .reader-toolbar h2 { font-size:15px; }
}
.book-spread:not(.text-spread) .book-illustration { background:#08171f; }
.reader-actions button { border-radius:8px; min-height:44px; }
.story-contents h3 { grid-column:1/-1; margin:12px 0 0; font-size:15px; color:#f0ce91; }
.story-contents button { text-align:left; }

/* Character colors are shared by the story reader and the text edition. */
[data-speaker="1"] { --speaker-color:#ffd479; } /* Pawn */
[data-speaker="2"] { --speaker-color:#b6d99b; } /* Old man */
[data-speaker="3"] { --speaker-color:#ff9e93; } /* Mars */
[data-speaker="4"] { --speaker-color:#9dc8ff; } /* Young guardian */
[data-speaker="5"] { --speaker-color:#79e1d6; } /* Guardian spirit */
[data-speaker="6"] { --speaker-color:#c3b8ff; } /* Knight */
[data-speaker="7"] { --speaker-color:#f3b8df; } /* Future Pawn */
[data-speaker="8"] { --speaker-color:#a5dce9; } /* Soldier */
[data-speaker="9"] { --speaker-color:#efb48b; } /* Elder Troll */
.story-text-page .text-dialogue p[data-speaker] { color:#eee5d6; }
.story-text-page .text-dialogue p[data-speaker] strong { color:var(--speaker-color); }

/* The courtyard is the only entry surface; content opens from its scenery. */
.courtyard-page .world-bottom,.courtyard-page .story-invitation { display:none; }
.marker-gallery { left:85%; top:34%; }
.guide-scene > img { display:block; width:100%; max-height:65dvh; object-fit:contain; background:#08151b; border-radius:12px; }
.map-gallery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.map-gallery figure { margin:0; }
.map-gallery img { display:block; width:100%; height:auto; border-radius:8px; }
.map-gallery figcaption { padding:10px 0; color:#e6dcc7; text-align:center; }
.life-popup .courtyard-life { margin:0; padding:20px; }
.life-popup { overflow:auto; }
.reader-resume { align-self:center; margin:0 0 8px; padding:8px 18px; }
@media(max-width:699px) {
 .courtyard-page .world { padding-top:16px; }
 .courtyard-page .world-heading { gap:12px; padding-bottom:14px; }
 .courtyard-page .world-controls { display:flex; flex-wrap:wrap; gap:6px; }
 .courtyard-page .time-switch { flex:1; }
 .courtyard-page .time-switch button { min-height:44px; padding:6px 10px; font-size:16px; }
 .courtyard-page .quiet-button { font-size:15px; min-height:44px; padding:8px 12px; }
 .courtyard-page .motion-button { width:44px; }
 .courtyard-page .world-landscape { aspect-ratio:1.03; }
 .courtyard-page .world-marker { display:flex; gap:5px; }
 .courtyard-page .marker-point { width:44px; height:44px; font-size:21px; }
 .courtyard-page .marker-label { max-width:94px; white-space:normal; text-align:center; padding:4px 6px; font-size:13px; line-height:1.35; word-break:keep-all; }
 .courtyard-page .marker-forest { left:16%; top:60%; }
 .courtyard-page .marker-gate { left:57%; top:21%; }
 .courtyard-page .marker-guard { left:53%; top:49%; }
 .courtyard-page .marker-fire { left:43%; top:82%; }
 .courtyard-page .marker-book { left:83%; top:79%; }
 .courtyard-page .marker-gallery { left:84%; top:32%; }
 .courtyard-page .world-landscape .world-familiar { left:27%; top:32%; }
 .guide-scene > img { max-height:48dvh; }
 .map-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
 .map-gallery figcaption { font-size:14px; }
}

@media(max-width:699px) {
 .courtyard-page .world-marker.scenery-target { width:auto!important; height:auto!important; min-width:44px; min-height:44px; justify-content:center; gap:0; transform:translate(-50%,-50%); }
 .courtyard-page .scenery-target .marker-name { position:static; transform:none; padding:7px 10px; font-size:14px; line-height:1.4; color:#fff3d8; background:rgb(8 23 33 / 78%); border:1px solid #e1c59266; border-radius:5px; box-shadow:0 2px 8px #0004; text-shadow:0 1px 2px #0009; }
 .courtyard-page .scenery-target .scenery-resource { display:none; }
 .courtyard-page .scenery-target .marker-point,.courtyard-page .scenery-target .marker-label { display:none; }
 .courtyard-page .marker-forest { left:16%!important; top:60%!important; }
 .courtyard-page .marker-gate { left:57%!important; top:21%!important; }
 .courtyard-page .marker-guard { left:53%!important; top:49%!important; }
 .courtyard-page .marker-fire { left:43%!important; top:82%!important; }
 .courtyard-page .marker-book { left:83%!important; top:79%!important; }
 .courtyard-page .marker-gallery { left:84%!important; top:32%!important; }
}
