:root{--foreground:var(--color-base-content);--card:var(--color-base-100);--muted:var(--color-base-200);--muted-foreground:oklch(52% .022 264);--border:var(--color-base-300);--primary-foreground:var(--color-primary-content);--font-sans:"Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--font-display:"Space Grotesk", "Inter", system-ui, sans-serif;--shadow-md:0 4px 8px -2px oklch(0% 0 0/.08), 0 2px 4px -2px oklch(0% 0 0/.05);--shadow-lg:0 10px 24px -8px oklch(0% 0 0/.12), 0 4px 8px -4px oklch(0% 0 0/.06)}:root.dark{--muted-foreground:oklch(70% .014 248);--border:oklch(38% .015 255)}.sn-landing .font-display{font-family:var(--font-display)}.sn-landing .mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.sn-landing ::selection{background:color-mix(in oklab, var(--color-primary) 28%, transparent);color:var(--foreground)}.sn-landing .hl-sweep{color:oklch(98% .02 80);isolation:isolate;z-index:0;white-space:nowrap;margin:0 .04em;padding:0 .16em;display:inline-block;position:relative}.sn-landing .hl-sweep:before{content:"";background:linear-gradient(108deg, color-mix(in oklab, var(--color-primary) 92%, black) 0%, var(--color-primary) 55%, color-mix(in oklab, var(--color-primary) 88%, white) 100%);box-shadow:0 10px 28px -10px color-mix(in oklab, var(--color-primary) 65%, transparent);z-index:-1;border-radius:7px;position:absolute;inset:9% -2% 6%;transform:rotate(-1deg)skew(-3deg)}.sn-btn{letter-spacing:-.005em;white-space:nowrap;cursor:pointer;border:1px solid #0000;border-radius:12px;justify-content:center;align-items:center;height:44px;padding:0 22px;font-size:14px;font-weight:600;text-decoration:none;transition:background .15s,border-color .15s,box-shadow .15s,transform .15s;display:inline-flex}.sn-btn-lg{height:48px;padding:0 26px;font-size:15px}.sn-btn-sm{height:40px;padding:0 18px;font-size:13.5px}.sn-btn-primary{background:var(--color-primary);color:var(--color-primary-content);box-shadow:0 1px 0 #ffffff2e inset, 0 4px 12px -4px color-mix(in oklab, var(--color-primary) 55%, transparent)}.sn-btn-primary:hover{background:color-mix(in oklab, var(--color-primary) 92%, black)}.sn-btn-primary:active{transform:translateY(1px)}.sn-btn-secondary{background:var(--color-base-100);color:var(--color-base-content);border-color:var(--color-base-300);box-shadow:0 1px 2px oklch(0% 0 0/.04)}.sn-btn-secondary:hover{border-color:color-mix(in oklab, var(--color-base-content) 22%, transparent)}.sn-btn-secondary:active{transform:translateY(1px)}.sn-landing .card-surface{background:color-mix(in oklab, var(--card) 96%, transparent);border:1px solid color-mix(in oklab, var(--border) 80%, transparent);-webkit-backdrop-filter:blur(12px);box-shadow:var(--shadow-lg);border-radius:18px}.sn-landing .card-head{border-bottom:1px solid color-mix(in oklab, var(--border) 70%, transparent);justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.sn-landing .card-head-title{letter-spacing:-.005em;white-space:nowrap;align-items:center;gap:8px;font-size:13px;font-weight:600;display:inline-flex}.sn-landing .card-head-title svg{color:var(--muted-foreground)}.sn-landing .float{transform:rotate(var(--rot,0deg)) translate3d(0, 0, 0);will-change:transform;animation:float-y var(--dur,8s) ease-in-out var(--delay,0s) infinite}.sn-landing .float-1{--dur:7s;--delay:-1.2s;--amp:6px}.sn-landing .float-2{--dur:9s;--delay:-3.4s;--amp:8px}.sn-landing .float-3{--dur:8s;--delay:-2.1s;--amp:7px}.sn-landing .float-4{--dur:10s;--delay:-4.8s;--amp:5px}@keyframes float-y{0%,to{transform:rotate(var(--rot,0deg)) translate3d(0, calc(var(--amp) * -1), 0)}50%{transform:rotate(var(--rot,0deg)) translate3d(0, var(--amp), 0)}}@media (prefers-reduced-motion:reduce){.sn-landing .float{transform:rotate(var(--rot,0deg));animation:none}}.sn-landing .block-grid{grid-template-columns:repeat(3,1fr);gap:7px;display:grid}.sn-landing .block-tile{--h:270;--tile-fill:oklch(92% .05 var(--h));--tile-border:oklch(72% .13 var(--h));--tile-ink:oklch(42% .16 var(--h));background:var(--tile-fill);border:1.5px solid var(--tile-border);color:var(--tile-ink);text-align:center;border-radius:12px;flex-direction:column;align-items:center;gap:5px;padding:11px 6px 10px;display:flex}:root.dark .sn-landing .block-tile{--tile-fill:oklch(30% .06 var(--h));--tile-border:oklch(48% .13 var(--h));--tile-ink:oklch(84% .11 var(--h))}.sn-landing .block-tile-icon{display:inline-flex}.sn-landing .block-tile-label{letter-spacing:-.01em;color:inherit;font-size:10.5px;font-weight:600}.sn-landing .program-row{--h:235;--row-fill:oklch(95% .03 var(--h));--row-border:oklch(80% .1 var(--h));--row-ink:oklch(45% .16 var(--h));background:var(--row-fill);border:1px solid var(--row-border);border-radius:10px;grid-template-columns:14px auto 1fr auto auto;align-items:center;gap:8px;padding:7px 10px;font-size:11px;display:grid}:root.dark .sn-landing .program-row{--row-fill:oklch(28% .05 var(--h));--row-border:oklch(48% .12 var(--h));--row-ink:oklch(84% .11 var(--h))}.sn-landing .program-row .program-name{color:var(--row-ink);font-size:11px;font-weight:700}.sn-landing .program-drag{color:var(--muted-foreground);letter-spacing:-1px;writing-mode:vertical-rl;font-size:10px;line-height:1}.sn-landing .program-params{color:var(--muted-foreground);font-size:9.5px;font-family:var(--font-mono)}.sn-landing .program-close{text-align:center;width:14px;height:14px;color:var(--muted-foreground);font-size:13px;line-height:12px}.sn-landing .status-badge{border:1px solid color-mix(in oklab, var(--color-success) 35%, transparent);background:color-mix(in oklab, var(--color-success) 12%, transparent);color:var(--color-success);letter-spacing:.04em;text-transform:uppercase;border-radius:9999px;align-items:center;gap:6px;padding:3px 8px;font-size:10.5px;font-weight:600;display:inline-flex}.sn-landing .status-badge .dot{background:var(--color-success);width:6px;height:6px;box-shadow:0 0 0 3px color-mix(in oklab, var(--color-success) 18%, transparent);border-radius:9999px;animation:1.8s ease-in-out infinite status-pulse}@keyframes status-pulse{0%,to{opacity:1}50%{opacity:.5}}
