*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#355a43;color:#344b3d;font-family:'Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif}button{font:inherit;cursor:pointer;border:0;color:inherit;touch-action:manipulation}button:focus-visible,a:focus-visible{outline:3px solid #c68f33;outline-offset:3px}button:disabled{opacity:.5;cursor:default}#game{position:relative;width:100%;height:100%;height:100dvh;overflow:hidden}canvas{display:block;width:100%;height:100%;touch-action:none}header{position:absolute;inset:25px 28px auto;display:flex;justify-content:space-between;gap:15px;pointer-events:none}.daystamp{background:#fff9e6ed;padding:15px 24px;border-radius:5px 22px 22px 22px;box-shadow:0 4px 20px #293b3220;display:grid;gap:5px;border:1px solid #ffffffc4}.daystamp small{font-size:10px;color:#9a9275;letter-spacing:1px}.daystamp strong{font-size:23px;letter-spacing:2px;color:#536d4d}.daystamp span{font-size:10px;color:#8c947b}.topbuttons{display:flex;align-items:start;gap:9px;pointer-events:auto}.topbuttons button{background:#fff9e6ed;border:1px solid #fff7dd;border-radius:15px;padding:12px 17px;font-size:12px;box-shadow:0 4px 20px #293b3210}#quest{position:absolute;right:28px;top:90px;max-width:270px;background:#fff9e8ed;border:1px solid #fff9dd;border-radius:18px;padding:17px 20px;box-shadow:0 4px 20px #293b3210;pointer-events:none}#quest small{font-size:9px;letter-spacing:1px;color:#a79566}#quest h2{font-size:15px;margin:8px 0;color:#536d4d}#quest p{font-size:11px;line-height:1.8;margin:0;color:#849077}#prompt{position:absolute;left:50%;bottom:140px;transform:translateX(-50%);background:#fff9e8f5;border:1px solid #fff;padding:11px 20px;border-radius:20px;box-shadow:0 5px 25px #0002;font-size:12px;max-width:90%;text-align:center;pointer-events:none}#locationTitle{position:absolute;left:50%;top:45%;transform:translate(-50%,-50%);font-size:30px;letter-spacing:7px;color:#fffce9;text-shadow:0 2px 12px #24452e;pointer-events:none;opacity:0;transition:opacity .8s}#locationTitle.show{opacity:1}.keyboard{position:absolute;left:50%;bottom:17px;transform:translateX(-50%);font-size:10px;color:#ffffe9;text-shadow:0 1px 5px #234528;white-space:nowrap;pointer-events:none}.keyboard span{opacity:.75}.touch{position:absolute;bottom:48px;left:28px;right:28px;display:flex;justify-content:space-between;align-items:end;pointer-events:none}#pad{display:grid;grid-template-columns:repeat(3,43px);grid-template-rows:repeat(2,40px);gap:5px;pointer-events:auto;touch-action:none}#pad button{background:#fff7e2bd;border:1px solid #fffcdfc2;border-radius:11px;box-shadow:0 3px 8px #223d281a;touch-action:none;user-select:none;color:#69805b}#pad .up{grid-area:1/2}#pad .left{grid-area:2/1}#pad .down{grid-area:2/2}#pad .right{grid-area:2/3}#pad button.pressed,#pad button:active{background:#65845f;color:#fff8d6}.touch-actions{display:flex;align-items:end;gap:9px;pointer-events:auto}.touch-actions button{background:#fff7e2db;border:1px solid #fffade;border-radius:50%;width:62px;height:62px;box-shadow:0 3px 12px #223d281c;font-size:11px}.touch-actions #interact{width:85px;height:85px;border:2px solid #fff8df;background:#5c815de8;color:#fffce8;font-weight:bold}.touch-actions #run[aria-pressed=true]{background:#e9ba65;color:#4d633f}.overlay{position:absolute;inset:0;background:#253d3259;backdrop-filter:blur(3px);display:flex;align-items:end;justify-content:center;padding:28px;z-index:20}.overlay>section{background:#fffbef;border:3px solid #e5dfc5;border-radius:24px;width:min(760px,100%);max-height:85%;overflow:auto;padding:25px 30px;box-shadow:0 10px 60px #18312840}.speaker{display:flex;align-items:center;gap:15px}.face{width:68px;height:70px;background-image:url('assets/staff.png');background-size:612px 408px;border-radius:16px;background-position:-7px -40px;flex-shrink:0}.speaker small{font-size:10px;color:#a39577;letter-spacing:1px}.speaker h2{font-size:20px;margin:7px 0}.speaker button{margin-left:auto;background:transparent;font-size:25px;color:#a7a68b}#dialogText{font-size:15px;line-height:2;white-space:pre-line;margin:22px 0;color:#4d6250}#options{display:grid;gap:8px}#options button{padding:13px 17px;border:1px solid #dae0c8;background:#edf0df;border-radius:11px;text-align:left;font-size:12px;line-height:1.7}#options button:hover{background:#dee8cd}#options a{display:block;text-align:center;color:#6e8466;font-size:11px;padding:12px}.overlay.journal{align-items:center}.entry{white-space:normal;border-bottom:1px dashed #d7dcca;padding:12px 0}.entry small{font-size:10px;color:#ae9b6b}.entry p{font-size:12px;line-height:1.8;margin:6px 0}.entry b{font-size:13px}#toast{position:absolute;left:50%;top:24px;transform:translateX(-50%);background:#fff8dbf5;border:1px solid white;border-radius:14px;padding:14px 24px;box-shadow:0 5px 30px #0002;font-size:12px;z-index:40;display:none;max-width:85%;text-align:center}#loading{position:absolute;inset:0;background:linear-gradient(145deg,#eff2d9,#fff6dc 60%,#d5e4cb);z-index:50;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:25px;transition:opacity 1s}#loading>span{font-size:60px;color:#dfae4f;animation:breathe 3s infinite}#loading h1{font-size:48px;font-weight:700;letter-spacing:12px;color:#54734c;margin:25px 0 15px}#loading p{font-size:12px;color:#9a9d7d;letter-spacing:2px;line-height:2}#loading button{background:#67865e;color:#fff9e3;padding:16px 38px;border-radius:25px;margin-top:26px;font-size:13px;box-shadow:0 6px 20px #65845620}#loading.out{opacity:0;pointer-events:none}[hidden]{display:none!important}@keyframes breathe{50%{transform:rotate(15deg) scale(1.07)}}@media(max-width:650px){header{inset:14px 12px auto}.daystamp{padding:10px 14px}.daystamp strong{font-size:18px}.daystamp small{font-size:8px}.topbuttons button{padding:10px;font-size:11px}#quest{top:105px;right:12px;max-width:205px;padding:12px 15px}#quest h2{font-size:12px}#quest p{font-size:10px}.touch{bottom:35px;left:13px;right:13px}#pad{grid-template-columns:repeat(3,36px);grid-template-rows:repeat(2,36px);gap:4px}.touch-actions{gap:6px}.touch-actions button{width:48px;height:48px;font-size:9px}.touch-actions #interact{width:68px;height:68px;font-size:10px}.keyboard{font-size:8px;bottom:9px}.keyboard span{display:none}.overlay{padding:12px}.overlay>section{padding:20px;max-height:82%}#dialogText{font-size:13px}.speaker h2{font-size:17px}#loading h1{font-size:35px;letter-spacing:6px}#prompt{bottom:130px;font-size:10px;min-width:160px}}
/* Cohesive action HUD, with room for the world. */
header{inset:22px 24px auto}.daystamp{border-radius:18px;background:linear-gradient(135deg,#fffcf1f2,#f1ead7ec);box-shadow:0 8px 30px #172d3026;border:1px solid #fff9e0;min-width:190px}.daystamp strong{font-size:24px;letter-spacing:1px}.daystamp small{letter-spacing:1.5px;color:#8b8066}.topbuttons button{border-radius:12px;background:#203c3ee8;color:#fff6df;border:1px solid #e8e0bd42;box-shadow:0 5px 16px #15302c26;transition:transform .16s,background .16s}.topbuttons button:hover{transform:translateY(-2px);background:#365755}#quest{background:#fcf8e9f2;border:1px solid #fffbea;border-left:3px solid #c9a766;box-shadow:0 8px 28px #1732311a;border-radius:14px;top:84px}#quest h2{line-height:1.6}#quest small{letter-spacing:1.6px;color:#9b8057}#game:after{content:'';position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 90px #183c381c;z-index:1}.touch{z-index:3;bottom:38px;align-items:end}.touch-actions{display:grid;grid-template-columns:repeat(5,60px);grid-auto-rows:50px;gap:7px;padding:12px;background:linear-gradient(135deg,#183437e8,#254c4ae8);border:1px solid #fff0c64d;border-radius:20px;box-shadow:0 12px 40px #122c3b40;backdrop-filter:blur(8px)}.touch-actions button{width:auto;height:auto;border-radius:11px;background:linear-gradient(135deg,#ffffff1c,#ffffff0a);border:1px solid #fff3d52e;color:#fff5dd;font-size:10px;box-shadow:0 2px 4px #0002;transition:background .15s,transform .12s,opacity .15s}.touch-actions button:hover{background:#ffffff2c;transform:translateY(-2px)}.touch-actions button:active{transform:translateY(1px) scale(.96)}.touch-actions #interact{grid-column:5;grid-row:1 / span 2;width:auto;height:auto;border-radius:13px;background:linear-gradient(145deg,#e9d6a2,#c4ac71);border:1px solid #fff0bd;color:#324c43;font-size:11px}.touch-actions #bolt{color:#a3f5ff;border-color:#9de8ed65;background:#427c8a52}.touch-actions #bomb{color:#ffe4aa;border-color:#f1cc8565;background:#a9743640}.touch-actions #smash{color:#ffcfba}#pad{padding:8px;box-sizing:content-box;border-radius:18px;background:#203d3db5;border:1px solid #fff4d535;box-shadow:0 8px 28px #102f3326}#pad button{border-color:#fff5db40;color:#fbf0d7;background:#fff7dd26}#pad button.pressed{background:#d7c594;color:#254745}#prompt{z-index:3;bottom:175px;background:#203d3eea;color:#fff4d5;border:1px solid #f8e9ba65;box-shadow:0 6px 25px #19312c33;border-radius:12px;line-height:1.6}#toast{background:#fff7e6f5;color:#44584a;border-color:#c5ad7959;box-shadow:0 10px 38px #16333233}#restoreBadge{top:18px!important;border:1px solid #e5b67c77!important;background:#243d3cf0!important;color:#ffe2a5!important;font-size:11px!important;z-index:4!important}.keyboard{z-index:3;background:#183637b8;border:1px solid #f7e6bd26;padding:7px 14px;border-radius:9px;font-size:9px;bottom:9px;max-width:96%;white-space:normal;text-align:center;line-height:1.5}.overlay{z-index:20}.overlay>section{border-width:1px;border-color:#fff4d5;box-shadow:0 16px 80px #122e3b66}.speaker h2{letter-spacing:.5px}#options button{transition:background .15s,transform .15s}#options button:hover{transform:translateX(3px)}
@media(max-width:750px){header{inset:12px}.daystamp{min-width:0;padding:10px 13px}.daystamp strong{font-size:18px}.touch{left:10px;right:10px;bottom:42px}.touch-actions{grid-template-columns:repeat(4,44px);grid-auto-rows:42px;gap:5px;padding:8px;border-radius:15px}.touch-actions #interact{grid-column:4;grid-row:1 / span 2;font-size:9px}.touch-actions button{font-size:9px}#pad{grid-template-columns:repeat(3,28px);grid-template-rows:repeat(2,32px);gap:3px;padding:6px}#quest{top:95px;right:12px;width:190px;padding:10px 13px}#quest p{display:none}#quest h2{font-size:12px;margin:4px 0}#prompt{bottom:205px;font-size:10px;max-width:88%;padding:8px 12px}.keyboard{font-size:8px;padding:5px 8px}#restoreBadge{top:152px!important;padding:7px 12px!important;white-space:nowrap}}
@media(max-width:360px){.touch-actions{grid-template-columns:repeat(4,39px);gap:4px}#pad{grid-template-columns:repeat(3,24px)}}
.touch-actions{align-items:stretch;align-content:stretch}.touch-actions button{min-height:42px}.touch-actions #interact{min-height:100%}
#vitals{position:absolute;left:24px;top:155px;width:205px;padding:13px 15px;background:#203e3ef0;border:1px solid #f4e7ba65;border-radius:14px;color:#fff3d9;box-shadow:0 6px 22px #17333222;z-index:4}.vitals-title{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:10px;margin-bottom:9px}.vitals-title strong{font-size:12px}.health-track{height:10px;background:#142a2d;border:1px solid #ffffff23;border-radius:8px;overflow:hidden}.health-track i{display:block;height:100%;width:100%;background:linear-gradient(90deg,#6bcca6,#c9f3bc);border-radius:7px;transition:width .28s ease-out}#vitals small{display:block;font-size:9px;line-height:1.6;opacity:.75;margin-top:8px}#vitals.danger .health-track i{background:linear-gradient(90deg,#db736c,#ffc286)}#vitals.hit{box-shadow:0 0 0 3px #ff977d99,0 8px 25px #a3333c55}#bossHUD{position:absolute;top:78px;left:50%;transform:translateX(-50%);width:min(340px,45%);padding:12px 18px;border:1px solid #f3bc7f;background:#513c4cf2;color:#fff0d2;border-radius:12px;z-index:5;text-align:center;box-shadow:0 6px 26px #2f243d44}#bossHUD small{display:block;font-size:9px;color:#e3b68e;letter-spacing:2px}#bossHUD strong{display:block;font-size:14px;margin:5px 0 9px}#bossHUD .health-track i{background:linear-gradient(90deg,#bc6779,#f0bc85)}#bossHUD span{display:block;font-size:10px;margin-top:5px}.touch-actions #slap{color:#ffe5ab;border-color:#e7c6807a;background:#9a75444f}
@media(max-width:750px){#vitals{left:12px;top:125px;width:153px;padding:10px 12px}#vitals small{font-size:8px}.vitals-title{font-size:9px;gap:6px}.vitals-title strong{font-size:10px}#bossHUD{top:210px;width:250px;max-width:80%;padding:9px 13px}#bossHUD strong{font-size:12px}}
.shield-meter{margin-top:10px;border-top:1px solid #f4e7ba25;padding-top:8px}.shield-meter>div:first-child{display:flex;justify-content:space-between;align-items:center;font-size:9px;letter-spacing:1px;margin-bottom:5px}.shield-meter b{font-size:10px;color:#bdefff}.shield-meter .health-track{height:6px}.shield-meter .health-track i{background:linear-gradient(90deg,#61b8df,#d0f8ff)}#vitals .shield-meter small{font-size:8px;margin-top:6px;min-height:12px}.touch-actions #guard{border-color:#83d8f293;color:#b9efff;background:#397c9844;touch-action:none}.touch-actions #guard[aria-pressed=true]{background:#8bd8ee;color:#203d48;box-shadow:0 0 17px #6cddff66}.touch-actions #dash{color:#e3c3ff;border-color:#ad87de7a}.touch-actions #bolt{touch-action:none;user-select:none}.topbuttons button:last-child{border-color:#d5bf7a77;color:#ffe5a3}
@media(min-width:751px){.touch-actions{grid-template-columns:repeat(7,52px)}.touch-actions #interact{grid-column:7;grid-row:1 / span 2}#prompt{bottom:182px}}
@media(max-width:750px){.topbuttons{gap:5px}.topbuttons button{padding:9px 8px;font-size:9px}#vitals small#hpHint{display:none}#vitals .shield-meter small{font-size:7px}#restoreBadge{left:auto!important;right:12px!important;transform:none!important;max-width:180px;font-size:9px!important}#bossHUD{top:242px}#prompt{bottom:250px}}
.topbuttons button.newskill{background:#edd393;color:#244843;box-shadow:0 0 22px #ffe39b77;animation:skillPulse .7s ease-in-out infinite alternate}@keyframes skillPulse{to{box-shadow:0 0 32px #ffe39baa;transform:translateY(-2px)}}
#airHUD{position:absolute;left:24px;bottom:165px;width:205px;padding:12px 15px;background:#163e56ed;color:#defaff;border:1px solid #9fe9f07d;border-radius:13px;box-shadow:0 5px 24px #12405733;z-index:4}#airHUD strong{font-size:10px;letter-spacing:1px}#airHUD span{float:right;font-size:12px;font-weight:bold}#airHUD .health-track{margin-top:8px;height:7px}#airHUD .health-track i{background:linear-gradient(90deg,#61c5e6,#ccf9ff)}
@media(max-width:750px){#airHUD{left:12px;bottom:142px;width:145px;padding:10px 12px}#airHUD strong{font-size:8px}#airHUD span{font-size:10px}}
/* Keep the river visible through controls while submerged. */
.touch-actions,#pad{transition:opacity .22s ease,background .22s ease,box-shadow .22s ease}
#game[data-travel="dive"] .touch-actions,#game[data-travel="dive"] #pad{background:#163c4026;border-color:#d6faff36;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;opacity:.32}
#game[data-travel="dive"] .touch-actions #interact{background:#bcdbce38;color:#efffff;border-color:#edffff55}
#game[data-travel="dive"] .touch-actions:hover,#game[data-travel="dive"] .touch-actions:has(button:active),#game[data-travel="dive"] .touch-actions:has(button:focus-visible),#game[data-travel="dive"] #pad:hover,#game[data-travel="dive"] #pad:has(.pressed){opacity:.8;background:#163c4040}
#game[data-travel="dive"] #prompt{background:#10374732;border-color:#dbffff33;box-shadow:none;opacity:.65}
#game[data-travel="dive"] .keyboard{opacity:.4;background:#143a4326}
@media(hover:none){#game[data-travel="dive"] .touch-actions:hover,#game[data-travel="dive"] #pad:hover{opacity:.32;background:#163c4026}#game[data-travel="dive"] .touch-actions:has(button:active),#game[data-travel="dive"] #pad:has(.pressed){opacity:.8;background:#163c4040}}
/* Underwater controls stay off the lower river view, including during touch. */
#game[data-travel="dive"] .touch{top:40%;bottom:auto;align-items:center;left:16px;right:16px}
#game[data-travel="dive"] .touch-actions,#game[data-travel="dive"] #pad{background:none!important;border-color:transparent!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;opacity:.65!important}
#game[data-travel="dive"] .touch-actions{grid-template-columns:repeat(2,58px);grid-auto-rows:48px;padding:4px;gap:6px}
#game[data-travel="dive"] .touch-actions>button:not(#fly):not(#rise):not(#interact){display:none!important}
#game[data-travel="dive"] .touch-actions #interact{grid-column:auto!important;grid-row:auto!important;min-height:48px;background:#123c4e38;color:#eeffff;border-color:#c9f9ff66}
#game[data-travel="dive"] .touch-actions button,#game[data-travel="dive"] #pad button{background:#123c4e38!important;color:#eeffff;border-color:#c9f9ff66;box-shadow:none}
#game[data-travel="dive"] .touch-actions button:active,#game[data-travel="dive"] #pad button.pressed{background:#99d6e955!important;color:white}
#game[data-travel="dive"] #prompt,#game[data-travel="dive"] .keyboard{display:none!important}
#game[data-travel="dive"] #quest{opacity:.25}
#game[data-travel="dive"] #airHUD{top:170px;right:20px;left:auto;bottom:auto;width:175px}
/* Classic JRPG-inspired original dialogue and command treatment. */
.overlay{background:#07102024;backdrop-filter:none;align-items:end;padding:24px 36px}
.overlay>section{width:min(1120px,100%);max-height:80%;min-height:220px;display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,32%);grid-template-rows:auto 1fr;column-gap:26px;padding:20px 26px;border:3px double #e2e8f6;border-radius:8px;background:linear-gradient(150deg,#14377cef,#0c1d50f5 65%,#081437f5);color:#f5f7ff;box-shadow:0 0 0 2px #091534,0 12px 45px #03102570,inset 0 0 0 2px #6e8fce55;font-family:'Yu Gothic','Hiragino Kaku Gothic ProN',sans-serif;text-shadow:1px 2px 0 #020c2f}
.overlay .speaker{grid-column:1 / -1;align-items:center;border-bottom:1px solid #87a9e544;padding-bottom:12px}.overlay .speaker small{color:#9dc7ff;letter-spacing:1.5px;font-size:10px}.overlay .speaker h2{color:#fff9e8;letter-spacing:1px;margin:5px 0;font-size:20px}.overlay .speaker button{color:#dce8ff}.overlay .face{border-radius:6px;box-shadow:0 0 0 1px #b9d3ff77,inset 0 0 20px #081e4333}.overlay #dialogText{grid-column:1;grid-row:2;color:#f0f4ff;line-height:1.9;margin:16px 0 8px;font-size:15px;animation:dialogAppear .16s ease-out}.overlay #options{grid-column:2;grid-row:2;align-content:end;gap:5px;border-left:1px solid #8ba9df55;padding-left:18px;padding-top:15px}.overlay #options button{position:relative;padding:11px 12px 11px 28px;border:1px solid transparent;border-radius:4px;background:transparent;color:#f5f7ff;font-size:13px;line-height:1.6;text-shadow:1px 2px 0 #051336;transform:none}.overlay #options button:before{content:' ';position:absolute;left:9px;top:12px;color:#fff0b2}.overlay #options button.command-selected,.overlay #options button:hover{background:linear-gradient(90deg,#6c99dd55,#7396c411);border-color:#bbd7ff55;transform:none}.overlay #options button.command-selected:before{content:'▶'}.overlay #options button:focus-visible{outline:1px solid #d8e8ff;outline-offset:1px}.overlay #options a{color:#b5cff3;font-size:10px;text-shadow:none}.overlay.journal{align-items:center}.overlay.journal>section{max-height:85%;min-height:0}.overlay .entry{border-color:#7495c855}.overlay .entry small{color:#adc9f2}.overlay .entry p{color:#eff5ff}.topbuttons #musicToggle{color:#cae5ff;border-color:#9dc8e577;min-width:53px}#musicToggle[aria-pressed="false"]{opacity:.65}@keyframes dialogAppear{from{opacity:.4;transform:translateY(3px)}to{opacity:1;transform:none}}
@media(max-width:750px){header{gap:7px}.daystamp{max-width:125px}.topbuttons{gap:3px}.topbuttons button{font-size:8px;padding:8px 6px}.topbuttons #musicToggle{min-width:39px}.overlay{padding:12px}.overlay>section{display:block;padding:15px 17px;min-height:0;max-height:82%}.overlay .speaker{padding-bottom:9px}.overlay .speaker h2{font-size:16px}.overlay .face{width:58px;height:60px}.overlay #dialogText{font-size:13px;margin:12px 0;line-height:1.8}.overlay #options{padding:8px 0 0;border-left:0;border-top:1px solid #8ba9df55;gap:3px}.overlay #options button{font-size:12px;padding:9px 10px 9px 27px}.overlay #options button:before{top:10px}#game[data-travel="dive"] #airHUD{top:160px;right:12px;width:145px}#game[data-travel="dive"] .touch-actions{grid-template-columns:repeat(2,46px);grid-auto-rows:44px}#game[data-travel="dive"] .touch-actions #interact{min-height:44px}#game[data-travel="dive"] #restoreBadge{top:225px!important}}
#controlsToggle{position:absolute;right:12px;bottom:9px;z-index:6;padding:9px 12px;border:1px solid #cce4e580;border-radius:8px;background:#173f48e6;color:#f0fbff;font-size:10px;box-shadow:0 3px 12px #14303a30;min-height:34px}#controlsToggle:hover{background:#356774}#game[data-controls="closed"] .touch,#game[data-controls="closed"] .keyboard{display:none!important}#game[data-controls="open"] .keyboard{max-width:calc(100% - 320px)}
@media(max-width:750px){#controlsToggle{right:9px;bottom:8px;font-size:9px;padding:8px 10px}#game[data-controls="open"] .keyboard{left:10px;transform:none;max-width:calc(100% - 165px);font-size:7px;text-align:left}}
#places{background:#f8de97;color:#304e43;font-weight:bold}#adventure{position:fixed;inset:0;z-index:40;background:#071d26ed;display:grid;place-items:center;padding:14px;color:#f5efd9}#adventure[hidden]{display:none}.adventure-shell{width:min(1120px,100%);height:min(960px,100%);display:flex;flex-direction:column;overflow:auto;background:#132e3a;border:1px solid #a9c9b8;border-radius:18px;box-shadow:0 20px 100px #0009;padding:18px}.adventure-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.adventure-heading small{color:#b8d4c6;font-size:11px;letter-spacing:2px}.adventure-heading h2{font-size:25px;margin:7px 0 12px}.adventure-shell button{background:#e9d59e;color:#254b49;border:1px solid #f8edcb;border-radius:8px;padding:10px 16px;cursor:pointer;font-weight:bold}.adventure-shell button:disabled{opacity:.4;cursor:default}#adventureExit{background:#244a57;color:#f7e6b8;white-space:nowrap}#adventureStatus{font-size:14px;padding:10px 12px;background:#071d29;color:#ffe1a2;border-radius:8px;margin-bottom:10px}#adventureCanvas{width:100%;height:auto;max-height:65vh;aspect-ratio:1120/660;object-fit:contain;min-height:0;border-radius:10px;background:#091824;flex:1}#adventureCanvas[hidden]{display:none}#adventureMessage{padding:12px;min-height:46px;line-height:1.7;white-space:pre-line;color:#e7f4e5;font-size:14px}#adventureActions{display:flex;flex-wrap:wrap;gap:7px}#dungeonPad{display:flex;gap:8px;margin-top:8px;justify-content:center}#dungeonPad[hidden]{display:none}#dungeonPad button{min-width:52px;min-height:44px;touch-action:none}.shop-banner{padding:28px;background:repeating-linear-gradient(90deg,#719d72 0 50px,#e7e1b1 50px 100px);color:#173b34;font-weight:bold;text-align:center;border-radius:10px;font-size:20px;text-shadow:0 1px #fff}.shop-shelves{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;padding:25px 0}.shop-product{background:#f6edce;color:#304e43;border-radius:10px;overflow:hidden;text-align:center;padding:14px 10px;border-bottom:14px solid #a78358}.shop-icon{font-size:68px;padding:18px 0;background:#d7e4c3;border-radius:8px}.shop-product h3{font-size:19px}.shop-product p{font-size:12px;line-height:1.8;min-height:40px}.shop-product button{font-size:13px;background:#446b55;color:#fff3ce}@media(max-width:750px){#adventure{padding:5px}.adventure-shell{padding:10px;border-radius:10px}.adventure-heading h2{font-size:19px}.adventure-heading small{font-size:9px;letter-spacing:0}.adventure-shell button{padding:9px;font-size:11px}#adventureStatus,#adventureMessage{font-size:11px}.shop-shelves{grid-template-columns:repeat(2,1fr);gap:8px;padding:10px 0}.shop-icon{font-size:38px;padding:8px}.shop-product{padding:8px;border-bottom-width:8px}.shop-product h3{font-size:15px;margin:9px 0}.shop-product p{margin:4px 0;font-size:10px}.shop-banner{font-size:13px;padding:18px}.topbuttons{flex-wrap:wrap;justify-content:flex-end;max-width:245px}}
#adventure[data-cave="yes"]{padding:0;background:#061713}#adventure[data-cave="yes"] .adventure-shell{width:100%;height:100%;max-height:none;border:0;border-radius:0;padding:14px 20px;background:linear-gradient(130deg,#122c28,#071e24);gap:0}#adventure[data-cave="yes"] .adventure-heading h2{font-family:serif;letter-spacing:3px;font-size:23px;color:#f5e6b9}#adventure[data-cave="yes"] .adventure-heading small{color:#9aae9d;letter-spacing:3px}#adventure[data-cave="yes"] #adventureStatus{background:transparent;border-top:1px solid #adbb8d33;border-bottom:1px solid #adbb8d33;border-radius:0;padding:8px 0;font-size:12px;letter-spacing:1px;color:#c9d3b7;margin-bottom:6px}#adventure[data-cave="yes"] #adventureCanvas{max-height:none;border-radius:8px;flex:1;min-height:0;object-fit:contain}#adventure[data-cave="yes"] #adventureActions{position:absolute;bottom:17px;right:20px;max-width:65%;justify-content:flex-end}#adventure[data-cave="yes"] #adventureActions button{background:#15382ee8;color:#e5dfb7;border-color:#9fae6c66;border-radius:7px;font-size:11px;padding:10px}#adventure[data-cave="yes"] #adventureActions button:first-child{background:#c8b57d;color:#16372a;padding:10px 22px}#adventure[data-cave="yes"] #adventureMessage{height:43px;min-height:43px;font-size:12px;padding:9px 0;color:#bec9b5;max-width:52%;overflow:hidden;margin-bottom:43px}#adventure[data-cave="yes"] #dungeonPad{position:absolute;left:20px;bottom:14px;margin:0}#adventure[data-cave="yes"] #dungeonPad button{background:#1b4037;color:#dedfbb;border-color:#a5bb8b55}@media(max-width:750px){#adventure[data-cave="yes"] .adventure-shell{padding:8px}#adventure[data-cave="yes"] .adventure-heading h2{font-size:16px}#adventure[data-cave="yes"] #adventureActions{right:8px;bottom:10px;max-width:62%;gap:4px}#adventure[data-cave="yes"] #adventureActions button{font-size:9px;padding:7px}#adventure[data-cave="yes"] #adventureActions button:first-child{padding:8px}#adventure[data-cave="yes"] #dungeonPad{left:8px;bottom:10px;max-width:34%;flex-wrap:wrap;gap:3px}#adventure[data-cave="yes"] #dungeonPad button{min-width:34px;min-height:36px;padding:7px}#adventure[data-cave="yes"] #adventureMessage{max-width:100%;margin-bottom:83px;font-size:10px}}
#adventure[data-cave="entry"] .adventure-shell{background:#102e27;border-color:#9ca67866}#adventure[data-cave="entry"] .adventure-heading h2{font-family:serif;letter-spacing:2px}#adventure[data-cave="entry"] #adventureCanvas{border:1px solid #c3b77c22}#adventure[data-cave="entry"] #adventureActions button:first-child{background:#d7bd7e;font-size:15px;padding:13px 24px}
#caveSkillBar{position:absolute;left:50%;transform:translateX(-50%);bottom:70px;display:flex;gap:7px;z-index:2}#caveSkillBar button{font-size:12px;padding:11px 16px;background:#143835e8;color:#fff0b8;border:1px solid #e8d69866;border-radius:8px;min-width:130px;box-shadow:0 4px 15px #0004}#caveSkillBar button:disabled{color:#a3b9ad;opacity:.6}#adventure:not([data-cave="yes"]) #caveSkillBar{display:none}@media(max-width:750px){#caveSkillBar{bottom:108px;width:96%;justify-content:center;gap:4px}#caveSkillBar button{min-width:0;padding:8px;font-size:10px;flex:1}}
/* Cave UI: normal document flow, never positioned over the play field. */
#adventure[data-cave="yes"] .adventure-shell{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto auto;overflow:hidden;padding:10px 16px;gap:6px;height:100dvh}
#adventure[data-cave="yes"] .adventure-heading{grid-row:1}#adventure[data-cave="yes"] .adventure-heading h2{margin:3px 0;font-size:20px}#adventure[data-cave="yes"] #adventureStatus{grid-row:2;margin:0;padding:5px 0}
#adventure[data-cave="yes"] #adventureCanvas{grid-row:3;width:100%;height:100%;min-height:0;max-height:none;object-fit:contain;aspect-ratio:auto;background:#08171c}
#adventure[data-cave="yes"] #adventureMessage{grid-row:4;position:static;height:auto;min-height:28px;max-width:none;margin:0;padding:4px 6px;overflow:visible;font-size:12px;line-height:1.5}
#caveDock{display:none}#adventure[data-cave="yes"] #caveDock{grid-row:5;display:grid;grid-template-columns:190px minmax(220px,1fr) minmax(280px,1.3fr);gap:12px;align-items:center;padding:10px;background:#102d29;border-top:1px solid #9aaa7044;border-radius:10px}
#adventure[data-cave="yes"] #caveDock #dungeonPad,#adventure[data-cave="yes"] #caveDock #caveSkillBar,#adventure[data-cave="yes"] #caveDock #adventureActions{position:static;left:auto;right:auto;bottom:auto;transform:none;max-width:none;width:auto;margin:0;display:grid;gap:5px}
#adventure[data-cave="yes"] #caveDock #dungeonPad{grid-template-columns:repeat(3,44px);grid-template-rows:repeat(2,34px);justify-content:center}#caveDock #dungeonPad button{min-width:0;min-height:0}#caveDock #dungeonPad button:nth-child(1){grid-column:2}#caveDock #dungeonPad button:nth-child(2){grid-column:1;grid-row:2}#caveDock #dungeonPad button:nth-child(3){grid-column:2;grid-row:2}#caveDock #dungeonPad button:nth-child(4){grid-column:3;grid-row:2}
#adventure[data-cave="yes"] #caveDock #caveSkillBar{grid-template-columns:repeat(3,minmax(0,1fr))}#caveDock #caveSkillBar button{min-width:0;padding:10px 5px;font-size:11px;white-space:normal;height:64px}
#adventure[data-cave="yes"] #caveDock #adventureActions{grid-template-columns:repeat(4,minmax(0,1fr))}#adventure[data-cave="yes"] #caveDock #adventureActions button{padding:8px 5px;font-size:10px;min-height:32px;white-space:normal}#adventure[data-cave="yes"] #caveDock #adventureActions button:first-child{padding:8px 5px;grid-row:span 2}
@media(max-width:850px){#adventure[data-cave="yes"] .adventure-shell{padding:6px;gap:3px}#adventure[data-cave="yes"] #caveDock{grid-template-columns:105px minmax(0,1fr);gap:6px;padding:6px}#adventure[data-cave="yes"] #caveDock #dungeonPad{grid-row:1 / span 2;grid-template-columns:repeat(3,30px);grid-template-rows:repeat(2,36px)}#adventure[data-cave="yes"] #caveDock #caveSkillBar{grid-column:2;grid-row:1}#adventure[data-cave="yes"] #caveDock #adventureActions{grid-column:2;grid-row:2;grid-template-columns:repeat(4,minmax(0,1fr))}#caveDock #caveSkillBar button{height:38px;font-size:9px;padding:6px 2px}#adventure[data-cave="yes"] #caveDock #adventureActions button{font-size:9px;padding:6px 2px;min-height:28px}#adventure[data-cave="yes"] #adventureMessage{font-size:10px}#adventure[data-cave="yes"] .adventure-heading h2{font-size:16px}}
#shopView .store-row{display:inline-block;vertical-align:top;padding:14px;margin:7px;border:1px solid #b6c69b55;background:#214939;border-radius:10px;min-width:220px}#shopView .store-row p{font-size:12px;line-height:1.6}#shopView>p{white-space:pre-line;line-height:1.9}#adventure[data-shop="walk"] .adventure-shell{position:relative;max-height:100%;overflow:auto}#adventure[data-shop="walk"] #adventureStatus{font-size:12px;line-height:1.7}#adventure[data-shop="walk"] #shopView:not([hidden]){position:absolute;left:5%;right:5%;top:145px;max-height:50%;overflow:auto;padding:20px;background:#143b30f5;border:1px solid #e7d9a9;border-radius:12px;z-index:3;box-shadow:0 12px 40px #0006}#adventure[data-shop="walk"] #dungeonPad{justify-content:flex-start;min-height:42px}#adventure[data-shop="walk"] #dungeonPad button{touch-action:none}@media(max-width:750px){#adventure[data-shop="walk"] #shopView:not([hidden]){top:140px;padding:12px;max-height:46%}#shopView .store-row{min-width:0;width:100%;margin:4px 0}#adventure[data-shop="walk"] #adventureStatus{font-size:10px}}
#doorFade{position:fixed;inset:0;background:#142f27;opacity:0;pointer-events:none;z-index:80}#doorFade.door-fade{animation:doorFade .35s ease-out}@keyframes doorFade{0%{opacity:.6}100%{opacity:0}}@media(prefers-reduced-motion:reduce){#doorFade.door-fade{animation:none}}
