/* =====================================================================
   ncd.css — NCD Alliance Association  ·  LIGHT THEME
   ~70% white / light surfaces, with a few deep-navy accent bands
   (stats, community, CTA, footer) marked with the .dark class.
   Sections: 01 tokens · 02 base · 03 utilities & buttons · 04 preloader
   05 header & nav · 06 heroes · 07 cards · 08 home sections
   09 inner pages · 10 gallery · 11 forms · 12 footer · 13 motion · 14 responsive
   ===================================================================== */

/* ---------- 01 TOKENS ---------- */
:root{
  --bg:#FFFFFF; --bg-soft:#F6F8FD; --bg-tint:#EEF3FC;
  --surface:#FFFFFF; --surface-2:#F7F9FD;
  --line:#E3E8F3; --line-2:#CFD8EA;
  --text:#0B1530; --text-2:#28334F; --muted:#5A6684; --faint:#8C96B0;
  --red:#E11D48; --violet:#7C3AED; --blue:#0EA5E9; --green:#059669;
  --accent:#0E7EC2;
  --grad:linear-gradient(115deg,#E11D48 0%,#7C3AED 52%,#0EA5E9 100%);
  --grad-soft:linear-gradient(115deg,rgba(225,29,72,.08),rgba(124,58,237,.08),rgba(14,165,233,.08));
  --shadow-sm:0 2px 8px -2px rgba(15,30,70,.08);
  --shadow:0 18px 40px -22px rgba(15,30,70,.28), 0 2px 6px -2px rgba(15,30,70,.06);
  --shadow-lg:0 34px 70px -30px rgba(40,30,120,.38);
  --head:'Sora','Segoe UI',sans-serif;
  --sans:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --mono:'JetBrains Mono',ui-monospace,Consolas,monospace;
  --ease:cubic-bezier(.19,1,.22,1);
  --radius:20px; --header-h:80px;
}
/* dark accent bands re-map the same tokens */
#ncd .dark{
  --bg:#071026; --surface:rgba(255,255,255,.05); --surface-2:rgba(255,255,255,.03);
  --line:rgba(160,180,255,.16); --line-2:rgba(160,180,255,.28);
  --text:#F1F5FF; --text-2:#D3DBF0; --muted:#A3AECB; --faint:#7581A3;
  --accent:#5FD4FF; --green:#4ADE9F;
  --shadow:0 20px 40px -24px rgba(0,0,0,.7);
  color:var(--text);
}

