:root{--bg:#0b0f19;--panel:#111827;--panel-2:#0f172a;--line:#273244;--text:#f5f7fb;--muted:#94a3b8;--primary:#6366f1;--green:#10b981;--red:#ef4444;--amber:#f59e0b;--purple:#8b5cf6}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.65}.app-shell{display:grid;grid-template-columns:280px 1fr}.sidebar{height:100vh;overflow-y:auto;background:#0f1522;border-right:1px solid var(--line);padding:22px}.brand{font-weight:900;letter-spacing:0;display:flex;gap:10px;align-items:center;padding-bottom:18px;border-bottom:1px solid var(--line)}.side-group{display:grid;grid-gap:10px;gap:10px;margin-top:18px}.side-title{color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:0}.side-bottom{margin-top:28px;padding-top:18px;border-top:1px solid var(--line)}.main{height:100vh;overflow-y:auto;padding:28px}.page{max-width:1250px;margin:0 auto;display:grid;grid-gap:18px}.card{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:18px}.soft{background:rgba(15,23,42,.78)}.row{display:flex;align-items:center;justify-content:space-between;gap:14px}.stack{grid-gap:14px}.grid-2,.stack{display:grid;gap:14px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:14px}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:14px;gap:14px}.title{margin:0;font-size:23px;line-height:1.15;letter-spacing:0}.subtitle{margin:6px 0 0;font-size:13px;line-height:1.55}.subtitle,.tiny{color:var(--muted)}.tiny{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:0}.muted{color:var(--muted)}.good{color:#34d399}.warn{color:#fbbf24}.bad{color:#f87171}.btn{border:1px solid var(--line);background:#172033;color:var(--text);border-radius:8px;padding:10px 12px;font-size:13px;font-weight:800;display:inline-flex;justify-content:center;align-items:center;gap:8px;min-height:38px}.btn:hover{border-color:#475569;background:#1f2a44}.btn.primary{background:var(--primary);border-color:var(--primary)}.btn.green{background:#059669;border-color:#059669}.btn.red{background:#dc2626;border-color:#dc2626}.btn.amber{background:#b45309;border-color:#b45309}.btn.ghost{background:transparent}.btn.active{background:rgba(99,102,241,.25);border-color:var(--primary);color:#c7d2fe}.btn.full{width:100%}.tabs{display:flex;flex-wrap:wrap;gap:8px}.tab{background:#101827;border:1px solid var(--line);color:var(--muted);border-radius:8px;padding:10px 12px;font-size:13px;font-weight:800}.tab.active{color:#fff;background:var(--primary);border-color:var(--primary)}.backbar{display:flex;align-items:center;gap:10px;margin-bottom:12px}.input,.select,.textarea{width:100%;border:1px solid #334155;border-radius:8px;background:#0b1120;color:#fff;padding:11px 12px;outline:0}.textarea{min-height:130px;resize:vertical;line-height:1.5}.input:focus,.select:focus,.textarea:focus{border-color:var(--primary)}.label{display:block;color:var(--muted);font-size:12px;font-weight:800;margin-bottom:7px}.journey{position:relative;min-height:430px;overflow:hidden;background:radial-gradient(circle at 12% 22%,rgba(16,185,129,.22),transparent 26%),radial-gradient(circle at 57% 28%,rgba(139,92,246,.26),transparent 27%),radial-gradient(circle at 82% 72%,rgba(245,158,11,.18),transparent 25%),#0f172a}.journey:before{content:"";position:absolute;inset:0;background-image:linear-gradient(hsla(0,0%,100%,.04) 1px,transparent 0),linear-gradient(90deg,hsla(0,0%,100%,.04) 1px,transparent 0);background-size:28px 28px}.map-board{position:relative;min-height:330px;z-index:1}.route{left:7%;right:7%;top:50%;border-top:3px dashed hsla(0,0%,100%,.3);transform:rotate(-3deg)}.route,.step{position:absolute}.step{width:128px;min-height:116px;text-align:center;background:rgba(2,6,23,.78);border:1px solid var(--line);border-radius:8px;padding:12px;color:var(--text);font:inherit}.step.active{border-color:var(--primary);box-shadow:0 0 28px rgba(99,102,241,.34);transform:translateY(-7px)}.step.done{border-color:var(--green)}.step:disabled{cursor:default;opacity:1}.step.locked{filter:grayscale(1);opacity:.48}.step.clickable:hover{border-color:#fbbf24;transform:translateY(-5px)}.step.clickable:focus-visible{outline:2px solid #fbbf24;outline-offset:3px}.pin{width:46px;height:46px;margin:0 auto 6px;border-radius:999px;display:grid;place-items:center;background:linear-gradient(135deg,#4f46e5,#059669)}.badge{border:1px solid var(--line);border-radius:999px;padding:5px 9px;font-size:12px;font-weight:800;display:inline-flex;align-items:center;gap:6px}.badge.pending{color:#fbbf24;border-color:rgba(245,158,11,.45);background:rgba(245,158,11,.12)}.badge.approved{color:#34d399;border-color:rgba(16,185,129,.45);background:rgba(16,185,129,.12)}.badge.revision{color:#f87171;border-color:rgba(239,68,68,.45);background:rgba(239,68,68,.12)}.badge.info{color:#c4b5fd;border-color:rgba(139,92,246,.45);background:rgba(139,92,246,.12)}.quest-options{display:grid;grid-gap:8px;gap:8px;margin-top:12px}.option{text-align:left;border:1px solid var(--line);background:#0b1120;color:#fff;border-radius:8px;padding:10px}.option:hover{border-color:var(--primary)}.notice-list{display:grid;grid-gap:8px;gap:8px;max-height:240px;overflow:auto}.notice{border:1px solid var(--line);border-left:4px solid var(--primary);border-radius:8px;padding:10px;background:#0b1120;font-size:13px}.modal{position:fixed;inset:0;z-index:90;display:grid;place-items:center;padding:20px;background:rgba(0,0,0,.76)}.modal-box{width:min(680px,100%);max-height:90vh;overflow:auto}.drawer{position:fixed;top:18px;right:18px;width:min(360px,calc(100% - 36px));max-height:calc(100vh - 36px);overflow:auto;background:#070b13;border-left:1px solid var(--line);z-index:100;padding:18px;box-shadow:0 20px 80px rgba(0,0,0,.45)}.mascot{background:linear-gradient(135deg,rgba(139,92,246,.18),rgba(16,185,129,.11));border-color:rgba(167,139,250,.35)}.mascot-icon{font-size:64px;animation:bob 3s ease-in-out infinite}.mascot-icon.small{font-size:42px;min-width:48px}.story-panel{display:flex;align-items:flex-start;gap:14px;padding:14px;border:1px solid rgba(16,185,129,.28);border-radius:8px;background:linear-gradient(135deg,rgba(16,185,129,.12),rgba(99,102,241,.12))}.story-panel h3{margin:2px 0 6px;font-size:18px}.story-panel p{margin:0;color:var(--muted);font-size:13px;line-height:1.55}.story-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}@keyframes bob{0%,to{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-7px) rotate(2deg)}}.pulse{animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{box-shadow:0 0 10px rgba(139,92,246,.22)}50%{box-shadow:0 0 26px rgba(139,92,246,.52)}}@media (max-width:900px){.app-shell{grid-template-columns:1fr}.sidebar{position:relative;height:auto}.main{height:auto;padding:18px}.grid-2,.grid-3{grid-template-columns:1fr}.row{align-items:stretch;flex-direction:column}.journey{min-height:780px}.step{position:relative;left:auto!important;top:auto!important;margin:10px auto}.route{display:none}}body{background:radial-gradient(circle at 10% 0,rgba(109,40,217,.35),transparent 34%),radial-gradient(circle at 88% 18%,rgba(14,165,233,.2),transparent 30%),linear-gradient(180deg,#060917,#0a0f22 48%,#070a16)}.app-shell{display:block;min-height:100vh}.sidebar{position:-webkit-sticky;position:sticky;top:0;z-index:40;height:auto;display:grid;grid-template-columns:minmax(220px,auto) auto;align-items:center;justify-content:space-between;grid-gap:14px;gap:14px;padding:10px 18px;background:rgba(5,8,20,.88);border-right:0;border-bottom:1px solid rgba(129,140,248,.22);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.sidebar.collapsed{grid-template-columns:minmax(220px,auto) auto;justify-content:center;min-height:66px;padding:8px 18px}.sidebar.collapsed .nav-content{display:none}.nav-content{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) minmax(210px,auto);grid-gap:12px 18px;gap:12px 18px;width:100%;padding-top:10px;border-top:1px solid rgba(129,140,248,.16)}.nav-toggle{border:1px solid rgba(129,140,248,.28);background:rgba(20,27,58,.78);color:var(--text);border-radius:8px;padding:9px 12px;font-size:12px;font-weight:900}.nav-toggle:hover{border-color:rgba(196,181,253,.56)}.brand{min-height:46px;padding:0;border-bottom:0;font-size:22px}.brand span:first-child{display:grid;place-items:center;width:44px;height:44px;border-radius:16px;background:radial-gradient(circle,rgba(139,92,246,.55),rgba(15,23,42,.9));border:1px solid rgba(167,139,250,.5)}.side-group{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:8px;margin-top:0}.nav-actions{align-content:start}.theme-menu{grid-column:1/-1;padding:10px;border:1px solid rgba(129,140,248,.16);border-radius:8px;background:rgba(15,23,42,.42)}.side-title{width:100%;text-align:center}.side-bottom{grid-column:2;grid-row:1;min-width:210px;margin-top:0;padding-top:0;border-top:0}.main{height:auto;min-height:calc(100vh - 82px);padding:18px}.backbar{position:-webkit-sticky;position:sticky;top:88px;z-index:20;padding:8px 0;background:linear-gradient(180deg,rgba(7,10,22,.96),rgba(7,10,22,.72));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.page{max-width:1440px;gap:18px}.card{background:linear-gradient(180deg,rgba(13,18,42,.92),rgba(8,13,30,.92));border-color:rgba(99,102,241,.3);box-shadow:inset 0 1px 0 hsla(0,0%,100%,.04),0 18px 50px rgba(0,0,0,.24)}.btn{border-color:rgba(129,140,248,.28);background:rgba(20,27,58,.78)}.btn.active,.btn.primary{background:linear-gradient(180deg,#7c3aed,#4c1d95);border-color:rgba(196,181,253,.52);box-shadow:0 12px 28px rgba(88,28,135,.32)}.dashboard-hero{display:grid;grid-template-columns:minmax(0,1fr) 420px;grid-gap:18px;gap:18px}.hero-talk{display:grid;grid-template-columns:190px 1fr;grid-gap:20px;gap:20px;align-items:center;min-height:230px;overflow:hidden}.mascot-frame{display:grid;place-items:center;min-height:180px;border-radius:8px;background:radial-gradient(circle at 50% 38%,rgba(167,139,250,.42),transparent 42%),linear-gradient(145deg,rgba(30,41,59,.62),rgba(67,56,202,.16));border:1px solid rgba(167,139,250,.25)}.mascot-icon.big{font-size:92px}.speech-card{position:relative;padding:16px 18px;border:1px solid rgba(168,85,247,.35);border-radius:8px;background:rgba(2,6,23,.42)}.speech-card:before{content:"";position:absolute;left:-14px;top:54px;width:24px;height:24px;transform:rotate(45deg);background:rgba(2,6,23,.72);border-left:1px solid rgba(168,85,247,.35);border-bottom:1px solid rgba(168,85,247,.35)}.stat-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:14px;gap:14px}.stat-card{display:grid;place-items:center;min-height:170px;border:1px solid rgba(99,102,241,.3);border-radius:8px;background:linear-gradient(180deg,rgba(30,41,85,.78),rgba(15,23,42,.92))}.stat-card span{font-size:54px;filter:drop-shadow(0 0 16px rgba(245,158,11,.45))}.stat-card small{color:var(--muted);font-weight:800}.stat-card strong{font-size:30px}.stat-card.rank{border-color:rgba(245,158,11,.45);background:linear-gradient(180deg,rgba(80,44,12,.75),rgba(15,23,42,.92))}.dashboard-grid{display:grid;grid-template-columns:250px minmax(0,1fr) 260px;grid-gap:18px;gap:18px;align-items:stretch}.dashboard-grid.honor-collapsed{grid-template-columns:250px minmax(0,1fr) 72px}.honor-card,.project-pass{display:grid;align-content:start;grid-gap:14px;gap:14px}.project-pass{border-color:rgba(16,185,129,.55);background:linear-gradient(180deg,rgba(6,78,59,.3),rgba(8,13,30,.92))}.divider{height:1px;background:rgba(148,163,184,.16);margin:4px 0}.map-feature{min-height:560px;background:radial-gradient(circle at 32% 28%,rgba(22,163,74,.35),transparent 20%),radial-gradient(circle at 52% 40%,rgba(124,58,237,.45),transparent 22%),radial-gradient(circle at 72% 54%,rgba(245,158,11,.34),transparent 20%),radial-gradient(circle at 43% 70%,rgba(6,182,212,.35),transparent 18%),linear-gradient(180deg,#07152d,#08213a 52%,#06101f)}.map-feature .map-board{min-height:450px}.map-feature .route{top:48%;border-top-color:hsla(0,0%,100%,.72)}.map-feature .step{width:142px;min-height:124px;background:rgba(8,13,30,.86);border-color:hsla(0,0%,100%,.18);box-shadow:0 16px 38px rgba(0,0,0,.35)}.step.done{animation:unlockedPulse 2.8s ease-in-out infinite}.step.active .pin{box-shadow:0 0 28px rgba(251,191,36,.55)}.map-region{display:block;margin-top:7px;color:#fbbf24;font-size:10px;font-weight:900}.honor-card{text-align:center;border-color:rgba(168,85,247,.45);background:radial-gradient(circle at 50% 22%,rgba(245,158,11,.25),transparent 30%),linear-gradient(180deg,rgba(59,7,100,.55),rgba(8,13,30,.92))}.honor-card.closed{padding:10px;align-content:center}.panel-toggle{display:grid;grid-gap:6px;gap:6px;justify-items:center;width:100%;min-height:52px;border:1px solid rgba(245,158,11,.34);border-radius:8px;background:rgba(15,23,42,.5);color:var(--text);padding:10px;font-weight:900}.honor-card.closed .panel-toggle span{writing-mode:vertical-rl;transform:rotate(180deg)}.panel-toggle strong{color:#fbbf24;font-size:12px}.podium{display:flex;justify-content:center;align-items:flex-end;gap:14px;min-height:120px;font-size:44px}.podium strong{font-size:70px}.reward-list{display:grid;grid-gap:10px;gap:10px;text-align:left}.bottom-companion,.daily-strip,.gameplay-grid,.info-grid,.journal-card{margin-top:0}.gameplay-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,.75fr) minmax(240px,.75fr);grid-gap:14px;gap:14px}.chain-card,.challenge-card,.season-card{display:grid;align-content:start;grid-gap:12px;gap:12px}.chain-steps{display:grid;grid-gap:8px;gap:8px}.chain-step{display:grid;grid-template-columns:34px 1fr;grid-gap:10px;gap:10px;align-items:start;padding:10px;border:1px solid rgba(148,163,184,.18);border-radius:8px;background:rgba(15,23,42,.42)}.chain-step span{display:grid;place-items:center;width:28px;height:28px;border-radius:999px;background:rgba(148,163,184,.16);font-weight:900}.chain-step p{margin:4px 0 0;color:var(--muted);font-size:12px}.chain-step.done{border-color:rgba(16,185,129,.48);background:rgba(16,185,129,.1)}.chain-step.done span{background:rgba(16,185,129,.22);color:#34d399}.chain-step.pending span{background:rgba(245,158,11,.18);color:#fbbf24}.chain-step.revision span{background:rgba(239,68,68,.18);color:#f87171}.story-unlock{padding:10px;border:1px solid rgba(245,158,11,.38);border-radius:8px;background:rgba(245,158,11,.1);color:#fde68a}.final-gate{grid-column:1/-1;display:grid;grid-template-columns:auto 1fr auto;grid-gap:14px;gap:14px;align-items:center;border-color:rgba(245,158,11,.5);background:radial-gradient(circle at 12% 30%,rgba(245,158,11,.2),transparent 28%),linear-gradient(135deg,rgba(59,7,100,.52),rgba(8,47,73,.46),rgba(15,23,42,.92))}.final-gate.approved{border-color:rgba(16,185,129,.55);background:radial-gradient(circle at 12% 30%,rgba(16,185,129,.2),transparent 28%),linear-gradient(135deg,rgba(6,78,59,.38),rgba(8,47,73,.42),rgba(15,23,42,.92))}.challenge-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px;border:1px solid rgba(129,140,248,.2);border-radius:8px;background:rgba(15,23,42,.42)}.season-card{border-color:rgba(245,158,11,.42);background:radial-gradient(circle at 80% 10%,rgba(245,158,11,.18),transparent 34%),linear-gradient(180deg,rgba(30,41,85,.78),rgba(15,23,42,.92))}.quest-strip{display:grid;grid-template-columns:repeat(5,minmax(160px,1fr));grid-gap:14px;gap:14px;margin-top:16px}.mini-game{display:grid;grid-gap:10px;gap:10px;min-height:230px;padding:16px;border:1px solid rgba(236,72,153,.38);border-radius:8px;background:linear-gradient(180deg,rgba(83,15,54,.76),rgba(38,16,35,.86))}.mini-game p{margin:0;color:var(--muted);font-size:12px;line-height:1.45}.mini-game span{color:#fbbf24;font-weight:900}.mini-icon{display:grid;place-items:center;width:58px;height:58px;border-radius:8px;background:rgba(251,191,36,.16);font-size:32px}.mini-game.color-1{border-color:rgba(245,158,11,.44);background:linear-gradient(180deg,rgba(92,49,13,.72),rgba(44,20,10,.86))}.mini-game.color-2{border-color:rgba(249,115,22,.44)}.mini-game.color-3{border-color:rgba(217,70,239,.44)}.mini-game.color-4{border-color:rgba(6,182,212,.44);background:linear-gradient(180deg,rgba(8,47,73,.72),rgba(8,13,30,.86))}.quest-card{position:relative;overflow:hidden}.quest-card:before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(135deg,hsla(0,0%,100%,.05),transparent 35%)}.quest-card.type-ethics{border-color:rgba(16,185,129,.45)}.quest-card.type-order{border-color:rgba(245,158,11,.45)}.quest-card.type-source{border-color:rgba(14,165,233,.45)}.quest-card.type-match,.quest-card.type-pair{border-color:rgba(217,70,239,.45)}.info-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:14px;gap:14px}.clean-list{display:grid;grid-gap:10px;gap:10px;margin:14px 0 0;padding-left:18px;color:#dbeafe;font-size:13px}.badge-grid,.inventory-list{display:grid;grid-gap:8px;gap:8px;margin-top:12px}.inventory-item{display:grid;grid-template-columns:34px 1fr;grid-gap:10px;gap:10px;align-items:center;padding:10px;border:1px solid rgba(148,163,184,.18);border-radius:8px;background:rgba(15,23,42,.42);filter:grayscale(1);opacity:.55}.inventory-item.earned{filter:none;opacity:1;border-color:rgba(34,211,238,.42);background:rgba(14,165,233,.1)}.inventory-item span{font-size:24px}.inventory-item p{margin:3px 0 0;color:var(--muted);font-size:11px}.journal-card{display:grid;grid-gap:12px;gap:12px}.journal-list{display:grid;grid-gap:8px;gap:8px;max-height:220px;overflow:auto}.achievement{display:grid;grid-template-columns:auto 1fr;grid-gap:2px 10px;gap:2px 10px;align-items:center;padding:10px;border:1px solid rgba(148,163,184,.18);border-radius:8px;background:rgba(15,23,42,.42);filter:grayscale(1);opacity:.58}.achievement.earned{filter:none;opacity:1;border-color:rgba(245,158,11,.45);background:rgba(245,158,11,.1)}.achievement span{grid-row:span 2;font-size:26px}.achievement small{color:var(--muted);font-size:11px}.revision-quest{display:flex;gap:12px;align-items:flex-start;padding:12px;margin:12px 0;border:1px solid rgba(245,158,11,.42);border-radius:8px;background:linear-gradient(135deg,rgba(245,158,11,.14),rgba(124,58,237,.12))}.revision-quest p{margin:6px 0 8px;color:#fde68a}.notice-list.compact{max-height:180px}.bottom-companion{display:grid;grid-template-columns:auto 1fr auto;align-items:center;grid-gap:16px;gap:16px;border-color:rgba(16,185,129,.48)}.player-chip{display:flex;align-items:center;gap:12px;min-width:230px}.avatar-orb{display:grid;place-items:center;width:58px;height:58px;border:1px solid rgba(167,139,250,.5);border-radius:999px;background:radial-gradient(circle,rgba(124,58,237,.6),rgba(15,23,42,.92));font-size:30px}.xp-bar{width:150px;height:9px;overflow:hidden;border-radius:999px;background:rgba(148,163,184,.2)}.xp-bar span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#22d3ee,#8b5cf6,#ec4899)}.teacher-progress{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.progress-card{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid rgba(16,185,129,.28);border-radius:8px;background:rgba(6,78,59,.14)}.project-detail{display:grid;grid-gap:8px;gap:8px}.final-page{display:grid;grid-gap:16px;gap:16px}.final-hero{display:grid;grid-template-columns:auto 1fr;grid-gap:16px;gap:16px;align-items:center;padding:14px;border:1px solid rgba(245,158,11,.36);border-radius:8px;background:radial-gradient(circle at 8% 50%,rgba(245,158,11,.18),transparent 30%),rgba(15,23,42,.45)}.final-layout{display:grid;grid-template-columns:minmax(240px,.42fr) minmax(0,1fr);grid-gap:14px;gap:14px;align-items:start}.approved-index{display:grid;grid-gap:8px;gap:8px;max-height:720px;overflow:auto}.final-textarea{min-height:520px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;line-height:1.55}.final-review{border-color:rgba(245,158,11,.45);background:rgba(245,158,11,.1)}.final-review p:not(.subtitle){max-height:320px;overflow:auto;white-space:pre-wrap;padding:12px;border:1px solid rgba(148,163,184,.18);border-radius:8px;background:rgba(15,23,42,.45)}.final-review.approved{border-color:rgba(16,185,129,.45);background:rgba(16,185,129,.1)}.auth{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 20% 20%,rgba(16,185,129,.16),transparent 28%),radial-gradient(circle at 80% 80%,rgba(99,102,241,.2),transparent 28%),var(--bg)}.auth .card{background:var(--panel);border:1px solid var(--line);box-shadow:none}.auth-box{width:min(440px,100%)}.auth .btn{border:1px solid var(--line);background:#172033;box-shadow:none}.auth .btn:hover{border-color:#475569;background:#1f2a44}.auth .btn.primary{background:var(--primary);border-color:var(--primary)}.auth .btn.ghost{background:transparent}@media (max-width:1200px){.sidebar{grid-template-columns:1fr;padding:12px}.brand{justify-content:center;min-height:auto}.side-bottom{justify-self:center;text-align:center}.dashboard-grid,.dashboard-hero,.gameplay-grid,.info-grid{grid-template-columns:1fr}.quest-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.final-gate,.final-layout{grid-template-columns:1fr}}@media (max-width:700px){.bottom-companion,.hero-talk,.quest-strip,.stat-row{grid-template-columns:1fr}}@keyframes unlockedPulse{0%,to{box-shadow:0 16px 38px rgba(0,0,0,.35)}50%{box-shadow:0 16px 42px rgba(16,185,129,.32)}}main.auth{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 20% 20%,rgba(16,185,129,.16),transparent 28%),radial-gradient(circle at 80% 80%,rgba(99,102,241,.2),transparent 28%),var(--bg)}main.auth .auth-box{width:min(440px,100%);display:block;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:18px;box-shadow:none}main.auth .title{margin:0;font-size:23px;line-height:1.15}main.auth .subtitle{margin:6px 0 0;color:var(--muted);font-size:13px;line-height:1.55}main.auth .stack{display:grid;grid-gap:14px;gap:14px}main.auth label{display:block}main.auth .label{display:block;color:var(--muted);font-size:12px;font-weight:800;margin-bottom:7px}main.auth .input,main.auth .select,main.auth .textarea{width:100%;border:1px solid #334155;border-radius:8px;background:#0b1120;color:#fff;padding:11px 12px;outline:0}main.auth .input:focus,main.auth .select:focus,main.auth .textarea:focus{border-color:var(--primary)}main.auth .btn{width:auto;border:1px solid var(--line);background:#172033;color:var(--text);border-radius:8px;padding:10px 12px;font-size:13px;font-weight:800;min-height:38px;box-shadow:none}main.auth .btn:hover{border-color:#475569;background:#1f2a44}main.auth .btn.primary{background:var(--primary);border-color:var(--primary)}main.auth .btn.ghost{background:transparent}main.auth .btn.full{width:100%}