:root{font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:#05070f}button{font:inherit;color:inherit}.app-shell{min-height:100vh;padding:2rem clamp(1rem,4vw,4rem) 4rem;background:radial-gradient(circle at top,#1b253a,#090d16 65%);color:#f6f8ff;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.hero{max-width:780px;margin:0 auto 2rem;text-align:center}.hero__label{text-transform:uppercase;letter-spacing:.2em;font-size:.75rem;color:#8da2d4;margin-bottom:.5rem}.hero h1{margin:0 0 .75rem;font-size:clamp(1.75rem,4vw,2.5rem)}.hero p{margin:0 auto;max-width:560px;color:#cbd4eb}.panel{margin:0 auto;background:#090f1ce6;border-radius:1.25rem;padding:1.5rem;width:min(960px,100%);box-shadow:0 20px 60px #00000059}.level-picker{margin:0 auto;width:min(960px,100%);background:#090f1ce6;padding:2rem;border-radius:1.5rem;text-align:center;box-shadow:0 20px 60px #00000059}.level-picker__intro h1{margin-bottom:.5rem}.level-picker__intro p{color:#cbd4eb}.level-picker__intro .ghost{margin-top:1rem}.level-grid{margin-top:2rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1.25rem}.level-card{height:140px;border-radius:1rem;border:1px solid #243152;background:#0c1426;color:#f6f8ff;font-size:2rem;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:transform .15s ease,border-color .15s ease,background .15s ease,opacity .15s ease;position:relative}.level-card:hover{transform:translateY(-4px);border-color:#6f8cff;background:#131f3c}.level-card__number{font-weight:700;letter-spacing:.1em}.level-card__status{margin-top:.4rem;font-size:.85rem;color:#9fb0d8}.level-card.is-locked{opacity:.4;cursor:not-allowed;transform:none}.level-card.is-locked:hover{transform:none}.level-card.is-complete{border-color:#58e3b0}.level-card:disabled{cursor:not-allowed}.account-gate{margin:0 auto;width:min(600px,100%);background:#090f1ce6;padding:2rem;border-radius:1.5rem;text-align:center;box-shadow:0 20px 60px #00000059}.account-gate__form{margin-top:1.25rem;display:flex;flex-direction:column;gap:.75rem}.account-gate__form input{padding:.65rem .85rem;border-radius:.65rem;border:1px solid #243152;background:#0c1426;color:#f6f8ff}.account-gate__form button{background:linear-gradient(120deg,#6f8cff,#59d8ff);border:none;border-radius:.65rem;padding:.75rem;font-weight:600;cursor:pointer;color:#051129}.account-gate__error{color:#ff9b8a;margin:0}.account-gate__guest{margin-top:1rem}.panel__header{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;align-items:center}.panel__eyebrow{margin:0 0 .35rem;font-size:.8rem;color:#8da2d4}.panel__level select{background:#121b2e;border-radius:.5rem;border:1px solid #26344f;color:#f6f8ff;padding:.4rem .85rem;font-size:.95rem}.panel__actions{display:flex;gap:.75rem;align-items:center}.panel__actions .status{color:#73f0a0;font-weight:600}.panel__body{margin-top:1.5rem}.panel__hint{margin-top:1rem;color:#99a7c7;font-size:.9rem}.board{display:grid;gap:0;width:min(640px,100%);margin:0 auto;background:#05080f;border-radius:0;padding:0}.tile{position:relative;border:none;border-radius:0;overflow:hidden;cursor:grab;background-color:#11172b;background-repeat:no-repeat;transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease;touch-action:none}.tile[data-selected]{outline:3px solid rgba(124,177,255,.9);outline-offset:-3px}.tile[data-clustered]:after{content:"";position:absolute;inset:-2px;border:3px solid #ffffff;pointer-events:none;box-sizing:border-box;border-radius:4px}.tile[data-clustered][data-cluster-top=true]:after{border-top-color:transparent}.tile[data-clustered][data-cluster-right=true]:after{border-right-color:transparent}.tile[data-clustered][data-cluster-bottom=true]:after{border-bottom-color:transparent}.tile[data-clustered][data-cluster-left=true]:after{border-left-color:transparent}.tile:active{cursor:grabbing;transform:scale(.98)}.modal-backdrop{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:20}.modal{background:#04070f;border:1px solid #2a3147;border-radius:1.25rem;max-width:800px;width:100%;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.5rem;padding:1.5rem}.modal__preview{background:#0b1224;border-radius:1rem;overflow:hidden;display:flex;align-items:center;justify-content:center}.modal__preview img{width:100%;height:auto;display:block}.modal__content h2{margin-top:.35rem;margin-bottom:.5rem}.modal__eyebrow{text-transform:uppercase;letter-spacing:.2em;font-size:.75rem;color:#8da2d4;margin:0}.modal__actions{margin-top:1rem;display:flex;gap:.75rem;flex-wrap:wrap}.modal__actions button{background:#121b2e;border:1px solid #2f3c58;color:#f6f8ff;padding:.5rem 1.25rem;border-radius:.65rem;cursor:pointer}.modal__actions button.primary{background:linear-gradient(120deg,#6f8cff,#59d8ff);border:none;color:#051129;font-weight:600}.modal__actions button:hover{opacity:.85}button.ghost{background:transparent;border:1px solid #38445f;color:#f6f8ff;padding:.4rem .95rem;border-radius:999px;cursor:pointer}button.ghost:hover{border-color:#6f7cac}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}@media(max-width:640px){.panel{padding:1.25rem}.board{width:100%}.modal{grid-template-columns:1fr}}.panel__level-name{margin:0;font-size:clamp(1.25rem,3vw,1.8rem)}.level-generator{margin:0 auto;width:min(960px,100%);background:#090f1ce6;padding:2rem;border-radius:1.5rem;box-shadow:0 20px 60px #00000059}.level-generator__form{display:grid;gap:1rem}.level-generator__form input,.level-generator__form button{padding:.65rem .85rem;border-radius:.65rem;border:1px solid #243152;background:#0c1426;color:#f6f8ff}.level-generator__form button[type=submit]{background:linear-gradient(120deg,#6f8cff,#59d8ff);border:none;color:#051129;font-weight:600;cursor:pointer}.level-generator__preview{width:100%;border-radius:.75rem}.level-generator__status{margin:0;color:#8de1ff}
