.nextgen-page { background:#333; color:#fff; }
.ng-panel { position:relative; isolation:isolate; min-height:max(760px,100svh); overflow:hidden; display:flex; align-items:center; padding:100px clamp(24px,7vw,112px); }
.ng-panel > img { position:absolute; inset:0; z-index:-2; width:100%; height:100%; object-fit:cover; filter:grayscale(1); }
.ng-panel::after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,#222e,#2229 50%,#2223); }
.ng-hero { justify-content:center; text-align:center; }
.ng-hero::after { background:linear-gradient(0deg,#2229,#2225 60%,#2228); }
.ng-hero-title h1 { max-width:none; font-size:clamp(4.5rem,10vw,9rem); margin:0 0 24px; letter-spacing:-.055em; }
.ng-hero-title p { font-size:clamp(.85rem,1.5vw,1.25rem); text-transform:uppercase; letter-spacing:.1em; }
.ng-scroll { position:absolute; bottom:35px; left:calc(50% - 25px); width:50px; min-height:50px; display:grid; place-items:center; font-size:2rem; }
.ng-overview { background:#FAF8F5; color:#111; }
.ng-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; padding:80px clamp(24px,7vw,112px); text-align:center; border-bottom:1px solid #E8E8E8; }
.ng-stats strong { display:block; font-size:clamp(3.5rem,6vw,6.5rem); font-weight:400; letter-spacing:-.06em; line-height:1; }
.ng-stats span { display:block; margin-top:18px; font-size:.75rem; letter-spacing:.08em; text-transform:uppercase; color:#444; }
.ng-overview-grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(35px,7vw,120px); align-items:center; padding:90px clamp(24px,7vw,112px) 110px; background:radial-gradient(ellipse at 75% 60%,#F5EBDD,transparent 65%); }
.ng-overview-copy { max-width:590px; }
.ng-overview h2 { font-size:clamp(2.5rem,4.3vw,4.8rem); line-height:1; margin:20px 0 30px; }
.ng-overview p { color:#444; font-size:1.07rem; line-height:1.7; }
.ng-overview :focus-visible { outline-color:#111; }
.ng-future-map { position:relative; min-height:580px; display:flex; flex-direction:column; align-items:center; padding:20px; }
.ng-future-heading { text-align:center; text-transform:uppercase; font-size:clamp(2rem,4.5vw,4rem); letter-spacing:.05em; font-weight:300; }
.ng-future-heading span { display:block; color:#444; font-size:.7rem; letter-spacing:.15em; margin-top:8px; }
.ng-future-map ol { flex:1; width:100%; max-width:290px; display:flex; flex-direction:column; justify-content:space-evenly; list-style:none; padding:20px 0; margin:0; }
.ng-future-map li { position:relative; display:grid; grid-template-columns:40px 1fr; align-items:center; gap:30px; padding:18px 0; }
.ng-future-map li::before { content:""; position:absolute; left:54px; top:0; bottom:0; border-left:1px solid #aaa; }
.ng-future-map li::after { content:""; position:absolute; left:50px; top:calc(50% - 4px); width:9px; height:9px; border:1px solid #444; border-radius:50%; background:#FAF8F5; }
.ng-future-map li span { font-size:.7rem; color:#666; text-align:right; }
.ng-future-map li b { font-size:.77rem; letter-spacing:.08em; text-transform:uppercase; }
.ng-human-core { width:140px; height:140px; border:1px solid #aaa; border-radius:50%; display:grid; place-content:center; text-align:center; box-shadow:0 0 70px #F5EBDD; background:radial-gradient(circle at 35% 25%,#fff,#E8E8E8); text-transform:uppercase; }
.ng-human-core small { color:#444; font-size:.65rem; letter-spacing:.15em; }
.ng-human-core strong { margin-top:8px; font-size:.94rem; letter-spacing:.04em; }
.ng-spec-panel { width:min(560px,54%); }
.ng-spec-panel h2,.ng-lower-title h2 { font-size:clamp(2.8rem,4.7vw,5rem); line-height:.98; margin-bottom:28px; }
.ng-spec-panel > p,.ng-spec-panel [role="tabpanel"] > p { font-size:1.05rem; line-height:1.65; }
.ng-tabs { display:flex; gap:clamp(14px,2vw,32px); margin:36px 0 26px; border-bottom:1px solid #ffffff40; }
.ng-tabs button { min-height:48px; padding:10px 0; color:#ccc; background:none; border:0; border-bottom:2px solid transparent; font-size:.78rem; font-weight:700; text-transform:uppercase; letter-spacing:.07em; }
.ng-tabs button[aria-selected="true"] { color:#fff; border-bottom-color:#fff; }
.ng-spec-panel dl { margin:25px 0 0; border-top:1px solid #ffffff40; }
.ng-spec-panel dl > div { display:flex; justify-content:space-between; gap:20px; padding:19px 0; border-bottom:1px solid #ffffff40; }
.ng-spec-panel dt,.ng-spec-panel dd { margin:0; font-size:.85rem; }
.ng-spec-panel dt { text-transform:uppercase; font-weight:700; }
.ng-spec-panel dd { text-align:right; }
.ng-film::after { background:linear-gradient(0deg,#222e,transparent 60%),#2223; }
.ng-film .video-stage { top:42%; }
.ng-lower-title { position:relative; margin-top:auto; padding-top:360px; max-width:750px; }
.ng-lower-title > a:not(.outline-button) { display:inline-flex; min-height:44px; align-items:center; text-decoration:underline; text-underline-offset:5px; font-size:.8rem; }
.ng-film .ng-lower-title { pointer-events:none; }
.ng-film .ng-lower-title a { pointer-events:auto; }
.ng-outcome { padding:28px 0; border-top:1px solid #ffffff40; border-bottom:1px solid #ffffff40; margin:32px 0; }
.ng-outcome strong { display:block; font-size:clamp(4rem,6vw,6rem); line-height:1; letter-spacing:-.05em; font-weight:400; }
.ng-outcome strong small { font-size:.4em; }
.ng-outcome > span { display:block; margin-top:18px; font-size:.8rem; line-height:1.6; text-transform:uppercase; letter-spacing:.06em; }
.ng-spec-panel .ng-source { font-size:.8rem; color:#ddd; }
.ng-source a { display:inline-block; padding:8px 0; text-decoration:underline; text-underline-offset:4px; }
.ng-closing { min-height:max(800px,100svh); }
.ng-closing > img { object-position:52% center; }
.ng-closing::after { background:linear-gradient(0deg,#222e,transparent 85%),linear-gradient(90deg,#2228,transparent 80%); }
.ng-closing .ng-lower-title p { font-size:1.1rem; margin-bottom:28px; }
@media(max-width:900px) {
.ng-overview-grid { grid-template-columns:1fr; }
.ng-overview-copy { max-width:720px; }
.ng-future-map { width:min(470px,100%); margin:auto; }
.ng-spec-panel { width:min(600px,100%); }
.ng-architecture::after,.ng-evidence::after { background:linear-gradient(90deg,#222f,#222b 75%,#2228); }
}
@media(max-width:600px) {
.ng-panel { min-height:100svh; padding:100px 22px 64px; }
.ng-stats { grid-template-columns:repeat(2,minmax(0,1fr)); gap:36px 16px; padding:55px 22px; }
.ng-stats strong { font-size:3.8rem; }
.ng-stats span { font-size:.68rem; margin-top:12px; }
.ng-overview-grid { padding:65px 22px; gap:35px; }
.ng-future-map { min-height:510px; }
.ng-hero-title h1 { font-size:clamp(3.7rem,17vw,5.5rem); }
.ng-hero-title p { max-width:280px; line-height:1.6; }
.ng-spec-panel h2,.ng-lower-title h2 { font-size:clamp(2.5rem,10vw,3.6rem); }
.ng-tabs { gap:20px; }
.ng-tabs button { font-size:.68rem; }
.ng-spec-panel dl > div { padding:17px 0; }
.ng-spec-panel > p,.ng-spec-panel [role="tabpanel"] > p { font-size:1rem; }
.ng-lower-title { padding-top:330px; }
.ng-film { min-height:740px; }
.ng-film .video-stage { top:38%; width:calc(100% - 32px); }
.ng-closing > img { object-position:46% center; }
}
