
:root{
  --bg:#0a0a0f;--panel:#15131c;--panel2:#1d1a26;--ink:#e8e2d6;--muted:#9a93a8;--line:#3a3348;
  --gold:#f0a020;--gold2:#ffd479;--hp:#c0392b;--mp:#2e6fd6;--sanity:#7b5cd6;
  --common:#9aa3ad;--uncommon:#3fb27f;--rare:#3da9fc;--epic:#a55eea;--legendary:#f0a020;--bossrelic:#d05a6a;--good:#3fb27f;--bad:#d05a5a;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;height:100%}
body{background:radial-gradient(1200px 600px at 50% -10%,#1a1626 0%,#07060b 60%);
  font-family:'EB Garamond',Georgia,serif;color:var(--ink);display:flex;align-items:center;justify-content:center;min-height:100vh;padding:16px}
.phone{width:390px;max-width:100%;height:844px;max-height:96vh;background:linear-gradient(180deg,#100e17,#0b0910);
  border:1px solid #2a2438;border-radius:34px;overflow:hidden;position:relative;
  box-shadow:0 30px 80px rgba(0,0,0,.7),inset 0 0 0 6px #0d0b13;display:flex;flex-direction:column}
h1,h2,h3{font-family:'Cinzel',serif;letter-spacing:.5px}
.muted{color:var(--muted)}
.scroll{flex:1;overflow-y:auto;overflow-x:hidden;padding:12px 12px 92px}
.scroll::-webkit-scrollbar{width:0}

.hud{padding:14px 14px 10px;background:linear-gradient(180deg,#1a1626,#120f1b);border-bottom:1px solid var(--line)}
.hud-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:9px}
.cls{display:flex;align-items:center;gap:8px}
.cls .sigil{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;
  background:radial-gradient(circle at 50% 35%,#2b2740,#100d18);border:1px solid var(--gold);box-shadow:0 0 12px rgba(240,160,32,.35);font-size:16px}
.cls .name{font-family:'Cinzel';font-weight:700;font-size:15px;line-height:1}
.cls .lv{font-size:11px;color:var(--gold2)}
.topright{display:flex;flex-direction:row;align-items:center;gap:10px;font-family:'Cinzel';font-size:13px}
.topright .g{color:var(--gold2)} .topright .s{color:#bfe3ff}
.questbell{position:relative;background:none;border:none;cursor:pointer;font-size:18px;padding:0 2px;line-height:1;filter:drop-shadow(0 0 5px rgba(240,160,32,.4))}
.questbell .nb{position:absolute;top:-7px;right:-7px;background:#d05a5a;color:#fff;font-size:9px;border-radius:9px;padding:0 4px;font-family:'Cinzel'}
.hicon{width:25px;height:25px;border-radius:7px;border:1px solid var(--line);background:#100d18;color:var(--gold2);font-size:12px;cursor:pointer;display:grid;place-items:center;padding:0}
.hicon.on{background:var(--gold2);color:#1a1206;border-color:var(--gold)}
.hicons{display:flex;gap:6px;align-items:center}
.skillbar{display:flex;gap:8px;overflow-x:auto;padding:8px;margin-bottom:12px;background:linear-gradient(180deg,var(--panel),var(--panel2));border:1px solid var(--line);border-radius:12px}
.skillbar::-webkit-scrollbar{height:0}
.skillbtn{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;gap:2px;background:#100d18;border:1px solid #2c2640;border-radius:10px;padding:6px 12px;cursor:pointer;min-width:60px}
.skillbtn .si{font-size:18px}.skillbtn .sn{font-size:9px;font-family:'Cinzel';color:var(--ink)}.skillbtn .smp{font-size:8px;color:#6ba0ef;font-family:'Cinzel'}
.skillbtn:disabled{filter:grayscale(.6) brightness(.6);cursor:not-allowed}
.bar{height:13px;border-radius:7px;background:#0c0a12;border:1px solid var(--line);overflow:hidden;position:relative}
.bar>i{display:block;height:100%;border-radius:6px;transition:width .35s ease}
.bar.xp i{background:linear-gradient(90deg,#9c6a12,var(--gold),var(--gold2))}
.bar.hp i{background:linear-gradient(90deg,#6e1d16,var(--hp),#e6736a)}
.bar.mp i{background:linear-gradient(90deg,#173b78,var(--mp),#6ba0ef)}
.bar.sanity i{background:linear-gradient(90deg,#3a2a73,var(--sanity),#a78fe6)}
.bar-row{display:flex;align-items:center;gap:7px;margin-top:6px}
.bar-row .tag{width:54px;font-size:10px;color:var(--muted);font-family:'Cinzel'}
.bar-row .val{width:62px;text-align:right;font-size:10px;font-variant-numeric:tabular-nums}
.statuses{display:flex;flex-wrap:wrap;align-items:center;gap:5px;margin-top:9px}
.status{display:inline-flex;align-items:center;justify-content:center;min-height:22px;margin:0;padding:3px 8px;border-radius:20px;border:1px solid;font-family:'Cinzel',serif;font-size:10px;font-weight:500;line-height:1.15;letter-spacing:.2px;white-space:nowrap;appearance:none;-webkit-appearance:none}
button.status{cursor:pointer}
.status.bad{color:#e89;border-color:#5a2a36;background:#23121a}
.status.omen{color:var(--gold2);border-color:#5a4520;background:#231a0c}

.panel{background:linear-gradient(180deg,var(--panel),var(--panel2));border:1px solid var(--line);border-radius:14px;padding:12px;margin-bottom:12px;position:relative}
.panel>h3{margin:0 0 10px;font-size:13px;color:var(--gold2);text-transform:uppercase;letter-spacing:1.5px;display:flex;align-items:center;gap:7px;justify-content:space-between}
.panel>h3 .add{font-size:11px;color:#1a1206;background:linear-gradient(180deg,var(--gold2),var(--gold));border:none;border-radius:7px;padding:3px 9px;cursor:pointer;font-family:'Cinzel';font-weight:700;letter-spacing:0}
.badge{font-size:10px;color:#1a1206;background:var(--gold2);border-radius:10px;padding:0 6px;font-weight:700}
.sect-line{height:1px;background:linear-gradient(90deg,transparent,var(--line),transparent);margin:10px 0}

.task{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:10px;background:#100d18;border:1px solid #2c2640;margin-bottom:8px}
.task:last-child{margin-bottom:0}
.task .ico{width:34px;height:34px;border-radius:8px;display:grid;place-items:center;font-size:16px;background:radial-gradient(circle at 50% 30%,#2a2540,#14111d);border:1px solid #3a3350;flex:0 0 auto}
.task .body{flex:1;min-width:0}
.task .t{font-size:14px;font-weight:600;line-height:1.15}
.task .s{font-size:11px;color:var(--muted)}
.diffb{font-size:9px;color:var(--gold2);border:1px solid #5a4520;border-radius:9px;padding:0 5px;margin-left:5px}
.sevb{font-size:9px;color:#e89;border:1px solid #5a2a36;border-radius:9px;padding:0 5px;margin-left:5px}
.catb{font-size:9px;color:#bcd;border:1px solid #34405a;border-radius:9px;padding:0 5px;margin-left:5px}
.catb.self{color:#9ad7c0;border-color:#2a4a3a}
.del{background:none;border:none;color:#5a5468;font-size:14px;cursor:pointer;padding:2px 4px}
.btn{font-family:'Cinzel';font-weight:700;border:none;cursor:pointer;border-radius:9px;padding:8px 12px;font-size:12px;color:#1a1206;
  background:linear-gradient(180deg,var(--gold2),var(--gold));box-shadow:0 2px 0 #8a5d10,0 4px 10px rgba(240,160,32,.25);transition:transform .05s}
.btn:active{transform:translateY(1px)}
.btn.sm{padding:6px 10px;font-size:11px}
.btn.ghost{background:#1c1828;color:var(--ink);border:1px solid var(--line);box-shadow:none}
.btn.bad{background:linear-gradient(180deg,#d97a7a,#b23b3b);color:#1a0606;box-shadow:0 2px 0 #6e1d16}
.btn.blue{background:linear-gradient(180deg,#6ba0ef,#2e6fd6);color:#04122e;box-shadow:0 2px 0 #173b78}
.btn.green{background:linear-gradient(180deg,#6fcf97,#27ae60);color:#04220f;box-shadow:0 2px 0 #1d6b3a}
.btn:disabled{filter:grayscale(.7) brightness(.6);cursor:not-allowed;box-shadow:none}
.btn-row{display:flex;gap:8px;flex-wrap:wrap}

/* BOSS full-width stage */
.boss-stage{position:relative;width:100%;height:182px;border-radius:14px;overflow:hidden;margin-bottom:12px;border:1px solid #5a2330}
.stage-bg{position:absolute;inset:0;background:
  linear-gradient(180deg,#2a1530 0%,#3a1a2e 38%,#241019 62%,#160a10 100%);}
.stage-bg:after{content:"";position:absolute;left:0;right:0;bottom:0;height:46%;
  background:linear-gradient(180deg,transparent,#0c0508);box-shadow:inset 0 6px 22px rgba(0,0,0,.5)}
.stage-fog{position:absolute;inset:0;background:radial-gradient(120px 80px at 50% 70%,rgba(200,60,80,.22),transparent 70%)}
.stage-boss{position:absolute;left:50%;top:42%;transform:translateX(-50%) translateY(-46%);
  font-size:64px;filter:drop-shadow(0 8px 14px rgba(0,0,0,.6)) drop-shadow(0 0 18px rgba(220,60,80,.4))}
.stage-name{position:absolute;top:10px;left:0;right:0;text-align:center;font-family:'Cinzel';font-weight:900;font-size:17px;color:#f3c9c9;text-shadow:0 2px 6px #000;letter-spacing:1px}
.stage-tag{position:absolute;top:34px;left:0;right:0;text-align:center;font-size:10px;color:#ffd479}
.stage-info{position:absolute;left:0;right:0;bottom:0;padding:8px 12px;background:linear-gradient(180deg,transparent,rgba(8,4,8,.82))}
.stage-meta{font-size:10.5px;color:#e7c2c2;margin-top:4px;display:flex;justify-content:space-between}
.bar.boss-hp i{background:linear-gradient(90deg,#4a0f17,#c0392b,#e6736a)}
.stage-slot{position:absolute;bottom:6px;right:8px;font-size:8px;color:#7a5a5a;font-style:italic}

.attr{display:flex;align-items:center;gap:10px;padding:8px 4px;border-bottom:1px solid #221d30}
.attr:last-child{border-bottom:none}
.attr .ab{width:30px;height:30px;border-radius:7px;display:grid;place-items:center;font-family:'Cinzel';font-weight:900;background:#100d18;border:1px solid #3a3350;font-size:12px;color:var(--gold2)}
.attr .an{flex:1}.attr .an b{font-size:14px}.attr .an small{display:block;color:var(--muted);font-size:10px}
.attr .av{font-family:'Cinzel';font-size:16px;width:28px;text-align:center}
.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;font-size:12px;margin-top:4px}
.stat-grid div{display:flex;justify-content:space-between;border-bottom:1px dotted #2a2438;padding:3px 0}
.stat-grid b{color:var(--gold2);font-family:'Cinzel';font-weight:700}
.bag{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.bag .it{display:flex;align-items:center;gap:8px;background:#100d18;border:1px solid #2c2640;border-radius:10px;padding:8px}
.bag .it .ic{font-size:20px}.bag .it .n{font-size:12px;flex:1}.bag .it .c{font-family:'Cinzel';color:var(--gold2)}

.relic-card{border-radius:10px;padding:9px;margin-bottom:8px;position:relative;background:#0f0c16;border:1px solid var(--line)}
.relic-card .rh{display:flex;align-items:center;gap:9px}
.relic-card .ri{width:38px;height:38px;border-radius:8px;display:grid;place-items:center;font-size:18px;background:radial-gradient(circle at 50% 30%,#241f33,#100d18);border:2px solid var(--line);overflow:hidden}
.relic-card .ri img{width:28px;height:28px;object-fit:contain;display:block}.relic-card .ri .fallback{line-height:1}
.relic-card.r-common .ri{border-color:var(--common);box-shadow:0 0 8px rgba(154,163,173,.18)}
.relic-card.r-rare .ri{border-color:var(--rare);box-shadow:0 0 10px rgba(61,169,252,.28)}
.relic-card.r-epic .ri{border-color:var(--epic);box-shadow:0 0 12px rgba(165,94,234,.32)}
.relic-card.r-legendary .ri{border-color:var(--legendary);box-shadow:0 0 14px rgba(240,160,32,.38)}
.relic-card.r-boss .ri{border-color:var(--bossrelic);box-shadow:0 0 16px rgba(208,90,106,.48)}
.relic-card .rn{font-family:'Cinzel';font-weight:700;font-size:13px}
.relic-card .rr{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--muted)}
.relic-card .aff{margin:7px 0 0;padding:0;list-style:none}
.relic-card .aff li{font-size:11px;padding-left:14px;position:relative;color:#9ad7c0}
.relic-card .aff li:before{content:"◆";position:absolute;left:0;color:var(--gold)}
.relic-card .req{position:absolute;top:8px;right:9px}
.relic-meta{margin-top:7px;padding-top:6px;border-top:1px dotted #2a2438;color:var(--muted);font-size:10px}
.achievement-row{cursor:pointer}
.achievement-row.locked{opacity:.72}
.achievement-row.future{opacity:.52;filter:saturate(.55)}
.achievement-row .ico{font-family:'Cinzel';font-size:16px;font-weight:900}
.achievement-row.tier-1 .ico{border-color:var(--common)}
.achievement-row.tier-2 .ico{border-color:var(--uncommon);box-shadow:0 0 8px rgba(63,178,127,.18)}
.achievement-row.tier-3 .ico{border-color:var(--rare);box-shadow:0 0 9px rgba(61,169,252,.22)}
.achievement-row.tier-4 .ico{border-color:var(--legendary);box-shadow:0 0 11px rgba(240,160,32,.28)}
.achievement-tier{font-size:9px;color:var(--gold2);border:1px solid #5a4520;border-radius:9px;padding:0 5px;margin-left:5px;white-space:nowrap}
.achievement-progress{height:5px;border-radius:4px;background:#0b0910;border:1px solid #2a2438;overflow:hidden;margin-top:5px}
.achievement-progress i{display:block;height:100%;background:linear-gradient(90deg,#8a5d10,var(--gold2));border-radius:4px}

/* Item rarity presentation — rarity color only on the icon container */
.item-tier-common .ico,.item-tier-common .ci{border:2px solid var(--common)!important;box-shadow:0 0 8px rgba(154,163,173,.18)}
.item-tier-uncommon .ico,.item-tier-uncommon .ci{border:2px solid var(--uncommon)!important;box-shadow:0 0 10px rgba(63,178,127,.28)}
.item-tier-rare .ico,.item-tier-rare .ci{border:2px solid var(--rare)!important;box-shadow:0 0 10px rgba(61,169,252,.28)}
.status.omen-status{cursor:pointer}
.omen-sigil{width:64px;height:64px;margin:4px auto 12px;border-radius:50%;display:grid;place-items:center;font-size:34px;background:radial-gradient(circle at 50% 35%,#32284b,#100d18);border:1px solid var(--gold);box-shadow:0 0 22px rgba(240,160,32,.28)}
.omen-effect{background:#100d18;border:1px solid #5a4520;border-radius:11px;padding:10px 12px;margin:12px 0;color:var(--gold2);font-family:'Cinzel';font-size:12px;text-align:center}
.omen-flavor{font-size:14px;line-height:1.4;text-align:center;color:var(--ink);font-style:italic;margin:12px 4px 16px}

.nav{position:absolute;bottom:0;left:0;right:0;height:74px;display:flex;background:linear-gradient(180deg,#16121f,#0c0a12);border-top:1px solid var(--line)}
.nav button{flex:1;background:none;border:none;color:var(--muted);font-family:'Cinzel';font-size:10px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:4px;padding-top:12px}
.nav button .ni{font-size:19px;line-height:1}
.nav button.active{color:var(--gold2)}
.nav button.active .ni{filter:drop-shadow(0 0 6px rgba(240,160,32,.6))}

.overlay{position:absolute;inset:0;background:rgba(5,4,9,.86);backdrop-filter:blur(3px);display:none;align-items:center;justify-content:center;z-index:50;padding:20px}
.overlay.show{display:flex}
.modal{width:100%;max-width:344px;background:linear-gradient(180deg,#1c1828,#120f1a);border:1px solid var(--gold);border-radius:18px;padding:18px;box-shadow:0 0 40px rgba(240,160,32,.25);max-height:90%;overflow-y:auto}
.modal h2{margin:0 0 4px;font-size:18px;color:var(--gold2);text-align:center}
.modal .sub{text-align:center;color:var(--muted);font-size:12px;margin-bottom:14px}
.choice{display:flex;align-items:center;gap:11px;width:100%;text-align:left;cursor:pointer;background:#100d18;border:1px solid var(--line);border-radius:12px;padding:11px;margin-bottom:9px;color:var(--ink)}
.choice:hover{border-color:var(--gold)}
.choice .ci{width:40px;height:40px;border-radius:9px;display:grid;place-items:center;font-size:20px;background:radial-gradient(circle at 50% 30%,#2a2540,#14111d);border:1px solid #3a3350;flex:0 0 auto}
.choice .ct{font-family:'Cinzel';font-weight:700;font-size:14px}.choice .cs{font-size:11px;color:var(--muted)}

/* BOTTOM SHEET */
.sheetbd{position:absolute;inset:0;background:rgba(5,4,9,.7);display:none;z-index:55}
.sheetbd.show{display:block}
.sheet{position:absolute;left:0;right:0;bottom:0;z-index:56;background:linear-gradient(180deg,#1c1828,#100d18);
  border-top:1px solid var(--gold);border-radius:20px 20px 0 0;padding:8px 18px 22px;transform:translateY(110%);transition:transform .28s cubic-bezier(.2,.8,.2,1);max-height:88%;overflow-y:auto}
.sheet.show{transform:translateY(0)}
.sheet{padding:8px 20px 28px}
.sheet .handle{width:42px;height:4px;border-radius:3px;background:#4a4458;margin:6px auto 16px}
.sheet h2{margin:0 0 6px;font-size:17px;color:var(--gold2);text-align:center}
.sheet .sub{text-align:center;color:var(--muted);font-size:12px;margin-bottom:18px}
.sheet .task{margin-bottom:10px}
.sheet .flabel{margin:16px 0 9px}
.sheet .finput{margin-bottom:14px}
.sheet .picker{margin-bottom:16px}
.sheet .chips{margin-bottom:16px}
.sheet .btn{margin-top:6px}
.sheet .empty{padding:10px}
.finput{width:100%;background:#0d0b14;border:1px solid var(--line);border-radius:10px;color:var(--ink);font-family:'EB Garamond';font-size:15px;padding:10px 12px;margin-bottom:10px}
textarea.finput{resize:none;min-height:54px;line-height:1.3}
.advb{display:inline-grid;place-items:center;width:19px;height:19px;border-radius:50%;background:var(--gold);color:#1a1206;font-size:11px;font-weight:700;font-family:'Cinzel';vertical-align:middle}
.finput:focus{outline:none;border-color:var(--gold)}
.flabel{font-size:11px;color:var(--muted);font-family:'Cinzel';text-transform:uppercase;letter-spacing:1px;margin:4px 0 6px}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.chip-pick{font-size:12px;padding:6px 10px;border-radius:18px;background:#100d18;border:1px solid #2c2640;color:var(--ink);cursor:pointer;font-family:'Cinzel'}
.chip-pick.sel{border-color:var(--gold);color:var(--gold2);box-shadow:0 0 8px rgba(240,160,32,.4)}
.picker{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:12px;max-height:108px;overflow-y:auto}
.ico-pick{width:38px;height:38px;border-radius:9px;font-size:18px;cursor:pointer;background:#100d18;border:1px solid #2c2640}
.ico-pick.sel{border-color:var(--gold);box-shadow:0 0 8px rgba(240,160,32,.5)}
.sliderrow{display:flex;align-items:center;gap:10px;margin-bottom:10px;font-family:'Cinzel';font-size:12px;color:var(--gold2)}
.sliderrow input[type=range]{flex:1;accent-color:var(--gold)}
.sliderrow b{width:22px;text-align:center;font-size:16px}

.death h2{color:#e87;font-size:24px;letter-spacing:3px}
.relapse{background:#0e0c15;border:1px solid #3a2a30;border-radius:12px;padding:12px;margin:12px 0;font-size:13px}
.relapse div{display:flex;justify-content:space-between;padding:3px 0;border-bottom:1px dotted #2a2438}
.relapse div:last-child{border-bottom:none}
.shard-big{text-align:center;font-family:'Cinzel';font-size:30px;color:var(--gold2);margin:6px 0}

.toasts{position:absolute;top:8px;left:0;right:0;display:flex;flex-direction:column;align-items:center;gap:6px;z-index:60;pointer-events:none}
.toast{background:rgba(20,16,28,.95);border:1px solid var(--gold);color:var(--ink);font-size:12px;padding:7px 13px;border-radius:20px;font-family:'Cinzel';box-shadow:0 4px 16px rgba(0,0,0,.5);max-width:90%}
.toast.crit{border-color:#e6736a;color:#ffb}.toast.good{border-color:var(--good)}.toast.bad{border-color:var(--bad);color:#f99}
.empty{text-align:center;color:var(--muted);font-size:12px;padding:14px}
.hint{font-size:11px;color:var(--muted);text-align:center;margin-top:6px;font-style:italic}
.reset-x{position:absolute;top:10px;right:14px;font-size:10px;color:#5a5468;background:none;border:1px solid #2a2438;border-radius:8px;padding:3px 7px;cursor:pointer;z-index:5}

/* M7.2 integration-only additions. The core visual language above is copied from the prototype. */
.boot-inline{min-height:112px;display:grid;place-items:center;color:var(--muted);font-style:italic;font-size:13px}
.cloudbtn{position:relative}.cloudbtn .cloud-dot{position:absolute;width:6px;height:6px;border-radius:50%;right:-2px;top:-2px;background:var(--muted);box-shadow:0 0 5px currentColor}.cloudbtn.synced .cloud-dot{background:var(--good)}.cloudbtn.error .cloud-dot,.cloudbtn.conflict .cloud-dot{background:var(--bad)}.cloudbtn.pending .cloud-dot,.cloudbtn.syncing .cloud-dot{background:var(--gold)}
.syncline{display:flex;justify-content:space-between;gap:8px;align-items:center;background:#100d18;border:1px solid #2c2640;border-radius:10px;padding:9px 10px;margin-bottom:9px;font-size:11px}.syncline b{font-family:'Cinzel';color:var(--gold2)}
.online{color:#91ddb4}.offline{color:#f39a9a}.cloud-error{color:#f39a9a;font-size:11px;line-height:1.25;margin:8px 0}
.skillbtn.primed{border-color:var(--gold);box-shadow:0 0 10px rgba(240,160,32,.35)}
.task.done{opacity:.52}.task .task-actions{display:flex;gap:5px;align-items:center;flex:0 0 auto}
.task .t .diffb,.task .t .sevb,.task .t .catb{vertical-align:middle}
.item-tier-special .ico{border:2px solid var(--bossrelic)!important;box-shadow:0 0 12px rgba(208,90,106,.36)}
.pet-common .ico{border-color:var(--common)!important}.pet-rare .ico{border-color:var(--rare)!important}.pet-epic .ico{border-color:var(--epic)!important}.pet-legendary .ico{border-color:var(--legendary)!important}
.r-special .ri{border-color:var(--bossrelic);box-shadow:0 0 16px rgba(208,90,106,.48)}
.reward-row.disabled{opacity:.5}.micro{font-size:9px;color:var(--muted)}.rightchev{color:var(--gold2);font-size:26px;font-weight:300;line-height:1;padding:0 2px 0 8px;flex:0 0 auto}
.sheet .form-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:14px}.sheet .form-actions .btn{margin-top:0}
.modal .form-actions{display:flex;gap:8px;justify-content:center;margin-top:14px;flex-wrap:wrap}
.modal .choice:last-child{margin-bottom:0}
.revision-note{text-align:center;color:#595268;font-size:8px;padding:4px 0 0;font-family:'Cinzel'}
@media(max-width:430px){body{padding:0;align-items:stretch}.phone{width:100%;height:100dvh;max-height:none;border:0;border-radius:0;box-shadow:none}.sheet{padding-bottom:calc(28px + env(safe-area-inset-bottom))}.nav{padding-bottom:env(safe-area-inset-bottom);height:calc(74px + env(safe-area-inset-bottom))}.scroll{padding-bottom:calc(92px + env(safe-area-inset-bottom))}}


/* M7.3 auth/profile and prototype behavior parity */
.profile-trigger{cursor:pointer}.profile-sigil{font-family:inherit;color:inherit;padding:0;cursor:pointer}.profile-big-sigil{width:76px;height:76px;margin:2px auto 10px;display:grid;place-items:center;font-size:42px;filter:drop-shadow(0 0 14px rgba(240,160,32,.35))}.profile-card{text-align:center}.profile-email{margin:12px 0 16px;padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:#100d18;color:var(--muted);font-size:12px}
.class-path-row{width:100%;border:0;border-bottom:1px solid #221d30;background:none;color:var(--ink);display:flex;align-items:center;gap:11px;padding:9px 4px;text-align:left;cursor:pointer}.class-path-row:last-child{border-bottom:0}.class-path-row.locked{opacity:.5;cursor:default}.class-path-row.available{color:var(--gold2)}.class-path-sigil{width:34px;min-width:34px;text-align:center;font-size:27px;line-height:1;filter:drop-shadow(0 0 7px rgba(240,160,32,.22))}.class-path-copy{flex:1;min-width:0}.class-path-copy b{display:block;font-family:'Cinzel';font-size:13px}.class-path-copy small{display:block;color:var(--muted);font-size:10px;margin-top:2px}
.skill-accordion{background:#100d18;border:1px solid #2c2640;border-radius:10px;margin:8px 0;overflow:hidden}.skill-accordion summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 11px;font-family:'Cinzel';font-size:12px}.skill-accordion summary::-webkit-details-marker{display:none}.skill-accordion[open] summary{border-bottom:1px solid #2c2640;color:var(--gold2)}.skill-effect{font-size:12px;line-height:1.35;padding:10px 11px;color:var(--ink)}.skill-accordion .btn{margin:0 11px 11px}
.auth-gate{position:absolute;inset:0;z-index:100;background:radial-gradient(900px 500px at 50% 0%,#21192f 0%,#09070d 62%);display:none;align-items:center;justify-content:center;padding:22px}.auth-gate.show{display:flex}.auth-card{width:100%;max-width:330px;text-align:center}.auth-mark{width:66px;height:66px;margin:0 auto 14px;border:1px solid var(--gold);border-radius:50%;display:grid;place-items:center;color:var(--gold2);font-size:30px;background:radial-gradient(circle at 50% 35%,#2b2740,#100d18);box-shadow:0 0 24px rgba(240,160,32,.22)}.auth-card h1{margin:0;color:var(--gold2);font-size:25px;letter-spacing:3px}.auth-sub{color:var(--muted);font-size:13px;margin:6px 0 18px}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;margin-bottom:12px;border-bottom:1px solid var(--line)}.auth-tabs button{background:none;border:0;color:var(--muted);font-family:'Cinzel';font-size:11px;padding:9px;cursor:pointer}.auth-tabs button.active{color:var(--gold2);border-bottom:1px solid var(--gold)}.auth-or{display:flex;align-items:center;gap:9px;color:#625b70;font-size:9px;font-family:'Cinzel';margin:15px 0}.auth-or span{height:1px;background:var(--line);flex:1}.auth-footer{font-family:'Cinzel';font-size:9px;color:#625b70;line-height:1.6;margin-top:22px}.auth-card .finput{text-align:left}

/* M7.3.1 UI/feedback polish */
.profile-email{display:none}.profile-email-text{margin:8px 0 18px;color:var(--muted);font-size:13px;line-height:1.3;word-break:break-word}
.sheet form .form-primary,.sheet form .form-secondary{width:100%;margin-top:9px}.sheet form .form-primary{padding:10px 12px}.sheet form .form-secondary{margin-bottom:2px}
.currency-chips{margin-bottom:14px}
.skill-accordion{margin:10px 0;border-radius:12px}.skill-accordion summary{display:grid;grid-template-columns:48px 1fr auto;align-items:center;gap:11px;padding:12px;font-family:inherit}.skill-accordion[open] summary{color:var(--ink)}.skill-summary-icon{width:46px;height:46px;display:grid;place-items:center;font-size:32px;line-height:1;filter:drop-shadow(0 0 9px rgba(240,160,32,.28))}.skill-summary-copy{min-width:0}.skill-summary-copy b{display:block;font-family:'Cinzel';font-size:13px;color:var(--gold2);margin-bottom:4px}.skill-summary-copy small{display:block;color:var(--muted);font-size:12px;line-height:1.35;font-family:'EB Garamond',Georgia,serif;font-weight:400}.skill-type{align-self:start;font-size:8px;color:var(--muted);border:1px solid var(--line);border-radius:9px;padding:2px 6px;font-family:'Cinzel';white-space:nowrap}.skill-effect{padding:12px 14px 13px;line-height:1.5;color:var(--ink);font-size:13px}.skill-pin{width:calc(100% - 24px);margin:0 12px 12px!important}.skill-pin:disabled{opacity:.8;filter:none;color:var(--gold2);border-color:#5a4520;background:#18131e}

/* M7.3.2 UX feedback polish */
.skill-section{margin-bottom:12px}.skill-section .skillbar{margin-bottom:7px}.skillbar-hint{align-self:center;font-size:10px;color:var(--muted);font-style:italic;padding:0 6px;white-space:nowrap}.skill-ticker{display:flex;align-items:flex-start;gap:8px;margin:0 2px 12px;padding:8px 10px;border:1px solid #5a4520;border-radius:9px;background:linear-gradient(90deg,#231a0c,#171220);color:var(--gold2);font-size:11px;line-height:1.35}.skill-ticker-mark{color:var(--gold);filter:drop-shadow(0 0 5px rgba(240,160,32,.45));flex:0 0 auto}.skill-ticker b{font-family:'Cinzel';font-size:10px}.skill-meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px}.skill-meta span{display:inline-flex;align-items:center;min-height:18px;padding:2px 7px;border:1px solid #3b3550;border-radius:10px;background:#17131f;color:#b9b1c6;font-family:'Cinzel';font-size:8px;letter-spacing:.15px}.skill-effect{padding:12px 14px 14px}.skill-effect p{margin:0 0 9px;line-height:1.5}.skill-effect p:last-child{margin-bottom:0}.skill-effect-heading{margin:11px 0 6px;color:var(--gold2);font-family:'Cinzel';font-size:10px;letter-spacing:.35px;text-transform:none}.skill-effect-heading:first-child{margin-top:0}.skill-effect-list{margin:4px 0 10px;padding-left:19px}.skill-effect-list li{margin:4px 0;line-height:1.45}.shop-refresh:disabled{opacity:.78;filter:none;color:var(--muted);border-color:#3a3348;background:#17131f}.shop-refresh-note{margin-top:7px}.omen-view h2{margin-top:0}.omen-effect br{display:block;content:"";margin-top:5px}


/* M7.3.3 — Pet progression/detail + temporary QA control */
.pet-card-button{width:100%;color:var(--ink);font:inherit;text-align:left;cursor:pointer;appearance:none;-webkit-appearance:none}.pet-card-button .rightchev{margin-left:4px}.pet-xp-progress{margin-top:6px}.pet-detail{text-align:left}.pet-detail-art{width:104px;height:104px;margin:2px auto 12px;border-radius:24px;display:grid;place-items:center;font-size:58px;background:radial-gradient(circle at 50% 32%,#332c48,#100d18 72%);border:2px solid var(--line);box-shadow:0 12px 30px rgba(0,0,0,.35)}.pet-detail-art.pet-common{border-color:var(--common)}.pet-detail-art.pet-rare{border-color:var(--rare);box-shadow:0 0 18px rgba(61,169,252,.2),0 12px 30px rgba(0,0,0,.35)}.pet-detail-art.pet-epic{border-color:var(--epic);box-shadow:0 0 20px rgba(165,94,234,.24),0 12px 30px rgba(0,0,0,.35)}.pet-detail-art.pet-legendary{border-color:var(--legendary);box-shadow:0 0 24px rgba(240,160,32,.28),0 12px 30px rgba(0,0,0,.35)}.pet-detail-progress{margin:10px 0 17px;padding:10px 12px;border:1px solid #2c2640;border-radius:10px;background:#100d18}.pet-skill-card{padding:11px 12px;border:1px solid var(--line);border-radius:11px;background:#100d18}.pet-skill-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}.pet-skill-head b{font-family:'Cinzel';font-size:12px;color:var(--gold2)}

/* M7.3.5 — stat/source/status visibility */
.stat-bonus{color:var(--good);font-size:.78em;font-weight:700;white-space:nowrap}
.stat-penalty{color:#e88989;font-size:.78em;font-weight:700;white-space:nowrap}
.attr .av{width:auto;min-width:62px;white-space:nowrap}
.status.boss-status{color:#f2b3a8;border-color:#6b3235;background:#251316}
.status.boss-status.enraged-status{color:#e66f73;border-color:#7a2830;background:#2b1015;box-shadow:0 0 8px rgba(170,35,45,.2)}
.status.enemy-status{color:#9ad7c0;border-color:#2a4a3a;background:#102019}
.status.skill-charge-status{color:#c9b8ef;border-color:#49386a;background:#191426}
.status-detail-copy{font-size:13px;line-height:1.45;background:#100d18;border:1px solid var(--line);border-radius:11px;padding:12px;margin:12px 0;color:var(--ink)}
.status-meter{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border:1px solid #5a4520;border-radius:10px;color:var(--gold2);font-family:'Cinzel'}
.boss-stage.enraged{border-color:#72252d;box-shadow:inset 0 0 30px rgba(95,12,20,.18),0 0 14px rgba(80,8,15,.12)}
.boss-stage.enraged .stage-bg{background:linear-gradient(180deg,#251019 0%,#321117 38%,#210b10 62%,#120609 100%)}
.boss-stage.enraged .stage-name{color:#a9444d;text-shadow:0 2px 6px #000,0 0 12px rgba(130,20,30,.35)}
.enraged-tag{display:inline-block;margin-left:4px;padding:1px 6px;border-radius:9px;border:1px solid #7d2932;background:#2b1015;color:#df6971;font-family:'Cinzel';font-size:8px;font-weight:800;letter-spacing:.8px;vertical-align:1px}
.boss-victory{border-color:#5a4520;text-align:center}
.open-effect{margin-top:8px}

/* M7.3.6 — HUD status strip + Boss/Relic Codex polish */
.statuses{display:flex;flex-wrap:nowrap;align-items:center;gap:5px;margin-top:9px;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:1px}
.statuses::-webkit-scrollbar{display:none}
.status{flex:0 0 auto;height:24px;min-height:24px;max-height:24px;padding:0 8px;line-height:1;white-space:nowrap}
.boss-victory-compact{margin:0 0 10px;padding:7px 10px;border:1px solid #5a4520;border-radius:10px;background:#15110b;color:var(--gold2);font-size:11px;text-align:center}
.relic-clickable,.codex-card{cursor:pointer}
.relic-clickable:hover,.codex-card:hover{border-color:#5a4520}
.relic-card .aff li b{color:var(--gold2);font-family:'Cinzel';font-size:10px}
.relic-detail-origin{margin-top:12px;padding-top:8px;border-top:1px dotted #2a2438}
.codex-card .rightchev{margin-left:6px}

/* M7.3.7 — death/leaderboard/profile clarity */
.cls .sigil.profile-sigil{width:34px;height:34px;border:0;border-radius:0;background:none;box-shadow:none;font-size:28px;line-height:1;filter:drop-shadow(0 0 7px rgba(240,160,32,.35))}
.leader-class-icon{width:34px;height:34px;display:grid;place-items:center;flex:0 0 auto;font-size:30px;line-height:1;filter:drop-shadow(0 0 7px rgba(240,160,32,.28))}
.relapse div{align-items:flex-start;gap:12px}
.relapse div>span{flex:0 0 auto}
.relapse div>b{flex:1;min-width:0;text-align:right;line-height:1.25;overflow-wrap:anywhere;word-break:normal}
.death-cause b{color:#e99;font-weight:700}
.death-actions{display:flex;justify-content:center;margin-top:14px}
.death-actions .btn{width:100%;max-width:280px;padding:10px 18px}
.run-threats{background:#0e0c15;border:1px solid #3a2a30;border-radius:12px;padding:10px 12px;margin:0 0 12px;font-size:12px}
.run-threats>div{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px dotted #2a2438}
.run-threats>div:last-child{border-bottom:0}
.run-threats span{color:var(--muted);flex:0 0 auto}
.run-threats b{min-width:0;text-align:right;overflow-wrap:anywhere;line-height:1.25;color:var(--ink)}
.run-threats .danger-text{color:#e88}

/* Asset integration */
.item-art,.pet-art,.relic-art,.class-art,.skill-art,.boss-art{display:block;object-fit:contain;user-select:none;-webkit-user-drag:none}
.task .ico .item-art,.task .ico .pet-art,.task .ico .relic-art{width:30px;height:30px}
.relic-card .ri .relic-art{width:32px;height:32px}
.pet-detail-art .pet-art{width:92px;height:92px}
.class-art{width:1.2em;height:1.2em;vertical-align:-.22em}
.profile-sigil .class-art,.class-path-sigil .class-art,.leader-class-icon .class-art,.choice .ci .class-art{width:100%;height:100%;vertical-align:0}
.profile-big-sigil .class-art{width:72px;height:72px;vertical-align:0}
.skillbtn .si{width:30px;height:30px;display:grid;place-items:center}
.skillbtn .si .skill-art,.skillbtn .si .class-art{width:28px;height:28px;vertical-align:0}
.skill-summary-icon .skill-art,.skill-summary-icon .class-art{width:44px;height:44px;vertical-align:0}
.relic-detail-hero{display:flex;align-items:center;gap:13px;margin-bottom:12px}
.relic-detail-hero h2{margin:0 0 3px}
.relic-detail-hero .sub{margin:0}
.relic-detail-art{width:74px;height:74px;flex:0 0 74px;border-radius:16px;display:grid;place-items:center;background:radial-gradient(circle at 50% 30%,#292239,#100d18 72%);border:1px solid var(--line);box-shadow:0 10px 26px rgba(0,0,0,.28)}
.relic-detail-art .relic-art{width:62px;height:62px}
.boss-stage .stage-bg{background:linear-gradient(180deg,rgba(21,10,27,.12) 0%,rgba(41,11,25,.35) 58%,rgba(12,5,8,.76) 100%),url('./assets/boss/boss-bg.webp') center/cover no-repeat}
.boss-stage.enraged .stage-bg{background:linear-gradient(180deg,rgba(65,7,16,.22) 0%,rgba(71,8,17,.5) 58%,rgba(18,4,7,.82) 100%),url('./assets/boss/boss-bg.webp') center/cover no-repeat;filter:saturate(.78) contrast(1.08)}
.stage-bg,.stage-fog{z-index:0}
.stage-boss{z-index:2;width:132px;height:116px;display:grid;place-items:center;top:47%;font-size:0}
.stage-boss .boss-art{width:100%;height:100%;filter:drop-shadow(0 10px 12px rgba(0,0,0,.68)) drop-shadow(0 0 16px rgba(220,60,80,.3))}
.stage-name,.stage-tag,.stage-info{z-index:3}


/* M7.3.8 — boss scale, compact skills, clean class art */
.boss-stage{height:214px}
.stage-name{top:11px;display:flex;align-items:center;justify-content:center;gap:8px;padding:0 12px;font-size:18px;line-height:1.08}
.stage-tag{display:none}
.stage-boss{width:226px;height:176px;top:54%;transform:translateX(-50%) translateY(-46%);filter:none}
.stage-boss .boss-art{width:100%;height:100%;filter:drop-shadow(0 12px 12px rgba(0,0,0,.72))}
.stage-info{padding:9px 12px 10px;background:linear-gradient(180deg,transparent 0%,rgba(8,4,8,.6) 28%,rgba(8,4,8,.93) 72%)}
.stage-info .boss-hp{position:relative;z-index:4;height:14px}
.stage-meta{position:relative;z-index:4;margin-top:5px;font-size:11px}
.boss-stage.enraged .stage-name{color:#e9a7ac}
.enraged-tag{margin-left:0;vertical-align:0}

.skill-section{margin:0 0 12px}
.skill-section .skillbar,.skillbar{gap:12px;margin:0;padding:2px 4px 4px;background:none;border:0;border-radius:0;align-items:flex-start}
.skillbtn{min-width:52px;padding:0;border:0;border-radius:0;background:none;gap:4px;overflow:visible}
.skillbtn .si{width:48px;height:48px;display:grid;place-items:center;border:0;background:none;border-radius:0}
.skillbtn .si .skill-art,.skillbtn .si .class-art{width:48px;height:48px;vertical-align:0;filter:none!important}
.skillbtn .sn,.skillbar-hint{display:none!important}
.skillbtn .smp{font-size:9px;line-height:1;color:#7aaaf2;font-family:'Cinzel';white-space:nowrap}
.skillbtn:disabled{filter:grayscale(.58) brightness(.66);opacity:.72}
.skillbtn.primed{border:0;box-shadow:none}
.skillbtn.primed .si{outline:1px solid var(--gold);outline-offset:1px}

.choice .ci{width:40px;height:40px;border:0;border-radius:0;background:none;font-size:0;overflow:visible}
.choice .ci .class-art{width:40px;height:40px;object-fit:contain;filter:none!important}

.class-art,.skill-art{filter:none!important}
.cls .sigil.profile-sigil,.leader-class-icon,.profile-big-sigil,.class-path-sigil{filter:none!important}

.class-sheet-title{display:flex;align-items:center;justify-content:center;gap:8px;margin:0 0 4px}
.class-sheet-title h2{margin:0!important;text-align:left!important}
.class-sheet-emblem{width:34px;height:34px;display:grid;place-items:center;flex:0 0 34px}
.class-sheet-emblem .class-art{width:34px;height:34px;vertical-align:0;filter:none!important}
.skill-summary-icon{filter:none!important}
.skillbtn.primed .si{outline:0}


/* M7.3.8 revision 2 — larger boss, balanced skill spacing, quest requirements */
.boss-stage{height:252px}
.stage-boss{width:min(92%,460px);height:230px;top:57%;transform:translateX(-50%) translateY(-46%)}
.stage-info{padding:10px 12px 11px}
.skill-section .skillbar{margin-bottom:0}
.skill-ticker{margin:12px 2px 12px}
.quest-offer{align-items:flex-start}
.quest-offer .ico{margin-top:1px}
.quest-requirement{margin:5px 0 4px;font-size:11px;line-height:1.35;color:var(--ink)}
.quest-requirement b{display:block;margin-bottom:1px;color:var(--gold2);font-family:'Cinzel';font-size:9px;letter-spacing:.35px;text-transform:uppercase}
.quest-requirement span{display:block;color:#d8d0df}


/* M7.3.10 — boss sizing, quest copy, inactive nav grayscale */
/* Keep the boss card at the established 7.3.8 height; scale only the artwork. */
.boss-stage{height:214px}
.stage-boss{width:min(82%,330px);height:200px;top:55%;transform:translateX(-50%) translateY(-46%)}
.stage-info{padding:9px 12px 10px}
.quest-requirement{margin:4px 0 5px;font-size:11px;line-height:1.35;color:#d8d0df}
.quest-requirement span{display:block;color:#d8d0df}
.active-quest{align-items:flex-start}
.active-quest .ico{margin-top:1px}
.nav button:not(.active) .ni{filter:grayscale(1) saturate(0);opacity:.62}
.nav button.active .ni{filter:drop-shadow(0 0 6px rgba(240,160,32,.6));opacity:1}

/* v1.0 — production boss artwork sizing */
/* Keep the boss card unchanged; use full boss area width, cap height, and lift artwork 10px total. */
.stage-boss{top:calc(55% - 10px)}
.stage-boss .boss-art{
  width:auto;
  height:auto;
  max-width:100%;
  max-height:185px;
  object-fit:contain;
}
