/* GENERATED from 'NFS Design System/' tokens + components (fonts loaded in partials/head.php). Re-sync with tools/sync-ds.sh, do not edit by hand; site additions live in site.css. */
/* --- tokens/colors.css --- */
:root{
/* Base palette — from nfs-imposter globals.css + PRD §3.3 */
--ink:#0D0019;--ink-2:#170A2B;--ink-3:#22123A;
--violet:#7F00F8;--violet-deep:#5B00B5;--lilac:#C9A6FF;
--white:#FFFFFF;--mute:#8E7FA8;
--paper:#F5F2FA;--paper-ink:#0D0019;--paper-mute:#5E5372;
--signal:#FF3B5C;
--line:rgba(201,166,255,0.14);
--line-strong:rgba(201,166,255,0.28);
--line-on-violet:rgba(255,255,255,0.24);
--line-on-paper:rgba(13,0,25,0.12);
/* Semantic aliases */
--surface-page:var(--ink);--surface-raised:var(--ink-2);--surface-hover:var(--ink-3);
--surface-feature:var(--violet);--surface-feature-pressed:var(--violet-deep);
--surface-reading:var(--paper);
--text-primary:var(--white);--text-secondary:var(--lilac);--text-tertiary:var(--mute);
--text-on-violet:var(--white);--text-on-paper:var(--paper-ink);--text-on-paper-mute:var(--paper-mute);
--text-link:var(--lilac);--text-urgent:var(--signal);
--action-primary:var(--violet);--action-primary-pressed:var(--violet-deep);
--focus-ring:var(--lilac);
--pattern-on-ink:rgba(201,166,255,0.06);--pattern-on-violet:rgba(255,255,255,0.08);
}

/* --- tokens/typography.css --- */
:root{
--font-sans:"Poppins",system-ui,sans-serif;
--font-mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
/* Mobile scale (base) — PRD §3.4 */
--fs-display:40px;--lh-display:44px;--fs-h1:32px;--lh-h1:38px;--fs-h2:26px;--lh-h2:32px;--fs-h3:20px;--lh-h3:26px;
--fs-body-l:18px;--lh-body-l:28px;--fs-body:16px;--lh-body:26px;--fs-small:14px;--lh-small:22px;
--fs-eyebrow:12px;--lh-eyebrow:16px;--tracking-eyebrow:0.12em;--tracking-display:-0.02em;
--fs-data-s:14px;--fs-data-m:24px;--fs-data-l:40px;--fs-data-xl:64px;
--fw-regular:400;/* @kind font */--fw-medium:500;/* @kind font */--fw-semibold:600;/* @kind font */
/* Desktop scale */
--fs-display-d:80px;--lh-display-d:84px;--fs-h1-d:56px;--lh-h1-d:62px;--fs-h2-d:40px;--lh-h2-d:46px;--fs-h3-d:24px;--lh-h3-d:30px;
--fs-body-l-d:20px;--lh-body-l-d:32px;--fs-body-d:17px;--lh-body-d:28px;--fs-data-xl-d:96px;
/* Long-form reading on paper */
--fs-article:18px;--lh-article:30px;--measure:65ch;
}
@media (min-width:1200px){:root{
--fs-display:var(--fs-display-d);--lh-display:var(--lh-display-d);--fs-h1:var(--fs-h1-d);--lh-h1:var(--lh-h1-d);
--fs-h2:var(--fs-h2-d);--lh-h2:var(--lh-h2-d);--fs-h3:var(--fs-h3-d);--lh-h3:var(--lh-h3-d);
--fs-body-l:var(--fs-body-l-d);--lh-body-l:var(--lh-body-l-d);--fs-body:var(--fs-body-d);--lh-body:var(--lh-body-d);--fs-data-xl:var(--fs-data-xl-d);
}}

/* --- tokens/spacing.css --- */
:root{
--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--space-12:48px;--space-16:64px;--space-24:96px;--space-32:128px;
--gutter:16px;--gutter-tablet:32px;--col-gap:16px;--content-max:1200px;
--section-pad:64px;--section-pad-d:128px;
--header-h:56px;--header-h-d:72px;--control-h:48px;--touch-min:44px;
--radius-control:4px;--radius-media:0;--radius-chip:999px;
--hairline:1px;--rule-active:2px;
--ratio-portrait:4/5;/* @kind other */--ratio-hero:16/9;/* @kind other */--ratio-gallery:3/2;/* @kind other */
}
@media (min-width:1200px){:root{--section-pad:var(--section-pad-d);--header-h:var(--header-h-d);}}

