.noir{--n-canvas:#0c0b0f;--n-canvas-2:#121017;--n-surface:#17151d;--n-raised:#1f1c27;--n-line:#f5f1ea17;--n-line-2:#f5f1ea29;--n-fg:#f5f1ea;--n-muted:#a39daf;--n-faint:#6f6a7c;--n-saffron:#f5a524;--n-terra:#f0603c;--n-violet:#8b7bff;--n-mint:#3fd9a4;--n-grad:linear-gradient(100deg, var(--n-saffron), var(--n-terra));--n-ease:cubic-bezier(.22, 1, .36, 1);--n-spring:cubic-bezier(.34, 1.56, .64, 1);background:var(--n-canvas);color:var(--n-fg);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.noir ::selection{background:var(--n-terra);color:#fff}.n-card{border:1px solid var(--n-line);transition:border-color .3s var(--n-ease), transform .4s var(--n-ease);background:linear-gradient(#f5f1ea0a,#f5f1ea03);border-radius:20px;position:relative;overflow:hidden}.n-card:before{content:"";opacity:0;transition:opacity .35s var(--n-ease);background:radial-gradient(260px circle at var(--mx,50%) var(--my,50%), #f5a52424, transparent 65%);pointer-events:none;position:absolute;inset:-1px}.n-card:hover{border-color:var(--n-line-2)}.n-card:hover:before{opacity:1}.n-glass{background:color-mix(in srgb, var(--n-canvas) 72%, transparent);-webkit-backdrop-filter:blur(16px)saturate(1.4);backdrop-filter:blur(16px)saturate(1.4)}.n-grad-text{background:var(--n-grad);color:#0000;-webkit-background-clip:text;background-clip:text}.n-eyebrow{letter-spacing:.26em;color:var(--n-muted);font-size:11px;font-weight:900}.n-mesh{pointer-events:none;filter:blur(28px);background:radial-gradient(38rem 30rem at 78% 18%,#f5a52433,#0000 62%),radial-gradient(34rem 28rem at 22% 12%,#f0603c29,#0000 60%),radial-gradient(40rem 34rem at 50% 90%,#8b7bff29,#0000 62%);animation:18s ease-in-out infinite n-breathe;position:absolute;inset:-30% -10%}@keyframes n-breathe{0%,to{opacity:.85;transform:scale(1)rotate(0)}50%{opacity:1;transform:scale(1.14)rotate(6deg)}}.n-grid{background-image:linear-gradient(#f5f1ea09 1px,#0000 1px),linear-gradient(90deg,#f5f1ea09 1px,#0000 1px);background-size:64px 64px;-webkit-mask-image:radial-gradient(70% 60% at 50% 40%,#000,#0000);mask-image:radial-gradient(70% 60% at 50% 40%,#000,#0000)}.n-rule{background:linear-gradient(90deg, transparent, var(--n-line-2) 20%, var(--n-line-2) 80%, transparent);height:1px}.n-btn{cursor:pointer;transition:transform .25s var(--n-spring), box-shadow .3s var(--n-ease);border-radius:999px;align-items:center;gap:.5rem;padding:1rem 2rem;font-weight:900;display:inline-flex;position:relative;overflow:hidden}.n-btn-primary{background:var(--n-grad);color:#1a0d06;box-shadow:0 18px 44px -18px #f0603cbf}.n-btn-primary:hover{transform:translateY(-2px)scale(1.02);box-shadow:0 26px 60px -18px #f0603ce6}.n-btn-primary:after{content:"";pointer-events:none;background:linear-gradient(90deg,#0000,#ffffff73,#0000);width:38%;animation:4.5s ease-in-out infinite n-sweep;position:absolute;top:0;bottom:0}@keyframes n-sweep{0%{transform:translate(-160%)skew(-16deg)}55%,to{transform:translate(320%)skew(-16deg)}}.n-btn-ghost{border:1px solid var(--n-line-2);color:var(--n-fg);background:#f5f1ea08}.n-btn-ghost:hover{background:#f5f1ea14;transform:translateY(-2px)}.noir a:focus-visible,.noir button:focus-visible{outline:2px solid var(--n-saffron);outline-offset:3px;border-radius:999px}.noir .kbd{border-color:var(--n-line-2);background:var(--n-raised);color:var(--n-fg)}.n-reveal{opacity:0;transition:opacity .85s var(--n-ease), transform .85s var(--n-ease);transform:translateY(28px)}.n-reveal[data-show="1"]{opacity:1;transform:none}@keyframes n-rise{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}.n-rise{animation:n-rise .9s var(--n-ease) both}@keyframes n-float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.n-float{animation:7s ease-in-out infinite n-float}.n-marquee{width:max-content;animation:34s linear infinite n-slide;display:flex}.noir[dir] .n-marquee:hover,.n-marquee:hover{animation-play-state:paused}@keyframes n-slide{0%{transform:translate(0)}to{transform:translate(-50%)}}@keyframes n-ring{0%{stroke-dashoffset:176px}to{stroke-dashoffset:0}}.n-tilt{transform-style:preserve-3d;transition:transform .5s var(--n-ease);will-change:transform}@media (prefers-reduced-motion:reduce){.noir *,.noir :before,.noir :after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.n-reveal{opacity:1;transform:none}.n-tilt{transform:none!important}}
