:root{color:#f2ead7;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--bg:#111614;--surface:#1a211f;--surface-2:#202a27;--surface-3:#2a2922;--panel:#efe0b4;--panel-2:#f6eac6;--panel-3:#dcc78d;--ink:#211a12;--ink-soft:#57442b;--text:#f2ead7;--text-muted:#b8aa8f;--line:#3d4942;--line-strong:#79623a;--gold:#d9a441;--gold-bright:#f1c76b;--teal:#38a58a;--teal-dark:#1f6e5b;--red:#c55358;--violet:#8b6fc2;--blue:#5e8dc9;--green:#76a85a;--shadow:0 16px 38px #00000052;background:#111614;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;color:var(--text);background:linear-gradient(90deg,#ffffff08 1px,#0000 1px) 0 0/48px 48px,linear-gradient(0deg,#ffffff08 1px,#0000 1px) 0 0/48px 48px,linear-gradient(135deg,#101513,#18211e 46%,#241c18);margin:0}button,input,select{font:inherit}button{cursor:pointer;transition:transform .12s,border-color .12s,background-color .12s}button:hover:not(:disabled){transform:translateY(-1px)}button:disabled{cursor:not-allowed;opacity:.5}h1,h2,h3,p{overflow-wrap:anywhere}h2,h3{margin:0}.center-screen,.auth-screen,.app-shell{min-height:100vh}.center-screen{place-items:center;padding:24px;display:grid}.auth-screen{grid-template-columns:minmax(0,1fr) 420px;align-items:center;gap:32px;padding:48px;display:grid}.auth-copy{max-width:700px}.auth-copy h1{color:var(--gold-bright);margin:0;font-size:72px;line-height:.95}.auth-copy p:not(.eyebrow){max-width:560px;color:var(--text-muted);font-size:18px;line-height:1.6}.panel,.loading-panel{border:1px solid var(--line-strong);background:var(--panel);color:var(--ink);box-shadow:var(--shadow);border-radius:8px}.panel{padding:22px}.loading-panel{padding:32px}.setup-panel{max-width:680px}.setup-panel pre{border:1px solid var(--line);color:var(--gold-bright);background:#101513;border-radius:8px;padding:16px;overflow-x:auto}.auth-panel{gap:18px;display:grid}.eyebrow{color:var(--gold);letter-spacing:0;text-transform:uppercase;margin:0 0 7px;font-size:12px;font-weight:900}.stack{gap:14px;display:grid}label{color:var(--ink-soft);gap:8px;font-size:14px;font-weight:800;display:grid}input,select{width:100%;min-height:42px;color:var(--ink);background:#fff5d0;border:1px solid #947c4d;border-radius:6px;padding:0 12px}select{cursor:pointer}.segmented-control{background:#d8bf7b;border:1px solid #947c4d;border-radius:8px;grid-template-columns:1fr 1fr;gap:6px;padding:5px;display:grid}.segmented-control button,.sidebar nav button,.ghost-button{color:inherit;background:0 0;border:0;border-radius:6px}.segmented-control button{min-height:38px}.segmented-control button.active{color:var(--ink);background:#fff1bf;font-weight:900}.primary-button,.ghost-button{min-height:40px;padding:0 14px;font-weight:900}.primary-button{color:#1e1308;background:linear-gradient(#f1c76b,#b87524);border:1px solid #f0c264;border-radius:6px;box-shadow:inset 0 1px #ffffff59}.primary-button:hover:not(:disabled){background:linear-gradient(#ffd77d,#c47c2a);border-color:#ffe08c}.ghost-button{border:1px solid var(--line-strong);color:var(--text);background:#fff4c914}.panel .ghost-button,.building-row .ghost-button,.companion-card .ghost-button,.stage-card .ghost-button{color:var(--ink)}.ghost-button:hover:not(:disabled){border-color:var(--gold)}.form-message,.error-banner{border-radius:6px;margin:0;padding:12px}.form-message{color:#365423;background:#e7f1d6;border:1px solid #7da25f}.error-banner{color:#8d2933;background:#f2d2ce;border:1px solid #b75f61}.app-shell{grid-template-columns:268px minmax(0,1fr);display:grid}.sidebar{border-right:1px solid var(--line);background:linear-gradient(#ffffff0a,#0000 180px),#151c1a;grid-template-rows:auto 1fr auto;gap:22px;padding:20px;display:grid;box-shadow:10px 0 28px #00000038}.brand-block{grid-template-columns:48px minmax(0,1fr);align-items:center;gap:12px;display:grid}.brand-mark{border:1px solid var(--gold);width:48px;height:48px;color:var(--gold-bright);background:#232e2b;border-radius:8px;place-items:center;font-size:16px;font-weight:900;display:grid;box-shadow:inset 0 0 0 3px #d9a44124}.sidebar h1{color:var(--text);margin:0;font-size:22px;line-height:1.05}.sidebar nav{align-content:start;gap:8px;display:grid}.sidebar nav button{min-height:42px;color:var(--text-muted);text-align:left;border:1px solid #0000;padding:0 12px}.sidebar nav button:hover{color:var(--text);background:#ffffff0d;border-color:#d9a44147}.sidebar nav button.active{border-color:var(--gold);color:var(--gold-bright);background:#d9a44124;font-weight:900}.content-shell{align-content:start;gap:22px;min-width:0;padding:22px;display:grid}.view-stack{gap:18px;width:100%;max-width:1180px;margin:0 auto;display:grid}.view-header{justify-content:space-between;align-items:center;gap:16px;min-height:54px;display:flex}.view-header h2{color:var(--text);font-size:31px;line-height:1}.resource-belt{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.resource-token{border:1px solid var(--line);min-height:70px;box-shadow:var(--shadow);background:#19231f;border-radius:8px;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:10px;padding:12px;display:grid}.resource-token:before{color:#111614;content:"";border-radius:8px;place-items:center;width:42px;height:42px;font-weight:900;display:grid}.gold-token:before{content:"G";background:linear-gradient(#ffe38b,#b87924)}.gem-token:before{content:"M";background:linear-gradient(#89dbff,#4c63c7)}.fame-token:before{content:"F";background:linear-gradient(#e7d6ff,#8060bd)}.income-token:before{content:"/s";background:linear-gradient(#9fe7c8,#2f8a69)}.resource-token span{color:var(--text-muted);text-transform:uppercase;font-size:12px;font-weight:900;display:block}.resource-token strong{color:var(--gold-bright);margin-top:4px;font-size:22px;line-height:1;display:block}.realm-board{grid-template-columns:280px minmax(0,1.35fr) 280px;gap:12px;display:grid}.hero-command-panel,.world-route-panel,.village-command-panel{border:1px solid var(--line-strong);min-height:330px;color:var(--ink);box-shadow:var(--shadow);background:linear-gradient(#fff6d6f5,#e0c584fa);border-radius:8px;align-content:start;gap:14px;padding:16px;display:grid}.hero-portrait{background:radial-gradient(circle at 50% 35%,#f2d78f 0 18%,#0000 19%),linear-gradient(160deg,#345e65,#1b302f 50%,#271b16);border:1px solid #8e6b35;border-radius:8px;place-items:center;height:126px;display:grid}.hero-portrait span{border:1px solid var(--gold);width:64px;height:64px;color:var(--gold-bright);background:#101513;border-radius:50%;place-items:center;font-size:22px;font-weight:900;display:grid}.progress-track{background:#bfa46a;border:1px solid #75643f;border-radius:999px;height:12px;overflow:hidden}.progress-track span{border-radius:inherit;background:linear-gradient(90deg, var(--teal-dark), var(--teal), var(--gold));height:100%;display:block}.route-header{justify-content:space-between;gap:12px;display:flex}.route-header strong{color:#5b3811;white-space:nowrap;background:#d9a44129;border:1px solid #d9a44175;border-radius:6px;align-self:start;padding:5px 8px}.route-map{background:linear-gradient(135deg,#38a58a29,#0000),#d9c385;border:1px solid #8e6b35;border-radius:8px;grid-template-columns:34px 1fr 34px 1fr 34px;align-items:center;min-height:128px;padding:20px;display:grid}.route-node{background:#f6eac6;border:2px solid #6f5a32;border-radius:50%;width:34px;height:34px;display:block}.route-node.complete{border-color:var(--teal-dark);background:var(--teal)}.route-node.active{background:var(--gold-bright);border-color:#7e4b15;box-shadow:0 0 0 6px #d9a44133}.route-line{background:#8e6b35;height:5px;display:block}.route-line.complete{background:var(--teal-dark)}.mini-building-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.mini-building-grid span{color:#543817;background:#d9c385;border:1px solid #8e6b35;border-radius:8px;place-items:center;min-height:54px;font-weight:900;display:grid}.metrics-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.metric,.building-row,.action-grid button,.companion-card,.stage-card,.adventure-side{border:1px solid var(--line-strong);background:var(--panel);color:var(--ink);box-shadow:var(--shadow);border-radius:8px}.metric{gap:8px;min-height:96px;padding:15px;display:grid}.metric span,.muted{color:var(--ink-soft)}.metric span{text-transform:uppercase;font-size:12px;font-weight:900}.metric strong{color:var(--ink);font-size:28px;line-height:1}.action-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.action-grid button{text-align:left;gap:8px;min-height:128px;padding:16px;display:grid}.action-grid button:hover{border-color:var(--gold)}.action-grid strong{color:#4a3116;font-size:18px}.action-grid span{color:var(--ink-soft);line-height:1.45}.resource-pill{border:1px solid var(--gold);color:var(--gold-bright);background:#1b2421;border-radius:8px;padding:9px 12px;font-weight:900}.building-list{gap:10px;display:grid}.building-row{grid-template-columns:58px minmax(0,1fr) auto;align-items:center;gap:16px;padding:16px;display:grid}.building-emblem{color:#513513;background:linear-gradient(#f8e7bd,#caa560);border:1px solid #8e6b35;border-radius:8px;place-items:center;width:58px;height:58px;font-weight:900;display:grid;box-shadow:inset 0 0 0 4px #ffffff2e}.row-title{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.row-title span,.card-heading strong{color:#284f83;background:#5e8dc921;border:1px solid #5e8dc961;border-radius:6px;padding:3px 7px;font-weight:900}.building-row p{color:var(--ink-soft);margin:8px 0 12px}.assignment-list{flex-wrap:wrap;gap:6px;margin-top:12px;display:flex}.assignment-list span,.rarity-tag{color:#145b4a;background:#38a58a21;border:1px solid #38a58a52;border-radius:6px;padding:4px 7px;font-size:12px;font-weight:900}dl{flex-wrap:wrap;gap:12px 20px;margin:0;display:flex}dt{color:#73572e;text-transform:uppercase;font-size:12px;font-weight:900}dd{color:var(--ink);margin:3px 0 0;font-weight:900}.companion-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.companion-card{align-content:start;gap:14px;padding:16px;display:grid}.companion-card p{color:var(--ink-soft);margin:0;line-height:1.45}.card-heading{grid-template-columns:58px minmax(0,1fr) auto;align-items:start;gap:12px;display:grid}.card-heading h3{margin-bottom:7px}.companion-portrait{border:1px solid var(--line-strong);width:58px;height:58px;color:var(--gold-bright);background:#202a27;border-radius:8px;place-items:center;font-weight:900;display:grid}.companion-portrait.rarity-common{background:linear-gradient(145deg,#3e5236,#1c2720);border-color:#91a66f}.companion-portrait.rarity-rare{background:linear-gradient(145deg,#31577c,#1b2834);border-color:#7ba4c7}.companion-portrait.rarity-epic{background:linear-gradient(145deg,#61458a,#241d31);border-color:#ae91d0}.companion-portrait.rarity-mythic{background:linear-gradient(145deg,#8e5418,#2b2116);border-color:#daa757}.power-block{background:#dceac5;border:1px solid #38a58a5c;border-radius:8px;gap:4px;padding:12px;display:grid}.power-block span,.power-block small{color:#3d5940;font-weight:900}.power-block span{text-transform:uppercase;font-size:12px}.power-block strong{color:#174f3f;font-size:27px;line-height:1}.rarity-tag{text-transform:capitalize;display:inline-flex}.rarity-tag.common{color:#4b6236;background:#e5edcf;border-color:#91a66f}.rarity-tag.rare{color:#245b7c;background:#dcecf5;border-color:#7ba4c7}.rarity-tag.epic{color:#65418a;background:#ece2f5;border-color:#ae91d0}.rarity-tag.mythic{color:#835118;background:#f9e6bd;border-color:#daa757}.rarity-tag.ancient,.rarity-tag.celestial{color:#823232;background:#f2dada;border-color:#c98383}.adventure-panel{grid-template-columns:minmax(0,1fr) 320px;gap:10px;display:grid}.stage-card,.adventure-side{padding:16px}.stage-card{gap:16px;display:grid}.battle-scene{background:linear-gradient(#315b911f,#0000),#d9c385;border:1px solid #8e6b35;border-radius:8px;grid-template-columns:112px minmax(0,1fr) 112px;align-items:center;gap:12px;min-height:140px;padding:14px;display:grid}.party-side,.enemy-side{justify-content:center;align-items:center;gap:8px;display:flex}.unit-token,.enemy-sigil{border-radius:8px;place-items:center;width:48px;height:48px;font-weight:900;display:grid}.unit-token{border:1px solid var(--teal-dark);color:#d9fff0;background:#1f6e5b}.companion-unit{background:#31577c;border-color:#7ba4c7}.enemy-sigil{color:#ffe4db;background:#8c323d;border:1px solid #9c3f49}.battle-lane{background:#8e6b35;border-radius:999px;height:8px;overflow:hidden}.battle-lane span{background:linear-gradient(90deg, var(--teal), var(--gold));width:60%;height:100%;display:block}.stage-card p:not(.eyebrow),.adventure-side p{color:var(--ink-soft);line-height:1.45}.stage-meter{background:#bfa46a;border:1px solid #75643f;border-radius:6px;height:15px;overflow:hidden}.stage-meter span{border-radius:inherit;background:linear-gradient(90deg, var(--teal-dark), var(--teal), var(--gold));height:100%;display:block}.button-row{flex-wrap:wrap;gap:10px;display:flex}.button-row .primary-button,.button-row .ghost-button{min-width:118px}.profile-panel{align-items:center;gap:16px;display:flex}.avatar-frame{border:1px solid var(--gold);width:72px;height:72px;color:var(--gold-bright);background:#202a27;border-radius:8px;flex:none;place-items:center;font-size:32px;font-weight:900;display:grid}@media (width<=980px){.app-shell{grid-template-columns:1fr}.auth-screen{grid-template-columns:1fr;padding:24px}.auth-copy h1{font-size:52px}.sidebar{z-index:2;border-right:0;border-bottom:1px solid var(--line);grid-template-rows:auto auto;padding:14px;position:sticky;top:0}.sidebar nav{grid-template-columns:repeat(3,minmax(0,1fr))}.sidebar>.ghost-button{display:none}.resource-belt,.metrics-grid,.action-grid,.companion-grid,.realm-board{grid-template-columns:repeat(2,minmax(0,1fr))}.world-route-panel{grid-column:1/-1}.adventure-panel{grid-template-columns:1fr}}@media (width<=620px){.content-shell{padding:14px}.view-header,.building-row,.profile-panel{flex-direction:column;grid-template-columns:1fr;align-items:stretch}.resource-belt,.metrics-grid,.action-grid,.companion-grid,.realm-board,.sidebar nav{grid-template-columns:1fr}.world-route-panel{grid-column:auto}.battle-scene{grid-template-columns:1fr}.battle-lane{height:6px}.card-heading{grid-template-columns:48px minmax(0,1fr)}.level-chip{grid-column:1/-1;justify-self:start}.view-header h2{font-size:27px}.button-row .primary-button,.button-row .ghost-button{width:100%}}
