:root {
  --bg:#07090e; --panel:rgba(12,16,24,.92); --soft-panel:rgba(255,255,255,.035);
  --line:rgba(222,230,238,.15); --strong-line:rgba(222,230,238,.3);
  --text:#f3f0e7; --soft:rgba(235,239,242,.65); --faint:rgba(235,239,242,.38);
  --gold:#e5c680; --bright:#ffe5aa; --cyan:#69d3cf; --pink:#dc86af;
  --top:52px; --bottom:44px; --rail:84px; --card:36vw;
  font-family:"Noto Serif SC","Songti SC",serif; color:var(--text); background:var(--bg);
}
*{box-sizing:border-box} html,body{width:100%;height:100%;margin:0;overflow:hidden;background:var(--bg)}
button,input{font:inherit;color:inherit} button{cursor:pointer} button:focus-visible,input:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
#app{position:fixed;inset:0;overflow:hidden;isolation:isolate;background:radial-gradient(circle at 54% 40%,#18212c 0,#0a0e15 40%,#06080d 76%)}
.backdrop{position:absolute;inset:0;z-index:-1;overflow:hidden;background-image:radial-gradient(circle,rgba(255,255,255,.35) 0 1px,transparent 1.4px);background-size:89px 89px;opacity:.5}
.backdrop i{position:absolute;width:70vw;aspect-ratio:1;border:1px solid rgba(105,211,207,.1);border-radius:50%;right:-22vw;top:-48vw;transform:rotate(-15deg)}
.backdrop i:nth-child(2){width:48vw;right:-7vw;top:-30vw;border-color:rgba(229,198,128,.12)}
.backdrop i:nth-child(3){width:1px;height:100vh;right:28%;top:0;border:0;background:linear-gradient(transparent,rgba(105,211,207,.2),transparent);transform:rotate(26deg)}
.topbar{position:absolute;z-index:20;left:0;right:0;top:0;height:calc(var(--top) + env(safe-area-inset-top));padding:env(safe-area-inset-top) max(8px,env(safe-area-inset-right)) 0 max(8px,env(safe-area-inset-left));display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--line);background:rgba(5,7,11,.91);backdrop-filter:blur(15px)}
.icon-btn{width:44px;height:44px;display:grid;place-items:center;flex:none;border:0;background:transparent}.icon-btn svg{width:19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.brand{min-width:132px;padding-right:14px;border-right:1px solid var(--line)}.brand small{display:block;color:var(--faint);font:400 7px "DM Mono",monospace;letter-spacing:.13em}.brand strong{display:block;margin-top:2px;font-size:13px;letter-spacing:.09em;font-weight:500}
.resource-bar{display:flex;gap:3px}.resource-bar button{min-height:44px;padding:0 8px;display:flex;align-items:center;gap:6px;border:1px solid transparent;border-radius:7px;background:transparent}.resource-bar button:hover{background:var(--soft-panel);border-color:var(--line)}.resource-bar span{font-size:9px;color:var(--soft)}.resource-bar b{font:500 12px "DM Mono",monospace}.item{display:inline-block;width:12px;height:12px;color:var(--cyan);background:currentColor;box-shadow:0 0 9px currentColor;transform:rotate(45deg)}.item.stone{clip-path:polygon(50% 0,100% 36%,78% 100%,22% 100%,0 36%)}.item.echo{color:#c997d2;background:transparent;border:1px solid currentColor;border-radius:50% 50% 16% 50%}.item.invite{color:var(--gold);clip-path:polygon(0 12%,100% 12%,100% 88%,0 88%)}.item.anchor{color:#a9c5ff;clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}
.top-spacer{flex:1}.slot-state{padding:0 8px;border-left:1px solid var(--line);white-space:nowrap}.slot-state span{font-size:8px;color:var(--faint)}.slot-state b,.slot-state em{font:500 11px "DM Mono",monospace}.slot-state b{margin-left:5px;color:var(--gold)}.slot-state em{font-style:normal;color:var(--faint)}
.character-rail{position:absolute;z-index:8;left:0;top:calc(var(--top) + env(safe-area-inset-top));bottom:calc(var(--bottom) + env(safe-area-inset-bottom));width:calc(var(--rail) + env(safe-area-inset-left));padding:12px 8px 8px max(8px,env(safe-area-inset-left));display:flex;flex-direction:column;align-items:center;border-right:1px solid var(--line);background:rgba(5,8,12,.78)}
.rail-title{width:100%;margin-bottom:9px;color:var(--faint);font:500 7px/1.45 "DM Mono",monospace;letter-spacing:.13em;text-align:center}.character-list{width:100%;flex:1;min-height:0;display:grid;gap:7px;overflow-y:auto;scrollbar-width:none}.character-list::-webkit-scrollbar{display:none}.portrait-tab{position:relative;width:100%;height:61px;padding:3px;border:1px solid transparent;border-radius:8px;background:transparent;overflow:hidden}.portrait-tab img{width:100%;height:100%;object-fit:cover;object-position:center 18%;filter:saturate(.62) brightness(.67)}.portrait-tab.active{border-color:var(--gold);box-shadow:0 0 18px rgba(229,198,128,.14)}.portrait-tab.active img{filter:saturate(.9) brightness(.95)}.portrait-tab span{position:absolute;left:4px;right:4px;bottom:3px;padding:7px 2px 2px;background:linear-gradient(transparent,rgba(0,0,0,.86));font-size:9px;text-align:center}.portrait-tab i{position:absolute;right:4px;top:4px;width:6px;height:6px;border-radius:50%;background:var(--gold);box-shadow:0 0 8px var(--gold)}.rail-all{margin-top:auto;width:100%;min-height:36px;border:0;border-top:1px solid var(--line);background:transparent;color:var(--soft);font-size:9px}
.character-card{position:absolute;z-index:3;left:calc(var(--rail) + env(safe-area-inset-left));top:calc(var(--top) + env(safe-area-inset-top));bottom:calc(var(--bottom) + env(safe-area-inset-bottom));width:var(--card);min-width:270px;max-width:520px;overflow:hidden;border-right:1px solid var(--line);background:#11151c}.character-card>img{position:absolute;inset:-7% 0 0;width:100%;height:114%;object-fit:cover;object-position:center 16%;filter:saturate(.77) contrast(1.04) brightness(.83);transition:opacity .25s}.card-shade{position:absolute;inset:0;background:linear-gradient(0deg,rgba(4,6,10,.97),rgba(4,6,10,.12) 54%,rgba(4,6,10,.2)),linear-gradient(90deg,rgba(5,8,12,.35),transparent 40%,rgba(5,8,12,.14))}.card-frame{position:absolute;z-index:4;inset:10px;pointer-events:none}.card-frame span{position:absolute;width:22px;height:22px;border-color:rgba(229,198,128,.5);border-style:solid}.card-frame span:nth-child(1){left:0;top:0;border-width:1px 0 0 1px}.card-frame span:nth-child(2){right:0;top:0;border-width:1px 1px 0 0}.card-frame span:nth-child(3){right:0;bottom:0;border-width:0 1px 1px 0}.card-frame span:nth-child(4){left:0;bottom:0;border-width:0 0 1px 1px}.world-mark{position:absolute;z-index:5;left:20px;top:18px;padding:4px 8px;border:1px solid rgba(229,198,128,.35);background:rgba(4,7,10,.45);color:var(--bright);font-size:8px;letter-spacing:.16em}.card-identity{position:absolute;z-index:5;left:22px;right:18px;bottom:18px}.card-identity small{color:var(--gold);font-size:9px;letter-spacing:.16em}.card-identity h1{margin:4px 0 3px;font-size:clamp(28px,3.7vw,48px);line-height:1.1;font-weight:500;letter-spacing:.14em;text-shadow:0 2px 18px #000}.card-identity p{margin:0;color:var(--soft);font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.primary-resonance{position:absolute;z-index:6;right:15px;top:16px;min-height:36px;padding:0 9px;display:flex;align-items:center;gap:6px;border:1px solid rgba(229,198,128,.32);border-radius:999px;background:rgba(6,9,13,.68);font-size:8px}.primary-resonance i{width:5px;height:5px;border-radius:50%;background:var(--gold);box-shadow:0 0 8px var(--gold)}
.development-panel{position:absolute;z-index:5;left:calc(var(--rail) + env(safe-area-inset-left) + var(--card));right:0;top:calc(var(--top) + env(safe-area-inset-top));bottom:calc(var(--bottom) + env(safe-area-inset-bottom));min-width:0;display:flex;flex-direction:column;background:linear-gradient(100deg,rgba(8,12,18,.84),rgba(6,9,14,.97))}.section-tabs{height:47px;padding:0 16px;display:flex;gap:5px;border-bottom:1px solid var(--line)}.section-tabs button{position:relative;min-width:62px;min-height:44px;border:0;background:transparent;color:var(--faint);font-size:10px}.section-tabs button.active{color:var(--bright)}.section-tabs button.active::after{content:"";position:absolute;left:17px;right:17px;bottom:-1px;height:2px;background:var(--gold);box-shadow:0 0 9px var(--gold)}.tab-content{flex:1;min-height:0;padding:14px clamp(14px,2.4vw,30px);overflow:auto;scrollbar-width:thin;scrollbar-color:var(--line) transparent}
.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.eyebrow{color:var(--gold);font:500 8px "DM Mono",monospace;letter-spacing:.22em}.page-head h2{margin:5px 0 0;font-size:clamp(21px,2.7vw,31px);font-weight:500;letter-spacing:.06em}.status-badge{padding:5px 8px;border:1px solid var(--line);border-radius:999px;color:var(--soft);font-size:8px;white-space:nowrap}.status-badge.ready{border-color:rgba(105,211,207,.4);color:var(--cyan)}
.level-block{margin-top:9px}.level-row{display:flex;align-items:flex-end;gap:8px}.level-row span{color:var(--soft);font-size:9px}.level-row strong{font:500 27px/1 "DM Mono",monospace}.level-row em{font:400 10px "DM Mono",monospace;font-style:normal;color:var(--faint)}.level-row small{margin-left:auto;color:var(--gold);font-size:8px}.level-track{position:relative;height:6px;margin-top:8px;background:rgba(255,255,255,.08)}.level-track>i{display:block;height:100%;background:linear-gradient(90deg,var(--cyan),var(--gold));box-shadow:0 0 13px rgba(105,211,207,.35);transition:width .65s ease}.level-track .mark{position:absolute;top:50%;width:9px;height:9px;transform:translate(-50%,-50%);border:1px solid rgba(255,255,255,.28);border-radius:50%;background:#101722}.level-track .mark.done{border-color:var(--gold);background:var(--gold);box-shadow:0 0 8px rgba(229,198,128,.7)}.level-track .mark.next{width:12px;height:12px;border-color:var(--cyan);box-shadow:0 0 9px var(--cyan)}
.growth-grid{display:grid;grid-template-columns:1fr .92fr;gap:9px;margin-top:10px}.state-card,.next-card,.content-card{border:1px solid var(--line);border-radius:10px;background:var(--soft-panel)}.state-card,.next-card{min-height:78px;padding:10px 12px}.card-label{color:var(--faint);font-size:8px}.state-card strong,.next-card strong{display:block;margin-top:4px;font-size:13px;font-weight:500}.state-card p,.next-card p{margin:4px 0 0;color:var(--soft);font-size:9px;line-height:1.5}.material-line{display:flex;align-items:center;gap:6px;margin-top:7px}.material-line span{font-size:8px;color:var(--soft)}.material-line b{font:500 9px "DM Mono",monospace}.material-line .item{width:9px;height:9px}.growth-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:10px}.plain-button,.gold-button{min-height:44px;padding:0 16px;border-radius:8px;font-size:10px;letter-spacing:.05em}.plain-button{border:1px solid var(--line);background:rgba(255,255,255,.03)}.gold-button{min-width:150px;border:1px solid rgba(229,198,128,.55);background:linear-gradient(100deg,rgba(229,198,128,.27),rgba(229,198,128,.1));color:#fff1d0}.gold-button:disabled{opacity:.4;cursor:not-allowed}.micro-log{margin-top:8px;padding-top:7px;border-top:1px solid var(--line);color:var(--faint);font-size:8px}.micro-log b{color:var(--cyan);font-weight:500}
.stage-list,.archive-list,.visit-list,.life-list{display:grid;gap:7px;margin-top:11px}.stage-row,.archive-row,.visit-row,.life-row{min-height:58px;padding:8px 10px;display:grid;grid-template-columns:38px 1fr auto;gap:10px;align-items:center;border:1px solid var(--line);border-radius:9px;background:var(--soft-panel)}.stage-num,.archive-icon,.visit-icon,.life-num{width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;color:var(--faint);font:500 9px "DM Mono",monospace}.stage-row.done .stage-num,.life-row.done .life-num{border-color:var(--gold);color:var(--gold)}.stage-row.current,.life-row.current{border-color:rgba(105,211,207,.38);background:rgba(105,211,207,.06)}.stage-row.current .stage-num,.life-row.current .life-num{border-color:var(--cyan);color:var(--cyan);box-shadow:0 0 13px rgba(105,211,207,.16)}.row-copy strong,.row-copy small{display:block}.row-copy strong{font-size:11px;font-weight:500}.row-copy small{margin-top:3px;color:var(--soft);font-size:8px}.row-state{color:var(--faint);font-size:8px}.row-state.done{color:var(--gold)}.row-button{min-height:38px;padding:0 10px;border:1px solid var(--line);border-radius:7px;background:rgba(255,255,255,.03);font-size:9px}.locked-copy{color:var(--faint)}
.life-summary{margin-top:9px;padding:9px 11px;display:flex;align-items:center;gap:10px;border:1px solid rgba(229,198,128,.25);background:rgba(229,198,128,.06)}.life-summary strong{font-size:11px;font-weight:500}.life-summary span{color:var(--soft);font-size:9px}.life-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:8px}.life-action{min-height:54px;padding:8px;text-align:left;border:1px solid var(--line);border-radius:8px;background:var(--soft-panel)}.life-action strong,.life-action small{display:block}.life-action strong{font-size:10px;font-weight:500}.life-action small{margin-top:3px;color:var(--soft);font-size:8px}
.reward-preview{margin-top:8px;padding:7px 8px;display:grid;grid-template-columns:auto repeat(4,minmax(0,1fr));align-items:stretch;gap:5px;border:1px solid rgba(229,198,128,.2);border-radius:9px;background:linear-gradient(90deg,rgba(229,198,128,.07),rgba(255,255,255,.02))}.reward-preview>span{align-self:center;max-width:58px;color:var(--gold);font-size:8px;line-height:1.45}.reward-preview button{min-width:0;min-height:38px;padding:5px 7px;display:flex;align-items:center;gap:6px;text-align:left;border:1px solid var(--line);border-radius:6px;background:rgba(5,8,13,.46)}.reward-preview button:hover{border-color:rgba(229,198,128,.4);background:rgba(229,198,128,.08)}.reward-preview i{font:400 7px "DM Mono",monospace;font-style:normal;color:var(--faint)}.reward-preview b{font-size:8px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.life-reward{grid-template-columns:auto repeat(4,minmax(0,1fr))}
.life-level{margin-top:8px;padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:rgba(255,255,255,.025)}.life-level>div{display:flex;align-items:flex-end;gap:6px}.life-level span{color:var(--soft);font-size:8px}.life-level b{margin-left:auto;font:500 20px/1 "DM Mono",monospace;color:var(--bright)}.life-level em{font:400 8px "DM Mono",monospace;font-style:normal;color:var(--faint)}.life-level>i{display:block;height:4px;margin-top:6px;background:rgba(255,255,255,.08)}.life-level>i span{display:block;height:100%;background:linear-gradient(90deg,var(--cyan),var(--gold));box-shadow:0 0 10px rgba(105,211,207,.28);transition:width .6s}.life-level small{display:block;margin-top:5px;color:var(--gold);font-size:7px}
.base-rewards{margin-top:9px;padding:7px 9px;display:flex;align-items:center;gap:5px;overflow-x:auto;border:1px solid rgba(105,211,207,.22);border-radius:9px;background:rgba(105,211,207,.04);scrollbar-width:none}.base-rewards span{flex:none;color:var(--cyan);font-size:8px}.base-rewards b{flex:none;padding:5px 7px;border:1px solid var(--line);border-radius:999px;font-size:7px;font-weight:400;color:var(--soft)}
.reward-catalog{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:8px}.reward-pack{position:relative;min-height:96px;padding:9px 10px 8px;display:grid;grid-template-columns:minmax(95px,.8fr) 1.25fr;gap:9px;border:1px solid var(--line);border-radius:9px;background:var(--soft-panel);overflow:hidden}.reward-pack::before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:rgba(255,255,255,.09)}.reward-pack.current{border-color:rgba(105,211,207,.45);background:linear-gradient(115deg,rgba(105,211,207,.08),rgba(255,255,255,.025))}.reward-pack.current::before{background:var(--cyan);box-shadow:0 0 10px var(--cyan)}.reward-pack.done{border-color:rgba(229,198,128,.3)}.reward-pack.done::before{background:var(--gold);box-shadow:0 0 10px rgba(229,198,128,.6)}.reward-pack.locked{opacity:.5}.reward-pack small,.reward-pack strong{display:block}.reward-pack small{color:var(--faint);font-size:7px}.reward-pack.done small{color:var(--gold)}.reward-pack.current small{color:var(--cyan)}.reward-pack strong{margin-top:5px;font-size:10px;font-weight:500;line-height:1.45}.reward-pack ul{margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;list-style:none}.reward-pack li{padding:4px 5px;border:1px solid rgba(255,255,255,.08);border-radius:5px;color:var(--soft);font-size:7px;line-height:1.35}
.flow-footer{position:absolute;z-index:20;left:0;right:0;bottom:0;height:calc(var(--bottom) + env(safe-area-inset-bottom));padding:0 max(12px,env(safe-area-inset-right)) env(safe-area-inset-bottom) max(12px,env(safe-area-inset-left));display:flex;align-items:center;gap:14px;border-top:1px solid var(--line);background:rgba(5,7,11,.94)}.flow-footer>button:first-child{min-width:175px;height:100%;padding:0 12px;border:0;border-right:1px solid var(--line);background:transparent;text-align:left}.flow-footer span,.flow-footer b{display:block}.flow-footer span{font-size:8px;color:var(--faint)}.flow-footer b{margin-top:2px;font-size:10px;color:var(--gold);font-weight:500}.flow-footer p{flex:1;margin:0;color:var(--soft);font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reset-button{min-height:36px;padding:0 10px;border:0;background:transparent;color:var(--soft);font-size:8px}
.scrim{position:fixed;inset:0;z-index:39;opacity:0;visibility:hidden;background:rgba(1,3,6,.76);backdrop-filter:blur(6px);transition:.22s}.scrim.open{opacity:1;visibility:visible}.modal{position:fixed;z-index:40;left:50%;top:50%;width:min(680px,calc(100vw - 30px));max-height:calc(100vh - 24px);padding:18px;overflow:auto;opacity:0;visibility:hidden;transform:translate(-50%,-47%) scale(.98);transition:.22s;border:1px solid var(--strong-line);border-radius:14px;background:linear-gradient(145deg,rgba(18,24,34,.99),rgba(7,10,16,.99));box-shadow:0 28px 100px #000}.modal.open{opacity:1;visibility:visible;transform:translate(-50%,-50%) scale(1)}.modal .close{position:absolute;right:4px;top:3px}.modal h2{margin:6px 42px 3px 0;font-size:22px;font-weight:500}.modal-intro{margin:0;color:var(--soft);font-size:9px;line-height:1.6}.modal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:11px}.choice-card{position:relative;min-height:100px;padding:10px;text-align:left;border:1px solid var(--line);border-radius:9px;background:var(--soft-panel)}.choice-card.selected{border-color:var(--gold);background:rgba(229,198,128,.08)}.choice-card small,.choice-card strong,.choice-card p{display:block}.choice-card small{color:var(--gold);font-size:7px}.choice-card strong{margin-top:5px;font-size:11px;font-weight:500}.choice-card p{margin:5px 0 0;color:var(--soft);font-size:8px;line-height:1.5}.modal-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:11px}.modal-cost{display:flex;align-items:center;gap:7px;color:var(--soft);font-size:8px}.modal-cost b{color:var(--text)}.amount-box{margin-top:12px;padding:12px;display:grid;grid-template-columns:1fr 1.3fr;align-items:center;border:1px solid var(--line);border-radius:9px;background:var(--soft-panel)}.amount-box strong{font:500 30px "DM Mono",monospace}.amount-box small{display:block;color:var(--soft);font-size:8px}.amount-box input{width:100%;accent-color:var(--gold)}.route-map{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:11px}.route-node{min-height:66px;padding:7px;border:1px solid var(--line);background:var(--soft-panel)}.route-node b,.route-node span{display:block}.route-node b{font-size:9px;font-weight:500}.route-node span{margin-top:3px;color:var(--faint);font-size:7px}.route-node.done{border-color:rgba(229,198,128,.38)}
.film,.result{position:fixed;inset:0;z-index:60;opacity:0;visibility:hidden;transition:opacity .3s;background:#020305}.film.open,.result.open{opacity:1;visibility:visible}.film>img{width:100%;height:100%;object-fit:cover;object-position:center 18%;filter:brightness(.5) saturate(.7);transform:scale(1.08);animation:drift 6s ease-out forwards}.film-filter{position:absolute;inset:0;background:radial-gradient(circle at 50% 38%,transparent,rgba(0,0,0,.38) 60%,rgba(0,0,0,.86)),linear-gradient(0deg,rgba(0,0,0,.8),transparent 55%)}.film-head{position:absolute;top:max(12px,env(safe-area-inset-top));left:max(18px,env(safe-area-inset-left));right:max(18px,env(safe-area-inset-right));display:flex;justify-content:space-between;align-items:center;color:rgba(255,255,255,.6);font:400 8px "DM Mono",monospace;letter-spacing:.18em}.film-head button{min-height:44px;border:0;background:transparent;color:rgba(255,255,255,.7)}.film-copy{position:absolute;left:9%;right:9%;bottom:calc(29px + env(safe-area-inset-bottom));text-align:center;text-shadow:0 2px 18px #000}.film-copy small{font-size:8px;color:rgba(255,255,255,.5);letter-spacing:.14em}.film-copy p{margin:8px 0 0;font-size:clamp(17px,2.7vw,29px);letter-spacing:.06em}.film-progress{position:absolute;left:0;right:0;bottom:0;height:2px;background:rgba(255,255,255,.12)}.film-progress i{display:block;width:0;height:100%;background:var(--gold);box-shadow:0 0 9px var(--gold)}
.result{display:grid;place-items:center;background:radial-gradient(circle at 50% 32%,#182329,#06090e 70%)}.result-card{width:min(600px,calc(100vw - 34px));max-height:calc(100vh - 22px);padding:18px 24px;overflow:auto;text-align:center;border:1px solid rgba(229,198,128,.26);background:rgba(8,12,18,.8)}.result-seal{width:43px;height:43px;margin:0 auto 7px;display:grid;place-items:center;border:1px solid rgba(105,211,207,.36);border-radius:50%}.result-seal i{width:16px;height:16px;border:1px solid var(--gold);border-radius:50%;box-shadow:0 0 15px var(--cyan),inset 0 0 7px var(--gold)}.result-card>small{color:var(--gold);font:500 8px "DM Mono",monospace;letter-spacing:.2em}.result-card h2{margin:5px 0 3px;font-size:25px;font-weight:500;letter-spacing:.1em}.result-card>p{margin:0;color:var(--soft);font-size:9px}.result-unlocks{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));margin:12px 0;border:1px solid var(--line)}.result-unlocks span{padding:9px 7px;border-right:1px solid var(--line);font-size:9px}.result-unlocks span:last-child{border:0}.result-card .gold-button{margin-top:0}.toast{position:fixed;z-index:90;left:50%;bottom:calc(var(--bottom) + 12px + env(safe-area-inset-bottom));max-width:420px;padding:8px 13px;opacity:0;visibility:hidden;transform:translate(-50%,7px);transition:.2s;border:1px solid var(--strong-line);border-radius:7px;background:rgba(7,10,15,.96);font-size:9px}.toast.show{opacity:1;visibility:visible;transform:translate(-50%,0)}
@keyframes drift{to{transform:scale(1.01) translateY(-1%)}} 
.primary-resonance,.reset-button,.flow-footer>button:first-child{min-height:44px}.modal .close{min-width:44px;min-height:44px}.reward-preview>div{min-width:0;min-height:38px;padding:5px 7px;display:flex;align-items:center;gap:6px;text-align:left;border:1px solid var(--line);border-radius:6px;background:rgba(5,8,13,.46)}
@media(max-width:920px){:root{--top:48px;--bottom:42px;--rail:72px;--card:34vw}.brand{min-width:112px}.brand small{display:none}.resource-bar button{padding:0 6px}.development-panel{min-width:365px}.tab-content{padding:9px 12px}.section-tabs{height:43px;padding:0 8px}.section-tabs button{min-width:54px}.growth-grid{margin-top:7px}.state-card,.next-card{min-height:69px;padding:7px 9px}.growth-actions{margin-top:7px}.stage-list,.archive-list,.visit-list,.life-list{margin-top:7px}.stage-row,.archive-row,.visit-row,.life-row{min-height:51px;padding:6px 8px}.page-head h2{font-size:20px}.level-block{margin-top:5px}.life-actions{margin-top:6px}.reward-preview{grid-template-columns:repeat(4,minmax(0,1fr))}.reward-preview>span{grid-column:1/-1;max-width:none}.reward-pack{grid-template-columns:1fr}.reward-pack ul{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:760px){:root{--rail:62px;--card:31vw}.topbar{gap:3px}.brand{min-width:91px;padding-right:6px}.brand strong{font-size:11px}.resource-bar span,.slot-state span{display:none}.resource-bar .optional{display:none}.slot-state{padding:0 5px}.character-rail{padding-right:5px;padding-left:max(5px,env(safe-area-inset-left))}.rail-title{font-size:6px}.portrait-tab{height:53px}.character-card{min-width:205px}.world-mark{left:14px;top:12px}.primary-resonance{right:9px;top:9px;padding:0 6px}.primary-resonance span{display:none}.card-identity{left:14px;bottom:12px}.card-identity h1{font-size:25px}.card-identity p{display:none}.development-panel{min-width:340px}.section-tabs{overflow-x:auto;scrollbar-width:none}.section-tabs button{min-width:51px}.tab-content{padding:7px 9px}.page-head h2{font-size:18px}.status-badge{padding:3px 5px}.growth-grid{grid-template-columns:1fr 1fr;gap:5px}.state-card p,.next-card p{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.growth-actions .plain-button{display:none}.stage-row,.archive-row,.visit-row,.life-row{grid-template-columns:31px 1fr auto}.stage-num,.archive-icon,.visit-icon,.life-num{width:29px;height:29px}.flow-footer>button:first-child{min-width:140px}.flow-footer p{display:none}.life-actions{grid-template-columns:repeat(2,1fr)}.life-actions .life-action:last-child{display:none}.reward-preview{grid-template-columns:repeat(2,minmax(0,1fr))}.reward-preview>span{grid-column:1/-1}.reward-catalog{grid-template-columns:1fr}.reward-pack{min-height:78px;grid-template-columns:94px 1fr}.reward-pack ul{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-height:380px){.rail-title{margin-bottom:4px}.character-list{gap:4px}.portrait-tab{height:48px}.rail-all{min-height:29px}.card-identity{bottom:9px}.section-tabs{height:39px}.section-tabs button{min-height:39px}.tab-content{padding-top:6px}.page-head h2{margin-top:2px}.level-row strong{font-size:21px}.level-track{margin-top:5px}.growth-grid{margin-top:6px}.state-card,.next-card{min-height:60px;padding-top:5px;padding-bottom:5px}.state-card p,.next-card p{margin-top:2px}.material-line{margin-top:4px}.growth-actions{margin-top:5px}.micro-log{margin-top:5px;padding-top:4px}.stage-list,.archive-list,.visit-list,.life-list{gap:4px}.stage-row,.archive-row,.visit-row,.life-row{min-height:45px}.modal{padding:13px}.modal h2{font-size:18px;margin-top:3px}.modal-grid{margin-top:7px}.choice-card{min-height:83px;padding:7px}.modal-foot{margin-top:7px}.result-card{padding:12px 18px}.result-seal{width:35px;height:35px;margin-bottom:3px}.result-card h2{font-size:20px}.result-unlocks{margin:7px 0}.result-unlocks span{padding:6px}.life-summary{margin-top:5px;padding:6px 8px}.life-actions{margin-top:5px}.life-action{min-height:45px;padding:5px}.reward-preview{margin-top:5px;padding:5px}.reward-preview button{min-height:30px}.life-level{margin-top:5px;padding:5px 8px}.base-rewards{margin-top:5px}.reward-catalog{margin-top:5px;gap:4px}.reward-pack{min-height:72px;padding:6px}}
@media(max-height:380px){.rail-all{min-height:44px}.section-tabs{height:44px}.section-tabs button{min-height:44px}.tab-content{padding-top:5px}.page-head h2{margin-top:1px}.level-track{margin-top:4px}.growth-grid{margin-top:5px}.state-card,.next-card{min-height:52px;padding-top:5px;padding-bottom:5px}.state-card p,.next-card p{display:none}.material-line{margin-top:3px}.growth-actions{margin-top:4px}.micro-log{display:none}.reward-preview{margin-top:4px;padding:4px;grid-template-columns:auto 1fr 1fr}.reward-preview>span{grid-column:auto;max-width:50px}.reward-preview>div{min-height:32px;padding:3px 5px}.reward-preview>div:nth-of-type(n+3){display:none}}
@media(max-height:380px){.state-card,.next-card{min-height:44px;max-height:48px;overflow:hidden}.reward-preview{max-height:36px;overflow:hidden}.reward-preview>div{min-height:26px}}
/* Shared interaction floor: labels may stay compact, touch targets may not. */
.rail-all,.row-button,.reward-preview button,.reset-button{min-height:44px}
.resource-bar button,.primary-resonance{min-width:44px}
@media(max-height:380px){.reward-preview button{min-height:44px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
