:root{color-scheme:dark;--bg:#08090b;--panel:#14161c;--panel-muted:#1b1e26;--text:#e8ebf2;--text-muted:#9ea5b8;--accent:#6f9cff;--accent-strong:#4c82ff;--danger:#ff7f7f;--border:#2a3040}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at top,#111729,var(--bg) 55%);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}.page-shell{min-height:100vh;padding:32px;display:flex;flex-direction:column;gap:24px}.hero{max-width:900px}.hero h1{margin:0;font-size:clamp(1.75rem,3.4vw,2.75rem)}.hero p{margin-top:10px;color:var(--text-muted);max-width:850px}.eyebrow{margin:0 0 10px;color:#b8c6f3;text-transform:uppercase;letter-spacing:.08em;font-size:.75rem;font-weight:600}.game-grid{min-height:760px;display:grid;grid-template-columns:320px 1fr 320px;grid-gap:16px;gap:16px}.game-shell{display:flex;flex-direction:column;gap:14px}.level-selector{padding:14px 16px}.level-selector-header{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}.level-selector-header h2{margin:0;font-size:1.05rem}.level-selector-header p{margin:0;color:var(--text-muted);font-size:.9rem}.level-list{list-style:none;margin:12px 0 0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-gap:10px;gap:10px}.level-card{width:100%;border:1px solid var(--border);background:#1f2532;border-radius:10px;padding:10px 12px;text-align:left;display:flex;flex-direction:column;gap:7px}.level-card-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.level-card p{margin:0;font-size:.82rem;line-height:1.3;color:var(--text)}.level-card small{color:var(--text-muted);font-size:.75rem}.level-status{font-size:.72rem;color:#c9d9ff;text-transform:uppercase;letter-spacing:.05em}.level-card.is-selected{border-color:#86aeff;box-shadow:inset 0 0 0 1px #86aeff}.level-card.is-complete .level-status{color:#80dea1}.level-card.is-locked{opacity:.66}.panel{border:1px solid var(--border);border-radius:14px;background:linear-gradient(180deg,var(--panel),var(--panel-muted));padding:16px}.requirements-panel,.score-panel{overflow-y:auto}.requirements-panel h2,.score-panel h2{margin:0 0 8px;font-size:1.1rem}.requirements-panel h3,.score-panel h3{margin:14px 0 6px;font-size:.95rem}.requirements-panel ul,.score-panel ul{margin:8px 0 0;padding-left:18px}.requirements-panel li,.score-panel li{margin-bottom:6px;color:var(--text-muted)}.workspace-column{display:flex;flex-direction:column;gap:10px;min-width:0}.workspace-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.workspace-header h2{margin:0}.actions{display:flex;gap:8px}button{border:1px solid transparent;border-radius:10px;padding:10px 14px;color:var(--text);background:#242b38;cursor:pointer;font-weight:600}button:disabled{opacity:.65;cursor:not-allowed}.primary-btn{background:linear-gradient(180deg,var(--accent),var(--accent-strong))}.secondary-btn{background:#272c39;border-color:#3a4254}.error-text{margin:0;color:var(--danger);font-weight:600}.workspace-body{min-height:0;flex:1 1;display:grid;grid-template-columns:260px 1fr;grid-gap:12px;gap:12px}.palette-panel{min-height:0;overflow-y:auto}.palette-list{list-style:none;margin:10px 0 0;padding:0;gap:10px}.palette-item,.palette-list{display:flex;flex-direction:column}.palette-item{width:100%;text-align:left;border:1px solid var(--border);background:#202534;gap:8px}.palette-item-row{display:flex;align-items:center;gap:10px}.palette-item-title{font-size:.88rem}.palette-item-shape.architecture-node-skin{min-width:44px;width:44px;height:28px;padding:0;box-shadow:none}.palette-item p{margin:0;color:var(--text-muted);font-size:.8rem;font-weight:500}.palette-help{margin:12px 0 0;color:var(--text-muted);font-size:.85rem}.canvas-panel{border:1px solid var(--border);border-radius:14px;overflow:hidden;background:#0f121a}.react-flow__node-architecture{background:transparent;border:0;padding:0;width:auto}.architecture-node{position:relative}.architecture-node-skin{min-width:152px;padding:11px 14px;border:1px solid #46547a;color:#edf3ff;text-align:center;line-height:1.2;font-weight:680;box-shadow:0 8px 18px rgba(3,9,24,.36);transition:transform .13s ease,box-shadow .13s ease}.architecture-node:hover .architecture-node-skin{transform:translateY(-1px)}.architecture-node.is-selected .architecture-node-skin{box-shadow:0 0 0 2px rgba(150,189,255,.84),0 12px 24px rgba(3,8,22,.44)}.architecture-node-label{margin:0;font-size:.82rem}.architecture-handle{width:10px;height:10px;border:2px solid #d9e5ff;background:#6f99ff;border-radius:999px;z-index:3}.node-client{border-radius:999px;background:linear-gradient(135deg,#3f5ba3,#2f4b89)}.node-cdn{border-radius:0;background:linear-gradient(135deg,#2e5d8e,#224872);-webkit-clip-path:polygon(8% 0,92% 0,100% 22%,100% 78%,92% 100%,8% 100%,0 78%,0 22%);clip-path:polygon(8% 0,92% 0,100% 22%,100% 78%,92% 100%,8% 100%,0 78%,0 22%)}.node-load-balancer{border-radius:14px;border-style:dashed;background:repeating-linear-gradient(-45deg,#2a3f6f,#2a3f6f 10px,#334d87 0,#334d87 20px)}.node-api-gateway{border-radius:10px;background:linear-gradient(135deg,#3d3d77,#2d2d61);-webkit-clip-path:polygon(6% 0,94% 0,100% 50%,94% 100%,6% 100%,0 50%);clip-path:polygon(6% 0,94% 0,100% 50%,94% 100%,6% 100%,0 50%)}.node-cache{border-radius:26px 26px 14px 14px;background:linear-gradient(135deg,#285c5c,#1f4747)}.node-sql-database{border-radius:999px/28px;background:linear-gradient(180deg,#35514a,#273f3a)}.node-nosql-database{border-radius:0;background:linear-gradient(135deg,#5d3a67,#452952);-webkit-clip-path:polygon(0 10%,8% 0,16% 10%,24% 0,32% 10%,40% 0,48% 10%,56% 0,64% 10%,72% 0,80% 10%,88% 0,96% 10%,100% 18%,100% 82%,92% 100%,84% 90%,76% 100%,68% 90%,60% 100%,52% 90%,44% 100%,36% 90%,28% 100%,20% 90%,12% 100%,4% 90%,0 82%);clip-path:polygon(0 10%,8% 0,16% 10%,24% 0,32% 10%,40% 0,48% 10%,56% 0,64% 10%,72% 0,80% 10%,88% 0,96% 10%,100% 18%,100% 82%,92% 100%,84% 90%,76% 100%,68% 90%,60% 100%,52% 90%,44% 100%,36% 90%,28% 100%,20% 90%,12% 100%,4% 90%,0 82%)}.node-queue{border-radius:10px;border-style:dashed;background:linear-gradient(135deg,#6a4a2f,#4f3722);-webkit-clip-path:polygon(0 0,86% 0,100% 50%,86% 100%,0 100%,10% 50%);clip-path:polygon(0 0,86% 0,100% 50%,86% 100%,0 100%,10% 50%)}.node-object-storage{border-radius:10px;background:linear-gradient(135deg,#3e4f73,#2f3d59);-webkit-clip-path:polygon(0 18%,12% 0,88% 0,100% 18%,100% 100%,0 100%);clip-path:polygon(0 18%,12% 0,88% 0,100% 18%,100% 100%,0 100%)}.score-total{margin:0;font-size:2.2rem;font-weight:700}.score-subtitle{margin:4px 0 0;color:var(--text-muted)}.category-block{margin-top:14px;border-top:1px solid var(--border);padding-top:12px}.category-block p{margin:0;font-weight:650}.score-placeholder{margin:8px 0 0;color:var(--text-muted)}@media (max-width:1200px){.level-list{grid-template-columns:repeat(2,minmax(0,1fr))}.game-grid,.workspace-body{grid-template-columns:1fr}}@media (max-width:760px){.level-list{grid-template-columns:1fr}}