/* Illustrated game shell — original artwork, warm paper, carved jade controls. */
:root{color-scheme:light;--ink:#443728;--muted:#857254;--jade:#356d58;--gold:#b48036;--dark:#eee0bd;--panel:#f6ebce;--line:#a78a5840}
html,body{height:100%;min-height:100%;background:#182d28}
body{background:#182d28;color:var(--ink)}
body:before{content:"";position:fixed;inset:-30px;background:linear-gradient(#122f30aa,#172c2be8),url('./assets/v2/world-map.webp') center 60%/cover;filter:blur(12px);pointer-events:none}
.ambient,.world-note,.travel-note{display:none}
.layout{display:block;max-width:none;height:100dvh;margin:0;padding:0;position:relative}
.game-shell{width:min(100%,480px);height:100dvh;max-height:960px;margin:auto;display:flex;flex-direction:column;border:1px solid #b69960; border-top:0;border-bottom:0;border-radius:0;background:#eadbb5;box-shadow:0 0 90px #081c1bc4;overflow:hidden}
.topbar{height:33px;min-height:33px;padding:0 12px;background:#294638;border:0;color:#eee0bc;z-index:4}
.brand{font-size:17px;font-weight:700;letter-spacing:2px;text-shadow:0 1px #122b21}
.brand span{font-size:9px;color:#ccb98e;font-family:var(--sans);padding-left:7px;letter-spacing:2px}
.top-actions{gap:0}.top-actions .icon-button{width:36px;min-width:36px;min-height:32px;color:#e1d3b4}
.top-actions .icon-button .icon{width:17px;height:17px}.icon-button:hover{background:#b9965b22;color:var(--gold)}
.player-hud{position:relative;z-index:3;flex-shrink:0;min-height:72px;padding:8px 13px;gap:8px;background:linear-gradient(90deg,#f8edcf,#e3ce9d);border-bottom:3px solid #84643c;box-shadow:0 2px 0 #e5c68a,0 5px 10px #203b3b44}
.identity{gap:9px;min-width:0}.identity strong{font-size:16px;font-weight:700;letter-spacing:0;color:#3b3c2a;white-space:nowrap}.identity small{color:#786140;font-size:10px;letter-spacing:.4px}
.avatar{width:51px;height:51px;flex-shrink:0;border-radius:13px;background:linear-gradient(135deg,#b4c3a0,#f0dfaf);border:2px solid #9b733e;box-shadow:inset 0 0 0 2px #ecd5a6,0 2px 2px #8d703343;overflow:hidden}
.avatar img{width:100%;height:auto;transform:scale(1.35);transform-origin:50% 25%;object-fit:contain;object-position:top}
.realm-chip{color:#fff2c9;border:1px solid #7d6a3c;background:#63764f;font-size:10px;margin-left:3px;padding:1px 5px}
.wallet{gap:6px;flex-direction:column}.currency{height:23px;min-width:82px;border:1px solid #bc9e63;border-radius:12px;background:#fff8e2aa;gap:5px;padding:1px 8px 1px 5px;box-shadow:inset 0 1px 2px #84683c26}
.currency>div{display:flex;align-items:center;gap:5px}.currency strong{font-size:14px;font-weight:700;color:#554125}.currency small{font-size:8px;color:#917143;margin:0}.currency .icon{width:15px;height:15px;color:#5e967c}.currency:nth-child(2) .icon{color:#b28642}
.tab-panel{flex:1;min-height:0;overflow:auto;background:#f3e7c8;scrollbar-width:thin;scrollbar-color:#b79a68 transparent}
#home-panel{display:flex;flex-direction:column;overflow:auto}
.scene{flex:1;min-height:245px;aspect-ratio:auto;background:#73967c;overflow:hidden;border-bottom:3px solid #977848}
.landscape{object-position:50% 60%;object-fit:cover}.scene-vignette{background:linear-gradient(#263d2833,transparent 24%,transparent 78%,#29443266)}
.location{top:14px;left:12px;padding:5px 9px;border:1px solid #b59c5f8c;border-radius:4px;background:#234132cc;font-size:10px;color:#fff0ca;letter-spacing:1px}
.scene-path{right:11px;top:10px;color:#fff2ca;background:#365b42df;border:1px solid #d5b775;min-height:35px;font-size:10px;border-radius:5px;box-shadow:0 2px 0 #274936}.scene-path .icon{width:23px;height:23px}
.cultivator{left:50%;bottom:17%;width:23%;max-width:125px;filter:drop-shadow(0 5px 2px #293a2950);z-index:1;animation:breathe 5s ease-in-out infinite}.cultivator img{max-height:177px;object-fit:contain}
.spirit-ring,.mist,.scene-caption{display:none}
.orbital-slot{width:55px;height:55px;border:2px solid #9b7845;border-radius:11px;background:linear-gradient(145deg,#fff1c8e8,#d3b675eb);box-shadow:inset 0 0 0 2px #f6df9c,0 3px 0 #6d593bb0;backdrop-filter:none;z-index:2;color:#45634c}
.orbital-slot .icon{width:47px;height:47px;filter:drop-shadow(0 1px 1px #4d412b55)}
.orbital-slot small{color:#fff3cc;font-size:10px;bottom:-19px;text-shadow:0 1px 2px #233c27,1px 0 2px #233c27;font-weight:700}
.orbital-slot:nth-child(1){left:8%;top:30%}.orbital-slot:nth-child(2){right:8%;top:30%}.orbital-slot:nth-child(3){left:8%;top:65%}.orbital-slot:nth-child(4){right:8%;top:65%}
.orbital-slot.filled{border-color:var(--rarity-color)}
.scene-stats{bottom:0;left:0;right:0;padding:6px 12px;background:#294a3ac9;border-top:1px solid #e0c58b80;border-bottom:0}.stat-pill{font-size:10px;color:#e9d5a6;gap:4px}.stat-pill strong{color:#fff4d3;font-size:14px;font-weight:700}.stat-pill .icon{width:19px;height:19px;color:#c5d2a6}
.scene-message{z-index:4;font-size:17px;top:20%}
.home-content{flex:none;padding:8px 12px 5px;background:linear-gradient(#f6e9c9,#e7d3a5)}
.quest{background:#fff5d8a6;border:1px solid #bea16c;border-radius:7px;padding:6px 9px;min-height:48px;box-shadow:0 2px 0 #c7ac7644}.quest>.icon{color:#9b773c;width:23px;height:23px}.quest-label{font-size:9px;color:#967739;letter-spacing:0}.quest strong{font-size:12px;font-weight:700;color:#51412a}.quest small{color:#8b754e;font-size:9px;margin-top:1px}.quest-arrow{color:#9b733e}
.loot-area{min-height:110px;padding:7px 0}.quiet-card{padding:9px 11px;border:1px solid #b99a6555;background:#fff6df7a;border-radius:7px;gap:10px}.quiet-lamp{width:56px;height:65px;background:none}.quiet-lamp .icon{width:64px;height:64px}.quiet-text h3{font-size:15px;font-weight:700;letter-spacing:1px;color:#5b4c31;margin:0 0 4px}.quiet-text p{color:#927b51;font-size:10px;line-height:1.7}.quiet-text p span{color:#94702c;font-weight:700}
.rarity-0{--rarity-color:#85745b}.rarity-1{--rarity-color:#408b70}.rarity-2{--rarity-color:#8261b2}.rarity-3{--rarity-color:#c98a2d}
.loot-card{background:linear-gradient(110deg,#fff7dd,#e9d8b1);padding:7px 10px;border:1px solid var(--rarity-color);border-radius:8px}.loot-head{gap:8px}.item-icon{width:46px;height:46px;border:2px solid var(--rarity-color);border-radius:9px;background:linear-gradient(135deg,#fff4d9,#cfb98a);box-shadow:inset 0 0 0 2px #f5e2b0,0 2px 2px #5f4a2922}.item-icon .icon{width:40px;height:40px}.item-name{font-size:17px;font-weight:700;letter-spacing:0}.item-meta{font-size:10px;color:#8b7450}.item-quality{font-size:10px;background:#fff6df;padding:2px 5px}.loot-stats{padding:5px 0;color:#685538;font-size:10px;justify-content:space-between;gap:4px}.up{color:#277d48}.down{color:#b04b32}.neutral{color:#9e8c6c}
.loot-decisions{gap:7px}.loot-decisions button{min-height:35px;font-size:10px;color:#6c5531;border:1px solid #b79a63;background:#e7d5aa;box-shadow:inset 0 1px #fff3ce}.loot-decisions button.equip{background:linear-gradient(#5a8e63,#3f6e49);color:#fff1c7;border-color:#3b6340;box-shadow:inset 0 1px #91b17a,0 2px 0 #2e5138}
.main-actions{gap:9px}.button{min-height:46px;border-radius:8px;font-size:15px;letter-spacing:1px;font-weight:700;padding:9px 14px;border-width:2px}.button .icon{width:27px;height:27px}.primary,.primary:hover:not(:disabled){color:#fff4cc;background:linear-gradient(#699c6a,#44784d);border:2px solid #36583d;box-shadow:inset 0 1px #bed096,0 3px 0 #294c33;text-shadow:0 1px #2d5032}
.secondary,.secondary:hover:not(:disabled){color:#6f411f;background:linear-gradient(#f7d28a,#dea956);border:2px solid #a57534;box-shadow:inset 0 1px #fff0c0,0 3px 0 #80572b;text-shadow:0 1px #ffe4a8}
.explore-caption{font-size:8px;letter-spacing:0;color:#957a4f;min-height:19px;padding-top:6px}
.bottom-nav{z-index:5;flex:none;position:relative;bottom:auto;padding:6px 12px 3px;background:linear-gradient(#f5e4b9,#d9c091);border-top:3px solid #8d6c3e;box-shadow:0 -2px 0 #fff0c4,0 -4px 12px #2d4a3526;min-height:70px}
.bottom-nav button{min-height:55px;gap:0;color:#7c6642;font-weight:700;font-size:11px;letter-spacing:2px;justify-content:center;border-radius:8px}.bottom-nav button>span{display:grid;place-items:center;width:41px;height:34px}.bottom-nav button .icon{width:30px;height:30px;filter:drop-shadow(0 1px #fff4cf)}.bottom-nav button .art-icon{width:39px;height:39px}.bottom-nav button.active{color:#3c663f;background:linear-gradient(#a9bc804a,#d6e1a330);box-shadow:inset 0 0 0 1px #87975a77}.bottom-nav button.active:before{display:none}.bottom-nav i{width:7px;height:7px;top:4px;right:24%;background:#bf5841;border:1px solid #fff1b8}
.game-foot{flex:none;min-height:16px;height:16px;padding:1px 12px;background:#d9c091;color:#88734f;font-size:8px;letter-spacing:0}
.game-icon{display:inline-block;background:currentColor;mask:var(--icon-url) center/contain no-repeat;-webkit-mask:var(--icon-url) center/contain no-repeat}.art-icon{object-fit:contain}
.detail-panel{padding:20px 16px;min-height:0;background:linear-gradient(#f9efd5ee,#e6d5adf5),url('./assets/v2/camp.webp') center/cover}.section-kicker{color:#a18045;font-size:10px;letter-spacing:2px}.section-heading{margin:5px 0 9px}.section-heading h2{font-size:25px;color:#4e4f34;font-weight:700;letter-spacing:2px}.section-heading>span{color:#9a7b4b;font-size:10px}.section-intro{color:#927c56;font-size:11px;line-height:1.8;margin-bottom:16px}
.attributes{background:#fffae57d;padding:12px 4px;border:1px solid #bda37288;border-radius:9px;margin:12px 0}.attribute{font-size:11px;color:#8a724e}.attribute strong{font-size:23px;color:#546342;font-weight:700}.attribute .icon{width:17px;height:17px}
.gear-list{gap:10px}.gear-row{min-height:84px;padding:10px 12px;border:1px solid #bca16f;background:linear-gradient(120deg,#fff5d8,#e5d2a4);box-shadow:0 3px 0 #ab8e5740}.gear-row:hover{background:#ffefc6}.gear-row .item-icon{width:58px;height:58px}.gear-row .item-icon .icon{width:52px;height:52px}.gear-row .item-heading small{font-size:10px;color:#937953}.gear-row>small{color:#a38555}.gear-row .empty-name{color:#807451;font-size:16px}.gear-summary{border-color:#b59a65;background:#e6d3a4}.gear-summary h3{color:#6c793f;font-weight:700}.gear-summary p{color:#8a734c;font-size:11px}.pending-reminder{background:#ead59e;color:#7a5526;border-color:#b9954f}
.path-card{min-height:148px;background:linear-gradient(115deg,#dfecd0,#c3d2a6);border:2px solid #a5b086;box-shadow:0 3px 0 #788a5b4d;border-radius:11px;padding:22px 14px 18px;gap:14px}.path-card.fo{background:linear-gradient(115deg,#f7e4ae,#e9cb8a);border-color:#c4a667}.path-card.selected{border-color:#64844e;background:linear-gradient(115deg,#edf5d4,#c7d8a2);box-shadow:inset 0 0 0 2px #fff5cf,0 3px 0 #577145}.path-card.fo.selected{border-color:#a6803c;background:linear-gradient(115deg,#ffefc0,#e6c375)}
.path-emblem{width:85px}.path-emblem .icon{width:80px;height:95px}.path-card h3{font-size:28px;color:#4f603b;font-weight:700}.path-card.fo h3{color:#8b6031}.path-card small{color:#7b8154}.path-card p{font-size:11px;color:#76805a;line-height:1.8}.path-card.fo p{color:#987747}.path-choice{top:8px;right:9px;color:#657e43;font-size:10px;font-weight:700}.path-card.fo .path-choice{color:#8d6a2e}.unity-panel{background:#fdf3d4;border:1px solid #b99e69;margin-top:19px;padding:14px}.unity-title{color:#8b6b30;font-weight:700;font-size:18px}.unity-panel p{color:#8b7753}.synergy span{color:#9b8663;border-color:#c9b58a;background:#ecdfbd}.synergy span.on{color:#587847;border-color:#8da76f;background:#e2eabc}
#journey-panel{padding:0;position:relative;overflow:hidden;background:#5c8058}
#journey-panel>.section-kicker,#journey-panel>.section-heading,#journey-panel>.map-instruction{display:none}
.rpg-shell{margin:0;width:100%;height:100%;border:0;position:absolute;inset:0;background:#6d8d64}
.rpg-shell canvas{height:100%;width:100%;display:block}
.rpg-zone{top:12px;left:12px;max-width:70%;padding:7px 11px;border:1px solid #dfc68b;background:#2c4c37eb;border-radius:5px;font-family:var(--serif);font-size:13px;font-weight:700;letter-spacing:1px;color:#fff1c6;box-shadow:0 2px 2px #203e3555}
.rpg-coordinate{top:auto;bottom:12px;left:117px;right:102px;font-size:9px;text-align:center;color:#fff5d4;text-shadow:0 1px 3px #183322,1px 0 2px #183322;line-height:1.5;max-height:42px;overflow:hidden}
.rpg-target{position:absolute;left:12px;top:56px;max-width:286px;display:flex;gap:6px;margin:0;padding:6px 8px;background:#fff1cbe8;border:1px solid #aa8c53;border-radius:5px;box-shadow:0 2px 3px #213c3340}
.rpg-target>div{min-width:108px;flex:1}.rpg-target small{font-size:9px;color:#977d45}.rpg-target strong{font-size:14px;font-weight:700;color:#615333;letter-spacing:0}.rpg-target .small-button{min-height:36px;padding:5px 9px;background:linear-gradient(#77995e,#557845);border:1px solid #466235;color:#fff3cf;font-size:11px;border-radius:5px;box-shadow:inset 0 1px #a9bd84}.rpg-target #world-speed{padding:5px 7px;min-width:31px;background:#e1cf9c;color:#765e32;border-color:#a88d55}
.rpg-controls{bottom:24px;left:19px;right:17px}.joystick{width:92px;height:92px;border:2px solid #f5e3b98f;background:#2546355c;box-shadow:inset 0 0 0 8px #f8eac021,0 2px 5px #29452b55}.joystick-knob{top:26px;left:26px;width:36px;height:36px;background:radial-gradient(circle at 35% 25%,#f9e7bb,#a89966);border:2px solid #fff0bd;box-shadow:0 2px 6px #304f34}.joystick small{display:none}
.rpg-attack{width:80px;height:80px;color:#fff2c3;background:radial-gradient(circle at 35% 25%,#b77934,#734e26);border:3px solid #f2d698;box-shadow:0 0 0 2px #5d522d,inset 0 0 0 4px #d3a65d55,0 4px 8px #243b3b70;font-size:11px;font-weight:700;gap:0}.rpg-attack .icon{width:43px;height:43px}.rpg-attack small{display:none}
.rpg-skill{font-size:26px;top:36%;font-weight:700;letter-spacing:6px;color:#fff2b8;text-shadow:0 2px 1px #8b562a,0 0 15px #f1c85d}
.map-footer{position:absolute;right:12px;top:111px;display:flex;flex-direction:column;gap:7px;margin:0}.map-footer .small-button{min-height:37px;width:40px;font-size:0;padding:6px;border-radius:8px;background:#fff0ccdb;border:2px solid #af8a52;box-shadow:0 2px 1px #42573155}.map-footer .icon{width:25px;height:25px;margin:0;color:#688454}
.small-button{border-color:#b59c6e;color:#775f39;background:#f2e5c2;min-height:40px}
/* Paper dialogs keep inventory, battle rewards and saving readable. */
dialog{background:#f7ebcd;border:2px solid #a78b50;border-radius:12px;color:#58472d;box-shadow:0 20px 80px #0b211dc9,inset 0 0 0 3px #fff5da}
dialog::backdrop{background:#122b23bb;backdrop-filter:blur(4px)}.modal-header h2{color:#52623e;font-weight:700;font-size:24px}.modal-header .icon-button{color:#8a734a}.modal-body{color:#8a7450;font-size:12px}.modal-body a{color:#65824c;text-decoration:underline}.modal-footer .button{font-size:12px}.intro-art{background-image:url('./assets/v2/camp.webp');height:210px;background-position:center 44%}.intro-art:after{background:linear-gradient(transparent 50%,#f7ebcd)}.intro-art .intro-lamp{width:95px;height:95px;top:65%}.intro-art .icon{width:95px;height:95px}.intro-modal h2{color:#526140;font-weight:700}.intro-modal p{color:#86734b}.intro-steps,.intro-fine{color:#9b8356}.help-item strong{color:#58643b}.requirement{color:#8b754d}.requirement .ready{color:#4e834d}.requirement .needed{color:#b27c3d}.settings-row{color:#645737}.danger{color:#a74d38}.modal-notice{background:#eed596;color:#77572b;border-color:#bca16a}.toast{background:#fff1ca;border:1px solid #b49251;color:#66502f;bottom:100px;box-shadow:0 4px 20px #14291c66}
.battle-modal{background:linear-gradient(#f6ebcd,#e8d6ad)}.battle-title{font-weight:700;color:#667146}.combat-name{color:#725c3d}.health-track{background:#cab788}.health-fill{background:#679d5d}.enemy .health-fill{background:#bf754b}.health-value{color:#90764b}.combat-arena{background:url('./assets/v2/camp.webp') center 66%/cover;border:1px solid #c6ad76;border-radius:8px;overflow:hidden}.fighter img{height:153px;object-fit:contain}.fighter .spirit{height:155px;width:155px;object-fit:contain}.battle-event{color:#9d7533}.battle-round,.battle-log{color:#9c845c}.result-title{color:#6a813e;font-weight:700}.battle-result p{color:#927b53}.result-tip{background:#e4d3a5;color:#8b7146!important}.battle-result .spirit{object-fit:contain}.reward-row{color:#8b6b2e}.battle-controls button{background:#f6e9c7;color:#84673b}.item-detail-art{background:#e9d5a6;border-width:2px}.item-detail-art .icon{width:85px;height:85px}.journey-row h3{color:#6d6244}.journey-row small{color:#a38c60}.journey-row.locked h3{color:#b2a17d}.stage-number{color:#a98a50}.stage-status{color:#5b8c58}.chapter-label{color:#92703b}.storage-warning{z-index:8;flex:none}
@media(min-height:961px){.layout{padding-top:calc((100dvh - 960px)/2)}.game-shell{border:2px solid #a88c56;border-radius:16px;height:960px}}
@media(max-width:520px){.game-shell{width:100%;max-height:none;border:0}.layout{padding:0}.bottom-nav{padding-bottom:max(3px,env(safe-area-inset-bottom))}.topbar{padding-top:env(safe-area-inset-top);height:calc(33px + env(safe-area-inset-top));min-height:calc(33px + env(safe-area-inset-top))}.detail-panel{padding:18px 15px}.home-content{padding:8px 11px 4px}}
@media(max-height:730px){.scene{min-height:210px}.player-hud{min-height:64px;padding:6px 11px}.avatar{height:46px;width:46px}.bottom-nav{min-height:62px;padding-top:3px}.bottom-nav button{min-height:50px}.loot-area{min-height:98px}.quiet-text p{font-size:9px}.quest small{font-size:8px}.home-content{padding-top:6px}.explore-caption{min-height:16px}.game-foot{display:none}.orbital-slot{width:47px;height:47px}.orbital-slot .icon{width:40px;height:40px}.cultivator{bottom:17%;width:22%}}
@media(prefers-reduced-motion:reduce){.cultivator{animation:none}}

.cultivator{width:30%;max-width:140px}.cultivator img{max-height:190px}.quiet-text p{font-size:11px}.rpg-attack .icon{width:49px;height:49px}.rpg-target .small-button{min-height:44px}.map-footer{top:123px}.map-footer .small-button{width:44px;min-height:44px}.map-footer .icon{width:28px;height:28px}
