@font-face{font-family:CRPGKorean;src:url(NotoSansKR_subset.woff) format('woff');font-weight:100 900;font-display:swap}
:root{color-scheme:dark;--bg:#09171e;--panel:rgba(14,32,40,.94);--line:#37535a;--text:#edf3f0;--muted:#b1c5c5;--gold:#e3c38a;--green:#8dddd0;--red:#edaa9e;font-size:16px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:1rem/1.7 CRPGKorean,system-ui,sans-serif;min-height:100vh}button,input,select{font:inherit}button,input,select,a{touch-action:manipulation}button{min-height:48px;border:1px solid var(--line);background:#173039;color:var(--text);border-radius:6px;padding:10px 17px;text-align:left;cursor:pointer;transition:background .16s,border-color .16s,transform .16s}button:hover{border-color:var(--gold);background:#29484c}button:disabled{opacity:.48;cursor:default}button.primary{background:var(--gold);border-color:var(--gold);color:#11262b;font-weight:700}button.primary:hover{background:#f4d9a8}button.ghost{background:transparent}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--gold);outline-offset:4px}input,select{min-height:48px;border:1px solid var(--line);border-radius:5px;padding:12px;background:#0e232b;color:var(--text);max-width:100%;width:100%}input[type=checkbox]{width:23px;min-height:23px;accent-color:var(--gold)}label{display:block}a{color:var(--gold)}h1,h2,h3,p{overflow-wrap:anywhere}h1{font-size:1.8rem;line-height:1.4;margin:0 0 18px;font-weight:600}h2{font-size:1.3rem;margin:24px 0 12px;color:var(--gold)}h3{font-size:1.1rem;margin:0 0 10px}p{margin:10px 0}.muted,small{color:var(--muted)}small{font-size:.875rem}.world-backdrop{position:fixed;inset:0;background-position:center;background-size:cover;opacity:.14;filter:blur(8px);z-index:-2}.world-backdrop:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#071d23a6,#071d23de)}header{height:84px;display:flex;align-items:center;padding:0 4vw;gap:24px;border-bottom:1px solid #ffffff15;background:#0c2128d9}.wordmark{font-size:1.45rem;letter-spacing:.08em;text-decoration:none;color:var(--text);display:flex;align-items:center;gap:12px}.wordmark b{font-size:.85rem;font-weight:500;color:var(--gold);letter-spacing:.15em}.crest{font-size:2.4rem;color:var(--gold)}.chapter-label{padding-left:24px;border-left:1px solid var(--line);font-size:.9rem;color:var(--muted)}#quick-actions{margin-left:auto;display:flex;gap:10px}#quick-actions button{font-size:.9rem;min-width:75px}#notice{position:relative;max-width:1440px;margin:16px auto 0;padding:14px 22px;background:#423322;border:1px solid #92774b;border-radius:6px;white-space:pre-wrap}#notice:empty{display:none}.loading{padding:15vh 8vw;text-align:center;color:var(--muted)}main{max-width:1520px;margin:auto;padding:26px 3vw 42px;display:grid;grid-template-columns:225px minmax(0,1fr);gap:25px}aside{align-self:start;position:sticky;top:24px}.player-card{border-bottom:1px solid var(--line);padding:0 4px 20px;margin-bottom:16px}.player-card h2{margin:6px 0 0;color:var(--text);font-size:1.45rem}.eyebrow{color:var(--gold);font-size:.875rem;letter-spacing:.08em}.stat{display:flex;justify-content:space-between;font-size:.875rem;margin:8px 0;gap:10px}.meter{height:7px;border-radius:6px;overflow:hidden;background:#031118;border:1px solid #ffffff15}.meter i{height:100%;display:block;background:var(--green)}nav{display:grid;gap:4px}nav button{background:transparent;border-color:transparent;color:var(--muted);display:flex;gap:12px;align-items:center;border-radius:0;padding:10px 12px}nav button.active{color:var(--gold);border-left:2px solid var(--gold);background:linear-gradient(90deg,#dbc18a14,transparent)}nav button:hover{background:#e3c38a09;color:var(--text)}.nav-icon{font-size:1.2rem;width:25px;text-align:center}.content{min-width:0}.panel{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:26px;min-width:0}.scene{border-radius:10px;overflow:hidden;border:1px solid var(--line);background:#0c2028;position:relative;min-height:220px;display:flex;align-items:center;justify-content:center;margin-bottom:18px}.scene-back{width:100%;aspect-ratio:2.45;object-fit:cover;display:block;max-height:360px;opacity:.83}.scene.no-background{min-height:140px;background:linear-gradient(130deg,#16414a,#18232f)}.scene-label{position:absolute;left:25px;bottom:19px;text-shadow:0 2px 12px #000}.scene-label strong{display:block;font-size:1.65rem;line-height:1.4}.scene-label span{font-size:.875rem;color:#e1ebe7}.scene:after{content:'';position:absolute;inset:40% 0 0;background:linear-gradient(transparent,#071821df);pointer-events:none}.scene-label{z-index:1}.story-layout{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:25px;align-items:start}.story-layout.no-art{grid-template-columns:1fr}.portrait-frame{margin:0;position:sticky;top:25px;border:1px solid var(--line);background:#081b23;border-radius:7px;overflow:hidden}.portrait-frame img{width:100%;height:auto;display:block;object-fit:contain}.portrait-frame figcaption{font-size:.875rem;padding:10px 16px;color:var(--muted);border-top:1px solid var(--line)}.speaker{display:flex;align-items:center;gap:12px;color:var(--gold);font-weight:600;line-height:1.5;margin:0 0 14px;font-size:1.1rem}.speaker:before{content:'';width:25px;height:1px;background:var(--gold)}.story{font-size:1.1rem;line-height:2.05;white-space:pre-wrap;margin:0 0 24px}.story .narration{color:var(--muted)}.actions{display:grid;gap:10px;margin-top:20px}.choice{width:100%;display:flex;align-items:flex-start;gap:14px;background:#17343b;border-color:#456164;padding:14px 18px;line-height:1.65}.choice-index{flex-shrink:0;color:var(--gold);font-size:.875rem;border-right:1px solid var(--line);padding-right:13px;margin-top:2px}.choice:hover{transform:translateX(2px)}.story-toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;border-top:1px solid var(--line);margin-top:22px;padding-top:14px;color:var(--muted);font-size:.875rem}.story-toolbar button{font-size:.875rem}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(235px,1fr));gap:14px}.card{border:1px solid var(--line);background:#122a32;border-radius:7px;padding:18px;margin-bottom:12px}.card button{margin:7px 8px 0 0}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.row>*{flex:1;min-width:0}.badge{border:1px solid #7ba69855;color:var(--green);padding:3px 10px;border-radius:20px;font-size:.875rem;display:inline-block}.choice-note{display:block;font-size:.875rem;margin:7px 0;color:var(--muted)}.art{width:100%;height:auto;max-height:450px;object-fit:contain}.log{border-top:1px solid var(--line);padding-top:12px;color:var(--muted);font-size:.9rem}.log p{margin:6px 0}.welcome{max-width:1320px;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(390px,.9fr);margin:5vh auto;padding:30px 4vw;gap:70px;align-items:center}.welcome-art{position:relative;min-height:520px;border:1px solid #e3c38a55;border-radius:100% 100% 12px 12px;overflow:hidden;box-shadow:0 22px 60px #0007;background:#15404a}.welcome-art img{position:absolute;width:100%;height:100%;object-fit:cover;opacity:.8}.welcome-art:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 30%,#09222bd9)}.welcome-caption{position:absolute;bottom:35px;left:32px;right:32px;z-index:1;font-size:2.1rem;line-height:1.5;font-weight:500}.welcome-caption small{font-size:.875rem;display:block;color:var(--gold);margin-bottom:12px;letter-spacing:.15em}.welcome-form{padding:14px 0}.welcome h1{font-size:2.25rem;margin-top:9px}.welcome-form .eyebrow{letter-spacing:.15em}.form-label{color:var(--muted);margin:22px 0 8px;font-size:.9rem}.route-picker{display:grid;gap:10px}.route-option{width:100%;display:flex;align-items:center;justify-content:space-between;padding:15px 18px;background:#132e35}.route-option.selected{border-color:var(--gold);background:#273d3e}.route-option small{display:block;font-size:.875rem;margin-top:2px}.route-check{color:var(--gold)}.welcome-form>.actions{margin-top:25px}.welcome-form>.actions>button{text-align:center}.save-hint{font-size:.875rem;text-align:center;color:var(--muted);margin-top:20px}.battle-teams{display:grid;grid-template-columns:1fr 1fr;gap:20px}.battle-teams .card{position:relative}.battle-teams .actor-image{width:100%;max-height:170px;object-fit:contain;margin-bottom:10px}.battle-teams h2{margin:0 0 14px}.actor.dead{opacity:.4}.actor.selected{border-color:var(--gold)}.actor button{width:100%;margin:10px 0 0}.battle-order{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 20px}.battle-order span{padding:5px 10px;border:1px solid var(--line);font-size:.875rem;border-radius:4px}.battle-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin:20px 0}.battle-cards button{border-top:3px solid var(--gold);padding:14px}.battle-cards button.selected{background:#3c514b}.battle-cards small{display:block;line-height:1.5;margin-top:6px}.heart-row{color:var(--gold);letter-spacing:.12em}.relationship-photo{width:100%;height:auto;aspect-ratio:1.5;object-fit:contain;display:block;margin-bottom:16px;background:#081b23}.settings-row{display:flex;align-items:center;gap:16px;padding:17px 0;border-bottom:1px solid var(--line)}.settings-row .copy{flex:1}.settings-row p{margin:0}.settings-row small{display:block}.settings-row input[type=checkbox]{flex:none}.slot{display:flex;align-items:center;gap:15px;flex-wrap:wrap}.slot .slot-copy{flex:1;min-width:200px}.slot h3{margin:0}.slot button{margin:0}details{margin-top:20px}summary{cursor:pointer;min-height:48px;display:flex;align-items:center}dialog{max-width:750px;width:calc(100% - 32px);max-height:85vh;background:#102931;color:var(--text);border:1px solid var(--gold);border-radius:10px;padding:26px}dialog::backdrop{background:#031019ce;backdrop-filter:blur(5px)}#modal-close{margin-top:16px;min-width:100px}.history-entry{border-bottom:1px solid var(--line);padding:16px 0}.history-entry strong{color:var(--gold)}.screen-intro{color:var(--muted);margin-top:-5px;margin-bottom:20px}.mobile-status{display:none}.notice-action{margin-top:10px}.progress-text{color:var(--green)}.keyboard-note{font-size:.875rem;color:var(--muted)}.empty{padding:20px;border-left:2px solid var(--line);color:var(--muted)}
@media(min-width:1500px){.welcome{margin-top:8vh}}
@media(max-width:1100px){.story-layout{grid-template-columns:1fr}.portrait-frame{position:static;max-width:640px;margin:0 auto;width:100%}.portrait-frame img{max-height:350px}.welcome{gap:35px;grid-template-columns:1fr 1fr}.welcome-art{min-height:470px}.welcome-caption{font-size:1.7rem}main{grid-template-columns:200px 1fr;gap:18px}}
@media (max-width:760px) and (min-height:501px){header{height:66px;padding:0 17px;gap:10px}.chapter-label{display:none}.wordmark{font-size:1.1rem}.wordmark b{font-size:.7rem}.crest{font-size:2rem}#quick-actions{gap:5px}#quick-actions button{font-size:.875rem;padding:8px 12px;min-width:0}main{display:block;padding:14px 14px 35px}aside{position:static;margin-bottom:14px}.player-card{padding:0 0 10px;margin-bottom:8px;display:grid;grid-template-columns:1fr 1fr;column-gap:16px}.player-card h2{font-size:1.15rem;grid-row:1;grid-column:1}.player-card .eyebrow{grid-row:1;grid-column:2;font-size:.8rem;text-align:right}.player-card .player-location{display:none}.player-card .meter{grid-column:1/-1}.player-card .stat{margin:3px 0}.player-card .stat:last-child{text-align:right;justify-content:flex-end}nav{display:flex;overflow:auto;gap:0;padding-bottom:4px}nav button{flex:none;white-space:nowrap;padding:9px 12px;font-size:.875rem;border-left:0!important}nav button.active{border-bottom:2px solid var(--gold)}.nav-icon{display:none}.panel{padding:20px 17px}.scene{margin-bottom:12px;min-height:110px}.scene-back{aspect-ratio:2.2;min-height:140px}.scene-label{left:17px;bottom:14px}.scene-label strong{font-size:1.25rem}.scene-label span{font-size:.8rem}.story-layout{gap:20px}.portrait-frame img{max-height:none}.story{font-size:1rem;line-height:1.95}.speaker{font-size:1.05rem}.story-toolbar{align-items:flex-start}.story-toolbar .keyboard-note{display:none}.grid{grid-template-columns:1fr}.welcome{display:flex;flex-direction:column;margin:0;padding:24px 20px 35px;gap:25px}.welcome-art{min-height:220px;width:100%;border-radius:8px;order:0}.welcome-caption{bottom:22px;left:22px;font-size:1.6rem}.welcome-caption small{margin-bottom:5px}.welcome-form{width:100%;padding:0}.welcome h1{font-size:1.8rem}.welcome-form .eyebrow{display:none}.form-label{margin-top:18px}.battle-teams{gap:10px}.battle-teams .card{padding:12px}.battle-teams .actor-image{max-height:90px}.battle-teams h3{font-size:1rem}.battle-teams .stat{font-size:.8rem}.battle-cards{grid-template-columns:1fr 1fr}.battle-cards button{font-size:.95rem;padding:12px}.battle-order span{font-size:.8rem}#notice{margin:12px 14px 0;padding:12px 15px}.row>*{flex-basis:100%}.settings-row{align-items:flex-start}.slot .slot-copy{min-width:100%}.welcome .row>*{flex-basis:auto}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
.xp-block{margin:9px 0 15px;grid-column:1/-1}.xp-block .stat{font-size:.875rem}.xp-progress{width:100%;height:7px;display:block;border:0;border-radius:5px;overflow:hidden;appearance:none;background:#031118}.xp-progress::-webkit-progress-bar{background:#031118}.xp-progress::-webkit-progress-value{background:var(--gold)}.xp-progress::-moz-progress-bar{background:var(--gold)}.phase-note{padding:9px 12px;background:#e3c38a10;border-left:2px solid var(--gold);color:var(--gold);font-size:.875rem;margin:10px 0}.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:0}.stat-grid dt{color:var(--muted)}.stat-grid dd{margin:0;text-align:right}.chosen-name{font-size:1.3rem;color:var(--gold);padding:16px;border:1px solid var(--line)}.wordmark[aria-disabled=true]{cursor:default}nav button:disabled{opacity:.45;cursor:not-allowed}
.battle-map{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line);margin:1rem 0}.battle-cell{min-height:64px;display:flex;flex-direction:column;justify-content:center;gap:3px;padding:3px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.map-actor{font-size:.7rem;line-height:1.25;padding:4px;border-radius:4px;overflow-wrap:anywhere}.map-actor.ally{background:#294d46;color:#d8f4e7}.map-actor.enemy{background:#643b35;color:#ffe5d8}.map-field{font-size:.6rem;color:var(--gold)}
/* Formation workspace */
.formation-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:24px 0}.formation-slot{min-width:0;border:1px solid var(--line);border-radius:8px;background:#0b2029;padding:12px}.formation-slot.selected{border-color:var(--gold);background:linear-gradient(160deg,#32403a,#0b2029 55%)}.slot-label{display:block;font-size:.75rem;min-height:2.6em;line-height:1.4}.member-select{display:flex;flex-direction:column;align-items:center;width:100%;padding:0;border:0;background:transparent!important;margin:8px 0}.member-select strong{margin:8px 0;font-size:.95rem}.party-portrait{width:100%;height:144px;object-fit:contain;object-position:50% 15%;background:radial-gradient(ellipse,#8dddd016,transparent 70%)}.portrait-placeholder{display:grid;place-items:center;color:var(--gold);font-size:3rem}.empty-slot{height:204px;display:grid;place-items:center;color:var(--muted)}.formation-controls{display:grid;gap:7px}.formation-controls select,.formation-controls button{font-size:.75rem;padding:8px;min-height:40px;width:100%;line-height:1.5}.slot-moves{display:grid;grid-template-columns:1fr 1fr;gap:6px}.equipment-layout{display:grid;grid-template-columns:minmax(190px,.85fr) minmax(0,1.6fr);gap:24px;margin:24px 0}.equipment-character{align-self:start}.equipment-character h2{margin:8px 0}.equipment-portrait{display:block;width:100%;height:240px;object-fit:contain}.equipped-slot{display:flex;flex-direction:column;gap:4px;width:100%;margin:8px 0!important}.equipped-slot strong{font-size:.85rem;font-weight:500}.equipped-slot.selected,.equipment-choice.selected{border-color:var(--gold);background:#3b4034}.equipment-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin:16px 0}.equipment-choice{display:flex;flex-direction:column;gap:6px;font-size:.85rem}.compare-table{border-collapse:collapse;width:100%;font-size:.85rem;margin:12px 0}.compare-table th,.compare-table td{text-align:left;padding:8px;border-bottom:1px solid var(--line)}.compare-table th{font-weight:500;color:var(--muted)}.stat-up{color:#91e2b6}.stat-down{color:#ffad9e}.transfer-note{border-left:2px solid var(--gold);padding-left:12px;font-size:.9rem}.equipment-comparison>button{width:100%;margin:16px 0 0}.settings-row input[type=range]{width:44%;min-width:100px;accent-color:var(--gold);padding:0}.actor{position:relative}.party-portrait,.actor-image,.relationship-photo,.equipment-portrait{contain:layout paint}.portrait-frame{min-height:160px}.portrait-frame img{aspect-ratio:auto}.av-running #root{cursor:progress}.av-running .battle-cards{opacity:.68}.combat-effects{position:fixed;inset:0;pointer-events:none;z-index:80;overflow:hidden}.impact{--effect:#f1ddbe;position:absolute;isolation:isolate;width:max-content;max-width:min(310px,80vw);transform:translate(-50%,-50%);color:var(--effect);text-align:center;animation:impact-rise 1s ease-out both}.impact-label{position:relative;z-index:3;display:block;font-size:1.75rem;line-height:1.2;letter-spacing:.015em;text-shadow:0 2px 3px #000,0 0 18px #000,0 0 2px #000;background:#071923ba;border-radius:8px;padding:4px 10px}.impact-target{display:block;position:relative;z-index:3;background:#071923da;color:var(--text);padding:3px 8px;border-radius:4px;font-size:.8rem}.impact.critical .impact-label{font-size:2rem}.impact.kind-reaction .impact-label{font-size:2.1rem}.impact-ring{position:absolute;inset:50% auto auto 50%;width:90px;height:90px;border:3px solid var(--effect);border-radius:50%;filter:drop-shadow(0 0 5px var(--effect));animation:impact-ring .6s ease-out both;z-index:1}.impact-spark{position:absolute;left:50%;top:50%;width:5px;height:20px;border-radius:40%;background:var(--effect);box-shadow:0 0 10px var(--effect);animation:impact-spark .7s ease-out both;transform:rotate(var(--angle)) translateY(0);z-index:1}.effect-fire{--effect:#ffae65}.effect-water{--effect:#83d0ff}.effect-ice,.effect-freeze{--effect:#b4edff}.effect-lightning{--effect:#d4afff}.effect-wind{--effect:#83e4cf}.effect-rock{--effect:#ecd079}.effect-dendro,.effect-heal{--effect:#b5e58e}.effect-melt{--effect:#ffbf96}.effect-melt .impact-ring{border-top-color:#a8e7fa;border-left-color:#a8e7fa}.effect-vaporize{--effect:#cde8f5}.effect-vaporize .impact-ring{border-style:dashed}.effect-overload{--effect:#ff9ead}.effect-overload .impact-ring{border-radius:20%;border-color:#ff9ead #ddacff}.effect-freeze .impact-spark{border-radius:0;transform-origin:center}.effect-guard{--effect:#e3d6ad}.kind-victory .impact-label{border:1px solid var(--gold);padding:18px 30px;letter-spacing:.15em}.kind-defeat .impact-label{border:1px solid #b78989;padding:18px 30px}.damage-flash{position:absolute;inset:0;box-shadow:inset 0 0 90px 20px #e94a4242;background:#ea524a08;animation:damage-fade .28s ease-out both;z-index:-1}.reduce-motion .impact{animation:none}.reduce-motion .impact-label{font-size:1.25rem}.reduce-motion .damage-flash,.reduce-motion .impact-ring,.reduce-motion .impact-spark{display:none}.reduce-motion *{scroll-behavior:auto!important}.reduce-motion button{transition:none}
@keyframes impact-rise{0%{opacity:0;transform:translate(-50%,-40%) scale(.85)}15%{opacity:1;transform:translate(-50%,-55%) scale(1.05)}65%{opacity:1}100%{opacity:0;transform:translate(-50%,-95%) scale(1)}}@keyframes impact-ring{from{opacity:.9;transform:translate(-50%,-50%) scale(.3)}to{opacity:0;transform:translate(-50%,-50%) scale(1.8)}}@keyframes impact-spark{from{opacity:.9;transform:rotate(var(--angle)) translateY(0) scale(1)}to{opacity:0;transform:rotate(var(--angle)) translateY(calc(var(--distance) * -1)) scale(.3)}}@keyframes damage-fade{from{opacity:1}to{opacity:0}}
@media(max-width:1100px){.formation-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.formation-slot .party-portrait{height:135px}.slot-label{min-height:0}.empty-slot{height:187px}}
@media (max-width:680px) and (min-height:501px){.equipment-layout{grid-template-columns:1fr}.equipment-character{display:grid;grid-template-columns:1fr 1fr;gap:4px 12px}.equipment-character .equipment-portrait{height:180px;grid-row:span 4}.equipment-character .stat-grid,.equipment-character>small{grid-column:1/-1}.equipment-character .meter{grid-column:1/-1}.equipment-character .equipped-slot{margin:2px 0!important}.formation-grid{gap:8px}.formation-slot{padding:8px}.formation-controls select{font-size:.7rem}.slot-moves{grid-template-columns:1fr}.formation-slot .party-portrait{height:120px}.empty-slot{height:172px}#quick-actions{gap:4px}#quick-actions button{font-size:.72rem;min-width:0;padding:7px}header{padding-inline:12px;gap:10px}.wordmark{font-size:1.1rem}.crest{font-size:1.7rem}.impact-label{font-size:1.5rem}.impact.kind-reaction .impact-label{font-size:1.7rem}.equipment-list{grid-template-columns:1fr}.settings-row{gap:12px}}
@media(prefers-reduced-motion:reduce){.impact{animation:none}.impact-ring,.impact-spark,.damage-flash{display:none}}

.action-pending #root{cursor:progress}.action-status{position:fixed;right:22px;bottom:18px;padding:8px 16px;border:1px solid var(--line);border-radius:6px;background:#102b2ef2;color:var(--gold);z-index:81;font-size:.85rem}.action-feedback{left:50%;top:50%;right:auto;bottom:auto;transform:translate(-50%,-50%);width:min(280px,80vw);padding:26px 30px;display:flex;flex-direction:column;align-items:center;gap:18px;border-radius:16px;box-shadow:0 12px 70px #0009;z-index:1300;font-size:1.1rem;text-align:center}.action-feedback .travel-mark{font-size:30px;line-height:1}.action-feedback progress{width:160px;height:5px;accent-color:#abdbd4}.impact{animation-fill-mode:forwards}.impact.kind-miss,.impact.kind-immune{--effect:#cbd4dc}
@media(min-width:761px){aside{max-height:calc(100dvh - 140px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;padding-right:4px}}
.combat-panel{padding:22px}.battle-heading{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-bottom:12px}.battle-heading h1{font-size:1.35rem;margin:0}.compact-order{padding:0;margin:0 0 16px;list-style:none;display:flex;gap:6px;overflow-x:auto}.compact-order li{flex:none;display:flex;align-items:center;gap:7px;padding:7px 10px;border:1px solid var(--line);border-radius:4px;font-size:.875rem;background:#10252e}.compact-order li.enemy{border-bottom:2px solid #c98374}.compact-order li.ally{border-bottom:2px solid var(--green)}.compact-order li.current{background:#35463f;box-shadow:inset 0 0 0 1px var(--gold)}.compact-order li>small:first-child{color:var(--gold)}.battle-command{background:#142d36;border:1px solid #657b76;border-radius:8px;padding:14px;margin-bottom:16px}.battle-command h2{margin:0 0 8px}.battle-command p{font-size:.9rem}.battle-command>.primary{min-width:180px}.battle-command .battle-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:7px;margin:0 0 10px}.battle-card-choice{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px;align-items:stretch}.battle-card-choice>button:first-child{padding:9px 10px;min-height:58px;border-top:3px solid var(--gold)}.battle-card-choice>button:first-child.selected{background:#3c514b}.battle-card-choice .battle-effect-button{min-height:36px;padding:7px 9px;border-top:1px solid var(--line);font-size:.78rem;align-self:stretch}.battle-cards small{display:block;font-size:.8rem;line-height:1.35;margin-top:4px}.battle-execute{display:flex;gap:8px;align-items:center}.battle-execute select{width:auto;min-width:140px;flex:1}.battle-execute .primary{flex:1;min-width:155px;text-align:center}.compact-battle-stage{display:block;min-width:0}.compact-battle-stage>.battle-teams{width:100%}.enemy-representative{margin:0;position:sticky;top:20px;background:radial-gradient(ellipse at center,#355a6260,transparent 75%)}.enemy-representative img{width:100%;height:210px;object-fit:contain}.enemy-representative figcaption{color:var(--muted);text-align:center;font-size:.875rem}.compact-teams{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0}.compact-teams h2{font-size:1rem;margin:0 0 8px}.battle-summons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:8px 0 2px}.summon-lane{min-width:0}.summon-lane h3{font-size:.82rem;color:var(--muted);margin:0 0 6px}.battle-summon{display:flex;align-items:center;gap:8px;min-height:76px;padding:7px 9px;margin-bottom:6px;border:1px solid var(--line);border-radius:7px;background:#102a32}.battle-summon[data-side=ALLY]{border-left:2px solid #71aea0}.battle-summon[data-side=ENEMY]{border-left:2px solid #a97066}.battle-summon.acting{border-color:var(--gold);box-shadow:0 0 0 1px #e3c38a55}.summon-portrait{width:70px;height:62px;object-fit:contain;flex:none;border-radius:6px;background:#081b2388}.summon-copy{min-width:0;flex:1}.summon-copy strong,.summon-copy small{display:block}.summon-copy small{font-size:.76rem;line-height:1.35;color:var(--muted)}.combatant-row{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:5px;background:#0e242c;padding:9px 10px;margin-bottom:7px;min-height:80px}.combatant-row.selected{border-color:var(--gold);background:#253d3d}.combatant-copy{min-width:0;flex:1}.combatant-copy strong{font-size:.925rem}.combatant-copy .stat{font-size:.8rem;margin:3px 0}.combatant-copy small{font-size:.8rem;display:block;line-height:1.4}.combatant-row button{font-size:.8rem;padding:6px;min-height:42px}.combatant-row.dead{opacity:.4}.battle-details{margin-top:16px;border-top:1px solid var(--line);padding-top:10px}.battle-details summary{cursor:pointer;color:var(--muted)}.battle-details .log{max-height:200px}.relationship-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(270px,100%),1fr));gap:16px}.relationship-card .relationship-photo{width:100%;height:180px;object-fit:contain;float:none}.relationship-card>button{display:block;width:100%;margin-top:8px}.slot-actions{display:flex;gap:6px;flex-wrap:wrap}.slot-actions button{font-size:.875rem}.save-delete-confirm{max-width:min(500px,calc(100vw - 32px));padding:24px;background:var(--panel);color:var(--text);border:1px solid var(--gold);border-radius:10px}.save-delete-confirm::backdrop{background:#000b}.save-delete-confirm h2{margin:0}.danger-button{color:#ffc6bc;border-color:#ad655f}.save-paused{border-color:var(--gold)}.location-places{display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:14px}.place-entry{display:grid;grid-template-columns:58px minmax(0,1fr) auto;gap:12px;align-items:center;position:relative;overflow:hidden;min-height:138px}.place-entry.region-mond{border-left:3px solid #73a9c7}.place-entry.region-liyue{border-left:3px solid #d0a75f}.place-entry-icon{width:54px;height:54px;object-fit:contain;border-radius:10px;background:#0b1d24aa;padding:7px;border:1px solid var(--line)}.place-entry-kind{display:block;font-size:.78rem;letter-spacing:.03em;color:var(--gold);margin-bottom:4px;word-break:keep-all;overflow-wrap:normal}.place-entry-copy{min-width:0;word-break:keep-all;overflow-wrap:normal}.place-entry-copy h3,.place-entry-copy p{word-break:keep-all;overflow-wrap:normal;hyphens:none}.place-entry>button{white-space:nowrap;min-width:88px}.place-entry h2,.place-entry h3{margin:0 0 5px}.place-breadcrumb{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.place-breadcrumb p{margin:0}.facility-stock .card{display:flex;flex-direction:column}.facility-stock .card>button{margin-top:auto}.facility-stock h3{font-size:1rem}.facility-stock .item-effect{font-size:.875rem;white-space:pre-line}
@media(max-width:1100px){.compact-battle-stage{display:block}.enemy-representative img{height:155px}.compact-teams{gap:8px}.combatant-row{padding:7px}.battle-command .battle-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px) and (min-height:501px){.combat-panel{padding:14px}.battle-execute{flex-wrap:wrap}.battle-execute .primary{flex-basis:100%}.compact-battle-stage{display:block}.enemy-representative{position:static;display:flex;align-items:center;justify-content:center;gap:15px}.enemy-representative img{width:110px;height:90px}.compact-teams{grid-template-columns:repeat(2,minmax(0,1fr))}.combatant-row{display:block}.combatant-row button{width:100%;min-height:36px;margin-top:5px}.battle-heading{gap:8px}.location-places{grid-template-columns:1fr}.place-entry{grid-template-columns:52px minmax(0,1fr);min-height:0;align-items:center}.place-entry>button{grid-column:1/-1;width:100%}.slot{flex-wrap:wrap}.battle-command .battle-cards small{font-size:.875rem}}
.bag-tabs{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:18px}.bag-tabs button{font-size:.875rem;padding:8px 13px}.bag-tabs button.selected{border-color:var(--gold);color:var(--gold)}.bag-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,310px);gap:20px;align-items:start}.bag-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:10px}.bag-cell{position:relative;min-width:0}.bag-item{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;aspect-ratio:1;padding:8px 5px 5px;background:linear-gradient(150deg,#28434c,#142a33);border-color:#527077}.bag-item[aria-pressed=true]{border-color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold)}.item-glyph{font-family:Apple Color Emoji,Segoe UI Emoji,Noto Color Emoji,sans-serif;font-size:2rem;line-height:1.2;margin:10px 0 6px}.item-icon{width:48px;height:48px;object-fit:contain;margin:8px 0}.item-count{position:absolute;right:6px;top:3px;font-size:.8rem;color:var(--gold)}.item-name{text-align:center;font-size:.875rem;line-height:1.35;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;word-break:keep-all}.item-worn{position:absolute;top:2px;left:5px;font-size:.75rem;color:var(--green)}.item-tooltip{display:none;position:absolute;z-index:15;top:95%;left:0;width:min(310px,70vw);padding:14px;border:1px solid var(--gold);border-radius:6px;background:#0b1d25;box-shadow:0 12px 30px #0009;font-size:.875rem;white-space:pre-line;pointer-events:none}.item-tooltip p{margin-bottom:0}.bag-cell:hover .item-tooltip,.bag-item:focus-visible+.item-tooltip{display:block}.bag-detail{margin:0;position:sticky;top:20px;min-width:0;padding:18px}.bag-detail h2{margin:4px 0 12px}.bag-detail>p,.item-detail-fields{font-size:.9rem}.bag-detail>button,.bag-detail>select{width:100%;margin:8px 0}.item-detail-fields{display:grid;grid-template-columns:90px minmax(0,1fr);gap:7px 10px;line-height:1.6}.item-detail-fields dt{color:var(--muted)}.item-detail-fields dd{margin:0;white-space:pre-line;overflow-wrap:anywhere}.item-effect{white-space:pre-line}.tool-preparation{margin:20px 0}.tool-preparation summary{cursor:pointer;color:var(--gold)}
@media(max-width:1100px){.bag-layout{grid-template-columns:1fr}.bag-detail{position:static}.bag-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}}@media (max-width:500px) and (min-height:501px){.bag-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.bag-item{min-height:110px}.bag-tabs{gap:5px}.bag-tabs button{padding:7px 10px}.bag-detail{padding:14px}}@media(hover:none){.bag-cell:hover .item-tooltip{display:none}}
.compact-order{flex-wrap:nowrap}.compact-order li>span{border:0;background:none;padding:0}.compact-order li.current span{border:0}
.material-cost{display:block;margin:3px 0}.craft-stages{font-size:.875rem;padding-left:20px}.craft-stages li{margin:6px 0}.craft-stages .stage-ready{color:var(--green)}
:root{--main-accent:#5ab6c5}
body.on-main-map .content{background:linear-gradient(145deg,rgba(45,126,146,.1),transparent 60%);border-radius:20px}
nav button[data-screen=LOCATION]{border-color:#477f8b;background:#183b46}nav button[data-screen=LOCATION].active{background:#205866;color:#fff;border-color:#78d1dc}
.main-objective{padding:20px 24px;margin:20px 0 28px;border:1px solid #438c9c;border-left:5px solid var(--main-accent);background:linear-gradient(120deg,#123b48,#172d33);border-radius:14px}.main-objective h2{margin:6px 0 12px}.main-objective button{margin:6px 8px 0 0}.main-objective p{line-height:1.7}
.area-level,.objective-location{color:#91cfda}.adventure-main>h2{margin-top:28px}.location-edges button{white-space:normal;text-align:left;width:100%}
.life-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.life-resource{display:flex;flex-direction:column;gap:10px}.life-resource p,.life-resource h3{margin:0}.life-resource button{margin-top:auto}.life-resource small{line-height:1.6}.life-panel{margin:28px 0}.wait-controls{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:24px}
.life-work-status{position:sticky;top:90px;z-index:8;background:#173e47;border:1px solid #7fced8;border-radius:14px;padding:14px 18px;display:flex;align-items:center;gap:14px;box-shadow:0 8px 30px #0008}.life-work-status progress{flex:1;min-width:60px;accent-color:#8ed3c1;height:16px}.life-work-status>span{min-width:36px}.life-work-status button{padding:9px 14px}
.recovery-card{border-color:#b86064;background:#482c35}.recovery-card p{line-height:1.7}.personal-objective,.commission-card{margin:16px 0}.personal-objective h4{font-size:1rem;margin-bottom:12px}.material-requirement{border:1px solid #ffffff24;padding:14px;border-radius:10px;margin:10px 0}.material-source{display:block;margin:8px 0;line-height:1.6}.material-requirement button{margin:6px 8px 0 0}.reward-preview{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0}.reward-preview span{padding:7px 10px;background:#d6b56e14;border:1px solid #d6b56e44;border-radius:8px;font-size:.875rem}
.save-tabs{display:flex;gap:10px;margin:16px 0}.save-scroll{max-height:min(58vh,520px);overflow:auto;overscroll-behavior:contain;padding:3px 10px 3px 3px;scrollbar-gutter:stable}.save-scroll .slot{margin:0 0 12px}.save-scroll:focus-visible{outline:2px solid #86cddb;outline-offset:3px}.save-tabs .selected{background:#285866;border-color:#9ed6df;color:#fff}
.loot-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:12px;min-width:min(360px,70vw)}.loot-item{min-height:128px;padding:16px 10px;border:1px solid #d9b46b66;background:#9d7c3315;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;border-radius:12px}.loot-item strong{font-size:.95rem}.loot-item .item-glyph{font-size:2rem}.loot-item>span:last-child{color:#ead392}
.travel-overlay{position:fixed;inset:0;z-index:1200;background:radial-gradient(ellipse at center,#173c48f5,#091c27fb);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;color:#fff;pointer-events:all}.travel-overlay strong{font-size:1.6rem}.travel-mark{font-size:64px;color:#cbe4de;animation:travel-pulse .65s ease-in-out infinite alternate}.travel-overlay progress{width:min(260px,65vw);height:7px;accent-color:#abdbd4}.reduce-motion .travel-mark{animation:none}@keyframes travel-pulse{to{transform:translateY(-9px) rotate(18deg);opacity:.55}}
@media (max-width:600px) and (min-height:501px){.main-objective{padding:17px;margin:16px 0}.life-grid{grid-template-columns:1fr 1fr;gap:8px}.life-resource{padding:14px}.life-work-status{top:75px;gap:8px;padding:12px;flex-wrap:wrap}.life-work-status progress{min-width:100px}.life-work-status button{min-height:42px}.save-scroll{max-height:55vh}.loot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.adventure-main .location-edges{grid-template-columns:1fr}.travel-mark{font-size:52px}}

#game-version{position:fixed;right:14px;bottom:12px;z-index:80;min-height:32px;padding:6px 11px;border-radius:8px;background:#0d2736ed;border:1px solid #588091;color:#bbd7e1;font-size:.8rem;box-shadow:0 2px 12px #0005}#game-version.update-available{border-color:#e8bf66;color:#ffdd8b}.version-details p{overflow-wrap:anywhere}.version-details button{margin:8px 8px 0 0}@media (max-width:600px) and (min-height:501px){#game-version{right:8px;bottom:8px;font-size:.75rem;min-height:30px}}

.guild-region { margin-block: 12px; border: 1px solid var(--line); border-radius: 12px; padding: 12px; }
.guild-region > summary { cursor: pointer; padding: 6px; font-weight: 700; }
.combatant-row > button{width:auto;flex:0 0 auto;min-width:60px;margin:0;white-space:nowrap}
.combatant-copy{flex:1 1 auto;min-width:110px}
.combatant-copy strong{display:block;word-break:keep-all;overflow-wrap:break-word;line-height:1.5}
.compact-teams > section{min-width:0}
@media (max-width:760px) and (min-height:501px){.combatant-copy{min-width:0}.combatant-row > button{width:100%;margin-top:7px}.compact-teams{grid-template-columns:1fr 1fr}}

/* Readable, sequential combat playback. */
.compact-teams:only-child{grid-column:1/-1}.combatant-row .meter i{transition:width .3s ease-out}.combatant-row.acting{border-color:#efcc83;box-shadow:0 0 0 1px #efcc8355}
.combat-speed{display:flex;align-items:center;gap:12px;font-size:13px;margin-top:12px}.combat-speed input{flex:1;min-width:70px;max-width:260px;accent-color:#d7b471}.combat-speed output{font-variant-numeric:tabular-nums;min-width:42px}.combat-speed span{white-space:nowrap}
.combat-playback{position:fixed;z-index:250;left:50%;bottom:20px;transform:translateX(-50%);width:min(660px,calc(100vw - 32px));background:#13292af5;color:#f5eee0;border:1px solid #bfa478;border-radius:12px;padding:14px 18px;box-shadow:0 8px 40px #0008;backdrop-filter:blur(12px)}
.playback-position{color:#e1c48d}.playback-message{margin:8px 0;min-height:42px;font-size:15px;line-height:1.6;word-break:keep-all}.playback-buttons{display:flex;gap:8px;margin-top:10px}.playback-buttons button{padding:8px 13px;font-size:13px}.combat-playback .combat-speed{margin:0}.av-running .action-status{display:none}.av-running .combat-panel{padding-bottom:210px}
.impact{animation:damage-number-in .25s ease-out both;pointer-events:none}.impact-label{display:block;background:none!important;border:0!important;box-shadow:none!important;padding:0!important;font-family:Georgia,'Times New Roman',serif;font-size:52px;font-weight:700;font-style:normal;font-variant-numeric:lining-nums tabular-nums;color:var(--effect);text-shadow:0 2px 1px #101918,2px 0 1px #101918,-2px 0 1px #101918,0 -1px 1px #101918,0 3px 10px #0009;line-height:1.1}.impact.critical .impact-label{font-size:64px}.impact.kind-reaction .impact-label,.impact.kind-guard .impact-label,.impact.kind-miss .impact-label,.impact.kind-immune .impact-label,.impact.kind-victory .impact-label,.impact.kind-defeat .impact-label{font-family:inherit;font-size:28px}.impact-target{display:block;background:#122728e8;color:#fff;padding:3px 8px;border-radius:4px;font-size:12px;text-shadow:none;max-width:230px;margin:5px auto}.battle-details .log{max-height:240px;overflow:auto}.reduce-motion .impact{animation:none}.reduce-motion .combatant-row .meter i{transition:none}
@keyframes damage-number-in{from{opacity:0;transform:translate(-50%,-20%) scale(.85)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}
@media (max-width:760px) and (min-height:501px){.combat-playback{bottom:44px;padding:12px;width:calc(100vw - 20px)}.playback-message{font-size:13px}.playback-buttons{gap:5px}.playback-buttons button{padding:8px;font-size:12px}.impact-label{font-size:42px}.impact.critical .impact-label{font-size:50px}}

.impact.kind-skill .impact-label{font-family:inherit;font-size:28px}

/* Each action shows all targets together, with the exact final HP for that action. */
.quest-level{display:inline-block;margin:0 10px 6px 0;color:var(--gold)}
.playback-outcomes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 16px;max-height:140px;overflow:auto;font-size:.85rem;line-height:1.5}.playback-outcomes p{margin:2px 0}.playback-outcomes .reaction-summary{grid-column:1/-1;color:var(--gold)}.music-now-playing{font-size:.85rem}.impact.kind-action .impact-label{font-size:1.8rem}.impact.kind-action .impact-target{font-family:CRPGKorean,system-ui,sans-serif;font-size:.75rem}
@media (max-width:760px) and (min-height:501px){.playback-outcomes{grid-template-columns:1fr;font-size:.78rem;max-height:100px}.combat-playback{max-height:55vh;overflow:auto}.impact.kind-action .impact-label{font-size:1.5rem}}

/* Focused life activities and fishing, using the existing game palette. */
.life-resource .resource-preview{font-size:.9rem;line-height:1.7}.life-resource>small{display:block;margin:8px 0}.fishing-panel{padding:22px;border:1px solid #c9ad76;background:#0c252c;border-radius:12px;margin-bottom:20px}.fishing-panel h2{margin:8px 0}.fishing-tension{position:relative;height:44px;background:#06161f;border-radius:7px;overflow:hidden;border:1px solid #617777;margin:22px 0 12px}.fishing-zone{position:absolute;top:4px;bottom:4px;width:32%;background:#d8b76e88;border:1px solid #eac582;border-radius:4px}.fishing-cursor{position:absolute;top:0;bottom:0;width:5px;background:#e9ffff;box-shadow:0 0 8px #c1ffef;transform:translateX(-50%)}.fishing-panel progress{width:100%;height:18px;accent-color:#85d7c5}.fishing-hold{touch-action:none;user-select:none;min-height:52px;display:block;width:100%;margin:14px 0}.fishing-hold[aria-pressed=true]{background:#91d5c4;color:#102b2e}.item-uses{margin-top:20px;border-top:1px solid #476366;padding-top:14px}.item-use-list{max-height:240px;overflow:auto}.item-use-row{display:grid;gap:4px;padding:10px 0;border-bottom:1px solid #ffffff12}.item-uses button{display:block;margin-top:10px}.contact-stories{border-top:1px solid #526867;margin-top:28px;padding-top:20px}.contact-stories>.story{max-width:65ch;line-height:1.9}.meeting-place{color:#cde5df}.focused-recipe{outline:2px solid #e3c38a;outline-offset:3px}.level-up-notice{color:#f0d294}.wait-overlay progress{accent-color:#d8b76e}
@media (max-width:760px) and (min-height:501px){.fishing-panel{padding:16px}.fishing-panel p{font-size:.9rem}.fishing-hold{font-size:.9rem}}
/* Contextual tutorial, with actual menu targets visible behind its panel. */
.tutorial-target{outline:3px solid #f4cf79!important;outline-offset:3px;box-shadow:0 0 0 7px #f4cf7930!important;position:relative;z-index:42}.tutorial-tour{position:fixed;z-index:60;right:1.5rem;bottom:1.5rem;width:min(29rem,calc(100vw - 2rem));padding:1.25rem;background:#102d36;border:2px solid #e3c38a;border-radius:12px;box-shadow:0 16px 60px #000a}.tutorial-tour h2{font-size:1.2rem;margin:.5rem 0}.tutorial-tour p{font-size:1rem;line-height:1.8;margin:.6rem 0 1rem}.tutorial-controls{display:flex;gap:.6rem;flex-wrap:wrap}.tutorial-controls button{min-height:46px}.game-help h2{margin-top:1.3rem;font-size:1.1rem}.game-help p{line-height:1.8}@media (max-width:700px) and (min-height:501px){.tutorial-tour{right:1rem;bottom:1rem;padding:1rem;max-height:52vh;overflow:auto}.tutorial-tour p{font-size:.95rem}.tutorial-target{scroll-margin-top:5rem;scroll-margin-bottom:52vh}}
.journey-objective{border-left:3px solid #a5d4c4}.journey-objective h2{margin-top:.5rem}.map-breadcrumb{color:#bdcfcd;font-size:.85rem}.world-discoveries{margin-top:2rem;border-top:1px solid #355458;padding-top:1rem}.world-discoveries .discovery-card{max-width:46rem;margin:1rem 0}.discovery-card button{margin:.35rem .45rem .35rem 0}.world-work-status{position:sticky;top:0;z-index:12;box-shadow:0 8px 35px #0008;background:#16333b;border:1px solid #dac18b}.world-work-status progress{width:100%;accent-color:#dfc18a}.battle-advice{border-left:3px solid #d2b677;padding:1rem;background:#d2b6770c}.guild-training{margin-top:2rem}.restriction{color:#ff9393!important}
/* Compact shop inventory, selection details and visible restrictions. */
.market-tabs {align-items:center;margin:16px 0}.market-tabs .shop-balance{margin-left:auto}.market-filter{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}.market-filter>label{width:100%}.market-filter input{width:20px;height:20px}.market-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.9fr);gap:18px;align-items:start}.market-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(115px,1fr));gap:10px;max-height:70vh;overflow:auto;padding:3px}.market-item{display:flex;min-width:0;flex-direction:column;align-items:center;justify-content:flex-start;gap:8px;text-align:center;padding:12px 9px;min-height:155px}.market-item strong{font-size:14px;line-height:1.5;word-break:keep-all;overflow-wrap:anywhere}.market-item .item-icon,.market-detail>.item-icon{width:56px;height:56px;object-fit:contain}.market-item .item-glyph{font-size:32px}.market-item.selected{border-color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold)}.market-item.unavailable{background:rgba(25,28,40,.75)}.market-item small{font-size:12px;line-height:1.5}.market-restriction{color:#ff9999!important;line-height:1.5;word-break:keep-all;overflow-wrap:anywhere}.market-detail{min-width:0;position:sticky;top:16px}.market-detail h2{overflow-wrap:anywhere}.market-price{font-size:20px;color:var(--gold);font-weight:700}.market-compare-label{display:grid;gap:8px;margin-top:22px}.market-comparison{padding-top:8px}.market-controls{margin:16px 0}.stat-up{color:#86deb4}.stat-down{color:#ff9999}
@media (max-width:760px) and (min-height:501px){.market-layout{grid-template-columns:1fr}.market-grid{max-height:42vh;grid-template-columns:repeat(3,minmax(0,1fr))}.market-item{padding:9px 5px;min-height:138px}.market-detail{position:static}.market-tabs .shop-balance{width:100%;margin-left:0}}
.market-filter>label{justify-content:flex-start;gap:10px}.market-filter>label>*{flex:0 0 auto}.market-filter>label input{margin:0}

/* Encounter explanation, actor silhouettes and sequential light effects. */
.encounter-intro{padding:18px 20px;margin:12px 0 18px;border:1px solid #c1a57588;border-left:3px solid #e3c38a;border-radius:10px;background:linear-gradient(110deg,#493b233d,#17374440)}.encounter-reason{font-size:1rem;line-height:1.85;max-width:70ch;margin:9px 0 12px;white-space:pre-line}.encounter-opponents{display:flex;flex-wrap:wrap;gap:8px}.encounter-opponents>span{border:1px solid #ae7e6a66;background:#56372d33;border-radius:20px;padding:5px 11px;font-size:.82rem}.combat-portrait{width:56px;height:72px;object-fit:contain;flex:none}.combat-player-mark{width:48px;text-align:center;color:#e3c38a;font-size:2rem;flex:none}.compact-battle-stage{display:block;margin:12px 0 18px}.combatant-row{min-height:98px}.combatant-row[data-side=ENEMY]{border-left:2px solid #a97066}.combatant-row[data-side=ALLY]{border-left:2px solid #71aea0}.combat-panel .battle-details{margin-top:20px}
.combat-light{position:absolute;pointer-events:none;--effect:#f7e6bb;color:var(--effect);z-index:1;animation:none!important}.combat-light.effect-fire{--effect:#ffae65}.combat-light.effect-water{--effect:#83d0ff}.combat-light.effect-ice{--effect:#b4edff}.combat-light.effect-lightning{--effect:#d4afff}.combat-light.effect-wind{--effect:#83e4cf}.combat-light.effect-rock{--effect:#ecd079}.combat-light.effect-dendro,.combat-light.healing-ring{--effect:#b5e58e}.cast-trail{width:64px;height:5px;border-radius:50%;background:linear-gradient(90deg,transparent,var(--effect),#fff);box-shadow:0 0 14px var(--effect);filter:drop-shadow(0 0 5px var(--effect))}.combat-light.impact-ring,.combat-light.ripple-ring,.combat-light.frost-ring,.combat-light.geo-ring,.combat-light.shield-ring,.combat-light.healing-ring{width:70px;height:70px;border:3px solid var(--effect);border-radius:50%;filter:drop-shadow(0 0 7px var(--effect));inset:auto}.combat-light.ripple-ring{border-width:5px 1px;box-shadow:0 0 0 9px #7fdce333}.combat-light.frost-ring{border-radius:4px;border-style:double;border-width:7px}.combat-light.geo-ring{border-radius:10%;border-width:5px}.combat-light.shield-ring{border-width:2px 7px;background:#fff1}.combat-light.healing-ring{border-width:2px;box-shadow:0 0 25px #8eefad55}.combat-light.impact-spark{width:4px;height:15px;background:var(--effect);box-shadow:0 0 7px var(--effect);border-radius:50%}.combat-light.defeated-marker{margin-top:28px;white-space:nowrap;color:#f8d5a0;font-size:14px;font-weight:700;text-shadow:0 2px 5px #000}.reaction-burst{position:absolute;left:50%;top:20%;padding:9px 20px;background:#0f263ce8;border:1px solid #dcc08f;color:#ffe4a9;border-radius:6px;font-size:1.15rem;text-shadow:0 2px 8px #000}.combat-effects .impact{z-index:3}.impact.kind-action .impact-label{font-size:2.7rem}.impact.kind-action.critical .impact-label{font-size:3.2rem}.combatant-row.dead .combat-portrait{filter:grayscale(1)}
.discovery-scene{margin-bottom:18px}.scene.scene-search{display:block;overflow:auto;max-height:none;padding:0;scrollbar-width:thin;scrollbar-color:#8faba2 #142e36}.scene-panorama{position:relative;min-width:125%;height:340px;background:#17323a}.scene-panorama>.scene-back{width:100%;height:100%;max-width:none!important;object-fit:cover!important;opacity:.75}.scene-panorama>.scene-label{max-width:68%;pointer-events:none}.scene-clue{position:absolute;left:91%;bottom:19%;padding:4px!important;min-width:44px;min-height:44px;border:0!important;background:transparent!important;color:#d3f7d8;text-shadow:0 0 8px #bbffec,0 0 16px #a9eadb;font-size:24px;opacity:.75}.scene-clue:hover,.scene-clue:focus-visible{opacity:1;outline:2px solid #c0e8df!important;outline-offset:3px}.scene-search-hint{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 2px;color:var(--muted)}.scene-search-hint button{font-size:.85rem;white-space:nowrap}.scene-search:focus-visible{outline:2px solid #9bbeb3;outline-offset:2px}
@media (max-width:760px) and (min-height:501px){.battle-summons{gap:7px}.battle-summon{display:block;padding:6px;min-height:94px;text-align:center}.summon-portrait{width:58px;height:48px;margin:0 auto 3px}.summon-copy small{font-size:.7rem}.combat-portrait{width:48px;height:52px;float:left;margin-right:7px}.combat-player-mark{display:block;float:left;width:42px;height:52px;font-size:1.6rem}.combatant-row{min-height:116px}.combatant-copy strong{font-size:.82rem}.combatant-copy .stat{clear:both;font-size:.75rem}.encounter-intro{padding:14px}.encounter-reason{font-size:.9rem}.encounter-opponents>span{font-size:.75rem}.impact.kind-action .impact-label{font-size:2rem}.impact.kind-action.critical .impact-label{font-size:2.5rem}.reaction-burst{top:17%;font-size:1rem}.scene-panorama{height:260px;min-width:145%}.scene-search-hint{align-items:flex-start}.scene-search-hint small{font-size:.75rem;line-height:1.6}.av-running .battle-heading{margin-top:0}}

@font-face{font-family:"HoyoDamageNumbers";src:url("assets/fonts/hoyo-damage-numbers.woff") format("woff");font-style:normal;font-weight:400;font-display:swap;unicode-range:U+0025,U+002B-002E,U+0030-0039;}
.impact.kind-action .impact-label,.impact.kind-damage .impact-label,.impact.kind-heal .impact-label{font-family:HoyoDamageNumbers,CRPGKorean,sans-serif;font-weight:400;font-synthesis:none}

.scene.scene-search:after{display:none}.scene-panorama:after{content:'';position:absolute;inset:40% 0 0;background:linear-gradient(transparent,#071821df);pointer-events:none}.scene-clue{z-index:2}.release-notes{padding-left:1.3rem;max-width:62ch}.release-notes li{margin:10px 0;line-height:1.75}

/* Acquisition conditions stay readable on the existing dark surfaces. */
.requirement-unmet{color:#ff9b9b!important}.requirement-met{color:#91d9c4}.acquisition-requirements{padding-left:1.2rem;line-height:1.65;margin:.7rem 0}.acquisition-requirements li{margin:.3rem 0}.acquisition-card{padding:1rem 1.2rem}.acquisition-card summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:2.5rem}.acquisition-card summary strong{font-size:1.05rem}.acquisition-card summary span{font-size:.875rem}.recruitment-link{margin-bottom:1rem}.acquisition-objective .choice-note{color:#ff9b9b}

.acquisition-card summary{flex-wrap:wrap}.acquisition-card summary small{flex-basis:100%;font-size:.82rem;line-height:1.5}.defense-objective{border-color:#dfbf73;background:rgba(84,64,27,.4)}

.golden-house-scene{min-height:240px;background:linear-gradient(90deg,transparent 7%,#5b452a 7% 10%,transparent 10% 90%,#5b452a 90% 93%,transparent 93%),linear-gradient(125deg,#141819,#5b4122 48%,#171c1e)!important;border-top:8px solid #957547;border-bottom:6px solid #806039}.golden-house-scene:before{content:'';position:absolute;inset:16px 18% 30px;border:2px solid #bba26a;border-radius:48% 48% 0 0;opacity:.45;pointer-events:none}

/* Protagonist identity is expressed in words and E/Q badges, not color alone. */
.protagonist-panel{margin:12px 0;padding:13px 16px;border:1px solid var(--border,#455657);border-left:4px solid #b5a081;border-radius:10px;background:rgba(19,29,33,.94);font-size:.9rem}
.protagonist-panel p{margin:6px 0;line-height:1.6}.protagonist-anemo{border-left-color:#70d8bc}.protagonist-isekai{border-left-color:#d8b476}.joint-members{display:flex;gap:7px;flex-wrap:wrap}.joint-members span{padding:4px 9px;border:1px solid #9e8454;border-radius:20px}.joint-members .unavailable{opacity:.6;border-style:dashed}.joint-bonus{font-weight:600;color:#f0d8a8}
.battle-cards .protagonist-skill{display:grid;grid-template-columns:32px minmax(0,1fr);grid-template-rows:auto auto;column-gap:8px;row-gap:2px;align-content:center;min-height:58px;padding:9px 10px;text-align:left;overflow:hidden}.skill-key{position:static;grid-column:1;grid-row:1/3;align-self:center;display:grid;place-items:center;border:1px solid currentColor;border-radius:7px;width:28px;height:30px;font-weight:800}.protagonist-skill>strong,.protagonist-skill>small{grid-column:2;min-width:0;word-break:keep-all;overflow-wrap:normal}.protagonist-skill>strong{white-space:normal;line-height:1.25}.identity-anemo .skill-key{color:#80e6c5}.identity-isekai .skill-key{color:#f3d19a}.skill-q .skill-key{border-width:2px}.skill-preview{padding:10px 12px;border:1px dashed #8d917d;border-radius:8px;line-height:1.55;font-size:.85rem}.joint-attack-playback{border-color:#d5b16f!important}.joint-attack-banner{position:fixed;left:50%;top:23%;transform:translateX(-50%);padding:12px 24px;border:2px solid #e6c68b;border-radius:10px;background:#252215;color:#ffe4b0;font-size:1.2rem;font-weight:800;z-index:3;pointer-events:none;white-space:nowrap}
@media (max-width:600px) and (min-height:501px){.protagonist-panel{padding:10px 12px}.battle-cards .protagonist-skill{grid-template-columns:30px minmax(0,1fr);padding:8px}.joint-attack-banner{font-size:1rem;padding:10px 15px}.joint-members span{font-size:.8rem}}
@media(prefers-reduced-motion:reduce){.joint-attack-banner{animation:none!important;transition:none!important}}

/* Equipment value and onboarding — reuse the existing theme and registered icons. */
.equipment-contribution{grid-column:1/-1;min-width:0;width:100%;margin:1rem 0;padding:.75rem 0;border-top:1px solid var(--line,#596264);border-bottom:1px solid var(--line,#596264)}
.equipment-contribution h3{font-size:1rem;margin:0 0 .6rem}.equipment-contribution .compare-table{font-size:.86rem;table-layout:fixed;width:100%}.equipment-contribution th:first-child{width:30%}.equipment-contribution th,.equipment-contribution td{padding:.4rem .16rem;white-space:nowrap}
.equipment-base-stats{display:block;line-height:1.6;white-space:normal;overflow-wrap:anywhere}.equipment-choice .item-glyph{width:44px;height:44px;float:left;margin-right:.55rem}.equipment-choice:after{content:"";display:block;clear:both}
.equipment-guide{max-width:660px}.equipment-guide-item{display:flex;align-items:center;gap:1rem}.equipment-guide-item .item-glyph{width:64px;height:64px}.equipment-guide h3{font-size:1rem;margin:1.1rem 0 .3rem}.equipment-guide p{line-height:1.65}.equipment-guide button{margin:.5rem .4rem 0 0}.equipment-guide .compare-table{width:100%;font-size:.95rem}
@media (max-width:560px) and (min-height:501px){.equipment-guide-item h2{font-size:1.2rem}.equipment-guide-item .item-glyph{width:48px;height:48px}.equipment-contribution .compare-table{font-size:.82rem}.equipment-guide button{width:100%;margin:.4rem 0 0}}
/* v0.13.5 forge: existing palette and icons, mobile-safe exact-instance cards. */
.enhance-panel {max-width:1100px;margin:1.2rem auto;}
.enhance-grid {display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:1rem;align-items:start;}
.enhance-card {min-width:0;overflow-wrap:anywhere;}
.enhance-card>.item-glyph {float:right;width:52px;height:52px;}
.enhance-cap {display:inline-block;font-size:.85rem;padding:.25rem .6rem;border:1px solid #b5a476;border-radius:4px;margin:.65rem 0;}
.enhance-probabilities {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.35rem;margin:.8rem 0;}
.enhance-prob {display:flex;flex-direction:column;text-align:center;background:#102b2e10;border:1px solid #7e8e842b;padding:.6rem .2rem;border-radius:5px;}
.enhance-prob span {font-size:.76rem;overflow-wrap:anywhere;}
.enhance-prob strong {font-size:1.3rem;font-variant-numeric:tabular-nums;}
.enhance-prob.down strong,.enhance-warning {color:#ffb49c;}
.enhance-comparison,.enhance-chance-table {width:100%;border-collapse:collapse;margin:.75rem 0;font-size:.9rem;table-layout:fixed;}
.enhance-comparison th,.enhance-comparison td,.enhance-chance-table th,.enhance-chance-table td {padding:.5rem .3rem;border-bottom:1px solid #7e8e8433;overflow-wrap:anywhere;text-align:right;}
.enhance-comparison th:first-child,.enhance-chance-table th:first-child,.enhance-chance-table td:first-child{text-align:left;}
.enhance-cost {display:flex;flex-direction:column;gap:.25rem;margin:.8rem 0;}
.enhance-material {display:flex;align-items:center;gap:.35rem;flex-wrap:wrap;}
.enhance-material .item-glyph {width:28px;height:28px;min-width:28px;}
.enhance-material small {margin-left:auto;}
.enhance-rules {padding:.8rem;border:1px solid #7e8e8433;margin:.8rem 0;}
.enhance-rules summary {cursor:pointer;font-weight:600;}
.enhance-result .enhance-level {display:block;font-size:1.35rem;margin:1rem 0;}
.enhance-result.success h2,.enhance-result.ascended h2 {color:#8de3c3;}
.enhance-result.down h2 {color:#ffb49c;}
@media (max-width:560px) and (min-height:501px){.enhance-prob strong{font-size:1.15rem}.enhance-panel .card{padding:1rem}.enhance-confirm .row{display:flex;flex-wrap:wrap}.enhance-confirm .row button{flex:1;min-width:120px}}

/* v0.13.7 local region information; wraps safely on narrow screens. */
.mond-region-guide .region-warning{font-weight:600;color:var(--gold)}
.region-encounters summary{cursor:pointer;padding:.4rem 0}
.region-encounter-line strong,.region-encounter-line small{display:block;overflow-wrap:anywhere}
.mond-region-guide{min-width:0}

/* 3-1: readable enemy intelligence; separate from attack targeting and action controls. */
.with-enemy-intel{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:18px;align-items:start}.with-enemy-intel>.battle-teams{min-width:0}.enemy-intel-panel{background:#112b31;border:1px solid #527579;border-radius:12px;color:#f2eee4;min-width:0;overflow:hidden}.intel-panel-top{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 14px;border-bottom:1px solid #527579}.intel-panel-top h2{font-size:16px;margin:0}.intel-panel-top button{font-size:12px;padding:6px 9px}.intel-help{font-size:12px;line-height:1.55;padding:0 14px;color:#bad1cf}.intel-panel-scroll{max-height:540px;overflow:auto;overscroll-behavior:contain;padding:0 14px 14px;scrollbar-gutter:stable}.enemy-intel-content{min-width:0;overflow-wrap:anywhere;font-size:14px;line-height:1.7}.enemy-intel-name{font-size:20px!important;line-height:1.35;margin:4px 0 14px!important}.intel-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:8px 0 12px}.intel-stats>div{background:#1b3940;padding:7px 9px;border-radius:7px}.intel-stats dt{font-size:11px;color:#bed0ce}.intel-stats dd{font-size:13px;margin:0;font-weight:700;color:#fff}.intel-stats>div:first-child{grid-column:span 2}.intel-cue{border-left:3px solid #9bbbc1;background:#203c43;border-radius:5px;padding:9px 11px;margin:10px 0;line-height:1.6}.intel-cue strong,.intel-cue small{display:block}.intel-cue small{font-size:12px;margin-top:3px}.intel-cue.danger{border-color:#ffba98;background:#502f2d}.intel-cue.opportunity{border-color:#9de4c0;background:#203f39}.intel-cue.warning{border-color:#e7c076}.intel-shield{padding:9px;background:#233c54;border-radius:6px}.intel-shield strong,.intel-shield span{display:block}.intel-shield span{font-size:12px}.intel-status,.intel-footnote,.intel-replay-note{font-size:12px;line-height:1.65;color:#cbdad8}.intel-replay-note{background:#39403b;padding:9px;border-radius:6px}.intel-section-title{font-size:14px;margin:16px 0 7px}.intel-skill{border:1px solid #52696c;border-radius:7px;margin:8px 0;background:#17343a}.intel-skill>summary{padding:11px 10px;cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:8px;line-height:1.45}.intel-skill>summary:before{content:'›';font-size:22px;line-height:1;color:#dfc389}.intel-skill[open]>summary:before{transform:rotate(90deg)}.intel-skill>summary strong{flex:1;font-size:14px}.intel-badge{font-size:10px;border:1px solid #91aba9;border-radius:4px;white-space:nowrap;padding:2px 5px;color:#e2eeec}.intel-badge.danger{color:#ffe0cb;border-color:#ffbe9d}.intel-skill-body{padding:0 12px 12px}.intel-skill-body p{margin:8px 0}.intel-skill-meta{color:#e8ce99;font-size:12px}.intel-condition{font-size:12px;color:#c0d2cf}.intel-counter{background:#24473f;padding:9px 11px;border-radius:6px;margin-top:12px;border-left:3px solid #a2d7b4}.intel-counter>strong{font-size:12px;color:#bce6c8}.intel-counter p{font-size:13px;margin:5px 0 0}.intel-skill.unsupported{opacity:.8;border-style:dashed}.enemy-intel-toolbar{display:flex;align-items:center;gap:12px;padding:8px 10px;border:1px solid #698a84;border-radius:8px;background:#183b3c;margin:0 0 10px}.combat-info-tools{justify-content:space-between}.enemy-intel-toolbar small{font-size:12px;line-height:1.5}.enemy-intel-toolbar button{font-size:13px;padding:9px 12px}.combatant-row.intel-selected{outline:2px solid #a5d4c8;outline-offset:-2px}.combatant-row.selected{box-shadow:inset 0 0 0 3px #e9bd69}.enemy-info-button{font-size:12px!important;min-width:40px;padding:8px 9px!important;align-self:center}.enemy-inspect-name{cursor:help;text-decoration:underline dotted #aac9c2;text-underline-offset:4px;outline-offset:4px}.enemy-inspect-name:focus-visible,.intel-skill>summary:focus-visible{outline:2px solid #f4d795;border-radius:3px}.enemy-charge-chip{display:block!important;color:#ffd0ad!important;background:#4c2c2b;border-radius:4px;font-size:11px;line-height:1.6;margin-top:5px;padding:4px 7px}.enemy-skill-history{padding:12px;border:1px solid #718b85;border-radius:8px;margin:14px 0}.enemy-skill-history>summary{cursor:pointer;font-weight:700}.enemy-skill-history>button{display:block;text-align:left;width:100%;font-size:13px;margin-top:8px}.enemy-intel-dialog{width:min(650px,calc(100vw - 32px));max-width:calc(100vw - 24px);padding:0;border:1px solid #93aaa3;border-radius:14px;background:#112b31;color:#f2eee4;box-shadow:0 18px 70px #0009;max-height:86dvh;overflow:hidden;z-index:10050}.enemy-intel-dialog::backdrop{background:#051214bf}.intel-dialog-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:15px 20px;background:#21413e;border-bottom:1px solid #657c74}.intel-dialog-head h2{font-size:17px;margin:0}.intel-dialog-head button{padding:8px 14px}.intel-dialog-scroll{padding:18px 22px;max-height:calc(86dvh - 72px);overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.enemy-skill-toast{position:fixed;z-index:10020;right:max(20px,env(safe-area-inset-right));bottom:260px;display:flex;align-items:center;gap:12px;width:min(470px,calc(100vw - 40px));background:#163836;color:#f9f2e7;border:1px solid #d4b576;border-left:5px solid #ecc97e;border-radius:10px;padding:13px 14px;box-shadow:0 8px 30px #0008}.enemy-skill-caption{flex:1;min-width:0}.enemy-skill-caption>*{display:block;overflow-wrap:anywhere}.enemy-skill-caption small{font-size:11px;color:#d9caab}.enemy-skill-caption strong{font-size:20px;line-height:1.4;margin:3px 0}.enemy-skill-caption span{font-size:12px;line-height:1.6}.enemy-skill-toast button{padding:9px;font-size:12px;white-space:nowrap}.enemy-skill-toast button:last-child{font-size:20px;padding:4px 7px}.playback-buttons{flex-wrap:wrap}.playback-enemy-info{border-color:#e0bd77!important}.enemy-intel-content .eyebrow{color:#d8be87;font-size:11px;letter-spacing:.04em}.enemy-intel-content .muted{color:#b9c9c6}
@media(max-width:1100px){.with-enemy-intel{display:block}.enemy-intel-panel{display:none}.enemy-intel-toolbar{margin-bottom:12px}}
@media (max-width:600px) and (min-height:501px){.enemy-intel-dialog{width:calc(100vw - 16px);max-width:calc(100vw - 16px);max-height:85dvh;margin:auto auto max(8px,env(safe-area-inset-bottom));border-radius:14px 14px 6px 6px}.intel-dialog-scroll{max-height:calc(85dvh - 66px);padding:14px 15px}.intel-dialog-head{padding:11px 15px}.intel-stats{gap:6px}.enemy-intel-toolbar{gap:8px;padding:9px}.enemy-intel-toolbar small{font-size:11px}.enemy-intel-toolbar button{white-space:nowrap}.enemy-skill-toast{right:8px;width:calc(100vw - 16px);padding:10px;gap:8px;border-left-width:4px}.enemy-skill-caption strong{font-size:17px}.enemy-skill-caption span{font-size:11px;max-height:55px;overflow:auto}.enemy-skill-toast button{padding:8px 6px}.combatant-row .enemy-info-button{grid-column:auto}.enemy-intel-content{font-size:14px}.intel-counter p{font-size:13px}}

/* v0.13.9: reserved technique lane. Never overlay damage digits. */
.combat-skill-banner{display:flex;align-items:center;gap:12px;padding:12px 14px;margin:0 0 10px;border:1px solid #88bcb3;border-left:5px solid #88bcb3;border-radius:8px;background:#142e36;color:#fff5df;text-align:left;min-width:0}
.combat-skill-banner[data-side="ENEMY"]{border-color:#e2a78e;background:#402b31}
.combat-skill-heading{flex:1;min-width:0}.combat-skill-heading>*{display:block;overflow-wrap:anywhere}.combat-skill-side{font-size:12px;color:#dfd7c2;line-height:1.4}.combat-skill-name{font-size:22px;line-height:1.35;margin:4px 0;letter-spacing:.01em}.combat-skill-target{font-size:12px;color:#d3dfdd;line-height:1.5;max-height:3em;overflow:auto}.combat-skill-banner>button{flex-shrink:0;min-height:44px;font-size:12px;padding:8px 12px}
.combat-playback{max-height:57dvh;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.combat-playback .playback-outcomes{max-height:100px;overflow:auto}.combat-playback .playback-message{font-size:12px;margin:6px 0}.joint-attack-banner{display:none!important}
.boss-readiness{margin:10px 0 16px;padding:12px 15px;border:1px solid #9d8862;border-radius:10px;background:#20373a}.boss-readiness h2{font-size:16px;margin:0 0 8px}.boss-readiness p{font-size:13px;line-height:1.6;margin:4px 0}.boss-clock{display:block;color:#efd093;margin-top:8px}.boss-preparation-warning{color:#ffc1a6}
@media (max-width:600px) and (min-height:501px){.combat-skill-banner{gap:8px;padding:9px 10px;margin-bottom:7px}.combat-skill-name{font-size:18px}.combat-skill-side{font-size:11px}.combat-skill-banner>button{padding:8px;font-size:11px}.combat-skill-target{font-size:11px}.combat-playback{max-height:53dvh}.boss-readiness{padding:10px 12px}}
/* 0.13.11: game-accurate wayfinding, large touch targets, no tiny overlaid labels. */
.journey-map{margin:20px 0;padding:20px;border:1px solid #48676a;border-radius:18px;background:#10272c;color:#edf4ed;min-width:0;}
.journey-map-head{height:auto;min-height:0;padding:0 0 14px;display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding-bottom:14px;border-bottom:1px solid #456265;}
.journey-map-head>div{font-size:.8rem;color:#d5b574;flex-basis:100%;}.journey-map-head h2{font-size:1.2rem;margin:0;flex:1}.journey-map-body{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:18px;min-width:0;}
.journey-map-network{display:grid;grid-template-columns:minmax(95px,.55fr) minmax(150px,1fr);gap:18px;align-items:center;min-width:0}.journey-map-origin{border:2px solid #a3e0ce;border-radius:12px;padding:14px 9px;text-align:center;min-width:0}.journey-map-origin small,.journey-map-origin strong{display:block;overflow-wrap:anywhere}.journey-map-origin small{color:#a3e0ce;margin-bottom:9px}.journey-map-neighbors{border-left:2px solid #63877f;padding-left:14px;display:grid;gap:8px;min-width:0}
.journey-map-node{display:block;position:relative;text-align:left;width:100%;padding:12px;border:1px solid #4c716d;border-radius:9px;min-height:60px;background:#20383b;color:inherit;white-space:normal}.journey-map-node:before{content:'';position:absolute;left:-16px;top:50%;width:15px;border-top:2px solid #63877f}.journey-map-node strong,.journey-map-node small{display:block;overflow-wrap:anywhere}.journey-map-node small{font-size:.75rem;color:#b4c8c5;margin-top:5px}.journey-map-node.selected{border:2px solid #e6c57e;background:#33423b}.journey-map-node.locked{border-style:dashed;opacity:.7}
.journey-map-planner{min-width:0;border-left:1px solid #456265;padding-left:20px;display:flex;flex-direction:column;gap:10px}.journey-map-planner select{width:100%;max-width:100%;min-width:0;min-height:44px;padding:8px;background:#0c2328;color:#edf4ed;border:1px solid #74938b;border-radius:7px}.journey-map-planner button{white-space:normal;min-height:44px;overflow-wrap:anywhere}.journey-map-route{list-style:none;margin:0 0 0 6px;padding-left:15px;border-left:2px solid #7ca99e}.journey-map-route li{padding:5px 0;position:relative}.journey-map-route li:before{content:'';position:absolute;left:-20px;top:13px;width:8px;height:8px;border-radius:50%;background:#a3e0ce}.journey-map-route .destination{font-weight:700;color:#f0cf87}.official-map-link{color:#b1d1c9;font-size:.82rem}.journey-map-note{display:block;margin-top:18px;color:#a8bfc0;font-size:.75rem}.story-intermission-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid #456265;flex-wrap:wrap}.discovery-context{line-height:1.7}.discovery-cost{border-left:3px solid #d4b479;padding-left:12px}.battle-order[hidden],.battle-command[hidden],.enemy-intel-panel[hidden],.enemy-intel-toolbar[hidden]{display:none!important}
@media (max-width:780px) and (min-height:501px){.journey-map{padding:14px}.journey-map-body{grid-template-columns:1fr;gap:18px}.journey-map-network{grid-template-columns:minmax(85px,.5fr) minmax(130px,1fr);gap:12px}.journey-map-planner{border-left:0;border-top:1px solid #456265;padding:16px 0 0}.journey-map-head h2{font-size:1.08rem}.journey-map-node{padding:10px;font-size:.87rem}.journey-map-origin{font-size:.88rem}.journey-map-note{line-height:1.6}.story-intermission-bar button{width:100%}}

@media (max-width:780px) and (min-height:501px){.journey-map-head{display:grid;grid-template-columns:1fr;height:auto;gap:10px;padding:0 0 14px}.journey-map-head h2{line-height:1.6;word-break:keep-all}.journey-map-head button{width:100%;min-height:44px;white-space:normal}}

/* 0.13.12: preserve raster geometry; separate location display and travel confirmation. */
.terrain-navigation{padding:18px;background:#10292e;border-color:#456963;overflow:visible}
.terrain-header{display:flex;justify-content:space-between;align-items:center;gap:14px;height:auto;padding:0 0 16px;border-bottom:1px solid #46665e;flex-wrap:wrap;background:none}
.terrain-title{min-width:0}.terrain-title small{font-size:.76rem;color:#c8bd98;letter-spacing:.07em}.terrain-title h2{font-size:1.22rem;line-height:1.5;margin:4px 0 0;word-break:keep-all}
.terrain-shortcuts,.terrain-controls,.terrain-zoom{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.terrain-navigation button{min-height:44px;white-space:normal;line-height:1.45;margin:0;touch-action:manipulation}.terrain-shortcuts button,.terrain-controls button{padding:9px 12px;font-size:.82rem}
.terrain-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(250px,1fr);gap:18px;margin-top:16px}.terrain-map-column,.terrain-destinations{min-width:0}
.terrain-viewport{width:100%;height:430px;position:relative;overflow:auto;border:1px solid #75917d;border-radius:13px;background:#0e171e;isolation:isolate;scrollbar-width:thin;scrollbar-color:#789681 #152b31;overscroll-behavior:auto;cursor:grab}
.terrain-viewport:active{cursor:grabbing}.terrain-canvas{position:relative;min-width:100%;min-height:100%}.terrain-sheet{position:absolute}.terrain-raster{display:block;width:100%;height:100%;max-width:none;object-fit:contain;user-select:none;pointer-events:none}.terrain-pins{position:absolute;inset:0;pointer-events:none}
.terrain-navigation .terrain-pin{position:absolute;transform:translate(-50%,-50%);width:44px;height:44px;padding:0;border:0;background:none;box-shadow:none;display:grid;place-items:center;pointer-events:auto;z-index:2;color:#162b29;overflow:visible;min-width:44px;min-height:44px}
.terrain-pin-core{display:grid;place-items:center;min-width:28px;height:28px;border-radius:50%;background:#f6e4b4;border:2px solid #163b33;box-shadow:0 1px 8px #061d29cc,0 0 0 2px #e4d7b560;font-size:.8rem;font-weight:800;padding:0 4px;box-sizing:border-box}
.terrain-pin.locked .terrain-pin-core{background:#ccd2cc;border:2px dashed #53685e;color:#253b36}.terrain-pin.selected .terrain-pin-core,.terrain-pin.hovered .terrain-pin-core,.terrain-pin:focus-visible .terrain-pin-core{box-shadow:0 0 0 4px #ffed9e,0 0 16px #141e14;border-color:#e5ac38;background:#fff5c9}.terrain-pin.cluster .terrain-pin-core{min-width:38px;border-radius:15px}.terrain-navigation .terrain-pin.current{pointer-events:none;z-index:3}.terrain-pin.current .terrain-pin-core{background:#93f3df;border:2px solid #f1fff7;color:#063f3b;box-shadow:0 0 0 4px #043c35b0,0 2px 12px #000b;width:29px;height:29px;font-size:1rem}
.terrain-current-label{position:absolute;bottom:45px;left:50%;transform:translateX(-50%);white-space:nowrap;background:#123d38;color:#edfff7;border:1px solid #b1dfc6;padding:4px 8px;border-radius:6px;font-size:.74rem;box-shadow:0 2px 8px #0009}.terrain-pin.near-current:before{content:'';position:absolute;width:34px;border-top:2px dotted #ffe9b6;right:32px;top:21px;z-index:-1}
.terrain-pin.destination .terrain-pin-core{border-radius:4px;background:#ffedae;font-size:1.05rem}.terrain-map-status{position:sticky;left:8px;bottom:8px;width:calc(100% - 16px);margin:0 8px;padding:10px;box-sizing:border-box;border:1px solid #97b5a4;border-radius:8px;background:#0d2629f5;z-index:5;color:#fff;font-size:.82rem}.terrain-map-status[hidden]{display:none}.terrain-map-status button{display:block;width:100%;text-align:left;margin-top:6px}
.terrain-controls{margin-top:10px;justify-content:flex-start}.terrain-zoom{margin-right:auto}.terrain-zoom button{width:44px;font-size:1.1rem;padding:6px}.terrain-legend{font-size:.75rem;color:#ddd5b8;margin:10px 0 5px}.terrain-help,.terrain-location-note{font-size:.74rem;line-height:1.65;color:#b9c9bf;margin:5px 0;display:block}
.terrain-destinations h3{font-size:1rem;margin:0 0 6px}.terrain-select-help{font-size:.75rem;color:#bcc8bf;margin:0 0 12px;line-height:1.6}.terrain-destination-list{display:grid;gap:8px}.terrain-navigation .terrain-destination{display:flex;align-items:center;gap:10px;min-height:76px;width:100%;text-align:left;padding:12px 10px;border:1px solid #4d6c62;border-radius:10px;background:#1b3638;color:#edf3e9;box-sizing:border-box}.terrain-destination.selected{background:#3c493d;border:2px solid #e4c37f;padding:11px 9px}.terrain-destination:hover{border-color:#d5c8a0}.terrain-number{flex:0 0 29px;height:29px;display:grid;place-items:center;background:#e6d29e;border:1px solid #f6e4ba;color:#17352e;border-radius:50%;font-size:.8rem;font-weight:800}.terrain-destination.locked .terrain-number{background:#849891;border-color:#a3b9ab}.terrain-card-copy{display:block;flex:1;min-width:0}.terrain-card-copy strong{font-size:.9rem;font-weight:650;display:block;word-break:keep-all}.terrain-card-copy small{display:block;margin-top:5px;font-size:.73rem;color:#bdccc1;line-height:1.5}.terrain-card-state{flex-shrink:0;font-size:.76rem;color:#e3cea0}.terrain-lock-reason{color:#e7bca8!important;font-size:.77rem;line-height:1.6;margin:4px 0 0}
.terrain-other-routes,.terrain-search{margin-top:10px;border-top:1px solid #456356}.terrain-other-routes summary,.terrain-search summary,.terrain-provenance summary{font-size:.8rem;min-height:44px;cursor:pointer;color:#c8d3bf;display:list-item;line-height:44px;margin-left:16px}.terrain-other-routes .terrain-destination{margin-bottom:8px}.terrain-search select{box-sizing:border-box;max-width:100%;width:100%;min-width:0;min-height:48px;background:#122a2b;color:#eef2e1;border:1px solid #668678;border-radius:7px;padding:8px;font-size:.83rem}.terrain-search button{width:100%;margin-top:8px}.terrain-provenance{margin-top:12px;border-top:1px solid #3e5a52}.terrain-provenance p{font-size:.74rem;color:#aec3b9;line-height:1.7}
.terrain-travel-dock{position:sticky;bottom:8px;z-index:6;display:flex;align-items:center;flex-wrap:wrap;gap:12px;background:#173330f5;border:1px solid #839875;border-radius:12px;padding:14px;margin-top:16px;box-shadow:0 6px 18px #03161755}.terrain-selection{display:flex;flex-direction:column;gap:3px;flex:1;min-width:180px}.terrain-selection small{color:#bfdac7;font-size:.72rem}.terrain-selection strong{font-size:1rem;word-break:keep-all}.terrain-selection span{font-size:.76rem;color:#bdcec2}.terrain-navigation .terrain-travel{min-height:50px;padding:12px 18px;font-size:.91rem;flex:0 1 300px}.terrain-route-chain{flex-basis:100%;border-top:1px solid #486255;padding-top:8px}.terrain-route-chain small{display:block;font-size:.74rem;color:#c4d3c2;line-height:1.7}
.terrain-navigation button:focus-visible,.terrain-navigation select:focus-visible,.terrain-navigation summary:focus-visible{outline:3px solid #f8dc91;outline-offset:3px}
@media(max-width:1150px){.terrain-layout{grid-template-columns:minmax(0,1fr)}.terrain-viewport{height:400px}.terrain-destination-list{grid-template-columns:repeat(2,minmax(0,1fr))}.terrain-other-routes .terrain-destination{max-width:none}.terrain-navigation .terrain-travel{flex-basis:250px}}
@media (max-width:600px) and (min-height:501px){.terrain-navigation{padding:12px}.terrain-header{padding:0 0 12px;gap:10px}.terrain-title{width:100%}.terrain-title h2{font-size:1.07rem}.terrain-shortcuts{width:100%}.terrain-shortcuts button{flex:1}.terrain-layout{margin-top:12px;gap:16px}.terrain-viewport{height:320px;border-radius:9px}.terrain-destination-list{grid-template-columns:1fr}.terrain-card-copy strong{font-size:.9rem}.terrain-select-help{font-size:.78rem}.terrain-travel-dock{padding:12px;bottom:4px;gap:9px}.terrain-selection{min-width:0;flex-basis:100%}.terrain-navigation .terrain-travel{flex-basis:100%;width:100%;font-size:.9rem}.terrain-controls{gap:5px}.terrain-controls button{padding:8px 9px}.terrain-help{font-size:.72rem}.terrain-legend{line-height:1.7}.terrain-pin-core{font-size:.78rem}}
@media(prefers-reduced-motion:reduce){.terrain-navigation *{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
/* Keep the confirmation in document flow: never cover the cards or leave sticky gaps. */
.terrain-travel-dock{position:relative;bottom:auto;z-index:1;background:#173330}
@media (max-width:600px) and (min-height:501px){
 .terrain-navigation{display:grid;grid-template-columns:minmax(0,1fr);row-gap:0}
 .terrain-header{order:0}.terrain-layout{display:contents}
 .terrain-map-column{order:1;margin-top:12px}.terrain-travel-dock{order:2;margin:14px 0 16px;bottom:auto}
 .terrain-destinations{order:3}.terrain-provenance{order:4}
}

/* v0.13.13: geographic dots are fixed; displaced touch labels have exact leader endpoints. */
.terrain-anchor{position:absolute;width:8px;height:8px;box-sizing:border-box;border:2px solid #103c38;border-radius:50%;background:#fff0c5;box-shadow:0 0 0 2px #fff7;transform:translate(-50%,-50%);pointer-events:none;z-index:1}
.terrain-leader{position:absolute;height:0;border-top:2px solid #ffefbc;transform-origin:0 0;pointer-events:none;z-index:0;filter:drop-shadow(0 1px 1px #102b2e)}
.terrain-card-copy small.terrain-point-note{font-size:.68rem;color:#aac2b7;line-height:1.5}

/* v0.13.14 Liyue: readable local identity, large destination controls. */
.liyue-local-guide{border-left:3px solid #c4ab75;padding:18px 20px;margin:14px 0}
.liyue-local-guide h2{margin:4px 0 10px}.liyue-local-guide p{max-width:78ch;line-height:1.65}
.liyue-local-tags{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 14px}
.liyue-local-tags span{font-size:.84rem;border:1px solid #536259;border-radius:20px;padding:4px 10px}
.liyue-local-resources{margin-top:16px;padding-top:12px;border-top:1px solid #536259}
.liyue-local-resources>button{display:block;margin-top:10px;min-height:46px}
.liyue-area-browser{padding:14px 0;border-top:1px solid #536259;margin-top:14px}
.liyue-area-browser>summary,.liyue-area-group>summary{cursor:pointer;min-height:44px;display:list-item;padding:10px 8px;font-weight:650}
.liyue-area-group{margin-top:6px}.liyue-browse-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:8px}
.liyue-browse-place{text-align:left;display:flex;flex-direction:column;gap:5px;min-height:62px;white-space:normal;word-break:keep-all;overflow-wrap:anywhere;padding:12px}
.liyue-browse-place small,.liyue-card-feature{font-size:.8rem;opacity:.87;line-height:1.5}.liyue-browse-place:focus-visible{outline:2px solid #e3c38a;outline-offset:2px}
@media(max-width:800px){.liyue-browse-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:480px) and (min-height:501px){.liyue-browse-grid{grid-template-columns:1fr}.liyue-local-guide{padding:14px}.liyue-local-guide button{width:100%;min-height:46px}}

/* v0.13.15: coordinate metadata, independent of geographic anchor layout. */
.liyue-coordinate-detail{display:grid;gap:5px;margin:12px 0;padding:12px 14px;border:1px solid #536259;border-radius:9px;background:#102b2e;overflow-wrap:anywhere}
.liyue-coordinate-detail strong{font-size:.87rem}.liyue-coordinate-value{font-size:.8rem;font-variant-numeric:tabular-nums;color:#edd69f}.liyue-coordinate-detail p{font-size:.81rem;line-height:1.6;margin:0}.liyue-coordinate-detail small{font-size:.72rem}

/* v0.13.24 compact combat command surface. */
.combat-effect-detail{line-height:1.7}.combat-effect-detail h2{margin:0 0 10px}.combat-effect-description{white-space:pre-line}.battle-command{scroll-margin-top:82px}.enemy-intel-panel{display:none!important}.enemy-skill-history{margin-top:10px}.impact.kind-action .impact-target{white-space:nowrap}
@media (max-width:600px) and (min-height:501px){.battle-card-choice{grid-template-columns:minmax(0,1fr) 48px}.battle-card-choice .battle-effect-button{padding:6px 4px}.combat-info-tools small{display:none}.combat-info-tools button{width:100%}}

@media(min-width:1200px){.location-places{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* v0.13.25 combat/shop readability fixes */
.enemy-info-button{white-space:nowrap;min-width:48px}.market-filter button{white-space:nowrap}.craft-output{display:flex;align-items:center;gap:10px;margin-bottom:8px}.craft-output .item-icon,.craft-output .item-glyph{width:46px;height:46px;flex:none}

/* v0.13.27 mission journal and affinity readability */
.journal-section{margin:26px 0 10px}
.journal-head{display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--line);padding-bottom:8px;margin-bottom:12px}
.journal-head h2{margin:0;font-size:1.15rem}
.journal-count{min-width:28px;padding:2px 9px;border-radius:999px;background:#1d3d47;color:var(--gold);font-size:.8rem;font-weight:700;text-align:center}
.journal-hint{margin:0 0 12px;font-size:.85rem}
.journal-note{display:block;margin:10px 0 0;color:var(--muted);font-size:.85rem}
.journal-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(330px,100%),1fr));gap:12px;align-items:start}
.journal-card{margin:0;display:flex;flex-direction:column;gap:8px}
.journal-card h3{margin:0;font-size:1rem;line-height:1.5;word-break:keep-all}
.journal-card-head{display:flex;justify-content:space-between;align-items:center;gap:8px}
.journal-kind{color:var(--gold);font-size:.78rem;letter-spacing:.04em}
.journal-status{flex:none;font-size:.75rem;padding:2px 9px;border-radius:999px;border:1px solid var(--line);color:var(--muted);white-space:nowrap}
.journal-card.status-ready{border-color:#4f8f84}
.journal-card.status-ready .journal-status{border-color:#4f9f8f;color:var(--green)}
.journal-card.status-locked .journal-status{color:#d7b0a8}
.journal-place{margin:0;color:#cde5df;font-size:.85rem}
.journal-chips{list-style:none;display:flex;flex-wrap:wrap;gap:6px;padding:0;margin:0}
.journal-chips li{font-size:.78rem;line-height:1.5;padding:3px 10px;border-radius:999px;background:#2b2023;border:1px solid #6b4640;word-break:keep-all}
.journal-actions{display:flex;flex-wrap:wrap;gap:8px}
.journal-actions button{margin:0}
.journal-more{margin:0}
.journal-more>summary{min-height:36px;font-size:.82rem;color:var(--muted);list-style:none}
.journal-more>summary::-webkit-details-marker{display:none}
.journal-more>summary::before{content:'▸';display:inline-block;width:16px;color:var(--gold);transition:transform .15s}
.journal-more[open]>summary::before{transform:rotate(90deg)}
.journal-why{flex-basis:100%;margin:2px 0 0}
.journal-banner{margin:18px 0 0;padding:10px 14px;border-radius:8px;border:1px solid #6b4640;background:#2b2023}
.journal-more .material-requirement{margin:6px 0 0;padding:8px 10px;border-radius:8px;background:#0f232a}
.journal-row{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#10252c;margin-bottom:8px}
.journal-row.status-ready{border-color:#4f8f84}
.journal-thumb{width:48px;height:48px;border-radius:50%;object-fit:cover;object-position:top;background:#081b23;display:grid;place-items:center;color:var(--gold)}
.journal-row-copy{display:flex;flex-direction:column;gap:2px;min-width:0}
.journal-row-copy strong{word-break:keep-all}
.journal-row-actions button{margin:0;min-height:40px;white-space:nowrap}
.journal-waiting{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:6px}
.journal-waiting p{margin:0}
.journal-waiting button{margin:0;min-height:40px}
.journal-done{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;padding:9px 2px;border-bottom:1px solid rgba(55,83,90,.55)}
.journal-done strong{word-break:keep-all}
.relationship-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 14px}
.relationship-toolbar p{margin:0 auto 0 0}
.relationship-toggles{display:flex;gap:8px}
.relationship-toolbar button{margin:0;min-height:40px;white-space:nowrap}
.relationship-score{margin:2px 0 6px;color:var(--muted);font-size:.9rem}
.relationship-card.status-ready{border-color:#4f8f84}
.relationship-missions{margin-top:12px;border-top:1px solid var(--line);padding-top:2px}
.relationship-missions>summary{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;min-height:54px;list-style:none;cursor:pointer}
.relationship-missions>summary::-webkit-details-marker{display:none}
.relationship-missions-title{font-weight:700}
.relationship-missions-title::before{content:'▸';display:inline-block;width:18px;color:var(--gold);transition:transform .15s}
.relationship-missions[open] .relationship-missions-title::before{transform:rotate(90deg)}
.relationship-next{padding-left:18px;color:var(--muted);font-size:.8rem;line-height:1.45}
.relationship-card.status-ready .relationship-next{color:var(--green)}
.relationship-stages{list-style:none;display:grid;gap:6px;padding:0;margin:6px 0 0}
.relationship-stages li{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 10px;min-height:44px;padding:6px 10px;border-radius:8px;background:#0f232a}
.relationship-stages .stage-name{white-space:nowrap;font-weight:600}
.relationship-stages li small{flex:1 1 120px;text-align:right;line-height:1.45}
.relationship-stages li.stage-done{opacity:.72}
.relationship-stages li button{flex:none;width:auto!important;min-height:38px;margin:0!important}
.relationship-activities h3{margin:14px 0 4px;font-size:.9rem;color:var(--muted)}
@media (max-width:640px) and (min-height:501px){.journal-row{grid-template-columns:40px minmax(0,1fr)}.journal-thumb{width:40px;height:40px}.journal-row-actions{grid-column:1/-1}.journal-row-actions button{width:100%}.relationship-toolbar p{flex-basis:100%}}

/* v0.13.30 gear screen, party removal notice, defeat penalty */
.gear-members{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(460px,100%),1fr));gap:14px;align-items:start}
.gear-member{margin:0;padding:16px;display:flex;flex-direction:column;gap:12px}
.gear-member-head{display:grid;grid-template-columns:64px minmax(0,1fr);gap:12px;align-items:center}
.gear-portrait{width:64px;height:64px;border-radius:12px;object-fit:cover;object-position:top;background:#081b23;display:grid;place-items:center;color:var(--gold)}
.gear-member-copy h2{margin:0;font-size:1.1rem}
.gear-member-copy .stat{font-size:.8rem;margin-top:4px}
.gear-member-copy .meter{height:6px;margin-top:2px}
.gear-slots{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.gear-cell{position:relative;min-width:0}
.gear-slot{width:100%!important;margin:0!important;min-height:112px;padding:8px 6px!important;display:flex!important;flex-direction:column;align-items:center;justify-content:flex-start;gap:4px;text-align:center!important;border:1px solid var(--line)!important;border-radius:10px!important;background:#0f232a!important}
.gear-slot:hover,.gear-slot:focus-visible{border-color:var(--gold)!important;background:#15313a!important}
.gear-slot .item-icon,.gear-slot .item-glyph{width:46px;height:46px;flex:none}
.gear-slot small{color:var(--gold);font-size:.72rem;letter-spacing:.04em}
.gear-slot strong{font-size:.8rem;line-height:1.35;word-break:keep-all;overflow-wrap:anywhere}
.gear-slot.empty strong{color:var(--muted);font-weight:400}
.gear-empty-mark{width:46px;height:46px;display:grid;place-items:center;border:1px dashed var(--line);border-radius:50%;color:var(--muted);font-size:1.3rem}
.gear-tip{display:none;position:absolute;z-index:20;left:0;top:calc(100% + 6px);width:min(300px,80vw);padding:12px 14px;border:1px solid var(--gold);border-radius:8px;background:#0b1d25;box-shadow:0 12px 30px #0009;font-size:.84rem;line-height:1.55;pointer-events:none;text-align:left}
.gear-tip strong{display:block;font-size:.95rem}
.gear-tip p{margin:6px 0 0}
.gear-tip-stats{color:var(--green)}
.gear-cell:hover>.gear-tip,.gear-cell:focus-within>.gear-tip{display:block}
.gear-slots .gear-cell:nth-child(n+3)>.gear-tip{left:auto;right:0}
.gear-stats{display:grid;grid-template-columns:repeat(4,auto minmax(0,1fr));gap:4px 10px;margin:0;font-size:.82rem}
.gear-stats dt{color:var(--muted)}
.gear-stats dd{margin:0;font-weight:600}
.gear-stats .stat-up{color:var(--green);font-weight:400;font-size:.76rem}
.gear-stats .stat-down{color:var(--red);font-weight:400;font-size:.76rem}
.gear-books{margin-top:18px}
.gear-books h2{font-size:1.05rem}
.gear-book{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:8px 0;border-bottom:1px solid rgba(55,83,90,.55)}
.gear-book button{margin:0;min-height:38px}
.gear-links{margin-top:14px}
.gear-picker{display:flex;flex-direction:column;gap:10px;min-width:min(520px,80vw)}
.gear-current{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--gold);border-radius:10px}
.gear-current>.gear-option-copy{flex:1}
.gear-current button{margin:0}
.gear-options{display:grid;gap:8px;max-height:60vh;overflow:auto;padding-right:4px}
.gear-option{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:#0f232a}
.gear-option.blocked{opacity:.75}
.gear-option .item-icon,.gear-option .item-glyph{width:44px;height:44px}
.gear-option-copy{display:flex;flex-direction:column;gap:2px;min-width:0}
.gear-option button{margin:0;min-height:40px;white-space:nowrap}
.gear-delta{color:var(--green)}
.gear-effect{display:none;color:var(--muted);line-height:1.45}
@media(hover:none){.gear-effect{display:block}}
.gear-options .gear-tip{top:auto;bottom:calc(100% + 4px)}
.gear-options .gear-cell:first-child>.gear-tip{top:calc(100% + 4px);bottom:auto}
.party-remove-confirm ul{margin:8px 0 14px;padding-left:1.2rem}
.party-remove-confirm .row button{margin:0 8px 0 0}
.formation-slot .member-select small{display:block;font-size:.72rem}
.revive-note{padding:10px 14px;border:1px solid #4f8f84;border-radius:8px;background:#10302d;color:var(--green)}
.defeat-card{border-color:#6b4640;background:#2b2023}
.defeat-penalty{color:#ffb4a8;font-weight:600}
.defeat-wait strong{color:var(--gold);font-variant-numeric:tabular-nums}
@media (max-width:640px) and (min-height:501px){.gear-slots{grid-template-columns:repeat(2,minmax(0,1fr))}.gear-stats{grid-template-columns:repeat(2,auto minmax(0,1fr))}.gear-tip{display:none!important}.gear-effect{display:block}.gear-picker{min-width:0}}
/* v0.13.32 story in progress, compact forge list */
.journal-card.status-active,.journal-row.status-active,.relationship-card.status-active{border-color:var(--gold)}
.journal-card.status-active .journal-status,.personal-objective .journal-status{border-color:var(--gold);color:var(--gold)}
.personal-objective .journal-status{display:inline-block;margin:4px 0 8px}
.relationship-card.status-active .relationship-next{color:var(--gold)}
.forge-filters{display:flex;flex-wrap:wrap;gap:6px 18px;margin:-8px 0 10px}
.forge-toggle{display:inline-flex;align-items:center;gap:6px;font-size:.85rem;color:var(--muted);cursor:pointer}
.forge-common,.forge-note{margin:0 0 10px}
.forge-note{font-size:.84rem;color:var(--muted)}
.forge-list{display:grid;gap:6px}
.forge-row{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:#0f232a}
.forge-row.worn{border-color:#4f8f84}
.forge-row .item-icon,.forge-row .item-glyph{width:44px;height:44px}
.forge-copy{display:flex;flex-direction:column;gap:2px;min-width:0}
.forge-copy strong{font-size:.92rem}
.forge-next{font-size:.8rem;color:var(--text)}
.forge-actions{display:flex;gap:6px}
.forge-actions button{margin:0;min-height:38px;white-space:nowrap}
.forge-blocked{margin-top:12px}
.forge-blocked ul{margin:6px 0 0;padding-left:1.2rem;font-size:.85rem;color:var(--muted)}
@media (max-width:640px) and (min-height:501px){.forge-row{grid-template-columns:40px minmax(0,1fr)}.forge-actions{grid-column:1/-1;justify-content:flex-end}}
/* v0.13.33 equipment traits, battle line, hazards */
.gear-traits{margin:6px 0 0;padding-left:1.1rem;color:var(--green)}
.gear-traits li{margin:2px 0}
.gear-traits li.innate{color:var(--muted)}
.gear-trait-chips{display:flex;flex-wrap:wrap;gap:5px;margin:0;padding:0;list-style:none}
.gear-trait-chips li{font-size:.74rem;padding:2px 8px;border-radius:999px;border:1px solid var(--line);color:var(--muted);cursor:help}
.gear-trait-chips li.trait-환경{border-color:#4f8f84;color:var(--green)}
.gear-trait-chips li.trait-공략{border-color:#9a7a4a;color:var(--gold)}
.gear-trait-chips li.trait-방어{border-color:#5f6f9a;color:#b8c4ee}
.gear-trait-line{color:var(--green)}
.formation-line{margin:0 0 16px}
.formation-order{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:6px}
.formation-row{display:grid;grid-template-columns:30px 44px minmax(0,1fr) auto;grid-template-rows:auto auto;column-gap:10px;align-items:center;padding:6px 10px;border:1px solid var(--line);border-radius:10px;background:#0f232a}
.formation-row.front{border-left:3px solid #c98b5b}
.formation-row.back{border-left:3px solid #5b8fc9}
.formation-row .formation-pos{grid-row:1/3;font-size:1.2rem;font-weight:700;color:var(--gold);text-align:center}
.formation-row .party-portrait{grid-row:1/3;width:44px;height:44px;border-radius:10px;object-fit:cover;object-position:top}
.formation-row strong{grid-column:3}
.formation-row small{grid-column:3}
.formation-moves{grid-column:4;grid-row:1/3;display:flex;gap:6px}
.formation-moves button{margin:0;min-width:40px;min-height:38px}
.battle-position{display:inline-block;align-self:flex-start;width:max-content;font-size:.72rem;padding:1px 7px;border-radius:999px;margin:2px 0}
.battle-position.front{background:#3a2a1f;color:#f0c79d}
.battle-position.back{background:#1f2c3a;color:#a9c8ef}
.battle-hazards{margin:10px 0;padding:10px 12px;border:1px solid #6b4640;border-radius:10px;background:#231a1c}
.battle-hazards h2{font-size:.95rem;margin:0 0 6px}
.battle-hazards .hazard{display:flex;flex-wrap:wrap;gap:4px 10px;margin:4px 0;font-size:.85rem}
.battle-hazards .hazard strong{color:#ffb4a8}
.battle-hazards .hazard.pending strong{color:var(--gold)}
@media (max-width:640px) and (min-height:501px){.formation-row{grid-template-columns:26px 36px minmax(0,1fr) auto}.formation-row .party-portrait{width:36px;height:36px}}
/* v0.13.40 enemy tiers, enemy line-up, forge purpose */
.enemy-tier{display:inline-block;align-self:flex-start;width:max-content;max-width:100%;font-size:.72rem;padding:1px 7px;border-radius:999px;margin:2px 0;cursor:help;background:#2a2433;color:#d9c8f5}
.enemy-tier.tier-2{background:#2b2a1d;color:#e8dc9a}
.enemy-tier.tier-4{background:#3a2420;color:#f3b39a}
.enemy-tier.tier-5{background:#4a1c22;color:#ffb0b8;font-weight:700}
.enemy-lineup{margin:10px 0;padding:10px 12px;border:1px solid #5a4a78;border-radius:10px;background:#1c1a26}
.enemy-lineup h2{font-size:.95rem;margin:0 0 6px}
.enemy-lineup .lineup-combo{display:flex;flex-wrap:wrap;gap:4px 10px;margin:4px 0;font-size:.85rem}
.enemy-lineup .lineup-combo strong{color:#d9c8f5}
.enemy-lineup .lineup-danger{margin:4px 0;font-size:.85rem;color:#ffb0b8;font-weight:700}
.craft-purpose{margin:4px 0 0;font-size:.85rem;color:var(--gold)}
.craft-traits{font-size:.82rem}
.craft-ready{margin-left:0}
/* v0.13.41 field bosses */
.field-boss-info{margin:12px 0;padding:12px 14px;border:1px solid #6b5a3a;border-radius:12px;background:#1f1c16}
.field-boss-info h2{font-size:1.05rem;margin:0 0 6px}
.field-boss-info h3{font-size:.92rem;margin:10px 0 4px}
.field-boss-drop{color:var(--gold);margin:4px 0}.field-boss-daily{margin:4px 0;font-weight:600}.field-boss-daily.short{color:var(--red)}
/* v0.14.4 shortages and ley lines */
.lack{color:var(--red)!important;font-weight:600}
.ley-line-card{padding:12px 14px}.ley-line-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.ley-line-head h2{margin:0}.ley-line-timer{color:var(--gold);font-variant-numeric:tabular-nums;font-size:.9em}
.ley-line-list{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:6px}.ley-line-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,.03)}
.ley-line-item.revelation{border-left:3px solid #62aaff}.ley-line-item.wealth{border-left:3px solid #f5c451}.ley-line-item.claimed{opacity:.6}.ley-line-item.here{box-shadow:0 0 0 1px var(--gold) inset}
.ley-line-copy{display:flex;flex-direction:column;min-width:0}.ley-line-copy small{color:var(--muted)}.ley-line-here{color:var(--gold);font-weight:600;white-space:nowrap}
.ley-line-info{margin:8px 0;padding:10px 12px;border:1px solid var(--line);border-radius:10px}.ley-line-info h2{margin:0 0 4px}.ley-line-reward{color:var(--gold);margin:4px 0}.ley-line-claimed{color:var(--red)}.material-challenge-reward{color:var(--gold)}
.ley-line-item button{width:auto;flex:0 0 auto;min-height:36px;padding:6px 12px;margin:0}.ley-line-more{margin-top:6px}.ley-line-tiers{display:grid;gap:6px;margin-top:8px}.ley-line-tier{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border:1px solid var(--line);border-radius:10px}.ley-line-tier.recommended{border-color:var(--gold)}.ley-line-tier.locked{opacity:.7}.ley-line-tier button{width:auto;flex:0 0 auto;min-height:38px;padding:6px 16px;margin:0}.ley-line-more summary{cursor:pointer;min-height:36px;line-height:36px;font-size:.85rem;color:var(--muted)}.terrain-more-routes{margin-top:8px}.terrain-more-routes summary{font-size:.8rem;min-height:40px;line-height:40px;cursor:pointer;color:#c8d3bf}.region-guide-summary{cursor:pointer;min-height:40px;display:list-item}.region-guide-summary strong{font-size:1rem}
@media (max-width:600px) and (min-height:501px){
 .player-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:12px;row-gap:2px;align-items:center}
 .player-card>.eyebrow,.player-card>.meter{grid-column:1/-1}.player-card>h2{margin:0;font-size:1rem}.player-card .stat{font-size:.84rem;margin:0}.player-card .xp-block .stat{font-size:.76rem}
 .terrain-navigation .terrain-destination{min-height:56px;padding:8px 10px}.terrain-card-copy small{margin-top:2px}.terrain-legend,.terrain-help{display:none}
 .ley-line-card{padding:10px 12px}.ley-line-help{font-size:.78rem;margin:4px 0}.ley-line-item{padding:6px 8px}
 .scene-panorama{height:180px}
}
.field-boss-immune{color:#ffb4a8;margin:4px 0}
.field-boss-gimmicks{margin:0;padding-left:1.1rem}
.field-boss-gimmicks li{margin:3px 0;font-size:.88rem}
.field-boss-gimmicks li.unknown{color:var(--muted)}
.field-boss-gimmicks li small{color:var(--green)}
.field-boss-traits{margin:8px 0 0;font-size:.86rem}
.field-boss-panel{margin:10px 0;padding:10px 12px;border:1px solid #7a5a3a;border-radius:10px;background:#221b14}
.field-boss-panel h2{font-size:.95rem;margin:0 0 6px}
.field-boss-panel .boss-telegraph{margin:4px 0;padding:6px 8px;border-radius:8px;background:#3a2a18;font-size:.88rem}
.field-boss-panel .boss-telegraph strong{color:#ffcf8a}
.field-boss-panel .boss-telegraph small{color:var(--green)}
.field-boss-panel .boss-state{margin:3px 0;font-size:.85rem}
.field-boss-panel details p{margin:3px 0;font-size:.82rem}.field-boss-uses{margin:4px 0;font-size:.86rem;color:var(--green)}
/* Bright title and account surfaces; in-game colors stay scoped to their own screens. */
body:has(.online-hub){background:#edf3ed;color:#253e43}
body:has(.online-hub) .world-backdrop{opacity:0}
body:has(.online-hub) #masthead{background:#f9fbf6;border-bottom:1px solid #d7e1d7}
body:has(.online-hub) .wordmark{color:#264a4e}
body:has(.online-hub) .wordmark b,body:has(.online-hub) .crest{color:#9a7137}
body:has(.online-hub) .chapter-label{color:#5c726e;border-color:#cad8d0}
body:has(.online-hub) #quick-actions button{background:transparent;border-color:#bccfc4;color:#345c59}
.online-hub{--text:#263e42;--muted:#586d68;--line:#cbd6c9;--gold:#8f652e;color-scheme:light;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(340px,.9fr);width:min(1180px,calc(100% - 64px));margin:40px auto 70px;border:1px solid #d2dccd;border-radius:24px;overflow:hidden;background:#fffdf6;box-shadow:0 22px 60px #31564916}
.hub-hero{position:relative;min-height:650px;isolation:isolate;overflow:hidden;background:#689c88}
.hub-landscape{position:absolute;width:100%;height:100%;inset:0;object-fit:cover;object-position:44% center;z-index:-2}
.hub-hero:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,#123d4200 20%,#193d4040 48%,#103b3ce8 100%)}
.hub-hero-copy{height:100%;display:flex;flex-direction:column;justify-content:flex-end;padding:48px;color:#fffef2}
.hub-mark{position:absolute;top:36px;left:40px;font-size:42px;color:#fff9d8;text-shadow:0 2px 16px #23607544}
.hub-hero .eyebrow{color:#ffedbb;letter-spacing:.18em;font-size:.8rem;margin-bottom:18px}
.online-hub h1{white-space:pre-line;font-size:clamp(2.2rem,3.7vw,3.4rem);font-weight:700;line-height:1.32;letter-spacing:-.04em;margin:0 0 20px;text-shadow:0 2px 14px #12383155;word-break:keep-all}
.hub-intro{white-space:pre-line;color:#f1f8e9;font-size:.98rem;line-height:1.85;margin:0;word-break:keep-all}
.hub-worlds{font-size:.8rem;letter-spacing:.12em;color:#e1e9d9;margin:30px 0 0;padding-top:20px;border-top:1px solid #f1f3d950}
.hub-card{padding:40px 38px 24px;display:flex;flex-direction:column;min-width:0;background:linear-gradient(140deg,#fffef9,#f7f6e9)}
.hub-card>.eyebrow{color:#8f652e;letter-spacing:.16em;font-size:.72rem;margin-bottom:10px}
.hub-card h2{font-size:1.6rem;font-weight:700;letter-spacing:-.035em;line-height:1.4;margin:0;color:#284a48;word-break:keep-all}
.hub-lead{font-size:.88rem;color:#61736c;margin:10px 0 24px}
.online-hub button,.account-form button{border:1px solid #bdccc0;background:#fffef8;color:#355954;border-radius:10px;min-height:48px;text-align:center;font-size:.9rem}
.online-hub button:hover,.account-form button:hover{background:#eaf1e5;border-color:#56816d}
.online-hub button.primary,.account-form button.primary{background:#2c6659;border-color:#2c6659;color:#fffdf1;box-shadow:0 5px 14px #2c665920}
.online-hub button.primary:hover,.account-form button.primary:hover{background:#215344;border-color:#215344}
.online-hub :is(button,input,select,summary):focus-visible,.account-form :is(button,input):focus-visible{outline:3px solid #367c72;outline-offset:3px}
.hub-account-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.hub-service-note,.account-service-note{font-size:.76rem;color:#775f3a;background:#f2ecd8;border:1px solid #e2d8ba;border-radius:8px;padding:10px 12px;line-height:1.6;margin:14px 0 0}
.hub-divider{display:flex;align-items:center;gap:12px;color:#768277;font-size:.75rem;margin:25px 0 15px;white-space:nowrap}
.hub-divider:before,.hub-divider:after{content:'';height:1px;background:#d7decd;flex:1}
.online-hub .hub-continue{width:100%;text-align:left;padding:12px 16px;background:#eaf1e6;border-color:#c9d8c5;color:#355a4f}
.online-hub .hub-continue:disabled{background:transparent;border:1px dashed #c7d2c0;opacity:1;color:#73816f;font-size:.8rem;text-align:center}
.hub-new{margin-top:12px}.hub-new summary{cursor:pointer;font-size:.9rem;font-weight:600;color:#47614e;padding:10px 2px;min-height:44px}
.hub-new[open] summary{border-bottom:1px solid #d9dfd1;margin-bottom:12px}
.online-hub .form-label,.account-form .form-label{display:block;color:#3e5a50;font-size:.8rem;font-weight:600;margin:12px 0}
.online-hub input,.online-hub select,.account-form input{display:block;width:100%;max-width:100%;box-sizing:border-box;margin-top:7px;min-height:46px;border:1px solid #bbcbbd;background:#fffef9;color:#283f38;border-radius:8px;padding:10px 12px;font-size:.9rem}
.online-hub input::placeholder,.account-form input::placeholder{color:#7b887b;font-size:.82rem}
.hub-new form>button{width:100%;margin-top:4px}.hub-save-note{display:block;color:#6e7a6c;font-size:.73rem;line-height:1.6;margin:12px 0 0}
.hub-footer{margin-top:auto;padding-top:24px;display:flex;flex-direction:column;align-items:center;gap:8px}.hub-footer button{min-height:40px;background:transparent!important;border:none!important;font-size:.8rem;color:#52745d;padding:6px 10px}.hub-footer>span{font-size:.67rem;color:#788270;letter-spacing:.02em}
#modal:has(.account-form){--text:#2e473e;--muted:#617267;--gold:#89622d;--line:#d1dcc9;color-scheme:light;background:#fffdf5;color:var(--text);border:1px solid #d4dabb;border-radius:20px;padding:30px;width:min(440px,calc(100vw - 24px));max-height:92dvh;box-shadow:0 24px 90px #102f3355}
#modal:has(.account-form)::backdrop{background:#173e4366;backdrop-filter:blur(7px)}
#modal:has(.account-form) h1{font-size:1.5rem;font-weight:700;color:#2e5147;margin:0 0 20px}
.account-banner{height:116px;border-radius:12px;overflow:hidden;position:relative;display:flex;align-items:flex-end;background:#477f78}.account-banner img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 38%}.account-banner:after{content:'';position:absolute;inset:30% 0 0;background:linear-gradient(transparent,#1b4845d6)}.account-banner span{position:relative;z-index:1;padding:14px 16px;color:#fffbe7;font-size:1rem;font-weight:600}
.account-intro{font-size:.84rem;color:#5a6e5e;line-height:1.8;margin:18px 0;word-break:keep-all}.account-form>button{width:100%;margin-top:10px}.account-form .account-switch{font-size:.8rem;border:0;background:transparent;padding:8px 0;box-shadow:none;color:#5c725c}.account-status{font-size:.82rem;color:#954a33;min-height:0}.account-status:empty{display:none}
#modal:has(.account-form) #modal-close{display:block;margin:8px auto 0;min-height:40px;border:0;color:#657662;background:transparent;font-size:.8rem}
.operator-tools .form-label,.abyss-list .form-label{display:block;margin:14px 0}.operator-tools input,.operator-tools select,.abyss-list select{display:block;width:100%;max-width:100%;box-sizing:border-box;margin-top:8px;min-height:44px}.operator-tools button,.abyss-list button{margin:6px 6px 6px 0}.ranking-table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}.ranking-table th,.ranking-table td{text-align:left;padding:10px 6px;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.abyss-list .card>small{display:block;margin-top:8px}
@media(max-width:900px){.online-hub{width:calc(100% - 32px);grid-template-columns:minmax(0,1fr) minmax(330px,1fr);margin-top:24px}.hub-hero-copy{padding:30px}.hub-card{padding:30px 24px 22px}.hub-hero{min-height:620px}.hub-intro{font-size:.88rem}.hub-mark{left:28px;top:24px}}
@media (max-width:680px) and (min-height:501px){.online-hub{display:block;width:calc(100% - 24px);margin:16px auto 58px!important;border-radius:18px}.hub-hero{min-height:0;height:280px}.hub-landscape{object-position:center 45%}.hub-hero-copy{padding:24px}.hub-mark{top:15px;left:auto;right:22px;font-size:30px}.hub-hero .eyebrow{font-size:.66rem;margin-bottom:10px}.online-hub h1{font-size:2rem;line-height:1.27;margin-bottom:10px}.hub-intro{font-size:.78rem;line-height:1.7}.hub-worlds{font-size:.64rem;padding:0;border:0;margin-top:14px}.hub-card{padding:26px 24px 22px}.hub-card h2{font-size:1.4rem}.hub-lead{margin-bottom:18px}.hub-footer{padding-top:18px}body:has(.online-hub) #masthead{height:64px;padding:0 20px}body:has(.online-hub) .chapter-label{display:none}body:has(.online-hub) .wordmark{font-size:1.15rem}body:has(.online-hub) .crest{font-size:1.8rem}#modal:has(.account-form){padding:22px;max-height:90dvh}}
@media (max-width:600px) and (min-height:501px){
 #root,main,.workspace,.combat-panel,.battle-command,.compact-teams,.compact-teams>section{min-width:0;max-width:100%;box-sizing:border-box}
 .compact-teams{grid-template-columns:minmax(0,1fr)!important;gap:14px}
 .combatant-row{display:grid;grid-template-columns:52px minmax(0,1fr) auto;align-items:center;gap:8px;min-height:88px;padding:9px}
 .combatant-row .combat-portrait{width:52px;height:64px;float:none;margin:0;grid-column:1;grid-row:1/3}
 .combatant-row .combatant-copy{grid-column:2;grid-row:1/3;min-width:0}
 .combatant-row .combatant-copy strong{font-size:.9rem;overflow-wrap:anywhere}
 .combatant-row>button{grid-column:3;width:auto;min-width:44px;min-height:44px;white-space:normal;margin:0;padding:6px}
 .battle-command .battle-cards{grid-template-columns:minmax(0,1fr);min-width:0}
 .battle-command button{min-width:0;overflow-wrap:anywhere;white-space:normal}
 .combat-playback{left:8px;right:8px;bottom:max(8px,env(safe-area-inset-bottom));width:auto;transform:none;max-height:38dvh;padding:10px;box-sizing:border-box}
 .combat-playback .playback-buttons{flex-wrap:wrap}.combat-playback .playback-buttons button{min-height:44px;flex:1}
 .av-running .combat-panel{padding-bottom:42dvh}.combat-speed{flex-wrap:wrap;gap:6px}.combat-speed input{min-width:60px}
 #modal{max-width:calc(100vw - 20px);width:calc(100vw - 20px);max-height:90dvh;box-sizing:border-box;padding:16px;overflow:auto}
 #modal-body{min-width:0;overflow-wrap:anywhere}#modal-body select,#modal-body input{max-width:100%;box-sizing:border-box}
 .online-hub{margin:12px 0}.online-hub .actions{display:grid;grid-template-columns:1fr 1fr}.online-hub .actions button{min-width:0;padding:10px}
}

/* v0.13.44 — a persistent title screen, separate from account authentication. */
body:has(.game-title){background:#bfdcce;color:#f9fcf7;overflow-x:hidden}
body:has(.game-title) #masthead,body:has(.game-title) .world-backdrop{display:none}
body:has(.game-title) #root{max-width:none;padding:0;margin:0}
body:has(.game-title) #notice:not(:empty){position:fixed;z-index:6;top:80px;left:50%;transform:translateX(-50%);width:min(650px,90vw);background:#fff9ed;color:#254c40;border:1px solid #c5d2b8;border-radius:12px;padding:14px 20px;box-shadow:0 8px 35px #183e4825}
.game-title{min-height:100svh;position:relative;isolation:isolate;display:flex;flex-direction:column;overflow:hidden;background:#699b84}
.title-landscape,.title-shade{position:absolute;inset:0;width:100%;height:100%;z-index:-2;object-fit:cover;object-position:50% 46%}
.title-shade{z-index:-1;background:linear-gradient(180deg,#07393640 0%,#23452d08 32%,#082f2830 58%,#062d38db 100%)}
.title-top{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:26px 36px;text-shadow:0 1px 8px #07382c80}
.title-edition{font-size:10px;letter-spacing:.23em;font-weight:600;color:#f4fbf4}
.title-account{display:flex;align-items:center;gap:10px;font-size:13px}
.title-account button,.title-footer button{background:#123e3833;color:#fffaf0;border:1px solid #ffffff60;padding:8px 15px;border-radius:999px;min-height:38px;font-size:12px;backdrop-filter:blur(8px)}
.title-account button:hover,.title-footer button:hover{background:#ffffff28;border-color:#fff}
.title-center{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:45px 24px 100px;text-shadow:0 2px 20px #173f3680}
.title-star{font-size:38px;line-height:1;color:#fff5c8;margin-bottom:14px}
.title-kicker{font-size:11px;letter-spacing:.35em;margin:0 0 10px;font-weight:600}
.title-logo{font-size:clamp(74px,12vw,136px);font-weight:800;line-height:1.2;letter-spacing:.08em;color:#fffef5;margin:0;text-shadow:0 3px 0 #60897580,0 10px 45px #103c4960}
.title-crpg{font-family:Georgia,serif;letter-spacing:.25em;font-size:25px;margin-top:8px;color:#fff5dc}
.title-tagline{font-size:15px;line-height:1.7;letter-spacing:.06em;margin:25px 0 46px;color:#fffdf5}
button.title-start{width:min(320px,80vw);min-height:63px;position:relative;display:block;background:linear-gradient(135deg,#fffbee,#e6efd7);color:#24483a;border:1px solid #fffdf5;border-radius:4px;font-size:21px;letter-spacing:.18em;font-weight:750;box-shadow:0 5px 26px #092f4a50,0 0 0 5px #ffffff1a;transition:transform .2s,box-shadow .2s}
button.title-start:before,button.title-start:after{content:'✦';position:absolute;top:50%;transform:translateY(-50%);font-size:12px;color:#738f6b}
button.title-start:before{left:24px}button.title-start:after{right:24px}
button.title-start:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 35px #092f4a65,0 0 0 6px #ffffff30}
.title-save-note{font-size:11px;color:#f1f8ebc9;margin:17px 0 0;letter-spacing:.06em}
.title-footer{display:flex;align-items:center;justify-content:center;gap:16px;padding:18px 24px 36px;color:#f2f6e9cb;font-size:12px}
.title-footer>span{margin-right:12px}.title-footer button{min-height:36px}
.new-journey-form{display:grid;gap:18px;padding:6px}.new-journey-form p{line-height:1.8;color:var(--muted)}
.new-journey-form input,.new-journey-form select{width:100%;min-height:48px;margin-top:8px}
@media (max-width:600px) and (min-height:501px){
 .title-top{padding:20px 18px;align-items:flex-start}.title-edition{max-width:95px;font-size:8px;line-height:1.8}.title-account{gap:6px;flex-wrap:wrap;justify-content:flex-end}.title-account>span{max-width:100px;overflow-wrap:anywhere}.title-account button{padding:7px 12px;font-size:11px}
 .title-center{padding:60px 20px 95px}.title-tagline{font-size:13px;margin:22px 0 38px}.title-kicker{font-size:9px;letter-spacing:.24em}.title-logo{font-size:89px}.title-footer{gap:10px;flex-wrap:wrap;padding:18px 20px 57px}.title-footer>span{width:100%;text-align:center;margin:0 0 2px}
 .title-landscape{object-position:57% 50%}
}
@media(prefers-reduced-motion:reduce){button.title-start{transition:none}}

.liyue-city-directory{margin:14px 0;padding:16px 18px;border-left:3px solid #c4ab75}
.liyue-city-directory h2{margin:4px 0 8px}.liyue-city-directory>p{max-width:78ch;line-height:1.6}
.liyue-district{padding:10px 0;border-top:1px solid #ffffff14}.liyue-district>strong{display:block}.liyue-district>p{margin:4px 0}
.liyue-district.here>strong{color:#e8cf95}.liyue-district button{margin-top:6px}
.liyue-district-places{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}
.liyue-place-chip{font-size:.85rem;padding:3px 9px;border:1px solid #6b5a3a;border-radius:999px;background:#1f1c16}
.liyue-place-chip.intro{border-color:#a48e5a}
.liyue-introductions{margin-top:16px}
@media (max-width:480px) and (min-height:501px){.liyue-city-directory{padding:14px}.liyue-district button{width:100%;min-height:46px}}.identity-geo .skill-key{color:#e8c56a}
.traveler-resonance{margin:14px 0;padding:16px 18px;border-left:3px solid #c4ab75}
.resonance-element{padding:10px 0;border-top:1px solid #ffffff14}.resonance-element>strong{display:block}.resonance-element.active>strong{color:#e8cf95}
.resonance-element.identity-anemo>strong{color:#80e6c5}.resonance-element.identity-geo>strong{color:#e8c56a}
@media (max-width:480px) and (min-height:501px){.traveler-resonance{padding:14px}.resonance-element button{width:100%;min-height:46px}}.geo-trail{margin:14px 0;padding:14px 18px;border-left:3px solid #c4ab75}.geo-trail>summary{cursor:pointer;font-weight:600;padding:4px 0}
.geo-trail-zone{padding:10px 0;border-top:1px solid #ffffff14}.geo-trail-zone h3{margin:6px 0}.geo-trail-zone.complete h3{color:#e8cf95}
.geo-trail-route{margin:6px 0 0;padding-left:22px}.geo-trail-stop{margin:8px 0}.geo-trail-stop.here>strong{color:#e8cf95}.geo-trail-stop button{margin-top:6px}
.geo-trail-point{margin:4px 0 0}.geo-trail-point small{display:block;overflow-wrap:anywhere}.geo-trail-point.done{opacity:.72}
@media (max-width:480px) and (min-height:501px){.geo-trail{padding:12px}.geo-trail-stop button{width:100%;min-height:46px}}

/* Keep timed-work feedback compact and leave only one active action notice. */
.pending-activity .travel-mark{font-size:26px;line-height:1}.action-pending #tutorial-tour{display:none}

/* v0.14.0 cooking hall */
.cook-hero{border:1px solid var(--line);border-left:4px solid var(--gold);background:linear-gradient(135deg,#17343c,#10262d);border-radius:8px;padding:16px 18px;margin:6px 0 16px}
.cook-hero h2{margin:0 0 6px;color:var(--gold)}.cook-hero p{margin:0 0 10px}
.cook-stats{display:flex;flex-wrap:wrap;gap:8px}.cook-stats span{border:1px solid var(--line);border-radius:999px;padding:3px 12px;font-size:.875rem;background:#0e232b}
.cook-tabs{margin-bottom:10px}.cook-effects{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 10px}
.cook-effects button{min-height:38px;padding:5px 12px;font-size:.85rem;border-radius:999px}.cook-effects button.selected{border-color:var(--gold);color:var(--gold);background:#1f3a3f}
.cook-ready{margin:4px 0 14px}
.cook-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(285px,1fr));gap:14px}
.cook-card{border:1px solid var(--line);background:linear-gradient(180deg,#143039,#0f242b);border-radius:9px;padding:14px;display:flex;flex-direction:column;gap:6px;position:relative}
.cook-card.ready{border-color:#6fb8a8;box-shadow:0 0 0 1px rgba(141,221,208,.18) inset}
.cook-card.locked{opacity:.78}.cook-card.locked .cook-head .item-icon{filter:grayscale(.65)}
.cook-card.focused-recipe{outline:3px solid var(--gold);outline-offset:3px}
.cook-head{display:flex;align-items:center;gap:10px}.cook-head .item-icon{width:52px;height:52px;margin:0;flex:0 0 auto;background:#0b1d23;border-radius:8px;padding:3px}
.cook-title{flex:1;min-width:0}.cook-title h3{margin:0;font-size:1.05rem;line-height:1.35}
.cook-stars{color:#e8c46e;font-size:.8rem;letter-spacing:1px}
.cook-badge{flex:0 0 auto;border-radius:999px;padding:2px 10px;font-size:.78rem;border:1px solid var(--line);color:var(--muted)}
.cook-badge.effect-heal{border-color:#6fb8a8;color:#9fe3d4}.cook-badge.effect-atk{border-color:#d88b70;color:#f0ad93}.cook-badge.effect-crit{border-color:#d07aa8;color:#f0a8cf}
.cook-badge.effect-def{border-color:#7f9fd6;color:#adc6f3}.cook-badge.effect-speed{border-color:#a8c46b;color:#cfe79a}.cook-badge.effect-resist{border-color:#b39ad8;color:#d5c3f3}.cook-badge.effect-process{border-color:#8a9a9a}
.cook-desc{margin:0;font-size:.86rem;color:var(--muted);line-height:1.55}
.cook-effect{margin:0;font-weight:600;color:#e8dcc0}
.cook-chips{display:flex;flex-wrap:wrap;gap:6px;margin:2px 0}
.cook-chip{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line);border-radius:999px;padding:2px 10px 2px 4px;font-size:.82rem;background:#0d2027}
.cook-chip.ok{border-color:#4f8f80}.cook-chip.short{border-color:#a8665a;background:#2a1a1a}
.cook-chip-icon{width:22px;height:22px;object-fit:contain}.cook-chip-count{color:var(--muted);font-variant-numeric:tabular-nums}.cook-chip.short .cook-chip-count{color:var(--red)}
.cook-where{border-top:1px dashed var(--line);padding-top:6px}.cook-where p{margin:2px 0;font-size:.8rem;color:var(--muted)}.cook-where p::before{content:'⌖ ';color:var(--gold)}
.cook-lock{margin:2px 0;font-size:.86rem;color:var(--gold)}.cook-lock::before{content:'🔒 '}
.cook-foot{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:auto;padding-top:6px}.cook-foot small{flex:1 1 100%}
.cook-foot button{margin:0;flex:1 1 auto;min-height:44px;text-align:center}
@media (max-width:480px) and (min-height:501px){.cook-grid{grid-template-columns:1fr}.cook-hero{padding:12px}.cook-card{padding:12px}}
/* v0.14.0 field scenes */
.field-scene-card .scene-steps{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:10px 0 6px;padding:0;counter-reset:scene}
.field-scene-card .scene-steps li{counter-increment:scene;border:1px solid var(--line);border-radius:999px;padding:3px 12px;font-size:.8rem;color:var(--muted);background:#0e232b}
.field-scene-card .scene-steps li::before{content:counter(scene) '. '}
.field-scene-card .scene-steps li.done{border-color:#4f8f80;color:#9fe3d4}.field-scene-card .scene-steps li.done::before{content:'✓ '}
.field-scene-card .scene-steps li.current{border-color:var(--gold);color:var(--gold);font-weight:600}
.scene-goal{margin:4px 0 8px;font-size:.86rem;color:var(--gold)}.scene-goal::before{content:'✦ '}
.scene-goal.missed{color:var(--muted)}.scene-goal.missed::before{content:'✗ ';color:var(--red)}
.scene-step{border:1px solid var(--line);border-left:4px solid var(--gold);border-radius:8px;padding:12px 14px;margin:8px 0;background:linear-gradient(135deg,#17343c,#10262d)}
.scene-step h4{margin:0 0 6px;color:var(--gold);font-size:1rem}
.scene-step .story{margin:0 0 8px;line-height:1.7}
.scene-paimon{margin:6px 0;padding:8px 12px;border-radius:8px;background:rgba(227,195,138,.08);border:1px solid rgba(227,195,138,.25);line-height:1.6}
.scene-paimon strong{color:var(--gold);margin-right:8px;font-size:.85rem}
.scene-options{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.scene-options .scene-option{margin:0;text-align:left;min-height:46px;padding:10px 14px 10px 38px;position:relative;line-height:1.5;white-space:normal}
.scene-options .scene-option::before{content:'💬';position:absolute;left:12px;top:50%;transform:translateY(-50%);font-size:.95rem}
.scene-options .scene-option.battle::before{content:'⚔'}
.scene-options .scene-option.tried{opacity:.55;text-decoration:line-through}
.scene-log{margin:10px 0 2px;border-top:1px dashed var(--line);padding-top:6px}
.scene-log summary{cursor:pointer;color:var(--muted);font-size:.86rem;min-height:32px;display:flex;align-items:center}
.scene-log-row{border-left:3px solid #4f8f80;padding:4px 0 4px 10px;margin:8px 0}.scene-log-row.miss{border-left-color:#a8665a}
.scene-log-row strong{font-size:.86rem}.scene-log-row p{margin:3px 0;font-size:.84rem;line-height:1.6;color:var(--muted)}
.scene-say{color:var(--text)!important;font-weight:600}
.scene-chips{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 2px}
.scene-chip{border:1px solid var(--line);border-radius:999px;padding:2px 10px;font-size:.8rem;background:#0d2027}
.scene-chip.loss{border-color:#a8665a;color:var(--red);background:#2a1a1a}.scene-chip.time{color:var(--muted)}
.scene-result .story{line-height:1.75}
.scene-result .scene-say{font-size:1rem;margin:0 0 8px}
.scene-verdict{font-weight:600;margin:10px 0 4px}.scene-result.ok .scene-verdict{color:var(--green)}.scene-result.pass .scene-verdict{color:var(--gold)}.scene-result.miss .scene-verdict{color:var(--red)}
.scene-next{margin:10px 0 0;color:var(--gold)}.scene-next::before{content:'▶ '}
.scene-finale{margin-top:12px;border-top:1px solid var(--line);padding-top:10px}.scene-finale h3{margin:0 0 6px;color:var(--gold)}
.scene-summary{color:var(--muted);font-size:.88rem}.scene-bonus{color:var(--green);font-weight:600}.scene-penalty{color:var(--red)}
@media (max-width:480px) and (min-height:501px){.scene-step{padding:10px}.scene-options .scene-option{padding-left:34px}}
/* 0.14.1: details stay inside the viewport, above scrolling gear dialogs. */
.gear-tip[popover]{position:fixed;inset:auto;margin:0;width:min(350px,calc(100vw - 20px));max-height:min(70vh,580px);overflow:auto;z-index:10000;pointer-events:auto}
.gear-tip[popover]:not(:popover-open){display:none!important}
.gear-tip[popover]:popover-open{display:block;visibility:visible;opacity:1;transform:none}
.book-batch{display:grid;gap:12px}.book-batch label{display:flex;align-items:center;gap:12px}.book-batch input{width:100px;min-height:42px}
.battle-retreat{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:12px}.battle-retreat p{flex:1 1 180px;margin:0}
.battle-target-warning{padding:10px 12px;border-left:3px solid var(--gold,#d5b77d);white-space:normal;overflow-wrap:anywhere}
.learning-guide{position:static;padding:14px 18px;margin-bottom:14px;border:1px solid #9d875b;border-radius:12px;background:var(--panel,#142d2d);width:100%;box-sizing:border-box}.learning-guide h2{font-size:1.05rem;margin:5px 0}.learning-guide p{font-size:.9rem;line-height:1.6;margin:6px 0}.learning-guide-heading{display:flex;justify-content:space-between;align-items:center;gap:10px}.learning-guide-heading button{padding:6px 10px;min-height:36px}.learning-checklist{margin-top:8px}.learning-checklist .done{opacity:.6}.tutorial-target{outline:2px solid #d5b77d;outline-offset:3px}
@media (max-width:600px) and (min-height:501px){.learning-guide{padding:10px 12px}.learning-guide p{font-size:.85rem}.battle-retreat button{width:100%}.book-batch .row{flex-wrap:wrap}}

/* v0.14.3 next-chapter offer and companion join notice */
.next-chapter{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;border:1px solid var(--line);border-radius:7px;padding:12px 14px;margin:10px 0;background:#122a32}.next-chapter strong{color:var(--gold);flex:1 1 auto;min-width:0}.next-chapter small{flex-basis:100%}.next-chapter button{margin:0}
.join-notice{display:flex;gap:14px;align-items:center;border:1px solid #d8b76e66;border-radius:7px;padding:12px;margin:0 0 12px;background:#1a2f36}.join-notice .party-portrait,.join-notice .portrait-placeholder{width:72px;height:72px;flex:0 0 72px;border-radius:50%;object-fit:cover}.join-notice h2{margin:0 0 4px;color:#f0d294}.join-notice p{margin:2px 0}
/* v0.14.3 Spiral Abyss chambers, rest break and floor mark */
.abyss-floor summary{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 12px;cursor:pointer;min-height:36px;align-items:center}.abyss-floor summary strong{color:var(--gold)}.abyss-badges{color:var(--muted);font-size:.85rem}
.abyss-rooms{margin:8px 0;padding-left:20px}.abyss-rooms li{margin:8px 0}.abyss-rooms li.current strong{color:var(--gold)}.abyss-rooms p{margin:4px 0;line-height:1.55;overflow-wrap:anywhere}
.abyss-reward{border-left:3px solid var(--gold);padding-left:10px;overflow-wrap:anywhere}.abyss-hint{border-left:3px solid var(--line);padding-left:10px;line-height:1.55;overflow-wrap:anywhere}
.abyss-break{border-color:var(--gold)}.abyss-party{display:grid;gap:10px;margin:12px 0}.abyss-member{display:grid;grid-template-columns:1fr auto;gap:4px 10px;align-items:center;border:1px solid var(--line);border-radius:7px;padding:10px 12px}.abyss-member.down{opacity:.6}.abyss-member .form-label,.abyss-member button,.abyss-member small,.abyss-hp{grid-column:1/-1}.abyss-member .form-label{margin:6px 0 0}
.abyss-hp{height:6px;border-radius:3px;background:#ffffff1a;overflow:hidden}.abyss-hp::before{content:'';display:block;height:100%;width:calc(var(--hp,1)*100%);background:linear-gradient(90deg,#6fbf73,#b8d86b)}.abyss-buffs{color:var(--gold)}
.abyss-result{border-color:var(--gold);margin:12px 0}
/* v0.14.4 item tiers: 일반 white, 상급 green, 희귀 blue, 영웅 purple, 전설 gold */
.tier-1{--tier:#ece6d8}.tier-2{--tier:#72d27f}.tier-3{--tier:#62aaff}.tier-4{--tier:#bb8bff}.tier-5{--tier:#f5c451}
.tier-text{color:var(--tier)}.tier-badge{font-size:.85rem;margin:2px 0 6px;font-weight:600}
.bag-item.tier-2,.bag-item.tier-3,.bag-item.tier-4,.bag-item.tier-5,.gear-slot.tier-2,.gear-slot.tier-3,.gear-slot.tier-4,.gear-slot.tier-5{box-shadow:inset 0 -3px 0 var(--tier)}
.loot-item.tier-3,.loot-item.tier-4,.loot-item.tier-5{border-color:var(--tier)}
.item-detail-fields dd{white-space:pre-line}
/* v0.14.4 formations */
.formation-options{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px;margin-top:10px}
.formation-option{display:grid;gap:4px;text-align:left;padding:12px;border:1px solid var(--line);border-radius:8px;min-height:44px}
.formation-option strong{color:var(--gold)}.formation-option.selected{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold) inset}
.formation-motto{color:var(--muted)}.formation-effect{font-size:.92rem;line-height:1.45}.formation-synergy{color:var(--muted);line-height:1.4}.formation-synergy.on{color:#72d27f}
.role-effect{display:block;color:var(--muted);margin-top:4px;line-height:1.4}.battle-formation{display:inline-block;margin-top:2px;color:var(--muted)}.battle-formation.synergy{color:#72d27f}
@media (max-width:600px) and (min-height:501px){.formation-options{grid-template-columns:1fr 1fr}.formation-option{padding:10px}}
/* v0.14.5: compact formation row under the party */
.formation-choice{padding:12px 14px}.formation-choice h2{margin:0 0 2px}.formation-help{margin:0 0 6px;font-size:.85rem}@media(min-width:1000px){.formation-options{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.formation-option{padding:8px 10px;gap:2px}.formation-effect{font-size:.82rem}.formation-synergy{font-size:.74rem}}
/* v0.14.4 공명 각성: a short translucent band with the character's motion art; never blocks input */
.resonance-cue{position:fixed;left:0;right:0;top:24vh;height:clamp(120px,24vh,220px);z-index:60;pointer-events:none;display:flex;align-items:center;overflow:hidden;background:linear-gradient(90deg,rgba(7,20,27,0) 0%,rgba(7,20,27,.8) 16%,rgba(7,20,27,.8) 84%,rgba(7,20,27,0) 100%);border-top:1px solid rgba(228,195,127,.5);border-bottom:1px solid rgba(228,195,127,.5);animation:resonance-in var(--resonance-ms,1.5s) ease-out forwards}
.resonance-art{position:absolute;right:3%;top:0;bottom:0;width:min(62%,560px);background-size:cover;background-position:center 28%;-webkit-mask-image:linear-gradient(90deg,transparent,#000 24%,#000 80%,transparent);mask-image:linear-gradient(90deg,transparent,#000 24%,#000 80%,transparent);opacity:.95}
.resonance-text{position:relative;margin-left:max(16px,7vw);display:flex;flex-direction:column;gap:2px;text-shadow:0 2px 10px #000}.resonance-text small{color:var(--gold);letter-spacing:.24em;font-size:.78rem;font-weight:700}.resonance-text strong{font-size:clamp(1.3rem,3.2vw,2.1rem);line-height:1.2}.resonance-text span{color:#d9e7de;font-size:.95rem}
@keyframes resonance-in{0%{opacity:0;transform:translateX(5%)}14%{opacity:1;transform:translateX(0)}80%{opacity:1;transform:translateX(0)}100%{opacity:0;transform:translateX(-2%)}}
.resonance-cue.still,.reduce-motion .resonance-cue{animation:resonance-fade var(--resonance-ms,1.5s) linear forwards}@keyframes resonance-fade{0%{opacity:0}12%{opacity:1}82%{opacity:1}100%{opacity:0}}
.skill-rhythm{display:block;color:var(--muted);font-size:.78rem;margin-top:2px}
@media (max-width:600px) and (min-height:501px){.resonance-cue{top:18vh;height:120px}.resonance-art{width:70%}.resonance-text strong{font-size:1.25rem}}
/* v0.14.4 desktop: stage and commands side by side; a shorter scene so the location starts on the first screen */
.combat-duo{display:flex;flex-direction:column}.combat-duo>.battle-command{order:-1}
@media(min-width:1180px){.combat-duo{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,360px);gap:18px;align-items:start}.combat-duo>.battle-command{order:0;position:sticky;top:10px;max-height:calc(100vh - 20px);overflow:auto}.combat-duo>.battle-command .battle-cards{flex-wrap:wrap}.combat-duo .combatant-row{flex-wrap:wrap}.combat-duo .combatant-copy{flex:1 1 110px;min-width:0}.combat-duo .combatant-row>button{min-width:0;padding:6px 8px;font-size:.84rem}.scene-panorama{height:250px}}