/* ---------- 02 BASE ---------- */
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth; scroll-padding-top:calc(var(--header-h) + 16px);}
html,body{margin:0; padding:0; background:#fff;}
body{font-family:var(--sans); color:var(--text); line-height:1.65; -webkit-font-smoothing:antialiased; overflow-x:hidden;}
body.nav-open{overflow:hidden;}
#ncd{position:relative; overflow-x:clip; background:var(--bg);}
#ncd img,#ncd svg{max-width:100%; display:block;}
#ncd img{height:auto;}
#ncd a{color:inherit; text-decoration:none;}
#ncd button{font-family:inherit; cursor:pointer; background:none; border:none; color:inherit; padding:0;}
#ncd h1,#ncd h2,#ncd h3,#ncd h4,#ncd h5{font-family:var(--head); font-weight:600; color:var(--text); line-height:1.12; letter-spacing:-.02em; margin:0;}
#ncd h1{font-size:clamp(36px,4.5vw,62px); font-weight:700; letter-spacing:-.035em;}
#ncd h2{font-size:clamp(28px,3.5vw,44px); letter-spacing:-.03em;}
#ncd h3{font-size:20px;}
#ncd p{margin:0; color:var(--muted); font-size:16px;}
#ncd ul{margin:0; padding:0; list-style:none;}
#ncd [hidden]{display:none !important;}
#ncd figure{margin:0;}
::selection{background:rgba(124,58,237,.18);}
#ncd :focus-visible{outline:2px solid var(--violet); outline-offset:3px; border-radius:6px;}
.skip-link{position:absolute; left:-999px; top:0; background:#E11D48; color:#fff; padding:12px 20px; z-index:10000; font-weight:600; border-radius:0 0 10px 0;}
.skip-link:focus{left:0;}

/* ---------- 03 UTILITIES & BUTTONS ---------- */
#ncd .wrap{max-width:1240px; margin:0 auto; padding:0 28px;}
#ncd .section{padding:110px 0; position:relative;}
#ncd .section.tight{padding:70px 0;}
#ncd .section.alt{background:var(--bg-soft);}
#ncd .section.dark{background:radial-gradient(60% 80% at 100% 0%,rgba(124,58,237,.28),transparent 60%),radial-gradient(50% 70% at 0% 100%,rgba(225,29,72,.18),transparent 60%),#071026;}
#ncd .grad-text{background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent; background-size:200% 100%; animation:gradShift 8s ease-in-out infinite;}
#ncd .dark .grad-text{background-image:linear-gradient(115deg,#FF5C84,#A78BFA 50%,#5FD4FF);}
#ncd .eyebrow{display:inline-flex; align-items:center; gap:10px; font-family:var(--mono); font-size:12px; font-weight:500; letter-spacing:.16em; text-transform:uppercase; color:var(--accent); padding:7px 14px 7px 12px; border:1px solid color-mix(in srgb,var(--accent) 30%,transparent); border-radius:100px; background:color-mix(in srgb,var(--accent) 7%,transparent);}
#ncd .eyebrow::before{content:''; width:7px; height:7px; border-radius:50%; background:var(--accent); animation:ping 2s infinite;}
#ncd .section-head{max-width:760px; margin-bottom:56px;}
#ncd .section-head.center{text-align:center; margin-left:auto; margin-right:auto;}
#ncd .section-head h2{margin:18px 0 16px;}
#ncd .section-head p{font-size:17.5px;}
#ncd .section-head-row{display:flex; align-items:flex-end; justify-content:space-between; gap:30px; margin-bottom:56px;}
#ncd .section-head-row .section-head{margin-bottom:0;}
#ncd .lead{font-size:18.5px !important; color:var(--text-2) !important;}

#ncd .btn{position:relative; display:inline-flex; align-items:center; justify-content:center; gap:10px; padding:15px 28px; border-radius:100px; font-family:var(--head); font-weight:600; font-size:15px; border:1px solid transparent; transition:transform .4s var(--ease), box-shadow .4s var(--ease), background .3s, border-color .3s, color .3s; white-space:nowrap; overflow:hidden; isolation:isolate; cursor:pointer; line-height:1.2;}
#ncd .btn svg{width:16px; height:16px; transition:transform .4s var(--ease); flex-shrink:0;}
#ncd .btn:hover svg{transform:translateX(4px);}
#ncd .btn-primary{color:#fff; background:var(--grad); background-size:180% 100%; box-shadow:0 14px 30px -12px rgba(124,58,237,.55), inset 0 1px 0 rgba(255,255,255,.25);}
#ncd .btn-primary::after{content:''; position:absolute; top:0; left:-120%; width:60%; height:100%; background:linear-gradient(100deg,transparent,rgba(255,255,255,.5),transparent); transform:skewX(-20deg); transition:left .8s var(--ease); z-index:-1;}
#ncd .btn-primary:hover{background-position:100% 0; transform:translateY(-3px); box-shadow:0 22px 40px -14px rgba(225,29,72,.5);}
#ncd .btn-primary:hover::after{left:140%;}
#ncd .btn-ghost{color:var(--text); background:var(--surface); border-color:var(--line-2); box-shadow:var(--shadow-sm);}
#ncd .btn-ghost:hover{border-color:var(--violet); color:var(--violet); transform:translateY(-3px); box-shadow:0 0 0 4px rgba(124,58,237,.08), var(--shadow);}
#ncd .dark .btn-ghost{background:rgba(255,255,255,.06); box-shadow:none;}
#ncd .dark .btn-ghost:hover{color:#fff; border-color:#5FD4FF; box-shadow:0 0 0 4px rgba(95,212,255,.12);}
#ncd .btn-sm{padding:11px 20px; font-size:14px;}
#ncd .btn-lg{padding:18px 34px; font-size:16px;}
#ncd .link-arrow{display:inline-flex; align-items:center; gap:8px; font-family:var(--head); font-weight:600; font-size:14.5px; color:var(--violet); transition:gap .35s var(--ease), color .3s;}
#ncd .link-arrow svg{width:15px; height:15px;}
#ncd .link-arrow:hover{gap:14px; color:var(--red);}
#ncd .chip{display:inline-flex; align-items:center; gap:8px; padding:8px 14px; border-radius:100px; font-size:13.5px; font-weight:500; color:var(--text-2); background:var(--surface); border:1px solid var(--line); transition:all .35s var(--ease);}
#ncd .chip:hover{border-color:var(--violet); color:var(--violet); transform:translateY(-2px); box-shadow:var(--shadow-sm);}
#ncd .chip svg{width:15px; height:15px; color:var(--accent);}
#ncd .chip-cloud{display:flex; flex-wrap:wrap; gap:10px;}
#ncd .pill{display:inline-flex; align-items:center; gap:7px; font-family:var(--mono); font-size:11px; font-weight:500; letter-spacing:.12em; text-transform:uppercase; padding:6px 11px; border-radius:100px; color:#047857; background:#ECFDF5; border:1px solid #A7F3D0;}
#ncd .pill::before{content:''; width:6px; height:6px; border-radius:50%; background:currentColor;}
#ncd .pill.violet{color:#6D28D9; background:#F3EEFF; border-color:#DDD0FE;}
#ncd .pill.red{color:#BE123C; background:#FFF0F3; border-color:#FECDD8;}

/* ---------- 04 PRELOADER / PROGRESS / CURSOR / TO-TOP ---------- */
.preloader{position:fixed; inset:0; z-index:9999; background:#fff; display:flex; align-items:center; justify-content:center; transition:opacity .6s cubic-bezier(.19,1,.22,1), visibility .6s;}
.preloader.done{opacity:0; visibility:hidden;}
html:not(.js) .preloader{display:none;}
.preloader-inner{display:flex; flex-direction:column; align-items:center; gap:18px;}
.preloader-logo{width:58px; height:58px; animation:spinHex 2.4s cubic-bezier(.19,1,.22,1) infinite;}
.preloader-ecg{width:220px; height:40px;}
.preloader-ecg path{stroke:#E11D48; stroke-width:2.4; stroke-linecap:round; stroke-linejoin:round; stroke-dasharray:320; stroke-dashoffset:320; animation:draw 1.4s linear infinite;}
.preloader-inner span{font-family:'JetBrains Mono',monospace; font-size:12px; letter-spacing:.4em; color:#5A6684;}
.scroll-progress{position:fixed; top:0; left:0; height:3px; width:100%; transform-origin:0 50%; transform:scaleX(0); background:linear-gradient(115deg,#E11D48,#7C3AED,#0EA5E9); z-index:1001;}
.cursor-glow{position:fixed; width:480px; height:480px; left:0; top:0; border-radius:50%; pointer-events:none; z-index:0; opacity:0; transform:translate(-50%,-50%); background:radial-gradient(circle,rgba(124,58,237,.07),rgba(14,165,233,.04) 40%,transparent 68%); transition:opacity .5s; will-change:transform;}
.cursor-glow.on{opacity:1;}
#ncd .to-top{position:fixed; right:22px; bottom:22px; width:50px; height:50px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:#fff; border:1px solid var(--line-2); color:var(--text); box-shadow:var(--shadow); z-index:800; opacity:0; transform:translateY(20px) scale(.8); transition:all .45s var(--ease); pointer-events:none;}
#ncd .to-top.show{opacity:1; transform:none; pointer-events:auto;}
#ncd .to-top:hover{background:var(--grad); color:#fff; border-color:transparent; transform:translateY(-4px);}
#ncd .to-top svg{width:18px; height:18px;}

/* ---------- 05 HEADER & NAV ---------- */
#ncd .site-header{position:fixed; top:0; left:0; right:0; z-index:900; transition:background .4s var(--ease), border-color .4s, box-shadow .4s; border-bottom:1px solid transparent;}
#ncd .site-header.scrolled{background:rgba(255,255,255,.88); backdrop-filter:blur(16px) saturate(160%); -webkit-backdrop-filter:blur(16px) saturate(160%); border-color:var(--line); box-shadow:0 10px 30px -22px rgba(15,30,70,.35);}
#ncd .header-row{display:flex; align-items:center; justify-content:space-between; height:var(--header-h); gap:20px; transition:height .4s var(--ease);}
#ncd .site-header.scrolled .header-row{height:68px;}
#ncd .brand{display:flex; align-items:center; gap:12px; flex-shrink:0;}
#ncd .brand-mark{width:42px; height:42px; transition:transform .8s var(--ease);}
#ncd .brand:hover .brand-mark{transform:rotate(60deg) scale(1.06);}
#ncd .brand-text{display:flex; flex-direction:column; line-height:1.05;}
#ncd .brand-text strong{font-family:var(--head); font-weight:700; font-size:19px; letter-spacing:-.02em; color:var(--text);}
#ncd .brand-text small{font-family:var(--mono); font-size:10.5px; letter-spacing:.32em; text-transform:uppercase; color:var(--muted); margin-top:4px;}
#ncd .main-nav > ul{display:flex; align-items:center; gap:4px;}
#ncd .main-nav > ul > li{position:relative;}
#ncd .main-nav > ul > li > a{position:relative; display:flex; align-items:center; gap:6px; padding:10px 14px; font-size:14.5px; font-weight:500; color:var(--text-2); border-radius:100px; transition:color .3s, background .3s;}
#ncd .main-nav > ul > li > a::after{content:''; position:absolute; left:14px; right:14px; bottom:4px; height:2px; border-radius:2px; background:var(--grad); transform:scaleX(0); transform-origin:left; transition:transform .45s var(--ease);}
#ncd .main-nav > ul > li > a:hover,#ncd .main-nav > ul > li.open > a{color:var(--violet); background:#F4F1FF;}
#ncd .main-nav > ul > li > a:hover::after,#ncd .main-nav > ul > li > a.active::after{transform:scaleX(1);}
#ncd .main-nav > ul > li > a.active{color:var(--text); font-weight:600;}
#ncd .caret{width:10px; height:10px; transition:transform .35s var(--ease); opacity:.7;}
#ncd .has-sub:hover .caret,#ncd .has-sub.open .caret{transform:rotate(180deg);}
#ncd .submenu{position:absolute; top:calc(100% + 12px); left:50%; min-width:310px; padding:10px; border-radius:18px; background:#fff; border:1px solid var(--line); box-shadow:0 30px 60px -24px rgba(15,30,70,.35); opacity:0; visibility:hidden; transform:translate(-50%,10px) scale(.98); transition:all .35s var(--ease);}
#ncd .submenu::before{content:''; position:absolute; top:-14px; left:0; right:0; height:14px;}
#ncd .has-sub:hover .submenu,#ncd .has-sub.open .submenu{opacity:1; visibility:visible; transform:translate(-50%,0) scale(1);}
#ncd .submenu a{display:flex; align-items:flex-start; gap:14px; padding:12px 14px; border-radius:12px; transition:background .3s, transform .35s var(--ease);}
#ncd .submenu a:hover{background:var(--bg-soft); transform:translateX(4px);}
#ncd .submenu a > svg{width:38px; height:38px; padding:9px; flex-shrink:0; border-radius:10px; color:var(--violet); background:#F4F1FF; border:1px solid #E6DEFF; transition:all .3s;}
#ncd .submenu a:hover > svg{color:#fff; background:var(--grad); border-color:transparent;}
#ncd .submenu b{display:block; font-family:var(--head); font-size:14.5px; font-weight:600; color:var(--text);}
#ncd .submenu i{display:block; font-style:normal; font-size:12.5px; color:var(--muted); margin-top:2px;}
#ncd .header-cta{display:flex; align-items:center; gap:12px;}
#ncd .nav-mobile-cta{display:none;}
#ncd .nav-toggle{display:none; width:46px; height:46px; border-radius:50%; border:1px solid var(--line-2); position:relative; background:#fff;}
#ncd .nav-toggle span,#ncd .nav-toggle span::before,#ncd .nav-toggle span::after{position:absolute; left:50%; width:18px; height:2px; margin-left:-9px; background:var(--text); border-radius:2px; transition:transform .35s var(--ease), background .2s;}
#ncd .nav-toggle span{top:50%; margin-top:-1px;}
#ncd .nav-toggle span::before,#ncd .nav-toggle span::after{content:''; left:0; margin-left:0;}
#ncd .nav-toggle span::before{top:-6px;}
#ncd .nav-toggle span::after{top:6px;}
#ncd .nav-toggle[aria-expanded="true"] span{background:transparent;}
#ncd .nav-toggle[aria-expanded="true"] span::before{transform:translateY(6px) rotate(45deg);}
#ncd .nav-toggle[aria-expanded="true"] span::after{transform:translateY(-6px) rotate(-45deg);}
#ncd .nav-scrim{position:fixed; inset:0; background:rgba(11,21,48,.35); backdrop-filter:blur(3px); opacity:0; visibility:hidden; transition:all .35s; z-index:880;}
#ncd .nav-scrim.active{opacity:1; visibility:visible;}

/* ---------- 06 HEROES ---------- */
#ncd .hero{position:relative; min-height:100vh; min-height:100svh; display:flex; align-items:center; padding:calc(var(--header-h) + 50px) 0 120px; overflow:hidden; background:linear-gradient(180deg,#FFFFFF 0%,#F6F7FF 100%);}
#ncd .hero-canvas{position:absolute; inset:0; width:100%; height:100%; z-index:0;}
#ncd .hero-aurora{position:absolute; inset:-20% -10% auto; height:120%; z-index:0; pointer-events:none;
  background:radial-gradient(38% 40% at 80% 35%,rgba(225,29,72,.10),transparent 70%),radial-gradient(35% 45% at 12% 15%,rgba(124,58,237,.10),transparent 70%),radial-gradient(40% 35% at 60% 95%,rgba(14,165,233,.10),transparent 70%);
  animation:aurora 16s ease-in-out infinite alternate;}
#ncd .hero-floor{position:absolute; left:-50%; right:-50%; bottom:-10%; height:42%; z-index:0; pointer-events:none; transform:perspective(600px) rotateX(62deg); transform-origin:50% 100%;
  background-image:linear-gradient(rgba(124,58,237,.13) 1px,transparent 1px),linear-gradient(90deg,rgba(124,58,237,.13) 1px,transparent 1px); background-size:60px 60px; animation:floorMove 6s linear infinite;
  mask-image:linear-gradient(to top,#000 10%,transparent 85%); -webkit-mask-image:linear-gradient(to top,#000 10%,transparent 85%);}
#ncd .hero-inner{position:relative; z-index:2; display:grid; grid-template-columns:1.12fr .88fr; gap:50px; align-items:center;}
#ncd .hero-copy h1{margin:22px 0 22px;}
#ncd .hero-copy h1 .line{display:block; overflow:hidden; padding-bottom:.06em;}
#ncd .hero-copy h1 .line > span{display:inline-block; transform:translateY(105%); animation:lineUp 1.1s var(--ease) forwards;}
#ncd .hero-copy h1 .line:nth-child(2) > span{animation-delay:.12s;}
#ncd .hero-copy h1 .line:nth-child(3) > span{animation-delay:.24s;}
#ncd .hero-copy .lead{max-width:600px;}
#ncd .hero-copy .sub{margin-top:14px; max-width:600px; font-size:15.5px;}
#ncd .hero-actions{display:flex; flex-wrap:wrap; gap:14px; margin-top:36px;}
#ncd .rotator{display:inline-grid; vertical-align:bottom;}
#ncd .rotator > span{grid-area:1/1; opacity:0; transform:translateY(40%) rotateX(-60deg); transition:all .7s var(--ease); background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent;}
#ncd .rotator > span.on{opacity:1; transform:none;}
#ncd .hero-trust{display:flex; flex-wrap:wrap; gap:26px; margin-top:44px; padding-top:28px; border-top:1px solid var(--line);}
#ncd .hero-trust div{display:flex; align-items:center; gap:10px; font-size:14px; font-weight:500; color:var(--text-2);}
#ncd .hero-trust svg{width:20px; height:20px; color:var(--violet);}

#ncd .hero-visual{position:relative; aspect-ratio:1/1; max-width:540px; width:100%; margin-left:auto;}
#ncd .orbit{position:absolute; inset:0; border-radius:50%; border:1px solid rgba(124,58,237,.18);}
#ncd .orbit.o1{inset:0; animation:spin 38s linear infinite;}
#ncd .orbit.o2{inset:8%; border-style:dashed; border-color:rgba(14,165,233,.32); animation:spin 26s linear infinite reverse;}
#ncd .orbit.o3{inset:16%; border-color:rgba(225,29,72,.22); animation:spin 18s linear infinite;}
#ncd .orbit i{position:absolute; width:12px; height:12px; border-radius:50%; top:-6px; left:50%; margin-left:-6px; background:var(--blue); box-shadow:0 0 0 5px rgba(14,165,233,.15);}
#ncd .orbit.o2 i{background:var(--violet); box-shadow:0 0 0 5px rgba(124,58,237,.15); top:auto; bottom:-6px;}
#ncd .orbit.o3 i{background:var(--red); box-shadow:0 0 0 5px rgba(225,29,72,.15); top:50%; left:-6px; margin:-6px 0 0;}
#ncd .heart-wrap{position:absolute; inset:0; animation:floaty 7s ease-in-out infinite;}
#ncd .hero-photo{position:absolute; inset:22%; border-radius:50%; overflow:hidden; background:var(--grad-soft); box-shadow:0 40px 80px -30px rgba(124,58,237,.5), 0 0 0 10px #fff, 0 0 0 11px var(--line);}
#ncd .hero-photo img{width:100%; height:100%; object-fit:cover; transform:scale(1.04); transition:transform 1.2s var(--ease);}
#ncd .hero-visual:hover .hero-photo img{transform:scale(1.12);}
#ncd .pulse-ring{position:absolute; inset:22%; border-radius:50%; border:2px solid rgba(225,29,72,.35); animation:pulseRing 2.4s var(--ease) infinite;}
#ncd .pulse-ring.r2{animation-delay:1.2s;}
#ncd .float-chip{position:absolute; display:flex; align-items:center; gap:10px; padding:11px 16px 11px 12px; border-radius:16px; background:rgba(255,255,255,.92); border:1px solid var(--line); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); box-shadow:var(--shadow); font-size:13.5px; font-weight:600; font-family:var(--head); color:var(--text); white-space:nowrap; z-index:3; animation:floaty 6s ease-in-out infinite;}
#ncd .float-chip small{display:block; font-family:var(--mono); font-weight:400; font-size:10.5px; color:var(--muted); letter-spacing:.08em;}
#ncd .float-chip svg{width:34px; height:34px; padding:8px; border-radius:10px; background:var(--grad); color:#fff;}
#ncd .float-chip.c1{top:9%; left:-6%;}
#ncd .float-chip.c2{top:48%; right:-8%; animation-delay:-2s;}
#ncd .float-chip.c3{bottom:7%; left:0; animation-delay:-4s;}
#ncd .hero-ecg{position:absolute; left:0; right:0; bottom:40px; height:90px; z-index:1; pointer-events:none;}
#ncd .hero-ecg path{fill:none; stroke:url(#gradBrand); stroke-width:2; stroke-linecap:round; stroke-linejoin:round; stroke-dasharray:1600; stroke-dashoffset:1600; animation:draw 4.5s linear infinite;}
#ncd .scroll-cue{position:absolute; left:50%; bottom:22px; z-index:3; transform:translateX(-50%); width:26px; height:42px; border-radius:20px; border:1.5px solid var(--line-2);}
#ncd .scroll-cue::after{content:''; position:absolute; left:50%; top:8px; width:4px; height:8px; margin-left:-2px; border-radius:4px; background:var(--violet); animation:scrollCue 1.8s var(--ease) infinite;}

/* inner page hero — light, photo on the right */
#ncd .page-hero{position:relative; padding:calc(var(--header-h) + 70px) 0 80px; overflow:hidden; background:linear-gradient(180deg,#FFFFFF,#F5F7FF); border-bottom:1px solid var(--line);}
#ncd .page-hero .wrap{position:relative; z-index:2; display:grid; grid-template-columns:1.15fr .85fr; gap:56px; align-items:center;}
#ncd .page-hero h1{font-size:clamp(34px,4.4vw,56px); margin:22px 0 20px;}
#ncd .page-hero p{max-width:640px; font-size:18px; color:var(--text-2);}
#ncd .crumbs{display:flex; align-items:center; gap:10px; font-family:var(--mono); font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--faint); margin-bottom:6px;}
#ncd .crumbs a{color:var(--muted); transition:color .3s;}
#ncd .crumbs a:hover{color:var(--violet);}
#ncd .crumbs .sep{opacity:.5;}
#ncd .page-hero-media{position:relative; aspect-ratio:5/4; border-radius:28px; isolation:isolate;}
#ncd .page-hero-media .ph-frame{position:absolute; inset:0; border-radius:28px; overflow:hidden; box-shadow:var(--shadow-lg); background:var(--grad-soft);}
#ncd .page-hero-media .ph-frame img{width:100%; height:100%; object-fit:cover; transition:transform 1.4s var(--ease);}
#ncd .page-hero-media:hover .ph-frame img{transform:scale(1.06);}
#ncd .page-hero-media::before{content:''; position:absolute; inset:-14px -14px 14px 14px; border-radius:32px; background:var(--grad); opacity:.16; z-index:-1; transform:rotate(-3deg); transition:transform .8s var(--ease);}
#ncd .page-hero-media:hover::before{transform:rotate(-5deg) scale(1.02);}
#ncd .page-hero-media .ph-badge{position:absolute; left:-24px; bottom:26px; z-index:2; display:flex; align-items:center; gap:12px; padding:12px 18px 12px 12px; border-radius:16px; background:#fff; border:1px solid var(--line); box-shadow:var(--shadow); font-family:var(--head); font-weight:600; font-size:14px; animation:floaty 6s ease-in-out infinite;}
#ncd .page-hero-media .ph-badge svg{width:36px; height:36px; padding:8px; border-radius:10px; background:var(--grad); color:#fff;}
#ncd .page-hero .hero-ecg{bottom:0; height:60px; opacity:.6;}
#ncd .page-hero .hero-actions,#ncd .page-hero .chip-cloud{margin-top:28px;}

/* marquee */
#ncd .marquee{position:relative; border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:#fff; overflow:hidden; padding:20px 0; mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent); -webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);}
#ncd .marquee-track{display:flex; width:max-content; animation:marquee 40s linear infinite;}
#ncd .marquee:hover .marquee-track{animation-play-state:paused;}
#ncd .marquee-track span{display:inline-flex; align-items:center; gap:22px; padding-right:22px; font-family:var(--head); font-size:clamp(18px,2vw,24px); font-weight:500; color:var(--text-2); white-space:nowrap; transition:color .3s;}
#ncd .marquee-track span:hover{color:var(--violet);}
#ncd .marquee-track span::after{content:''; width:9px; height:9px; transform:rotate(45deg); background:var(--grad); border-radius:2px;}

/* ---------- 07 CARDS & GRIDS ---------- */
#ncd .card{position:relative; padding:32px; border-radius:var(--radius); background:var(--surface); border:1px solid var(--line); box-shadow:var(--shadow-sm); overflow:hidden; isolation:isolate; transition:transform .5s var(--ease), border-color .4s, box-shadow .5s var(--ease);}
#ncd .card::before{content:''; position:absolute; inset:0; padding:1.5px; border-radius:inherit; background:var(--grad); background-size:200% 200%; -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask-composite:exclude; opacity:0; transition:opacity .45s; animation:gradShift 4s linear infinite; z-index:3; pointer-events:none;}
#ncd .card::after{content:''; position:absolute; inset:0; border-radius:inherit; background:radial-gradient(380px circle at var(--mx,50%) var(--my,0%),rgba(124,58,237,.08),transparent 45%); opacity:0; transition:opacity .45s; z-index:-1; pointer-events:none;}
#ncd .dark .card::after{background:radial-gradient(380px circle at var(--mx,50%) var(--my,0%),rgba(124,58,237,.22),transparent 45%);}
#ncd .card:hover{transform:translateY(-8px); border-color:transparent; box-shadow:var(--shadow-lg);}
#ncd .card:hover::before,#ncd .card:hover::after{opacity:1;}
#ncd .card.tilt{transform-style:preserve-3d; will-change:transform;}
#ncd .card.tilt:hover{transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translateY(-8px);}
#ncd .card h3{margin:20px 0 10px;}
#ncd .card p{font-size:15px;}
#ncd .icon-badge{position:relative; width:56px; height:56px; border-radius:16px; display:flex; align-items:center; justify-content:center; color:var(--violet); background:#F4F1FF; border:1px solid #E6DEFF; transition:all .5s var(--ease);}
#ncd .dark .icon-badge{color:#5FD4FF; background:rgba(95,212,255,.08); border-color:rgba(95,212,255,.22);}
#ncd .icon-badge svg{width:26px; height:26px; transition:transform .6s var(--ease);}
#ncd .icon-badge::after{content:''; position:absolute; inset:-6px; border-radius:20px; border:1px dashed rgba(124,58,237,.35); opacity:0; transform:scale(.8); transition:all .6s var(--ease);}
#ncd .card:hover .icon-badge{color:#fff; background:var(--grad); border-color:transparent; box-shadow:0 12px 26px -10px rgba(225,29,72,.55);}
#ncd .card:hover .icon-badge svg{transform:scale(1.1) rotate(-8deg);}
#ncd .card:hover .icon-badge::after{opacity:1; transform:scale(1) rotate(45deg);}
#ncd .grid-2{display:grid; grid-template-columns:repeat(2,1fr); gap:24px;}
#ncd .grid-3{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
#ncd .grid-4{display:grid; grid-template-columns:repeat(4,1fr); gap:22px;}
#ncd .grid-5{display:grid; grid-template-columns:repeat(5,1fr); gap:18px;}
#ncd .grid-5 .card{padding:28px 24px;}
#ncd .card-index{position:absolute; top:26px; right:28px; font-family:var(--mono); font-size:12px; color:var(--faint); letter-spacing:.1em;}
/* photo-topped card */
#ncd .img-card{padding:0; display:flex; flex-direction:column;}
#ncd .img-card .ic-media{position:relative; height:210px; overflow:hidden; background:var(--grad-soft);}
#ncd .img-card .ic-media img{width:100%; height:100%; object-fit:cover; transition:transform 1.1s var(--ease);}
#ncd .img-card:hover .ic-media img{transform:scale(1.08);}
#ncd .img-card .ic-media::after{content:''; position:absolute; inset:0; background:linear-gradient(180deg,transparent 35%,rgba(11,21,48,.6)); opacity:.7; transition:opacity .5s;}
#ncd .img-card:hover .ic-media::after{opacity:1;}
#ncd .img-card .ic-body{position:relative; padding:26px 30px 30px; display:flex; flex-direction:column; flex:1;}
#ncd .img-card .ic-body h3{margin:0 0 10px;}
#ncd .img-card .ic-media .pill{position:absolute; left:18px; top:18px; z-index:2;}
#ncd .img-card .ic-media .icon-badge{position:absolute; left:22px; bottom:-28px; z-index:2; background:#fff; box-shadow:var(--shadow);}
#ncd .img-card .ic-media + .ic-body{padding-top:42px;}
#ncd .img-card .ic-media{overflow:visible;}
#ncd .img-card .ic-media .ic-clip{position:absolute; inset:0; overflow:hidden; border-radius:var(--radius) var(--radius) 0 0;}
#ncd .img-card .ic-media .ic-clip img{width:100%; height:100%; object-fit:cover; transition:transform 1.1s var(--ease);}
#ncd .img-card:hover .ic-media .ic-clip img{transform:scale(1.08);}
#ncd .img-card .ic-media::after{border-radius:var(--radius) var(--radius) 0 0;}
#ncd .img-fail{background:var(--grad-soft) !important;}
#ncd .img-fail > img,#ncd img.is-broken{visibility:hidden;}

/* check list */
#ncd .check-list{display:grid; gap:12px;}
#ncd .check-list.cols-2{grid-template-columns:repeat(2,1fr); column-gap:26px;}
#ncd .check-list li{display:flex; align-items:flex-start; gap:12px; font-size:15.5px; color:var(--text-2); transition:transform .35s var(--ease), color .3s;}
#ncd .check-list li:hover{transform:translateX(5px); color:var(--violet);}
#ncd .check-list svg{width:20px; height:20px; flex-shrink:0; margin-top:2px; color:var(--green);}

/* ---------- 08 HOME SECTIONS ---------- */
#ncd .stats{display:grid; grid-template-columns:repeat(4,1fr); border:1px solid var(--line); border-radius:24px; overflow:hidden; background:rgba(255,255,255,.03);}
#ncd .stat{position:relative; padding:36px 30px; border-right:1px solid var(--line); transition:background .4s;}
#ncd .stat:last-child{border-right:none;}
#ncd .stat:hover{background:rgba(124,58,237,.14);}
#ncd .stat::before{content:''; position:absolute; left:0; top:0; height:2px; width:100%; background:var(--grad); transform:scaleX(0); transform-origin:left; transition:transform .6s var(--ease);}
#ncd .stat:hover::before{transform:scaleX(1);}
#ncd .stat .num{font-family:var(--head); font-size:clamp(40px,4.6vw,58px); font-weight:700; line-height:1; letter-spacing:-.04em; background:linear-gradient(115deg,#FF5C84,#A78BFA 50%,#5FD4FF); -webkit-background-clip:text; background-clip:text; color:transparent;}
#ncd .stat b{display:block; margin-top:14px; font-family:var(--head); font-size:16px; font-weight:600; color:var(--text);}
#ncd .stat p{font-size:13.5px; margin-top:4px;}

#ncd .split{display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center;}
#ncd .split.top{align-items:start;}
#ncd .split.form-l{grid-template-columns:1.35fr .85fr; gap:40px;}
#ncd .split.form-r{grid-template-columns:.8fr 1.2fr; gap:40px;}
#ncd .quote-box{position:relative; margin:28px 0; padding:26px 28px 26px 30px; border-radius:18px; background:var(--grad-soft); border:1px solid var(--line);}
#ncd .quote-box::before{content:''; position:absolute; left:0; top:18px; bottom:18px; width:3px; border-radius:3px; background:var(--grad);}
#ncd .quote-box p{font-family:var(--head); font-size:19px; color:var(--text); line-height:1.5;}
#ncd .quote-box small{display:block; margin-top:10px; font-family:var(--mono); font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--accent);}

/* photo collage */
#ncd .collage{position:relative; aspect-ratio:1/1; max-width:560px; width:100%; isolation:isolate;}
#ncd .collage .c-main,#ncd .collage .c-sub{position:absolute; border-radius:26px; overflow:hidden; background:var(--grad-soft); box-shadow:var(--shadow-lg);}
#ncd .collage .c-main{inset:0 14% 18% 0;}
#ncd .collage .c-sub{right:0; bottom:0; width:52%; height:46%; border:8px solid #fff; animation:floaty 7s ease-in-out infinite;}
#ncd .collage img{width:100%; height:100%; object-fit:cover; transition:transform 1.2s var(--ease);}
#ncd .collage:hover .c-main img{transform:scale(1.06);}
#ncd .collage .c-tag{position:absolute; left:22px; top:22px; z-index:2; display:flex; align-items:center; gap:10px; padding:10px 16px 10px 10px; border-radius:14px; background:rgba(255,255,255,.94); box-shadow:var(--shadow); font-family:var(--head); font-weight:600; font-size:14px; color:var(--text);}
#ncd .collage .c-tag svg{width:32px; height:32px; padding:7px; border-radius:9px; background:var(--grad); color:#fff;}
#ncd .collage .c-ring{position:absolute; left:-30px; bottom:-30px; width:150px; height:150px; border-radius:50%; border:2px dashed rgba(124,58,237,.3); animation:spin 30s linear infinite; z-index:-1;}

/* approach steps */
#ncd .approach{position:relative; display:grid; gap:14px;}
#ncd .approach::before{content:''; position:absolute; left:31px; top:30px; bottom:30px; width:2px; background:linear-gradient(var(--red),var(--violet),var(--blue)); opacity:.4;}
#ncd .step{position:relative; display:flex; gap:22px; align-items:center; padding:18px 22px 18px 0; border-radius:18px; transition:background .4s, transform .5s var(--ease), box-shadow .4s;}
#ncd .step:hover{background:#fff; transform:translateX(8px); box-shadow:var(--shadow);}
#ncd .step-dot{position:relative; z-index:1; width:64px; height:64px; flex-shrink:0; border-radius:50%; display:flex; align-items:center; justify-content:center; font-family:var(--mono); font-size:13px; font-weight:600; color:var(--violet); background:#fff; border:1px solid var(--line-2); transition:all .5s var(--ease);}
#ncd .step:hover .step-dot{color:#fff; background:var(--grad); border-color:transparent; box-shadow:0 10px 24px -8px rgba(124,58,237,.6); transform:scale(1.08);}
#ncd .step h4{font-size:19px; margin-bottom:4px;}
#ncd .step p{font-size:14.5px;}

/* programs */
#ncd .program-card .p-num{position:absolute; right:22px; bottom:12px; z-index:2; font-family:var(--head); font-size:56px; font-weight:800; line-height:1; letter-spacing:-.05em; color:transparent; -webkit-text-stroke:1.5px rgba(255,255,255,.9); transition:all .5s var(--ease);}
#ncd .program-card:hover .p-num{transform:translateY(-6px);}
#ncd .program-card .tag-list{display:flex; flex-wrap:wrap; gap:8px; margin:16px 0 24px;}
#ncd .program-card .tag-list li{font-size:12.5px; padding:6px 11px; border-radius:100px; color:var(--text-2); background:var(--bg-soft); border:1px solid var(--line); transition:all .3s;}
#ncd .program-card:hover .tag-list li{border-color:#DDD0FE; background:#F7F4FF;}
#ncd .program-card .link-arrow{margin-top:auto;}
#ncd .program-card .motto{font-family:var(--mono); font-size:13px; color:var(--accent); letter-spacing:.06em; margin:14px 0 22px;}

/* events */
#ncd .event-card{display:flex; flex-direction:column; padding:0;}
#ncd .event-media{position:relative; height:170px; overflow:hidden; background:var(--grad-soft);}
#ncd .event-media img{width:100%; height:100%; object-fit:cover; transition:transform 1.1s var(--ease);}
#ncd .event-card:hover .event-media img{transform:scale(1.08);}
#ncd .event-top{position:relative; padding:0 28px 22px; display:flex; gap:18px; align-items:flex-start; border-bottom:1px solid var(--line);}
#ncd .date-block{width:74px; flex-shrink:0; margin-top:-34px; position:relative; z-index:2; text-align:center; border-radius:16px; padding:12px 0; background:#fff; border:1px solid var(--line); box-shadow:var(--shadow); transition:all .5s var(--ease);}
#ncd .event-card:hover .date-block{background:var(--grad); color:#fff; border-color:transparent;}
#ncd .event-card:hover .date-block span{color:#fff;}
#ncd .date-block b{display:block; font-family:var(--head); font-size:22px; line-height:1;}
#ncd .date-block span{display:block; font-family:var(--mono); font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; margin-top:6px; color:var(--muted);}
#ncd .event-top > div:last-child{padding-top:16px;}
#ncd .event-top h3{margin:10px 0 0; font-size:19px;}
#ncd .event-body{padding:22px 28px 28px; display:flex; flex-direction:column; gap:18px; flex:1;}
#ncd .meta-list{display:grid; gap:10px;}
#ncd .meta-list li{display:flex; gap:10px; align-items:center; font-size:14px; color:var(--text-2);}
#ncd .meta-list svg{width:17px; height:17px; color:var(--violet); flex-shrink:0;}
#ncd .event-actions{display:flex; gap:10px; margin-top:auto; flex-wrap:wrap;}

/* tabs */
#ncd .tab-list{display:inline-flex; flex-wrap:wrap; gap:6px; padding:6px; border-radius:100px; border:1px solid var(--line); background:var(--surface); margin-bottom:40px; position:relative;}
#ncd .tab{position:relative; z-index:1; padding:11px 22px; border-radius:100px; font-family:var(--head); font-size:14.5px; font-weight:600; color:var(--muted); transition:color .3s;}
#ncd .tab:hover{color:var(--text);}
#ncd .tab[aria-selected="true"]{color:#fff;}
#ncd .tab-ink{position:absolute; z-index:0; top:6px; height:calc(100% - 12px); border-radius:100px; background:var(--grad); box-shadow:0 8px 20px -8px rgba(124,58,237,.7); transition:left .5s var(--ease), width .5s var(--ease);}
#ncd .tab-panel{display:none;}
#ncd .tab-panel.active{display:block; animation:fadeUp .7s var(--ease);}

/* milestones */
#ncd .milestones{position:relative; display:grid; grid-template-columns:repeat(4,1fr); gap:24px;}
#ncd .milestones::before{content:''; position:absolute; left:0; right:0; top:27px; height:2px; background:linear-gradient(90deg,var(--red),var(--violet),var(--blue)); opacity:.3;}
#ncd .milestone{position:relative; padding-top:72px;}
#ncd .milestone .m-dot{position:absolute; top:12px; left:0; width:32px; height:32px; border-radius:50%; background:#fff; border:2px solid var(--violet); display:flex; align-items:center; justify-content:center; transition:all .5s var(--ease);}
#ncd .milestone .m-dot::after{content:''; width:10px; height:10px; border-radius:50%; background:var(--grad);}
#ncd .milestone:hover .m-dot{transform:scale(1.25); box-shadow:0 0 0 8px rgba(124,58,237,.12); border-color:var(--red);}
#ncd .milestone .card{padding:26px;}
#ncd .milestone .card h3{margin:12px 0 8px; font-size:18px;}

/* spotlight / faculty */
#ncd .founder{display:grid; grid-template-columns:.95fr 1.05fr; gap:64px; align-items:center;}
#ncd .expertise{display:flex; flex-wrap:wrap; gap:10px; margin:26px 0 32px;}
#ncd .faculty-card .avatar{width:78px; height:78px; border-radius:22px; display:flex; align-items:center; justify-content:center; background:var(--grad-soft); border:1px solid var(--line); color:var(--violet); transition:all .5s var(--ease);}
#ncd .faculty-card .avatar svg{width:34px; height:34px;}
#ncd .faculty-card:hover .avatar{background:var(--grad); color:#fff; border-radius:50%;}
#ncd .faculty-card .role{font-size:14px; color:var(--accent); margin-top:4px;}
#ncd .faculty-card h3{margin-top:18px;}

/* community band (dark) */
#ncd .community-band{position:relative; border-radius:32px; padding:70px 60px; overflow:hidden; isolation:isolate; border:1px solid rgba(160,180,255,.2); background:radial-gradient(60% 80% at 100% 0%,rgba(124,58,237,.38),transparent 60%),radial-gradient(50% 70% at 0% 100%,rgba(225,29,72,.24),transparent 60%),#071026;}
#ncd .community-band .band-bg{position:absolute; inset:0; z-index:-1; opacity:.16;}
#ncd .community-band .band-bg img{width:100%; height:100%; object-fit:cover;}
#ncd .community-band .split{gap:50px;}
#ncd .member-cloud{display:flex; flex-wrap:wrap; gap:12px;}
#ncd .member-cloud .chip{padding:12px 18px; font-size:14.5px; background:rgba(255,255,255,.06); border-color:rgba(160,180,255,.22); color:#E2E8FA;}
#ncd .member-cloud .chip:hover{background:rgba(255,255,255,.12); color:#fff; border-color:#5FD4FF;}
#ncd .member-cloud .chip svg{color:#5FD4FF;}

/* partners */
#ncd .partner-card{text-align:center; padding:38px 26px;}
#ncd .partner-card .icon-badge{margin:0 auto;}
#ncd .partner-card h3{font-size:18px;}

/* news */
#ncd .news-card{padding:0; display:flex; flex-direction:column;}
#ncd .news-thumb{position:relative; height:200px; overflow:hidden; background:var(--grad-soft);}
#ncd .news-thumb img{width:100%; height:100%; object-fit:cover; transition:transform 1.1s var(--ease);}
#ncd .news-card:hover .news-thumb img{transform:scale(1.08) rotate(.6deg);}
#ncd .news-thumb .pill{position:absolute; left:18px; top:18px; z-index:2;}
#ncd .news-body{padding:26px 28px 30px; display:flex; flex-direction:column; flex:1;}
#ncd .news-body h3{font-size:19px; margin:0 0 10px; line-height:1.3; transition:color .3s;}
#ncd .news-card:hover h3{color:var(--violet);}
#ncd .news-body p{font-size:14.5px; margin-bottom:20px;}
#ncd .news-body .link-arrow{margin-top:auto;}
#ncd .news-more{display:none; margin-top:-6px; margin-bottom:18px; font-size:14.5px; color:var(--text-2) !important;}
#ncd .news-card.expanded .news-more{display:block; animation:fadeUp .5s var(--ease);}

/* CTA band (dark) */
#ncd .cta-band{position:relative; text-align:center; padding:90px 40px; border-radius:36px; overflow:hidden; isolation:isolate; background:#071026;}
#ncd .cta-band::before{content:''; position:absolute; inset:-2px; z-index:-3; background:conic-gradient(from var(--ang,0deg),#E11D48,#7C3AED,#0EA5E9,#E11D48); animation:rotateAng 6s linear infinite;}
#ncd .cta-band::after{content:''; position:absolute; inset:2px; z-index:-2; border-radius:34px; background:radial-gradient(60% 90% at 50% 0%,rgba(124,58,237,.42),transparent 70%),#071026;}
#ncd .cta-band .band-bg{position:absolute; inset:2px; z-index:-1; border-radius:34px; overflow:hidden; opacity:.14;}
#ncd .cta-band .band-bg img{width:100%; height:100%; object-fit:cover;}
#ncd .cta-band h2{max-width:780px; margin:20px auto 18px;}
#ncd .cta-band p{max-width:640px; margin:0 auto; font-size:17.5px;}
#ncd .cta-band .hero-actions{justify-content:center;}
@property --ang{syntax:'<angle>'; initial-value:0deg; inherits:false;}

/* ---------- 09 INNER-PAGE COMPONENTS ---------- */
#ncd .vm-card{padding:44px;}
#ncd .vm-card h3{font-size:26px;}
#ncd .vm-card .lead{margin-top:12px;}
#ncd .program-detail{display:grid; grid-template-columns:.9fr 1.1fr; gap:60px; align-items:start; padding:56px 0; border-top:1px solid var(--line);}
#ncd .program-detail:first-of-type{border-top:none; padding-top:0;}
#ncd .program-detail .p-num{font-family:var(--head); font-size:clamp(70px,9vw,120px); font-weight:800; line-height:.9; letter-spacing:-.06em; color:transparent; -webkit-text-stroke:1.5px #C9C2EE; background:var(--grad); -webkit-background-clip:text; background-clip:text; background-size:0% 100%; background-repeat:no-repeat; transition:background-size 1.2s var(--ease);}
#ncd .program-detail.in-view .p-num{background-size:100% 100%;}
#ncd .program-detail h2{font-size:clamp(26px,3vw,38px); margin:18px 0 14px;}
#ncd .pd-media{height:230px; border-radius:20px; overflow:hidden; margin-bottom:22px; background:var(--grad-soft); box-shadow:var(--shadow);}
#ncd .pd-media img{width:100%; height:100%; object-fit:cover; transition:transform 1.2s var(--ease);}
#ncd .pd-media:hover img{transform:scale(1.07);}
#ncd .sticky{position:sticky; top:calc(var(--header-h) + 30px);}
#ncd .panel{padding:34px; border-radius:var(--radius); border:1px solid var(--line); background:var(--surface); box-shadow:var(--shadow-sm);}
#ncd .panel h4{font-family:var(--mono); font-size:12px; font-weight:500; letter-spacing:.16em; text-transform:uppercase; color:var(--accent); margin-bottom:20px;}
#ncd .motto-row{display:flex; flex-wrap:wrap; gap:12px;}
#ncd .motto-row span{flex:1 1 120px; text-align:center; padding:22px 10px; border-radius:16px; font-family:var(--head); font-size:20px; font-weight:600; border:1px solid var(--line); background:var(--bg-soft); transition:all .5s var(--ease);}
#ncd .motto-row span:hover{background:var(--grad); color:#fff; border-color:transparent; transform:translateY(-6px) rotate(-1deg);}
#ncd .featured{display:grid; grid-template-columns:1.1fr .9fr; gap:0; padding:0;}
#ncd .featured-main{padding:48px;}
#ncd .featured-side{position:relative; padding:48px; border-left:1px solid var(--line); background:var(--bg-soft);}
#ncd .featured-main h2{font-size:clamp(26px,3vw,38px); margin:18px 0 14px;}
#ncd .featured-img{height:200px; border-radius:16px; overflow:hidden; margin-bottom:26px; background:var(--grad-soft);}
#ncd .featured-img img{width:100%; height:100%; object-fit:cover; transition:transform 1.2s var(--ease);}
#ncd .featured:hover .featured-img img{transform:scale(1.06);}
#ncd .opps{display:grid; grid-template-columns:repeat(3,1fr); gap:16px;}
#ncd .opps.two{grid-template-columns:1fr 1fr;}
#ncd .opp{display:flex; gap:14px; align-items:center; padding:20px; border-radius:16px; border:1px solid var(--line); background:var(--surface); box-shadow:var(--shadow-sm); transition:all .45s var(--ease);}
#ncd .opp:hover{border-color:#DDD0FE; transform:translateY(-4px); box-shadow:var(--shadow);}
#ncd .opp svg{width:22px; height:22px; color:var(--violet); flex-shrink:0;}
#ncd .opp span{font-size:15px; color:var(--text-2);}
#ncd .past-row{display:grid; grid-template-columns:1.3fr 1fr .8fr 1.6fr auto; gap:20px; align-items:center; padding:22px 26px; border-radius:16px; border:1px solid var(--line); background:var(--surface); transition:all .45s var(--ease);}
#ncd .past-row + .past-row{margin-top:12px;}
#ncd .past-row:hover{border-color:#DDD0FE; box-shadow:var(--shadow); transform:translateX(6px);}
#ncd .past-row b{font-family:var(--head); font-size:16px;}
#ncd .past-row span{font-size:14px; color:var(--muted);}
#ncd .past-head{background:none !important; border:none !important; box-shadow:none !important; padding-top:0; padding-bottom:6px; transform:none !important;}
#ncd .past-head span{font-family:var(--mono); font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--faint);}
#ncd .device-tile{display:flex; align-items:center; gap:18px; padding:26px;}
#ncd .device-tile h3{margin:0; font-size:18px;}
#ncd .device-tile .icon-badge{flex-shrink:0;}
#ncd .device-tile .go{margin-left:auto; width:38px; height:38px; border-radius:50%; display:flex; align-items:center; justify-content:center; border:1px solid var(--line-2); color:var(--muted); transition:all .45s var(--ease); flex-shrink:0;}
#ncd .device-tile .go svg{width:16px; height:16px;}
#ncd .device-tile:hover .go{background:var(--grad); color:#fff; border-color:transparent; transform:rotate(-45deg);}
#ncd .flow{display:flex; align-items:center; justify-content:center; flex-wrap:wrap;}
#ncd .flow-node{display:flex; flex-direction:column; align-items:center; gap:12px; padding:22px 18px; min-width:150px; text-align:center; border-radius:20px; border:1px solid var(--line); background:#fff; box-shadow:var(--shadow-sm); transition:all .5s var(--ease);}
#ncd .flow-node:hover{border-color:#DDD0FE; transform:translateY(-8px); box-shadow:var(--shadow-lg);}
#ncd .flow-node svg{width:30px; height:30px; color:var(--violet);}
#ncd .flow-node b{font-family:var(--head); font-size:14.5px; font-weight:600;}
#ncd .flow-x{position:relative; width:46px; height:2px; background:linear-gradient(90deg,var(--violet),var(--blue)); opacity:.6;}
#ncd .flow-x::after{content:''; position:absolute; top:-3px; left:0; width:8px; height:8px; border-radius:50%; background:var(--blue); animation:flowDot 2s linear infinite;}
#ncd .contact-card{display:flex; gap:18px; align-items:flex-start; padding:26px;}
#ncd .contact-card h3{margin:0 0 4px; font-size:17px;}
#ncd .contact-card p,#ncd .contact-card a{font-size:15px; color:var(--text-2);}
#ncd .contact-card a:hover{color:var(--violet);}
#ncd .note{font-size:13px !important; color:var(--faint) !important;}

/* ---------- 10 GALLERY & LIGHTBOX ---------- */
#ncd .filter-bar{display:flex; flex-wrap:wrap; gap:10px; margin-bottom:36px;}
#ncd .filter{padding:10px 18px; border-radius:100px; font-size:14px; font-weight:500; color:var(--text-2); border:1px solid var(--line); background:#fff; transition:all .35s var(--ease);}
#ncd .filter:hover{color:var(--violet); border-color:#DDD0FE;}
#ncd .filter.active{color:#fff; background:var(--grad); border-color:transparent; box-shadow:0 10px 22px -10px rgba(124,58,237,.7);}
#ncd .gallery-grid{display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:220px; grid-auto-flow:dense; gap:18px;}
#ncd .g-item{position:relative; border-radius:20px; overflow:hidden; cursor:pointer; transition:transform .6s var(--ease), box-shadow .5s; background:var(--grad-soft); box-shadow:var(--shadow-sm);}
#ncd .g-item.wide{grid-column:span 2;} #ncd .g-item.tall{grid-row:span 2;}
#ncd .g-item.hide{display:none;}
#ncd .g-item img{width:100%; height:100%; object-fit:cover; transition:transform 1s var(--ease);}
#ncd .g-item:hover{transform:translateY(-6px); box-shadow:var(--shadow-lg);}
#ncd .g-item:hover img{transform:scale(1.1);}
#ncd .g-cap{position:absolute; left:0; right:0; bottom:0; padding:40px 20px 16px; background:linear-gradient(180deg,transparent,rgba(11,21,48,.85)); transition:padding .5s var(--ease);}
#ncd .g-item:hover .g-cap{padding-bottom:22px;}
#ncd .g-cap b{display:block; font-family:var(--head); font-size:15px; color:#fff;}
#ncd .g-cap small{font-family:var(--mono); font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:#7FE0FF;}
#ncd .lightbox{position:fixed; inset:0; z-index:2000; display:flex; align-items:center; justify-content:center; padding:30px; background:rgba(11,21,48,.86); backdrop-filter:blur(8px); opacity:0; visibility:hidden; transition:all .4s var(--ease);}
#ncd .lightbox.open{opacity:1; visibility:visible;}
#ncd .lightbox-stage{position:relative; width:min(1100px,100%); aspect-ratio:16/10; border-radius:24px; overflow:hidden; transform:scale(.92); transition:transform .5s var(--ease); background:#0B1530;}
#ncd .lightbox.open .lightbox-stage{transform:none;}
#ncd .lightbox-stage img{width:100%; height:100%; object-fit:cover;}
#ncd .lightbox-close{position:absolute; top:22px; right:22px; width:48px; height:48px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:#fff; color:#0B1530; transition:all .3s;}
#ncd .lightbox-close:hover{transform:rotate(90deg); color:#E11D48;}
#ncd .lightbox-close svg{width:20px; height:20px;}

/* ---------- 11 FORMS ---------- */
#ncd .form-card{padding:44px; border-radius:28px; border:1px solid var(--line); background:#fff; box-shadow:var(--shadow-lg);}
#ncd .form-card h2{font-size:clamp(24px,2.6vw,32px); margin-bottom:8px;}
#ncd .form-grid{display:grid; grid-template-columns:1fr 1fr; gap:20px 22px; margin-top:30px;}
#ncd .field{display:flex; flex-direction:column; gap:8px; position:relative;}
#ncd .field.full{grid-column:1/-1;}
#ncd .field label,#ncd .field .label{font-family:var(--mono); font-size:11.5px; font-weight:500; letter-spacing:.14em; text-transform:uppercase; color:var(--muted);}
#ncd .field label .req{color:var(--red);}
#ncd .form-control{width:100%; padding:15px 18px; border-radius:14px; border:1px solid var(--line-2); background:var(--bg-soft); color:var(--text); font-family:var(--sans); font-size:15px; transition:border-color .3s, box-shadow .3s, background .3s; outline:none;}
#ncd .form-control::placeholder{color:var(--faint);}
#ncd .form-control:hover{border-color:#B9C3DA;}
#ncd .form-control:focus{border-color:var(--violet); box-shadow:0 0 0 4px rgba(124,58,237,.12); background:#fff;}
#ncd textarea.form-control{min-height:140px; resize:vertical;}
#ncd .field-error{font-size:12.5px; color:var(--red); display:block;}
#ncd .chip-checks{display:flex; flex-wrap:wrap; gap:10px;}
#ncd .chip-checks li{position:relative;}
#ncd .chip-checks input{position:absolute; opacity:0; width:1px; height:1px;}
#ncd .chip-checks label{display:inline-flex; align-items:center; gap:8px; padding:11px 16px; border-radius:100px; cursor:pointer; font-family:var(--sans); font-size:14px; letter-spacing:0; text-transform:none; color:var(--text-2); border:1px solid var(--line-2); background:#fff; transition:all .35s var(--ease);}
#ncd .chip-checks label::before{content:''; width:16px; height:16px; border-radius:5px; border:1.5px solid var(--line-2); transition:all .3s; background-position:center; background-repeat:no-repeat; background-size:11px;}
#ncd .chip-checks label:hover{border-color:var(--violet); color:var(--violet);}
#ncd .chip-checks input:checked + label{color:var(--violet); border-color:var(--violet); background:#F7F4FF;}
#ncd .chip-checks input:checked + label::before{background-color:var(--violet); border-color:var(--violet); background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 10'%3E%3Cpath d='M1 5l3.5 3.5L11 1.5' fill='none' stroke='%23fff' stroke-width='2'/%3E%3C/svg%3E");}
#ncd .chip-checks input:focus-visible + label{outline:2px solid var(--violet); outline-offset:3px;}
#ncd .form-actions{display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; margin-top:30px;}
#ncd .form-actions .note{max-width:340px;}
#ncd .success-card{text-align:center; padding:60px 40px; border-radius:28px; border:1px solid #A7F3D0; background:radial-gradient(60% 80% at 50% 0%,#ECFDF5,#fff 70%); box-shadow:var(--shadow);}
#ncd .success-icon{width:84px; height:84px; margin:0 auto 24px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:#D1FAE5; color:#059669; box-shadow:0 0 0 10px #ECFDF5; animation:pop .8s var(--ease);}
#ncd .success-icon svg{width:44px; height:44px;}
#ncd .success-card h2{font-size:30px; margin-bottom:12px;}
#ncd .success-card p{max-width:480px; margin:0 auto 26px;}
#ncd .side-info{display:grid; gap:18px;}
#ncd .side-photo{height:230px; border-radius:20px; overflow:hidden; background:var(--grad-soft); box-shadow:var(--shadow);}
#ncd .side-photo img{width:100%; height:100%; object-fit:cover; transition:transform 1.2s var(--ease);}
#ncd .side-photo:hover img{transform:scale(1.06);}

/* ---------- 12 FOOTER (dark) ---------- */
#ncd .site-footer{position:relative; padding:110px 0 30px; overflow:hidden; background:linear-gradient(180deg,#0A1430,#050A18);}
#ncd .footer-glow{position:absolute; left:50%; top:-200px; width:900px; height:400px; transform:translateX(-50%); background:radial-gradient(closest-side,rgba(124,58,237,.32),transparent); pointer-events:none;}
#ncd .footer-ecg{position:absolute; top:0; left:0; width:100%; height:80px; opacity:.75;}
#ncd .footer-ecg path{fill:none; stroke:url(#gradBrand); stroke-width:1.5; stroke-dasharray:1500; stroke-dashoffset:1500; animation:draw 6s linear infinite;}
#ncd .footer-top{display:grid; grid-template-columns:1.5fr 1fr 1fr 1.4fr; gap:50px; padding-bottom:60px; border-bottom:1px solid var(--line);}
#ncd .footer-brand p{margin:22px 0 26px; max-width:330px; font-size:15px;}
#ncd .footer-social{display:flex; gap:10px;}
#ncd .footer-social a{width:42px; height:42px; border-radius:12px; display:flex; align-items:center; justify-content:center; border:1px solid var(--line-2); color:var(--text-2); transition:all .4s var(--ease);}
#ncd .footer-social a:hover{background:var(--grad); border-color:transparent; color:#fff; transform:translateY(-4px) rotate(-6deg);}
#ncd .footer-social svg{width:18px; height:18px;}
#ncd .footer-col h5{font-family:var(--mono); font-size:12px; font-weight:500; letter-spacing:.18em; text-transform:uppercase; color:var(--accent); margin-bottom:22px;}
#ncd .footer-col ul{display:grid; gap:11px;}
#ncd .footer-col li a{position:relative; font-size:14.5px; color:var(--muted); transition:color .3s, padding .4s var(--ease);}
#ncd .footer-col li a::before{content:''; position:absolute; left:0; top:50%; width:0; height:1.5px; background:var(--grad); transition:width .4s var(--ease);}
#ncd .footer-col li a:hover{color:#fff; padding-left:18px;}
#ncd .footer-col li a:hover::before{width:12px;}
#ncd .footer-contact li{display:flex; gap:12px; align-items:flex-start; font-size:14.5px; color:var(--muted);}
#ncd .footer-contact svg{width:18px; height:18px; color:var(--accent); flex-shrink:0; margin-top:3px;}
#ncd .footer-contact a:hover{padding-left:0 !important;}
#ncd .footer-contact a::before{display:none;}
#ncd .footer-form{display:flex; margin-top:24px; border-radius:100px; border:1px solid var(--line-2); padding:5px; background:rgba(255,255,255,.04); transition:border-color .3s, box-shadow .3s;}
#ncd .footer-form:focus-within{border-color:var(--accent); box-shadow:0 0 0 4px rgba(95,212,255,.12);}
#ncd .footer-form input{flex:1; min-width:0; padding:10px 16px; background:none; border:none; outline:none; color:var(--text); font-size:14px; font-family:var(--sans);}
#ncd .footer-form input::placeholder{color:var(--faint);}
#ncd .footer-form button{width:42px; height:42px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:var(--grad); color:#fff; transition:transform .4s var(--ease);}
#ncd .footer-form button:hover{transform:rotate(-45deg) scale(1.06);}
#ncd .footer-form button svg{width:16px; height:16px;}
#ncd .footer-form-msg{display:block; min-height:20px; margin-top:8px; font-size:12.5px; color:var(--green);}
#ncd .footer-bottom{display:flex; justify-content:space-between; align-items:center; gap:20px; flex-wrap:wrap; padding-top:28px; font-size:13.5px; color:var(--faint);}
#ncd .footer-tag{display:inline-flex; align-items:center; gap:8px; font-family:var(--mono); font-size:11.5px; letter-spacing:.08em;}
#ncd .footer-tag svg{width:16px; height:16px; color:#FF5C84;}

/* ---------- 13 MOTION ---------- */
.js #ncd .reveal{opacity:0; transform:translateY(40px); filter:blur(6px); transition:opacity 1s var(--ease), transform 1.1s var(--ease), filter 1s var(--ease); transition-delay:var(--d,0s);}
.js #ncd .reveal.from-left{transform:translateX(-50px);}
.js #ncd .reveal.from-right{transform:translateX(50px);}
.js #ncd .reveal.zoom{transform:scale(.92);}
.js #ncd .reveal.in-view{opacity:1; transform:none; filter:none;}
@keyframes gradShift{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
@keyframes ping{0%{box-shadow:0 0 0 0 rgba(14,126,194,.5)}80%,100%{box-shadow:0 0 0 9px rgba(14,126,194,0)}}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes spinHex{0%{transform:rotate(0) scale(1)}50%{transform:rotate(180deg) scale(.9)}100%{transform:rotate(360deg) scale(1)}}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}
@keyframes pulseRing{0%{transform:scale(1); opacity:.8}100%{transform:scale(1.35); opacity:0}}
@keyframes aurora{0%{transform:translate3d(0,0,0) rotate(0)}100%{transform:translate3d(-4%,3%,0) rotate(6deg)}}
@keyframes floorMove{to{background-position:0 60px}}
@keyframes lineUp{to{transform:translateY(0)}}
@keyframes marquee{to{transform:translateX(-50%)}}
@keyframes scrollCue{0%{transform:translateY(0); opacity:1}70%{transform:translateY(14px); opacity:0}100%{opacity:0}}
@keyframes fadeUp{from{opacity:0; transform:translateY(18px)}to{opacity:1; transform:none}}
@keyframes rotateAng{to{--ang:360deg}}
@keyframes flowDot{0%{left:0; opacity:0}20%{opacity:1}80%{opacity:1}100%{left:calc(100% - 8px); opacity:0}}
@keyframes pop{0%{transform:scale(.4); opacity:0}60%{transform:scale(1.1); opacity:1}100%{transform:scale(1)}}
@media (prefers-reduced-motion: reduce){
  #ncd *,#ncd *::before,#ncd *::after,.preloader *{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important;}
  html{scroll-behavior:auto;}
  .js #ncd .reveal{opacity:1; transform:none; filter:none;}
  #ncd .hero-copy h1 .line > span{transform:none;}
  .cursor-glow{display:none;}
}

/* ---------- 14 RESPONSIVE ---------- */
@media (max-width:1180px){
  #ncd .main-nav > ul > li > a{padding:10px 10px; font-size:14px;}
  #ncd .grid-4{grid-template-columns:repeat(2,1fr);}
  #ncd .grid-5{grid-template-columns:repeat(3,1fr);}
  #ncd .footer-top{grid-template-columns:1fr 1fr; gap:40px;}
  #ncd .float-chip.c1{left:0;} #ncd .float-chip.c2{right:0;}
  #ncd .opps{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:1040px){
  #ncd .nav-toggle{display:block; position:relative; z-index:960;}
  #ncd .header-join{display:none;}
  #ncd .main-nav{position:fixed; top:0; right:0; bottom:0; width:min(380px,88vw); z-index:950; padding:96px 22px 30px; background:#fff; border-left:1px solid var(--line); box-shadow:-30px 0 60px -30px rgba(15,30,70,.35); transform:translateX(100%); transition:transform .5s var(--ease); overflow-y:auto;}
  #ncd .main-nav.open{transform:none;}
  #ncd .main-nav > ul{flex-direction:column; align-items:stretch; gap:2px;}
  #ncd .main-nav > ul > li > a{padding:14px 16px; font-size:16px; justify-content:space-between; border-radius:12px;}
  #ncd .main-nav > ul > li > a::after{display:none;}
  #ncd .submenu{position:static; transform:none !important; min-width:0; opacity:1; visibility:visible; display:none; box-shadow:none; background:var(--bg-soft); margin:4px 0 8px; border-radius:14px;}
  #ncd .has-sub:hover .submenu{display:none;}
  #ncd .has-sub.open .submenu{display:block;}
  #ncd .nav-mobile-cta{display:block; margin-top:18px;}
  #ncd .nav-mobile-cta .btn{width:100%;}
  #ncd .hero-inner,#ncd .page-hero .wrap{grid-template-columns:1fr; gap:40px;}
  #ncd .hero-visual{max-width:440px; margin:0 auto;}
  #ncd .page-hero-media{max-width:560px;}
  #ncd .split,#ncd .split.form-l,#ncd .split.form-r,#ncd .founder,#ncd .program-detail,#ncd .featured{grid-template-columns:1fr; gap:44px;}
  #ncd .featured-side{border-left:none; border-top:1px solid var(--line);}
  #ncd .sticky{position:static;}
  #ncd .grid-3{grid-template-columns:repeat(2,1fr);}
  #ncd .stats{grid-template-columns:repeat(2,1fr);}
  #ncd .stat:nth-child(2){border-right:none;}
  #ncd .stat:nth-child(-n+2){border-bottom:1px solid var(--line);}
  #ncd .milestones{grid-template-columns:repeat(2,1fr);}
  #ncd .milestones::before{display:none;}
  #ncd .gallery-grid{grid-template-columns:repeat(2,1fr);}
  #ncd .past-row{grid-template-columns:1fr 1fr;}
  #ncd .past-head{display:none;}
  #ncd .section-head-row{flex-direction:column; align-items:flex-start;}
  #ncd .community-band{padding:50px 34px;}
  #ncd .collage{margin:0 auto;}
}
@media (max-width:680px){
  :root{--header-h:70px;}
  #ncd .wrap{padding:0 16px;}
  #ncd .section{padding:76px 0;}
  #ncd .grid-2,#ncd .grid-3,#ncd .grid-4,#ncd .grid-5,#ncd .form-grid,#ncd .opps,#ncd .opps.two,#ncd .milestones,#ncd .check-list.cols-2{grid-template-columns:1fr;}
  #ncd .stats{grid-template-columns:1fr 1fr;}
  #ncd .stat{padding:26px 18px;}
  #ncd .card{padding:26px;}
  #ncd .img-card,#ncd .event-card,#ncd .news-card,#ncd .featured{padding:0;}
  #ncd .hero{padding-bottom:100px;}
  #ncd .hero-trust{gap:14px;}
  #ncd .float-chip{font-size:12px; padding:8px 12px 8px 8px;}
  #ncd .float-chip svg{width:28px; height:28px; padding:6px;}
  #ncd .float-chip small{display:none;}
  #ncd .float-chip.c2{right:-4px;}
  #ncd .brand-text strong{font-size:17px;}
  #ncd .brand-mark{width:36px; height:36px;}
  #ncd .gallery-grid{grid-template-columns:1fr 1fr; grid-auto-rows:150px; gap:12px;}
  #ncd .form-card,#ncd .featured-main,#ncd .featured-side,#ncd .vm-card{padding:28px 22px;}
  #ncd .cta-band{padding:60px 22px; border-radius:26px;}
  #ncd .community-band{padding:40px 22px; border-radius:24px;}
  #ncd .footer-top{grid-template-columns:1fr;}
  #ncd .past-row{grid-template-columns:1fr;}
  #ncd .flow{flex-direction:column;}
  #ncd .flow-node{width:100%;}
  #ncd .flow-x{width:2px; height:26px; background:linear-gradient(var(--violet),var(--blue));}
  #ncd .flow-x::after{display:none;}
  #ncd .tab-list{border-radius:20px;}
  #ncd .tab{padding:10px 16px; font-size:13.5px;}
  #ncd .page-hero{padding:calc(var(--header-h) + 44px) 0 60px;}
  #ncd .page-hero-media .ph-badge{left:12px; bottom:12px;}
  #ncd .hero-actions .btn{flex:1 1 auto;}
  .cursor-glow{display:none;}
}
