:root{--bg:#0c0a10;--bg2:#15121b;--panel:#16121cf0;--panel-solid:#17131d;--panel-2:#221c2aeb;--line:#d6b26e47;--line-strong:#e2be7899;--gold:#d9b56a;--gold-2:#f1d898;--text:#ece4d4;--muted:#a69c8c;--dim:#6f6658;--danger:#e0604a;--good:#69c86f;--info:#7fb8ff;--quest:#ffd24a;--accent:#c8a24a;--hp:#c8322a;--phys:#b8b8c0;--mag:#4a8ae0;--stamina:#d8a440;--focus:#5aa0e8;--radius:10px;--serif:"EB Garamond", Georgia, serif;--display:"Cinzel", "Trajan Pro", Georgia, serif;--sans:Inter, system-ui, -apple-system, "Segoe UI", sans-serif;--shadow:0 10px 40px #0000008c, 0 0 0 1px #0009}*{box-sizing:border-box}html,body,#root{background:var(--bg);height:100%;color:var(--text);font-family:var(--sans);margin:0;font-size:14px}body{-webkit-font-smoothing:antialiased;overflow:hidden}button{font:inherit;color:inherit}input,textarea,select{font:inherit;color:var(--text)}a{color:var(--gold-2)}::selection{background:#d9b56a59}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#d9b56a38 padding-box padding-box;border:2px solid #0000;border-radius:10px}::-webkit-scrollbar-track{background:0 0}.display{font-family:var(--display);letter-spacing:.04em}.serif{font-family:var(--serif)}.muted{color:var(--muted)}.dim{color:var(--dim)}.gold{color:var(--gold-2)}.row{align-items:center;gap:10px;display:flex}.col{flex-direction:column;gap:10px;display:flex}.grow{flex:1}.wrap{flex-wrap:wrap}.center{justify-content:center;align-items:center;display:flex}.small{font-size:12px}.tiny{font-size:11px}.spacer{flex:1}.scroll{overflow:auto}.btn{cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid var(--line);color:var(--text);background:linear-gradient(#3c3046f2,#241d2cf2);border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:9px 16px;font-weight:500;transition:border-color .15s,transform 80ms,background .15s,box-shadow .15s;display:inline-flex}.btn:hover{border-color:var(--line-strong);box-shadow:0 0 0 1px #d9b56a26,0 0 18px #d9b56a1f}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.btn.primary{background:linear-gradient(180deg, var(--btn-primary-a,#c99a48), var(--btn-primary-b,#8c6224));border-color:var(--btn-primary-edge,#e7c27a);color:#1c130a;text-shadow:0 1px #ffffff40;font-weight:600}.btn.danger{background:linear-gradient(#7a2a24,#4e1814);border-color:#ff786466}.btn.ghost{background:0 0;border-color:#0000}.btn.ghost:hover{border-color:var(--line);background:#ffffff0d}.btn.sm{padding:5px 10px;font-size:12px}.btn.lg{padding:13px 26px;font-size:16px}.icon-btn{border-radius:8px;width:34px;height:34px;padding:0}.field{flex-direction:column;gap:6px;display:flex}.field label,.label{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:12px;font-weight:600}.input,textarea.input,select.input{border:1px solid var(--line);background:#08060c99;border-radius:8px;outline:none;padding:10px 12px;transition:border-color .15s,box-shadow .15s}.input:focus{border-color:var(--line-strong);box-shadow:0 0 0 3px #d9b56a1f}textarea.input{resize:vertical;min-height:80px;line-height:1.5}.hint{color:var(--dim);font-size:12px;line-height:1.45}.error-text{color:var(--danger);font-size:13px}.choice-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;display:grid}.choice{border:1px solid var(--line);cursor:pointer;text-align:left;background:#ffffff05;border-radius:10px;padding:10px 12px;transition:border-color .15s,background .15s}.choice:hover{border-color:var(--line-strong)}.choice.on{border-color:var(--gold);background:#d9b56a1a;box-shadow:inset 0 0 0 1px #d9b56a4d}.choice .t{margin-bottom:3px;font-weight:600}.choice .d{color:var(--muted);font-size:12px;line-height:1.4}.chip{border:1px solid var(--line);color:var(--muted);cursor:pointer;background:#ffffff08;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;display:inline-flex}.chip:hover{border-color:var(--line-strong);color:var(--text)}.badge{color:var(--gold-2);letter-spacing:.02em;background:#d9b56a1f;border:1px solid #d9b56a4d;border-radius:999px;align-items:center;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.badge.gray{color:var(--muted);background:#ffffff0d;border-color:#ffffff1f}.badge.green{color:#a4e7a8;background:#69c86f1f;border-color:#69c86f59}.badge.red{color:#f4a596;background:#e0604a1f;border-color:#e0604a59}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.panel-head{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:12px 16px;display:flex}.panel-head h2,.panel-head h3{font-family:var(--display);color:var(--gold-2);letter-spacing:.05em;margin:0;font-size:17px;font-weight:500}.panel-body{padding:14px 16px}.ornament{background:linear-gradient(90deg, transparent, var(--line-strong), transparent);height:1px;margin:10px 0}.page{height:100%;position:relative;overflow:auto}.page-inner{z-index:1;max-width:1180px;margin:0 auto;padding:28px 28px 80px;position:relative}.topbar{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:5;background:#0a080eb3;align-items:center;gap:14px;padding:14px 28px;display:flex;position:sticky;top:0}.brand{font-family:var(--display);color:var(--gold-2);letter-spacing:.08em;cursor:pointer;align-items:center;gap:10px;font-size:20px;display:flex}.brand img{width:26px;height:26px}.h1{font-family:var(--display);color:var(--gold-2);letter-spacing:.04em;margin:0 0 6px;font-size:30px;font-weight:500}.h2{font-family:var(--display);color:var(--gold-2);letter-spacing:.04em;margin:0;font-size:20px;font-weight:500}.lede{font-family:var(--serif);color:var(--muted);max-width:760px;font-size:18px;line-height:1.5}.bg-canvas{z-index:0;pointer-events:none;position:fixed;inset:0}.cards{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;display:grid}.card{border:1px solid var(--line);cursor:pointer;background:linear-gradient(#241d2cd9,#120e16eb);border-radius:14px;transition:transform .15s,border-color .15s,box-shadow .15s;position:relative;overflow:hidden}.card:hover{border-color:var(--line-strong);transform:translateY(-2px);box-shadow:0 14px 40px #00000080}.card .art{height:120px;position:relative;overflow:hidden}.card .art canvas{width:100%;height:100%;display:block}.card .body{padding:14px 16px 16px}.card .title{font-family:var(--display);color:var(--gold-2);margin-bottom:6px;font-size:18px}.card .pitch{font-family:var(--serif);color:var(--muted);-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:15px;line-height:1.4;display:-webkit-box;overflow:hidden}.card .meta{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.card.new{background:#d9b56a08;border-style:dashed;justify-content:center;align-items:center;min-height:240px;display:flex}.auth{z-index:1;max-width:420px;margin:12vh auto 0;padding:32px;position:relative}.auth .title{font-family:var(--display);text-align:center;color:var(--gold-2);letter-spacing:.08em;font-size:40px;line-height:1.1}.auth .subtitle{text-align:center;font-family:var(--serif);color:var(--muted);margin:10px 0 26px;font-size:18px;font-style:italic}.gen-log{border:1px solid var(--line);background:#00000059;border-radius:8px;max-height:340px;padding:10px 12px;font-family:ui-monospace,Consolas,monospace;font-size:12px;line-height:1.6;overflow:auto}.gen-log .warn{color:#f0c070}.gen-log .error{color:var(--danger)}.gen-log .step{color:var(--gold-2);font-weight:600}.gen-log .preview{color:#a8d8ff}.progress{background:#ffffff0f;border:1px solid #ffffff0f;border-radius:99px;height:8px;overflow:hidden}.progress>div{background:linear-gradient(90deg,#8c6224,#f1d898);height:100%;transition:width .5s;box-shadow:0 0 12px #f1d89899}.game{-webkit-user-select:none;user-select:none;background:#07060a;position:fixed;inset:0;overflow:clip}.game canvas.view{cursor:default;width:100%;height:100%;display:block;position:absolute;inset:0}.game.targeting canvas.view{cursor:crosshair}.hud{pointer-events:none;position:absolute;inset:0}.hud>*{pointer-events:auto}.party{flex-direction:column;gap:8px;display:flex;position:absolute;top:14px;left:14px}.pcard{background:var(--panel);border:1px solid var(--line);cursor:pointer;width:228px;box-shadow:var(--shadow);border-radius:10px;gap:8px;padding:6px 8px 6px 6px;display:flex;position:relative}.pcard.down{filter:grayscale(.8)brightness(.7)}.portrait{border:1px solid var(--line);background:radial-gradient(circle at 50% 35%,#2c2434,#120e16);border-radius:8px;flex:none;width:52px;height:52px;position:relative;overflow:hidden}.portrait canvas{width:100%;height:100%}.pcard .name{justify-content:space-between;font-size:13px;font-weight:600;display:flex}.pcard .lvl{color:var(--gold-2);font-size:11px}.bar{background:#0009;border-radius:4px;height:7px;margin-top:3px;position:relative;overflow:hidden}.bar>div{border-radius:4px;height:100%;transition:width .25s}.bar .lbl{text-align:center;color:#ffffffd9;text-shadow:0 1px 1px #000;font-size:9px;line-height:7px;position:absolute;inset:0}.points{background:var(--quest);color:#1a1206;border-radius:99px;padding:1px 6px;font-size:10px;font-weight:700;position:absolute;top:-6px;right:-6px;box-shadow:0 0 10px #ffd24a99}.topright{flex-direction:column;align-items:flex-end;gap:8px;display:flex;position:absolute;top:14px;right:14px}.minimap{border:2px solid var(--line-strong);width:200px;height:200px;box-shadow:var(--shadow), inset 0 0 30px #000c;cursor:pointer;background:#0a0810;border-radius:50%;position:relative;overflow:hidden}.minimap canvas{width:100%;height:100%}.zone-name{font-family:var(--display);color:var(--gold-2);text-shadow:0 2px 6px #000;text-align:right;font-size:15px}.clock{color:var(--muted);text-shadow:0 1px 3px #000;text-align:right;font-size:12px}.actionbar{flex-direction:column;align-items:center;gap:8px;display:flex;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}.slots{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px;gap:5px;padding:7px;display:flex}.slot{cursor:pointer;background:radial-gradient(circle at 50% 30%,#2c2434,#140f18);border:1px solid #ffffff14;border-radius:8px;justify-content:center;align-items:center;width:50px;height:50px;transition:border-color .12s,transform 80ms;display:flex;position:relative}.slot:hover{border-color:var(--line-strong)}.slot.on{border-color:var(--gold);box-shadow:0 0 14px #d9b56a73}.slot.cd,.slot.na{filter:grayscale(.8)brightness(.55)}.slot .key{color:var(--dim);font-size:10px;font-weight:600;position:absolute;top:2px;left:4px}.slot .cdn{color:#fff;text-shadow:0 1px 3px #000;justify-content:center;align-items:center;font-size:18px;font-weight:700;display:flex;position:absolute;inset:0}.slot .ap{color:#ffe08a;font-size:10px;font-weight:700;position:absolute;bottom:2px;right:4px}.slot canvas{width:40px;height:40px}.ap-row{background:var(--panel);border:1px solid var(--line);border-radius:999px;align-items:center;gap:5px;padding:6px 12px;display:flex}.pip{background:#0006;border:1px solid #ffe68c66;border-radius:50%;width:14px;height:14px}.pip.on{background:radial-gradient(circle at 40% 35%,#fff2b0,#e0a020);box-shadow:0 0 8px #ffc850b3}.pip.spend{background:radial-gradient(circle at 40% 35%,#ffb0a0,#c04020)}.turnbar{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px;align-items:center;gap:4px;padding:6px;display:flex;position:absolute;top:12px;left:50%;transform:translate(-50%)}.turnbar .tp{background:#140f18;border:2px solid #0000;border-radius:8px;width:42px;height:42px;position:relative;overflow:hidden}.turnbar .tp.players{border-color:#78c8ff80}.turnbar .tp.enemies{border-color:#ff645080}.turnbar .tp.active{z-index:1;border-color:#ffe08a;transform:scale(1.12);box-shadow:0 0 14px #ffdc7899}.turnbar .tp.dead{opacity:.3}.turnbar .tp-unseen{width:100%;height:100%;font-family:var(--display);color:#ffffff8c;place-items:center;font-size:18px;display:grid}.turnbar .round{font-family:var(--display);color:var(--gold-2);padding:0 8px;font-size:12px}.log{pointer-events:none;flex-direction:column;justify-content:flex-end;gap:2px;width:340px;max-height:210px;font-size:12px;display:flex;position:absolute;bottom:14px;left:14px;overflow:hidden;-webkit-mask-image:linear-gradient(#0000,#000 30%);mask-image:linear-gradient(#0000,#000 30%)}.log div{text-shadow:0 1px 2px #000,0 0 6px #000;color:#d8d0c0}.toasts{pointer-events:none;z-index:30;flex-direction:column;align-items:center;gap:6px;display:flex;position:absolute;top:70px;left:50%;transform:translate(-50%)}.toast{border:1px solid var(--line);box-shadow:var(--shadow);text-align:center;background:#100c14eb;border-radius:8px;max-width:560px;padding:8px 16px;font-size:13px;animation:.25s ease-out toastIn}.toast.good{color:#c6f3c8;border-color:#69c86f99}.toast.bad{color:#ffc8bc;border-color:#e0604a99}.toast.quest{color:#ffe7a0;font-family:var(--serif);border-color:#ffd24a99;font-size:16px}.toast.loot{color:#cfe4ff;border-color:#7fb8ff80}@keyframes toastIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}.cursor-note{pointer-events:none;color:#ffe7a0;z-index:40;background:#000000bf;border:1px solid #ffe68c66;border-radius:6px;padding:3px 8px;font-size:12px;font-weight:600;position:absolute;transform:translate(14px,14px)}.cursor-note.bad{color:#ffb0a0;border-color:#ff786466}.window{z-index:20;flex-direction:column;max-height:calc(100% - 140px);display:flex;position:absolute}.window .panel-body{overflow:auto}.close-x{margin-left:auto}.dialog{flex-direction:row;width:min(940px,100vw - 32px);height:min(560px,100vh - 150px);display:flex;bottom:96px;left:50%;overflow:hidden;transform:translate(-50%)}.dialog .dlg-side{border-right:1px solid var(--line);background:linear-gradient(#ffffff08,#0000 60%);flex-direction:column;flex:none;align-items:center;gap:4px;width:190px;padding:14px 12px;display:flex}.dialog .dlg-portrait{border:1px solid var(--line-strong);background:radial-gradient(circle at 50% 30%,#ffffff1a,#00000080);border-radius:12px;width:150px;height:150px;overflow:hidden;box-shadow:inset 0 -30px 40px #00000059}.dialog .dlg-portrait canvas{width:100%;height:100%}.dialog .dlg-name{text-align:center;margin-top:6px;font-size:17px;line-height:1.15}.dialog .dlg-title{text-align:center;font-size:14px;font-style:italic;line-height:1.2}.dialog .dlg-disp{align-items:center;gap:6px;margin-top:4px;display:flex}.dialog .dlg-disp .bar{background:#ffffff14;border-radius:3px;width:80px;height:5px;overflow:hidden}.dialog .dlg-disp .bar>div{height:100%;transition:width .6s}.dialog .dlg-side .btn{width:100%}.dialog .dlg-main{flex-direction:column;flex:1;min-width:0;display:flex}.dialog .msgs{flex-direction:column;flex:1;gap:12px;padding:16px 20px;display:flex;position:relative;overflow:auto}.caret{vertical-align:-2px;background:var(--gold);opacity:.6;width:7px;height:1em;margin-left:2px;animation:1s infinite think;display:inline-block}.replies{flex-direction:column;gap:2px;margin:0;padding:0 0 0 22px;display:flex}.replies li{cursor:pointer;color:var(--gold-2);font-family:var(--serif);border-radius:6px;padding:2px 6px;font-size:15px}.replies li::marker{color:var(--dim);font-family:var(--sans);font-size:12px}.replies li:hover{color:#fff;background:#ffffff0d}.dialog .say{align-items:flex-end;gap:8px;display:flex}.dialog .say textarea{resize:none;field-sizing:content;flex:1;min-height:0;max-height:120px}.dialog .say .offer{white-space:nowrap;text-overflow:ellipsis;max-width:220px;overflow:hidden}.dialog .say .offer.on{color:var(--gold-2);border-color:var(--line-strong)}.dialog .attach select{max-width:220px}.msg{line-height:1.5}.msg.npc{font-family:var(--serif);color:#f2e8d2;font-size:17px}.msg.npc .who{font-family:var(--sans);color:var(--gold);text-transform:uppercase;letter-spacing:.08em;margin-bottom:2px;font-size:11px;display:block}.msg.player{color:#d4e6ff;background:#7fb8ff14;border:1px solid #7fb8ff33;border-radius:10px 10px 2px;align-self:flex-end;max-width:85%;padding:8px 12px}.msg.narrator{font-family:var(--serif);color:var(--muted);text-align:center;border-left:2px solid var(--line);border-right:2px solid var(--line);padding:2px 10px;font-size:15px;font-style:italic}.thinking{gap:5px;padding:6px 0;display:flex}.thinking span{background:var(--gold);opacity:.3;border-radius:50%;width:7px;height:7px;animation:1.2s infinite think}.thinking span:nth-child(2){animation-delay:.2s}.thinking span:nth-child(3){animation-delay:.4s}@keyframes think{0%,to{opacity:.2;transform:translateY(0)}50%{opacity:1;transform:translateY(-3px)}}.dialog .compose{border-top:1px solid var(--line);flex-direction:column;gap:8px;padding:10px 12px;display:flex}.suggest{flex-wrap:wrap;gap:6px;display:flex}.attach{color:var(--muted);align-items:center;gap:6px;font-size:12px;display:flex}.attach .input{padding:5px 8px}.items{grid-template-columns:repeat(auto-fill,52px);gap:6px;display:grid}.item{cursor:pointer;background:radial-gradient(circle at 50% 35%,#2a2230,#120e16);border:1px solid #ffffff1a;border-radius:8px;justify-content:center;align-items:center;width:52px;height:52px;display:flex;position:relative}.item:hover{filter:brightness(1.2)}.item canvas,.item img{object-fit:contain;width:40px;height:40px}.item .qty{text-shadow:0 1px 2px #000;font-size:11px;font-weight:700;position:absolute;bottom:1px;right:4px}.item.sel{outline:2px solid var(--gold)}.item.r-1{border-color:color-mix(in srgb, var(--rc) 55%, transparent)}.item.r-2{border-color:color-mix(in srgb, var(--rc) 65%, transparent);box-shadow:inset 0 0 10px color-mix(in srgb, var(--rc) 20%, transparent)}.item.r-3{border-color:color-mix(in srgb, var(--rc) 75%, transparent);box-shadow:inset 0 0 12px color-mix(in srgb, var(--rc) 25%, transparent)}.item.r-4{border-color:color-mix(in srgb, var(--rc) 85%, transparent);box-shadow:inset 0 0 14px color-mix(in srgb, var(--rc) 30%, transparent)}.item.r-unique{border-color:#ffd24ad9;box-shadow:inset 0 0 14px #ffd24a4d,0 0 8px #ffd24a33}.item.empty{opacity:.35;cursor:default}.item.empty:hover{filter:none}.item .upg{color:#9fe0ff;text-shadow:0 1px 2px #000;font-size:10px;font-weight:700;position:absolute;top:1px;right:4px}.item.quest{border-color:#ffd24a99}.equip{grid-template-columns:repeat(4,60px);gap:8px;display:grid}.equip .slotbox{color:var(--dim);text-transform:uppercase;flex-direction:column;align-items:center;gap:2px;font-size:10px;display:flex}.tooltip{z-index:100;pointer-events:none;border:1px solid var(--line-strong);max-width:300px;box-shadow:var(--shadow);background:#0c0910f7;border-radius:8px;padding:10px 12px;font-size:12px;line-height:1.45;position:fixed}.tooltip .tname{margin-bottom:2px;font-size:14px;font-weight:700}.tooltip .tdesc{font-family:var(--serif);color:var(--muted);margin-top:6px;font-size:13px;font-style:italic}.tooltip .tline{color:#d8e4ff}.tooltip .tsub{color:var(--dim);font-size:11px}.menu-list{flex-direction:column;gap:4px;min-width:170px;display:flex}.ctx{z-index:90;padding:6px;position:fixed}.quest{cursor:pointer;border:1px solid #0000;border-radius:8px;padding:10px 12px}.quest:hover{background:#ffffff08}.quest.on{border-color:var(--line);background:#d9b56a0f}.quest .qt{font-family:var(--display);color:var(--gold-2);font-size:14px}.obj{gap:8px;padding:3px 0;font-size:13px;display:flex}.obj .chk{border:1px solid var(--line-strong);border-radius:4px;flex:none;justify-content:center;align-items:center;width:15px;height:15px;margin-top:2px;font-size:11px;display:flex}.obj.done{color:var(--dim);text-decoration:line-through}.obj.done .chk{border-color:var(--good);color:var(--good);background:#69c86f40}.obj.hidden{color:var(--dim);font-style:italic}.narration-wrap{z-index:60;background:radial-gradient(#0000008c,#000000d9);justify-content:center;align-items:center;animation:.4s fadeIn;display:flex;position:absolute;inset:0}.narration{text-align:center;max-width:680px;padding:34px 40px 28px}.narration h2{font-family:var(--display);color:var(--gold-2);letter-spacing:.08em;margin:0 0 16px;font-size:26px;font-weight:500}.narration p{font-family:var(--serif);color:#efe5cf;white-space:pre-wrap;margin:0 0 22px;font-size:20px;line-height:1.6}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.kv{grid-template-columns:1fr auto;gap:4px 14px;font-size:13px;display:grid}.kv .v{text-align:right;color:var(--gold-2);font-variant-numeric:tabular-nums}.attr{border-bottom:1px solid #ffffff0a;align-items:center;gap:8px;padding:5px 0;display:flex}.attr .n{flex:1}.attr .val{text-align:right;width:28px;color:var(--gold-2);font-weight:700}.tabs{border-bottom:1px solid var(--line);gap:2px;padding:0 10px;display:flex}.tab{cursor:pointer;color:var(--muted);border-bottom:2px solid #0000;padding:9px 12px;font-size:13px}.tab.on{color:var(--gold-2);border-bottom-color:var(--gold)}.tab .dot{background:var(--quest);vertical-align:2px;width:6px;height:6px;box-shadow:0 0 6px var(--quest);border-radius:50%;margin-left:6px;display:inline-block}.tab.glow{text-shadow:0 0 10px #ffd24a99}.skill-card{background:#ffffff05;border:1px solid #ffffff0f;border-radius:8px;align-items:flex-start;gap:10px;padding:8px;display:flex}.skill-card canvas{border-radius:6px;flex:none;width:40px;height:40px}.skill-card .sn{font-weight:600}.skill-card.known{border-color:#d9b56a59}.connection{z-index:80;background:#050408d9;flex-direction:column;justify-content:center;align-items:center;gap:14px;display:flex;position:absolute;inset:0}.table{border-collapse:collapse;width:100%;font-size:13px}.table th{text-align:left;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--line);padding:8px;font-size:11px;font-weight:600}.table td{vertical-align:top;border-bottom:1px solid #ffffff0d;padding:8px}code{background:#ffffff0f;border-radius:4px;padding:1px 5px;font-family:ui-monospace,Consolas,monospace;font-size:12px}.spinner{border:3px solid #d9b56a33;border-top-color:var(--gold);border-radius:50%;width:34px;height:34px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.chip.on{border-color:var(--gold);color:var(--gold-2)}.seg{border:1px solid var(--line);background:#00000059;border-radius:9px;flex-wrap:wrap;gap:2px;padding:2px;display:flex}.seg .btn{flex:1}.swatch-btn{cursor:pointer;border:1px solid var(--line);border-radius:6px;width:22px;height:22px}.swatch-btn.on{border:2px solid var(--gold)}.bad{color:var(--danger)}.capbar{background:#ffffff0f;border-radius:2px;height:3px;margin:-4px 0 2px;overflow:hidden}.capbar>div{background:var(--gold);opacity:.6;height:100%;transition:width .3s}.capbar>div.full{background:var(--danger);opacity:.9}.offer-row{border:1px solid var(--line);background:#ffffff05;border-radius:8px;align-items:center;gap:10px;padding:8px 10px;display:flex}.recipe{border:1px solid var(--line);border-radius:8px;align-items:center;gap:10px;padding:8px 10px;display:flex}.recipe.na{opacity:.6}.recipe canvas,.recipe img{width:40px;height:40px}.loot-row{cursor:pointer;border-radius:8px;padding:2px 4px}.loot-row:hover{background:#ffffff0a}.slot .cost{border-radius:50%;width:6px;height:6px;position:absolute;bottom:4px;left:5px;box-shadow:0 0 4px}.slot.sm{width:42px;height:42px}.slot.sm canvas{width:34px;height:34px}.slot.unslotted{border-style:dashed}.worldmap{background:radial-gradient(ellipse at center, var(--panel-2), var(--bg));border:1px solid var(--line);border-radius:10px}.portrait-lg{border:1px solid var(--line-strong);background:radial-gradient(circle at 50% 35%,#ffffff14,#0006);border-radius:10px;flex:none;width:64px;height:64px;overflow:hidden}.hero-stage{border:1px solid var(--line);background:radial-gradient(circle at 50% 35%, var(--panel-2), var(--bg));border-radius:14px;width:210px;height:210px;overflow:hidden;box-shadow:inset 0 -40px 60px #00000059}.branch-chip{border:1px solid var(--line);cursor:default;background:#ffffff05;border-radius:8px;flex-direction:column;gap:2px;max-width:260px;padding:8px 12px;display:flex}.branch-chip b{font-family:var(--display);color:var(--gold-2);letter-spacing:.04em;font-weight:500}.choice.disabled{opacity:.45;cursor:not-allowed}.advanced{border:1px solid var(--line);background:#0000002e;border-radius:10px;padding:14px}.tri-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px;display:grid}.tri{border:1px solid var(--line);border-radius:8px;align-items:center;gap:10px;padding:8px 10px;display:flex}.tri .t{font-size:13px;font-weight:600}.tri .seg{flex-wrap:nowrap}.modal-wrap{z-index:50;background:#0009;justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.modal{flex-direction:column;width:min(940px,100vw - 40px);height:min(720px,100vh - 80px);display:flex}.phases{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.phases li{border-radius:8px;align-items:flex-start;gap:10px;padding:6px 8px;display:flex}.phases li.active{border:1px solid var(--line);background:#d9b56a14}.phases li.pending{opacity:.55}.phases .mark{width:18px;height:18px;color:var(--good);flex:none;place-items:center;font-weight:700;display:grid}.phases li.pending .mark{border:1px solid var(--line);border-radius:50%;width:14px;height:14px;margin:2px}.phases .mark .spinner{border-width:2px;width:14px;height:14px}.phases .pl{align-items:baseline;gap:8px;font-size:13px;font-weight:600;display:flex}.phases li.done .pl{color:var(--muted);font-weight:500}.phases .count{color:var(--gold-2);font-variant-numeric:tabular-nums;font-size:11px}.phases .pd{color:var(--dim);font-size:12px}.phases .pt{color:var(--dim);font-variant-numeric:tabular-nums;font-size:11px}.progress.thin{height:4px;margin-top:5px}.tree{grid-template-columns:repeat(3,minmax(0,1fr)) minmax(170px,.8fr);gap:12px;display:grid}.branch{border:1px solid var(--line);background:linear-gradient(#ffffff09,#00000026);border-radius:10px;flex-direction:column;gap:8px;min-width:0;padding:10px;display:flex}.branch.attrs{background:linear-gradient(#ffffff05,#0003)}.branch-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:6px;padding-bottom:6px;display:flex}.branch-head .display{color:var(--gold-2);white-space:nowrap;text-overflow:ellipsis;font-size:15px;overflow:hidden}.tier{flex-direction:column;gap:5px;display:flex;position:relative}.tier.closed{opacity:.55}.tier-req{letter-spacing:.1em;text-transform:uppercase;color:var(--dim);align-items:center;gap:6px;font-size:10px;display:flex}.tier-req:before,.tier-req:after{content:"";background:var(--line);flex:1;height:1px}.tier.open .tier-req{color:var(--muted)}.tnode{cursor:pointer;background:#00000040;border:1px solid #ffffff12;border-radius:8px;align-items:center;gap:8px;padding:5px 7px;transition:border-color .12s,background .12s,box-shadow .12s;display:flex}.tnode:hover{border-color:var(--line-strong)}.tnode.avail{border-color:color-mix(in srgb, var(--quest) 55%, transparent);box-shadow:0 0 10px #ffd24a1f}.tnode.some{border-color:var(--line-strong);background:#d9b56a0f}.tnode.maxed{border-color:var(--gold);background:#d9b56a1f}.tnode.locked,.tnode.avail-no{cursor:default}.tnode.locked{filter:grayscale(.7)brightness(.75)}.tnode.capstone{border-width:2px}.tn-icon{background:radial-gradient(circle at 50% 30%,#ffffff14,#0006);border-radius:7px;flex:none;place-items:center;width:34px;height:34px;display:grid}.tn-icon canvas{width:34px;height:34px}.tn-icon .glyph{color:var(--gold-2);font-size:17px}.tnode.capstone .glyph{color:var(--quest);text-shadow:0 0 8px #ffd24a99;font-size:20px}.tn-text{flex:1;min-width:0}.tn-name{white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:600;overflow:hidden}.tn-rank{color:var(--gold-2);gap:3px;margin-top:3px;display:flex}.tn-rank .pip{width:8px;height:8px}@media (width<=1000px){.tree{grid-template-columns:repeat(2,minmax(0,1fr))}}.codex-nav{border-right:1px solid var(--line);flex-direction:column;flex:none;gap:2px;width:220px;padding:10px 8px;display:flex}.codex-nav .input{margin-bottom:8px;padding:7px 10px}.codex-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px;display:grid}.codex-entry{border:1px solid var(--line);border-left:3px solid var(--ec,var(--line));background:#ffffff05;border-radius:9px;padding:10px 12px}.codex-entry .ce-title{font-family:var(--display);color:var(--gold-2);align-items:center;gap:7px;margin-bottom:4px;font-size:15px;display:flex}.codex-entry .swatch{background:var(--ec);width:10px;height:10px;box-shadow:0 0 6px var(--ec);border-radius:3px}.codex-entry .ce-text{font-family:var(--serif);color:var(--muted);margin-bottom:4px;font-size:14px;font-style:italic;line-height:1.4}.codex-entry .ce-line{color:#dcd4c4;padding-left:10px;font-size:12.5px;line-height:1.5;position:relative}.codex-entry .ce-line:before{content:"·";color:var(--gold);position:absolute;left:1px}.game .grade{pointer-events:none;position:absolute;inset:0;overflow:clip}.game canvas.view{filter:var(--grade-filter,none)}.game .grade:before{content:"";background:var(--grade-tint,transparent);opacity:var(--grade-tint-a,0);mix-blend-mode:soft-light;position:absolute;inset:0}.game .grade:after{content:"";background:radial-gradient(ellipse at center, transparent 35%, rgba(0,0,0, var(--grade-vignette,.3)) 100%);position:absolute;inset:0}.game .grade .grain{opacity:calc(var(--grade-grain,.02) * 5);mix-blend-mode:overlay;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");animation:1.2s steps(6,end) infinite grain;position:absolute;inset:-10%}@keyframes grain{0%{transform:translate(0)}20%{transform:translate(-2%,1%)}40%{transform:translate(1%,-2%)}60%{transform:translate(-1%,2%)}80%{transform:translate(2%,1%)}to{transform:translate(0)}}.ornate:not(.window){position:relative}:root[data-material=parchment] .panel{background-image:radial-gradient(at 30% 0,#ffdca00f,#0000 60%),radial-gradient(at 80% 100%,#78501e14,#0000 55%)}:root[data-material=wood] .panel{background-image:repeating-linear-gradient(92deg,#ffd29606 0 2px,#0000 2px 9px,#0000000d 9px 11px,#0000 11px 23px),linear-gradient(#78461e1f,#0000001a);border-width:2px}:root[data-material=stone] .panel{background-image:radial-gradient(#ffffff09 1px,#0000 1.4px),radial-gradient(#00000026 1px,#0000 1.6px),linear-gradient(#ffffff08,#0000001f);background-position:0 0,3px 5px,0 0;background-size:7px 7px,11px 11px,100% 100%;border-radius:6px}:root[data-material=metal] .panel{box-shadow:inset 0 1px 0 #ffffff1f, inset 0 -1px 0 #00000080, var(--shadow);background-image:repeating-linear-gradient(#ffffff05 0 1px,#0000 1px 3px),linear-gradient(#ffffff12,#0000002e);border-radius:5px}:root[data-material=glass] .panel{-webkit-backdrop-filter:blur(14px)saturate(1.3);backdrop-filter:blur(14px)saturate(1.3);box-shadow:inset 0 0 0 1px #ffffff0f, 0 0 24px var(--accent-glow,transparent), var(--shadow);background-image:linear-gradient(160deg,#ffffff14,#fff0 40%)}:root[data-material=organic] .panel{background-image:radial-gradient(ellipse at 0% 0%, var(--accent-glow,transparent), transparent 45%), radial-gradient(ellipse at 100% 100%, #ffffff0a, transparent 50%);border-radius:18px}:root[data-material=paper] .panel{box-shadow:0 2px 0 #0006, var(--shadow);background-image:linear-gradient(#ffffff09,#fff0 30%);border-radius:4px}:root[data-material=neon] .panel{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-glow,transparent), 0 0 18px var(--accent-glow,transparent), inset 0 0 22px #0009, var(--shadow);border-radius:4px}:root[data-material=stone] .btn,:root[data-material=metal] .btn,:root[data-material=paper] .btn,:root[data-material=neon] .btn{border-radius:4px}:root[data-material=organic] .btn{border-radius:999px}.ornate>.corner{pointer-events:none;z-index:2;width:18px;height:18px;display:none;position:absolute}.ornate>.corner.tl{top:-2px;left:-2px}.ornate>.corner.tr{top:-2px;right:-2px;transform:scaleX(-1)}.ornate>.corner.bl{bottom:-2px;left:-2px;transform:scaleY(-1)}.ornate>.corner.br{bottom:-2px;right:-2px;transform:scale(-1)}:root[data-ornament=filigree] .ornate>.corner{border-left:2px solid var(--gold);border-top:2px solid var(--gold);border-top-left-radius:12px;display:block}:root[data-ornament=filigree] .ornate>.corner:after{content:"";background:var(--gold);width:5px;height:5px;box-shadow:0 0 6px var(--gold);border-radius:50%;position:absolute;top:4px;left:4px}:root[data-ornament=runes] .ornate>.corner{width:12px;height:12px;display:block;top:auto;left:auto}:root[data-ornament=runes] .ornate>.corner:after{content:"";border:1px solid var(--gold);background:var(--panel-solid);box-shadow:0 0 8px var(--accent-glow,transparent);position:absolute;inset:2px;transform:rotate(45deg)}:root[data-ornament=runes] .ornate>.corner.tl{top:-5px;left:-5px}:root[data-ornament=runes] .ornate>.corner.tr{top:-5px;right:-5px}:root[data-ornament=runes] .ornate>.corner.bl{bottom:-5px;left:-5px}:root[data-ornament=runes] .ornate>.corner.br{bottom:-5px;right:-5px}:root[data-ornament=rivets] .ornate>.corner{background:radial-gradient(circle at 35% 30%,#f4f0e8,#7a7468 60%,#3a3630);border-radius:50%;width:7px;height:7px;display:block;box-shadow:0 1px 1px #000000b3}:root[data-ornament=rivets] .ornate>.corner.tl{top:6px;left:6px}:root[data-ornament=rivets] .ornate>.corner.tr{top:6px;right:6px}:root[data-ornament=rivets] .ornate>.corner.bl{bottom:6px;left:6px}:root[data-ornament=rivets] .ornate>.corner.br{bottom:6px;right:6px}:root[data-ornament=circuit] .ornate>.corner{border-left:1px solid var(--accent);border-top:1px solid var(--accent);opacity:.8;width:26px;height:14px;display:block;top:6px;left:6px}:root[data-ornament=circuit] .ornate>.corner:after{content:"";background:var(--accent);width:5px;height:5px;box-shadow:0 0 6px var(--accent);border-radius:50%;position:absolute;top:-3px;right:-3px}:root[data-ornament=circuit] .ornate>.corner.tr{left:auto;right:6px}:root[data-ornament=circuit] .ornate>.corner.bl{top:auto;bottom:6px}:root[data-ornament=circuit] .ornate>.corner.br{inset:auto 6px 6px auto}:root[data-ornament=vines] .ornate>.corner{border-left:2px solid var(--good);border-top:2px solid var(--good);opacity:.55;border-top-left-radius:22px;width:22px;height:22px;display:block}:root[data-ornament=vines] .ornate>.corner:after{content:"";background:var(--good);border-radius:8px 0;width:8px;height:5px;position:absolute;top:-5px;left:6px;transform:rotate(-20deg)}@media (width<=900px){.dialog{width:auto;left:12px;right:12px}.party .pcard{width:180px}.minimap{width:140px;height:140px}}.page-inner.studio{max-width:1320px}.studio .seg>button{color:var(--muted);cursor:pointer;font:inherit;background:0 0;border:0;border-radius:7px;padding:4px 10px;font-size:12px}.studio .seg>button.on{color:var(--gold-2);background:#d9b56a2e}.studio .seg>button:hover:not(.on){color:var(--text,#eee)}.studio-split{grid-template-columns:260px 1fr;min-height:560px;display:grid}.studio-list{border-right:1px solid var(--line);max-height:78vh;padding:10px;overflow-y:auto}.studio-detail{min-width:0;padding:16px}.studio-item{cursor:pointer;border:1px solid #0000;border-radius:8px;align-items:center;gap:8px;padding:7px 9px;display:flex}.studio-item:hover{background:#ffffff0a}.studio-item.on{background:#d9b56a1a;border-color:#d9b56a4d}.studio-item .si-title{font-size:13px;font-weight:600}.studio-cols{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:18px;display:grid}.studio-ai{background:#d9b56a0a;border:1px dashed #d9b56a59;border-radius:10px;padding:10px 12px}.studio-plan{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px 10px;display:grid}.studio-plan .field{margin:0}.zone-map{border:1px solid var(--line);background:#0b0a10;border-radius:10px;max-height:62vh;overflow:auto}.zone-map canvas{image-rendering:auto;cursor:crosshair;display:block}.swatch{vertical-align:-1px;border:1px solid #00000080;border-radius:2px;width:10px;height:10px;margin-right:4px;display:inline-block}.swatch.round{border-radius:50%}.element-row{border-bottom:1px solid #ffffff0a;align-items:flex-start;gap:10px;padding:6px 0;display:flex}.art-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px;display:grid}.art-card{border:1px solid var(--line);background:#0000002e;border-radius:10px;min-width:0;padding:10px}.art-thumb{cursor:pointer;border:1px solid var(--line);background:repeating-conic-gradient(#2a2633 0% 25%,#221f2a 0% 50%) 50%/16px 16px;border-radius:8px;flex:none;justify-content:center;align-items:center;width:96px;height:96px;display:flex;overflow:hidden}.art-card:not(.compact) .art-thumb{width:168px;height:168px}.art-thumb img{object-fit:contain;max-width:100%;max-height:100%}.art-thumb.texture img{object-fit:cover;width:100%;height:100%}.art-thumb.mini{cursor:default;border-radius:6px;width:40px;height:40px}.art-card .art-thumb.tiny-thumb{cursor:default;width:44px;height:44px}.clip-preview{border:1px solid var(--line);image-rendering:auto;background:#6f7469;border-radius:8px;width:auto;max-width:100%;height:220px}.art-card:not(.compact)>.row{flex-wrap:wrap}.clamp1,.clamp2{-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.clamp1{-webkit-line-clamp:1}.clamp2{-webkit-line-clamp:2}@media (width<=900px){.studio-split{grid-template-columns:1fr}.studio-list{border-right:0;border-bottom:1px solid var(--line);max-height:220px}.studio-cols{grid-template-columns:1fr}}:root{--radius:8px;--shadow:0 10px 30px #0009;--hair:#ffffff16;--hair-strong:#ffffff2e;--grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .5 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.09'/%3E%3C/svg%3E")}::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:0}.panel,:root[data-material] .panel{border:1px solid var(--hair);border-radius:var(--radius);background-image:var(--grain);box-shadow:inset 0 1px 0 #ffffff09, var(--shadow);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}:root[data-material=neon] .panel{border-color:var(--line);box-shadow:inset 0 1px 0 #ffffff09, var(--shadow)}:root[data-material=neon] .panel-head h3,:root[data-material=neon] .panel-head h2{text-shadow:none}.panel-head{border-bottom:1px solid var(--hair);padding:10px 14px}.panel-head h2,.panel-head h3{text-transform:uppercase;letter-spacing:.16em;color:var(--text);font-size:12.5px;font-weight:600}.ornament{background:var(--hair)}.ornate>.corner,:root[data-ornament] .ornate>.corner{border:0;border-left:1px solid var(--hair-strong);border-top:1px solid var(--hair-strong);width:7px;height:7px;box-shadow:none;opacity:1;background:0 0;border-radius:0;display:block}:root[data-ornament] .ornate>.corner:after{display:none}.ornate>.corner.tl,:root[data-ornament] .ornate>.corner.tl{inset:-1px auto auto -1px}.ornate>.corner.tr,:root[data-ornament] .ornate>.corner.tr{inset:-1px -1px auto auto}.ornate>.corner.bl,:root[data-ornament] .ornate>.corner.bl{inset:auto auto -1px -1px}.ornate>.corner.br,:root[data-ornament] .ornate>.corner.br{inset:auto -1px -1px auto}.btn,:root[data-material] .btn{box-shadow:none;text-shadow:none;border-radius:6px}.btn:hover{box-shadow:none;border-color:var(--hair-strong);background-color:#ffffff0d}.btn.primary{background:var(--btn-primary-b,#3a3226);border-color:var(--btn-primary-edge,#8a7550);color:var(--text);letter-spacing:.03em;text-shadow:none;font-weight:600}.btn.primary:hover{filter:brightness(1.15)}.input,textarea.input,select.input{border-radius:6px}.input:focus{box-shadow:none;border-color:var(--hair-strong)}.badge{text-transform:uppercase;letter-spacing:.07em;border-radius:6px;padding:2px 6px;font-size:10px}.choice{border-radius:6px}.choice.on{box-shadow:none;background:#ffffff0b}.tab.on{border-bottom-width:1px}.tab .dot{box-shadow:none;border-radius:0}.tab.glow{text-shadow:none;color:var(--quest)}.label,.field label{letter-spacing:.12em}.pcard{border-color:var(--hair);background-image:var(--grain);border-radius:6px}.pcard.sel{border-color:var(--line-strong);box-shadow:var(--shadow)}.portrait,.portrait-lg{border-color:var(--hair);background:#0e0d11;border-radius:6px}.bar,.bar>div{border-radius:0}.bar{background:#000000b3;height:5px}.points{box-shadow:none;border-radius:6px;padding:0 4px;font-size:9px;top:-3px;right:-3px}.topright{gap:6px}.map-head{flex-direction:column;align-items:flex-end;gap:1px;display:flex}.zone-name{font-family:var(--sans);text-transform:uppercase;letter-spacing:.16em;color:var(--text);text-shadow:0 1px 3px #000;font-size:11px;font-weight:600}.clock{letter-spacing:.04em;font-size:11px}.minimap{border:1px solid var(--hair-strong);width:176px;height:176px;box-shadow:var(--shadow);border-radius:6px}.slots{border-color:var(--hair);background-image:var(--grain);border-radius:6px;gap:4px;padding:5px}.slot{border-color:var(--hair);background:#121116;border-radius:6px}.slot.on{box-shadow:none;border-color:var(--gold)}.slot .cost{box-shadow:none}.systembar{background:var(--panel);background-image:var(--grain);border:1px solid var(--hair);box-shadow:var(--shadow);border-radius:6px;gap:3px;padding:5px;display:flex;position:absolute;bottom:14px;right:14px}.systembar .btn{background:0 0;border-color:#0000;width:34px;height:34px;padding:0;position:relative}.systembar .btn:hover{border-color:var(--hair-strong)}.systembar .btn .k{color:var(--dim);font-size:8.5px;position:absolute;bottom:0;right:2px}@media (width<=1100px){.systembar{flex-direction:column;top:214px;bottom:auto}}.pcard{width:236px;padding:6px 9px 6px 6px}.pcard .portrait{border:1px solid var(--hair-strong);border-radius:6px;width:48px;height:48px}.pcard.sel .portrait{border-color:var(--gold)}.pcard .name{font-family:var(--sans);letter-spacing:.02em;font-size:12.5px;font-weight:600}.pcard .lvl{font-family:var(--sans);color:var(--muted);font-size:10px;font-weight:600}.bar .lbl{font-size:8.5px;line-height:5px}.slot .key{color:#ffffff73;z-index:2;font-size:9px;top:2px;left:4px}.slot .ap{z-index:2;background:#000000bf;border-radius:3px;place-items:center;min-width:13px;height:13px;font-size:9px;display:grid;bottom:2px;right:3px}.slot.cd{filter:none}.slot.cd:before{content:"";z-index:1;background:conic-gradient(#000000b8 calc(var(--cdf,1) * 360deg), #00000026 0);position:absolute;inset:0}.slot .cdn{z-index:2}.slot.na:not(.cd){filter:grayscale(.7)brightness(.6)}.ap-row{background:var(--panel);border:1px solid var(--hair);border-radius:6px;padding:6px 12px}.pip{border:1px solid var(--hair-strong);width:11px;height:11px;box-shadow:none;background:0 0;border-radius:3px;transform:none}.pip.on{background:var(--gold);border-color:var(--gold);box-shadow:none}.pip.spend{background:var(--danger);border-color:var(--danger);box-shadow:none}.turnbar,.turnbar .tp{border-radius:6px}.turnbar .tp.active{box-shadow:inset 0 -2px 0 var(--gold)}.tooltip{border-color:var(--hair-strong);background:#0c0b0ff7;border-radius:6px;max-width:320px;padding:10px 12px}.tooltip .tname{font-family:var(--sans);letter-spacing:.02em;font-size:13px;font-weight:600}.toast{background:#0e0c12f2;border-left-width:2px;border-radius:6px;padding:8px 16px}.toast.quest{border-left-color:var(--quest)}.toast.good{border-left-color:var(--good)}.toast.bad{border-left-color:var(--danger)}.toast.loot{border-left-color:var(--info)}.dialog,.modal,.studio .seg>button,.studio-item,.studio-ai,.zone-map,.art-card,.art-thumb,.element-row .art-thumb{border-radius:6px}.studio-ai{border-style:solid;border-color:var(--hair);background:#ffffff05}.seg,.chip,.card,.progress,.progress>div,.item,.quest,.skill-card,.skill-card canvas,.seg,.seg .btn,.swatch-btn,.offer-row,.recipe,.loot-row,.worldmap,.dialog .dlg-portrait,.replies li,.msg,.cursor-note,.icon-btn,.ap-row,.turnbar,.gen-log,.phases li,.hero-stage,.branch-chip,.codex-entry,.lobby-card,.choice-grid .choice{border-radius:6px}.card{border-color:var(--hair)}.progress{height:5px}.progress>div{box-shadow:none}.daydream-art{background:linear-gradient(180deg, color-mix(in srgb, var(--dd-tint) 22%, #0b0a0e), #08070a);position:relative;overflow:hidden}.daydream-art .dd-scene{filter:saturate(.85)brightness(.62);background-position:50%;background-size:cover;position:absolute;inset:0}.daydream-art .dd-shade{background:radial-gradient(ellipse at 50% 85%, transparent 20%, #08070ad9 75%), linear-gradient(180deg, #08070ab3, transparent 60%), var(--grain);position:absolute;inset:0}.daydream-art .dd-figures{justify-content:center;align-items:flex-end;gap:2%;display:flex;position:absolute;bottom:4%;left:0;right:0}.daydream-art .dd-figures img{object-fit:contain;filter:drop-shadow(0 6px 10px #000000b3)}.hud{--float-text:0 1px 2px #000000f2, 0 0 10px #000000bf}.badge{border-radius:4px}.pcard,.pcard.sel{box-shadow:none;background:0 0;border:0;gap:9px;padding:4px 6px 4px 4px}.pcard.active{box-shadow:none}.pcard.active .portrait,.pcard.sel .portrait{border-color:var(--gold)}.pcard .portrait{background:#0a090dd9;border-radius:50%;box-shadow:0 2px 10px #000000b3}.pcard .name,.pcard .lvl,.bar-num{text-shadow:var(--float-text)}.pcard .lvl{color:var(--text)}.bar-wrap{margin-top:3px;position:relative}.bar-num{color:#ffffffdb;font-variant-numeric:tabular-nums;text-align:right;font-size:10px;font-weight:600;line-height:12px}.bar{background:#0000009e;border-radius:3px;height:5px;margin-top:1px;box-shadow:0 1px 4px #0009}.bar>div{border-radius:3px}.bar.thin{height:3px}.slots{box-shadow:none;background:0 0;border:0;gap:5px;padding:0}.slot{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0c0b0fb8;border-color:#ffffff1a;border-radius:8px;box-shadow:0 2px 10px #0000008c}.slot .key{text-shadow:var(--float-text)}.systembar{box-shadow:none;background:0 0;border:0;gap:4px;padding:0}.systembar .btn{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0c0b0f9e;border:1px solid #ffffff14;border-radius:8px;box-shadow:0 2px 10px #00000080}.systembar .btn:hover{border-color:var(--hair-strong);background:#1c1a22d9}.systembar .btn .k,.zone-name,.clock{text-shadow:var(--float-text)}.minimap{border-color:#ffffff24;border-radius:10px}.ap-row{background:#0c0b0f9e;border:0;border-radius:8px;box-shadow:0 2px 10px #00000080}.toast{border-radius:8px}.minimap{box-shadow:none;filter:drop-shadow(0 0 1px #000000f2)drop-shadow(0 1px 3px #000000b3);background:0 0;border:0;border-radius:50%}.pcard .pts{font-family:var(--sans);color:var(--quest);text-shadow:var(--float-text);flex:none;margin-left:4px;font-size:10px;font-weight:700}.wmap{box-shadow:inset 0 0 0 1px var(--hair);background:#08090b;border-radius:6px;position:relative;overflow:hidden}.wmap canvas,.wmap-marks{position:absolute;inset:0}.wmark{cursor:default}.wmark.travel{cursor:pointer}.wmark .glyph path{fill:#100d0aeb;stroke:#ecdebe8c;stroke-width:1.2px;stroke-linejoin:round}.wmark.visited .glyph path{fill:#1c1813;stroke:#e9d7ae}.wmark.visited .g-town path{stroke:#f0cf86}.wmark.visited .g-dungeon path{stroke:#e58e72}.wmark.visited .g-wilderness path{stroke:#a9cf8e}.wmark:hover .glyph path{stroke:#fff}.wmark .wname{font-family:var(--font-display);letter-spacing:.06em;fill:#efe4cb;paint-order:stroke;stroke:#060504e6;stroke-width:3.5px;stroke-linejoin:round;font-size:12.5px}.wmark:not(.visited) .wname{fill:#b4aa96;font-style:italic}.wmark .wsub{font-family:var(--sans);letter-spacing:.08em;text-transform:uppercase;fill:#a49a86;paint-order:stroke;stroke:#060504d9;stroke-width:3px;font-size:9.5px}.wmark .here-ring{fill:none;stroke:#fff;stroke-width:1.5px;transform-origin:50%;animation:1.8s ease-out infinite here-pulse}.wmark .wp-ring{fill:none;stroke:#8fd0ec;stroke-width:1.2px;stroke-dasharray:3 3}.wmark.travel .wp-ring{stroke:#bfeaff;stroke-width:1.6px}@keyframes here-pulse{0%{opacity:.9;r:11}to{opacity:0;r:22}}.wmap-card{pointer-events:none;border:1px solid var(--hair-strong);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0a090be6;border-radius:6px;width:240px;padding:9px 11px;position:absolute}.wmap-card .wc-name{font-family:var(--font-display);color:var(--gold-2);font-size:14px}.wmap-card .wc-sub{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:2px 0 6px;font-size:10px}.wmap-card .wc-desc{color:var(--text);font-size:12px;line-height:1.45}.wmap-card .wc-act{color:#9fd8f0;margin-top:6px;font-size:11px}.item.sel{outline:2px solid var(--gold);outline-offset:-2px}.bench-note{color:var(--muted);border:1px solid var(--hair);background:#ffffff08;border-radius:6px;margin:8px 14px 0;padding:7px 10px;font-size:12px}.bench-note.at{color:var(--good)}.tracker{text-align:right;cursor:pointer;pointer-events:auto;background:linear-gradient(90deg,#08070900,#0807098c 30%);border-radius:6px;width:230px;margin-top:10px;margin-left:auto;padding:8px 10px}.tracker:hover{background:linear-gradient(90deg,#08070900,#080709bf 30%)}.tracker .tr-head{justify-content:flex-end;align-items:center;gap:6px;display:flex}.tracker .tr-kind{letter-spacing:.14em;text-transform:uppercase;color:var(--gold);text-shadow:var(--float-text);font-size:9.5px}.tracker .tr-x{color:var(--muted);cursor:pointer;opacity:0;background:0 0;border:0;padding:0 2px;font-size:10px}.tracker:hover .tr-x{opacity:1}.tracker .tr-title{font-family:var(--font-display);color:var(--text);text-shadow:var(--float-text);margin:1px 0 4px;font-size:14px}.tracker .tr-step{color:#e8e2d6;text-shadow:var(--float-text);font-size:12px;line-height:1.4}.tracker .tr-dot{background:var(--quest);vertical-align:1px;width:6px;height:6px;box-shadow:0 0 6px var(--quest);border-radius:50%;margin-right:6px;display:inline-block}.tracker .tr-where{color:var(--muted);text-shadow:var(--float-text);margin-top:3px;font-size:11px}.pin-dot{background:var(--quest);vertical-align:2px;border-radius:50%;width:6px;height:6px;margin-right:6px;display:inline-block}.glyph-btn{min-width:18px;height:18px;font:700 10px/1 var(--sans);color:#0b0b0d;vertical-align:middle;background:#d8d8d8;border-radius:9px;justify-content:center;align-items:center;margin:0 2px;padding:0 4px;display:inline-flex;box-shadow:0 1px 2px #0009}.glyph-btn.g-A{background:#6fbf4a}.glyph-btn.g-B{background:#e05a4a}.glyph-btn.g-X{background:#4a8fe0}.glyph-btn.g-Y{background:#e0c04a}.glyph-btn.g-LB,.glyph-btn.g-RB,.glyph-btn.g-LT,.glyph-btn.g-RT{background:#c9c3b6;border-radius:4px;min-width:22px}.pad-hint{display:none}.game.pad .pad-hint{display:inline}.game.pad .key-hint{display:none}.game.pad .view{cursor:none}.pad-focus{outline-offset:1px;border-radius:6px;outline:2px solid var(--gold)!important;box-shadow:0 0 0 4px color-mix(in srgb, var(--gold) 25%, transparent)!important}.item.pad-focus{outline-offset:-2px}.pad-prompt{pointer-events:none;white-space:nowrap;border:1px solid var(--hair-strong);color:var(--text);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0a090bc7;border-radius:14px;padding:4px 9px 4px 5px;font-size:12px;position:absolute;transform:translate(-50%,calc(-100% - 78px))}.pad-prompt .pp-verb{margin-right:6px;font-weight:600}.pad-prompt .pp-name{color:var(--muted)}.pad-legend{color:var(--muted);text-shadow:var(--float-text);pointer-events:none;white-space:nowrap;gap:16px;font-size:11px;display:flex;position:absolute;bottom:74px;left:50%;transform:translate(-50%)}.pad-wheel{pointer-events:none;z-index:40;background:radial-gradient(circle,#00000073,#00000026 60%,#0000);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.pw-ring{border-radius:50%;position:relative}.pw-item{border:1px solid var(--hair-strong);background:#0c0b0ed9;border-radius:50%;justify-content:center;align-items:center;width:58px;height:58px;margin:-29px 0 0 -29px;transition:transform 80ms,border-color 80ms;display:flex;position:absolute}.pw-item canvas{border-radius:50%}.pw-item.on{border-color:var(--gold);box-shadow:0 0 0 3px color-mix(in srgb, var(--gold) 30%, transparent);transform:scale(1.18)}.pw-item.off{opacity:.4}.pw-center{text-align:center;width:180px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.pw-label{font-family:var(--font-display);color:var(--gold-2);text-shadow:var(--float-text);font-size:17px}.pw-sub{color:var(--muted);margin-top:2px;font-size:11px}.pw-hint{color:var(--muted);margin-top:10px;font-size:10px}@media (width<=1100px){.tracker{width:210px;margin-right:46px}}.pad-prompt{transform:translate(-50%,16px)}.pad-legend{top:76px;bottom:auto}.pad-wheel{background:radial-gradient(circle,#040406d1 0,#04040699 230px,#00000040 420px)}.pw-center{background:#08070ab3;border-radius:10px;padding:10px 12px}.pw-card{border:1px solid var(--hair-strong);pointer-events:none;background:#0a090bf0;border-radius:8px;width:280px;padding:10px 12px;position:absolute;top:50%;left:calc(50% + 230px);transform:translateY(-50%)}@media (width<=1100px){.pw-card{inset:auto 16px 90px auto;transform:none}}.budget-bar{background:#ffffff14;border-radius:3px;height:6px;overflow:hidden}.budget-bar>div{border-radius:3px;height:100%}.voice-toggle{font-size:11px}.voice-toggle.on{color:var(--gold-2);border-color:var(--hair-strong)}.say .mic.on{color:var(--danger);border-color:var(--danger)}.dev-panel{border:1px solid var(--hair-strong);z-index:50;pointer-events:auto;background:#0a0a10eb;border-radius:6px;flex-direction:column;gap:6px;width:280px;max-height:70vh;padding:10px;font-size:12px;display:flex;position:absolute;top:60px;left:12px}.dev-zones{flex-direction:column;gap:1px;display:flex;overflow-y:auto}.dev-zone{text-align:left;color:inherit;cursor:pointer;font:inherit;background:0 0;border:0;border-radius:3px;padding:3px 6px}.dev-zone:hover{background:#ffffff14}.dev-zone.on{color:var(--gold-2)}.dev-zone.sub{padding-left:18px}.game.hud-hidden .hud>:not(.dev-panel){display:none}.page-inner.gpu-page{max-width:1320px}.gpu-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:16px;display:grid}.gpu-panel.wide{grid-column:1/-1}.gpu-panel{min-width:0}.gpu-panel .panel-body{overflow-x:auto}.gpu-group .row,.gpu-running .row{min-width:0}.gpu-panel .table td .budget-bar{margin-top:5px}.gpu-group+.gpu-group{border-top:1px solid var(--hair,#ffffff0f);margin-top:12px;padding-top:12px}.gpu-running,.gpu-build{border:1px solid var(--hair,#ffffff14);background:#ffffff05;border-radius:6px;margin-top:6px;padding:8px 10px}.gpu-build .badge{margin:2px 3px 2px 0}.gpu-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.gpu-stat-value{color:var(--gold-2);font-variant-numeric:tabular-nums;font-size:22px;font-weight:600}.gpu-ellipsis{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:420px;overflow:hidden}@media (width<=900px){.gpu-grid{grid-template-columns:1fr}.gpu-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.input:focus-visible{outline:none}.choice-grid.cols{grid-template-columns:repeat(var(--cols), 1fr)}@media (width<=640px){.choice-grid.cols{grid-template-columns:repeat(2,1fr)}.topbar{flex-wrap:wrap;gap:6px;padding:10px 16px}.brand{font-size:16px}.page-inner{padding:20px 16px 60px}.actionbar{max-width:calc(100vw - 16px);bottom:8px}.slots{gap:3px}.slot{width:calc(10vw - 4.3px);max-width:50px;height:calc(10vw - 4.3px);max-height:50px}.slot canvas{width:80%;height:80%}.party{gap:4px;top:8px;left:8px}.party .pcard{gap:6px;width:150px;padding:4px 6px 4px 4px}.pcard .portrait{width:36px;height:36px}.minimap{width:110px;height:110px}.tracker{width:150px}.tracker .tr-title{font-size:12.5px}}
