/* A small storybook interface, with the island always at the center. */
#open-journal{pointer-events:auto;min-height:44px;border-radius:24px;background:#fff9edeb;border:1px solid #fff9;padding:9px 15px;color:#6c5a83;font:14px Jua,sans-serif}
#quest-tracker{position:fixed;z-index:4;top:92px;left:28px;width:278px;border:1px solid #fff9;border-radius:20px;padding:16px 18px;background:#fffaf0ed;box-shadow:0 8px 30px #36544b12;backdrop-filter:blur(12px);color:#655579}
.quest-kicker{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;color:#a08aa9;font-size:9px;letter-spacing:.09em}
#quest-journal{background:none;color:#9b84a7;padding:4px;font-size:10px;letter-spacing:0}
#quest-title{display:block;font:21px Jua,sans-serif;font-weight:400;letter-spacing:-.02em}
#quest-hint{font-size:12px;line-height:1.75;color:#8a7e90;margin:9px 0 12px}
.quest-action{display:block;width:100%;min-height:44px;text-align:left;font-size:12px;color:#816398;padding:10px 12px;border-radius:11px;background:#eee5f3}
.quest-action:hover{background:#e8daef}
#adventure-map{position:fixed;bottom:22px;right:25px;z-index:4;width:160px;padding:10px;border-radius:20px;border:1px solid #fffa;background:#fff9e9e8;box-shadow:0 5px 22px #304f4415;color:#6d6d69;backdrop-filter:blur(8px)}
.map-caption{display:flex;justify-content:space-between;gap:5px;font-size:10px}.map-caption span:last-child{color:#9a77af}
#village-map{display:block;width:100%;height:auto;cursor:pointer;touch-action:manipulation}
#player-rank{text-align:center;font-size:9px;white-space:nowrap;color:#89739b;border-top:1px solid #ded4cf;padding-top:8px}
#song-card{left:auto;right:26px;width:130px;top:94px;transform:none}#song-preview{height:76px}#song-caption{font-size:11px}
#badges{right:207px}
#rpg-run{position:fixed;bottom:68px;left:28px;z-index:4;border:1px solid #fffa;border-radius:18px;min-height:40px;padding:8px 17px;background:#fff9eddd;color:#766383;font-size:12px}
#rpg-run[aria-pressed=true]{background:#8870b4;color:#fff8eb}
.adventure-dialog{width:min(550px,calc(100vw - 32px));max-height:calc(100dvh - 40px);overflow:auto;padding:34px;border:1px solid #fff8;border-radius:28px;background:#fffaf1;color:#665675;box-shadow:0 20px 100px #263e4540}
.adventure-dialog::backdrop{background:#314b4e70;backdrop-filter:blur(7px)}
.adventure-dialog h1,.adventure-dialog h2{font:30px/1.35 Jua,sans-serif;font-weight:400;letter-spacing:-.035em;margin:12px 0 18px}
.dialog-eyebrow{font-size:10px;letter-spacing:.12em;color:#a58cb1;margin:0 0 14px}
.story-copy{font:14px/1.9 -apple-system,BlinkMacSystemFont,'Apple SD Gothic Neo',sans-serif;color:#8c7d91;word-break:keep-all}
.rpg-primary{font:15px Jua,sans-serif;min-height:50px;border-radius:15px;background:#8b70b2;color:#fff9ec;padding:14px 23px;display:flex;align-items:center;justify-content:center;gap:14px;box-shadow:0 3px 0 #715a94}
.rpg-primary:hover{background:#7d619f}.rpg-primary:active{transform:translateY(2px);box-shadow:0 1px 0 #715a94}
.rpg-secondary{background:transparent;color:#9b8c9e;font-size:12px;min-height:44px;padding:12px}
.rpg-close{position:absolute;right:16px;top:13px;background:transparent;width:44px;height:44px;border-radius:50%;font-size:25px;color:#ad9db1}
.rpg-close:hover{background:#eee5ef}
.intro-dialog{text-align:center;max-width:550px;padding:35px 38px 26px}
.intro-art{position:relative;font:64px/1.6 Georgia,serif;color:#e3be7d;letter-spacing:.06em;height:110px;background:radial-gradient(ellipse,#eee2f18a,transparent 65%);margin:0 auto 16px}
.intro-art span{font-size:76px;color:#aa8dc7;display:inline-block;transform:rotate(-12deg);margin:0 8px}.intro-art>span::after{content:'·';position:absolute;font-size:38px;right:-25px;top:0;color:#dcaec4}
.intro-dialog h1{font-size:35px;margin-top:10px}
.intro-steps{display:flex;justify-content:center;gap:8px;margin:25px -5px;font-size:10px;color:#a18ba7;white-space:nowrap}.intro-steps i{font-style:normal;color:#c9b9cc}
.intro-dialog .rpg-primary{width:100%;margin-top:10px}
.control-note{font-size:10px;line-height:1.9;color:#afa0b3;margin:20px 0 0}
.speaker{display:flex;align-items:center;gap:18px;margin-top:20px}
.speaker>span{display:grid;place-items:center;flex-shrink:0;width:63px;height:63px;border-radius:22px;background:#eee3ed;color:#b18ac1;font-size:34px}
.speaker>div>span{font-size:12px;color:#ab93b5}.speaker h2{font-size:25px;margin:6px 0}
.quest-requirements{list-style:none;margin:23px 0;padding:17px 20px;background:#f4eee8;border-radius:17px;color:#b2a4af;display:grid;gap:12px;font-size:12px}
.quest-requirements:empty{display:none}.quest-requirements .done{color:#7b9f82}
.quest-reward{font-size:11px;color:#ac916b;margin:20px 0}
.dialog-actions{display:flex;flex-direction:column;gap:7px}.dialog-actions .rpg-primary{width:100%}
.journal-dialog{width:min(690px,calc(100vw - 32px))}.journal-dialog h2{margin-bottom:8px}.journal-dialog>.story-copy{font-size:12px;margin-bottom:24px}
#journal-quests{display:grid;gap:10px}
.journal-quest{display:flex;align-items:center;gap:14px;text-align:left;width:100%;padding:17px;background:#f6efe9;border:1px solid #eee5e4;border-radius:17px;color:#7e688e}
.journal-quest:hover{background:#f0e6ee}.journal-quest>span:nth-child(2){flex:1;min-width:0}
.journal-icon{font-size:24px;color:#b496c0;flex-shrink:0;width:28px;text-align:center}
.journal-quest strong{display:block;font:18px Jua,sans-serif;font-weight:400;margin-bottom:7px}
.journal-quest small{display:block;font-size:10px;line-height:1.65;color:#a18d9f;word-break:keep-all}
.journal-quest em{font-size:9px;font-style:normal;flex-shrink:0;color:#aa8ab5}
.journal-quest[data-status=locked]{opacity:.56}.journal-quest[data-status=completed]{background:#edf2e8;border-color:#dfe7d7}.journal-quest[data-status=completed] em{color:#87a080}.journal-quest[data-status=ready]{border-color:#c9b3d8}
.journal-foot{border-top:1px solid #e9e0dc;margin-top:25px;padding-top:14px;color:#a08d9f}.journal-foot h3{font:16px Jua,sans-serif;font-weight:400}.journal-foot p{font-size:10px;line-height:1.9}
.reward-dialog{text-align:center}.reward-symbol{font:80px/1.3 Georgia,serif;display:block;color:#c5a1d0;margin-top:26px;text-shadow:0 5px 30px #e4cfeb}.reward-dialog h2{font-size:30px}.reward-dialog .story-copy{margin-bottom:22px}#reward-details{background:#f2e9d9;color:#a68a62;border-radius:13px;padding:13px;font-size:12px;margin:15px 0 24px}.reward-dialog .rpg-primary{width:100%}#ending-artwork{display:block;width:100%;max-width:400px;height:auto;border:1px solid #eee3db;border-radius:16px;margin:15px auto}
.composing #adventure-ui{visibility:hidden}.composing #open-journal{pointer-events:none}
.rpg-quest-hint{position:absolute;left:15px;right:15px;bottom:35px;margin:0;background:#fff9e8eb;border:1px solid #e8dfed;border-radius:12px;padding:10px 13px;color:#8d739c;font:12px/1.6 system-ui,sans-serif;pointer-events:none;max-width:620px}
@media(max-width:650px){
 .hud{gap:5px}.hud-right{gap:5px}.wordmark{font-size:18px}.wordmark>span{font-size:20px}.hud-right>#friend-count{display:none}
 #open-journal{min-height:40px;font-size:12px;padding:8px 10px}#compose-song{font-size:12px;padding:8px 10px}
 #quest-tracker{left:13px;top:74px;width:calc(100vw - 139px);max-width:275px;padding:12px 14px;border-radius:16px}
 #quest-title{font-size:18px}#quest-hint{font-size:10px;line-height:1.7;margin:8px 0 10px}.quest-kicker{font-size:8px;margin-bottom:7px;gap:3px}#quest-journal{font-size:9px;padding:3px 0}.quest-action{font-size:11px;min-height:44px;padding:9px}
 #adventure-map{top:74px;bottom:auto;right:12px;width:108px;padding:8px;border-radius:16px}.map-caption{font-size:8px}#player-rank{font-size:7px;padding-top:7px;letter-spacing:-.04em}
 #song-card{display:none}#badges{right:18px;bottom:18px;gap:4px}#badges span{width:23px;height:23px;font-size:15px}
 #encounter{bottom:50px;right:16px}#interact{min-height:48px;font-size:12px;padding:12px 17px}
 #rpg-run{left:25px;bottom:131px;min-height:36px;padding:7px 14px;font-size:10px}
 #song-progress{top:auto;bottom:125px;width:210px;font-size:11px}#toast{top:auto;bottom:200px;font-size:13px;width:max-content;max-width:88vw}
 .adventure-dialog{padding:26px 22px;max-height:calc(100dvh - 28px);border-radius:23px}
 .intro-dialog{padding:24px 24px}.intro-dialog h1{font-size:29px}.intro-art{height:86px;line-height:1.4;font-size:52px;margin:0 auto 13px}.intro-art span{font-size:61px}.intro-steps{font-size:9px;gap:5px;margin:21px 0}.control-note{font-size:9px;margin-top:18px}.story-copy{font-size:13px;line-height:1.8}
 .speaker{gap:13px}.speaker>span{width:52px;height:52px;font-size:29px;border-radius:17px}.speaker h2{font-size:22px}.rpg-primary{font-size:14px;min-height:48px;padding:14px 16px}
 .journal-dialog h2,.reward-dialog h2{font-size:26px}.journal-quest{padding:13px 11px;gap:9px;flex-wrap:wrap}.journal-quest strong{font-size:17px}.journal-quest small{font-size:9px}.journal-quest em{margin-left:37px;font-size:9px}.journal-icon{width:26px}.journal-foot p{font-size:10px}
 .rpg-quest-hint{font-size:10px;padding:8px 10px;bottom:35px;left:9px;right:9px}
}
@media(max-width:360px){.hud{left:10px;right:10px}.wordmark{font-size:16px}.wordmark>span{display:none}.hud-right{gap:3px}#open-journal,#compose-song{font-size:11px;padding:8px 8px}#sound{width:34px}#quest-tracker{left:10px;width:calc(100vw - 130px);padding:11px}#quest-title{font-size:16px}#adventure-map{right:10px;width:101px}.quest-kicker{font-size:7px}.intro-dialog h1{font-size:26px}}
@media(max-height:500px) and (orientation:landscape){#quest-tracker{top:64px;width:230px;padding:12px 14px}#quest-hint{margin:7px 0;font-size:10px}#quest-title{font-size:18px}.quest-kicker{margin-bottom:7px}#adventure-map{top:67px;bottom:auto;width:110px}#song-card{display:none}#rpg-run{left:135px;bottom:25px}#song-progress{top:65px;bottom:auto}#toast{top:auto;bottom:85px}.intro-art{display:none}.intro-dialog h1{font-size:25px}.intro-dialog .story-copy{font-size:11px}.intro-steps,.control-note{margin:12px 0;font-size:9px}.intro-dialog{padding:20px 28px}.adventure-dialog{max-height:94dvh}}
@media(prefers-reduced-motion:reduce){.rpg-primary:active{transform:none}}