/* --- tokens/motion.css --- */
:root{
--ease-out:cubic-bezier(0.16,1,0.3,1);/* @kind other */
--ease-std:cubic-bezier(0.4,0,0.2,1);/* @kind other */
--dur-fast:150ms;/* @kind other */
--dur-header:200ms;/* @kind other */
--dur-menu:240ms;/* @kind other */
--dur-reveal:400ms;/* @kind other */
--dur-countup:1200ms;/* @kind other */
--stagger:60ms;/* @kind other */
--marquee-speed:40;/* @kind other */
}
@keyframes nfs-rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes nfs-fade{from{opacity:0}to{opacity:1}}
@keyframes nfs-marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes nfs-pulse{0%,100%{opacity:1}50%{opacity:.25}}
@keyframes nfs-sheet{from{transform:translateY(100%)}to{transform:none}}

/* --- tokens/base.css --- */
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;background:var(--ink);color:var(--white);font-family:var(--font-sans);font-size:var(--fs-body);line-height:var(--lh-body);-webkit-font-smoothing:antialiased}
a{color:var(--lilac);text-decoration:none}a:hover{color:var(--white)}
:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
img{display:block;max-width:100%}
.nfs-num{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}
.nfs-display{font-size:var(--fs-display);line-height:var(--lh-display);font-weight:600;letter-spacing:var(--tracking-display);margin:0;text-wrap:balance}
.nfs-h1{font-size:var(--fs-h1);line-height:var(--lh-h1);font-weight:600;letter-spacing:-0.01em;margin:0;text-wrap:balance}
.nfs-h2{font-size:var(--fs-h2);line-height:var(--lh-h2);font-weight:600;margin:0;text-wrap:balance}
.nfs-h3{font-size:var(--fs-h3);line-height:var(--lh-h3);font-weight:500;margin:0}
.nfs-body-l{font-size:var(--fs-body-l);line-height:var(--lh-body-l);margin:0;text-wrap:pretty}
.nfs-body{font-size:var(--fs-body);line-height:var(--lh-body);margin:0;text-wrap:pretty}
.nfs-small{font-size:var(--fs-small);line-height:var(--lh-small);margin:0}
.nfs-eyebrow{font-family:var(--font-mono);font-size:var(--fs-eyebrow);line-height:var(--lh-eyebrow);font-weight:500;letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--lilac)}
.nfs-italic{font-style:italic}
.nfs-rule{height:1px;background:var(--line);border:0;margin:0}
.nfs-wrap{width:100%;max-width:var(--content-max);margin:0 auto;padding:0 var(--gutter)}
.nfs-section{padding:var(--section-pad) 0}
@media (min-width:768px){.nfs-wrap{padding:0 var(--gutter-tablet)}}
.nfs-reveal{animation:nfs-rise var(--dur-reveal) var(--ease-out) both}
@media (prefers-reduced-motion:reduce){.nfs-reveal,.nfs-marquee-track{animation:none!important}}

