:root{--bg:#0b1120;--panel:#111827;--border:#1f2937;--text:#e5e7eb;--muted:#9ca3af;--accent:#6366f1;--danger:#f87171;--warning:#fbbf24;--success:#34d399;--dsa:#22d3ee;--lld:#a78bfa;--hld:#fb923c;--diagram:#60a5fa;--cards:#f472b6;--bg-deep:#020617;--surface:#0f172a;--hover:#1e293b;--border-strong:#334155;--border-hover:#475569;--subtle:#64748b;--text-soft:#cbd5e1;--text-strong:#f1f5f9;--glow:#1e1b4b;--overlay:#020617b3;--hud-bg:#111827f0;--tint:#ffffff08;--grid:#1f2937;--table-bg:#0a1022;--card-frame:#2b3654;--glow-accent:#6366f173;--glow-select:#facc1599;--glow-success:#34d39966;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--text);background:var(--bg);font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif}:root[data-theme=light]{--bg:#f8fafc;--panel:#fff;--border:#e2e8f0;--text:#0f172a;--muted:#64748b;--accent:#4f46e5;--danger:#dc2626;--warning:#b45309;--success:#059669;--dsa:#0891b2;--lld:#7c3aed;--hld:#ea580c;--diagram:#2563eb;--cards:#db2777;--bg-deep:#f1f5f9;--surface:#f8fafc;--hover:#e2e8f0;--border-strong:#cbd5e1;--border-hover:#94a3b8;--subtle:#94a3b8;--text-soft:#334155;--text-strong:#020617;--glow:#e0e7ff;--overlay:#0f172a66;--hud-bg:#fffffff0;--tint:#00000008;--grid:#cbd5e1;--table-bg:#eef2f9;--card-frame:#c7d2e5;--glow-accent:#4f46e54d;--glow-select:#ca8a048c;--glow-success:#0596694d;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-corner{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-strong) padding-box;border:2px solid #0000;border-radius:8px}::-webkit-scrollbar-thumb:hover{background:var(--border-hover) padding-box}::-webkit-scrollbar-thumb:active{background:var(--accent) padding-box}@supports not selector(::-webkit-scrollbar){*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}}body{margin:0}button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:.55rem 1rem;font-weight:600}button.secondary{border:1px solid var(--border);color:var(--text);background:0 0}button:disabled{opacity:.5;cursor:not-allowed}.loading-button{justify-content:center;align-items:center;gap:.5rem;display:inline-flex}.loading-button[aria-busy=true]{opacity:1;cursor:progress}.spinner{border:2px solid;border-right-color:#0000;border-radius:50%;width:1em;height:1em;animation:.75s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{animation:none}}.muted{color:var(--muted)}.error{color:var(--danger)}.warning{color:var(--warning)}.game-layout{grid-template:"header header header""stencil workspace sidebar"1fr/220px 1fr 340px;height:100vh;display:grid}.scoreboard{z-index:20;background:radial-gradient(ellipse at 0% 0%, color-mix(in srgb, var(--accent) 14%, transparent), transparent 40%), radial-gradient(ellipse at 100% 0%, color-mix(in srgb, var(--cards) 12%, transparent), transparent 40%), var(--panel);border-bottom:1px solid var(--border);box-shadow:0 8px 24px -18px var(--overlay);grid-area:header;justify-content:space-between;align-items:center;gap:1rem;padding:.6rem 1.25rem;display:flex;position:relative}.scoreboard:after{content:"";pointer-events:none;background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--accent) 45%, var(--border)) 50%, transparent);height:1px;position:absolute;bottom:-1px;left:0;right:0}.scoreboard .stats{align-items:center;gap:.6rem;display:flex}.stencil{background:var(--panel);border-right:1px solid var(--border);flex-direction:column;grid-area:stencil;min-height:0;display:flex;position:relative;overflow:hidden}.palette{flex-direction:column;height:100%;min-height:0;display:flex}.palette-header{border-bottom:1px solid var(--border);flex-direction:column;gap:.5rem;padding:.75rem .7rem .6rem;display:flex}.palette-title{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-size:.7rem;font-weight:700}.palette-search{background:var(--bg-deep);height:30px;color:var(--subtle);border:1px solid var(--border);border-radius:8px;align-items:center;gap:.4rem;padding:0 .6rem;transition:border-color .15s;display:flex}.palette-search:focus-within{border-color:var(--accent)}.palette-search input{min-width:0;color:var(--text);background:0 0;border:none;outline:none;flex:1;font:400 .8rem Inter,system-ui,sans-serif}.palette-search input::placeholder{color:var(--subtle)}.palette-groups{flex:1;min-height:0;padding:.4rem .55rem 1rem;overflow-y:auto}.palette-empty{color:var(--subtle);margin:1rem .4rem;font-size:.8rem}.palette-group+.palette-group{margin-top:.35rem}.palette-group-header{width:100%;color:var(--subtle);letter-spacing:.08em;text-transform:uppercase;text-align:left;background:0 0;border-radius:6px;align-items:center;gap:.4rem;padding:.45rem .3rem;font-size:.68rem;font-weight:700;display:flex}.palette-group-header:hover{color:var(--text);background:var(--tint)}.palette-group-header>span:first-child{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.palette-group-count{text-align:center;background:var(--hover);min-width:1.3rem;color:var(--muted);border-radius:999px;padding:0 .3rem;font-size:.65rem}.palette-group-chevron{transition:transform .15s;transform:rotate(-90deg)}.palette-group-header.is-open .palette-group-chevron{transform:none}.palette-group-items{flex-direction:column;gap:.4rem;padding:.15rem 0 .3rem;display:flex}.palette-card{--cat:var(--accent);cursor:grab;-webkit-user-select:none;user-select:none;background:linear-gradient(135deg, color-mix(in srgb, var(--cat) 16%, var(--panel)) 0, var(--panel) 60%);border:1px solid color-mix(in srgb, var(--cat) 40%, var(--card-frame));box-shadow:inset 3px 0 0 var(--cat), 0 1px 2px var(--tint);border-radius:12px;align-items:center;gap:.55rem;padding:.45rem .55rem;transition:transform .15s,border-color .15s,box-shadow .15s;display:flex;position:relative}.palette-card:active{cursor:grabbing}.palette-card:not(.is-locked):hover,.palette-card:not(.is-locked):focus-visible{border-color:var(--cat);box-shadow:inset 3px 0 0 var(--cat), 0 6px 16px color-mix(in srgb, var(--overlay) 45%, transparent), 0 0 0 2px color-mix(in srgb, var(--cat) 35%, transparent);outline:none;transform:translateY(-2px)scale(1.02)}.palette-card-icon{background:color-mix(in srgb, var(--cat) 20%, transparent);border:1px solid color-mix(in srgb, var(--cat) 45%, transparent);border-radius:10px;flex:none;place-items:center;width:2.1rem;height:2.1rem;font-size:1.25rem;line-height:1;display:grid}.palette-card-main{flex-direction:column;flex:1;gap:.15rem;min-width:0;display:flex}.palette-card-name{text-overflow:ellipsis;white-space:nowrap;color:var(--text-strong);font-size:.82rem;font-weight:600;overflow:hidden}.palette-card-stats{flex-wrap:wrap;gap:.25rem;display:flex}.palette-stat{font-variant-numeric:tabular-nums;color:var(--text-soft);background:color-mix(in srgb, var(--cat) 12%, var(--bg-deep));border:1px solid var(--border);border-radius:999px;padding:0 .3rem;font-size:.64rem}.palette-card-lock{color:var(--subtle);align-items:center;gap:.2rem;font-size:.68rem;display:inline-flex}.palette-card-star{color:var(--warning);fill:currentColor;flex:none;align-self:flex-start}.palette-card.is-suggested{border-color:color-mix(in srgb, var(--warning) 55%, var(--card-frame))}.palette-card.is-locked{cursor:not-allowed;opacity:.55;filter:grayscale(.85);background:var(--surface);border-style:dashed;border-color:var(--border-strong);box-shadow:none}.palette-group.is-locked .palette-group-header{color:var(--subtle)}.node-tooltip{--cat:var(--accent);z-index:7;pointer-events:none;background:linear-gradient(180deg, color-mix(in srgb, var(--cat) 16%, var(--panel)) 0, var(--panel) 55%);border:1px solid color-mix(in srgb, var(--cat) 50%, var(--card-frame));width:210px;box-shadow:0 10px 24px color-mix(in srgb, var(--overlay) 60%, transparent);border-radius:14px;padding:.6rem .7rem;font-size:.78rem;animation:.14s ease-out node-tooltip-in;position:absolute}.node-tooltip-header{align-items:center;gap:.5rem;margin-bottom:.45rem;display:flex}.node-tooltip-header>span:last-child{flex-direction:column;min-width:0;display:flex}.node-tooltip-header strong{text-overflow:ellipsis;white-space:nowrap;color:var(--text-strong);overflow:hidden}.node-tooltip-header small{color:color-mix(in srgb, var(--cat) 60%, var(--muted));font-size:.68rem}.node-tooltip-icon{background:color-mix(in srgb, var(--cat) 22%, transparent);border-radius:10px;flex:none;place-items:center;width:2rem;height:2rem;font-size:1.15rem;display:grid}.node-tooltip-stats{border-top:1px solid var(--border);gap:.25rem;margin:0;padding:.4rem 0 0;list-style:none;display:grid}.node-tooltip-stats li{color:var(--text-soft);grid-template-columns:1.2rem 1fr auto;align-items:center;gap:.3rem;display:grid}.node-tooltip-stats strong{font-variant-numeric:tabular-nums;color:var(--text-strong)}.node-tooltip-empty{color:var(--subtle);margin:0}@keyframes node-tooltip-in{0%{opacity:0;transform:translateY(4px)}}.canvas .x6-node{transition:filter .15s}.canvas .x6-node:hover{filter:drop-shadow(0 0 6px var(--glow-accent))}.canvas .x6-node.is-selected{filter:drop-shadow(0 0 3px var(--glow-select)) drop-shadow(0 0 10px var(--glow-select))}.canvas .x6-node.is-selected .sdg-node-body{stroke-width:3px}.canvas .x6-node.sdg-enter{animation:.45s ease-out sdg-node-enter}@keyframes sdg-node-enter{0%{opacity:0;filter:drop-shadow(0 0 0 var(--glow-accent))}50%{opacity:1;filter:drop-shadow(0 0 14px var(--glow-accent))}to{filter:drop-shadow(0 0 0 var(--glow-accent))}}.canvas .x6-widget-selection-box{border-radius:14px;border:1.5px dashed var(--glow-select)!important;box-shadow:none!important}.canvas .x6-widget-selection-inner{border-color:var(--glow-select)!important;box-shadow:none!important}@media (prefers-reduced-motion:reduce){.palette-card,.palette-group-chevron,.canvas .x6-node{transition:none}.palette-card:not(.is-locked):hover,.palette-card:not(.is-locked):focus-visible{transform:none}.node-tooltip,.canvas .x6-node.sdg-enter{animation:none}}.workspace{grid-area:workspace;grid-template-rows:auto 1fr minmax(180px,35%);min-height:0;display:grid}.workspace.view-diagram,.workspace.view-code{grid-template-rows:auto 1fr}.workspace.view-diagram .code-panel,.workspace.view-code .canvas-wrapper{display:none}.workspace.view-code .code-panel{border-top:none}.view-toggle{border:1px solid var(--border);background:var(--bg-deep);border-radius:8px;gap:2px;padding:2px;display:flex}.view-toggle button{color:var(--muted);background:0 0;border-radius:6px;align-items:center;padding:.3rem .5rem;display:flex}.view-toggle button:hover{color:var(--text)}.view-toggle button.active{background:var(--accent);color:#fff}.canvas-toolbar,.code-tabs{background:var(--panel);border-bottom:1px solid var(--border);align-items:center;gap:.5rem;padding:.5rem;display:flex}.canvas-toolbar select,.inspector select{background:var(--bg-deep);color:var(--text);border:1px solid var(--border);border-radius:6px;margin-left:.4rem;padding:.4rem}.canvas-toolbar{flex-wrap:wrap}.spacer{flex:1}.edge-label-picker{color:var(--muted);align-items:center;display:flex}.icon-button{align-items:center;padding:.45rem .55rem;display:flex}.icon-button[aria-busy=true]{opacity:.6}.panel-tab{z-index:6;background:var(--panel);border:1px solid var(--border);width:20px;height:48px;color:var(--muted);place-items:center;padding:0;font-weight:400;display:grid;position:absolute;top:50%;transform:translateY(-50%)}.panel-tab.left{border-left:none;border-radius:0 8px 8px 0;left:0}.panel-tab.right{border-right:none;border-radius:8px 0 0 8px;right:0}.panel-tab:hover,.panel-tab:focus-visible{color:var(--text);background:var(--hover);outline:none}.panel-tab.open{color:var(--accent)}.panel-tab .hint,.canvas-controls .hint{border:1px solid var(--border);background:var(--bg-deep);color:var(--text);white-space:nowrap;pointer-events:none;opacity:0;border-radius:6px;align-items:center;gap:.5rem;padding:.35rem .55rem;font-size:.75rem;transition:opacity .12s .25s;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.panel-tab.left .hint{left:calc(100% + 8px)}.panel-tab.right .hint{right:calc(100% + 8px)}.panel-tab:hover .hint,.panel-tab:focus-visible .hint{opacity:1}.hint .keys{gap:2px;display:flex}kbd{border:1px solid var(--border-strong);background:var(--panel);color:var(--muted);border-bottom-width:2px;border-radius:4px;padding:.05rem .35rem;font:.7rem ui-monospace,Cascadia Code,monospace}.inspector{margin-right:1.25rem}.game-layout.hide-left{grid-template-columns:0 1fr 340px}.game-layout.hide-right{grid-template-columns:220px 1fr 0}.game-layout.hide-left.hide-right{grid-template-columns:0 1fr 0}.game-layout.hide-left .stencil,.game-layout.hide-right .sidebar,.game-layout.hide-header .scoreboard,.quiz-layout.hide-header .scoreboard{display:none}.view-toggle-sep{background:var(--border);align-self:stretch;width:1px;margin:.2rem .15rem}.canvas-wrapper{min-height:0;position:relative}.canvas{position:absolute;inset:0}.hand-mode .canvas,.hand-mode .canvas *{cursor:grab!important}.hand-mode .canvas.panning,.hand-mode .canvas.panning *{cursor:grabbing!important}.canvas-controls{z-index:5;border:1px solid var(--border);background:var(--panel);border-radius:10px;align-items:center;gap:2px;padding:4px;display:flex;position:absolute;bottom:.75rem;left:50%;transform:translate(-50%);box-shadow:0 8px 20px #00000059}.canvas-controls button{min-width:32px;height:32px;color:var(--text);background:0 0;border-radius:6px;padding:0 .5rem;font-weight:500;position:relative}.canvas-controls button:hover:not(:disabled){background:var(--hover)}.canvas-controls button.active{background:var(--accent);color:#fff}.canvas-controls .zoom-level{font-variant-numeric:tabular-nums;min-width:56px;font-size:.8rem}.canvas-controls .divider{background:var(--border);width:1px;height:20px;margin:0 4px}.canvas-controls .hint{font-weight:400;top:auto;bottom:calc(100% + 10px);left:50%;transform:translate(-50%)}.canvas-controls button:hover .hint,.canvas-controls button:focus-visible .hint{opacity:1}.inspector{z-index:5;flex-direction:column;gap:.4rem;width:260px;display:flex;position:absolute;top:.75rem;right:.75rem}.code-panel{border-top:1px solid var(--border);flex-direction:column;min-height:0;display:flex}.code-tabs button{padding:.3rem .7rem}.code-panel .error{margin:.3rem .6rem}.code-editor{resize:none;background:var(--bg-deep);min-height:0;color:var(--text);border:none;flex:1;padding:.6rem;font:.8rem/1.4 ui-monospace,Cascadia Code,monospace}.mermaid-preview{background:var(--bg-deep);flex:1;padding:.6rem;overflow:auto}.sidebar{background:var(--panel);border-left:1px solid var(--border);flex-direction:column;grid-area:sidebar;gap:1rem;padding:1rem;display:flex;overflow-y:auto}.panel{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1rem}.panel h2,.panel h3{margin:.5rem 0}.panel ul{padding-left:1.1rem}.panel pre{white-space:pre-wrap;background:var(--bg-deep);border-radius:8px;padding:.6rem;font-size:.8rem}.feedback.correto{border-color:var(--success)}.feedback.parcialmente_correto{border-color:var(--warning)}.feedback.errado{border-color:var(--danger)}.level-chip{opacity:.45;border:1px solid;border-radius:999px;padding:.2rem .6rem;font-size:.75rem;font-weight:700;display:inline-block}.level-chip.active,.level-chip.done{opacity:1}.level-chip.done:after{content:" ✓"}.level-chip.dsa{color:var(--dsa)}.level-chip.lld{color:var(--lld)}.level-chip.hld{color:var(--hld)}.level-chip.diagram{color:var(--diagram)}.level-chip.cards{color:var(--cards)}button.level-chip{cursor:pointer;background:0 0}button.level-chip:hover:not(:disabled){opacity:1}.node-kind{color:var(--muted);text-transform:uppercase;font-size:.7rem}.node-field{border:1px solid var(--border);background:var(--bg-deep);width:100%;color:var(--text);font:inherit;resize:vertical;border-radius:6px;padding:.3rem .4rem}.node-label{font-weight:700}.splash{cursor:pointer;background:radial-gradient(circle at center, var(--glow), var(--bg));flex-direction:column;justify-content:center;align-items:center;gap:1.5rem;min-height:100vh;display:flex}.splash-levels{gap:1rem;display:flex}.splash .level-chip{opacity:0;font-size:1.4rem;animation:.5s forwards pop}@keyframes pop{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}.modal-backdrop{z-index:1000;background:var(--overlay);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);place-items:center;padding:1rem;animation:.15s ease-out modal-fade;display:grid;position:fixed;inset:0}.modal{--tone:var(--accent);border:1px solid var(--border);border-top:3px solid var(--tone);background:var(--panel);width:min(440px,100%);max-height:calc(100vh - 2rem);box-shadow:0 24px 60px #0000008c, 0 0 0 1px color-mix(in srgb, var(--tone) 15%, transparent);border-radius:14px;outline:none;flex-direction:column;animation:.18s cubic-bezier(.2,.9,.3,1.2) modal-pop;display:flex;overflow:hidden}.modal-success{--tone:var(--success)}.modal-warning{--tone:var(--warning)}.modal-danger{--tone:var(--danger)}.modal-head{align-items:center;gap:.75rem;padding:1rem 1.25rem .25rem;display:flex}.modal-head h3{flex:1;margin:0;font-size:1.05rem}.modal-icon{width:2rem;height:2rem;color:var(--tone);background:color-mix(in srgb, var(--tone) 16%, transparent);border:1px solid color-mix(in srgb, var(--tone) 40%, transparent);border-radius:50%;flex:none;place-items:center;font-weight:800;display:grid}.modal-close{color:var(--muted);background:0 0;margin-left:auto;padding:.1rem .5rem;font-size:1.3rem;line-height:1}.modal-close:hover{color:var(--text);background:var(--border)}.modal-body{color:var(--text);padding:.5rem 1.25rem 1rem;overflow:auto}.modal-body .node-field{width:100%;margin-top:.5rem}.modal-message{color:var(--text-soft);white-space:pre-line;margin:.25rem 0;line-height:1.5}.modal-actions{border-top:1px solid var(--border);background:color-mix(in srgb, var(--bg) 60%, transparent);justify-content:flex-end;gap:.5rem;padding:.75rem 1.25rem;display:flex}button.danger-solid{background:#dc2626}button.danger-solid:hover:not(:disabled){background:#b91c1c}.modal-actions button:focus-visible,.modal-close:focus-visible{outline:2px solid var(--tone);outline-offset:2px}.modal-stat{font-size:1.1rem}@keyframes modal-fade{0%{opacity:0}}@keyframes modal-pop{0%{opacity:0;transform:translateY(8px)scale(.96)}}.level-chip.quiz{color:var(--success)}.level-chip.code{color:var(--dsa)}.topbar-brand{border-right:1px solid var(--border);align-items:center;padding-right:1rem;display:flex}.topbar-brand .brand{display:block}.topbar-areas{background:var(--surface);border:1px solid var(--border);border-radius:14px;gap:.3rem;padding:.3rem;display:flex}.topbar-area{--a:var(--accent);--b:var(--cards);color:var(--text-soft);letter-spacing:.01em;background:0 0;border:0;border-radius:10px;align-items:center;gap:.55rem;padding:.4rem 1rem .4rem .45rem;font-size:.92rem;font-weight:700;transition:background .18s,color .18s,box-shadow .18s;display:inline-flex}.topbar-area.quiz{--a:var(--diagram);--b:var(--dsa)}.topbar-area.code{--a:var(--success);--b:var(--dsa)}.topbar-area-icon{width:28px;height:28px;color:var(--a);background:color-mix(in srgb, var(--a) 14%, transparent);border:1px solid color-mix(in srgb, var(--a) 30%, transparent);border-radius:8px;place-items:center;transition:transform .25s;display:grid}.topbar-area:hover:not(.active){color:var(--text-strong);background:var(--hover)}.topbar-area:hover:not(.active) .topbar-area-icon{transform:rotate(-8deg)scale(1.06)}.topbar-area.active{color:#fff;cursor:default;text-shadow:0 1px 2px #00000040;background:repeating-linear-gradient(135deg, #ffffff12 0 2px, transparent 2px 10px), linear-gradient(135deg, var(--a), var(--b));box-shadow:0 8px 18px -10px color-mix(in srgb, var(--a) 85%, transparent)}.topbar-area.active .topbar-area-icon{color:#fff;background:#fff3;border-color:#ffffff59}.topbar-area:focus-visible{outline:2px solid var(--a);outline-offset:2px}.topbar-tools{background:var(--surface);border:1px solid var(--border);border-radius:12px;gap:.15rem;padding:.2rem;display:flex}.topbar-tools .icon-btn{color:var(--muted);background:0 0;border:0;border-radius:9px;padding:.4rem}.topbar-tools .icon-btn:hover{color:var(--text-strong);background:var(--hover)}.topbar-tools .icon-btn[aria-pressed=true]{color:var(--accent);background:color-mix(in srgb, var(--accent) 14%, transparent)}.guest-chip{color:var(--warning);white-space:nowrap;background:color-mix(in srgb, var(--warning) 12%, transparent);border:1px solid color-mix(in srgb, var(--warning) 40%, transparent);border-radius:999px;align-items:center;gap:.35rem;padding:.3rem .65rem;font-size:.8rem;font-weight:600;display:inline-flex}button.guest-signup{white-space:nowrap;align-items:center;gap:.35rem;display:inline-flex}.topbar-tools .icon-btn.icon-btn-highlight{color:var(--warning);background:color-mix(in srgb, var(--warning) 12%, transparent)}.topbar-tools .icon-btn.icon-btn-highlight:hover,.topbar-tools .icon-btn.icon-btn-highlight[aria-pressed=true]{color:var(--warning);background:color-mix(in srgb, var(--warning) 22%, transparent)}.topbar-sep{background:var(--border);width:1px;height:28px}.scoreboard .admin-menu-trigger{border-radius:10px}.topbar-logout{color:var(--muted);border-radius:10px}.topbar-logout:hover{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 45%, var(--border))}.scoreboard .avatar{background:linear-gradient(var(--surface), var(--surface)) padding-box, linear-gradient(135deg, var(--accent), var(--cards)) border-box;border:2px solid #0000}.scoreboard img.avatar{background:linear-gradient(135deg, var(--accent), var(--cards)) border-box}button.avatar-btn:hover .avatar,button.avatar-btn[aria-pressed=true] .avatar{box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 30%, transparent)}.icon-btn{place-items:center;padding:.35rem;line-height:0;display:inline-grid}.avatar{object-fit:cover;background:var(--border);width:34px;height:34px;color:var(--text);border:2px solid var(--border);border-radius:50%;flex-shrink:0;place-items:center;font-weight:700;display:inline-grid}.avatar-picker{align-items:center;gap:.75rem;display:flex}.avatar-picker .avatar{width:48px;height:48px}button.avatar-btn{background:0 0;border:none;border-radius:50%;padding:0;line-height:0}button.avatar-btn:hover .avatar,button.avatar-btn[aria-pressed=true] .avatar{border-color:var(--accent)}.profile-photo{align-items:center;gap:1.25rem;display:flex}.profile-photo .avatar{width:96px;height:96px;font-size:2.5rem}.notice{color:var(--success,#22c55e)}.icon-btn[aria-pressed=true]{color:var(--accent,#818cf8);border-color:currentColor}.admin-menu{position:relative}.admin-menu-trigger{white-space:nowrap;align-items:center;gap:.35rem;display:inline-flex}.admin-menu-trigger.active,.admin-menu-trigger[aria-expanded=true]{color:var(--accent);border-color:currentColor}.admin-menu-list{z-index:60;background:var(--panel);border:1px solid var(--border-strong);min-width:240px;box-shadow:0 12px 32px var(--overlay);border-radius:12px;margin:0;padding:.35rem;list-style:none;position:absolute;top:calc(100% + 6px);right:0}.admin-menu-list button{width:100%;color:var(--text);text-align:left;white-space:nowrap;background:0 0;border:none;border-radius:8px;align-items:center;gap:.6rem;padding:.5rem .65rem;font-weight:500;display:flex}.admin-menu-list button:hover,.admin-menu-list button:focus-visible{background:var(--hover);outline:none}.admin-menu-list button.active{color:var(--accent)}@media (width<=1440px){.scoreboard{gap:.6rem}.scoreboard .stats{gap:.45rem}.scoreboard .rank-badge .xp-bar{display:none}}@media (width<=1100px){.topbar-brand{padding-right:.6rem}.topbar-area{gap:0;padding-right:.45rem;font-size:0}}@media (prefers-reduced-motion:reduce){.topbar-area,.topbar-area-icon{transition:none}.topbar-area:hover:not(.active) .topbar-area-icon{transform:none}}button.small{padding:.2rem .5rem;font-size:.8rem}button.danger{color:var(--danger)}.quiz-layout{grid-template-rows:auto 1fr;grid-template-areas:"header""main";height:100vh;display:grid}.quiz-page{flex-direction:column;grid-area:main;gap:1rem;width:100%;max-width:900px;margin:0 auto;padding:1.5rem;display:flex;overflow-y:auto}.quiz-head,.quiz-question-head,.quiz-actions,.quiz-tree-row{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.quiz-head h2,.quiz-head h3{margin:0}.quiz-actions{flex-wrap:wrap}.quiz-page kbd{border:1px solid var(--border);color:var(--muted);white-space:nowrap;border-radius:4px;margin-left:.2rem;padding:.1rem .3rem;font-size:.75em}.quiz-category h3{margin:0 0 .5rem}.quiz-list{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.quiz-card{text-align:left;background:var(--surface);border:1px solid var(--border);width:100%;height:100%;color:var(--text);flex-direction:column;gap:.35rem;font-weight:400;display:flex}.quiz-card:hover:not(:disabled){border-color:var(--accent)}.quiz-map{flex-wrap:wrap;gap:.4rem;display:flex}.quiz-map-item{border:1px solid var(--border);width:2.2rem;color:var(--muted);background:0 0;padding:.35rem 0;position:relative}.quiz-map-item.answered{color:var(--text);border-color:var(--border-hover)}.quiz-map-item.current{border-color:var(--accent);color:var(--text);box-shadow:0 0 0 1px var(--accent)}.quiz-map-item.flagged:after{content:"★";color:var(--warning);font-size:.75rem;position:absolute;top:-.55rem;right:-.35rem}.quiz-map-item.right{border-color:var(--success);color:var(--success)}.quiz-map-item.wrong{border-color:var(--danger);color:var(--danger)}.quiz-flag.on{color:var(--warning);border-color:var(--warning)}.quiz-question-tools{flex-wrap:wrap;gap:.5rem;display:flex}.quiz-reveal.on{color:var(--accent);border-color:var(--accent)}.quiz-options{flex-direction:column;gap:.5rem;margin:.75rem 0;list-style:none;display:flex;padding:0!important}.quiz-option{border:1px solid var(--border);cursor:pointer;border-radius:8px;align-items:center;gap:.6rem;padding:.6rem .8rem;display:flex}.quiz-option:hover{border-color:var(--border-hover)}.quiz-option.selected{border-color:var(--accent)}.quiz-option.right{border-color:var(--success);background:#34d39914}.quiz-option.wrong{border-color:var(--danger);background:#f8717114}.quiz-explanation{border-left:3px solid var(--accent);color:var(--muted);margin:0;padding:.6rem .8rem}.quiz-score{text-align:center;font-size:1.1rem}.quiz-code{border:1px solid var(--border);background:var(--bg);border-radius:8px;margin:.75rem 0 0;padding:.8rem 1rem;font:.9rem/1.5 ui-monospace,SFMono-Regular,Consolas,monospace;overflow-x:auto}.quiz-code[data-lang]:before{content:attr(data-lang);color:var(--muted);text-transform:uppercase;margin-bottom:.4rem;font-size:.7rem;display:block}.quiz-blank{border-bottom:2px dashed var(--muted);color:var(--muted);border-radius:4px;padding:0 .3rem}.quiz-blank.selected{color:var(--accent);border-color:var(--accent)}.quiz-blank.right{color:var(--success);border-color:var(--success);background:#34d3991f}.quiz-code-input{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.quiz-admin{grid-area:main;grid-template-columns:280px 1fr;min-height:0;display:grid}.quiz-admin-tree{background:var(--panel);border-right:1px solid var(--border);flex-direction:column;gap:1rem;padding:1rem;display:flex;overflow-y:auto}.quiz-tree-category ul{margin:.35rem 0 0;padding:0;list-style:none}.quiz-tree-item{text-align:left;width:100%;color:var(--text);background:0 0;padding:.35rem .6rem;font-weight:400}.quiz-tree-item.active{background:#6366f133}.quiz-admin-main{flex-direction:column;gap:1rem;padding:1.5rem;display:flex;overflow-y:auto}.quiz-editor{flex-direction:column;gap:.6rem;display:flex}.quiz-meta{grid-template-columns:1fr 200px;gap:.5rem;display:grid}.quiz-option-edit,.phase-attempts{align-items:center;gap:.5rem;display:flex}.phase-types{border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:.5rem;padding:.6rem .8rem;display:flex}.phase-type-list{flex-wrap:wrap;gap:.35rem;margin-top:.25rem;display:flex}.phase-type{border:1px solid var(--border);cursor:pointer;border-radius:999px;align-items:center;gap:.3rem;padding:.2rem .55rem;font-size:.85rem;display:inline-flex}.phase-type input{margin:0}.phase-type.active{border-color:var(--warning);color:var(--warning)}.phase-solution{flex-direction:column;gap:.35rem;display:flex}.user-list{flex-direction:column;gap:.15rem;margin:0;padding:0;list-style:none;display:flex}.user-list .quiz-tree-item{flex-direction:column;gap:.15rem;display:flex}.user-row{justify-content:space-between;align-items:center;gap:.4rem;display:flex}.user-badges{gap:.25rem;display:inline-flex}.badge{border:1px solid;border-radius:999px;padding:0 .4rem;font-size:.7rem}.badge.accent{color:var(--accent)}.badge.danger{color:var(--danger)}.badge.warning{color:var(--warning)}.user-form-grid{grid-template-columns:1fr 1fr;gap:.6rem;display:grid}.user-form-grid label{color:var(--muted);flex-direction:column;gap:.25rem;font-size:.85rem;display:flex}.user-flags{flex-wrap:wrap;gap:1rem;display:flex}.user-flags label{align-items:center;gap:.35rem;display:inline-flex}.user-stats{flex-wrap:wrap;gap:1.5rem;margin-bottom:.75rem;display:flex}.component-category,.component-item{align-items:center;gap:.45rem;display:flex}.category-swatch{border-radius:3px;flex:none;width:10px;height:10px}.component-icon{text-align:center;width:1.3rem;font-family:Segoe UI Emoji,Apple Color Emoji,Noto Color Emoji,sans-serif}.component-editor{grid-template-columns:1fr 220px;align-items:start;gap:1rem;display:grid}.field-stack{color:var(--muted);flex-direction:column;gap:.25rem;font-size:.85rem;display:flex}.color-field{align-items:center;gap:.4rem;display:flex}.color-field input[type=color]{background:0 0;border:none;width:2.4rem;height:2rem;padding:0}.emoji-picker{border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:.5rem;max-height:340px;padding:.6rem .8rem;display:flex;overflow-y:auto}.emoji-picker-head{grid-template-columns:auto 1fr 1fr;align-items:end;gap:.6rem;display:grid}.emoji-picker-head label{flex-direction:column;gap:.25rem;display:flex}.emoji-current{border:1px solid var(--border);border-radius:8px;place-items:center;width:2.6rem;height:2.6rem;font-size:1.5rem;display:grid}.emoji-theme{flex-direction:column;gap:.25rem;display:flex}.emoji-grid{flex-wrap:wrap;gap:.25rem;display:flex}.emoji-choice{width:2.1rem;height:2.1rem;color:var(--text);background:0 0;border:1px solid #0000;border-radius:6px;padding:0;font-size:1.15rem}.emoji-choice:hover{border-color:var(--border)}.emoji-choice.active{border-color:var(--accent);background:#6366f133}.component-preview{flex-direction:column;gap:.4rem;display:flex}.palette-preview{background:var(--panel);border-radius:6px;align-items:center;gap:.5rem;padding:.3rem .5rem;font-size:.8rem;display:flex}.palette-preview-icon{text-align:center;width:1.2rem}.node-preview{border:2px solid var(--border);background:var(--panel);border-radius:8px;flex-direction:column;gap:.15rem;padding:.5rem .6rem;display:flex}.user-tabs{gap:.4rem;margin-bottom:.75rem;display:flex}.user-tabs .active{border-color:var(--accent);color:var(--accent)}.history-list{flex-direction:column;gap:.4rem;margin:0;list-style:none;display:flex;padding:0!important}.history-item details{border:1px solid var(--border);border-radius:8px;padding:.5rem .75rem}.history-item summary{cursor:pointer;align-items:center;gap:.6rem;list-style:none;display:flex}.history-item summary::-webkit-details-marker{display:none}.history-status.right{color:var(--success)}.history-status.partial{color:var(--warning)}.history-status.wrong{color:var(--danger)}.history-table{border-collapse:collapse;width:100%;font-size:.9rem}.history-table th,.history-table td{border-bottom:1px solid var(--border);text-align:left;padding:.4rem .6rem}.history-table th{color:var(--muted);font-weight:600}.rank-boards{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1.25rem;margin-top:1rem;display:grid}.rank-boards.single{grid-template-columns:1fr}.rank-board:hover,.rank-board:focus-within{transform:none}.rank-board .game-tile-banner{min-height:64px;padding:.8rem 1.15rem}.rank-board .game-tile-emblem{border-radius:10px;width:38px;height:38px}.rank-board-empty{margin:0;padding:1.25rem 1.15rem}.rank-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:.9rem}.rank-table th{text-align:left;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--border);padding:.65rem 1.15rem;font-size:.72rem;font-weight:700}.rank-table td{border-bottom:1px solid var(--border);color:var(--text-soft);padding:.6rem 1.15rem}.rank-table tbody tr:last-child td{border-bottom:0}.rank-table tbody tr{transition:background .15s}.rank-table tbody tr:hover td{background:var(--tint)}.rank-table td.user{color:var(--text-strong);font-weight:600}.rank-table td strong{color:var(--text-strong)}.rank-table tr.me td{background:color-mix(in srgb, var(--accent) 12%, transparent)}.rank-table tr.me td:first-child{box-shadow:inset 3px 0 0 var(--accent)}.rank-table th:first-child,.rank-table td:first-child{white-space:nowrap;width:1%;padding-right:.5rem}.rank-table td.user{width:40%}.rank-pos{min-width:28px;height:28px;color:var(--muted);background:var(--surface);border:1px solid var(--border);border-radius:8px;place-items:center;padding:0 .3rem;font-size:.8rem;font-weight:800;display:inline-grid}.rank-pos.top{background:0 0;border-color:#0000;font-size:1.3rem}.rank-podium li{align-items:center}.games-hero-steps.plain li:after{display:none}.games-hero-steps.plain li div{padding-right:0}.rank-podium li div{min-width:0;padding-right:0}.rank-podium li strong{text-overflow:ellipsis;white-space:nowrap;font-size:1rem;overflow:hidden}.games-hero-steps.rank-podium li span.rank-podium-medal{background:color-mix(in srgb, var(--warning) 14%, transparent);border:1px solid color-mix(in srgb, var(--warning) 30%, transparent);border-radius:12px;flex:none;place-items:center;width:40px;height:40px;font-size:1.4rem;line-height:1;display:grid}.rank-podium li.top-1{border-color:color-mix(in srgb, var(--warning) 50%, var(--border));box-shadow:0 10px 24px -14px color-mix(in srgb, var(--warning) 70%, transparent)}.rank-podium li.me strong:after{content:"Você";vertical-align:2px;text-transform:uppercase;color:var(--accent);background:color-mix(in srgb, var(--accent) 14%, transparent);border-radius:999px;margin-left:.4rem;padding:.05rem .4rem;font-size:.65rem;font-weight:700}.quiz-section-icon.energy{--c:var(--warning)}.level-chip.ai{color:var(--accent)}.ai-provider dl{grid-template-columns:max-content 1fr;gap:.35rem 1rem;margin:.75rem 0 0;display:grid}.ai-provider dl>div{display:contents}.ai-provider dt{color:var(--muted)}.ai-provider dd{overflow-wrap:anywhere;margin:0}.macro-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem;display:grid}.macro-card{text-align:left;color:var(--text);flex-direction:column;align-items:flex-start;gap:.4rem;padding:1rem;display:flex}.macro-card svg{color:var(--accent)}.ai-modal{width:min(640px,92vw)}.ai-form{flex-direction:column;gap:.75rem;display:flex}.ai-form label{flex-direction:column;gap:.25rem;font-weight:600;display:flex}.authoring-modal{max-height:90vh;overflow-y:auto}.authoring-choices{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.75rem;display:grid}.authoring-choice{text-align:left;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:10px;flex-direction:column;align-items:flex-start;gap:.35rem;padding:.9rem;display:flex}.authoring-choice:hover{border-color:var(--accent)}.authoring-choice small{color:var(--muted);font-weight:400;line-height:1.4}.authoring-step{flex-direction:column;gap:.5rem;margin-bottom:.75rem;display:flex}.authoring-step h4{margin:0}.authoring-prompt{font-family:ui-monospace,monospace;font-size:.8rem}.authoring-issues ul{margin:.35rem 0 0;padding-left:1.1rem}.draft-badge{border:1px solid var(--warning);color:var(--warning);border-radius:999px;margin-left:.35rem;padding:0 .4rem;font-size:.7rem;display:inline-block}.challenge-studio .quiz-admin-main{min-width:0}.challenge-list .quiz-tree-item{flex-direction:column;gap:.15rem;display:flex}.challenge-list-title{align-items:center;gap:.35rem;display:inline-flex}.challenge-filters{flex-direction:column;gap:.4rem;display:flex}.challenge-top{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.challenge-card{border:1px solid var(--border);background:var(--panel);border-radius:12px;gap:.8rem;max-width:480px;padding:.8rem 1rem;display:flex}.challenge-card h4{margin:0 0 .3rem}.challenge-card p{margin:.4rem 0 0;font-size:.85rem}.challenge-card-icon{width:48px;height:48px;color:var(--accent);background:#6366f126;border-radius:10px;flex:none;place-items:center;display:grid}.challenge-card-meta{flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.8rem;display:flex}.challenge-card-meta .level-chip{padding:.05rem .5rem;font-size:.75rem}.challenge-status{flex-direction:column;align-items:flex-end;gap:.3rem;font-size:.85rem;display:flex}.challenge-status span{align-items:center;gap:.3rem;display:inline-flex}.challenge-actions{flex-wrap:wrap}.challenge-actions button{align-items:center;gap:.35rem;display:inline-flex}.challenge-steps{flex-wrap:wrap;margin-bottom:0}.challenge-steps button{align-items:center;gap:.35rem;display:inline-flex}.challenge-json{width:100%;min-height:50vh}.challenge-issues{flex-direction:column;gap:.25rem;margin:0;padding-left:1.1rem;font-size:.85rem;display:flex}.challenge-issues li{color:var(--danger)}.link-button{color:var(--accent);cursor:pointer;font:inherit;background:0 0;border:0;padding:0}.challenge-playtest{flex-direction:column;gap:.5rem;display:flex}.challenge-playtest h4{margin:0}.challenge-result ul{margin:.3rem 0;padding-left:1.1rem;font-size:.85rem}.challenge-link{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.icon-picker{flex-wrap:wrap;gap:.35rem;display:flex}.icon-choice{place-items:center;width:38px;height:38px;padding:0;display:grid}.icon-choice.active{color:var(--accent);border-color:var(--accent);background:#6366f126}.component-widget{border-left:3px solid var(--component-color,transparent);padding-left:.4rem;display:block}.diagram-widget{flex-direction:column;gap:.4rem;display:flex}.diagram-widget .mermaid-preview{max-height:360px;overflow:auto}.rjsf fieldset{border:0;min-width:0;margin:0;padding:0}.rjsf fieldset fieldset{border:1px solid var(--border);border-radius:8px;padding:.6rem .8rem}.rjsf legend{color:var(--text);padding:0 .3rem;font-weight:600}.rjsf .form-group{flex-direction:column;gap:.25rem;margin-bottom:.7rem;display:flex}.rjsf .control-label{color:var(--muted);font-size:.85rem}.rjsf .control-label .required{color:var(--danger);margin-left:.15rem}.rjsf .field-description{color:var(--muted);margin:0 0 .2rem;font-size:.78rem}.rjsf .form-control,.rjsf input[type=text],.rjsf input[type=number],.rjsf select,.rjsf textarea{border:1px solid var(--border);background:var(--bg);width:100%;color:var(--text);font:inherit;border-radius:6px;padding:.4rem .55rem}.rjsf textarea{resize:vertical}.rjsf .checkbox label{align-items:center;gap:.4rem;display:inline-flex}.rjsf .has-error .form-control,.rjsf .has-error select,.rjsf .has-error textarea{border-color:var(--danger)}.rjsf .error-detail,.rjsf .help-block{color:var(--danger);margin:.15rem 0 0;padding:0;font-size:.78rem;list-style:none}.rjsf .array-item{border:1px dashed var(--border);border-radius:8px;grid-template-columns:1fr auto;align-items:start;gap:.5rem;margin-bottom:.5rem;padding:.5rem;display:grid}.rjsf .array-item .col-xs-9{min-width:0}.rjsf .array-item-toolbox .btn-group{gap:.25rem;justify-content:flex-end!important;display:flex!important}.rjsf .array-item-list{flex-direction:column;display:flex}.rjsf .row,.rjsf .array-item-add{justify-content:flex-end;display:flex}.rjsf .rjsf-icon-btn{place-items:center;min-width:28px;display:inline-grid}.rjsf .rjsf-add-btn{align-items:center;gap:.3rem;display:inline-flex}.rjsf .panel.panel-danger{display:none}@keyframes sdg-flow{to{stroke-dashoffset:-28px}}.node-replicas{flex-wrap:wrap;align-items:center;gap:.4rem;font-size:.8rem;display:flex}.node-replicas input{width:4.5rem}.node-replicas .muted{flex-basis:100%;font-size:.75rem}.sim-hud{z-index:5;background:var(--hud-bg);flex-direction:column;gap:.45rem;width:min(320px,100% - 5rem);max-height:calc(100% - 5rem);font-size:.8rem;display:flex;position:absolute;top:.75rem;left:2.5rem;overflow:auto}.sim-head{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.sim-head strong,.sim-head button,.sim-budget span,.sim-metrics span{align-items:center;gap:.3rem;display:inline-flex}.sim-head .spacer{flex:1}.sim-head button{padding:.25rem .6rem;font-size:.8rem}.sim-head select{padding:.15rem}.sim-budget{flex-direction:column;gap:.2rem;display:flex}.sim-budget .bar{background:var(--border);border-radius:3px;height:6px;overflow:hidden}.sim-budget .bar span{background:var(--success);height:100%;transition:width .2s;display:block}.sim-budget.near .bar span{background:var(--warning)}.sim-budget.over{color:var(--danger)}.sim-budget.over .bar span{background:var(--danger)}.sim-waves{flex-wrap:wrap;gap:.3rem;margin:0;padding:0;list-style:none;display:flex}.sim-waves li{border:1px solid var(--border);border-radius:6px;flex-direction:column;padding:.2rem .45rem;display:flex}.sim-waves li small{color:var(--muted);font-size:.7rem}.sim-waves li.active{border-color:var(--accent)}.sim-waves li.ok{border-color:var(--success)}.sim-waves li.fail{border-color:var(--danger)}.sim-metrics{flex-wrap:wrap;gap:.6rem;font-family:monospace;display:flex}.sim-metrics .bad{color:var(--danger)}.canvas-wrapper{background:radial-gradient(ellipse at 50% 40%, color-mix(in srgb, var(--accent) 9%, var(--table-bg)) 0, var(--table-bg) 70%);box-shadow:inset 0 0 60px color-mix(in srgb, var(--overlay) 45%, transparent)}.canvas .x6-graph-background{background-color:#0000!important}.canvas-toolbar{background:linear-gradient(180deg, color-mix(in srgb, var(--diagram) 8%, var(--panel)) 0, var(--panel) 100%);border-bottom:1px solid var(--card-frame);gap:.55rem;padding:.55rem .75rem}.canvas-toolbar button{border-radius:10px;transition:transform .12s,box-shadow .15s,border-color .15s}.canvas-toolbar button.secondary{border-color:var(--card-frame);background:var(--surface)}.canvas-toolbar button.secondary:hover:not(:disabled){border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 25%, transparent)}.canvas-toolbar button.loading-button{letter-spacing:.02em;background:linear-gradient(180deg, color-mix(in srgb, var(--success) 70%, var(--accent)) 0, var(--accent) 100%);box-shadow:0 4px 12px var(--glow-accent), inset 0 1px 0 #ffffff40;padding:.55rem 1.1rem}.canvas-toolbar button.loading-button:hover:not(:disabled){box-shadow:0 6px 16px var(--glow-accent);transform:translateY(-1px)}.view-toggle{border-color:var(--card-frame);border-radius:10px}.view-toggle button{border-radius:8px}.view-toggle button.active{box-shadow:0 0 10px var(--glow-accent)}.canvas-controls{border-color:var(--card-frame);background:linear-gradient(180deg, color-mix(in srgb, var(--diagram) 8%, var(--panel)) 0, var(--panel) 100%);box-shadow:0 10px 24px color-mix(in srgb, var(--overlay) 55%, transparent);border-radius:14px;padding:5px}.canvas-controls button{border-radius:9px}.canvas-controls button.active{box-shadow:0 0 10px var(--glow-accent)}.inspector.panel,.sim-hud.panel,.panel.feedback{--kind:var(--diagram);border:1px solid color-mix(in srgb, var(--kind) 40%, var(--card-frame));background:linear-gradient(180deg, color-mix(in srgb, var(--kind) 12%, var(--panel)) 0, var(--panel) 48%);box-shadow:0 1px 2px var(--tint), 0 8px 22px color-mix(in srgb, var(--overlay) 40%, transparent);border-radius:16px}.sim-hud.panel{--kind:var(--hld);background:linear-gradient(180deg, color-mix(in srgb, var(--kind) 12%, var(--hud-bg)) 0, var(--hud-bg) 48%)}.inspector.panel h3,.sim-hud.panel h3,.panel.feedback h2,.panel.feedback h3{letter-spacing:.01em}.sim-waves li{background:var(--surface);border-radius:8px}.sim-waves li.active{box-shadow:0 0 10px var(--glow-accent)}.sim-waves li.ok{box-shadow:0 0 8px var(--glow-success)}.sim-budget .bar{border-radius:4px;height:8px}.panel.feedback.correto{--kind:var(--success);border-color:var(--success);box-shadow:0 0 18px var(--glow-success)}.panel.feedback.parcialmente_correto{--kind:var(--warning);border-color:var(--warning)}.panel.feedback.errado{--kind:var(--danger);border-color:var(--danger)}.code-panel{border-top:1px solid var(--card-frame);background:var(--panel)}.code-tabs{border-bottom-color:var(--card-frame);gap:.35rem;padding:.45rem .6rem}.code-tabs button{border-radius:999px}.code-panel-title{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-right:.35rem;font-size:.68rem;font-weight:700}.inspector-header{align-items:center;gap:.5rem;display:flex}.inspector-icon{background:color-mix(in srgb, var(--kind) 22%, transparent);border:1px solid color-mix(in srgb, var(--kind) 45%, transparent);border-radius:10px;flex:none;place-items:center;width:2rem;height:2rem;font-size:1.15rem;display:grid}.inspector-header .node-kind{letter-spacing:.06em;color:color-mix(in srgb, var(--kind) 60%, var(--text));font-weight:700}.inspector-stats{flex-wrap:wrap;gap:.3rem;margin:0;padding:0;list-style:none;display:flex}.stat-chip{font-variant-numeric:tabular-nums;color:var(--text-soft);background:color-mix(in srgb, var(--kind,var(--accent)) 12%, var(--bg-deep));border:1px solid var(--border);border-radius:999px;padding:.05rem .45rem;font-size:.72rem}.code-editor,.mermaid-preview{background:color-mix(in srgb, var(--table-bg) 70%, var(--bg-deep))}.card-header{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.card-header h2,.card-header h3{margin:0}.card-stats{flex-wrap:wrap;gap:.3rem;margin:0;padding:0;list-style:none;display:flex}.panel.feedback .card-stats{flex-basis:100%}.sim-hud.incident{--kind:var(--danger)}.sim-title{text-transform:uppercase;letter-spacing:.06em;color:color-mix(in srgb, var(--kind) 60%, var(--text));font-size:.8rem}.sim-metrics{gap:.3rem}.sim-metrics .stat-chip.bad{color:var(--danger);border-color:var(--danger)}.panel.phase-info{--kind:var(--diagram);border:1px solid color-mix(in srgb, var(--kind) 40%, var(--card-frame));background:linear-gradient(180deg, color-mix(in srgb, var(--kind) 12%, var(--panel)) 0, var(--panel) 48%);border-radius:16px}.panel.phase-info.dsa{--kind:var(--dsa)}.panel.phase-info.lld{--kind:var(--lld)}.panel.phase-info.hld{--kind:var(--hld)}.phase-sim{border:1px solid var(--card-frame);background:var(--surface);border-radius:12px;padding:.5rem .65rem}@media (prefers-reduced-motion:reduce){.canvas-toolbar button{transition:none}.canvas-toolbar button.loading-button:hover:not(:disabled){transform:none}}.phase-picker{flex-direction:column;gap:.25rem;font-size:.85rem;display:flex}.cards-page{--card-anim-play:.4s;--card-anim-feedback:.7s;flex-direction:column;grid-area:main;gap:1.25rem;width:100%;padding:1.5rem max(1.25rem,50% - 600px + 1.25rem) 2rem;line-height:1.5;display:flex;overflow-y:auto}.cards-page h3{letter-spacing:.01em;margin:0 0 .6rem;font-size:1rem}.cards-page>.quiz-head{border-bottom:1px solid var(--border);padding-bottom:.9rem}.cards-page>.quiz-head h2{font-size:1.4rem}.cards-page .panel,.card-zone{background:var(--panel);border:1px solid var(--border);box-shadow:0 1px 2px var(--tint), 0 4px 16px color-mix(in srgb, var(--overlay) 25%, transparent);border-radius:16px;padding:1.1rem 1.2rem}.cards-top{grid-template-columns:2fr 1fr;gap:1.25rem;display:grid}.cards-bottom{grid-template-columns:repeat(3,1fr);gap:1.25rem;display:grid}.card-zones{grid-template-columns:2fr 1fr;gap:1.25rem;display:grid}@media (width<=900px){.cards-top,.cards-bottom,.card-zones{grid-template-columns:1fr}}.card-threat-list{gap:.75rem;margin-top:.5rem;display:grid}.card-threat-item{padding:.6rem .2rem .2rem}.card-threat-item+.card-threat-item{border-top:1px solid var(--border)}.card-threat-item.lingering .card-threat-icon{width:2.5rem;height:2.5rem;font-size:1.4rem}.card-threat-item.lingering h3{font-size:1rem}.card-target-picker{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.card-target-options{flex-wrap:wrap;gap:.35rem;display:flex}.card-graveyard{gap:.15rem;margin:0;padding:0;font-size:.85rem;list-style:none;display:grid}.card-graveyard li{border-radius:8px;flex-wrap:wrap;align-items:center;gap:.3rem;padding:.3rem .45rem;display:flex}.card-graveyard li button{margin-left:auto}.card-view{flex-wrap:wrap;align-items:flex-start;gap:1.2rem;display:flex}.card-view>div{flex:1;min-width:200px}.card-view p{margin:0 0 .5rem}.card-view-effects{gap:.25rem;margin:0;padding-left:1.1rem;display:grid}.card-graveyard li:nth-child(odd){background:color-mix(in srgb, var(--surface) 70%, transparent)}.cards-page .card-threat{border-color:color-mix(in srgb, var(--danger) 40%, var(--border));background:linear-gradient(180deg, color-mix(in srgb, var(--danger) 8%, var(--panel)), var(--panel) 60%)}.card-threat-head{align-items:flex-start;gap:.9rem;display:flex}.card-threat-head h3{margin:.1rem 0 .35rem;font-size:1.15rem}.card-threat-head>div{flex:1}.card-threat-icon{background:color-mix(in srgb, var(--danger) 14%, transparent);border-radius:14px;flex-shrink:0;place-items:center;width:3.5rem;height:3.5rem;font-size:2rem;line-height:1;display:grid}.card-threat-damage{white-space:nowrap;color:var(--danger);background:color-mix(in srgb, var(--danger) 12%, transparent);border-radius:999px;padding:.2rem .7rem;font-size:1.2rem;font-weight:800}.card-damage-bar{background:color-mix(in srgb, var(--danger) 55%, transparent);border-radius:999px;height:10px;margin-top:.75rem;overflow:hidden}.card-damage-bar .mitigated{border-radius:inherit;background:var(--success);height:100%;transition:width var(--card-anim-play) ease-out;display:block}.card-damage-text{margin:.5rem 0 0;font-size:.9rem}small.warning{color:var(--warning)}.card-damage-text .danger{color:var(--danger)}.card-damage-text .success{color:var(--success)}.card-tags{flex-wrap:wrap;gap:.25rem;margin-left:.3rem;display:inline-flex}.card-tag{color:var(--muted);background:color-mix(in srgb, currentColor 12%, transparent);border:1px solid color-mix(in srgb, currentColor 35%, transparent);border-radius:999px;padding:.1rem .5rem;font-size:.72rem;font-weight:700}.card-tag.load{color:var(--hld)}.card-tag.latency{color:var(--dsa)}.card-tag.failure{color:var(--danger)}.card-tag.security{color:var(--lld)}.card-tag.data{color:var(--success)}.card-status{flex-direction:column;gap:.8rem;display:flex}.card-meter-head{justify-content:space-between;margin-bottom:.3rem;font-size:.875rem;display:flex}.card-meter-bar{background:color-mix(in srgb, var(--border-strong) 60%, transparent);border-radius:999px;height:10px;position:relative}.card-meter-bar span{background:var(--accent);height:100%;transition:width var(--card-anim-feedback) cubic-bezier(.22, 1, .36, 1), background-color .3s;border-radius:999px;display:block}.card-meter.hit .card-meter-bar{animation:meter-hit var(--card-anim-feedback) ease-out}@keyframes meter-hit{0%,to{box-shadow:none}30%{box-shadow:0 0 0 3px color-mix(in srgb, var(--danger) 45%, transparent)}}.card-status{position:relative}.card-damage-float{z-index:2;pointer-events:none;font-size:1.5rem;font-weight:800;animation:1s ease-out forwards damage-float;position:absolute;top:.4rem;right:1rem}.card-damage-float.danger{color:var(--danger)}.card-damage-float.success{color:var(--success);font-size:1.1rem}@keyframes damage-float{0%{opacity:0;transform:translateY(12px)scale(.7)}20%{opacity:1;transform:translateY(0)scale(1.15)}to{opacity:0;transform:translateY(-36px)scale(1)}}.card-threat.entering{animation:threat-enter var(--card-anim-feedback) cubic-bezier(.22, 1, .36, 1)}@keyframes threat-enter{0%{opacity:0;transform:translateY(-16px)rotateX(35deg)scale(.96)}60%{opacity:1;box-shadow:0 0 0 3px color-mix(in srgb, var(--danger) 40%, transparent);transform:translateY(2px)scale(1.01)}to{box-shadow:none;transform:none}}.card-meter.success .card-meter-bar span{background:var(--success)}.card-meter.danger .card-meter-bar span{background:var(--danger)}.card-meter.warning .card-meter-bar span{background:var(--warning)}.card-meter-bar i{background:var(--text);border-radius:1px;width:2px;position:absolute;top:-4px;bottom:-4px}.card-energy{align-items:center;gap:.5rem;font-size:.875rem;display:flex}.card-pips{flex:1;gap:.3rem;display:inline-flex}.card-pips i{border:2px solid var(--warning);border-radius:50%;width:14px;height:14px;transition:background-color .2s,box-shadow .2s}.card-pips i.on{background:var(--warning);box-shadow:0 0 6px color-mix(in srgb, var(--warning) 60%, transparent)}.card-zone h3 small{margin-left:.25rem;font-size:.8rem;font-weight:400}.card-row{flex-wrap:wrap;gap:1rem;display:flex}.card-row.hand{min-height:210px;position:relative}.game-card{text-align:left;width:150px;min-height:200px;color:var(--text);--kind:var(--accent);background:linear-gradient(180deg, color-mix(in srgb, var(--kind) 14%, var(--panel)) 0, var(--panel) 42%);border:1px solid color-mix(in srgb, var(--kind) 45%, var(--border));box-shadow:0 1px 2px var(--tint), 0 4px 12px color-mix(in srgb, var(--overlay) 30%, transparent);border-radius:14px;flex-direction:column;align-items:stretch;gap:.35rem;padding:.75rem .65rem .65rem;font-weight:400;transition:transform .15s,border-color .15s,box-shadow .15s;display:flex;position:relative}.game-card.component{--kind:var(--diagram)}.game-card.action{--kind:var(--cards)}.game-card.persona{--kind:var(--accent)}button.game-card{cursor:pointer}button.game-card:hover:not(:disabled){border-color:color-mix(in srgb, var(--accent) 60%, var(--border));box-shadow:0 8px 20px color-mix(in srgb, var(--overlay) 55%, transparent), 0 0 0 2px color-mix(in srgb, var(--accent) 35%, transparent);transform:translateY(-4px)scale(1.03)}button.game-card:focus-visible{outline:2px solid var(--accent);outline-offset:3px}button.game-card:disabled{opacity:.5;cursor:not-allowed}button.game-card.unplayable{opacity:.55;filter:saturate(.6)}.game-card.highlight{box-shadow:0 0 0 2px var(--success)}button.game-card.selected,button.game-card.selected:hover:not(:disabled){opacity:1;filter:none;border-color:var(--accent);box-shadow:0 10px 24px var(--overlay), 0 0 0 3px color-mix(in srgb, var(--accent) 60%, transparent);animation:.18s ease-out card-select;transform:translateY(-8px)scale(1.05)}.game-card.anim-shake{border-color:var(--danger);animation:.4s ease-in-out card-shake}.game-card.anim-drawn{border-color:var(--success);animation:1.2s ease-out card-drawn}@keyframes card-drawn{0%{opacity:0;box-shadow:0 0 0 0 var(--success);transform:translateY(-40px)scale(.85)}40%{opacity:1;box-shadow:0 0 22px 4px color-mix(in srgb, var(--success) 60%, transparent);transform:translateY(0)scale(1.05)}to{transform:none;box-shadow:0 0 #0000}}.deck-draw{z-index:40;cursor:pointer;background:color-mix(in srgb, var(--overlay) 45%, transparent);place-items:center;animation:1.8s ease-in-out forwards deck-fade;display:grid;position:fixed;inset:0}.deck-draw-box{background:var(--panel);border:1px solid var(--border);box-shadow:0 12px 40px var(--overlay);border-radius:18px;justify-items:center;gap:.8rem;padding:1.4rem 1.8rem;animation:.25s ease-out deck-pop;display:grid}.deck-draw-pile{width:90px;height:120px;position:relative}.deck-draw-pile span{border:2px solid var(--panel);background:repeating-linear-gradient(45deg, var(--accent), var(--accent) 6px, color-mix(in srgb, var(--accent) 70%, var(--panel)) 6px, color-mix(in srgb, var(--accent) 70%, var(--panel)) 12px);border-radius:12px;position:absolute;inset:0}.deck-draw-pile span:nth-child(2){transform:translate(4px,-4px)}.deck-draw-pile span:nth-child(3){transform:translate(8px,-8px)}.deck-draw-pile strong{color:var(--bg);background:var(--warning);border-radius:999px;padding:.1rem .5rem;font-size:.8rem;position:absolute;bottom:-10px;right:-14px}.deck-draw-cards{gap:.6rem;display:flex}.deck-draw-card{width:150px;animation:.7s cubic-bezier(.22,1,.36,1) both deck-card}.deck-draw-card .game-card{width:100%}@keyframes deck-fade{0%,80%{opacity:1}to{opacity:0}}.game-over{z-index:45;cursor:pointer;background:color-mix(in srgb, var(--overlay) 60%, transparent);place-items:center;animation:.4s ease-out game-over-in;display:grid;position:fixed;inset:0}.game-over.lost{background:color-mix(in srgb, var(--danger) 22%, color-mix(in srgb, var(--overlay) 60%, transparent))}.game-over-box{text-align:center;background:var(--panel);border:2px solid var(--kind);box-shadow:0 16px 50px var(--overlay);border-radius:20px;justify-items:center;gap:.5rem;padding:2rem 2.6rem;animation:.6s cubic-bezier(.22,1,.36,1) game-over-pop;display:grid}.game-over.lost .game-over-box{--kind:var(--danger);animation:.6s cubic-bezier(.22,1,.36,1) game-over-pop,.45s ease-in-out .6s card-shake}.game-over.won .game-over-box{--kind:var(--success)}.game-over-box h2{color:var(--kind);margin:0;font-size:2rem}.game-over-box p{margin:0}.game-over-icon{font-size:4rem;line-height:1;animation:1.2s ease-out game-over-icon}.game-over-hit{color:var(--danger);font-weight:800}@keyframes game-over-in{0%{opacity:0}to{opacity:1}}@keyframes game-over-pop{0%{opacity:0;transform:scale(.6)translateY(30px)}60%{opacity:1;transform:scale(1.06)}to{transform:none}}@keyframes game-over-icon{0%{transform:scale(0)rotate(-30deg)}60%{transform:scale(1.3)rotate(10deg)}to{transform:none}}@keyframes deck-pop{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:none}}@keyframes deck-card{0%{opacity:0;transform:translate(-120px)rotateY(90deg)scale(.6)}60%{opacity:1;transform:translateY(-10px)rotateY(0)scale(1.05)}to{opacity:1;transform:none}}@keyframes card-select{0%{transform:translateY(-4px)scale(1.03)}60%{transform:translateY(-10px)scale(1.08)}to{transform:translateY(-8px)scale(1.05)}}@keyframes card-shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-6px)}40%,80%{transform:translate(6px)}}.card-ghost{z-index:5;pointer-events:none;width:150px;animation:card-play var(--card-anim-play) cubic-bezier(.4, 0, .6, 1) forwards;position:absolute;top:0;left:0}.card-ghost .game-card{border-color:var(--accent);width:100%;box-shadow:0 0 18px color-mix(in srgb, var(--accent) 55%, transparent)}@keyframes card-play{0%{opacity:1;transform:translateY(-8px)scale(1.05)}40%{opacity:.95;transform:translate(18px,-90px)rotate(6deg)scale(1)}to{opacity:0;transform:translate(56px,-200px)rotate(14deg)scale(.55)}}.card-play-bar{background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-wrap:wrap;align-items:center;gap:.5rem;min-height:2.5rem;margin-bottom:.9rem;padding:.4rem .6rem;display:flex}.card-play-error{color:var(--danger);flex-basis:100%}.game-card.empty{color:var(--subtle);box-shadow:none;border:1px dashed var(--border-strong);background:0 0;justify-content:center;align-items:center}.game-card-cost{width:28px;height:28px;color:var(--bg);background:var(--warning);border:2px solid var(--panel);box-shadow:0 2px 6px color-mix(in srgb, var(--overlay) 45%, transparent);border-radius:50%;place-items:center;font-weight:800;display:grid;position:absolute;top:-9px;left:-9px}.game-card-icon{background:color-mix(in srgb, var(--kind) 16%, transparent);border-radius:50%;align-self:center;place-items:center;width:3rem;height:3rem;font-size:1.8rem;line-height:1;display:grid}.game-card-name{text-align:center;font-size:.9rem;line-height:1.25}.game-card-kind{text-align:center;letter-spacing:.06em;text-transform:uppercase;color:color-mix(in srgb, var(--kind) 70%, var(--text));font-size:.65rem;font-weight:700}.game-card-effects{border-top:1px solid var(--border);gap:.2rem;margin:.15rem 0 0;padding:.35rem 0 0;font-size:.75rem;list-style:none;display:grid}.game-card-text{color:var(--muted);font-size:.7rem;font-style:italic}.game-card-upkeep{color:var(--warning);margin-top:auto;font-size:.72rem}.game-card-now{color:var(--bg);background:var(--success);box-shadow:0 2px 6px color-mix(in srgb, var(--overlay) 45%, transparent);border-radius:999px;padding:.1rem .45rem;font-size:.7rem;font-weight:800;position:absolute;top:-9px;right:-9px}.game-card button{margin-top:auto}.card-log,.card-pool{gap:.15rem;margin:0;padding:0;font-size:.85rem;list-style:none;display:grid}.card-log li,.card-pool li{border-radius:8px;padding:.3rem .45rem}.card-log li:nth-child(odd),.card-pool li:nth-child(odd){background:color-mix(in srgb, var(--surface) 70%, transparent)}.card-log{margin:0}.card-log li.hit,.card-log li.lost{color:var(--danger)}.card-log li.block,.card-log li.won{color:var(--success)}.card-log li.aftershock,.card-log li.shutdown,.card-log li.excess{color:var(--warning)}.card-log li.regen,.card-log li.reward{color:var(--success)}small.card-reward{color:var(--success);font-weight:600;display:block}.card-pool li{flex-wrap:wrap;align-items:center;gap:.3rem;display:flex}.card-pool li.used{opacity:.45;text-decoration:line-through}.game-card-slot{display:flex;position:relative}.codex-btn{color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, var(--panel));border:1px solid color-mix(in srgb, var(--accent) 45%, var(--border));border-radius:999px;align-items:center;gap:.3rem;padding:.25rem .45rem;font-size:.75rem;font-weight:700;line-height:1;transition:transform .15s,background-color .15s;display:inline-flex}.codex-btn:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 24%, var(--panel));transform:scale(1.1)}.codex-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.codex-btn.on-card{z-index:2;padding:.3rem;position:absolute;top:14px;right:8px}.game-card-slot.selected .codex-btn.on-card{transform:translateY(-8px)}.codex-btn.threat{color:var(--danger);background:color-mix(in srgb, var(--danger) 10%, var(--panel));border-color:color-mix(in srgb, var(--danger) 45%, var(--border))}.codex-btn.pool{margin-left:auto;padding:.2rem;text-decoration:none}.card-threat-side{flex-direction:column;align-items:flex-end;gap:.45rem;display:flex}.modal.codex-modal{width:min(640px,100%)}.codex-hero{align-items:center;gap:1rem;margin-bottom:.75rem;display:flex}.codex-hero h4{margin:.1rem 0 .2rem;font-size:1.3rem}.codex-hero p{margin:0;font-style:italic}.codex-icon{background:color-mix(in srgb, var(--kind) 16%, transparent);border:1px solid color-mix(in srgb, var(--kind) 45%, var(--border));border-radius:16px;flex:none;place-items:center;width:4rem;height:4rem;font-size:2.3rem;line-height:1;display:grid}.codex{--kind:var(--accent);animation:.2s ease-out modal-fade}.codex.card.component{--kind:var(--diagram)}.codex.card.action{--kind:var(--cards)}.codex.threat{--kind:var(--danger)}.codex-kind{letter-spacing:.08em;text-transform:uppercase;color:color-mix(in srgb, var(--kind) 75%, var(--text));font-size:.68rem;font-weight:800}.codex-section{background:color-mix(in srgb, var(--surface) 70%, transparent);border-left:3px solid color-mix(in srgb, var(--kind) 55%, var(--border));border-radius:10px;margin-top:.6rem;padding:.6rem .8rem}.codex-section h5{text-transform:uppercase;letter-spacing:.04em;margin:0 0 .3rem;font-size:.82rem}.codex-section p{color:var(--text-soft);margin:0;line-height:1.55}.codex-section.ingame,.codex-section.related{border-left-color:var(--warning)}.codex-ingame ul{margin:.35rem 0 0;padding-left:1.1rem;font-size:.85rem}.codex-links{flex-wrap:wrap;gap:.4rem;display:flex}.codex-link{color:var(--text);background:var(--panel);border:1px solid var(--border-strong);border-radius:999px;padding:.3rem .65rem;font-size:.82rem;font-weight:600}.codex-link.threats:hover{border-color:var(--danger)}.codex-link.cards:hover{border-color:var(--accent)}@media (width<=600px){.cards-page{padding:1rem .75rem 1.5rem}.card-row{gap:.75rem}.game-card{width:132px;min-height:186px}}@media (prefers-reduced-motion:reduce){.cards-page .game-card,.cards-page .card-ghost,.cards-page .card-threat,.cards-page .card-meter-bar,.cards-page .card-damage-float,.assistant-panel,.deck-draw,.deck-draw-box,.deck-draw-card,.game-over,.game-over-box,.game-over-icon{animation:none!important}.cards-page .game-card,.card-meter-bar span,.card-damage-bar .mitigated,.card-pips i{transition:none!important}.card-ghost{display:none}button.game-card:hover:not(:disabled),button.game-card.selected{transform:none}}.assistant-toggle{align-items:center;gap:.35rem;display:inline-flex}.assistant-toggle.on{border-color:var(--accent);color:var(--accent)}.assistant-panel{z-index:50;width:min(420px,100vw - 2.5rem);color:var(--text);background:var(--hud-bg);border:1px solid color-mix(in srgb, var(--accent) 45%, var(--border));box-shadow:0 12px 32px var(--overlay);border-radius:16px;align-items:flex-start;gap:.75rem;padding:.9rem;font-size:.95rem;line-height:1.5;animation:.2s ease-out assistant-in;display:flex;position:fixed;bottom:1.25rem;right:1.25rem}.assistant-panel.leaving{animation:.18s ease-in forwards assistant-out}.assistant-avatar{flex-direction:column;align-items:center;gap:.25rem;display:flex}.assistant-avatar .persona-avatar{padding:.5rem}.assistant-avatar small{color:var(--muted);font-size:.75rem}.assistant-bubble{background:var(--panel);border:1px solid var(--border);border-radius:12px;flex:1;padding:.7rem .85rem;position:relative}.assistant-bubble:before{content:"";background:var(--panel);border-left:1px solid var(--border);border-bottom:1px solid var(--border);width:12px;height:12px;position:absolute;top:16px;left:-7px;transform:rotate(45deg)}.assistant-bubble header{justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}.assistant-bubble h4{color:var(--text-strong);margin:0;font-size:1rem}.assistant-bubble p{color:var(--text-soft);margin:.4rem 0 .7rem;font-size:.9rem;line-height:1.55}.assistant-bubble footer{justify-content:flex-end;gap:.5rem;display:flex}.assistant-bubble button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@keyframes assistant-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes assistant-out{to{opacity:0;transform:translateY(8px)}}.games-page{scrollbar-width:none;max-width:1200px}.games-page::-webkit-scrollbar{display:none}.games-hero{border:1px solid var(--border);background:radial-gradient(ellipse at 100% 0%, color-mix(in srgb, var(--cards) 18%, transparent), transparent 60%), radial-gradient(ellipse at 0% 100%, color-mix(in srgb, var(--accent) 16%, transparent), transparent 55%), var(--panel);border-radius:18px;flex-shrink:0;padding:1.75rem 1.75rem 1.5rem;position:relative;overflow:hidden;box-shadow:0 1px 2px #0000000f}.games-hero:before{content:"";background:linear-gradient(90deg, var(--accent), var(--cards), var(--hld));height:4px;position:absolute;inset:0 0 auto}.games-hero-top{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.games-hero-heading{max-width:720px}.games-hero-eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent);border:1px solid color-mix(in srgb, var(--accent) 30%, transparent);border-radius:999px;align-items:center;gap:.35rem;padding:.25rem .65rem;font-size:.72rem;font-weight:700;display:inline-flex}.games-hero-title{letter-spacing:-.02em;color:var(--text-strong);margin:.7rem 0 .4rem;font-size:clamp(1.7rem,2.6vw,2.3rem);font-weight:800;line-height:1.15}.games-hero-title:after{content:"";background:linear-gradient(90deg, var(--accent), var(--cards));border-radius:2px;width:56px;height:4px;margin-top:.6rem;display:block}.games-hero-lead{color:var(--text-soft);margin:.6rem 0 0;font-size:1.02rem;line-height:1.6}.games-hero-actions{align-items:center;gap:.5rem;display:flex}.games-hero-actions button{align-items:center;gap:.4rem;display:inline-flex}.games-hero-steps{counter-reset:step;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.75rem;margin:1.5rem 0 0;padding:0;list-style:none;display:grid}.games-hero-steps li{counter-increment:step;border:1px solid var(--border);background:color-mix(in srgb, var(--surface) 70%, transparent);border-radius:12px;align-items:flex-start;gap:.75rem;padding:.85rem 1rem;display:flex;position:relative}.games-hero-steps li:after{content:counter(step, decimal-leading-zero);letter-spacing:.05em;color:var(--subtle);font-size:.7rem;font-weight:800;position:absolute;top:.6rem;right:.8rem}.games-hero-steps li div{flex-direction:column;gap:.15rem;padding-right:1.25rem;display:flex}.games-hero-steps strong{color:var(--text-strong);font-size:.92rem}.games-hero-steps li span:not(.games-hero-step-icon){color:var(--muted);font-size:.85rem;line-height:1.45}.games-hero-step-icon{--c:var(--accent);width:36px;height:36px;color:var(--c);background:color-mix(in srgb, var(--c) 14%, transparent);border:1px solid color-mix(in srgb, var(--c) 30%, transparent);border-radius:10px;flex:none;place-items:center;display:grid}.games-hero-step-icon.threat{--c:var(--danger)}.games-hero-step-icon.energy{--c:var(--warning)}.games-hero-step-icon.infra,.games-hero-step-icon.brief{--c:var(--diagram)}.games-hero-step-icon.code{--c:var(--success)}.games-hero-step-icon.tests{--c:var(--warning)}@media (width<=640px){.games-hero{padding:1.25rem}}.quiz-section{flex-shrink:0;margin-top:2rem}.quiz-run{--tile-a:var(--accent);--tile-b:var(--cards)}.quiz-run.theme-1{--tile-a:var(--diagram);--tile-b:var(--dsa)}.quiz-run.theme-2{--tile-a:var(--lld);--tile-b:var(--accent)}.quiz-run.theme-3{--tile-a:var(--hld);--tile-b:var(--cards)}.quiz-run .games-hero:before,.quiz-run .games-hero-title:after{background:linear-gradient(90deg, var(--tile-a), var(--tile-b))}.quiz-run .games-hero-eyebrow{color:var(--tile-a);background:color-mix(in srgb, var(--tile-a) 12%, transparent);border-color:color-mix(in srgb, var(--tile-a) 30%, transparent)}.quiz-run .games-hero-title{font-size:clamp(1.5rem,2.2vw,2rem)}.quiz-run-progress{flex-wrap:wrap;align-items:center;gap:1rem;margin-top:1.25rem;display:flex}.quiz-run-progress .game-tile-stats{margin:0}.quiz-run-progress .game-tile-stats li.flag{color:var(--warning);border-color:color-mix(in srgb, var(--warning) 35%, var(--border))}.quiz-run-progress .game-tile-stats li.flag svg{color:var(--warning)}.quiz-run-bar{background:var(--surface);border:1px solid var(--border);border-radius:999px;flex:1;min-width:160px;height:8px;overflow:hidden}.quiz-run-bar>span{border-radius:inherit;background:linear-gradient(90deg, var(--tile-a), var(--tile-b));height:100%;box-shadow:0 0 10px color-mix(in srgb, var(--tile-a) 60%, transparent);transition:width .3s;display:block}.quiz-run .quiz-map{gap:.4rem;margin-top:1rem}.quiz-run .quiz-map-item{background:var(--surface);border-radius:10px;width:2.3rem;height:2.3rem;padding:0;font-size:.85rem;font-weight:700;transition:transform .15s,border-color .15s,background .15s}.quiz-run .quiz-map-item:hover:not(:disabled){border-color:var(--tile-a);color:var(--text-strong);transform:translateY(-2px)}.quiz-run .quiz-map-item.answered{color:var(--tile-a);border-color:color-mix(in srgb, var(--tile-a) 45%, var(--border));background:color-mix(in srgb, var(--tile-a) 10%, var(--surface))}.quiz-run .quiz-map-item.current{color:#fff;box-shadow:0 6px 14px -6px color-mix(in srgb, var(--tile-a) 80%, transparent);background:linear-gradient(135deg, var(--tile-a), var(--tile-b));border-color:#0000}.quiz-run .quiz-map-item.right{color:var(--success);border-color:var(--success);background:color-mix(in srgb, var(--success) 12%, var(--surface))}.quiz-run .quiz-map-item.wrong{color:var(--danger);border-color:var(--danger);background:color-mix(in srgb, var(--danger) 12%, var(--surface))}.quiz-run .quiz-map-item.current.right,.quiz-run .quiz-map-item.current.wrong{color:#fff}.quiz-run .quiz-map-item.current.right{background:var(--success)}.quiz-run .quiz-map-item.current.wrong{background:var(--danger)}.quiz-run-result{--tone:var(--success);flex-wrap:wrap;align-items:center;gap:1.25rem;margin-top:1.25rem;display:flex}.quiz-run-result.mid{--tone:var(--warning)}.quiz-run-result.low{--tone:var(--danger)}.quiz-run-ring{background:conic-gradient(var(--tone) calc(var(--pct) * 1%), var(--surface) 0);width:92px;height:92px;box-shadow:0 0 24px -6px color-mix(in srgb, var(--tone) 70%, transparent);border-radius:50%;flex:none;place-items:center;display:grid}.quiz-run-ring strong{background:var(--panel);width:72px;height:72px;color:var(--text-strong);border-radius:50%;place-items:center;font-size:1.35rem;font-weight:800;display:grid}.quiz-run-result-body{flex-direction:column;flex:1;gap:.3rem;min-width:220px;display:flex}.quiz-run-result-title{color:var(--text-strong);align-items:center;gap:.45rem;font-size:1.2rem;font-weight:800;display:inline-flex}.quiz-run-result-title svg{color:var(--tone)}.quiz-run-result .career-reward{margin:.35rem 0 0}.quiz-run .quiz-run-card{flex:none}.quiz-run .quiz-run-card:hover,.quiz-run .quiz-run-card:focus-within{transform:none}.quiz-run-card-head{flex-wrap:wrap}.quiz-run-number{letter-spacing:.02em;font-size:1.05rem;font-weight:800}.quiz-run-card-meta{flex-direction:column;flex:1;gap:.1rem;min-width:0;display:flex}.quiz-run-kind{opacity:.9;letter-spacing:.04em;text-transform:uppercase;font-size:.78rem;font-weight:600}.quiz-run-tool{color:#fff;text-shadow:none;background:#ffffff24;border:1px solid #ffffff4d;border-radius:999px;align-items:center;gap:.35rem;padding:.35rem .7rem;font-size:.82rem;font-weight:600;display:inline-flex}.quiz-run-tool:hover:not(:disabled){background:#ffffff3d}.quiz-run-tool.on{color:var(--tile-a);background:#fff;border-color:#fff}.quiz-run .quiz-run-tool kbd{color:inherit;opacity:.75;border-color:currentColor}.quiz-run-card-body{padding:1.4rem 1.5rem 1.5rem}.quiz-run-question{color:var(--text-strong);margin:0;font-size:1.2rem;font-weight:700;line-height:1.5}.quiz-run .quiz-options{gap:.6rem;margin:1.1rem 0 0}.quiz-run .quiz-option{background:var(--surface);border-radius:12px;gap:.85rem;padding:.75rem 1rem .75rem .75rem;line-height:1.5;transition:border-color .15s,background .15s,transform .15s,box-shadow .15s;position:relative}.quiz-run .quiz-option input{opacity:0;pointer-events:none;position:absolute}.quiz-run .quiz-option:focus-within{outline:2px solid var(--tile-a);outline-offset:2px}.quiz-run .quiz-option:hover:not(.right):not(.wrong){border-color:color-mix(in srgb, var(--tile-a) 55%, var(--border));transform:translate(3px)}.quiz-option-key{width:32px;height:32px;color:var(--muted);background:var(--panel);border:1px solid var(--border);border-radius:9px;flex:none;place-items:center;font-size:.85rem;font-weight:800;display:grid}.quiz-option-text{flex:1}.quiz-run .quiz-option.selected{border-color:var(--tile-a);background:color-mix(in srgb, var(--tile-a) 10%, var(--surface));box-shadow:0 6px 16px -10px color-mix(in srgb, var(--tile-a) 80%, transparent)}.quiz-run .quiz-option.selected .quiz-option-key{color:#fff;background:linear-gradient(135deg, var(--tile-a), var(--tile-b));border-color:#0000}.quiz-run .quiz-option.right{background:color-mix(in srgb, var(--success) 10%, var(--surface))}.quiz-run .quiz-option.wrong{background:color-mix(in srgb, var(--danger) 10%, var(--surface))}.quiz-run .quiz-option.right .quiz-option-key{color:#fff;background:var(--success);border-color:#0000}.quiz-run .quiz-option.wrong .quiz-option-key{color:#fff;background:var(--danger);border-color:#0000}.quiz-run .quiz-option.right>svg{color:var(--success)}.quiz-run .quiz-option.wrong>svg{color:var(--danger)}.quiz-run .quiz-explanation{border:1px solid color-mix(in srgb, var(--warning) 35%, var(--border));border-left:4px solid var(--warning);background:color-mix(in srgb, var(--warning) 8%, var(--surface));color:var(--text-soft);border-radius:12px;gap:.6rem;margin-top:1.1rem;padding:.85rem 1rem;line-height:1.55;display:flex}.quiz-run .quiz-explanation svg{color:var(--warning);flex:none;margin-top:.15rem}.quiz-run .quiz-code{border-radius:12px;margin-top:1rem}.quiz-run-actions{border:1px solid var(--border);background:var(--panel);border-radius:14px;flex-shrink:0;padding:.75rem}.quiz-run-actions button{align-items:center;gap:.4rem;display:inline-flex}.quiz-run-actions .quiz-run-submit,.quiz-run-actions button:not(.secondary){color:#fff;background:linear-gradient(135deg, var(--tile-a), var(--tile-b));box-shadow:0 8px 18px -10px color-mix(in srgb, var(--tile-a) 85%, transparent);border:0}.quiz-run-actions button:not(.secondary):hover:not(:disabled){filter:brightness(1.08)}@media (prefers-reduced-motion:reduce){.quiz-run .quiz-option,.quiz-run .quiz-map-item,.quiz-run-bar>span{transition:none}}.quiz-section .game-grid{margin-top:1rem}.quiz-section-head{border-bottom:1px solid var(--border);align-items:center;gap:.65rem;padding-bottom:.75rem;display:flex}.quiz-section-head h3{letter-spacing:-.01em;color:var(--text-strong);margin:0;font-size:1.15rem;font-weight:800}.quiz-section-icon{--c:var(--accent);width:32px;height:32px;color:var(--c);background:color-mix(in srgb, var(--c) 14%, transparent);border:1px solid color-mix(in srgb, var(--c) 30%, transparent);border-radius:9px;flex:none;place-items:center;display:grid}.quiz-section-icon.theme-1{--c:var(--diagram)}.quiz-section-icon.theme-2{--c:var(--lld)}.quiz-section-icon.theme-3{--c:var(--hld)}.quiz-section-count{text-align:center;min-width:1.6rem;color:var(--muted);background:var(--surface);border:1px solid var(--border);border-radius:999px;margin-left:auto;padding:.1rem .5rem;font-size:.75rem;font-weight:700}.game-tile-banner .game-tile-level{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.quiz-progress{background:var(--surface);border:1px solid var(--border);border-radius:999px;height:8px;margin-top:auto;overflow:hidden}.quiz-progress span{border-radius:inherit;background:linear-gradient(90deg, var(--tile-a), var(--tile-b));height:100%;transition:width .3s;display:block}.quiz-progress-label{color:var(--text-soft);font-size:.8rem;font-weight:600}.game-tile-live.paused:before{background:var(--warning);animation:none}.game-grid{flex-shrink:0;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:1.25rem;margin:1.5rem 0 0;padding:0;list-style:none;display:grid}.game-grid>li{display:flex}.game-tile{--tile-a:var(--accent);--tile-b:var(--cards);background:var(--panel);border:1px solid var(--border);border-radius:14px;flex-direction:column;flex:1;transition:transform .18s,box-shadow .18s,border-color .18s;display:flex;position:relative;overflow:hidden;box-shadow:0 1px 2px #0000000f}.game-tile.theme-1{--tile-a:var(--diagram);--tile-b:var(--dsa)}.game-tile.theme-2{--tile-a:var(--lld);--tile-b:var(--accent)}.game-tile.theme-3{--tile-a:var(--hld);--tile-b:var(--cards)}.game-tile:hover,.game-tile:focus-within{border-color:color-mix(in srgb, var(--tile-a) 60%, var(--border));box-shadow:0 12px 28px -10px color-mix(in srgb, var(--tile-a) 55%, transparent), 0 0 0 1px color-mix(in srgb, var(--tile-a) 35%, transparent);transform:translateY(-4px)}.game-tile-banner{color:#fff;background:radial-gradient(circle at 85% -20%, #ffffff47, transparent 55%), repeating-linear-gradient(135deg, #ffffff0f 0 2px, transparent 2px 12px), linear-gradient(135deg, var(--tile-a), var(--tile-b));text-shadow:0 1px 2px #00000040;align-items:center;gap:.75rem;min-height:76px;padding:1rem 1.15rem;display:flex;position:relative}:root:not([data-theme=light]) .game-tile-banner{background:linear-gradient(#02061752, #02061752), radial-gradient(circle at 85% -20%, #ffffff38, transparent 55%), repeating-linear-gradient(135deg, #ffffff0d 0 2px, transparent 2px 12px), linear-gradient(135deg, var(--tile-a), var(--tile-b))}.game-tile-emblem{background:#ffffff2e;border:1px solid #ffffff59;border-radius:12px;flex:none;place-items:center;width:44px;height:44px;transition:transform .25s;display:grid;box-shadow:inset 0 1px #ffffff40}.game-tile:hover .game-tile-emblem{transform:rotate(-8deg)scale(1.06)}.game-tile-level{letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:.45rem;font-size:.72rem;font-weight:700;display:inline-flex}.game-tile-pips{gap:3px;display:inline-flex}.game-tile-pips i{background:#ffffff4d;border-radius:2px;width:7px;height:14px;transform:skew(-12deg)}.game-tile-pips i.on{background:#fff;box-shadow:0 0 6px #ffffffb3}.game-tile-live{white-space:nowrap;background:#00000040;border-radius:999px;margin-left:auto;padding:.2rem .55rem;font-size:.7rem;font-weight:700}.game-tile-live:before{content:"";vertical-align:middle;background:var(--success);border-radius:50%;width:6px;height:6px;margin-right:.35rem;animation:1.6s ease-in-out infinite game-tile-pulse;display:inline-block}@keyframes game-tile-pulse{50%{opacity:.3}}.game-tile-body{flex-direction:column;flex:1;gap:.6rem;padding:1.1rem 1.15rem .5rem;display:flex}.game-tile-title{letter-spacing:-.01em;color:var(--text-strong);margin:0;font-size:1.2rem;font-weight:800;line-height:1.25}.game-tile-title:after{content:"";background:linear-gradient(90deg, var(--tile-a), var(--tile-b));border-radius:2px;width:36px;height:3px;margin-top:.5rem;transition:width .25s;display:block}.game-tile:hover .game-tile-title:after{width:64px}.game-tile-summary{color:var(--muted);margin:0;font-size:.92rem;line-height:1.55}.game-tile-stats{flex-wrap:wrap;gap:.4rem;margin:auto 0 0;padding:0;list-style:none;display:flex}.game-tile-stats li{background:var(--surface);border:1px solid var(--border);color:var(--text-soft);border-radius:999px;align-items:center;gap:.3rem;padding:.25rem .55rem;font-size:.78rem;font-weight:600;display:inline-flex}.game-tile-stats li svg{color:var(--subtle)}.game-tile-stats li.xp{color:var(--warning);border-color:color-mix(in srgb, var(--warning) 35%, var(--border))}.game-tile-stats li.xp svg{color:var(--warning)}.game-tile-footer{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-top:.5rem;padding:.85rem 1.15rem 1.1rem;display:flex}.game-tile-footer .stars{gap:3px;margin-left:0}.game-tile-actions{gap:.5rem;margin-left:auto;display:flex}.game-tile-actions button{align-items:center;gap:.4rem;display:inline-flex}.game-tile-lock{text-align:right;margin-left:auto}.game-tile.locked{filter:grayscale(.7);opacity:.7}.game-tile.locked:hover{box-shadow:none;border-color:var(--border);transform:none}@media (prefers-reduced-motion:reduce){.game-tile,.game-tile-emblem,.game-tile-title:after{transition:none}.game-tile:hover,.game-tile:focus-within{transform:none}.game-tile-live:before{animation:none}}.card-admin-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1rem;display:grid}@media (width<=1100px){.card-admin-grid{grid-template-columns:1fr}}.card-json{min-height:560px;font-family:monospace;font-size:.8rem}.card-admin-preview{max-height:640px;overflow-y:auto}.card-admin-form{max-height:720px;padding-right:.25rem;overflow-y:auto}.form-engine{flex-direction:column;gap:.75rem;display:flex}.fe-tabs{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:.25rem;margin:.5rem 0;display:flex}.fe-tab{color:var(--muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;align-items:center;gap:.35rem;padding:.4rem .8rem;display:inline-flex}.fe-tab.active{color:var(--text-strong);border-bottom-color:var(--accent)}.fe-object{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:.6rem .8rem;display:grid}.fe-object.fe-row{flex-wrap:wrap;flex:1;align-items:flex-end;display:flex}.fe-object.fe-row>.fe-field{flex:160px}.fe-field{flex-direction:column;gap:.25rem;min-width:0;display:flex}.fe-field.fe-wide{grid-column:1/-1}.fe-field.fe-w-object>.fe-object,.fe-field.fe-w-variant>.fe-variant{border:1px solid var(--border);background:var(--tint);border-radius:8px;padding:.6rem}.fe-label{color:var(--text-soft);align-items:center;gap:.35rem;font-size:.8rem;font-weight:600;display:flex}.fe-required{color:var(--danger)}.fe-optional{color:var(--subtle);font-weight:400}.fe-help{font-size:.75rem}.fe-error{margin:0;font-size:.75rem}.fe-invalid>.node-field,.fe-invalid>.fe-variant>.node-field{border-color:var(--danger)}.fe-clear{align-items:center;gap:.2rem;margin-left:auto;display:inline-flex}.fe-add{align-self:flex-start;align-items:center;gap:.3rem;display:inline-flex}.fe-chips{flex-wrap:wrap;gap:.3rem;display:flex}.fe-chip{color:var(--muted);border:1px solid var(--border-strong);cursor:pointer;background:0 0;border-radius:999px;padding:.15rem .6rem;font-size:.8rem}.fe-chip.on{color:var(--text-strong);border-color:var(--accent);background:var(--glow)}.fe-chip:disabled{opacity:.4;cursor:not-allowed}.fe-stars{gap:.1rem;display:flex}.fe-star{color:var(--border-strong);cursor:pointer;background:0 0;border:none;padding:0 .1rem;font-size:1.3rem}.fe-star.on{color:var(--warning)}.fe-emoji{flex-wrap:wrap;align-items:center;gap:.25rem;display:flex}.fe-emoji-input{text-align:center;width:4rem;font-size:1.2rem}.fe-emoji-choice{cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;padding:.1rem .25rem;font-size:1.1rem}.fe-emoji-choice.on,.fe-emoji-choice:hover{border-color:var(--accent)}.fe-variant{flex-direction:column;gap:.5rem;display:flex}.fe-list{flex-direction:column;gap:.4rem;display:flex}.fe-item{border:1px solid var(--border);background:var(--surface);border-radius:8px}.fe-item.fe-invalid{border-color:var(--danger)}.fe-item-head{align-items:center;gap:.5rem;padding:.3rem .4rem;display:flex}.fe-item-toggle{color:var(--text);text-align:left;cursor:pointer;background:0 0;border:none;flex:1;align-items:center;gap:.4rem;min-width:0;padding:.2rem;display:flex}.fe-item-toggle:disabled{cursor:default;color:var(--text-soft)}.fe-item-toggle span:first-of-type{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.fe-item-body{border-top:1px solid var(--border);padding:.5rem .6rem .7rem}.fe-item-body>.fe-field>.fe-object,.fe-item-body>.fe-field>.fe-variant{background:0 0;border:none;padding:0}.fe-item-actions{gap:.2rem;display:inline-flex}.fe-item-actions button{padding:.15rem .3rem;display:inline-flex}.fe-string-item,.fe-row-item{align-items:flex-end;gap:.4rem;display:flex}.fe-string-item>.fe-field,.fe-row-item>.fe-field{flex:1}.fe-index{color:var(--subtle);align-self:center;font-size:.8rem}.card-issues{color:var(--danger);margin:0;padding-left:1.1rem;font-size:.85rem}.sim-spark{width:100%;height:40px}.sim-spark path{fill:none;stroke:#38bdf8;stroke-width:1.5px}.sim-spark .limit{stroke:var(--danger);stroke-dasharray:4 3;stroke-width:1px}.sim-feed{flex-direction:column;gap:.2rem;margin:0;padding:0;list-style:none;display:flex}.sim-feed li{border-left:3px solid var(--border);background:var(--tint);padding:.2rem .4rem}.sim-feed li time{color:var(--muted);margin-right:.3rem;font-family:monospace}.sim-feed li.overload,.sim-feed li.warning{border-color:var(--danger)}.sim-feed li.traffic_multiplier,.sim-feed li.latency_spike,.sim-feed li.cache_stampede{border-color:var(--warning)}.sim-feed li.kill_node,.sim-feed li.region_down,.sim-feed li.ddos{border-color:#a855f7}.sim-feed li.incident_end{border-color:var(--muted)}.sim-feed li .persona-avatar{vertical-align:middle;margin-right:.2rem}.sim-feed li.wave{border-color:var(--accent)}.sim-summary{border:1px solid;border-radius:6px;flex-direction:column;gap:.2rem;padding:.4rem .5rem;display:flex}.sim-summary.won{border-color:var(--success)}.sim-summary.lost{border-color:var(--danger)}.sim-summary ul{margin:0;padding-left:1.1rem}.sim-playtest{margin-top:.5rem}.sim-playtest .sim-summary{margin-top:.4rem;font-size:.85rem}.phase-sim ol{margin:.3rem 0;padding-left:1.2rem;font-size:.9rem}.waves-preview{margin:.75rem 0 0}.waves-preview svg{background:var(--bg);border-radius:6px;width:100%;height:auto}.waves-preview rect{fill:#6366f18c}.waves-preview text{fill:var(--text);font-size:10px}.waves-preview line{stroke:var(--warning);stroke-dasharray:4 3}.waves-preview line.latency_spike{stroke:var(--danger)}.waves-preview line.kill_node,.waves-preview line.region_down,.waves-preview line.ddos{stroke:#a855f7}.sim-incidents li small{align-items:center;gap:.2rem;display:inline-flex}.persona-avatar{color:var(--accent);background:#6366f12e;border-radius:50%;justify-content:center;align-items:center;padding:.2rem;display:inline-flex}.persona-avatar.siren{color:var(--danger);background:#ef44442e}.persona-avatar.piggy-bank{color:var(--success);background:#22c55e2e}.persona-avatar.megaphone{color:var(--warning);background:#f59e0b2e}.persona-tag{align-items:center;gap:.3rem;display:inline-flex}.persona-widget{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.persona-widget select{flex:1;min-width:12rem}.persona-widget small{flex-basis:100%}.persona-review{border:1px solid var(--border);border-radius:6px;margin-top:.75rem;padding:.5rem .6rem}.persona-review.approved{border-color:var(--success)}.persona-review.rejected{border-color:var(--warning)}.persona-review-head{align-items:center;gap:.5rem;display:flex}.persona-review-head .persona-score{margin-left:auto;font-family:monospace;font-weight:600}.persona-review blockquote{border-left:3px solid var(--border);margin:.4rem 0;padding-left:.6rem;font-style:italic}.persona-metrics{gap:.2rem;margin:0;padding:0;list-style:none;display:grid}.persona-metrics li{grid-template-columns:7rem 1fr 2.5rem;align-items:center;gap:.4rem;font-size:.85rem;display:grid}.persona-metrics li meter{width:100%}.persona-metrics li.worst span{color:var(--danger)}.persona-metrics li.best span{color:var(--success)}.rank-badge{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:12px;align-items:center;gap:.5rem;padding:.25rem .75rem .25rem .3rem;font-size:.8rem;transition:border-color .18s,box-shadow .18s;display:inline-flex;position:relative}.rank-badge:hover,.rank-badge[aria-pressed=true]{border-color:color-mix(in srgb, var(--warning) 55%, var(--border));box-shadow:0 6px 16px -10px color-mix(in srgb, var(--warning) 70%, transparent)}.rank-badge.ready{border-color:var(--warning)}.rank-badge-icon{width:28px;height:28px;color:var(--warning);background:color-mix(in srgb, var(--warning) 14%, transparent);border:1px solid color-mix(in srgb, var(--warning) 30%, transparent);border-radius:8px;place-items:center;display:grid}.rank-badge-body{flex-direction:column;align-items:flex-start;gap:.15rem;line-height:1.1;display:flex}.rank-badge-xp{white-space:nowrap;align-items:center;gap:.4rem;font-size:.72rem;display:inline-flex}.rank-badge .rank-name{white-space:nowrap}.rank-badge .xp-bar>span{background:linear-gradient(90deg, var(--accent), var(--cards))}.rank-badge .rank-name{color:var(--text-strong)}.rank-name{font-weight:600}.xp-bar{background:var(--border);border-radius:999px;width:64px;height:6px;display:inline-block;overflow:hidden}.xp-bar>span{background:var(--accent);height:100%;transition:width .3s;display:block}.xp-bar.large{width:100%;height:10px;display:block}.xp-text{color:var(--muted);font-variant-numeric:tabular-nums}.promo-dot{background:var(--warning);border-radius:50%;width:8px;height:8px;position:absolute;top:-2px;right:-2px}.rank-board-scroll{scrollbar-width:thin;overflow-x:auto}.rank-table.history-rich th:first-child,.rank-table.history-rich td:first-child{white-space:normal;width:auto;padding-right:1.15rem}.rank-table.history-rich td.when{white-space:nowrap;color:var(--muted);font-size:.82rem}.result-pill{--c:var(--muted);white-space:nowrap;color:var(--c);background:color-mix(in srgb, var(--c) 12%, transparent);border:1px solid color-mix(in srgb, var(--c) 30%, transparent);border-radius:999px;align-items:center;gap:.35rem;padding:.15rem .55rem;font-size:.75rem;font-weight:700;display:inline-flex}.result-pill:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.result-pill.won{--c:var(--success)}.result-pill.lost{--c:var(--danger)}.result-pill.playing{--c:var(--accent)}.score-meter{--c:var(--success);white-space:nowrap;align-items:center;gap:.4rem;display:inline-flex}.score-meter.mid{--c:var(--warning)}.score-meter.low{--c:var(--danger)}.score-meter>small:last-child{color:var(--c);font-weight:700}.score-meter-bar{background:var(--surface);border:1px solid var(--border);border-radius:999px;width:64px;height:6px;overflow:hidden}.score-meter-bar span{border-radius:inherit;background:var(--c);height:100%;display:block}.games-empty{text-align:center;border:1px dashed var(--border);background:var(--panel);border-radius:14px;flex-direction:column;flex-shrink:0;align-items:center;gap:.5rem;margin-top:2rem;padding:2.25rem 1.5rem;display:flex}.games-empty p{margin:0}.games-empty strong{color:var(--text-strong);font-size:1.05rem}.games-empty button{align-items:center;gap:.4rem;display:inline-flex}.games-empty-icon{width:52px;height:52px;color:var(--accent);background:color-mix(in srgb, var(--accent) 14%, transparent);border:1px solid color-mix(in srgb, var(--accent) 30%, transparent);border-radius:14px;place-items:center;display:grid}.career-hero-title svg{color:var(--warning);vertical-align:-3px;margin-right:.35rem}.career-page .games-hero-heading{flex:1}.career-xp{gap:.4rem;max-width:560px;margin:.9rem 0 0;display:grid}.career-xp .xp-bar.large{background:var(--surface);border:1px solid var(--border);height:12px}.career-xp .xp-bar>span{background:linear-gradient(90deg, var(--accent), var(--cards));border-radius:inherit}.career-xp small{font-weight:600}.career-hero-note{color:var(--text-soft);margin:1rem 0 0;font-size:.88rem}.career-promo{max-width:720px;margin-top:1rem}.career-promo:hover,.career-promo:focus-within{transform:none}.requirements{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.requirements li{color:var(--muted);background:var(--surface);border:1px solid var(--border);border-radius:10px;align-items:center;gap:.6rem;padding:.55rem .75rem;display:flex}.requirements li>span{flex:1}.requirements li svg{color:var(--danger);flex:none}.requirements li.met{color:var(--text);border-color:color-mix(in srgb, var(--success) 35%, var(--border))}.requirements li.met svg{color:var(--success)}.quiz-section-sub{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.quiz-section-empty{margin:1rem 0 0}.career-tier.locked .quiz-section-head{opacity:.6}.game-tile-live.boss{background:#0000004d}.game-tile-live.boss:before{display:none}.game-tile-live.boss svg{vertical-align:-1px;color:#fde68a;margin-right:.2rem}.stars{vertical-align:middle;color:var(--border);gap:1px;margin-left:.4rem;display:inline-flex}.stars svg.on{color:var(--warning);fill:var(--warning)}.achievements{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:.75rem;margin:1rem 0 0;padding:0;list-style:none;display:grid}.achievements li{background:var(--panel);border:1px solid var(--border);opacity:.5;filter:grayscale();border-radius:12px;align-items:center;gap:.75rem;padding:.85rem 1rem;transition:transform .18s,box-shadow .18s;display:flex}.achievements li.earned{opacity:1;filter:none;border-color:color-mix(in srgb, var(--warning) 45%, var(--border));background:linear-gradient(135deg, color-mix(in srgb, var(--warning) 10%, var(--panel)), var(--panel) 60%)}.achievements li.earned:hover{box-shadow:0 10px 22px -12px color-mix(in srgb, var(--warning) 60%, transparent);transform:translateY(-2px)}.achievements li div{gap:.15rem;display:grid}.achievements li strong{color:var(--text-strong)}.achievements li small{line-height:1.4}.achievement-icon{width:42px;height:42px;color:var(--warning);background:color-mix(in srgb, var(--warning) 14%, transparent);border:1px solid color-mix(in srgb, var(--warning) 30%, transparent);border-radius:12px;flex:none;place-items:center;display:grid}.rank-ladder{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.75rem;margin:1rem 0 0;padding:0;list-style:none;display:grid}.rank-ladder li{color:var(--muted);background:var(--panel);border:1px solid var(--border);border-radius:12px;gap:.75rem;padding:.85rem 1rem;display:flex}.rank-ladder-step{background:var(--surface);border:1px solid var(--border);border-radius:50%;flex:none;place-items:center;width:30px;height:30px;font-size:.8rem;font-weight:800;display:grid}.rank-ladder-body{gap:.15rem;min-width:0;display:grid}.rank-ladder-body strong{color:var(--text-strong);align-items:center;gap:.4rem;display:flex}.rank-ladder li.reached{color:var(--text-soft)}.rank-ladder li.reached .rank-ladder-step{color:var(--success);border-color:color-mix(in srgb, var(--success) 45%, var(--border));background:color-mix(in srgb, var(--success) 12%, transparent)}.rank-ladder li.current{border-color:color-mix(in srgb, var(--accent) 60%, var(--border));box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 35%, transparent), 0 10px 22px -12px var(--glow-accent);background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 10%, var(--panel)), var(--panel) 60%)}.rank-ladder li.current .rank-ladder-step{color:#fff;background:linear-gradient(135deg, var(--accent), var(--cards));border-color:#0000}.rank-ladder-you{letter-spacing:.05em;text-transform:uppercase;color:var(--accent);background:color-mix(in srgb, var(--accent) 14%, transparent);border-radius:999px;padding:.05rem .45rem;font-size:.68rem;font-weight:700}.career-reward{border:1px solid var(--accent);background:#6366f114;border-radius:8px;margin:.5rem 0;padding:.5rem .7rem}.career-reward p{margin:0 0 .2rem}.xp-gain{color:var(--accent)}.new-achievements{margin:.4rem 0 0;padding:0;list-style:none}.new-achievements li{color:var(--warning);align-items:center;gap:.35rem;display:flex}.promo-ready{color:var(--warning);align-items:center;gap:.3rem;display:flex;margin:.4rem 0 0!important}.phase-locked{border-color:var(--warning)}.phase-locked h3{color:var(--warning);align-items:center;gap:.4rem;margin-top:0;display:flex}.confetti{pointer-events:none;z-index:1001;position:fixed;inset:0;overflow:hidden}.confetti span{border-radius:2px;width:8px;height:14px;animation:2.4s ease-in forwards confetti-fall;position:absolute;top:-12px}@keyframes confetti-fall{to{opacity:.6;top:110vh;transform:rotate(720deg)}}@media (prefers-reduced-motion:reduce){.confetti{display:none}.xp-bar>span{transition:none}}.cards-page.diagram-view{padding-left:1.25rem;padding-right:1.25rem}.cd-actions button.active,.cd-timeline button.active{background:var(--accent);color:#fff;border-color:var(--accent)}.cd-view{grid-template-columns:minmax(200px,260px) 1fr;align-items:start;gap:1.25rem;min-height:0;display:grid}.cd-hand{max-height:calc(100vh - 170px);position:sticky;top:0;overflow-y:auto}.cd-hand-zone{padding:.9rem}.cd-hand-zone .card-play-bar{flex-wrap:wrap;gap:.4rem}.cd-graveyard{margin-top:.8rem}.card-row.hand .card-slot{display:contents}.card-row.hand.compact .card-slot{flex-direction:column;gap:.4rem;display:flex}.card-play-bar.inline{border-color:var(--accent);margin-bottom:0}.cd-graveyard summary{cursor:pointer;margin-bottom:.4rem;font-weight:600}.card-row.hand.compact{flex-flow:column;gap:.6rem;min-height:0}.card-row.hand.compact .game-card{width:100%;min-height:0}.card-row.hand.compact .game-card-text{display:none}.cd-main{flex-direction:column;gap:.7rem;min-width:0;display:flex}.cd-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;display:flex}.cd-hud{flex-wrap:wrap;gap:.9rem;font-weight:600;display:flex}.cd-hud .danger{color:var(--danger)}.cd-hud .success{color:var(--success)}.cd-actions{align-items:center;gap:.45rem;display:flex}.cd-actions button{align-items:center;gap:.3rem;display:inline-flex}.cd-export{position:relative}.cd-export-menu{z-index:20;background:var(--panel);border:1px solid var(--border-strong);min-width:170px;box-shadow:0 8px 24px color-mix(in srgb, var(--overlay) 60%, transparent);border-radius:10px;flex-direction:column;padding:.3rem;display:flex;position:absolute;top:calc(100% + 4px);right:0}.cd-export-menu button{color:var(--text);text-align:left;background:0 0;border:0;padding:.45rem .6rem}.cd-export-menu button:hover{background:var(--hover)}.cd-threats{flex-wrap:wrap;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.cd-threat{background:color-mix(in srgb, var(--danger) 12%, var(--panel));color:var(--text);border:1px solid color-mix(in srgb, var(--danger) 50%, var(--border));border-radius:999px;padding:.25rem .6rem;font-size:.85rem}.cd-threat.active{border-color:var(--danger)}.cd-canvas{background:var(--table-bg);border:1px solid var(--border);border-radius:12px;overflow:auto}.cd-svg{width:100%;min-width:760px;height:auto;font-family:Inter,system-ui,sans-serif;display:block}.cd-loading{padding:2rem}.cd-column{fill:var(--subtle);text-anchor:middle;text-transform:uppercase;letter-spacing:.08em;font-size:12px;font-weight:600}.cd-lane{stroke:var(--border-strong);stroke-dasharray:4 6}.cd-arrow{fill:var(--border-hover)}.cd-edge path{fill:none;stroke:var(--border-hover);stroke-width:2px}.cd-edge.dashed path{stroke-dasharray:6 5}.cd-edge.support path{stroke:var(--lld);stroke-width:1.5px;stroke-dasharray:3 5;opacity:.7}.cd-edge.highlight path{stroke:var(--danger)}.cd-edge text{fill:var(--muted);text-anchor:middle;font-size:11px}.cd-view.animate .cd-edge.flow path{stroke-dasharray:8 6;animation:1.2s linear infinite cd-flow}.cd-view.animate .cd-edge.support path{animation:2.4s linear infinite cd-flow}@keyframes cd-flow{to{stroke-dashoffset:-28px}}.cd-node-box{fill:var(--panel);stroke:var(--border-strong);stroke-width:2px}.cd-node-stack{fill:var(--surface);stroke:var(--border-strong);stroke-width:1.5px}.cd-node.base .cd-node-box{stroke-dasharray:5 4}.cd-node.persona .cd-node-box{fill:color-mix(in srgb, var(--lld) 14%, var(--panel));stroke:var(--lld)}.cd-node.alert .cd-node-box{stroke-width:3px;stroke:var(--danger)!important}.cd-node.highlight .cd-node-box{fill:color-mix(in srgb, var(--danger) 18%, var(--panel))}.cd-node-icon{text-anchor:middle;dominant-baseline:central;font-size:22px}.cd-node-label{fill:var(--text-strong);dominant-baseline:central;font-size:13px;font-weight:600}.cd-node-sub{fill:var(--muted);dominant-baseline:central;font-size:11px}.cd-node-badges{text-anchor:end;font-size:13px}.cd-node-alert circle{fill:var(--danger)}.cd-node-alert text{text-anchor:middle;dominant-baseline:central;font-size:12px}.cd-node-body{transform-box:fill-box;transform-origin:50%}.cd-view.animate .cd-node.alert .cd-node-alert{transform-box:fill-box;transform-origin:50%;animation:1.2s ease-in-out infinite cd-pulse}.cd-node.fx-deploy .cd-node-body{animation:.7s cubic-bezier(.2,1.4,.4,1) cd-deploy}.cd-node.fx-join .cd-node-body{animation:.7s ease-out cd-join}.cd-node.fx-shutdown .cd-node-body{animation:.9s ease-in forwards cd-shutdown}.cd-node.fx-decorate .cd-node-body,.cd-node.fx-boost .cd-node-body,.cd-node.fx-deploy .cd-node-box{filter:drop-shadow(0 0 8px var(--accent))}.cd-node.fx-decorate .cd-node-body{animation:.6s ease-out cd-pop}.cd-node.fx-attack .cd-node-body,.cd-node.fx-damage .cd-node-body{animation:.5s ease-in-out 2 cd-shake}.cd-node.fx-damage .cd-node-box{stroke:var(--danger);filter:drop-shadow(0 0 10px var(--danger))}.cd-node.fx-shield .cd-node-box,.cd-node.fx-heal .cd-node-box{stroke:var(--success);filter:drop-shadow(0 0 10px var(--success))}.cd-node.fx-scan .cd-node-box{stroke:var(--diagram);filter:drop-shadow(0 0 10px var(--diagram))}.cd-node.fx-rollback .cd-node-body{animation:.7s ease-in-out cd-rollback}.cd-node.fx-boost .cd-node-body{animation:.6s ease-out cd-pop}@keyframes cd-deploy{0%{opacity:0;transform:scale(.3)}to{opacity:1;transform:scale(1)}}@keyframes cd-join{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}@keyframes cd-shutdown{to{opacity:0;transform:scale(.6)}}@keyframes cd-pop{50%{transform:scale(1.08)}}@keyframes cd-shake{25%{transform:translate(-5px)}75%{transform:translate(5px)}}@keyframes cd-rollback{50%{transform:rotate(-6deg)}}@keyframes cd-pulse{50%{transform:scale(1.25)}}.cd-actions-played{margin:0;font-size:.85rem}.cd-action-name{color:var(--text);background:color-mix(in srgb, var(--accent) 14%, transparent);border-radius:8px;padding:.1rem .45rem;font-size:1rem}.cd-timeline{color:var(--muted);flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.cd-timeline button{align-items:center;display:inline-flex}@media (width<=900px){.cd-view{grid-template-columns:1fr}.cd-hand{max-height:none;position:static}.card-row.hand.compact{flex-flow:wrap}.card-row.hand.compact .game-card{width:150px}}@media (prefers-reduced-motion:reduce){.cd-node .cd-node-body,.cd-edge path,.cd-node-alert{animation:none!important}}.cards-page{scrollbar-width:none}.cards-page::-webkit-scrollbar{display:none}.match-hero{padding:1.25rem 1.5rem}.match-hero .games-hero-title{margin:.55rem 0 .2rem;font-size:clamp(1.4rem,2vw,1.8rem)}.match-hero .games-hero-title:after{width:44px;height:3px;margin-top:.45rem}.match-hero .games-hero-eyebrow.won{color:var(--success);background:color-mix(in srgb, var(--success) 12%, transparent);border-color:color-mix(in srgb, var(--success) 30%, transparent)}.match-hero .games-hero-eyebrow.lost,.match-hero .games-hero-eyebrow.abandoned{color:var(--danger);background:color-mix(in srgb, var(--danger) 12%, transparent);border-color:color-mix(in srgb, var(--danger) 30%, transparent)}.match-hero-sub{flex-wrap:wrap;align-items:center;gap:.4rem;margin:.5rem 0 0;font-size:.88rem;display:flex}.match-hero-actions{flex-wrap:wrap;justify-content:flex-end;align-self:center}.match-hero-actions>button{border-radius:10px;align-items:center;gap:.4rem;display:inline-flex}.match-switch{background:var(--surface);border:1px solid var(--border);border-radius:12px;gap:.2rem;padding:.25rem;display:inline-flex}.match-switch button{color:var(--text-soft);background:0 0;border:0;border-radius:9px;align-items:center;gap:.4rem;padding:.4rem .85rem;font-size:.88rem;font-weight:700;transition:background .18s,color .18s;display:inline-flex}.match-switch button:hover:not(.active){color:var(--text-strong);background:var(--hover)}.match-switch button.active{color:#fff;text-shadow:0 1px 2px #00000040;background:linear-gradient(135deg, var(--accent), var(--cards));box-shadow:0 6px 14px -8px color-mix(in srgb, var(--accent) 85%, transparent)}.cards-page .panel,.card-zone{--zone-a:var(--accent);--zone-b:var(--cards);position:relative}.cards-page .panel:before,.card-zone:before{content:"";pointer-events:none;background:linear-gradient(90deg, var(--zone-a), var(--zone-b));border-radius:16px;position:absolute;inset:-1px;-webkit-mask:linear-gradient(#000 0 0) top/100% 3px no-repeat;mask:linear-gradient(#000 0 0) top/100% 3px no-repeat}.cards-page .card-threat{--zone-a:var(--danger);--zone-b:var(--warning)}.card-zone.team{--zone-a:var(--lld);--zone-b:var(--accent)}.cards-page .card-zones>.card-zone:first-child{--zone-a:var(--diagram);--zone-b:var(--dsa)}.cards-page .card-status{--zone-a:var(--success);--zone-b:var(--diagram)}.cards-page .modal .panel:before{display:none}.zone-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.zone-head .zone-title{margin:0}.cards-page h3.zone-title{color:var(--text-strong);flex-wrap:wrap;align-items:center;gap:.55rem;margin:0 0 .85rem;font-size:1rem;display:flex}.zone-title small{font-size:.8rem;font-weight:400;margin-left:0!important}.zone-icon{--c:var(--accent);width:30px;height:30px;color:var(--c);background:color-mix(in srgb, var(--c) 14%, transparent);border:1px solid color-mix(in srgb, var(--c) 30%, transparent);border-radius:9px;flex:none;place-items:center;display:grid}.zone-icon.threat{--c:var(--danger)}.zone-icon.infra{--c:var(--diagram)}.zone-icon.team{--c:var(--lld)}.zone-icon.status{--c:var(--success)}.zone-icon.grave{--c:var(--muted)}.zone-count{color:var(--text-soft);background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:.05rem .5rem;font-size:.75rem;font-weight:700}.zone-total{border:1px solid;border-radius:999px;padding:.2rem .65rem;font-size:.82rem}.zone-total.danger{color:var(--danger);background:color-mix(in srgb, var(--danger) 10%, transparent)}.zone-total.success{color:var(--success);background:color-mix(in srgb, var(--success) 10%, transparent)}.cards-page .card-threat-item{border:1px solid var(--border);background:color-mix(in srgb, var(--surface) 70%, transparent);border-radius:12px;padding:.9rem 1rem}.cards-page .card-threat-item.fresh{border-color:color-mix(in srgb, var(--danger) 35%, var(--border))}.cards-page .card-threat-item+.card-threat-item{border-top:1px solid var(--border)}.cards-page .card-threat-icon{border:1px solid color-mix(in srgb, var(--danger) 30%, transparent)}.cards-page .card-damage-bar{background:color-mix(in srgb, var(--danger) 40%, var(--surface));height:8px}.cards-page .card-damage-bar .mitigated{background:linear-gradient(90deg, var(--success), var(--diagram))}.cards-page .card-meter-bar{background:var(--surface);border:1px solid var(--border);height:8px}.cards-page .card-meter.success .card-meter-bar span{background:linear-gradient(90deg, var(--success), var(--diagram))}.cards-page .card-meter.warning .card-meter-bar span{background:linear-gradient(90deg, var(--warning), var(--hld))}.cards-page .card-meter.danger .card-meter-bar span{background:linear-gradient(90deg, var(--danger), var(--warning))}.cards-page .card-meter-head strong{color:var(--text-strong)}.cards-page .card-pips i{border-radius:4px;transform:skew(-12deg)}.cards-page .card-status>button{color:#fff;background:linear-gradient(135deg, var(--accent), var(--cards));box-shadow:0 8px 18px -10px color-mix(in srgb, var(--accent) 85%, transparent);border:0;border-radius:10px;margin-top:auto}.cards-page .card-status>button:hover:not(:disabled){filter:brightness(1.08)}.cards-page .game-card.empty{border:1px dashed var(--border-strong);color:var(--subtle);background:repeating-linear-gradient(135deg, color-mix(in srgb, var(--surface) 60%, transparent) 0 6px, transparent 6px 14px);border-radius:14px}.cards-page .card-play-bar{border-radius:12px}.cards-page .cd-main{gap:.85rem}.cd-hud{gap:.4rem;margin:0;padding:0;font-size:.85rem;font-weight:700;list-style:none}.cd-hud li{background:var(--surface);border:1px solid var(--border);color:var(--text-soft);border-radius:999px;align-items:center;gap:.35rem;padding:.25rem .65rem;display:inline-flex}.cd-hud li svg{color:var(--subtle)}.cd-hud li.success,.cd-hud li.success svg{color:var(--success)}.cd-hud li.danger,.cd-hud li.danger svg{color:var(--danger)}.cd-hud li.success{border-color:color-mix(in srgb, var(--success) 35%, var(--border))}.cd-hud li.danger{border-color:color-mix(in srgb, var(--danger) 40%, var(--border))}.cd-hud li.budget svg,.cd-hud li.energy svg{color:var(--warning)}.cd-actions button{border-radius:10px}.cd-actions .loading-button:not(.secondary){color:#fff;background:linear-gradient(135deg, var(--accent), var(--cards));box-shadow:0 6px 14px -8px color-mix(in srgb, var(--accent) 85%, transparent);border:0}.cd-threat{font-weight:600;transition:border-color .15s,box-shadow .15s}.cd-threat:hover,.cd-threat.active{box-shadow:0 6px 14px -8px color-mix(in srgb, var(--danger) 80%, transparent)}.cards-page .cd-canvas{background:radial-gradient(circle, color-mix(in srgb, var(--border-strong) 70%, transparent) 1px, transparent 1.5px) 0 0 / 22px 22px, var(--table-bg);border-radius:14px}.cd-timeline{border-top:1px solid var(--border);padding-top:.75rem}.cd-timeline button{border-radius:8px;justify-content:center;min-width:2.4rem}.cd-timeline button.active{background:linear-gradient(135deg, var(--accent), var(--cards));border-color:#0000}.cards-page .cd-hand-zone .zone-title small{flex-basis:100%}.cards-page .cd-hand{scrollbar-width:none}.cards-page .cd-hand::-webkit-scrollbar{display:none}.market-toolbar{flex-wrap:wrap;align-items:center;gap:.75rem;margin:1rem 0;display:flex}.market-search{border:1px solid var(--border);background:var(--panel);color:var(--muted);border-radius:8px;flex:320px;align-items:center;gap:.5rem;padding:0 .75rem;display:flex}.market-search:focus-within{border-color:var(--accent)}.market-search input{min-width:0;color:var(--text);font:inherit;background:0 0;border:none;outline:none;flex:1;padding:.6rem 0}.market-kinds{gap:.35rem;display:inline-flex}.market-kinds button.active{border-color:var(--accent);color:var(--accent)}.market-page p.success{color:var(--success)}.market-layout{grid-template-columns:minmax(0,1fr) minmax(300px,420px);align-items:start;gap:1rem;display:grid}@media (width<=900px){.market-layout{grid-template-columns:1fr}}.market-rows{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.market-row{border:1px solid var(--border);background:var(--panel);border-radius:10px;align-items:center;gap:.75rem;padding:.5rem .75rem .5rem .25rem;display:flex}.market-row:hover{border-color:var(--border-hover)}.market-row.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.market-row.broken .market-row-desc{color:var(--danger)}.market-row-main{min-width:0;color:var(--text);text-align:left;background:0 0;flex:1;align-items:center;gap:.75rem;padding:.35rem .5rem;font-weight:400;display:flex}.market-row-main:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.market-row-text{flex-direction:column;gap:.2rem;min-width:0;display:flex}.market-row-title{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.market-row-title strong{color:var(--text-strong)}.market-row-desc{-webkit-line-clamp:2;color:var(--muted);-webkit-box-orient:vertical;font-size:.88rem;display:-webkit-box;overflow:hidden}.market-row-file{color:var(--subtle);font-family:ui-monospace,monospace;font-size:.75rem}.market-kind-icon{--c:var(--accent);width:38px;height:38px;color:var(--c);background:color-mix(in srgb, var(--c) 15%, transparent);border-radius:10px;flex:none;place-items:center;display:inline-grid}.market-kind-icon.cards{--c:var(--cards)}.market-kind-icon.quiz{--c:var(--dsa)}.market-badge{border:1px solid var(--border-strong);color:var(--text-soft);border-radius:999px;padding:.05rem .5rem;font-size:.72rem;font-weight:600;display:inline-block}.market-badge.cards{border-color:var(--cards);color:var(--cards)}.market-badge.quiz{border-color:var(--dsa);color:var(--dsa)}.market-badge.installed{border-color:var(--success);color:var(--success)}button.market-install{white-space:nowrap;flex:none;align-items:center;gap:.35rem;display:inline-flex}button.market-install.done{color:var(--success);border-color:var(--success);opacity:1}.market-detail{border:1px solid var(--border);background:var(--panel);border-radius:12px;flex-direction:column;gap:1rem;max-height:calc(100vh - 2rem);padding:1.1rem;display:flex;position:sticky;top:1rem;overflow:auto}.market-detail.empty{min-height:220px;color:var(--subtle);text-align:center;justify-content:center;align-items:center}.market-detail-head{align-items:center;gap:.75rem;display:flex}.market-detail-head h3{color:var(--text-strong);margin:0}.market-detail-head span{font-size:.85rem}.market-detail section h4{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0 0 .4rem;font-size:.75rem}.market-detail section p{color:var(--text-soft);margin:0;line-height:1.55}.market-stats{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.5rem;margin:0;display:grid}.market-stats div{border:1px solid var(--border);background:var(--tint);border-radius:8px;padding:.45rem .6rem}.market-stats dt{color:var(--muted);font-size:.72rem}.market-stats dd{color:var(--text-strong);overflow-wrap:anywhere;margin:.1rem 0 0;font-weight:700}.market-list{color:var(--text-soft);flex-direction:column;gap:.25rem;margin:0;padding-left:1.1rem;font-size:.9rem;display:flex}.market-tags{flex-wrap:wrap;gap:.35rem;margin-top:.5rem;display:flex}.market-detail-actions{justify-content:flex-end;display:flex}.mentorship-intro{max-width:860px;color:var(--text-soft);margin:1rem 0 0;line-height:1.6}.mentorship-intro a{color:var(--accent)}.mentorship-benefits{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.75rem;margin:1.25rem 0 0;padding:0;list-style:none;display:grid}.mentorship-benefits li{border:1px solid var(--border);background:var(--panel);border-radius:12px;align-items:flex-start;gap:.75rem;padding:.9rem 1rem;display:flex}.mentorship-benefits li div{flex-direction:column;gap:.2rem;display:flex}.mentorship-benefits strong{color:var(--text-strong);font-size:.95rem}.mentorship-benefits span:not(.games-hero-step-icon){color:var(--muted);font-size:.86rem;line-height:1.5}.mentorship-plan.highlight{border-color:color-mix(in srgb, var(--tile-a) 55%, var(--border))}.mentorship-plan.selected{box-shadow:0 0 0 2px var(--tile-a)}.mentorship-badge:before{display:none}.mentorship-price{color:var(--muted);margin:0;font-size:.9rem}.mentorship-price strong{color:var(--text-strong);letter-spacing:-.02em;font-size:1.6rem;font-weight:800}.mentorship-features{flex-direction:column;gap:.35rem;margin:.25rem 0 .5rem;padding:0;list-style:none;display:flex}.mentorship-features li{color:var(--text-soft);align-items:center;gap:.45rem;font-size:.88rem;display:flex}.mentorship-features svg{color:var(--success);flex:none}.mentorship-form{border:1px solid var(--border);background:var(--panel);border-radius:14px;flex-direction:column;gap:1rem;max-width:760px;margin-top:1.25rem;padding:1.25rem;display:flex}.mentorship-form label,.mentorship-form fieldset{color:var(--text-strong);flex-direction:column;gap:.4rem;font-size:.88rem;font-weight:600;display:flex}.mentorship-form fieldset{border:none;margin:0;padding:0}.mentorship-form legend{margin-bottom:.4rem;padding:0}.mentorship-form input,.mentorship-form select,.mentorship-form textarea{box-sizing:border-box;border:1px solid var(--border);background:var(--bg);width:100%;color:var(--text);font:inherit;border-radius:8px;padding:.55rem .7rem;font-weight:400}.mentorship-form textarea{resize:vertical}.mentorship-form input:focus,.mentorship-form select:focus,.mentorship-form textarea:focus{border-color:var(--accent);outline:none}.mentorship-form .error{font-size:.8rem;font-weight:500}.mentorship-topics{flex-wrap:wrap;gap:.45rem;display:flex}.mentorship-topics .chip{background:var(--surface);color:var(--text-soft);border:1px solid var(--border);border-radius:999px;padding:.35rem .75rem;font-size:.82rem;font-weight:600}.mentorship-topics .chip.active{color:var(--accent);border-color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent)}.mentorship-form-actions{flex-wrap:wrap;gap:.5rem;display:flex}.mentorship-form-actions button{align-items:center;gap:.4rem;display:inline-flex}.mentorship-sent{color:var(--success);margin:0;font-size:.88rem}.mentorship-faq{flex-direction:column;gap:.5rem;max-width:860px;margin-top:1.25rem;display:flex}.mentorship-faq details{border:1px solid var(--border);background:var(--panel);border-radius:10px;padding:.75rem 1rem}.mentorship-faq summary{cursor:pointer;color:var(--text-strong);font-weight:700}.mentorship-faq p{color:var(--muted);margin:.6rem 0 0;line-height:1.55}.code-section{flex-direction:column;grid-area:main;gap:1rem;width:100%;max-width:1000px;margin:0 auto;padding:1.5rem;display:flex;overflow-y:auto}.code-difficulty,.code-solved{border:1px solid var(--border);border-radius:999px;align-items:center;gap:.25rem;padding:.1rem .5rem;font-size:.75rem;font-weight:600;display:inline-flex}.code-difficulty.d1{color:var(--success)}.code-difficulty.d2{color:var(--warning)}.code-difficulty.d3{color:var(--danger)}.code-solved{color:var(--success);border-color:var(--success)}.code-tile-best{color:var(--text-soft);align-items:center;gap:.3rem;font-size:.85rem;font-weight:600;display:inline-flex}.code-tile-best svg{color:var(--success)}.code-run{grid-area:main;grid-template-columns:minmax(280px,380px) minmax(0,1fr);gap:1rem;min-height:0;padding:1rem;display:grid}.code-brief{flex-direction:column;gap:.75rem;min-height:0;display:flex;overflow-y:auto}.code-brief-head{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.code-brief-head h2{flex-basis:100%;margin:0;font-size:1.2rem}.code-description p{margin:0 0 .6rem;line-height:1.5}.code-description code,.code-signature code,.code-test-call code{background:var(--bg-deep);border-radius:4px;padding:.05rem .3rem;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.85em}.code-signature{font-size:.85rem}.code-tests{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.code-test{border:1px solid var(--border);background:var(--panel);border-left-width:3px;border-radius:8px;padding:.5rem .65rem;font-size:.85rem}.code-test.pass{border-left-color:var(--success)}.code-test.fail{border-left-color:var(--danger)}.code-test.pending{border-left-color:var(--warning)}.code-test.idle{border-left-color:var(--border-strong)}.code-test-head{align-items:center;gap:.4rem;font-weight:600;display:flex}.code-test.pass .code-test-head svg{color:var(--success)}.code-test.fail .code-test-head svg{color:var(--danger)}.code-test-call{display:block}.code-test-row{align-items:baseline;gap:.5rem;display:flex}.code-test-call,.code-test-row{word-break:break-word;white-space:pre-wrap;margin-top:.25rem;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.8rem}.error-text{color:var(--danger)}.code-workspace{flex-direction:column;gap:.5rem;min-height:0;display:flex}.code-toolbar{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.code-toolbar button{align-items:center;gap:.35rem;display:inline-flex}.code-submit{background:var(--success)}.code-status{border:1px solid var(--border);background:var(--panel);border-radius:8px;padding:.4rem .75rem;font-size:.85rem}.code-status.ok{border-color:var(--success);color:var(--success)}.code-status.fail{border-color:var(--danger);color:var(--danger)}.code-editor-wrap{border:1px solid var(--border);background:var(--bg-deep);border-radius:10px;flex:auto;min-height:260px;overflow:hidden}.code-editor-wrap.small{flex:none;height:220px;min-height:0}.code-editor{height:100%}.code-editor .cm-editor{height:100%;font-size:.9rem}.code-editor .cm-editor.cm-focused{outline:none}.code-editor .cm-scroller{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.code-console{border:1px solid var(--border);background:var(--bg-deep);border-radius:10px;flex-direction:column;flex:none;height:180px;display:flex;overflow:hidden}.code-console-head{border-bottom:1px solid var(--border);color:var(--muted);align-items:center;gap:.4rem;padding:.3rem .6rem;font-size:.8rem;display:flex}.code-console-body{flex:1;padding:.4rem .6rem;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.8rem;overflow-y:auto}.code-log{white-space:pre-wrap;word-break:break-word;color:var(--text-soft);padding:.1rem 0}.code-log.warn{color:var(--warning)}.code-log.error{color:var(--danger)}.code-log.info{color:var(--accent)}.code-last-submission{color:var(--muted);font-size:.8rem}.code-output{border:1px solid var(--border);background:var(--bg-deep);border-radius:10px;flex-direction:column;flex:none;height:270px;display:flex;overflow:hidden}.code-output-tabs{border-bottom:1px solid var(--border);align-items:center;gap:.25rem;padding:.25rem .4rem 0;display:flex}.code-output-tabs [role=tab]{color:var(--muted);background:0 0;border:none;border-bottom:2px solid #0000;border-radius:6px 6px 0 0;align-items:center;gap:.35rem;padding:.35rem .7rem;font-size:.82rem;display:inline-flex}.code-output-tabs [role=tab].active{color:var(--text);border-bottom-color:var(--accent)}.code-output-tabs .secondary.small{margin-bottom:.25rem}.code-tab-count{text-align:center;background:color-mix(in srgb, var(--muted) 25%, transparent);min-width:1.2rem;color:var(--text-soft);border-radius:999px;padding:0 .3rem;font-size:.7rem}.code-tab-count.bad{background:color-mix(in srgb, var(--danger) 25%, transparent);color:var(--danger)}.code-output-body{flex-direction:column;flex:1;gap:.6rem;min-height:0;padding:.6rem;display:flex;overflow-y:auto}.code-output-body.code-console-body{padding:.4rem .6rem;display:block}.code-verdict{--tone:var(--muted);border:1px solid color-mix(in srgb, var(--tone) 55%, transparent);border-left:4px solid var(--tone);background:color-mix(in srgb, var(--tone) 12%, var(--panel));border-radius:8px;align-items:flex-start;gap:.65rem;padding:.6rem .8rem;display:flex}.code-verdict>svg{color:var(--tone);flex:none;margin-top:.1rem}.code-verdict strong{color:var(--tone);font-size:1rem;display:block}.code-verdict p{color:var(--text-soft);white-space:pre-wrap;word-break:break-word;margin:.15rem 0 0;font-size:.85rem}.code-verdict.ok{--tone:var(--success)}.code-verdict.fail{--tone:var(--danger)}.code-verdict.warn{--tone:var(--warning)}.code-verdict.info,.code-verdict.running{--tone:var(--accent)}.code-verdict.idle strong{color:var(--text)}.code-verdict.submission{animation:.35s ease-out code-pop}.code-verdict .spin{animation:.9s linear infinite spin}@keyframes code-pop{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.code-verdict.submission,.code-verdict .spin{animation:none}}.code-chips{flex-wrap:wrap;gap:.35rem;display:flex}.code-chip{--tone:var(--muted);border:1px solid color-mix(in srgb, var(--tone) 60%, transparent);background:color-mix(in srgb, var(--tone) 14%, transparent);color:var(--tone);border-radius:999px;align-items:center;gap:.25rem;padding:.2rem .55rem;font-size:.78rem;font-weight:600;display:inline-flex}.code-chip.pass{--tone:var(--success)}.code-chip.fail{--tone:var(--danger)}.code-chip.pending{opacity:.6}.code-chip.active{box-shadow:0 0 0 2px var(--tone)}.code-test-detail{--tone:var(--border);border:1px solid var(--border);border-left:4px solid var(--tone);background:var(--panel);border-radius:8px;padding:.5rem .7rem}.code-test-detail.pass{--tone:var(--success)}.code-test-detail.fail{--tone:var(--danger)}.code-test-detail-head{justify-content:space-between;gap:.5rem;margin-bottom:.35rem;font-size:.85rem;display:flex}.code-test-detail dl{grid-template-columns:max-content minmax(0,1fr);gap:.2rem .75rem;margin:0;font-size:.8rem;display:grid}.code-test-detail dt{color:var(--muted)}.code-test-detail dd{white-space:pre-wrap;word-break:break-word;margin:0;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.code-test-detail dd.ok{color:var(--success)}.code-test-detail dd.bad{color:var(--danger)}.code-admin-form{flex-direction:column;gap:1rem;display:flex}.code-admin .quiz-admin-tree ul{flex-direction:column;gap:.25rem;margin:0;padding:0;list-style:none;display:flex}.code-admin .quiz-head h3{margin:0;font-size:1rem}.code-admin .quiz-head button{white-space:nowrap}.code-admin-title{align-items:center;gap:.5rem;display:flex}.code-admin-title h2{margin:0}.code-admin-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.75rem;display:grid}.code-admin-grid .wide{grid-column:1/-1}.code-admin-meta textarea{min-height:140px}.code-admin-editors{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.code-admin-tests{flex-direction:column;gap:.75rem;display:flex}.code-tests-editor{flex-direction:column;gap:.6rem;display:flex}.code-test-edit{border:1px solid var(--border);background:var(--panel);border-radius:8px;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;padding:.6rem;display:grid}.code-test-edit-head{grid-column:1/-1;align-items:center;gap:.5rem;display:flex}.mono,.mono input,.mono textarea{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.code-preview summary{cursor:pointer;color:var(--muted)}.code-preview .code-description{margin-top:.5rem}.code-errors{margin:0;padding-left:1.2rem}.code-notice{color:var(--success)}.code-admin-actions{flex-wrap:wrap}@media (width<=900px){.code-run{grid-template-columns:minmax(0,1fr);align-content:start;overflow-y:auto}.code-brief{min-height:auto;overflow:visible}.code-workspace{min-height:auto}.code-editor-wrap{min-height:320px}.code-admin-editors,.code-test-edit{grid-template-columns:minmax(0,1fr)}}.landing{background:radial-gradient(60rem 30rem at 85% -10%, color-mix(in srgb, var(--accent) 22%, transparent), transparent), radial-gradient(40rem 24rem at -10% 30%, color-mix(in srgb, var(--cards) 14%, transparent), transparent), var(--bg);min-height:100vh;color:var(--text)}.landing main{width:min(1120px,92vw);margin:0 auto}.landing .sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.landing button{justify-content:center;align-items:center;gap:.4rem;display:inline-flex}.landing-top{z-index:10;background:color-mix(in srgb, var(--bg) 82%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:1rem;padding:.75rem max(4vw,50vw - 560px);display:flex;position:sticky;top:0}.landing-logo{display:block}.landing-top-actions{align-items:center;gap:.5rem;display:flex}.landing-hero{grid-template-columns:1.15fr 1fr;align-items:center;gap:3rem;padding:4.5rem 0 3.5rem;display:grid}.landing-eyebrow{border:1px solid color-mix(in srgb, var(--accent) 45%, transparent);background:color-mix(in srgb, var(--accent) 12%, transparent);color:var(--accent);letter-spacing:.02em;border-radius:999px;margin-bottom:1rem;padding:.3rem .75rem;font-size:.8rem;font-weight:600;display:inline-block}.landing-hero h1{color:var(--text-strong);margin:0;font-size:clamp(2.2rem,5vw,3.4rem);line-height:1.08}.landing-hero h1 span{background:linear-gradient(90deg, var(--accent), var(--cards));color:#0000;-webkit-background-clip:text;background-clip:text;display:block}.landing-lead{max-width:36rem;color:var(--text-soft);margin:1.25rem 0 2rem;font-size:1.1rem;line-height:1.6}.landing-hero-actions{flex-wrap:wrap;align-items:center;gap:.75rem 1.25rem;display:flex}.landing .landing-cta{box-shadow:0 12px 30px var(--glow-accent);border-radius:12px;padding:.9rem 1.8rem;font-size:1.1rem;transition:transform .15s,box-shadow .15s}.landing .landing-cta:hover:not(:disabled){box-shadow:0 16px 36px var(--glow-accent);transform:translateY(-2px)}.landing-note,.landing-muted{color:var(--muted)}.landing .error{margin-top:1rem}.landing-hero-art{height:340px;position:relative}.landing-card{--tone:var(--accent);border:2px solid color-mix(in srgb, var(--tone) 70%, transparent);background:linear-gradient(160deg, color-mix(in srgb, var(--tone) 22%, var(--panel)), var(--panel) 60%);border-radius:16px;flex-direction:column;gap:.4rem;width:170px;height:240px;padding:1rem;transition:transform .3s;display:flex;position:absolute;top:50%;left:50%;box-shadow:0 18px 40px #00000059}.landing-card.threat{--tone:var(--danger);transform:translate(-115%,-50%)rotate(-10deg)}.landing-card.infra{--tone:var(--diagram);z-index:1;transform:translate(-50%,-56%)}.landing-card.pattern{--tone:var(--success);transform:translate(15%,-50%)rotate(10deg)}.landing-hero-art:hover .landing-card.threat{transform:translate(-125%,-52%)rotate(-14deg)}.landing-hero-art:hover .landing-card.pattern{transform:translate(25%,-52%)rotate(14deg)}.landing-card-tag{background:color-mix(in srgb, var(--tone) 25%, transparent);color:var(--tone);text-transform:uppercase;letter-spacing:.05em;border-radius:999px;align-self:flex-start;padding:.15rem .5rem;font-size:.7rem;font-weight:700}.landing-card-icon{flex:1;place-items:center;font-family:Segoe UI Emoji,Apple Color Emoji,Noto Color Emoji,sans-serif;font-size:3rem;display:grid}.landing-card strong{color:var(--text-strong)}.landing-card small{color:var(--muted)}.landing-section{border-top:1px solid var(--border);padding:3rem 0}.landing-section h2,.landing-final h2{color:var(--text-strong);margin:0 0 1.5rem;font-size:1.6rem}.landing-steps,.landing-features{gap:1rem;margin:0;padding:0;list-style:none;display:grid}.landing-steps{grid-template-columns:repeat(3,1fr)}.landing-features{grid-template-columns:repeat(4,1fr)}.landing-steps li,.landing-features li,.landing-mode{border:1px solid var(--border);background:var(--panel);border-radius:14px;padding:1.25rem;position:relative}.landing-steps p,.landing-features p,.landing-mode p{color:var(--muted);margin:.4rem 0 0;line-height:1.5}.landing-steps strong,.landing-features strong{margin-top:.75rem;display:block}.landing-step-icon{border-radius:12px;place-items:center;width:44px;height:44px;display:inline-grid}.landing-step-icon.threat{color:var(--danger);background:color-mix(in srgb, var(--danger) 15%, transparent)}.landing-step-icon.energy{color:var(--warning);background:color-mix(in srgb, var(--warning) 15%, transparent)}.landing-step-icon.infra{color:var(--diagram);background:color-mix(in srgb, var(--diagram) 15%, transparent)}.landing-step-num{color:var(--border-strong);font-size:2rem;font-weight:800;position:absolute;top:1rem;right:1.25rem}.landing-features svg{color:var(--accent)}.landing-modes{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.landing-mode{--tone:var(--accent);border-top:4px solid var(--tone)}.landing-mode.cards{--tone:var(--cards)}.landing-mode.quiz{--tone:var(--accent)}.landing-mode svg{color:var(--tone)}.landing-mode h3{margin:.6rem 0 0}.landing-plans{border-collapse:collapse;background:var(--panel);border:1px solid var(--border);border-radius:14px;width:100%;max-width:640px;overflow:hidden}.landing-plans th,.landing-plans td{border-bottom:1px solid var(--border);text-align:center;padding:.75rem 1rem}.landing-plans tbody tr:last-child th,.landing-plans tbody tr:last-child td{border-bottom:none}.landing-plans th[scope=row]{text-align:left;font-weight:500}.landing-plans thead th{color:var(--muted);font-size:.85rem}.landing-yes{color:var(--success)}.landing-no{color:var(--subtle)}.landing-final{text-align:center;border:1px solid color-mix(in srgb, var(--accent) 35%, var(--border));background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 16%, var(--panel)), color-mix(in srgb, var(--cards) 10%, var(--panel)));border-radius:20px;margin:1rem 0 3rem;padding:2.5rem}.landing-final-actions{flex-wrap:wrap;justify-content:center;gap:.75rem;display:flex}.landing-footer{border-top:1px solid var(--border);color:var(--muted);justify-content:center;align-items:center;gap:.6rem;padding:1.5rem;font-size:.85rem;display:flex}@media (width<=900px){.landing-hero{grid-template-columns:1fr;gap:1.5rem;padding-top:2.5rem}.landing-hero-art{height:280px}.landing-steps,.landing-modes{grid-template-columns:1fr}.landing-features{grid-template-columns:1fr 1fr}}@media (width<=520px){.landing-top-actions button:not(.icon-btn){padding:.45rem .7rem}.landing-features{grid-template-columns:1fr}.landing-card{width:130px;height:190px}}@media (prefers-reduced-motion:reduce){.landing-card,.landing .landing-cta{transition:none}}.login-container{background:radial-gradient(circle at top, var(--hover), var(--bg));place-items:center;min-height:100vh;display:grid}.login-card{background:var(--panel);border:1px solid var(--border);text-align:center;border-radius:16px;width:min(380px,92vw);padding:2rem;box-shadow:0 20px 50px #00000073}.login-card h1{margin:0 0 .25rem;font-size:1.6rem;line-height:0}.login-card .subtitle{color:var(--muted);margin:0 0 1.5rem}.login-card form{flex-direction:column;gap:.75rem;display:flex}.form-group{text-align:left;flex-direction:column;gap:.3rem;display:flex}.form-group label{color:var(--muted);font-size:.85rem}.form-group input{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:8px;padding:.6rem .75rem}.login-card .error{color:var(--danger);margin:0;font-size:.9rem}.login-card .hint{color:var(--muted);margin:1.25rem 0 0;font-size:.8rem}.login-card form .hint{text-align:left;margin:0}.login-card .info{color:var(--success,#4ade80);margin:0;font-size:.9rem}.login-links{justify-content:center;gap:1rem;margin-top:1rem;display:flex}.login-links .link{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:0;font-size:.85rem;text-decoration:underline}.login-links{align-items:center}.login-card .login-back{width:fit-content;color:var(--muted);cursor:pointer;background:0 0;border:none;align-items:center;gap:.35rem;margin:-.5rem 0 .75rem;padding:.25rem 0;font-size:.85rem;display:flex}.login-card .login-back:hover,.login-card .login-back:focus-visible{color:var(--text)}.login-links .icon-link{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:.35rem;display:inline-flex;position:relative}.login-links .icon-link:hover,.login-links .icon-link:focus-visible{color:inherit;background:var(--hover)}.login-links .icon-link:after{content:attr(data-hint);color:#fff;white-space:nowrap;pointer-events:none;opacity:0;background:#111;border-radius:4px;padding:.25rem .5rem;font-size:.75rem;transition:opacity .15s;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}.login-links .icon-link:hover:after,.login-links .icon-link:focus-visible:after{opacity:1}
