
:root{color-scheme:dark;--gold:#ffd33d;--gold2:#ff9d22;--panel:#151b23;--panel2:#202936;--line:rgba(255,255,255,.09);--muted:#9aa8b6;--green:#64d577;--red:#ee5b52;--blue:#58aef6;--cream:#fff8e7}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#080c11;font-family:system-ui,-apple-system,"Segoe UI","Noto Sans JP",sans-serif}button,input{font:inherit}button{touch-action:manipulation}body{display:grid;place-items:center}
/* One 360x640 layout: canvas, text, controls and overlays share the same scale. */
#shell{width:360px;height:640px;aspect-ratio:9/16;position:relative;transform:scale(var(--game-scale,1));transform-origin:center;overflow:hidden;background:#121821;box-shadow:0 24px 80px rgba(0,0,0,.52);isolation:isolate}.hidden{display:none!important}
#battle{position:absolute;left:0;top:0;width:100%;height:48.4375%;display:block;background:#9edcff}
.ui-layer{position:absolute;inset:0;z-index:20}
/* loading */
#loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:10%;background:linear-gradient(180deg,#1c2733,#0b1118);text-align:center}.brand{font-size:10px;font-weight:1000;letter-spacing:.22em;color:rgba(255,255,255,.84)}.spinner{width:48px;height:48px;margin:34px 0 20px;border:4px solid rgba(255,255,255,.14);border-top-color:var(--gold);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-title{font-size:18px;font-weight:1000}.loading-status{margin-top:7px;font-size:12px;color:#a7b1bc}.progress{width:78%;height:9px;margin-top:24px;border-radius:99px;background:#2a3440;overflow:hidden}.progress i{display:block;width:0;height:100%;background:linear-gradient(90deg,var(--gold2),#ffe36a);transition:width .18s;border-radius:99px}.progress-num{margin-top:8px;font-size:12px;color:#a7b1bc;font-weight:900}
/* start */
#startScreen{position:absolute;inset:0;overflow:hidden;background:#6ec9ff;color:#fff;padding:0;display:block;isolation:isolate}
.title-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;transform:scale(1.025);filter:saturate(1.05)}
.title-vignette{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(180deg,rgba(0,0,0,.10),rgba(0,0,0,0) 25%,rgba(0,0,0,.02) 63%,rgba(5,8,12,.25) 100%)}
.start-brand{position:absolute;z-index:12;top:2.2%;left:50%;transform:translateX(-50%);font-size:9px;font-weight:1000;letter-spacing:.20em;text-shadow:0 2px 6px rgba(0,0,0,.45);white-space:nowrap}
.icon-btn{width:42px;height:42px;border:1px solid rgba(255,255,255,.48);border-radius:50%;background:rgba(17,24,30,.78);color:#fff;display:grid;place-items:center;font-size:18px;font-weight:1000;cursor:pointer}
.title-settings{position:absolute;z-index:14;top:2%;right:3.5%;width:46px;height:46px;box-shadow:0 5px 15px rgba(0,0,0,.22)}
.fullscreen-shortcut{flex-shrink:0;display:flex;flex-direction:column;justify-content:center;gap:1px;padding:3px;border-radius:10px;font-size:9px;line-height:1}
.fullscreen-symbol{font-size:18px;line-height:1;color:var(--gold)}
.title-fullscreen{position:absolute;z-index:31;top:2%;right:calc(3.5% + 54px);height:46px;box-shadow:0 5px 15px rgba(0,0,0,.22)}
.hud-buttons .icon-btn.fullscreen-shortcut{width:46px;font-size:8px}
.title-logo-wrap{position:absolute;z-index:9;top:5.1%;left:50%;width:90.2%;transform:translate(-50%,-185%) rotate(-5deg) scale(.92);transform-origin:50% 15%;filter:drop-shadow(0 10px 9px rgba(44,25,10,.26));will-change:transform}
.title-logo-wrap img{display:block;width:100%;height:auto}
.title-impact{position:absolute;z-index:8;top:17.5%;left:50%;width:80%;aspect-ratio:1/0.23;transform:translate(-50%,-50%) scale(.2);border-radius:50%;opacity:0;pointer-events:none;background:radial-gradient(ellipse,rgba(255,246,168,.95) 0%,rgba(255,215,72,.45) 32%,rgba(255,255,255,0) 72%);filter:blur(2px)}
.title-cat-wrap{position:absolute;z-index:7;left:50%;top:49.3%;width:66%;opacity:0;transform:translate(-50%,-50%) translateX(-90%) scale(.76);filter:drop-shadow(0 13px 8px rgba(24,17,11,.22));will-change:transform,opacity}
.title-cat{display:block;width:100%;height:auto;transform-origin:50% 82%;will-change:transform}
.title-cat-wrap:before,.title-cat-wrap:after{content:"";position:absolute;z-index:-1;left:9%;bottom:12%;width:16%;height:8%;border-radius:50%;background:rgba(255,248,226,.88);filter:blur(2px);opacity:0}
.title-cat-wrap:after{left:0%;bottom:18%;width:10%;height:5%}
.title-start-wrap{position:absolute;z-index:11;left:50%;bottom:5.2%;width:79.2%;transform:translate(-50%,165%) scale(.74);opacity:0;will-change:transform,opacity}
#startBtn{display:block;width:100%;padding:0;border:0;background:transparent;cursor:pointer;pointer-events:none;filter:drop-shadow(0 9px 4px rgba(45,27,8,.26));transition:filter .12s ease,transform .12s ease}
#startBtn img{display:block;width:100%;height:auto;pointer-events:none}
#startBtn:hover{filter:drop-shadow(0 11px 5px rgba(45,27,8,.30)) brightness(1.04)}
#startBtn:active{transform:translateY(4px) scale(.985)}
.title-click-gate{position:absolute;inset:0;z-index:30;border:0;padding:0;background:rgba(5,10,16,.34);backdrop-filter:blur(1.5px);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:opacity .32s ease,visibility .32s ease}
.title-click-gate.gone{opacity:0;visibility:hidden;pointer-events:none}
.click-message{padding:15px 24px;border:1px solid rgba(255,255,255,.62);border-radius:999px;background:rgba(12,20,27,.76);box-shadow:0 10px 28px rgba(0,0,0,.28);font-size:14px;font-weight:1000;letter-spacing:.04em;text-shadow:0 2px 5px #000;animation:clickPulse 1.05s ease-in-out infinite alternate}
#startScreen.intro-active .title-logo-wrap{animation:titleDrop 1.05s cubic-bezier(.18,.88,.22,1.18) .12s forwards}
#startScreen.intro-active .title-impact{animation:titleImpact .55s ease-out .72s forwards}
#startScreen.intro-active .title-cat-wrap{animation:catChargeIn .92s cubic-bezier(.18,.9,.28,1.12) .48s forwards}
#startScreen.intro-active .title-cat{animation:catRunBob .31s ease-in-out 1.35s infinite alternate}
#startScreen.intro-active .title-cat-wrap:before{animation:dustPuff .62s ease-out 1.10s infinite}
#startScreen.intro-active .title-cat-wrap:after{animation:dustPuff .62s ease-out 1.38s infinite}
#startScreen.intro-active .title-start-wrap{animation:startSprout .82s cubic-bezier(.15,.86,.18,1.24) 1.26s forwards}
#startScreen.intro-complete #startBtn{pointer-events:auto}
@keyframes clickPulse{from{transform:scale(.97);box-shadow:0 8px 24px rgba(0,0,0,.24)}to{transform:scale(1.035);box-shadow:0 13px 34px rgba(0,0,0,.38),0 0 18px rgba(255,220,83,.16)}}
@keyframes titleDrop{0%{transform:translate(-50%,-185%) rotate(-5deg) scale(.92)}58%{transform:translate(-50%,9%) rotate(1.5deg) scale(1.045)}72%{transform:translate(-50%,-5%) rotate(-1deg) scale(.985)}86%{transform:translate(-50%,2%) rotate(.3deg) scale(1.012)}100%{transform:translate(-50%,0) rotate(0) scale(1)}}
@keyframes titleImpact{0%{opacity:0;transform:translate(-50%,-50%) scale(.2)}28%{opacity:.9;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.55)}}
@keyframes catChargeIn{0%{opacity:0;transform:translate(-50%,-50%) translateX(-90%) scale(.76) rotate(-7deg)}60%{opacity:1;transform:translate(-50%,-50%) translateX(5%) scale(1.045) rotate(2deg)}78%{transform:translate(-50%,-50%) translateX(-2%) scale(.985) rotate(-1deg)}100%{opacity:1;transform:translate(-50%,-50%) translateX(0) scale(1) rotate(0)}}
@keyframes catRunBob{0%{transform:translateY(0) rotate(-1.5deg) scaleX(1.015) scaleY(.985)}100%{transform:translateY(-8px) rotate(1.5deg) scaleX(.985) scaleY(1.015)}}
@keyframes dustPuff{0%{opacity:0;transform:translate(0,0) scale(.45)}20%{opacity:.72}100%{opacity:0;transform:translate(-48px,-9px) scale(1.65)}}
@keyframes startSprout{0%{opacity:0;transform:translate(-50%,165%) scale(.74)}62%{opacity:1;transform:translate(-50%,-9%) scale(1.08)}79%{transform:translate(-50%,4%) scale(.97)}91%{transform:translate(-50%,-2%) scale(1.018)}100%{opacity:1;transform:translate(-50%,0) scale(1)}}
/* battle hud */
#battleHud{position:absolute;left:0;right:0;top:0;height:48.4375%;z-index:8;pointer-events:none;padding:10px 12px;color:#fff}.hud-top{display:flex;justify-content:space-between;gap:7px;align-items:flex-start}.hud-left{display:flex;gap:6px;flex-wrap:wrap}.hud-chip{background:rgba(14,20,27,.8);border:1px solid rgba(255,255,255,.18);border-radius:11px;padding:7px 9px;box-shadow:0 5px 15px rgba(0,0,0,.18);min-width:70px}.hud-chip small{display:block;font-size:7px;letter-spacing:.09em;color:#aeb9c4;font-weight:1000}.hud-chip strong{font-size:14px;font-weight:1000}.hud-buttons{pointer-events:auto;display:flex;gap:6px}.hud-buttons .icon-btn{width:34px;height:34px;font-size:14px}.map-title{position:absolute;top:54px;left:50%;transform:translateX(-50%);padding:5px 12px;border-radius:99px;background:rgba(15,21,28,.68);font-size:10px;font-weight:1000;white-space:nowrap}.hp-wrap{position:absolute;left:12px;right:12px;top:84px;display:grid;grid-template-columns:1fr 1fr;gap:9px}.hp-box{background:rgba(14,20,27,.82);border-radius:11px;padding:7px 9px;box-shadow:0 5px 14px rgba(0,0,0,.18)}.hp-head{display:flex;justify-content:space-between;gap:5px;font-size:9px;font-weight:1000;margin-bottom:4px}.bar{height:9px;border-radius:99px;background:#303946;overflow:hidden}.bar i{display:block;height:100%;width:100%;background:linear-gradient(90deg,#55cb68,#8ce679);transition:width .16s}.enemy .bar i{background:linear-gradient(90deg,#ff794f,#e54746)}#battleMsg{position:absolute;left:50%;top:135px;transform:translateX(-50%);padding:5px 10px;border-radius:99px;background:rgba(14,20,27,.68);font-size:9px;font-weight:1000;white-space:nowrap;max-width:90%;overflow:hidden;text-overflow:ellipsis}.stage-progress{position:absolute;left:13px;right:13px;bottom:10px}.stage-line{display:flex;justify-content:space-between;font-size:8px;font-weight:1000;text-shadow:0 2px 5px #000}.stage-track{height:6px;margin-top:4px;background:rgba(13,19,26,.52);border-radius:99px;overflow:hidden;border:1px solid rgba(255,255,255,.16)}.stage-track i{display:block;height:100%;width:0;background:linear-gradient(90deg,#ffd23d,#ff8d27);transition:width .2s}
/* lower manager */
#manager{position:absolute;left:0;right:0;top:48.4375%;bottom:0;z-index:9;background:linear-gradient(180deg,#202936,#121821 76%);border-top:2px solid rgba(255,255,255,.08);color:#fff;display:flex;flex-direction:column}.summary{height:61px;display:flex;align-items:center;justify-content:space-between;padding:8px 13px;border-bottom:1px solid var(--line);gap:7px}.money strong{display:block;font-size:24px;line-height:1;font-weight:1000;font-variant-numeric:tabular-nums}.money small{font-size:8px;color:var(--muted);font-weight:900;letter-spacing:.1em}.reward-mini{display:flex;gap:6px}.reward-pill{padding:6px 8px;border-radius:10px;background:#293442;text-align:center;min-width:58px}.reward-pill b{display:block;font-size:12px}.reward-pill span{display:block;font-size:7px;color:#aab6c2;font-weight:900}.tabs{height:52px;display:grid;grid-template-columns:repeat(6,1fr);border-bottom:1px solid var(--line);background:#171f29}.tab{border:0;background:transparent;color:#91a0ae;font-weight:900;font-size:8px;padding:5px 1px;cursor:pointer;border-bottom:3px solid transparent}.tab b{display:block;font-size:16px;line-height:1.1;margin-bottom:2px}.tab b img{width:20px;height:20px;object-fit:contain;vertical-align:middle}.tab.active{color:#fff;border-bottom-color:var(--gold);background:rgba(255,207,61,.05)}.panels{position:relative;flex:1;min-height:0}.panel{position:absolute;inset:0;overflow:auto;padding:11px 12px 18px;overscroll-behavior:contain}.section-head{display:flex;justify-content:space-between;align-items:end;gap:8px;margin:2px 0 9px}.section-head h3{margin:0;font-size:14px}.section-head small{color:#8998a7;font-size:8px;font-weight:800}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:8px}.card{border:1px solid var(--line);border-radius:13px;background:linear-gradient(180deg,#293442,#202936);padding:10px}.card-title{font-size:12px;font-weight:1000}.card-sub{font-size:9px;color:#b5c0ca;line-height:1.45;margin-top:4px;font-weight:750}.cost{margin-top:6px;color:#ffd75c;font-size:10px;font-weight:1000}.action-btn{width:100%;margin-top:7px;border:0;border-radius:9px;padding:9px 8px;font-weight:1000;font-size:10px;cursor:pointer;background:linear-gradient(#ffe15a,#ffad25);color:#271b08;box-shadow:inset 0 2px rgba(255,255,255,.58)}.action-btn:disabled{filter:grayscale(.7);opacity:.45;cursor:not-allowed}.subtle-btn{background:#354150;color:#fff;box-shadow:none;border:1px solid rgba(255,255,255,.12)}.badge{display:inline-block;padding:2px 6px;border-radius:99px;background:#3a4655;font-size:7px;font-weight:1000;color:#cdd6de}.badge.gold{background:#5d4917;color:#ffe172}.badge.green{background:#194b2c;color:#8ee3a0}.row{display:flex;justify-content:space-between;gap:8px;align-items:center}.material-list{display:grid;gap:6px}.material{display:flex;align-items:center;justify-content:space-between;padding:9px 10px;border-radius:11px;background:#252f3c;border:1px solid var(--line)}.material b{font-size:11px}.material span{font-size:11px;font-weight:1000;color:#ffe071}.map-list{display:grid;gap:7px}.map-card{padding:10px;border-radius:12px;background:#252f3c;border:1px solid var(--line)}.map-card.locked{opacity:.46;filter:saturate(.55)}.map-card.current{border-color:#ffd447;box-shadow:0 0 0 1px rgba(255,212,71,.18)}.map-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.map-head b{font-size:12px}.map-meta{margin-top:5px;color:#aeb8c3;font-size:8px;line-height:1.5}.tree-branch{margin-bottom:10px;padding:9px;border-radius:12px;background:#232d39;border:1px solid var(--line)}.tree-name{font-size:11px;font-weight:1000;margin-bottom:7px}.tree-nodes{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.tree-node{min-height:72px;border:1px solid rgba(255,255,255,.1);border-radius:9px;background:#2c3744;color:#fff;padding:6px;font-size:8px;text-align:left;cursor:pointer}.tree-node strong{display:block;font-size:9px;margin-bottom:3px}.tree-node.owned{border-color:#6fd783;background:#1d4630}.tree-node.locked{opacity:.4}.skill-card{position:relative}.skill-cd{font-variant-numeric:tabular-nums;color:#aeb8c4;font-size:9px;font-weight:1000}.buffline{margin-bottom:8px;padding:8px 10px;border-radius:10px;background:#332a16;border:1px solid #6c5420;color:#ffe384;font-size:9px;font-weight:900}.empty{padding:26px 12px;text-align:center;color:#8f9ca9;font-size:10px;line-height:1.6}
/* overlays/modals */
.modal-wrap{display:flex;align-items:center;justify-content:center;padding:25px;background:rgba(5,8,11,.74);backdrop-filter:blur(4px)}.modal{width:100%;max-width:430px;max-height:90%;overflow:auto;padding:22px;border-radius:20px;background:#fff7e7;color:#29221a;border:2px solid #d5af6c;box-shadow:0 28px 80px rgba(0,0,0,.52)}.modal h2{margin:0 0 16px;font-size:24px}.setting-row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:11px 0;border-bottom:1px solid rgba(80,55,30,.12);font-weight:900}.range-wrap{display:flex;align-items:center;gap:7px}.range-wrap input{width:128px;accent-color:#e9a51e}.modal-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:17px}.modal button.action{border:0;border-radius:11px;padding:12px;font-weight:1000;cursor:pointer}.secondary{background:#e5dac4;color:#30281e}.primary{background:#efb62e;color:#2d2007}
/* Compact spacing belongs to the logical layout, independent of iframe size. */
.summary{height:54px}.tabs{height:45px}.card{padding:8px}.panel{padding-top:8px}
@media(prefers-reduced-motion:reduce){*{animation-duration:.001ms!important;transition-duration:.001ms!important}}

/* v6 improvements */
#fullscreenHost{width:100%;height:100%;display:grid;place-items:center;background:#080c11;overflow:hidden}
#fullscreenHost:fullscreen{width:100vw;height:100vh;display:grid;place-items:center;background:#080c11}
.quick-skills{position:absolute;left:12px;top:132px;z-index:30;display:flex;gap:6px;pointer-events:auto;max-width:58%;flex-wrap:wrap;align-items:flex-start}
.quick-skill{position:relative;flex:0 0 44px;width:44px;height:44px;min-width:44px;min-height:44px;border:2px solid rgba(255,255,255,.35);border-radius:10px;background:rgba(18,25,33,.92);color:#fff;display:block;cursor:pointer;overflow:hidden;box-shadow:0 4px 12px rgba(0,0,0,.24);padding:0;touch-action:manipulation;contain:layout paint;transform:translateZ(0)}
.quick-skill>*{pointer-events:none}.quick-skill img{position:absolute;inset:3px;width:calc(100% - 6px);height:calc(100% - 6px);object-fit:contain}.quick-skill .fallback{position:absolute;inset:0;display:grid;place-items:center;font-size:22px}.quick-skill .skill-lv{position:absolute;right:2px;bottom:1px;font-size:7px;font-weight:1000;background:rgba(0,0,0,.76);padding:1px 3px;border-radius:6px}.quick-skill .skill-timer{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;font-size:8px;font-weight:1000;font-variant-numeric:tabular-nums;line-height:1.05}.quick-skill .skill-timer b{font-size:6px;letter-spacing:.05em}.quick-skill .skill-timer.buff{background:rgba(112,78,0,.56);color:#fff3a6}.quick-skill .skill-timer.cooldown{background:rgba(5,8,12,.74);color:#e4eaf0}.quick-skill.active{border-color:#ffe36b;box-shadow:0 0 0 1px #ffe36b inset,0 0 12px rgba(255,218,76,.62)}
#battleMsg{top:181px}
.upgrade-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.upgrade-card{padding:7px;min-width:0}.upgrade-card .card-title{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.upgrade-card .card-sub{font-size:7px;min-height:20px}.upgrade-card .cost{font-size:8px;margin-top:3px}.upgrade-card .badge{font-size:6px}.upgrade-card .action-btn{width:auto;min-width:58px;height:28px;padding:4px 9px;margin-top:5px;font-size:8px;border-radius:8px}
.inventory-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}.inventory-tile{position:relative;aspect-ratio:1/1;border:1px solid rgba(255,255,255,.12);border-radius:12px;background:linear-gradient(180deg,#2b3644,#202a36);color:#fff;cursor:pointer;padding:6px;overflow:hidden}.inventory-tile:hover,.inventory-tile:focus-visible{border-color:#ffd44d;box-shadow:0 0 0 1px rgba(255,212,77,.25)}.inventory-tile img{position:absolute;inset:8px;width:calc(100% - 16px);height:calc(100% - 16px);object-fit:contain}.inventory-tile .tile-fallback{position:absolute;inset:8px;display:grid;place-items:center;font-size:26px;font-weight:1000;color:#d9e2e9}.inventory-tile .tile-count{position:absolute;right:5px;bottom:4px;min-width:22px;text-align:center;background:rgba(4,8,12,.78);border-radius:7px;padding:2px 4px;font-size:8px;font-weight:1000;color:#ffe06b}.inventory-tile .tile-lock{position:absolute;inset:0;display:grid;place-items:center;background:rgba(8,12,16,.58);font-size:17px}.inventory-tile.dim{opacity:.56}
.detail-reserve{min-height:86px;margin:0 0 10px}.detail-reserve:empty:before{content:'アイコンをクリック / タップすると詳細を表示';display:flex;align-items:center;justify-content:center;min-height:84px;border:1px dashed rgba(255,255,255,.12);border-radius:14px;color:#6f7f8e;font-size:8px;font-weight:800}#detailPopup{position:absolute;left:12px;top:12px;z-index:35;margin:0;padding:11px 12px;min-height:84px;max-width:min(260px,calc(100% - 20px));border-radius:14px;background:rgba(15,21,29,.985);border:1px solid rgba(255,217,86,.65);box-shadow:0 8px 20px rgba(0,0,0,.30);color:#fff;pointer-events:auto}.detail-title{font-size:12px;font-weight:1000;color:#ffe16e}.detail-text{margin-top:4px;font-size:9px;line-height:1.55;color:#c9d2da}.detail-foot{margin-top:5px;font-size:8px;color:#91a1af}.detail-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.mini-btn{border:0;border-radius:9px;padding:7px 10px;background:#364455;color:#fff;font-size:8px;font-weight:1000;cursor:pointer}.mini-btn.gold{background:linear-gradient(#ffe15a,#ffad25);color:#271b08}.craft-need{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.need-tile{position:relative;width:54px;min-width:54px;height:54px;padding:0;border:1px solid var(--line);border-radius:12px;background:#222c38;color:#fff;cursor:pointer;overflow:hidden}.need-tile img{position:absolute;inset:6px;width:calc(100% - 12px);height:calc(100% - 12px);object-fit:contain}.need-tile .tile-fallback{position:absolute;inset:0;display:grid;place-items:center;font-size:24px}.need-tile .need-count{position:absolute;left:4px;right:4px;bottom:4px;padding:1px 3px;border-radius:99px;background:rgba(0,0,0,.66);font-size:7px;font-weight:1000}.need-tile .need-count.ok{color:#8ef2a0}.need-tile .need-count.ng{color:#ffd27a}
.manual-skill-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.skill-learn-card{padding:9px}.skill-icon-line{display:flex;align-items:center;gap:7px}.skill-icon-box{width:42px;height:42px;border-radius:10px;background:#1b2430;border:1px solid rgba(255,255,255,.1);display:grid;place-items:center;overflow:hidden;flex:none}.skill-icon-box img{width:100%;height:100%;object-fit:contain}.skill-icon-box .fallback{font-size:22px}.skill-upgrade-btn{height:31px;padding:5px 8px!important;font-size:8px!important}
.map-stage{position:relative;height:980px;border-radius:17px;overflow:hidden;background:linear-gradient(180deg,#d7ebc4 0%,#b9dc96 18%,#dcc18f 37%,#a9b6a0 58%,#8f9bac 76%,#6f7180 100%);border:1px solid rgba(255,255,255,.12);box-shadow:inset 0 0 35px rgba(26,37,42,.2)}.map-bg-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.96}.map-route-svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.map-route-svg line{stroke:rgba(82,67,43,.62);stroke-width:1.5;stroke-dasharray:3 2}.map-node{position:absolute;transform:translate(-50%,-50%);width:92px;min-height:52px;border:2px solid #fff2c1;border-radius:14px;background:linear-gradient(#465465,#2f3a47);color:#fff;padding:5px 6px;font-size:8px;font-weight:1000;cursor:pointer;box-shadow:0 5px 12px rgba(0,0,0,.28);z-index:3}.map-node-icon{position:absolute;left:4px;top:50%;transform:translateY(-50%);width:19px;height:19px;object-fit:contain;pointer-events:none}.map-node{padding-left:25px}.map-node small{display:block;font-size:6px;margin-top:2px;color:#cbd4db}.map-node.cleared{background:linear-gradient(#3f7650,#28543a);border-color:#a8efb5}.map-node.current{background:linear-gradient(#9a7123,#684b14);border-color:#ffe26b;box-shadow:0 0 0 3px rgba(255,222,88,.25),0 5px 12px rgba(0,0,0,.28)}.map-node.locked{filter:grayscale(1);opacity:.48;cursor:not-allowed}.map-node.boss:before{content:'👑';position:absolute;right:-7px;top:-10px;font-size:15px}.map-legend{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}.map-legend span{padding:3px 6px;border-radius:99px;background:#2a3541;font-size:7px;color:#c9d2da}
/* story CG */
.story-overlay{z-index:70;background:#05080c;color:#fff}.story-cg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}.story-caption{position:absolute;left:0;right:0;bottom:0;height:34%;padding:24px 22px max(22px,env(safe-area-inset-bottom));display:flex;flex-direction:column;justify-content:flex-end;background:linear-gradient(180deg,rgba(5,8,12,0),rgba(5,8,12,.76) 16%,rgba(5,8,12,.96) 46%,#05080c 100%);text-shadow:0 2px 5px rgba(0,0,0,.7)}.story-kicker{font-size:9px;font-weight:1000;letter-spacing:.16em;color:#ffd957;margin-bottom:7px}.story-text{font-size:13px;font-weight:850;line-height:1.75;min-height:5.25em}.story-actions{display:grid;grid-template-columns:.72fr 1.28fr;gap:9px;margin-top:13px}.story-btn{border:0;border-radius:12px;padding:11px 8px;font-weight:1000;cursor:pointer}.story-skip{background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.18)}.story-next{background:linear-gradient(#ffe35b,#ffb025);color:#2c1e08;box-shadow:inset 0 2px rgba(255,255,255,.55)}
/* debug settings */
.debug-panel{margin-top:12px;padding:12px;border-radius:14px;background:#29251e;border:1px dashed #d8a83a}.debug-title{font-size:11px;font-weight:1000;color:#ffd966;margin-bottom:8px}.debug-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.debug-btn{border:0;border-radius:9px;padding:9px 6px;background:#4a4030;color:#fff;font-size:9px;font-weight:1000;cursor:pointer}.debug-note{margin-top:8px;font-size:8px;line-height:1.5;color:#c8bda9}.switch{display:inline-flex;align-items:center;gap:7px;font-size:10px}.switch input{width:18px;height:18px;accent-color:#e9a51e}.credits-box{font-size:11px;line-height:1.75}.credits-box p{margin:0 0 12px}.credits-box a{color:#8b5b00;font-weight:1000;text-decoration:underline}.credits-note{padding:10px 12px;border-radius:11px;background:#efe2c9;color:#5e4a31;font-size:9px;line-height:1.6}
.inventory-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}.upgrade-grid{gap:4px}.upgrade-card{padding:5px}.manual-skill-grid{gap:5px}


/* 7.13: retain portrait geometry and keep every interaction within the game. */
.title-save{position:absolute;z-index:31;top:2%;left:3.5%;font-size:11px}.title-save-status{position:absolute;z-index:15;bottom:25%;left:5%;right:5%;padding:6px;border-radius:8px;background:rgba(10,20,30,.8);font-size:10px;text-align:center}
.save-strip{flex:0 0 30px;min-height:30px;display:flex;align-items:center;gap:5px;padding:3px 9px;border-bottom:1px solid var(--line);font-size:8px}.save-strip span{flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.save-strip button,.load-actions button{border:0;border-radius:7px;padding:5px 10px;background:#efb62e;color:#231b0d;font-weight:900;cursor:pointer}
.load-actions{display:flex;gap:10px;margin-top:15px}
.save-actions{display:grid;grid-template-columns:1fr;gap:7px;margin:14px 0}
#savePanel button,#confirmLayer button{padding:11px;border:0;border-radius:10px;background:#efb62e;color:#302510;font-size:11px;font-weight:900;cursor:pointer}
#savePanel button.save-secondary{background:#eee5d1;border:1px solid #d8c9aa;color:#51432e}
#savePanel button:disabled{opacity:.4;cursor:not-allowed}
.save-modal h2{margin-bottom:20px;font-size:23px}
.save-summary{display:flex;align-items:center;gap:12px;padding:15px 12px;border-radius:13px;background:#edf2df;overflow-wrap:anywhere}
.save-summary>div{min-width:0}.save-owner{display:block;margin-bottom:4px;font-size:10px;color:#68644f;line-height:1.5}
#saveDetail{display:block;font-size:15px;line-height:1.45;color:#304d2c}
.save-mark{display:grid;place-items:center;flex:0 0 30px;height:30px;border-radius:50%;background:#577d43;color:#fff;font-size:19px;font-weight:900}
.save-summary[data-state="busy"],.save-summary[data-state="attention"]{background:#f7eacb}
.save-summary[data-state="busy"] #saveDetail,.save-summary[data-state="attention"] #saveDetail{color:#71501c}
.save-summary[data-state="busy"] .save-mark,.save-summary[data-state="attention"] .save-mark{background:#b68328}
#savePanel p{font-size:11px;line-height:1.65}.save-hint{margin:12px 2px 18px;color:#6b604e;overflow-wrap:anywhere}
.save-tools{border-top:1px solid #e1d5bb;border-bottom:1px solid #e1d5bb}.save-tools>summary{padding:13px 2px;color:#6f624e;font-size:11px;font-weight:800;cursor:pointer}
.save-tools-body{padding:0 2px 14px}.save-tools-body>p{margin-top:2px;color:#726653}
#savePanel label{display:block;margin-bottom:6px;font-size:11px;font-weight:800}
#saveText{display:block;width:100%;min-height:82px;resize:vertical;max-height:160px;padding:9px;background:#fffdf7;color:#332a20;font:10px/1.5 ui-monospace,monospace;border:1px solid #c9b99a;border-radius:8px}
#saveText::placeholder{color:#9a8b74}.save-data-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:8px}
.save-transfer{margin-top:18px;padding-top:10px;border-top:1px solid #e1d5bb}.save-transfer button{width:100%}.save-transfer p{color:#726653}
.save-notice{padding:10px 12px;border-radius:9px;background:#f1e6cf;color:#5d4a2d;overflow-wrap:anywhere}
#savePanel .save-footer{grid-template-columns:1fr;margin-top:18px}
#confirmLayer{z-index:100}#confirmText{font-size:13px;line-height:1.6}#confirmCancel{background:#e5dac4!important}
.single-action{grid-template-columns:1fr}.pause-description{font-size:11px;line-height:1.6}.tree-head{margin-top:14px}

.title-ranking{position:absolute;z-index:31;top:2%;left:18%;font-size:11px}.ranking-modal{max-height:92%;overflow:auto}.ranking-tabs{display:flex;gap:6px}.ranking-tabs button{flex:1;padding:9px;border:1px solid #c7b78c;border-radius:8px;background:#ebe2ca;color:#493b27;font-weight:900}.ranking-tabs button.active{background:#efb62e}.ranking-rule{font-size:10px;line-height:1.5}.ranking-modal p{overflow-wrap:anywhere}.ranking-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px}.ranking-actions button,.ranking-modal .modal-actions button{border:0;border-radius:8px;padding:9px;background:#efb62e;color:#36291b;font-size:10px;font-weight:900}.ranking-actions button:disabled{opacity:.4}.ranking-modal ol{list-style:none;margin:8px 0;padding:0;max-height:190px;overflow:auto}.ranking-modal li{padding:7px 0;border-bottom:1px solid #e2d5b2;font-size:11px}.ranking-modal li span{display:block;font-size:9px;margin-top:4px}.ranking-modal #rankingContext,.ranking-modal #rankingStatus,.ranking-modal #rankingEmpty{font-size:10px;line-height:1.5}