/* --- components/components.css --- */
/* Component styles — class-based so hover/press/focus and breakpoints work. Values from PRD §3–4 and nfs-imposter DESIGN.md. */
.nfs-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:48px;padding:0 20px;border-radius:var(--radius-control);font:500 16px/1 var(--font-sans);border:1px solid transparent;cursor:pointer;text-decoration:none;white-space:nowrap;transition:background var(--dur-fast) var(--ease-std),color var(--dur-fast),border-color var(--dur-fast);-webkit-tap-highlight-color:transparent}
.nfs-btn:active{transform:translateY(1px)}
.nfs-btn--primary{background:var(--violet);color:var(--white)}.nfs-btn--primary:hover{background:var(--violet-deep);color:var(--white)}
.nfs-btn--secondary{background:transparent;color:var(--white);border-color:var(--white)}.nfs-btn--secondary:hover{background:var(--violet);border-color:var(--violet);color:var(--white)}
.nfs-btn--on-violet{background:var(--white);color:var(--ink)}.nfs-btn--on-violet:hover{background:var(--paper);color:var(--ink)}
.nfs-btn--ghost{background:transparent;color:var(--lilac);border-color:var(--line-strong)}.nfs-btn--ghost:hover{background:var(--ink-3);color:var(--white)}
.nfs-btn--on-paper{background:var(--ink);color:var(--white)}.nfs-btn--on-paper:hover{background:var(--violet);color:var(--white)}
.nfs-btn--sm{height:36px;padding:0 14px;font-size:14px}
.nfs-btn--lg{height:56px;padding:0 28px;font-size:17px}
.nfs-btn--block{display:flex;width:100%}
.nfs-btn--caps{font-family:var(--font-mono);font-size:13px;letter-spacing:.12em;text-transform:uppercase}
.nfs-btn[disabled]{opacity:.4;pointer-events:none}
.nfs-link{display:inline-flex;align-items:baseline;gap:6px;color:var(--lilac);font-weight:500;text-decoration:none;cursor:pointer;background:none;border:0;padding:0;font-family:inherit;font-size:inherit}
.nfs-link:hover{color:var(--white)}.nfs-link .nfs-arrow{font-family:var(--font-mono);transition:transform var(--dur-fast) var(--ease-out)}.nfs-link:hover .nfs-arrow{transform:translateX(3px)}
.nfs-link--mono{font-family:var(--font-mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase}
.nfs-link--on-paper{color:var(--violet-deep)}.nfs-link--on-paper:hover{color:var(--ink)}
.nfs-link--on-violet{color:var(--white);text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}
.nfs-chip{flex:none;display:inline-flex;align-items:center;height:36px;padding:0 16px;border-radius:var(--radius-chip);border:1px solid var(--line-strong);background:transparent;color:var(--white);font:500 12px/1 var(--font-mono);letter-spacing:.06em;cursor:pointer;white-space:nowrap;transition:background var(--dur-fast),border-color var(--dur-fast)}
.nfs-chip:hover{background:var(--ink-3)}.nfs-chip.is-active{background:var(--violet);border-color:var(--violet);color:var(--white)}
.nfs-chip--static{cursor:default}.nfs-chip--static:hover{background:transparent}
.nfs-chip--on-paper{color:var(--ink);border-color:var(--line-on-paper)}.nfs-chip--on-paper:hover{background:rgba(13,0,25,.05)}
.nfs-chips{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding:2px var(--gutter);margin:0 calc(-1 * var(--gutter))}.nfs-chips::-webkit-scrollbar{display:none}
.nfs-field{display:flex;flex-direction:column;gap:8px}
.nfs-field label{font-size:14px;line-height:22px;color:var(--white)}
.nfs-input{height:48px;width:100%;padding:0 14px;border-radius:var(--radius-control);border:1px solid transparent;background:var(--ink-2);color:var(--white);font:400 16px/1.4 var(--font-sans);outline:none;transition:border-color var(--dur-fast)}
textarea.nfs-input{height:auto;min-height:120px;padding:12px 14px;resize:vertical}
.nfs-input::placeholder{color:var(--mute)}.nfs-input:hover{border-color:var(--line-strong)}.nfs-input:focus{border-color:var(--lilac);box-shadow:0 0 0 1px var(--lilac)}
.nfs-field.is-error .nfs-input{border-color:var(--signal)}
.nfs-field__help{font-size:14px;line-height:20px;color:var(--mute)}.nfs-field.is-error .nfs-field__help{color:var(--signal)}
.nfs-acc{border-top:1px solid var(--line)}
.nfs-acc__item{border-bottom:1px solid var(--line)}
.nfs-acc__q{display:flex;width:100%;align-items:center;justify-content:space-between;gap:16px;min-height:64px;padding:16px 0;background:none;border:0;color:var(--white);font:500 16px/24px var(--font-sans);text-align:left;cursor:pointer}
.nfs-acc__plus{flex:none;width:20px;height:20px;position:relative;transition:transform var(--dur-header) var(--ease-out)}
.nfs-acc__plus::before,.nfs-acc__plus::after{content:"";position:absolute;left:50%;top:50%;width:14px;height:1.5px;background:var(--lilac);transform:translate(-50%,-50%)}.nfs-acc__plus::after{transform:translate(-50%,-50%) rotate(90deg)}
.nfs-acc__item.is-open .nfs-acc__plus{transform:rotate(45deg)}
.nfs-acc__a{color:var(--lilac);padding:0 0 20px;font-size:16px;line-height:26px;max-width:62ch}
.nfs-badge{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 8px;font:500 11px/1 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;border:1px solid var(--line-strong);color:var(--lilac);border-radius:2px;white-space:nowrap}
.nfs-badge--upcoming{border-color:var(--violet);background:var(--violet);color:var(--white)}
.nfs-badge--sold-out,.nfs-badge--urgent{border-color:var(--signal);color:var(--signal)}
.nfs-badge--live{border-color:var(--signal);background:var(--signal);color:var(--white)}
.nfs-badge--past{color:var(--mute)}
.nfs-badge--open{border-color:var(--lilac);color:var(--lilac)}
.nfs-dot{width:8px;height:8px;border-radius:50%;background:currentColor;animation:nfs-pulse 1.4s infinite}
.nfs-cd{display:flex;gap:12px;font-family:var(--font-mono)}
.nfs-cd__u{display:flex;flex-direction:column;gap:4px;min-width:44px}
.nfs-cd__n{font-size:24px;line-height:1;font-weight:500;font-variant-numeric:tabular-nums}
.nfs-cd__l{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--lilac)}
.nfs-cd__sep{font-size:24px;line-height:1;color:var(--mute)}
.nfs-cd--large{gap:16px}.nfs-cd--large .nfs-cd__n{font-size:48px}.nfs-cd--large .nfs-cd__sep{font-size:48px}.nfs-cd--large .nfs-cd__l{font-size:12px}.nfs-cd--large .nfs-cd__u{min-width:64px}
@media (min-width:1200px){.nfs-cd--large .nfs-cd__n,.nfs-cd--large .nfs-cd__sep{font-size:80px}.nfs-cd--large .nfs-cd__u{min-width:110px}}
.nfs-on-violet .nfs-cd__l{color:var(--white)}.nfs-on-violet .nfs-cd__sep{color:rgba(255,255,255,.5)}
/* Header */
.nfs-header{position:sticky;top:0;z-index:40;height:var(--header-h);background:var(--ink);border-bottom:1px solid var(--line);transition:transform var(--dur-header) var(--ease-std)}
.nfs-header.is-hidden{transform:translateY(-100%)}
.nfs-header__in{height:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;max-width:1440px;margin:0 auto;padding:0 var(--gutter)}
.nfs-header__right{display:flex;align-items:center;gap:8px}
.nfs-header__nav{display:none;gap:36px;align-items:center}
.nfs-header__lnk{position:relative;display:flex;align-items:center;gap:6px;height:72px;background:none;border:0;color:var(--white);font:500 13px/1 var(--font-sans);letter-spacing:.14em;text-transform:uppercase;cursor:pointer}
.nfs-header__lnk::after{content:"";position:absolute;left:0;right:0;bottom:22px;height:2px;background:var(--violet);transform:scaleX(0);transition:transform var(--dur-fast)}
.nfs-header__lnk.is-active::after,.nfs-header__lnk:hover::after{transform:scaleX(1)}
.nfs-iconbtn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;background:none;border:0;color:var(--white);cursor:pointer;border-radius:var(--radius-control)}.nfs-iconbtn:hover{background:var(--ink-3)}
.nfs-header__desk{display:none}
@media (min-width:1024px){.nfs-header__nav{display:flex}.nfs-header__mob{display:none}.nfs-header__desk{display:inline-flex}.nfs-header__in{padding:0 48px}}
.nfs-mega{position:absolute;left:0;right:0;top:100%;background:var(--ink);border-bottom:1px solid var(--line);animation:nfs-fade var(--dur-fast)}
.nfs-mega__in{max-width:1200px;margin:0 auto;padding:40px 48px 48px;display:grid;grid-template-columns:280px 1fr 280px;gap:48px}
.nfs-mega__items{display:grid;grid-template-columns:1fr 1fr;column-gap:40px;align-content:start}
.nfs-mega__item{display:block;padding:16px 0;border-bottom:1px solid var(--line);color:var(--white);font-size:17px}.nfs-mega__item:hover{color:var(--lilac)}
/* Mobile menu */
.nfs-menu{position:fixed;inset:0;z-index:60;background:var(--ink);display:flex;flex-direction:column;animation:nfs-menu-in var(--dur-menu) var(--ease-out)}
@keyframes nfs-menu-in{from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:none}}
.nfs-menu--contained{position:absolute}
.nfs-menu__top{height:56px;flex:none;display:flex;align-items:center;justify-content:space-between;padding:0 var(--gutter);border-bottom:1px solid var(--line)}
.nfs-menu__list{flex:1;overflow-y:auto;padding:8px var(--gutter)}
.nfs-menu__item{border-bottom:1px solid var(--line)}
.nfs-menu__row{display:flex;width:100%;align-items:center;justify-content:space-between;min-height:72px;background:none;border:0;color:var(--white);font:500 28px/34px var(--font-sans);letter-spacing:-.01em;text-align:left;cursor:pointer;padding:0}
.nfs-menu__row .nfs-chev{transition:transform var(--dur-header)}.nfs-menu__item.is-open .nfs-chev{transform:rotate(180deg)}
.nfs-menu__kids{display:flex;flex-direction:column;padding:0 0 20px}
.nfs-menu__kid{display:block;padding:10px 0;color:var(--lilac);font-size:18px;line-height:26px;background:none;border:0;text-align:left;font-family:inherit;cursor:pointer}.nfs-menu__kid:hover{color:var(--white)}
.nfs-menu__foot{flex:none;padding:16px var(--gutter) 24px;display:flex;flex-direction:column;gap:16px;border-top:1px solid var(--line)}
.nfs-menu__social{display:flex;align-items:center;justify-content:space-between;color:var(--mute);font-size:14px}
/* Footer */
.nfs-footer{background:var(--ink);padding:56px 0 24px;border-top:1px solid var(--line)}
.nfs-footer__grid{display:flex;flex-direction:column;gap:40px}
.nfs-footer__groups{border-top:1px solid var(--line)}
.nfs-footer__g{border-bottom:1px solid var(--line)}
.nfs-footer__gh{display:flex;width:100%;align-items:center;justify-content:space-between;height:56px;background:none;border:0;padding:0;cursor:pointer}
.nfs-footer__gl{display:flex;flex-direction:column;gap:12px;padding:0 0 20px}
.nfs-footer__gl a{color:var(--white);font-size:15px}.nfs-footer__gl a:hover{color:var(--lilac)}
.nfs-footer__base{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:40px;padding-top:20px;border-top:1px solid var(--line);font-size:13px;color:var(--mute)}
.nfs-footer__base a{color:var(--mute)}.nfs-footer__base a:hover{color:var(--white)}
@media (min-width:1024px){.nfs-footer__grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,2fr);gap:64px}.nfs-footer__groups{border:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px}.nfs-footer__g{border:0}.nfs-footer__gh{height:auto;margin-bottom:16px;cursor:default}.nfs-footer__gh .nfs-chev{display:none}.nfs-footer__gl{display:flex!important}}
/* Sub nav + sticky bar */
.nfs-subnav{position:sticky;top:0;z-index:30;background:var(--ink);border-bottom:1px solid var(--line);display:flex;gap:24px;overflow-x:auto;scrollbar-width:none;padding:0 var(--gutter)}.nfs-subnav::-webkit-scrollbar{display:none}
.nfs-subnav__t{flex:none;position:relative;height:48px;background:none;border:0;color:var(--mute);font:500 14px/1 var(--font-sans);cursor:pointer;padding:0}
.nfs-subnav__t:hover{color:var(--white)}.nfs-subnav__t.is-active{color:var(--white)}.nfs-subnav__t.is-active::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--violet)}
.nfs-actionbar{position:sticky;bottom:0;z-index:35;display:flex;align-items:center;gap:12px;padding:12px var(--gutter) calc(12px + env(safe-area-inset-bottom));background:var(--ink-2);border-top:1px solid var(--line);transition:transform var(--dur-header) var(--ease-std)}
.nfs-actionbar.is-hidden{transform:translateY(110%)}
/* Sections */
.nfs-hero{position:relative;overflow:hidden;padding:40px 0 48px}
.nfs-hero--violet{background:var(--violet)}
.nfs-crumbs{display:flex;flex-wrap:wrap;gap:8px;font:500 12px/16px var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--lilac)}
.nfs-hero--violet .nfs-crumbs{color:var(--white)}.nfs-crumbs span[aria-hidden]{color:var(--mute)}.nfs-hero--violet .nfs-crumbs span[aria-hidden]{color:rgba(255,255,255,.6)}
.nfs-sechead{display:flex;flex-direction:column;gap:12px;margin-bottom:32px}
@media (min-width:1024px){.nfs-sechead{flex-direction:row;align-items:flex-end;justify-content:space-between;gap:48px;margin-bottom:48px}}
.nfs-band{background:var(--violet);color:var(--white);position:relative;overflow:hidden}
.nfs-band__in{display:flex;flex-direction:column;gap:24px}
@media (min-width:1024px){.nfs-band__in{flex-direction:row;align-items:center;justify-content:space-between;gap:64px}.nfs-band__in .nfs-btn--block{width:auto}}
.nfs-stats{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line)}
.nfs-stats__i{padding:24px 0;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:6px}
.nfs-stats__i:nth-child(odd){padding-right:16px;border-right:1px solid var(--line)}.nfs-stats__i:nth-child(even){padding-left:16px}
.nfs-stats__n{font:500 var(--fs-data-l)/1 var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.nfs-stats--huge .nfs-stats__n{font-size:var(--fs-data-xl)}
.nfs-stats--violet{border-color:var(--line-on-violet)}.nfs-stats--violet .nfs-stats__i{border-color:var(--line-on-violet)}
@media (min-width:1024px){.nfs-stats{grid-template-columns:repeat(4,1fr)}.nfs-stats__i{padding:32px 24px!important;border-right:1px solid var(--line)}.nfs-stats__i:last-child{border-right:0}.nfs-stats__i:first-child{padding-left:0!important}}
.nfs-numlist{border-top:1px solid var(--line);counter-reset:n}
.nfs-numlist__i{display:grid;grid-template-columns:44px minmax(0,1fr);gap:12px;padding:24px 0;border-bottom:1px solid var(--line)}
.nfs-numlist__n{font:500 14px/26px var(--font-mono);color:var(--lilac)}
.nfs-numlist--cols{border:0}
@media (min-width:1024px){.nfs-numlist--cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px}.nfs-numlist--cols .nfs-numlist__i{grid-template-columns:1fr;border-bottom:0;border-top:1px solid var(--line)}}
.nfs-on-violet .nfs-numlist,.nfs-on-violet .nfs-numlist__i{border-color:var(--line-on-violet)}.nfs-on-violet .nfs-numlist__n{color:var(--white)}
.nfs-marquee{position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 48px,#000 calc(100% - 48px),transparent);mask-image:linear-gradient(90deg,transparent,#000 48px,#000 calc(100% - 48px),transparent)}
.nfs-marquee-track{display:flex;width:max-content;animation:nfs-marquee linear infinite}
.nfs-marquee:hover .nfs-marquee-track,.nfs-marquee:active .nfs-marquee-track{animation-play-state:paused}
.nfs-marquee--rev .nfs-marquee-track{animation-direction:reverse}
.nfs-marquee__logo{flex:none;display:flex;align-items:center;height:28px;margin-right:48px;color:var(--white);opacity:.82;transition:opacity var(--dur-fast)}.nfs-marquee__logo:hover{opacity:1;color:var(--white)}
.nfs-marquee__logo img{height:100%;width:auto;filter:brightness(0) invert(1)}
.nfs-marquee__logo:hover img{filter:none}
.nfs-marquee--static{-webkit-mask-image:none;mask-image:none}.nfs-marquee--static .nfs-marquee-track{animation:none;width:auto;flex-wrap:wrap;justify-content:center;row-gap:24px}
@media (min-width:1024px){.nfs-marquee__logo{height:36px}}
@media (prefers-reduced-motion:reduce){.nfs-marquee{-webkit-mask-image:none;mask-image:none}.nfs-marquee-track{width:auto;flex-wrap:wrap;justify-content:center;row-gap:24px}.nfs-marquee-track>[aria-hidden]{display:none}}
.nfs-ticker{overflow:hidden;height:44px;display:flex;align-items:center;font:500 13px/1 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;white-space:nowrap}
.nfs-ticker--violet{background:var(--violet);color:var(--white)}.nfs-ticker--ink{background:var(--ink);color:var(--lilac);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.nfs-ticker__i{display:inline-flex;gap:8px;align-items:center;padding:0 16px}.nfs-ticker__v{color:var(--white);font-variant-numeric:tabular-nums}
/* Sticky story */
.nfs-story__pin{position:sticky;z-index:2;background:var(--ink);padding:0 0 16px}
.nfs-story__vis{position:relative;aspect-ratio:4/3;background:var(--ink-2);overflow:hidden}
.nfs-story__img{position:absolute;inset:0;transition:opacity var(--dur-reveal) var(--ease-std)}
.nfs-story__step{min-height:60vh;padding:24px 0 24px 20px;border-left:2px solid transparent;opacity:.4;transition:opacity var(--dur-reveal),border-color var(--dur-reveal);display:flex;flex-direction:column;gap:10px}
.nfs-story__step.is-active{opacity:1;border-color:var(--violet)}
@media (min-width:1024px){.nfs-story__grid{display:grid;grid-template-columns:1fr 1fr;gap:64px}.nfs-story__pin{top:120px!important;height:max-content}.nfs-story__step{min-height:70vh;justify-content:center}}
/* Cards */
.nfs-portrait{position:relative;overflow:hidden;background:var(--ink-2)}
.nfs-portrait img{width:100%;height:100%;object-fit:cover}
.nfs-portrait--photo img{filter:saturate(.85)}
.nfs-pcard{display:flex;flex-direction:column;gap:0;background:none;border:0;padding:0;text-align:left;color:inherit;cursor:pointer;font-family:inherit;width:100%}
.nfs-pcard__body{display:flex;flex-direction:column;gap:6px;padding-top:14px}
.nfs-pcard__role{font:500 12px/18px var(--font-mono);color:var(--lilac);letter-spacing:.02em}
.nfs-pcard .nfs-portrait img{transition:transform 600ms var(--ease-out)}.nfs-pcard:hover .nfs-portrait img{transform:scale(1.03)}
.nfs-pcard:hover .nfs-link{color:var(--white)}
.nfs-ecard{display:flex;flex-direction:column;color:inherit;text-decoration:none;border-bottom:1px solid var(--line);padding-bottom:24px}
.nfs-ecard__date{font:500 13px/1 var(--font-mono);letter-spacing:.12em;color:var(--white)}
.nfs-ccard{display:flex;flex-direction:column;gap:12px;color:inherit;text-decoration:none;cursor:pointer}
.nfs-ccard__meta{display:flex;flex-wrap:wrap;gap:6px 12px;font:400 12px/18px var(--font-mono);color:var(--mute);letter-spacing:.04em}
.nfs-ccard--list{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;padding:20px 0;border-bottom:1px solid var(--line)}
.nfs-ccard:hover .nfs-h3{color:var(--lilac)}
.nfs-clamp2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.nfs-clamp3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.nfs-avatars{display:flex}.nfs-avatars>*{border:2px solid var(--ink);margin-left:-10px}.nfs-avatars>*:first-child{margin-left:0}
.nfs-media{position:relative;overflow:hidden;background:var(--ink-2)}
.nfs-media img,.nfs-media video{width:100%;height:100%;object-fit:cover}
.nfs-media__ph{position:absolute;inset:0;display:flex;align-items:flex-end;padding:12px;font:500 11px/1 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--mute)}
/* Ticket */
.nfs-ticket{position:relative;color:var(--white);background:var(--ink-2);-webkit-mask:radial-gradient(circle 14px at 0 var(--tear),#0000 98%,#000) left/51% 100% no-repeat,radial-gradient(circle 14px at 100% var(--tear),#0000 98%,#000) right/51% 100% no-repeat;mask:radial-gradient(circle 14px at 0 var(--tear),#0000 98%,#000) left/51% 100% no-repeat,radial-gradient(circle 14px at 100% var(--tear),#0000 98%,#000) right/51% 100% no-repeat}
.nfs-ticket.nfs-ticket--violet{background:var(--violet)}
.nfs-ticket__perf{border-top:2px dashed rgba(255,255,255,.22);margin:0 22px}
.nfs-ticket.is-soldout{background:var(--ink-2);color:var(--mute)}
.nfs-ticket__stamp{position:absolute;top:38%;left:50%;transform:translate(-50%,-50%) rotate(-8deg);border:2px solid var(--signal);color:var(--signal);font:600 28px/1 var(--font-mono);letter-spacing:.14em;padding:10px 16px}
.nfs-bar{height:4px;background:rgba(255,255,255,.16);position:relative}.nfs-bar>i{position:absolute;inset:0 auto 0 0;background:var(--white)}
.nfs-bar.is-low>i{background:var(--signal)}.nfs-ticket.is-soldout .nfs-bar>i{background:var(--mute)}
/* Profile sheet */
.nfs-sheet-scrim{position:fixed;inset:0;z-index:70;background:rgba(13,0,25,.72);animation:nfs-fade var(--dur-header)}
.nfs-sheet-scrim--contained{position:absolute}
.nfs-sheet{position:absolute;left:0;right:0;bottom:0;top:24px;background:var(--paper);color:var(--paper-ink);overflow-y:auto;animation:nfs-sheet 320ms var(--ease-out)}
.nfs-sheet__close{position:absolute;top:12px;right:12px;z-index:2;width:44px;height:44px;border-radius:50%;background:var(--ink);color:var(--white);border:0;display:flex;align-items:center;justify-content:center;cursor:pointer}
.nfs-sheet__grab{position:absolute;top:8px;left:50%;transform:translateX(-50%);width:40px;height:4px;border-radius:2px;background:rgba(255,255,255,.6);z-index:2}
.nfs-focusbar{display:grid;grid-template-columns:120px minmax(0,1fr);gap:12px;align-items:center;font-size:14px}
.nfs-focusbar__t{height:4px;background:var(--line-on-paper);position:relative}.nfs-focusbar__t>i{position:absolute;inset:0 auto 0 0;background:var(--violet)}
@media (min-width:1024px){.nfs-sheet{top:0;display:grid;grid-template-columns:1fr 1fr;overflow:hidden}.nfs-sheet>.nfs-sheet__media{height:100%}.nfs-sheet>.nfs-sheet__content{overflow-y:auto}}
/* Carousel */
.nfs-rail{display:grid;grid-auto-flow:column;grid-auto-columns:85%;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:0 var(--gutter);margin:0 calc(-1 * var(--gutter));scroll-padding:0 var(--gutter)}.nfs-rail::-webkit-scrollbar{display:none}
.nfs-rail>*{scroll-snap-align:start}
@media (min-width:1024px){.nfs-rail{grid-auto-columns:calc((100% - 32px)/3)}}

/* Layout helpers */
.nfs-grid2,.nfs-grid3{display:grid;gap:32px;grid-template-columns:minmax(0,1fr)}
.nfs-amb-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 12px}
.nfs-about-split{display:grid;grid-template-columns:minmax(0,1fr)}
@media (min-width:768px){.nfs-grid2{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1024px){.nfs-grid3{grid-template-columns:repeat(3,minmax(0,1fr))}.nfs-amb-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.nfs-about-split{grid-template-columns:1fr 1fr}.nfs-timeline{grid-auto-columns:25%!important}}

/* --- ui_kits/website/kit.css --- */
/* Kit-level layout helpers for v1.1 pages (speaker grid, hackathon, launchpad, forms). Tokens only. */
.nfs-sgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 12px}
@media (min-width:768px){.nfs-sgrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:40px 16px}}
@media (min-width:1024px){.nfs-sgrid{grid-template-columns:repeat(4,minmax(0,1fr));gap:48px 24px}}
.nfs-sgcard{all:unset;box-sizing:border-box;cursor:pointer;display:flex;flex-direction:column;min-width:0;height:100%}
.nfs-sgcard__ph{position:relative;overflow:hidden}
.nfs-sgcard__ph .nfs-portrait img{transition:transform 600ms var(--ease-out)}
.nfs-sgcard__sess{position:absolute;left:0;right:0;bottom:0;background:var(--ink);padding:14px 14px 16px;display:flex;flex-direction:column;gap:6px;transform:translateY(101%);transition:transform 240ms var(--ease-out)}
.nfs-sgcard__name{font-size:16px;line-height:22px;font-weight:500;min-height:44px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.nfs-sgcard__role{font:500 11px/16px var(--font-mono);letter-spacing:.02em;color:var(--lilac);min-height:32px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.nfs-sgcard:focus-visible{outline:2px solid var(--focus-ring);outline-offset:4px}
@media (min-width:1024px){.nfs-sgcard__name{font-size:18px;line-height:24px;min-height:48px}.nfs-sgcard__role{font-size:12px;line-height:18px;min-height:36px}}
@media (hover:hover) and (min-width:1024px){.nfs-sgcard:hover .nfs-sgcard__sess,.nfs-sgcard:focus-visible .nfs-sgcard__sess{transform:none}.nfs-sgcard:hover .nfs-portrait img{transform:scale(1.03)}}

/* Hackathon */
.hx-grid2{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}
@media (min-width:768px){.hx-grid2{grid-template-columns:repeat(2,minmax(0,1fr))}}
.hx-people{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 12px}
@media (min-width:1024px){.hx-people{grid-template-columns:repeat(4,minmax(0,1fr));gap:40px 24px}}
.hx-gallery{display:grid;grid-template-columns:minmax(0,1fr);gap:32px}
@media (min-width:768px){.hx-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1024px){.hx-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}}
.hx-phases{display:flex;flex-direction:column}
@media (min-width:1024px){.hx-phases{flex-direction:row}.hx-phases>*{flex:1}}
.hx-podium{display:grid;grid-template-columns:minmax(0,1fr)}
@media (min-width:1024px){.hx-podium{grid-template-columns:2fr 1fr}}
.hx-hero-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:32px}
@media (min-width:1024px){.hx-hero-grid{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);align-items:end;gap:64px}}
.hx-split{display:grid;grid-template-columns:minmax(0,1fr);gap:48px}
@media (min-width:1024px){.hx-split{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:96px}}

