*{box-sizing:border-box}body{margin:0;min-height:100vh;background:linear-gradient(#201936,#382b55 55%,#241b38);color:#fbf7ff;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button{font:inherit}main{max-width:720px;margin:auto;padding:18px 16px 40px}header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.eyebrow{font-size:12px;letter-spacing:.2em;font-weight:900;color:#d8c7ff}h1{font-size:27px;margin:3px 0}.wallet{padding:10px 14px;background:#ffffff15;border:1px solid #ffffff22;border-radius:999px;font-size:18px}.pet-card{overflow:hidden;background:#f7efff;color:#2a2139;border-radius:28px;box-shadow:0 18px 60px #0005}.sky{position:relative;min-height:330px;display:grid;place-items:center;background:radial-gradient(circle at 50% 55%,#ffd7f3 0 13%,#a982d4 42%,#4a376b 80%)}.stars{position:absolute;inset:24px auto auto 28px;color:#fff9;font-size:28px;letter-spacing:.5em}.pet{position:relative;width:185px;height:185px;border:0;border-radius:46% 46% 42% 42%;background:linear-gradient(145deg,#fff,#ecd8ff);box-shadow:0 22px 40px #35234c66,inset 0 -12px 25px #b485cf44;color:#38284c;cursor:pointer;animation:float 3.2s ease-in-out infinite}.pet:active{transform:scale(.96)}.ears{position:absolute;top:-30px;left:0;right:0;font-size:55px;color:#ead2ff;letter-spacing:42px;text-shadow:0 6px 0 #8d67ad55}.face{font-size:45px;font-weight:900}.tail{position:absolute;right:-42px;bottom:34px;font-size:58px;color:#e8cdfc;transform:rotate(-18deg)}.speech{position:absolute;right:22px;top:30px;background:#fff;color:#3a2a4c;padding:10px 14px;border-radius:16px 16px 4px 16px;font-weight:800;box-shadow:0 8px 22px #0002}@keyframes float{50%{transform:translateY(-9px)}}.identity{display:flex;justify-content:space-between;align-items:center;padding:18px 20px 8px}.identity h2{font-size:28px;margin:0}.identity p{margin:2px 0;color:#786b87}.level{background:#4b3566;color:#fff;padding:9px 12px;border-radius:14px;font-weight:800}.xp{height:10px;margin:0 20px 16px;background:#d9cbe4;border-radius:999px;overflow:hidden}.xp span{display:block;height:100%;width:0;background:linear-gradient(90deg,#8b5ce6,#e36bb5);transition:width .35s}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:0 16px}.stats div{background:#fff;border:1px solid #e5d9ed;border-radius:15px;padding:10px;text-align:center}.stats span{display:block;font-size:12px;color:#786b87}.stats b{font-size:22px}.actions{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:16px}.actions button{min-height:64px;border:0;border-radius:16px;background:#4b3566;color:#fff;font-size:24px;font-weight:900;cursor:pointer}.actions button span{display:block;font-size:13px;margin-top:3px}.menu-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}.menu-grid button{min-height:126px;border:1px solid #ffffff22;border-radius:22px;background:#ffffff12;color:#fff;text-align:left;padding:18px;cursor:pointer}.menu-grid b{display:block;font-size:32px}.menu-grid span{display:block;font-size:19px;font-weight:900;margin-top:7px}.menu-grid small{display:block;color:#d8cce8;margin-top:3px}.panel{margin-top:14px;background:#f8f2ff;color:#2d233b;border-radius:24px;padding:20px}.panel h2{margin-top:0}.panel h3{margin:16px 0 7px}.panel button{min-height:48px;border:0;border-radius:13px;background:#4b3566;color:#fff;padding:10px 14px;font-weight:800}.items,.places,.memories{display:grid;gap:8px}.item,.place,.memory{padding:12px;background:#fff;border:1px solid #e2d7eb;border-radius:14px}.place.locked{opacity:.55}.place strong,.memory strong{display:block}.adventure-card{display:grid;gap:12px}.choice-grid{display:grid;gap:8px}.reward{padding:14px;background:#efe5ff;border-radius:15px}.tag{display:inline-block;padding:3px 8px;border-radius:999px;background:#e5d8f2;font-size:12px;font-weight:800;margin-top:5px}.hide{display:none}@media(max-width:420px){main{padding:12px 10px 30px}.sky{min-height:300px}.pet{width:165px;height:165px}.menu-grid{gap:9px}.menu-grid button{min-height:116px;padding:15px}.stats{padding:0 12px}.actions{padding:12px}.speech{right:12px;top:16px}}
/* Vixli home / land V0.3 */
.home-summary{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:12px 0 16px}.home-summary div{background:#fff;border:1px solid #e2d7eb;border-radius:14px;padding:12px}.home-summary span{display:block;font-size:12px;color:#786b87}.home-summary strong{font-size:20px}.buildings{display:grid;gap:10px}.building{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:14px;background:#fff;border:1px solid #e2d7eb;border-radius:16px}.building-icon{font-size:32px}.building h3{margin:0 0 3px}.building p{margin:0;color:#786b87;font-size:13px;line-height:1.35}.building .lvl{display:block;margin-top:5px;font-size:12px;font-weight:900;color:#5a3c75}.building button{min-width:105px}.building button:disabled{opacity:.5}.home-note{margin-top:14px;padding:12px 14px;background:#efe5ff;border-radius:14px;font-size:13px;line-height:1.4}@media(max-width:480px){.building{grid-template-columns:auto 1fr}.building button{grid-column:1/-1;width:100%}.home-summary{grid-template-columns:1fr 1fr}}

/* Vixli market V0.4 */
.shop-grid{display:grid;gap:10px}.shop-item{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:14px;background:#fff;border:1px solid #e2d7eb;border-radius:16px}.shop-icon{font-size:32px}.shop-item h3{margin:0 0 3px}.shop-item p{margin:0;color:#786b87;font-size:13px;line-height:1.35}.shop-item .owned{display:inline-block;margin-top:5px;padding:3px 8px;border-radius:999px;background:#e8f4e6;color:#38613b;font-size:11px;font-weight:900}.shop-item button{min-width:105px}.shop-item button:disabled{opacity:.5}.market-banner{padding:12px 14px;margin-bottom:12px;border-radius:14px;background:linear-gradient(135deg,#f7e8ff,#fff1da);line-height:1.4}.market-banner strong{display:block;font-size:18px}@media(max-width:480px){.shop-item{grid-template-columns:auto 1fr}.shop-item button{grid-column:1/-1;width:100%}}

/* Vixli bond/personality V0.5 */
.bond-card{padding:15px;background:linear-gradient(135deg,#fff3fb,#f0e8ff);border:1px solid #e2d7eb;border-radius:16px;margin-bottom:12px}.bond-card strong{font-size:24px}.bond-bar{height:10px;background:#ddd0e8;border-radius:999px;overflow:hidden;margin-top:8px}.bond-bar span{display:block;height:100%;background:linear-gradient(90deg,#e36bb5,#8b5ce6)}.personality-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.personality-grid button{min-height:68px;text-align:left}.personality-grid button.active{outline:3px solid #d79be8;background:#6b4b84}.personality-grid button small{display:block;opacity:.8;font-weight:600;margin-top:3px}.bond-note{margin-top:12px;color:#786b87;font-size:13px;line-height:1.4}

/* Vixli world hub V0.6 */
.world-hub{position:relative;min-height:380px;margin-top:14px;border-radius:28px;overflow:hidden;border:1px solid #ffffff24;background:linear-gradient(180deg,#6e90b8 0 28%,#9bc07a 28% 62%,#5f7f49 62% 100%);box-shadow:0 20px 60px #0005}.world-hub:before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 78% 18%,#ffe9a8 0 7%,transparent 8%),linear-gradient(150deg,transparent 0 55%,#4f6f3e55 56% 100%);pointer-events:none}.world-title{position:absolute;left:16px;top:14px;z-index:3;padding:8px 12px;border-radius:14px;background:#162239aa;border:1px solid #ffffff2b;backdrop-filter:blur(4px)}.world-title strong{display:block;font-size:17px}.world-title span{font-size:12px;color:#e8f3ff}.world-node{position:absolute;width:auto;min-width:92px;min-height:64px;padding:8px 10px;border:2px solid #fff9;border-radius:18px;background:#2f3e2fcc;color:white;box-shadow:0 7px 18px #0005;text-shadow:0 1px 2px #0008;cursor:pointer;backdrop-filter:blur(3px)}.world-node b{display:block;font-size:28px;line-height:1}.world-node span{display:block;margin-top:4px;font-size:12px;font-weight:900}.node-home{left:9%;bottom:17%}.node-market{right:7%;bottom:22%}.node-adventure{left:39%;top:31%}.node-world{right:10%;top:14%}.node-relations{left:7%;top:20%}.node-events{left:39%;bottom:7%}.world-river{position:absolute;left:0;right:0;bottom:4%;height:52px;background:linear-gradient(180deg,#7fd0e8,#4f9fc0);transform:rotate(-3deg);opacity:.82;box-shadow:inset 0 7px 0 #c5f5ff88}.world-path{position:absolute;width:48%;height:150px;left:26%;top:47%;border:18px solid transparent;border-left-color:#d9c498;border-radius:50%;transform:rotate(11deg);opacity:.75}.world-hill{position:absolute;width:260px;height:120px;border-radius:50%;background:#789b5f;right:-40px;bottom:22%;box-shadow:inset 0 12px 0 #8db16f}.world-tree{position:absolute;font-size:54px;filter:drop-shadow(0 5px 3px #0004)}.tree-a{left:2%;bottom:2%}.tree-b{right:25%;bottom:4%}.tree-c{left:28%;top:9%}@media(max-width:430px){.world-hub{min-height:350px}.world-node{min-width:82px}.world-node b{font-size:24px}.world-node span{font-size:11px}.node-adventure{left:36%}.node-events{left:35%}}

/* Vixli story-world systems V0.7 */
.relationship-list,.event-list{display:grid;gap:10px}.relationship-card,.event-card{padding:14px;background:#fff;border:1px solid #e2d7eb;border-radius:16px}.relationship-card strong,.event-card strong{display:block;font-size:18px}.relationship-meta{margin-top:5px;font-size:13px;color:#786b87}.relationship-actions,.event-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.status-pill{display:inline-block;margin:4px 4px 0 0;padding:5px 9px;border-radius:999px;background:#eadff4;font-size:12px;font-weight:900}.tone-toggle{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;background:#fff;border:1px solid #e2d7eb;border-radius:14px;margin-bottom:12px}.dice-result{padding:14px;margin:10px 0;border-radius:15px;background:#efe5ff;font-weight:900}.family-card{padding:14px;border-radius:16px;background:linear-gradient(135deg,#fff5fa,#efe8ff);border:1px solid #e2d7eb;margin-top:12px}.family-card small{display:block;color:#786b87;margin-top:5px}.warning-note{padding:11px 13px;background:#fff7df;border:1px solid #ead9a7;border-radius:13px;font-size:12px;line-height:1.4;margin-top:10px}@media(max-width:430px){.relationship-actions,.event-actions{grid-template-columns:1fr}}

/* Vixli charm / flirt V0.8 */
.charm-card{padding:14px;background:#fff;border:1px solid #e2d7eb;border-radius:16px;margin:10px 0}.charm-meter{height:9px;background:#e8ddeb;border-radius:999px;overflow:hidden;margin:8px 0}.charm-meter span{display:block;height:100%;background:linear-gradient(90deg,#f2a2c9,#a27ae6)}.charm-actions{display:grid;gap:8px;margin-top:10px}.charm-actions button{width:100%;text-align:left}.charm-result{margin-top:10px;padding:12px;border-radius:14px;background:#f6edff}.npc-boundary{font-size:12px;color:#7b6c87;margin-top:8px}

/* Vixli nightlife / adult-fantasy quest hub V0.9 */
.node-tavern{left:14%;bottom:37%}.node-rose{right:18%;top:39%;background:#633b55cc}.venue-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.venue-card{padding:14px;border-radius:16px;background:#fff;border:1px solid #e2d7eb}.venue-card h3{margin:0 0 6px}.venue-card p{margin:0;color:#786b87;font-size:13px;line-height:1.4}.rumor-list,.quest-list{display:grid;gap:8px;margin-top:10px}.rumor,.quest{padding:12px;border-radius:14px;background:#fff;border:1px solid #e2d7eb}.quest strong,.rumor strong{display:block}.night-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.night-note{margin-top:12px;padding:12px;border-radius:14px;background:#f2e7ee;color:#66465a;font-size:13px}.fade-card{padding:18px;border-radius:18px;background:linear-gradient(135deg,#3a2745,#6b3e57);color:#fff}.fade-card small{display:block;opacity:.8;margin-top:8px}@media(max-width:480px){.venue-grid,.night-actions{grid-template-columns:1fr}.node-tavern{left:8%;bottom:40%}.node-rose{right:8%;top:42%}}

/* Vixli NPC life V1.0 */
.npc-board{display:grid;gap:10px}.npc-row{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:12px;background:#fff;border:1px solid #e2d7eb;border-radius:14px}.npc-row .avatar{font-size:28px}.npc-row strong{display:block}.npc-row small{color:#786b87}.rumor{padding:12px;border-radius:14px;background:#fff7df;border:1px solid #ead8a8}.pulse{display:inline-block;padding:3px 8px;border-radius:999px;background:#e7f2df;color:#355333;font-size:12px;font-weight:900}.world-node.node-people{right:34%;top:9%}@media(max-width:430px){.world-node.node-people{right:31%;top:8%}}

/* Vixli idle / Starwalk V1.1 */
.idle-card{padding:16px;border-radius:18px;background:linear-gradient(135deg,#151b3b,#34275d);color:#fff;margin-bottom:12px;border:1px solid #ffffff22}.idle-card.locked{filter:saturate(.65);opacity:.85}.idle-card h3{margin:0 0 5px}.idle-card p{margin:5px 0;color:#ddd4f2;line-height:1.45}.idle-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0}.idle-stats div{padding:10px;border-radius:13px;background:#ffffff12;text-align:center}.idle-stats span{display:block;font-size:11px;color:#cfc3e7}.idle-stats strong{font-size:20px}.idle-reward{padding:13px;border-radius:14px;background:#fff7d8;color:#3e321c;margin:10px 0}.idle-upgrades{display:grid;gap:9px}.idle-upgrade{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:12px;background:#fff;border:1px solid #e2d7eb;border-radius:14px}.idle-upgrade p{margin:3px 0;color:#786b87;font-size:13px}.idle-upgrade button{min-width:102px}.rare-currency{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;background:#211c3d;color:#e8dcff;font-weight:900}

.node-idle{right:34%;top:11%;background:#27224dcc}.node-idle b{filter:drop-shadow(0 0 6px #b69cff)}

/* Vixli Star Workshop V1.2 */
.star-workshop{padding:16px;border-radius:20px;background:linear-gradient(145deg,#15162f,#3a2a64);color:#fff;border:1px solid #ffffff22}.star-workshop h3{margin:0 0 6px}.star-workshop p{color:#ded5f2;line-height:1.45}.star-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:12px 0}.star-grid div{padding:12px;border-radius:14px;background:#ffffff10}.star-grid span{display:block;font-size:11px;color:#cfc4e8}.star-grid strong{font-size:20px}.star-paths{display:grid;gap:10px;margin-top:12px}.star-path{padding:13px;border-radius:15px;background:#fff;color:#2d233b;border:1px solid #e3d8ed}.star-path h4{margin:0 0 4px}.star-path p{margin:0 0 8px;color:#786b87;font-size:13px}.star-expeditions{display:grid;gap:9px;margin-top:12px}.star-expedition{padding:13px;border-radius:15px;background:#fff;color:#2d233b;border:1px solid #e3d8ed}.star-expedition button{width:100%;margin-top:8px}.star-expedition small{color:#786b87}.star-result{padding:13px;border-radius:14px;background:#eef8dd;color:#30411d;margin:10px 0}@media(max-width:430px){.star-grid{grid-template-columns:1fr}}

.node-starworkshop{left:24%;bottom:29%;background:#26375fcc}.node-starworkshop b{filter:drop-shadow(0 0 6px #c6d7ff)}

/* Vixli world pulse V1.3 */
.return-report{display:grid;gap:10px}.return-event{padding:13px 14px;border-radius:15px;background:#fff;border:1px solid #e2d7eb}.return-event strong{display:block;margin-bottom:3px}.return-event small{color:#786b87}.world-node.node-chronicle{left:22%;bottom:7%;background:#4b382dcc}.chronicle-badge{display:inline-block;min-width:20px;padding:2px 6px;border-radius:999px;background:#f2cc67;color:#382b18;font-size:10px;font-weight:900;margin-left:4px}

/* Vixli quest hooks V1.4 */
.quest-hook-list{display:grid;gap:10px}.quest-hook{padding:14px;border-radius:16px;background:#fff;border:1px solid #e2d7eb}.quest-hook h3{margin:0 0 4px}.quest-hook p{margin:4px 0;color:#6f647b}.quest-hook .meta{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}.quest-tag{padding:3px 8px;border-radius:999px;background:#eee3f8;font-size:11px;font-weight:900}.quest-hook button{width:100%;margin-top:8px}.quest-hook.expired{opacity:.55}.world-node.node-hooks{right:4%;bottom:8%;background:#614226dd}

/* Vixli reputation V1.5 */
.rep-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;margin:12px 0}.rep-card{padding:12px;border-radius:15px;background:#fff;border:1px solid #e2d7eb}.rep-card span{display:block;font-size:11px;color:#786b87}.rep-card strong{font-size:21px}.rep-title{padding:12px 14px;border-radius:16px;background:linear-gradient(135deg,#f4ead7,#efe5ff);border:1px solid #ddcfeb}.rep-title strong{font-size:20px}.rep-history{display:grid;gap:8px}.rep-log{padding:10px 12px;border-radius:13px;background:#fff;border:1px solid #e2d7eb}.rep-log small{color:#786b87}.world-node.node-reputation{left:4%;bottom:31%;background:#4d4935dd}@media(max-width:430px){.rep-grid{grid-template-columns:1fr 1fr}.world-node.node-reputation{left:3%;bottom:30%}}

/* Vixli factions V1.6 */
.faction-grid{display:grid;gap:10px}.faction-card{padding:14px;border-radius:16px;background:#fff;border:1px solid #e2d7eb}.faction-card header{display:flex;justify-content:space-between;gap:10px;align-items:center}.faction-card p{margin:5px 0;color:#786b87}.faction-meter{height:9px;background:#ece5f1;border-radius:999px;overflow:hidden;margin-top:9px}.faction-meter span{display:block;height:100%;background:linear-gradient(90deg,#7a6ab0,#d2a959)}.faction-rank{font-size:12px;font-weight:900}.world-node.node-factions{right:3%;bottom:31%;background:#4c3a5ddd}.faction-note{padding:10px 12px;border-radius:13px;background:#f5f0ff;margin-top:12px}

/* Vixli faction perks V1.7 */
.perk-grid{display:grid;gap:10px}.perk-card{padding:14px;border-radius:16px;background:#fff;border:1px solid #e2d7eb}.perk-card.locked{opacity:.58}.perk-card header{display:flex;justify-content:space-between;align-items:center;gap:10px}.perk-card p{margin:5px 0;color:#786b87}.perk-badge{padding:3px 8px;border-radius:999px;background:#efe8fb;font-size:11px;font-weight:900}.perk-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.perk-actions button{width:100%}.faction-quest{padding:12px;border-radius:14px;background:#fff8df;border:1px solid #ead9a8;margin-top:9px}.world-node.node-perks{right:20%;bottom:29%;background:#59465ddd}

/* Vixli faction conflicts V1.8 */
.conflict-list{display:grid;gap:10px}.conflict-card{padding:14px;border-radius:16px;background:#fff;border:1px solid #e2d7eb}.conflict-card h3{margin:0 0 5px}.conflict-card p{margin:5px 0;color:#74677e}.conflict-sides{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.conflict-sides button{min-height:54px}.conflict-history{display:grid;gap:8px;margin-top:12px}.conflict-log{padding:10px 12px;border-radius:13px;background:#f7f2fb;border:1px solid #e4d9ed}.world-node.node-conflicts{left:34%;bottom:30%;background:#553f46dd}@media(max-width:430px){.conflict-sides{grid-template-columns:1fr}.world-node.node-conflicts{left:32%;bottom:29%}}

/* Vixli consequence chains V1.9 */
.consequence-list{display:grid;gap:10px}.consequence-card{padding:14px;border-radius:16px;background:#fff;border:1px solid #e2d7eb}.consequence-card strong{display:block;margin-bottom:4px}.consequence-card small{color:#786b87}.world-node.node-consequences{left:4%;bottom:8%;background:#3d4b52dd}.consequence-good{background:#edf8ee}.consequence-bad{background:#fff0ee}.consequence-neutral{background:#f5f2fa}

/* Vixli visual evolution V2.0 */
.pet{transition:width .45s ease,height .45s ease,border-radius .45s ease,background .45s ease,box-shadow .45s ease,filter .45s ease}.pet .evo-mark,.pet .evo-horns,.pet .evo-crown{position:absolute;pointer-events:none}.pet .evo-mark{left:50%;top:27%;transform:translateX(-50%);font-size:20px;opacity:.75}.pet .evo-horns{left:0;right:0;top:-48px;font-size:44px;letter-spacing:64px;opacity:0}.pet .evo-crown{left:50%;top:-56px;transform:translateX(-50%);font-size:36px;opacity:0}.pet.evo-baby{width:170px;height:170px;border-radius:48% 48% 44% 44%;background:linear-gradient(145deg,#fffdfd,#efdfff)}.pet.evo-young{width:188px;height:188px;border-radius:46% 46% 39% 39%;background:linear-gradient(145deg,#fff,#dfd0ff);box-shadow:0 24px 44px #35234c77,inset 0 -14px 28px #9e72c855}.pet.evo-young .ears{top:-35px;font-size:62px}.pet.evo-adult{width:205px;height:205px;border-radius:42% 42% 36% 36%;background:linear-gradient(145deg,#fbf8ff,#cfc0ff 58%,#a98ad0);box-shadow:0 28px 52px #21163788,inset 0 -18px 34px #77569a66}.pet.evo-adult .ears{top:-42px;font-size:68px;color:#d7c3f4}.pet.evo-adult .tail{right:-48px;font-size:67px}.pet.evo-adult .evo-mark{font-size:24px}.pet.evo-legend{width:222px;height:222px;border-radius:38% 38% 32% 32%;background:radial-gradient(circle at 50% 34%,#ffffff 0 10%,#d8c9ff 45%,#8a70b8 78%,#55406f);box-shadow:0 0 28px #bba3ff99,0 32px 62px #140d288f,inset 0 -22px 40px #4f396e88}.pet.evo-legend .ears{top:-47px;font-size:74px;color:#cbb8ef;text-shadow:0 7px 0 #6d4f9255,0 0 18px #e7dfff}.pet.evo-legend .tail{right:-54px;font-size:74px;color:#cdb8ee}.pet.evo-legend .evo-horns,.pet.evo-legend .evo-crown{opacity:1}.pet.evo-legend .evo-mark{font-size:28px;opacity:1;text-shadow:0 0 12px #fff}.pet.personality-curious .evo-mark{color:#3e7f93}.pet.personality-playful .evo-mark{color:#9b4f95}.pet.personality-cozy .evo-mark{color:#b1763f}.pet.personality-brave .evo-mark{color:#5d4a9d}.evolution-road{display:grid;gap:10px}.evolution-step{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:13px;border-radius:15px;background:#fff;border:1px solid #e2d7eb}.evolution-step .evo-icon{font-size:30px}.evolution-step small{display:block;color:#786b87;margin-top:2px}.evolution-step.locked{opacity:.48}.evolution-step.current{outline:2px solid #9c7ad5;background:#f5efff}.evo-badge{padding:4px 8px;border-radius:999px;background:#eee4f8;font-size:11px;font-weight:900;white-space:nowrap}.evo-preview{padding:14px;border-radius:16px;background:linear-gradient(135deg,#f5edff,#fff7e8);border:1px solid #dfd2eb;margin-bottom:12px}

/* Vixli evolution branches V2.1 */
.pet.branch-curious{box-shadow:0 0 30px #7ad7e399,0 30px 58px #140d2888,inset 0 -20px 38px #4c6f7b55}.pet.branch-playful{box-shadow:0 0 30px #e18bd199,0 30px 58px #140d2888,inset 0 -20px 38px #7f467355}.pet.branch-cozy{box-shadow:0 0 30px #f3c27f99,0 30px 58px #140d2888,inset 0 -20px 38px #8a644655}.pet.branch-brave{box-shadow:0 0 30px #a59cff99,0 30px 58px #140d2888,inset 0 -20px 38px #4f4b8a66}.pet .branch-sigil{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);font-size:24px;filter:drop-shadow(0 0 7px #fff8);pointer-events:none}.branch-card{padding:13px;border-radius:15px;background:#fff;border:1px solid #e2d7eb}.branch-card.current{outline:2px solid #9c7ad5;background:#f6f0ff}.branch-grid{display:grid;gap:9px;margin-top:10px}.branch-chip{display:inline-block;padding:4px 8px;border-radius:999px;background:#efe5ff;font-size:11px;font-weight:900}.branch-lock{opacity:.55}

/* Vixli evolution abilities V2.2 */
.ability-card{padding:14px;border-radius:16px;background:#fff;border:1px solid #e2d7eb;margin-top:10px}.ability-card strong{font-size:18px}.ability-card small{display:block;color:#786b87;margin-top:4px}.ability-pill{display:inline-block;margin-top:8px;padding:4px 9px;border-radius:999px;background:#eee5fb;font-size:11px;font-weight:900}.ability-note{padding:10px 12px;border-radius:13px;background:#fff7df;margin-top:10px}

/* Vixli player character V2.3 */
.player-onboarding{position:fixed;inset:0;z-index:9999;background:linear-gradient(160deg,#171126f5,#36294ff5);display:grid;place-items:center;padding:18px}.player-onboarding.hide{display:none}.player-onboard-card{width:min(680px,100%);max-height:92vh;overflow:auto;background:#f8f2ff;color:#2d233b;border-radius:26px;padding:22px;box-shadow:0 30px 90px #0008}.player-onboard-card h2{margin-top:0}.onboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.onboard-choice{padding:14px;border-radius:16px;background:#fff;border:1px solid #ded2e8;cursor:pointer;text-align:left}.onboard-choice.active{outline:3px solid #9d7bd2;background:#f1e8ff}.onboard-choice strong{display:block;font-size:17px}.onboard-choice small{display:block;color:#75677f;margin-top:4px}.player-email{width:100%;padding:13px;border-radius:13px;border:1px solid #d5c7df;font:inherit;margin-bottom:12px}.player-confirm{width:100%;min-height:52px;border:0;border-radius:14px;background:#4b3566;color:#fff;font-weight:900}.player-confirm:disabled{opacity:.45}.character-sheet{display:grid;gap:12px}.char-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.char-tabs button{min-height:42px;font-size:12px}.char-tabs button.active{background:#7a5b9e}.char-pane{display:none}.char-pane.active{display:block}.paperdoll{display:grid;grid-template-columns:110px 1fr 110px;gap:10px;align-items:center}.gear-column{display:grid;gap:8px}.gear-slot{min-height:54px;padding:8px;border-radius:13px;background:#fff;border:1px solid #ded4e8;font-size:11px;text-align:center}.gear-slot strong{display:block;font-size:20px}.gear-slot.equipped{background:#f1e9ff;border-color:#bca5d8}.avatar-stage{min-height:320px;display:grid;place-items:center;perspective:800px;border-radius:22px;background:radial-gradient(circle at 50% 28%,#ffffff22,#37294f 55%,#1f172e);overflow:hidden}.avatar-3d{position:relative;width:150px;height:260px;transform:rotateY(-8deg) rotateX(2deg);transform-style:preserve-3d;filter:drop-shadow(0 18px 18px #0007)}.avatar-3d .head{position:absolute;left:49px;top:12px;width:54px;height:62px;border-radius:48%;background:linear-gradient(145deg,#e8c7aa,#b98868);box-shadow:inset -8px -5px 14px #815b4666}.avatar-3d .body{position:absolute;left:35px;top:70px;width:82px;height:105px;border-radius:30px 30px 22px 22px;background:linear-gradient(145deg,#745695,#3f3154)}.avatar-3d .arm{position:absolute;top:78px;width:26px;height:108px;border-radius:18px;background:linear-gradient(#d4aa8b,#9f7359)}.avatar-3d .arm.left{left:12px;transform:rotate(7deg)}.avatar-3d .arm.right{right:10px;transform:rotate(-7deg)}.avatar-3d .leg{position:absolute;top:166px;width:34px;height:92px;border-radius:15px;background:linear-gradient(#4f3d62,#241c31)}.avatar-3d .leg.left{left:39px}.avatar-3d .leg.right{right:37px}.avatar-3d .gear-visual{position:absolute;left:50%;transform:translateX(-50%);pointer-events:none}.avatar-3d .gear-head{top:-6px;font-size:42px}.avatar-3d .gear-chest{top:88px;font-size:48px}.avatar-3d .gear-main{left:auto;right:-7px;top:88px;font-size:58px;transform:rotate(-15deg)}.char-summary{text-align:center;margin-top:10px}.char-summary strong{font-size:22px}.inventory-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.inv-slot{min-height:76px;padding:8px;border-radius:13px;background:#fff;border:1px solid #e1d7e8;text-align:center;font-size:11px}.inv-slot b{display:block;font-size:26px}.inv-slot button{min-height:32px;font-size:11px;margin-top:5px;padding:4px 7px}.spec-card,.talent-card{padding:13px;border-radius:15px;background:#fff;border:1px solid #e1d7e8;margin-bottom:9px}.spec-card.current{outline:2px solid #9c7ad5;background:#f4eeff}.talent-grid{display:grid;gap:8px}.talent-card.unlocked{background:#eef9f1;border-color:#bdd9c5}.rare-rune{padding:13px;border-radius:15px;background:linear-gradient(135deg,#efe4ff,#fff5cf);border:1px solid #d6c4e8}.world-node.node-character{left:50%;bottom:2%;transform:translateX(-50%);background:#3d3158dd}@media(max-width:520px){.paperdoll{grid-template-columns:80px 1fr 80px}.avatar-stage{min-height:280px}.gear-slot{font-size:10px;padding:5px}.inventory-grid{grid-template-columns:repeat(3,1fr)}.onboard-grid{grid-template-columns:1fr}.char-tabs{grid-template-columns:1fr 1fr}}

/* Vixli fantasy classes V2.4 */
.fantasy-onboarding{position:fixed;inset:0;z-index:10020;background:linear-gradient(160deg,#120f19f8,#2a2139f8);display:grid;place-items:center;padding:18px}.fantasy-card{width:min(760px,100%);max-height:94vh;overflow:auto;background:#f8f2ff;color:#2d233b;border-radius:26px;padding:22px;box-shadow:0 30px 90px #0009}.fantasy-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.fantasy-choice{padding:14px;border:1px solid #ded2e8;border-radius:16px;background:#fff;text-align:left;cursor:pointer}.fantasy-choice.active{outline:3px solid #8f6bc0;background:#f0e7ff}.fantasy-choice strong,.fantasy-choice small{display:block}.fantasy-choice small{color:#75677f;margin-top:4px}.hidden-path{padding:13px;border-radius:15px;background:linear-gradient(135deg,#211a29,#453450);color:#fff;margin-top:10px}.path-meter{height:10px;border-radius:999px;background:#d9cde1;overflow:hidden;margin-top:7px}.path-meter span{display:block;height:100%;background:linear-gradient(90deg,#6ca56c,#6a4a80)}.druid-forms{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}.druid-forms button.active{outline:3px solid #7ea66d}.class-lock-note{padding:10px 12px;border-radius:13px;background:#fff4d8;margin-top:10px}@media(max-width:560px){.fantasy-grid{grid-template-columns:1fr}.druid-forms{grid-template-columns:1fr 1fr}}

/* Vixli class gameplay V2.6 */
.class-resource-card{padding:14px;border-radius:16px;background:linear-gradient(135deg,#fff,#f4edff);border:1px solid #dfd3e8;margin-top:10px}.class-resource-head{display:flex;justify-content:space-between;gap:10px;align-items:center}.class-resource-bar{height:12px;border-radius:999px;background:#ddd1e5;overflow:hidden;margin:8px 0}.class-resource-bar span{display:block;height:100%;background:linear-gradient(90deg,#8b65b8,#d18a67)}.class-abilities{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.class-ability{padding:11px;border-radius:14px;background:#fff;border:1px solid #dfd4e8;text-align:left}.class-ability strong,.class-ability small{display:block}.class-ability small{color:#766982;margin-top:4px}.class-ability:disabled{opacity:.45}.class-passive{padding:10px 12px;border-radius:13px;background:#edf7ef;border:1px solid #c8ddca;margin-top:10px}.class-combo{display:flex;gap:4px;margin-top:8px}.class-combo i{width:16px;height:16px;border-radius:50%;background:#d9cfe1;display:block}.class-combo i.on{background:#7c5ba7;box-shadow:0 0 8px #9677c8}.hunter-pet-note{padding:10px 12px;border-radius:13px;background:#f3f0df;margin-top:8px}@media(max-width:520px){.class-abilities{grid-template-columns:1fr}}

/* Vixli class adventures V2.7 */
.class-quest-option{margin-top:8px;padding:11px 12px;border-radius:14px;border:1px solid #ccb8df;background:linear-gradient(135deg,#f7f0ff,#fff7ed);display:grid;gap:3px;text-align:left;width:100%}.class-quest-option strong{font-size:13px}.class-quest-option small{color:#74677e}.class-quest-option:disabled{opacity:.45}.class-quest-result{padding:14px;border-radius:16px;background:#f6efff;border:1px solid #dac9e8;margin:12px 0}.class-quest-badge{display:inline-flex;padding:4px 9px;border-radius:999px;background:#e9ddf5;font-size:11px;font-weight:900;margin-bottom:7px}

/* Vixli encounters V2.8 */
.encounter-list{display:grid;gap:10px}.encounter-card,.battle-card{padding:14px;border:1px solid #dfd4e8;border-radius:18px;background:#fff}.battle-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.battle-bars{display:grid;gap:8px;margin:12px 0}.battle-bar{height:13px;border-radius:999px;background:#e5dbe9;overflow:hidden}.battle-bar span{display:block;height:100%;transition:width .2s}.battle-bar.player span{background:linear-gradient(90deg,#6f55a0,#af79cf)}.battle-bar.enemy span{background:linear-gradient(90deg,#c56f65,#e5a36d)}.battle-stats{display:flex;justify-content:space-between;font-size:12px;color:#766982}.battle-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.battle-actions button{min-height:54px}.battle-log{margin-top:10px;padding:10px;border-radius:13px;background:#f6f1f8;color:#665b70;font-size:13px;min-height:44px}.companion-action{background:#6650a0!important}.class-strike{background:#875476!important}.encounter-loot{padding:12px;border-radius:14px;background:#f0e9fb;margin-top:10px}@media(max-width:520px){.battle-actions{grid-template-columns:1fr}}

/* Vixli companion combat V2.9 */
.vixli-ability-banner{margin:10px 0;padding:11px 12px;border-radius:14px;background:linear-gradient(135deg,#f4ecff,#fff4e7);border:1px solid #dfd3e8}.vixli-ability-banner strong,.vixli-ability-banner small{display:block}.vixli-ability-banner small{margin-top:3px;color:#74677f}.companion-action.moon{background:#6659a8!important}.companion-action.playful{background:#9b5f9e!important}.companion-action.cozy{background:#a76d61!important}.companion-action.brave{background:#7d514f!important}.battle-status{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}.battle-status span{padding:4px 8px;border-radius:999px;background:#eee6f4;font-size:11px;font-weight:900}

/* Vixli gear stats V3.0 */
.gear-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:10px 0}.gear-stat{padding:10px 8px;border-radius:13px;background:#fff;border:1px solid #dfd4e8;text-align:center}.gear-stat b{display:block;font-size:19px}.gear-stat small{color:#786b87}.inv-slot .item-stats{display:block;margin-top:4px;color:#6f5d7e;font-size:10px}.gear-slot .gear-mini{display:block;color:#745f84;font-size:9px;margin-top:2px}.loot-rarity-common{color:#6b7280}.loot-rarity-uncommon{color:#24805a}.loot-rarity-rare{color:#7250b5}.loot-rarity-epic{color:#b04e97}@media(max-width:520px){.gear-stats{grid-template-columns:1fr 1fr}}

/* Vixli loot rarity & affixes V3.1 */
.loot-rarity{display:inline-block;margin-top:4px;padding:3px 7px;border-radius:999px;font-size:10px;font-weight:900;border:1px solid currentColor}.loot-rarity.common{color:#6b7280;background:#f3f4f6}.loot-rarity.uncommon{color:#237b58;background:#e9f8ef}.loot-rarity.rare{color:#6550b8;background:#eeeafe}.loot-rarity.epic{color:#a54191;background:#fdeafa}.loot-rarity.legendary{color:#a86513;background:#fff2cf}.loot-affixes{display:grid;gap:3px;margin-top:5px;font-size:10px;color:#685774}.loot-new{animation:lootPulse .55s ease}@keyframes lootPulse{50%{transform:scale(1.025);box-shadow:0 0 0 4px #c7a4ff33}}

/* Vixli V3.2 — Fantasy mobile UI pass */
:root{--vixli-gold:#f5d98b;--vixli-ink:#1e1727;--vixli-violet:#8c69c9;--vixli-panel:#f6f0ff;--vixli-border:#cdbce3}
.player-onboarding{overflow:auto;align-items:start;background:
radial-gradient(circle at 15% 20%,#8a66c233 0 8%,transparent 26%),
radial-gradient(circle at 82% 15%,#e6c36d26 0 7%,transparent 24%),
linear-gradient(180deg,#0f0b18f7,#1b1328f7 52%,#0d0a13fa);padding:18px 14px 28px}
.player-onboarding:before,.player-onboarding:after{content:'✦';position:fixed;pointer-events:none;color:#f7dc8d99;text-shadow:0 0 18px #f6d675aa;font-size:22px;animation:vixliRuneFloat 5s ease-in-out infinite}.player-onboarding:before{left:7vw;top:15vh}.player-onboarding:after{right:8vw;top:28vh;animation-delay:-2.2s}
.player-onboard-card{position:relative;width:min(820px,100%);margin:auto;max-height:none;overflow:visible;background:
linear-gradient(180deg,#fbf7ff 0,#f4ecff 100%);border:1px solid #dbcbed;border-radius:28px;padding:26px;box-shadow:0 28px 90px #000a,0 0 0 1px #ffffff88 inset;isolation:isolate}
.player-onboard-card:before{content:'';position:absolute;inset:8px;border:1px solid #b79bcf55;border-radius:21px;pointer-events:none;z-index:-1}
.player-onboard-card:after{content:'✦ ᚱ ✧ ᚨ ✦';display:block;text-align:center;margin:18px 0 0;color:#8e73a7;letter-spacing:.45em;font-size:11px;opacity:.7}
.player-onboard-card h2{font-size:clamp(28px,4vw,40px);letter-spacing:-.025em;margin:0 0 8px;color:#281d38;text-shadow:0 1px #fff}.player-onboard-card>p:first-of-type{max-width:680px;color:#665775;line-height:1.5;margin-top:4px}.player-onboard-card h3{font-size:17px;margin:22px 0 10px;color:#3b2b51;display:flex;align-items:center;gap:9px}.player-onboard-card h3:after{content:'';height:1px;flex:1;background:linear-gradient(90deg,#bba4d5,transparent)}
.player-email{min-height:52px;background:#fffdfd;border:1px solid #cdbbdf;box-shadow:0 2px 0 #ffffff inset,0 5px 18px #3a214e0d;transition:.2s}.player-email:focus{outline:0;border-color:#9b79c5;box-shadow:0 0 0 4px #9e7ac31c,0 7px 24px #3a214e16}
.onboard-grid{gap:12px}.onboard-choice{position:relative;min-height:112px;padding:16px 16px 15px 76px;border-radius:19px;border:1px solid #d7cae4;background:linear-gradient(145deg,#fff,#faf6ff);overflow:hidden;box-shadow:0 8px 24px #2d173d0b;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;text-align:left}.onboard-choice:before{content:'✧';position:absolute;left:15px;top:15px;width:48px;height:48px;border-radius:14px;display:grid;place-items:center;font-size:25px;background:#efe7f8;border:1px solid #d7c7e7;box-shadow:0 5px 16px #29173c18}.onboard-choice:after{content:'';position:absolute;inset:auto -28px -28px auto;width:92px;height:92px;border-radius:50%;background:radial-gradient(circle,#9b79c51e,transparent 68%)}.onboard-choice:hover{transform:translateY(-2px);box-shadow:0 12px 28px #30174718;border-color:#b79ad0}.onboard-choice.active{outline:0;border-color:#9c73c9;background:linear-gradient(145deg,#fff,#f0e5ff);box-shadow:0 0 0 2px #b188d744,0 12px 32px #673b8e24,0 0 30px #9c71cf18 inset;transform:translateY(-1px)}.onboard-choice.active:before{content:'✦';background:linear-gradient(145deg,#6d4a91,#9e78c7);color:#fff;border-color:#b18ad4;box-shadow:0 0 22px #9e78c766}.onboard-choice strong{font-size:17px;color:#2c2137}.onboard-choice small{line-height:1.36;color:#776982}.onboard-choice .class-role{display:inline-flex;margin-top:8px;padding:4px 8px;border-radius:999px;background:#ede5f4;color:#665271;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.onboard-choice[data-onboard-class="paladin"]:before{content:'🛡️'}.onboard-choice[data-onboard-class="warrior"]:before{content:'⚔️'}.onboard-choice[data-onboard-class="rogue"]:before{content:'🗡️'}.onboard-choice[data-onboard-class="druid"]:before{content:'🌿'}.onboard-choice[data-onboard-class="priest"]:before{content:'✨'}.onboard-choice[data-onboard-class="hunter"]:before{content:'🏹'}.onboard-choice[data-onboard-class="mage"]:before,.onboard-choice[data-onboard-class="sorcerer"]:before{content:'🔥'}
.onboard-choice[data-onboard-class="paladin"].active{border-color:#d6b858;box-shadow:0 0 0 2px #e5c85c3b,0 14px 35px #9b77242d}.onboard-choice[data-onboard-class="druid"].active{border-color:#70a36d;box-shadow:0 0 0 2px #78ad733b,0 14px 35px #335d2b28}.onboard-choice[data-onboard-class="rogue"].active{border-color:#766a82;box-shadow:0 0 0 2px #86789444,0 14px 35px #251c302d}.onboard-choice[data-onboard-class="mage"].active,.onboard-choice[data-onboard-class="sorcerer"].active{border-color:#a16cc3;box-shadow:0 0 0 2px #a16cc344,0 14px 35px #5b2d772b}
.player-confirm{position:sticky;bottom:10px;z-index:4;min-height:58px;border-radius:17px;background:linear-gradient(180deg,#76549b,#52356f);box-shadow:0 8px 24px #4225593a,0 1px #ffffff32 inset;text-transform:uppercase;letter-spacing:.08em;font-size:13px;transition:.2s}.player-confirm:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 12px 30px #42255950,0 0 22px #c8a5ef22 inset}.player-confirm:not(:disabled):before{content:'✦ ';color:#f6d98b}.player-confirm:not(:disabled):after{content:' ✦';color:#f6d98b}.player-confirm:disabled{opacity:.42;filter:saturate(.45)}
.fantasy-onboard-kicker{display:flex;align-items:center;gap:8px;color:#80639a;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.18em;margin-bottom:8px}.fantasy-onboard-kicker:before,.fantasy-onboard-kicker:after{content:'✦';color:#c39b45}.fantasy-onboard-step{display:inline-flex;align-items:center;justify-content:center;width:25px;height:25px;border-radius:999px;background:#49345f;color:#fff;font-size:11px;box-shadow:0 4px 12px #34204730}.fantasy-oath{display:flex;gap:10px;align-items:flex-start;padding:11px 12px;margin:12px 0 4px;border-radius:14px;background:#3d2c5210;border:1px solid #80649b26;color:#665774;font-size:11px;line-height:1.4}.fantasy-oath b{font-size:17px}
@keyframes vixliRuneFloat{0%,100%{transform:translateY(0) rotate(0);opacity:.45}50%{transform:translateY(-13px) rotate(7deg);opacity:.9}}
@media(max-width:640px){.player-onboarding{padding:0;display:block}.player-onboard-card{width:100%;min-height:100dvh;border-radius:0;margin:0;padding:calc(18px + env(safe-area-inset-top)) 16px calc(22px + env(safe-area-inset-bottom));border:0}.player-onboard-card:before{inset:6px;border-radius:0}.player-onboard-card h2{font-size:30px}.player-onboard-card>p:first-of-type{font-size:13px}.onboard-grid{grid-template-columns:1fr 1fr;gap:9px}.onboard-choice{min-height:126px;padding:56px 11px 12px}.onboard-choice:before{left:11px;top:9px;width:38px;height:38px;font-size:20px;border-radius:12px}.onboard-choice strong{font-size:14px}.onboard-choice small{font-size:10px}.onboard-choice .class-role{font-size:8px;padding:3px 6px}.player-email{font-size:16px}.player-confirm{bottom:calc(8px + env(safe-area-inset-bottom));min-height:60px}.fantasy-oath{font-size:10px}}
@media(max-width:380px){.onboard-grid{grid-template-columns:1fr}.onboard-choice{min-height:90px;padding:14px 12px 12px 62px}.onboard-choice:before{left:11px;top:13px}}

/* Vixli V3.3 — unmistakable fantasy character select */
.player-onboarding{background:
 radial-gradient(circle at 50% -10%,#7e5aa444 0 18%,transparent 42%),
 radial-gradient(circle at 12% 18%,#d8b85b22 0 8%,transparent 28%),
 linear-gradient(180deg,#0b0811 0%,#171020 58%,#0d0913 100%)!important;}
.player-onboard-card{background:linear-gradient(180deg,#1d1528 0%,#241831 100%)!important;color:#f8efff!important;border:1px solid #7f649d!important;box-shadow:0 30px 100px #000c,0 0 60px #7c55a52b inset!important;}
.player-onboard-card:before{border-color:#d9b96a55!important;box-shadow:0 0 30px #d7b75a12 inset}
.player-onboard-card h2{color:#fff5d7!important;text-shadow:0 0 18px #d7b45a2f!important;font-family:Georgia,'Times New Roman',serif!important;font-size:clamp(30px,4vw,44px)!important;letter-spacing:.01em!important}
.player-onboard-card h3{color:#e8d7ff!important;font-family:Georgia,'Times New Roman',serif!important}.player-onboard-card h3:after{background:linear-gradient(90deg,#c7a76088,transparent)!important}
.player-onboard-card>p,.player-onboard-card label,.player-onboard-card small{color:#cbbbd7!important}
.player-email{background:#110c18!important;color:#fff!important;border:1px solid #755e8c!important;box-shadow:0 0 0 1px #000 inset,0 8px 24px #0005!important}.player-email::placeholder{color:#9c8da7!important}.player-email:focus{border-color:#d7b65a!important;box-shadow:0 0 0 3px #d7b65a22,0 0 24px #aa7fd92b!important}
.onboard-grid{gap:14px!important}.onboard-choice{min-height:154px!important;padding:18px 16px 16px 84px!important;background:linear-gradient(145deg,#21172d,#17101f)!important;color:#fff!important;border:1px solid #5c486d!important;border-radius:18px!important;box-shadow:0 12px 30px #0007!important;position:relative!important;overflow:hidden!important;transform:none!important}.onboard-choice:before{width:54px!important;height:54px!important;left:16px!important;top:17px!important;border-radius:16px!important;background:linear-gradient(145deg,#372447,#24172f)!important;border:1px solid #7d6591!important;box-shadow:0 0 24px #8e66b42b!important;color:#fff!important}.onboard-choice:after{content:''!important;position:absolute!important;inset:auto -24px -24px auto!important;width:120px!important;height:120px!important;border-radius:50%!important;background:radial-gradient(circle,#d3ad5524,transparent 68%)!important}.onboard-choice strong{font-family:Georgia,'Times New Roman',serif!important;color:#fff5df!important;font-size:20px!important;line-height:1.1!important}.onboard-choice small{color:#bcaec8!important;font-size:12px!important;line-height:1.45!important}.onboard-choice:hover{border-color:#9b79b5!important;transform:translateY(-2px)!important;box-shadow:0 16px 36px #0008,0 0 28px #7e5aa326 inset!important}.onboard-choice.active{border-color:#e0bd62!important;box-shadow:0 0 0 2px #e0bd6244,0 18px 42px #0009,0 0 42px #d4ad5226 inset!important;background:linear-gradient(145deg,#30213f,#1b1225)!important}.onboard-choice.active:before{background:linear-gradient(145deg,#d0aa4d,#8e6720)!important;border-color:#f0d484!important;box-shadow:0 0 26px #f0c95c77!important}
.onboard-choice[data-onboard-class="paladin"]:before{content:'🛡️'!important}.onboard-choice[data-onboard-class="warrior"]:before{content:'⚔️'!important}.onboard-choice[data-onboard-class="rogue"]:before{content:'🗡️'!important}.onboard-choice[data-onboard-class="druid"]:before{content:'🌿'!important}.onboard-choice[data-onboard-class="priest"]:before{content:'✨'!important}.onboard-choice[data-onboard-class="hunter"]:before{content:'🏹'!important}.onboard-choice[data-onboard-class="mage"]:before{content:'🔥'!important}
.onboard-choice[data-onboard-class="paladin"]{background:linear-gradient(145deg,#2c2519,#17131a)!important}.onboard-choice[data-onboard-class="warrior"]{background:linear-gradient(145deg,#2a1717,#171015)!important}.onboard-choice[data-onboard-class="rogue"]{background:linear-gradient(145deg,#191923,#101016)!important}.onboard-choice[data-onboard-class="druid"]{background:linear-gradient(145deg,#17271a,#101713)!important}.onboard-choice[data-onboard-class="priest"]{background:linear-gradient(145deg,#252033,#15111d)!important}.onboard-choice[data-onboard-class="hunter"]{background:linear-gradient(145deg,#1c2719,#111712)!important}.onboard-choice[data-onboard-class="mage"]{background:linear-gradient(145deg,#2d1724,#17101a)!important}
.player-confirm{min-height:66px!important;border:1px solid #e0bd6255!important;background:linear-gradient(180deg,#8e6a28,#5f4318)!important;color:#fff8dc!important;box-shadow:0 12px 30px #0007,0 0 24px #e2bd5630 inset!important;font-family:Georgia,'Times New Roman',serif!important;font-size:15px!important;letter-spacing:.08em!important}.player-confirm:disabled{background:#2b2233!important;color:#7f728a!important;border-color:#50435c!important;box-shadow:none!important}
.fantasy-v33-hero{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:center;margin:-4px 0 18px;padding:14px 16px;border-radius:18px;background:linear-gradient(135deg,#d5b35720,#7b59a81f);border:1px solid #d5b35736}.fantasy-v33-hero .crest{width:54px;height:54px;border-radius:17px;display:grid;place-items:center;font-size:30px;background:#0f0b14;border:1px solid #d2af5955;box-shadow:0 0 24px #d6b55b20}.fantasy-v33-hero strong{display:block;color:#f5df9d;font-family:Georgia,'Times New Roman',serif;font-size:14px;letter-spacing:.08em;text-transform:uppercase}.fantasy-v33-hero span{display:block;color:#bcaec8;font-size:12px;line-height:1.4;margin-top:3px}
@media(max-width:640px){.player-onboard-card{padding:calc(18px + env(safe-area-inset-top)) 14px calc(20px + env(safe-area-inset-bottom))!important}.onboard-grid{grid-template-columns:1fr!important}.onboard-choice{min-height:112px!important;padding:15px 12px 14px 72px!important}.onboard-choice:before{width:44px!important;height:44px!important;left:12px!important;top:14px!important}.onboard-choice strong{font-size:18px!important}.player-confirm{position:sticky!important;bottom:calc(8px + env(safe-area-inset-bottom))!important}.fantasy-v33-hero{grid-template-columns:auto 1fr;margin-bottom:14px}}

/* Vixli V3.4 — mobile playability */
.vixli-mobile-dock{display:none}.fantasy-onboarding~.vixli-mobile-dock{display:none!important}
@media(max-width:640px){
 body{padding-bottom:calc(82px + env(safe-area-inset-bottom))}
 main{padding-bottom:28px}
 .vixli-mobile-dock{position:fixed;display:grid;grid-template-columns:repeat(4,1fr);left:50%;bottom:0;transform:translateX(-50%);width:100%;max-width:720px;z-index:9999;gap:5px;padding:7px 8px calc(7px + env(safe-area-inset-bottom));background:#100b18eF;border-top:1px solid #d8b85b55;box-shadow:0 -12px 34px #0008;backdrop-filter:blur(16px)}
 .vixli-mobile-dock button{min-width:0;min-height:54px;border:1px solid #72598a;border-radius:14px;background:linear-gradient(180deg,#2d203b,#1b1325);color:#fff4d6;padding:6px 3px;font-size:20px;font-weight:800;touch-action:manipulation}
 .vixli-mobile-dock button span{display:block;margin-top:2px;font-size:10px;letter-spacing:.02em}
 .vixli-mobile-dock button:active{transform:translateY(1px);background:#3b2950}
 .panel{scroll-margin-top:12px;scroll-margin-bottom:90px}
 .world-map{margin-bottom:4px}
}
@media(prefers-reduced-motion:reduce){.pet,.player-onboarding:before,.player-onboarding:after{animation:none!important};*{scroll-behavior:auto!important}}

/* Vixli FIRST_ADVENTURE v2: mobile-first Adventure / Chat */
.first-adventure{display:grid;gap:13px}.first-adventure-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.first-adventure-head h2{margin:1px 0 0}.first-adventure-status{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;background:#e8ddf3;color:#513a69;font-size:11px;font-weight:900;white-space:nowrap}.first-adventure-status.paused{background:#f4e6c8;color:#684b17}.first-adventure-progress{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.first-adventure-progress span{height:6px;border-radius:999px;background:#ded2e8}.first-adventure-progress span.on{background:linear-gradient(90deg,#76529d,#58a8cf);box-shadow:0 0 12px #69a9ca66}.first-adventure-context{display:flex;gap:7px;overflow-x:auto;padding:1px 0 3px;scrollbar-width:thin}.first-adventure-context span{flex:0 0 auto;padding:6px 9px;border:1px solid #d9cbe4;border-radius:999px;background:#fff;font-size:11px;color:#513a69}.first-adventure-chat{display:grid;gap:9px;max-height:min(50vh,520px);overflow:auto;padding:4px 3px 4px 0;scrollbar-width:thin}.first-message{max-width:88%;padding:11px 13px;border-radius:16px;line-height:1.45;font-size:14px;box-shadow:0 5px 14px #301d4610}.first-message.gm{justify-self:start;background:#fff;border:1px solid #e2d7eb;border-bottom-left-radius:5px}.first-message.npc{justify-self:start;background:#fff6df;border:1px solid #e6d19f;border-bottom-left-radius:5px}.first-message.user{justify-self:end;background:#49345f;color:#fff;border-bottom-right-radius:5px}.first-message.vixli{justify-self:start;background:linear-gradient(135deg,#e9f6ff,#f3e8ff);border:1px solid #bdd8e8;border-bottom-left-radius:5px}.first-message b{display:block;font-size:10px;letter-spacing:.08em;text-transform:uppercase;opacity:.66;margin-bottom:3px}.first-adventure-form{display:grid;grid-template-columns:1fr auto;gap:8px;position:sticky;bottom:0;padding-top:4px;background:#f8f2ff}.first-adventure-input{min-width:0;min-height:52px;border-radius:14px;border:1px solid #cdbed9;background:#fff;color:#2d233b;padding:11px 13px;font:inherit;box-shadow:0 4px 14px #2f1b4210}.first-adventure-input:focus{outline:3px solid #8d6ab52b;border-color:#8d6ab5}.first-adventure-send{min-width:58px!important;padding:10px 15px!important}.first-adventure-suggestions{display:flex;gap:7px;overflow-x:auto;padding:1px 0 5px;scrollbar-width:thin}.first-adventure-suggestions button{flex:0 0 auto;min-height:38px!important;padding:7px 10px!important;background:#e9def2!important;color:#49345f!important;font-size:12px}.first-adventure-note{padding:9px 11px;border-radius:12px;background:#efe8f5;color:#59436c;font-size:12px}.first-adventure-footer{display:flex;gap:8px;flex-wrap:wrap;padding-top:4px}.first-adventure-footer button{background:#69527f}.first-adventure-footer .secondary{background:#e9def2;color:#49345f}.first-adventure-reward{padding:14px;border:1px solid #c9b3db;border-radius:17px;background:linear-gradient(135deg,#efe6ff,#e6f6ff)}.first-adventure-reward strong{display:block;font-size:17px}.first-adventure-hook{padding:12px 13px;border-radius:15px;background:#20182e;color:#f7eaff}.first-adventure-empty{padding:18px;text-align:center;border-radius:16px;background:#fff;border:1px solid #e2d7eb}@media(max-width:520px){.first-adventure{gap:10px}.first-adventure-head{align-items:center}.first-adventure-head h2{font-size:18px}.first-adventure-chat{max-height:42vh}.first-message{max-width:94%;font-size:13px}.first-adventure-form{grid-template-columns:1fr 56px;padding-bottom:calc(3px + env(safe-area-inset-bottom))}.first-adventure-send{min-width:56px!important;padding:8px!important}.first-adventure-suggestions{margin-inline:-2px}}


/* Vixli Chat-First Reboot */
body.vixli-chat-first{margin:0;min-height:100dvh;background:#080a0f;color:#ece8df;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;overflow:hidden}
body.vixli-chat-first main{max-width:none!important;margin:0!important;padding:0!important;min-height:100dvh!important}
body.vixli-chat-first main>*{display:none!important}
#vixli-chat-root{display:block!important;position:fixed;inset:0;z-index:30000;background:radial-gradient(circle at 50% -10%,#24202f 0,#11131a 38%,#080a0f 76%);color:#ece8df}
.vc-shell{width:min(860px,100%);height:100dvh;margin:auto;display:flex;flex-direction:column;position:relative}
.vc-top{height:58px;flex:0 0 58px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 14px;border-bottom:1px solid #ffffff12;background:#0a0c12e8;backdrop-filter:blur(14px)}
.vc-brand{display:flex;align-items:center;gap:10px;min-width:0}.vc-rune{width:32px;height:32px;border:1px solid #b9a47e55;border-radius:50%;display:grid;place-items:center;color:#d5c29b;background:#d5c29b0b}.vc-brand strong{display:block;font-family:Georgia,serif;letter-spacing:.08em;font-size:17px}.vc-brand small{display:block;color:#8e8b86;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:52vw}.vc-icon-btn{width:40px;height:40px;border:1px solid #ffffff14;border-radius:12px;background:#ffffff08;color:#ddd5c8;font-size:18px}
.vc-menu{flex:1;display:grid;place-items:center;padding:22px;overflow:auto}.vc-menu-card{width:min(520px,100%);padding:30px 24px;border:1px solid #ffffff12;border-radius:24px;background:linear-gradient(160deg,#171923e8,#0d0f15ee);box-shadow:0 30px 100px #0009}.vc-menu-card .eyebrow{color:#b6a27d;font-size:11px;font-weight:800;letter-spacing:.24em}.vc-menu-card h1{font-family:Georgia,serif;font-size:38px;line-height:1;margin:7px 0 12px;color:#f0e7d7}.vc-menu-card p{color:#aaa49b;line-height:1.55}.vc-actions{display:grid;gap:10px;margin-top:22px}.vc-primary,.vc-secondary{min-height:52px;border-radius:14px;font:inherit;font-weight:850}.vc-primary{border:1px solid #d0b98088;background:linear-gradient(135deg,#77623d,#9a8050);color:#fff8ea}.vc-secondary{border:1px solid #ffffff16;background:#ffffff08;color:#ddd7cd}.vc-char-summary{margin-top:18px;padding:13px 14px;border:1px solid #ffffff10;border-radius:15px;background:#ffffff05;display:flex;align-items:center;justify-content:space-between;gap:10px}.vc-char-summary strong{display:block}.vc-char-summary small{color:#8f8c86}
.vc-create{height:100%;overflow:auto;padding:18px 16px 32px}.vc-create-inner{width:min(720px,100%);margin:auto}.vc-create h2{font-family:Georgia,serif;font-size:30px;margin:8px 0}.vc-create>div>p,.vc-create-inner>p{color:#a39e95}.vc-name{width:100%;min-height:50px;border:1px solid #ffffff18;border-radius:13px;background:#0c0e14;color:#f1ece3;padding:0 14px;font:inherit;margin:10px 0 18px}.vc-class-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.vc-class{min-height:122px;border:1px solid #ffffff12;border-radius:16px;background:#12151d;color:#e8e2d8;padding:14px;text-align:left}.vc-class.active{border-color:#c8ad7488;background:#1c1b1b;box-shadow:inset 0 0 0 1px #c8ad7444}.vc-class b{font-size:22px;display:block}.vc-class strong{font-size:16px}.vc-class small{display:block;color:#928e88;margin-top:5px;line-height:1.35}.vc-specs{display:grid;gap:8px;margin:15px 0}.vc-spec{border:1px solid #ffffff12;border-radius:13px;background:#101219;color:#ddd7cd;padding:12px;text-align:left}.vc-spec.active{border-color:#8fa77a;background:#151a15}.vc-create-footer{position:sticky;bottom:0;padding:14px 0 calc(4px + env(safe-area-inset-bottom));background:linear-gradient(transparent,#080a0f 22%)}
.vc-chat{flex:1;min-height:0;display:flex;flex-direction:column}.vc-stream{flex:1;min-height:0;overflow:auto;padding:18px 14px 130px;scroll-behavior:smooth}.vc-message{width:min(720px,100%);margin:0 auto 15px;line-height:1.58;font-size:15px}.vc-message .speaker{font-size:10px;text-transform:uppercase;letter-spacing:.16em;font-weight:900;color:#8e8b84;margin-bottom:4px}.vc-message.gm{color:#ddd8cf}.vc-message.gm .body{font-family:Georgia,serif;font-size:17px;line-height:1.65}.vc-message.user .body{margin-left:auto;width:fit-content;max-width:88%;padding:10px 13px;border:1px solid #ffffff10;border-radius:15px 15px 4px 15px;background:#1a1d26;color:#f0ece5}.vc-message.vixli .body{padding:11px 13px;border-left:2px solid #9c87bd;background:#9c87bd0a;color:#d9d0e6}.vc-roll{display:inline-flex;align-items:center;gap:6px;margin-top:8px;padding:5px 8px;border:1px solid #cbb47c33;border-radius:999px;color:#bba97f;font-size:11px}.vc-empty{width:min(660px,100%);margin:15vh auto 0;text-align:center;color:#928f89}.vc-empty .orb{font-size:48px;filter:drop-shadow(0 0 20px #8d70b966)}.vc-empty h2{font-family:Georgia,serif;color:#e7dfd2}.vc-composer-wrap{position:absolute;left:0;right:0;bottom:0;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:linear-gradient(transparent,#080a0f 22%,#080a0f 100%)}.vc-composer{width:min(820px,100%);margin:auto;display:grid;grid-template-columns:1fr 50px;gap:8px;padding:7px;border:1px solid #ffffff16;border-radius:18px;background:#11141bcc;backdrop-filter:blur(14px);box-shadow:0 12px 50px #0008}.vc-composer textarea{min-height:46px;max-height:130px;resize:none;border:0;outline:0;background:transparent;color:#f2ede5;padding:11px;font:inherit}.vc-composer textarea::placeholder{color:#777772}.vc-send{width:46px;height:46px;align-self:end;border:1px solid #b9a06c66;border-radius:13px;background:#7c6944;color:white;font-size:19px;font-weight:900}.vc-send:disabled{opacity:.4}.vc-thinking{width:min(720px,100%);margin:0 auto 14px;color:#8f8b85;font-size:12px}.vc-dot{display:inline-block;animation:vcPulse 1.1s infinite}.vc-dot:nth-child(2){animation-delay:.15s}.vc-dot:nth-child(3){animation-delay:.3s}@keyframes vcPulse{50%{opacity:.2}}
.vc-drawer{position:absolute;inset:0;z-index:5;background:#06080ccc;display:grid;place-items:end center;padding:14px}.vc-drawer.hide{display:none}.vc-drawer-card{width:min(620px,100%);max-height:82dvh;overflow:auto;border:1px solid #ffffff15;border-radius:22px;background:#12151d;padding:20px;box-shadow:0 30px 100px #000}.vc-drawer-card h3{font-family:Georgia,serif;margin:0 0 8px}.vc-meta-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}.vc-meta{padding:10px;border:1px solid #ffffff10;border-radius:12px;background:#ffffff05}.vc-meta small{display:block;color:#85827d}.vc-provider{font-size:11px;color:#77746f;margin-top:10px}.vc-danger{margin-top:18px;border-color:#8e444466!important;color:#e7b9b9!important}
@media(max-width:560px){.vc-top{height:54px;flex-basis:54px;padding:0 10px}.vc-menu{padding:14px}.vc-menu-card{padding:24px 18px}.vc-menu-card h1{font-size:34px}.vc-class-grid{grid-template-columns:1fr}.vc-create{padding:12px 11px 28px}.vc-stream{padding:14px 11px 122px}.vc-message.gm .body{font-size:16px}.vc-composer-wrap{padding-inline:8px}.vc-composer{grid-template-columns:1fr 46px}.vc-char-summary{align-items:flex-start}}
