
:root{
  --bg:#170914; --bg2:#2a0e27; --panel:rgba(255,241,231,.91); --panel2:rgba(255,255,255,.74);
  --ink:#1f1620; --muted:#746576; --gold:#f2c46d; --rose:#ff7eb6; --violet:#8d5cff; --mint:#8be0c1;
  --danger:#e15d77; --good:#84d187; --shadow:0 18px 50px rgba(0,0,0,.36); --line:rgba(255,255,255,.18);
  --radius:24px; --navh:78px;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:linear-gradient(160deg,#130814,#2a0e27 40%,#4c173d);color:#fff}
body{overflow-x:hidden}
button,input,textarea,select{font:inherit}
button{cursor:pointer;border:0}
#app{min-height:100vh; padding-bottom:calc(var(--navh) + env(safe-area-inset-bottom));}
.boot{display:grid;place-items:center;min-height:100vh;text-align:center}
.sigil{width:82px;height:82px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 35% 25%,#ffe7a9,#c45dae 70%,#34112e);font-size:52px;box-shadow:var(--shadow)}
.boot h1{font-family:Georgia,serif;font-size:44px;margin:18px 0 4px}
.boot p{color:#f4d7ea;margin:0}

.app-shell{max-width:980px;margin:0 auto;min-height:100vh;position:relative}
.topbar{position:sticky;top:0;z-index:20;padding:14px 14px 10px;background:linear-gradient(180deg,rgba(23,9,20,.97),rgba(23,9,20,.72),transparent);backdrop-filter:blur(12px)}
.brand{display:flex;align-items:center;gap:10px}
.brand .moon{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,#ffd88d,#ff75bd);color:#2a0e27;font-size:26px;font-weight:900}
.brand h1{font-size:22px;margin:0;font-family:Georgia,serif;letter-spacing:.3px}
.brand small{color:#f4c8e4;display:block;margin-top:-2px}
.phase-pill{margin-left:auto;background:rgba(255,255,255,.12);border:1px solid var(--line);border-radius:999px;padding:8px 11px;color:#ffe4f6;font-weight:800;font-size:12px}

.scene{margin:0 12px 12px;min-height:380px;border-radius:30px;overflow:hidden;position:relative;box-shadow:var(--shadow);border:1px solid rgba(255,255,255,.18);background:#241022}
.scene-bg{position:absolute;inset:0;background-size:cover;background-position:center;filter:saturate(1.05) contrast(1.04);transform:scale(1.02)}
.scene::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,7,18,.18),rgba(20,7,18,.18) 42%,rgba(20,7,18,.88));}
.character-wrap{position:absolute;right:-5%;bottom:-4%;width:62%;height:100%;z-index:2;display:flex;align-items:flex-end;justify-content:center;pointer-events:none}
.character{max-width:100%;max-height:98%;object-fit:contain;filter:drop-shadow(0 20px 26px rgba(0,0,0,.45));animation:breathe 4.8s ease-in-out infinite;mix-blend-mode:normal;border-radius:14px}
@keyframes breathe{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-6px) scale(1.018)}}
.scene-copy{position:absolute;left:18px;right:42%;bottom:18px;z-index:3}
.scene-copy h2{font-size:34px;line-height:1;margin:0 0 8px;font-family:Georgia,serif;text-shadow:0 4px 18px rgba(0,0,0,.55)}
.scene-copy p{margin:0;color:#fff1f8;line-height:1.35}
.dialogue{margin-top:14px;background:rgba(255,241,231,.9);color:#211420;border-radius:18px;padding:12px 14px;box-shadow:0 12px 30px rgba(0,0,0,.22);border:1px solid rgba(255,255,255,.45)}
.dialogue b{display:block;color:#7c235c;margin-bottom:3px}
.dialogue .choice-row{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.choice{background:#2a0e27;color:#ffe8f8;border-radius:999px;padding:8px 10px;font-weight:800;font-size:12px}

.card{margin:12px;border-radius:var(--radius);background:var(--panel);color:var(--ink);box-shadow:0 10px 24px rgba(0,0,0,.16);border:1px solid rgba(255,255,255,.65);overflow:hidden}
.card-inner{padding:16px}
.section-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 12px}
.section-title h2,.section-title h3{margin:0;font-size:21px}
.muted{color:var(--muted);font-size:13px}
.grid{display:grid;gap:12px}
.phase-list{display:grid;gap:10px}
.phase-card{background:rgba(255,255,255,.63);border:1px solid rgba(42,14,39,.1);border-radius:18px;overflow:hidden}
.phase-head{display:flex;align-items:center;gap:10px;padding:13px 14px}
.phase-head h3{margin:0;font-size:18px}
.phase-head .dot{width:12px;height:12px;border-radius:50%;background:#aaa}
.phase-head .status{margin-left:auto;font-size:12px;font-weight:900;color:#6f576b}
.phase-head.active .dot{background:linear-gradient(135deg,var(--rose),var(--gold));box-shadow:0 0 20px rgba(255,126,182,.8)}
.phase-body{padding:0 12px 13px;display:none}
.phase-card.open .phase-body{display:block}
.phase-card.locked{opacity:.55}
.task-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;background:rgba(42,14,39,.06);border:1px solid rgba(42,14,39,.1);border-radius:16px;padding:10px;margin-top:8px}
.task-row.done{background:rgba(114,211,145,.18)}
.task-title{font-weight:900}
.tag{display:inline-flex;border-radius:999px;padding:3px 8px;background:rgba(141,92,255,.14);color:#582d91;font-size:11px;font-weight:900;margin-top:4px}
.check{width:42px;height:42px;border-radius:14px;background:rgba(42,14,39,.08);border:2px solid rgba(42,14,39,.2);display:grid;place-items:center;font-weight:900}
.done .check{background:var(--good);color:#10351a;border-color:#5dbf73}
.addbox{display:grid;gap:8px;background:rgba(255,255,255,.55);border:1px dashed rgba(42,14,39,.25);border-radius:16px;padding:10px;margin-top:10px}
.input,textarea,select{width:100%;border:1px solid rgba(42,14,39,.18);background:rgba(255,255,255,.88);border-radius:14px;padding:11px 12px;color:var(--ink);outline:none}
textarea{min-height:120px}
.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.btn{background:linear-gradient(135deg,#7e2a75,#c74792);color:#fff;border-radius:999px;padding:10px 14px;font-weight:900;box-shadow:0 8px 18px rgba(126,42,117,.25)}
.btn.secondary{background:rgba(42,14,39,.08);color:#2a0e27;box-shadow:none}
.btn.gold{background:linear-gradient(135deg,#c49132,#ffcf75);color:#29130c}
.btn.danger{background:linear-gradient(135deg,#9e1937,#e15d77)}
.domain-chips{display:flex;gap:7px;overflow:auto;padding:3px 0 2px}
.domain-chip{white-space:nowrap;background:rgba(42,14,39,.07);color:#392133;border-radius:999px;padding:8px 10px;font-size:12px;font-weight:900}
.domain-chip.active{background:#2a0e27;color:#ffe5f5}
.score{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:10px}
.stat{background:rgba(255,255,255,.65);border-radius:16px;padding:11px;text-align:center}
.stat b{display:block;font-size:24px;color:#81246a}
.stat span{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#6d596b;font-weight:900}

.coach-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.coach-card{border-radius:20px;background:rgba(255,255,255,.68);overflow:hidden;border:1px solid rgba(42,14,39,.1);position:relative}
.coach-card.locked{filter:grayscale(.8);opacity:.65}
.coach-img{height:210px;background:linear-gradient(135deg,#281326,#5c2250);display:flex;align-items:flex-end;justify-content:center;overflow:hidden}
.coach-img img{max-height:100%;max-width:95%;object-fit:contain;animation:breathe 5s ease-in-out infinite}
.coach-info{padding:12px}
.coach-info h3{margin:0 0 3px}
.bondbar{height:9px;background:rgba(42,14,39,.1);border-radius:99px;overflow:hidden;margin-top:8px}
.bondbar i{display:block;height:100%;background:linear-gradient(90deg,var(--rose),var(--gold));border-radius:99px}

.report-modal,.onboarding,.modal{position:fixed;inset:0;z-index:80;background:rgba(16,5,14,.78);display:grid;place-items:center;padding:18px;backdrop-filter:blur(14px)}
.modal-card{max-width:560px;width:100%;max-height:88vh;overflow:auto;background:linear-gradient(160deg,#fff3eb,#ffe4f5);color:#211420;border-radius:28px;padding:20px;box-shadow:var(--shadow)}
.modal-card h2{font-family:Georgia,serif;font-size:34px;margin:0 0 8px}
.modal-card p{color:#554454;line-height:1.45}
.access-code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:18px;font-weight:900;background:#2a0e27;color:#ffdf8f;padding:12px;border-radius:14px;word-break:break-all}

.bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:60;height:calc(var(--navh) + env(safe-area-inset-bottom));background:rgba(255,241,231,.96);backdrop-filter:blur(14px);display:flex;justify-content:center;border-top:1px solid rgba(42,14,39,.14);box-shadow:0 -12px 30px rgba(0,0,0,.22)}
.nav-inner{max-width:980px;width:100%;display:grid;grid-template-columns:repeat(5,1fr);padding-bottom:env(safe-area-inset-bottom)}
.navbtn{background:transparent;color:#594555;font-weight:900;display:grid;place-items:center;padding-top:8px;gap:2px}
.navbtn.active{color:#9a236e}
.navbtn span{font-size:23px}
.navbtn small{font-size:11px}

.leader-row{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;background:rgba(255,255,255,.62);border-radius:15px;padding:10px;margin-top:8px}
.rank{width:34px;height:34px;border-radius:12px;background:#2a0e27;color:#ffe3a3;display:grid;place-items:center;font-weight:900}
.notice{background:rgba(255,223,143,.38);border:1px solid rgba(196,145,50,.28);border-radius:16px;padding:12px;color:#392133}
hr{border:0;height:1px;background:rgba(42,14,39,.12);margin:14px 0}
.hidden{display:none!important}
pre{white-space:pre-wrap}
@media(max-width:620px){
  .scene{min-height:430px}
  .scene-copy{right:16px;bottom:14px}
  .scene-copy h2{font-size:30px}
  .character-wrap{width:78%;right:-16%;opacity:.92}
  .dialogue{font-size:13px}
  .coach-grid{grid-template-columns:1fr 1fr}
  .coach-img{height:170px}
  .score{grid-template-columns:1fr 1fr 1fr}
}