/* Launchpad */
.lp-dir{display:flex;flex-direction:column;border-top:1px solid var(--line)}
@media (min-width:1024px){.lp-dir{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;border-top:0}}
.lp-row{all:unset;box-sizing:border-box;cursor:pointer;display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:14px;align-items:start;padding:20px 0;border-bottom:1px solid var(--line)}
.lp-row:hover .lp-name{color:var(--lilac)}
.lp-row__f{display:flex;align-items:center}
@media (min-width:1024px){.lp-dir .lp-row{grid-template-columns:minmax(0,1fr);gap:16px;padding:24px;border:1px solid var(--line);align-content:start}.lp-dir .lp-row__f{order:9;padding-top:16px;border-top:1px solid var(--line)}.lp-dir .lp-row:hover{background:var(--ink-2)}}
.lp-feature{display:grid;grid-template-columns:minmax(0,1fr)}
@media (min-width:1024px){.lp-feature{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}}
.lp-founder{display:grid;grid-template-columns:minmax(0,1fr);gap:24px}
@media (min-width:768px){.lp-founder{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:48px;align-items:start}}
.lp-hero{display:grid;grid-template-columns:minmax(0,1fr);gap:40px}
@media (min-width:1024px){.lp-hero{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:96px;align-items:center}}
.lp-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--line)}
.lp-metrics>*{padding:20px 0;border-bottom:1px solid var(--line)}
@media (min-width:1024px){.lp-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* Forms (public) */
.fm-choice{all:unset;box-sizing:border-box;cursor:pointer;display:grid;grid-template-columns:20px minmax(0,1fr);gap:12px;align-items:start;min-height:48px;padding:13px 14px;border:1px solid var(--line-strong);border-radius:var(--radius-control);font-size:15px;line-height:22px}
.fm-choice.is-on{border-color:var(--violet);box-shadow:inset 0 0 0 1px var(--violet);background:var(--ink-2)}
.fm-choice:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
.fm-box{width:18px;height:18px;margin-top:2px;border:1px solid var(--line-strong);display:grid;place-items:center}
.fm-choice.is-on .fm-box{background:var(--violet);border-color:var(--violet)}
.fm-err .nfs-input,.fm-err .fm-choice{border-color:var(--signal)!important}

/* Sponsor band (4.3): one placement + spacing everywhere */
.nfs-sponsors{padding:40px 0 48px;border-top:1px solid var(--line)}
@media (min-width:1024px){.nfs-sponsors{padding:56px 0 64px}}
.nfs-sponsors+footer,.nfs-sponsors+.nfs-footer{border-top:0}
.lp-tracks{display:grid;grid-template-columns:minmax(0,1fr);gap:20px}@media (min-width:768px){.lp-tracks{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}}

