.lab-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--s-6)}.lab-card{background:var(--bg-surface);border:1px solid var(--stroke-1);border-radius:var(--r-lg);overflow:hidden;display:flex;flex-direction:column;transition:transform var(--dur-slow) var(--ease-out),box-shadow var(--dur-slow) var(--ease-out),border-color var(--dur-base) var(--ease-out);text-decoration:none;color:inherit;font-family:var(--font-display)}.lab-card--active:hover{transform:translateY(-2px);box-shadow:var(--shadow-card-hover);border-color:var(--stroke-3)}.lab-card--locked{opacity:.72;cursor:default}.card-face{height:148px;position:relative;overflow:hidden}.card-face--park{background:var(--tile-park)}.card-face--lantern{background:var(--tile-lantern)}.card-face--snow{background:var(--tile-snow)}.card-face--brass{background:var(--tile-brass)}.card-face--pine{background:var(--tile-pine)}.card-face--dusk{background:var(--tile-dusk)}.face-img--cover{width:100%;height:100%;object-fit:cover;object-position:center 45%;display:block}.face-img--contain{width:auto;max-width:70%;max-height:75%;object-fit:contain;object-position:center;display:block;margin:auto;position:absolute;inset:0}.status-badge{position:absolute;top:10px;right:10px;display:inline-flex;align-items:center;gap:6px;padding:4px 9px;border-radius:var(--r-pill);font-size:11px;font-weight:500;background:#ffffffeb;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);white-space:nowrap}.badge--live{color:#1f5e32;border:1px solid rgba(31,94,50,.18)}.badge--live .badge-dot{background:var(--status-live)}.badge--invite{color:var(--accent-deep);border:1px solid rgba(139,31,25,.2)}.badge--invite .badge-dot{background:var(--accent)}.badge--coming{color:#6e4612;border:1px solid rgba(110,70,18,.2)}.badge--coming .badge-dot{background:var(--status-coming)}.badge-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.lock-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#0000001f}.lock-icon{width:32px;height:32px;color:#fffc;filter:drop-shadow(0 1px 2px rgba(0,0,0,.3))}.card-body{padding:var(--s-5) var(--s-5) var(--s-6);display:flex;flex-direction:column;gap:var(--s-2);flex:1}.card-title{font-size:var(--size-h4);font-weight:600;color:var(--ink-1);letter-spacing:var(--track-tight);line-height:var(--lh-snug)}.card-desc{font-size:var(--size-small);color:var(--ink-3);line-height:var(--lh-normal)}.card-version{margin-top:auto;font-family:var(--font-mono);font-size:var(--size-caption);color:var(--ink-4)}.auth-btn{display:inline-flex;align-items:center;justify-content:center;height:34px;padding:0 var(--s-4);border-radius:var(--r-md);font-family:var(--font-display);font-size:var(--size-small);font-weight:500;text-decoration:none;cursor:pointer;border:none;transition:background var(--dur-base) var(--ease-out),color var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out)}.auth-btn--primary{background:var(--accent);color:var(--ink-on-accent)}.auth-btn--primary:hover{background:var(--accent-hover)}.auth-btn--primary:active{background:var(--accent-press)}.auth-btn--secondary{background:transparent;color:var(--ink-2);border:1px solid var(--stroke-1)}.auth-btn--secondary:hover{background:var(--bg-elev-1);color:var(--ink-1)}.hero[data-astro-cid-j7pv25f6]{padding:0 0 var(--s-9)}.hero-plate[data-astro-cid-j7pv25f6]{font-size:12px;letter-spacing:var(--track-caps);text-transform:uppercase;color:var(--ink-3);font-weight:600;margin-bottom:var(--s-4);display:inline-flex;align-items:center;gap:10px}.plate-dot[data-astro-cid-j7pv25f6]{width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.hero-wordmark[data-astro-cid-j7pv25f6]{font-size:clamp(48px,7vw,88px);font-weight:500;color:var(--ink-1);letter-spacing:-.025em;line-height:var(--lh-tight);margin-bottom:var(--s-5);font-family:var(--font-display)}.hero-accent[data-astro-cid-j7pv25f6]{font-family:var(--font-serif);font-style:italic;font-weight:400;color:var(--ink-1)}.hero-tagline[data-astro-cid-j7pv25f6]{font-family:var(--font-serif);font-style:italic;font-size:22px;color:var(--ink-2);font-weight:400;max-width:640px;line-height:1.4}
