/*
Theme Name: New Eton College
Theme URI: https://newetoncollege.com/
Author: New Eton College
Description: A responsive college theme with four full-screen sections, gentle parallax depth, and editable contact and image settings.
Version: 2.4.3
Requires at least: 6.4
Requires PHP: 7.4
Text Domain: new-eton-college
*/

:root {
	--ne-ink: #102f2b;
	--ne-deep: #0b2724;
	--ne-paper: #faf8f2;
	--ne-cream: #f3f0e7;
	--ne-lime: #d7f06f;
	--ne-aqua: #87d9d0;
	--ne-blue: #9fc8f2;
	--ne-sand: #e9cfa5;
	--ne-line: rgba(16, 47, 43, .17);
	--ne-pad: clamp(1.25rem, 6vw, 7.5rem);
	--ne-ease: cubic-bezier(.2, .78, .22, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; overflow-x: hidden; background: var(--ne-cream); color: var(--ne-ink); font-family: Arial, Helvetica, sans-serif; -webkit-font-smoothing: antialiased; }
body.menu-open, body.ne-news-dialog-open { overflow: hidden; }
body::selection { background: var(--ne-lime); color: var(--ne-ink); }
a { color: inherit; text-decoration: none; }
button { color: inherit; font: inherit; }
img { display: block; max-width: 100%; }
section { scroll-margin-top: 5rem; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }

.ne-progress { position: fixed; top: 0; right: 0; left: 0; z-index: 9999; height: 3px; background: var(--ne-lime); transform: scaleX(0); transform-origin: left; will-change: transform; }
.admin-bar .ne-header { top: 32px; }

.ne-header { position: fixed; top: 0; right: 0; left: 0; z-index: 500; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; min-height: 5.4rem; padding: 1rem clamp(1.25rem, 4vw, 4.75rem); color: #fff; transition: min-height .35s var(--ne-ease), color .35s, background .35s, box-shadow .35s; }
.ne-header.is-scrolled { min-height: 4.6rem; background: rgba(243,240,231,.9); box-shadow: 0 .7rem 2.2rem rgba(16,47,43,.08); color: var(--ne-ink); backdrop-filter: blur(18px) saturate(130%); }
.ne-brand { display: inline-flex; width: max-content; align-items: center; gap: .75rem; }
.ne-mark { display: grid; width: 2.7rem; aspect-ratio: 1; place-items: center; border: 1px solid currentColor; border-radius: 50%; font: 600 1rem Georgia, serif; }
.ne-brand > span:last-child { display: flex; flex-direction: column; line-height: .95; }
.ne-brand strong { font: 500 1.08rem Georgia, serif; }
.ne-brand small { margin-top: .2rem; font-size: .54rem; font-weight: 800; letter-spacing: .21em; text-transform: uppercase; }
.ne-brand .custom-logo { width: 3rem; height: 3rem; object-fit: contain; }
.ne-nav { display: flex; gap: clamp(1rem, 2.2vw, 2.4rem); align-items: center; }
.ne-nav a { position: relative; font-size: .69rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.ne-nav a::after { position: absolute; right: 0; bottom: -.45rem; left: 0; height: 1px; background: currentColor; content: ""; transform: scaleX(0); transform-origin: right; transition: transform .3s var(--ne-ease); }
.ne-nav a:hover::after { transform: scaleX(1); transform-origin: left; }
.ne-menu-toggle { display: none; justify-self: end; width: 3rem; aspect-ratio: 1; padding: .9rem; border: 1px solid currentColor; border-radius: 50%; background: transparent; }
.ne-menu-toggle > span:not(.screen-reader-text) { display: block; height: 1px; margin: .25rem 0; background: currentColor; transition: transform .3s, opacity .3s; }
.ne-menu-toggle[aria-expanded="true"] > span:first-child { transform: translateY(5px) rotate(45deg); }
.ne-menu-toggle[aria-expanded="true"] > span:nth-child(2) { transform: rotate(-45deg); }

.ne-mobile-menu { position: fixed; z-index: 450; inset: 0; display: flex; padding: 8rem 1.5rem 2rem; flex-direction: column; justify-content: space-between; background: var(--ne-deep); color: white; opacity: 0; visibility: hidden; transform: translateY(-1rem); transition: opacity .35s, visibility .35s, transform .45s var(--ne-ease); }
.ne-mobile-menu.is-open { opacity: 1; visibility: visible; transform: none; }
.ne-mobile-menu nav { display: grid; }
.ne-mobile-menu nav a { display: grid; grid-template-columns: 2.6rem 1fr; align-items: baseline; padding: 1rem 0; border-bottom: 1px solid rgba(255,255,255,.16); font: 400 clamp(2.5rem, 10vw, 4.8rem)/1 Georgia, serif; }
.ne-mobile-menu nav span { color: var(--ne-lime); font: 800 .58rem Arial, sans-serif; }
.ne-mobile-call { color: var(--ne-lime); font-size: .75rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }

.ne-hero { position: relative; width: 100%; height: 100svh; min-height: 42rem; overflow: hidden; background: var(--ne-deep); isolation: isolate; }
.ne-hero::before { position: absolute; z-index: -2; inset: -2rem; background-image: linear-gradient(rgba(8,29,26,.24),rgba(8,29,26,.24)), var(--hero-image); background-position: center; background-size: cover; content: ""; filter: blur(22px) saturate(.9); opacity: .78; transform: scale(1.08); }
.ne-hero::after { position: absolute; z-index: 1; inset: 0; background: linear-gradient(180deg,rgba(7,25,23,.58),transparent 25%,transparent 74%,rgba(7,25,23,.44)); content: ""; pointer-events: none; }
.ne-hero-art { position: absolute; inset: 0; animation: ne-fade 1s ease both; }
.ne-hero-art picture { display: block; width: 100%; height: 100%; }
.ne-hero-art img { width: 100%; height: 100%; object-fit: contain; object-position: center; filter: drop-shadow(0 1.5rem 3rem rgba(0,0,0,.24)); }
.ne-hero-pill { position: absolute; z-index: 3; top: clamp(6.6rem,12vh,9rem); right: clamp(1.25rem,5vw,6.5rem); display: flex; align-items: center; gap: 1rem; padding: .65rem .7rem .65rem 1rem; border: 1px solid rgba(255,255,255,.52); border-radius: 999px; background: rgba(250,248,242,.87); box-shadow: 0 1rem 2.5rem rgba(7,25,23,.16); color: var(--ne-ink); backdrop-filter: blur(16px); }
.ne-hero-pill > span { font-size: .62rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.ne-hero-pill a { display: flex; align-items: center; gap: .8rem; padding: .8rem 1rem; border-radius: 999px; background: var(--ne-ink); color: white; font-size: .68rem; font-weight: 800; text-transform: uppercase; }
.ne-hero-pill i { color: var(--ne-lime); font-style: normal; transition: transform .2s; }
.ne-hero-pill a:hover i { transform: translateX(.25rem); }
.ne-scroll-cue { position: absolute; z-index: 3; right: clamp(1rem,3vw,3rem); bottom: clamp(1rem,2vw,2rem); display: flex; align-items: center; gap: .75rem; padding: .65rem .8rem; border: 1px solid rgba(255,255,255,.3); border-radius: 999px; background: rgba(7,25,23,.42); color: white; font-size: .58rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; backdrop-filter: blur(10px); }
.ne-scroll-cue span { position: relative; width: 3.5rem; height: 1px; overflow: hidden; background: rgba(255,255,255,.35); }
.ne-scroll-cue span::after { position: absolute; inset: 0; background: var(--ne-lime); content: ""; animation: ne-scroll 2s ease-in-out infinite; }

.ne-facts { display: flex; overflow: hidden; background: var(--ne-ink); color: white; }
.ne-facts > div { display: flex; min-width: max-content; align-items: center; gap: 2rem; padding: 1rem; animation: ne-marquee 26s linear infinite; }
.ne-facts span { font: 500 clamp(1rem,1.7vw,1.6rem) Georgia, serif; }
.ne-facts i { color: var(--ne-lime); font-style: normal; }
.ne-section { position: relative; padding: clamp(6rem,11vw,11rem) var(--ne-pad); }
.ne-kicker { display: flex; align-items: center; gap: .7rem; margin: 0; font-size: .64rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.ne-kicker span { display: grid; min-width: 2rem; place-items: center; padding: .32rem .45rem; border: 1px solid currentColor; border-radius: 999px; font-size: .52rem; }
.ne-heading { position: relative; z-index: 2; }
.ne-heading > div { display: grid; grid-template-columns: minmax(0,1.22fr) minmax(18rem,.78fr); gap: clamp(3rem,9vw,10rem); align-items: end; margin-top: clamp(2rem,4.5vw,4.5rem); }
.ne-heading h2 { max-width: 11ch; margin: 0; font: 400 clamp(3.6rem,7.4vw,8.2rem)/.88 Georgia, serif; letter-spacing: -.07em; }
.ne-heading h2 em { display: block; margin-top: .2em; color: #2f8379; font-size: .86em; font-weight: 400; }
.ne-heading > div > p, .ne-heading > div > div > p { max-width: 31rem; margin: 0 0 1.1rem; color: rgba(16,47,43,.69); font-size: clamp(.98rem,1.2vw,1.12rem); line-height: 1.75; }
[data-reveal] { opacity: 0; transform: translateY(2.2rem); transition: opacity .75s ease, transform .85s var(--ne-ease); }
[data-reveal].is-visible { opacity: 1; transform: none; }

.ne-about { overflow: hidden; background: var(--ne-paper); }
.ne-about::before { position: absolute; top: 8%; right: -10%; width: 38rem; height: 38rem; border-radius: 50%; background: radial-gradient(circle,rgba(135,217,208,.33),transparent 66%); content: ""; filter: blur(16px); }
.ne-about-grid { position: relative; display: grid; grid-template-columns: 7fr 5fr; gap: 1rem; margin-top: clamp(4rem,8vw,8rem); }
.ne-about-grid article { position: relative; min-height: 29rem; overflow: hidden; padding: clamp(1.5rem,3vw,3rem); border: 1px solid var(--ne-line); border-radius: 1.5rem; transition: transform .45s var(--ne-ease), box-shadow .45s; }
.ne-about-grid article:hover { box-shadow: 0 2rem 4rem rgba(16,47,43,.11); transform: translateY(-.5rem); }
.ne-about-grid small, .ne-values span { font-size: .6rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.ne-about-main { background: var(--ne-aqua); }
.ne-about-main h3 { max-width: 10ch; margin: 2.6rem 0 1.4rem; font: 400 clamp(2.7rem,4.5vw,5.2rem)/.93 Georgia, serif; letter-spacing: -.05em; }
.ne-about-main p { max-width: 29rem; color: rgba(16,47,43,.7); line-height: 1.7; }
.ne-about-main b { position: absolute; right: -4rem; bottom: -4rem; display: grid; width: 15rem; aspect-ratio: 1; place-items: center; border: 1px solid rgba(16,47,43,.2); border-radius: 50%; font: 500 2rem Georgia, serif; }
.ne-values { background: var(--ne-cream); }
.ne-values ol { margin: 5rem 0 0; padding: 0; list-style: none; }
.ne-values li { display: grid; grid-template-columns: 2rem 1fr; gap: .7rem; padding: 1.5rem 0; border-top: 1px solid var(--ne-line); font: 500 clamp(1.4rem,2vw,2rem) Georgia, serif; }
.ne-values li span { color: #2f8379; font-family: Arial, sans-serif; }

.ne-departments { overflow: hidden; padding-top: clamp(2.25rem,3.5vw,3.75rem); padding-bottom: clamp(3.5rem,5vw,5rem); background: #f4efe5; }
.ne-departments::before { position: absolute; top: 8%; right: -10rem; width: 36rem; height: 36rem; border-radius: 50%; background: radial-gradient(circle,rgba(86,205,177,.2),transparent 68%); content: ""; }
.ne-departments .ne-heading > div { grid-template-columns: minmax(0,1fr) auto; gap: 1.25rem; margin-top: clamp(.8rem,1.4vw,1.2rem); }
.ne-departments .ne-heading h2 { max-width: none; font-size: clamp(3rem,4.5vw,5.2rem); line-height: .9; white-space: nowrap; }
.ne-departments .ne-heading h2 em { display: inline; margin: 0 0 0 .12em; }
.ne-dept-controls { display: none; gap: .55rem; margin-top: 1.2rem; }
.ne-dept-controls button { display: grid; width: 2.8rem; aspect-ratio: 1; place-items: center; border: 1px solid var(--ne-line); border-radius: 50%; background: transparent; cursor: pointer; }
.ne-dept-rail { position: relative; display: flex; width: 100%; height: clamp(34rem,66vw,48rem); max-height: 76vh; gap: clamp(.35rem,.65vw,.72rem); margin-top: clamp(1.2rem,2vw,2rem); overflow: hidden; }
.ne-dept-card { position: relative; min-width: 2.9rem; flex: 0 1 4.6rem; overflow: hidden; border-radius: 1.2rem; background: #173f3a; box-shadow: 0 1.2rem 3rem rgba(21,54,50,.08); transition: flex .7s var(--ne-ease), box-shadow .5s; }
.ne-dept-card.is-active, .ne-dept-card:hover, .ne-dept-card:focus-within { flex: 1 1 29rem; box-shadow: 0 2rem 4rem rgba(11,39,36,.24); }
.ne-dept-rail:hover .ne-dept-card.is-active:not(:hover):not(:focus-within) { flex: 0 1 4.6rem; }
.ne-dept-card button { position: absolute; inset: 0; width: 100%; height: 100%; padding: 0; overflow: hidden; border: 0; background: transparent; color: white; cursor: pointer; text-align: left; }
.ne-dept-card img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.9); transform: scale(1.03); transition: transform 1.1s var(--ne-ease), filter .5s; }
.ne-dept-card:is(.is-active,:hover,:focus-within) img { filter: saturate(1.06); transform: none; }
.ne-dept-shade { position: absolute; inset: 0; background: linear-gradient(180deg,rgba(4,25,23,.12),transparent 36%),linear-gradient(0deg,rgba(4,25,23,.95),rgba(4,25,23,.06) 62%); }
.ne-dept-number { position: absolute; z-index: 2; top: 1rem; left: 50%; font-size: .6rem; font-weight: 800; letter-spacing: .16em; transform: translateX(-50%); }
.ne-dept-name { position: absolute; z-index: 2; bottom: 1.25rem; left: 50%; font-size: .76rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; writing-mode: vertical-rl; transform: translateX(-50%) rotate(180deg); transition: opacity .2s; }
.ne-dept-card:is(.is-active,:hover,:focus-within) .ne-dept-name { opacity: 0; }
.ne-dept-details { position: absolute; z-index: 3; right: clamp(1.2rem,2vw,2rem); bottom: clamp(1.2rem,2vw,2rem); left: clamp(1.2rem,2vw,2rem); display: grid; grid-template-columns: 1fr auto; align-items: end; gap: .65rem 1rem; opacity: 0; transform: translateY(1rem); transition: opacity .35s ease .12s, transform .45s var(--ne-ease) .1s; }
.ne-dept-card:is(.is-active,:hover,:focus-within) .ne-dept-details { opacity: 1; transform: none; }
.ne-dept-details strong { grid-column: 1/-1; max-width: 12ch; font: 500 clamp(2rem,4vw,4.8rem)/.88 Georgia,serif; letter-spacing: -.05em; }
.ne-dept-details small { max-width: 31rem; color: rgba(255,255,255,.84); font-size: clamp(.8rem,1vw,.98rem); line-height: 1.55; }
.ne-dept-details i { grid-column: 1; font-size: .6rem; font-style: normal; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.ne-dept-details b { grid-column: 2; grid-row: 2/span 2; display: grid; width: 2.9rem; aspect-ratio: 1; place-items: center; border: 1px solid rgba(255,255,255,.55); border-radius: 50%; }
.ne-swipe-hint { display: none; }

.ne-curriculum { overflow: hidden; background: var(--ne-ink); color: white; }
.ne-curriculum::before { position: absolute; inset: 0; background: radial-gradient(circle at 85% 0%,rgba(135,217,208,.2),transparent 32%); content: ""; }
.ne-inverse h2 em { color: var(--ne-lime); }
.ne-heading.ne-inverse > div > p, .ne-heading.ne-inverse > div > div > p { color: rgba(255,255,255,.68); }
.ne-inverse a { display: inline-block; margin-top: 1rem; color: var(--ne-lime); font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.ne-curriculum-grid { position: relative; display: grid; grid-template-columns: repeat(4,1fr); gap: 1rem; margin-top: clamp(4rem,8vw,8rem); }
.ne-curriculum-card { display: flex; min-height: 33rem; flex-direction: column; padding: 1.5rem; border-radius: 1.4rem; color: var(--ne-ink); transition: transform .5s var(--ne-ease), box-shadow .5s; }
.ne-curriculum-card:hover { z-index: 2; box-shadow: 0 2rem 4rem rgba(0,0,0,.28); transform: translateY(-1rem); }
.tone-aqua { background: var(--ne-aqua); } .tone-lime { background: var(--ne-lime); } .tone-sand { background: var(--ne-sand); } .tone-blue { background: var(--ne-blue); }
.ne-curriculum-card > span, .ne-curriculum-card small { font-size: .6rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.ne-curriculum-card h3 { margin: 5rem 0 1.2rem; font: 500 clamp(2.2rem,3vw,3.7rem)/.94 Georgia,serif; letter-spacing: -.045em; }
.ne-curriculum-card p { color: rgba(16,47,43,.72); font-size: .88rem; line-height: 1.68; }
.ne-curriculum-card small { margin-top: auto; padding-top: 1rem; border-top: 1px solid rgba(16,47,43,.2); }

.ne-campus { position: relative; height: min(84svh,56rem); min-height: 38rem; overflow: hidden; background: var(--ne-deep); color: white; }
.ne-campus > img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.5s var(--ne-ease); }
.ne-campus:hover > img { transform: scale(1.03); }
.ne-campus::after { position: absolute; inset: 0; background: linear-gradient(90deg,rgba(5,25,23,.72),transparent 62%),linear-gradient(0deg,rgba(5,25,23,.35),transparent 55%); content: ""; }
.ne-campus > div { position: absolute; z-index: 2; bottom: clamp(2rem,7vw,7rem); left: var(--ne-pad); }
.ne-campus span { font-size: .62rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.ne-campus h2 { margin: 1.3rem 0 2rem; font: 400 clamp(4rem,8vw,9rem)/.84 Georgia,serif; letter-spacing: -.07em; }
.ne-campus h2 em { display: block; color: var(--ne-lime); font-weight: 400; }
.ne-campus a { font-size: .68rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }

.ne-history { background: var(--ne-paper); }
.ne-history-grid { display: grid; grid-template-columns: repeat(4,1fr); margin-top: clamp(4rem,7vw,7rem); border-top: 1px solid var(--ne-line); border-bottom: 1px solid var(--ne-line); }
.ne-history-grid article { position: relative; min-height: 25rem; padding: 2rem 1.4rem; border-right: 1px solid var(--ne-line); transition: background .25s, transform .4s var(--ne-ease); }
.ne-history-grid article:last-child { border-right: 0; }
.ne-history-grid article:hover { background: var(--ne-cream); transform: translateY(-.4rem); }
.ne-history-grid span { color: #2f8379; font-size: .64rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.ne-history-grid h3 { margin: 5rem 0 1rem; font: 500 clamp(1.8rem,2.6vw,3rem)/1 Georgia,serif; }
.ne-history-grid p { color: rgba(16,47,43,.68); font-size: .86rem; line-height: 1.65; }
.ne-history-grid i { position: absolute; right: 1.4rem; bottom: 1.6rem; color: #2f8379; font-style: normal; }

.ne-news { overflow: hidden; background: #0d2926; color: white; }
.ne-news::before { position: absolute; inset: 0; background: radial-gradient(circle at 18% 100%,rgba(91,211,181,.18),transparent 34%); content: ""; }
.ne-news-grid { position: relative; display: grid; grid-template-columns: repeat(4,1fr); gap: 1px; margin-top: clamp(3rem,6vw,6rem); overflow: hidden; border: 1px solid rgba(255,255,255,.16); border-radius: 1.4rem; background: rgba(255,255,255,.16); }
.ne-news-card { position: relative; display: flex; width: 100%; min-height: 24rem; flex-direction: column; padding: clamp(1.4rem,2.3vw,2.4rem); border: 0; background: #123531; color: white; text-align: left; cursor: pointer; transition: background .25s, transform .35s; }
.ne-news-card:hover { z-index: 2; background: #194a43; transform: translateY(-.35rem); }
.ne-news-card > :not(.ne-news-card-image):not(.ne-news-card-scrim) { position: relative; z-index: 2; }
.ne-news-card-image,.ne-news-card-scrim { position: absolute; inset: 0; }
.ne-news-card-image img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.01); transition: transform .65s var(--ne-ease); }
.ne-news-card-scrim { background: linear-gradient(180deg,rgba(6,29,26,.42) 0%,rgba(6,29,26,.66) 45%,rgba(6,29,26,.98) 100%); }
.ne-news-card.has-image:hover .ne-news-card-image img,.ne-news-card.has-image:focus-visible .ne-news-card-image img { transform: scale(1.075); }
.ne-news-grid span, .ne-news-grid i { font-size: .6rem; font-style: normal; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.ne-news-grid h3 { max-width: 12ch; margin: 3rem 0 1rem; font: 500 clamp(1.8rem,2.4vw,3rem)/.98 Georgia,serif; letter-spacing: -.04em; }
.ne-news-grid p { display: -webkit-box; overflow: hidden; color: rgba(255,255,255,.7); font-size: .86rem; line-height: 1.62; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.ne-news-grid i { margin-top: auto; color: var(--ne-lime); }

.ne-news-dialog { width: min(92vw,52rem); max-width: none; max-height: min(90svh,54rem); padding: 0; overflow: hidden; border: 0; border-radius: clamp(1.1rem,3vw,2rem); background: transparent; color: var(--ne-ink); box-shadow: 0 2.5rem 8rem rgba(0,0,0,.36); }
.ne-news-dialog::backdrop { background: rgba(3,24,21,.72); backdrop-filter: blur(10px) saturate(.78); }
.ne-news-dialog-panel { position: relative; max-height: min(90svh,54rem); padding: clamp(1.25rem,5vw,3.5rem); overflow-y: auto; border: 1px solid rgba(16,47,43,.14); border-radius: inherit; background: var(--ne-paper); scrollbar-width: none; }
.ne-news-dialog-panel::-webkit-scrollbar { display: none; }
.ne-news-dialog-close { position: sticky; z-index: 2; top: 0; display: flex; min-height: 3rem; margin: 0 0 1rem auto; align-items: center; gap: .55rem; padding: .45rem .55rem .45rem .9rem; border: 1px solid var(--ne-line); border-radius: 999px; background: rgba(250,248,242,.94); color: var(--ne-ink); font-size: .68rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; cursor: pointer; backdrop-filter: blur(12px); }
.ne-news-dialog-close b { display: grid; width: 2rem; aspect-ratio: 1; place-items: center; border-radius: 50%; background: var(--ne-ink); color: white; font: 400 1.35rem/1 Arial,sans-serif; }
.ne-news-dialog-kicker { margin: 0 0 1.2rem; color: #2f8379; font-size: .66rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.ne-news-dialog-image { margin: 0 0 clamp(1.5rem,4vw,2.6rem); overflow: hidden; border-radius: clamp(.8rem,2vw,1.4rem); background: #dce4dc; }
.ne-news-dialog-image img { display: block; width: 100%; max-height: 25rem; aspect-ratio: 16/9; object-fit: cover; }
.ne-news-dialog-copy h2 { max-width: 12ch; margin: 0; font: 500 clamp(2.6rem,7vw,5.8rem)/.9 Georgia,serif; letter-spacing: -.055em; }
.ne-news-dialog-body { display: grid; gap: 1rem; max-width: 43rem; margin-top: clamp(1.8rem,4vw,3rem); }
.ne-news-dialog-body p { margin: 0; color: rgba(16,47,43,.76); font-size: clamp(.95rem,2vw,1.08rem); line-height: 1.7; }
.ne-news-dialog-body img { display: block; max-width: 100%; height: auto; border-radius: .8rem; }
.ne-news-dialog-body figure { max-width: 100%; margin: .6rem 0; }
.ne-news-dialog-actions { display: flex; gap: .65rem; margin-top: clamp(1.8rem,4vw,3rem); flex-wrap: wrap; }
.ne-news-dialog-actions a,.ne-news-dialog-actions button { display: inline-flex; min-height: 3.1rem; align-items: center; justify-content: center; gap: .75rem; padding: .75rem 1.1rem; border: 1px solid var(--ne-ink); border-radius: 999px; background: transparent; color: var(--ne-ink); font-size: .68rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; cursor: pointer; }
.ne-news-dialog-actions a { background: var(--ne-ink); color: white; }
.ne-news-dialog-actions a span { color: var(--ne-lime); }

@media (max-width: 600px) {
	.ne-news-dialog { width: calc(100vw - 1rem); max-height: calc(100svh - 1rem); }
	.ne-news-dialog-panel { max-height: calc(100svh - 1rem); padding: 1rem; }
	.ne-news-dialog-copy h2 { font-size: clamp(2.35rem,12vw,3.75rem); }
	.ne-news-dialog-actions { display: grid; grid-template-columns: 1fr; }
}

.ne-contact { overflow: hidden; background: #173f3a; color: white; }
.ne-contact::before { position: absolute; top: -16rem; left: -12rem; width: 42rem; height: 42rem; border-radius: 50%; background: radial-gradient(circle,rgba(229,255,80,.22),transparent 66%); content: ""; }
.ne-contact-grid { position: relative; display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(3rem,8vw,9rem); }
.ne-light { color: white; }
.ne-contact-grid > div:first-child h2 { margin: 2rem 0; font: 500 clamp(4.6rem,9vw,9rem)/.78 Georgia,serif; letter-spacing: -.075em; }
.ne-contact-grid > div:first-child h2 em { display: block; color: var(--ne-lime); font-weight: 400; }
.ne-contact-grid > div:first-child > p:last-child { max-width: 31rem; color: rgba(255,255,255,.72); line-height: 1.7; }
.ne-contact-cards { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; }
.ne-contact-cards a { display: flex; min-height: 13rem; flex-direction: column; padding: clamp(1.25rem,2vw,2rem); border: 1px solid rgba(255,255,255,.15); border-radius: 1.2rem; background: rgba(255,255,255,.075); backdrop-filter: blur(10px); transition: background .22s, transform .26s, border-color .22s; }
.ne-contact-cards a:hover { border-color: rgba(229,255,80,.55); background: rgba(255,255,255,.12); transform: translateY(-.3rem); }
.ne-contact-cards span, .ne-contact-cards i { font-size: .6rem; font-style: normal; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.ne-contact-cards strong { margin-top: 1.2rem; font: 500 clamp(1.45rem,2vw,2.2rem)/1.05 Georgia,serif; }
.ne-contact-cards small { margin-top: .7rem; color: rgba(255,255,255,.58); font-size: .7rem; line-height: 1.45; }
.ne-contact-cards i { margin-top: auto; color: var(--ne-lime); }

.ne-footer { padding: 2rem var(--ne-pad); background: var(--ne-ink); color: white; }
.ne-footer-top { display: grid; grid-template-columns: 1fr 1fr auto; align-items: center; gap: 2rem; padding: 1rem 0 3rem; border-bottom: 1px solid rgba(255,255,255,.18); }
.ne-footer-top p { margin: 0; color: rgba(255,255,255,.64); font-size: .75rem; line-height: 1.55; }
.ne-back-top { display: grid; width: 3rem; aspect-ratio: 1; place-items: center; border: 1px solid rgba(255,255,255,.35); border-radius: 50%; }
.ne-footer-main { display: flex; align-items: end; justify-content: space-between; gap: 2rem; padding: clamp(3rem,7vw,7rem) 0; }
.ne-footer-main h2 { margin: 0; font: 500 clamp(5rem,15vw,14rem)/.7 Georgia,serif; letter-spacing: -.08em; }
.ne-footer-main nav { display: grid; gap: .7rem; font-size: .68rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.ne-footer-bottom { display: flex; justify-content: space-between; gap: 1rem; padding-top: 1rem; border-top: 1px solid rgba(255,255,255,.18); color: rgba(255,255,255,.6); font-size: .62rem; letter-spacing: .08em; text-transform: uppercase; }

.ne-posts { min-height: 70vh; padding-top: 10rem; }
.ne-posts > h1 { font: 500 clamp(3.5rem,7vw,7rem)/.9 Georgia,serif; }
.ne-post-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1rem; }
.ne-post-card { padding: 2rem; border: 1px solid var(--ne-line); border-radius: 1rem; background: var(--ne-paper); }
.ne-post-card h2 { font: 500 2rem Georgia,serif; }

@keyframes ne-fade { from { opacity: 0; transform: scale(1.02); } to { opacity: 1; transform: none; } }
@keyframes ne-scroll { 0% { transform: translateX(-100%); } 55%,100% { transform: translateX(100%); } }
@keyframes ne-marquee { to { transform: translateX(-100%); } }

@media (max-width: 1180px) and (min-width: 981px) {
	.ne-nav { gap: 1.1rem; }
	.ne-dept-rail { gap: .35rem; }
	.ne-dept-card { min-width: 2.5rem; flex-basis: 3.4rem; }
	.ne-dept-card.is-active, .ne-dept-card:hover, .ne-dept-card:focus-within { flex-basis: 21rem; }
	.ne-dept-rail:hover .ne-dept-card.is-active:not(:hover):not(:focus-within) { flex-basis: 3.4rem; }
}

@media (max-width: 980px) {
	.ne-header { grid-template-columns: 1fr auto; }
	.ne-nav { display: none; }
	.ne-menu-toggle { display: block; }
	.ne-heading > div { grid-template-columns: 1fr; gap: 2rem; }
	.ne-departments .ne-heading > div { grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: 1rem; }
	.ne-departments .ne-heading h2 { font-size: clamp(3rem,8vw,5rem); }
	.ne-departments .ne-dept-controls { margin-top: 0; }
	.ne-about-grid { grid-template-columns: 1fr; }
	.ne-dept-controls { display: flex; }
	.ne-dept-rail { height: auto; max-height: none; gap: .9rem; margin-right: calc(var(--ne-pad) * -1); padding-right: var(--ne-pad); overflow-x: auto; overflow-y: hidden; scroll-padding-inline: var(--ne-pad); scroll-snap-type: x mandatory; scrollbar-width: none; }
	.ne-dept-rail::-webkit-scrollbar { display: none; }
	.ne-dept-card, .ne-dept-card.is-active, .ne-dept-card:hover, .ne-dept-card:focus-within, .ne-dept-rail:hover .ne-dept-card.is-active:not(:hover):not(:focus-within) { min-width: 0; height: min(37rem,72svh); flex: 0 0 min(78vw,27rem); scroll-snap-align: start; }
	.ne-dept-name { display: none; }
	.ne-dept-details, .ne-dept-card:is(.is-active,:hover,:focus-within) .ne-dept-details { opacity: 1; transform: none; }
	.ne-dept-details strong { font-size: clamp(2.5rem,10vw,4.5rem); }
	.ne-dept-number { right: 1rem; left: auto; transform: none; }
	.ne-swipe-hint { display: flex; justify-content: flex-end; gap: .55rem; margin-top: 1rem; font-size: .6rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
	.ne-curriculum-grid, .ne-history-grid, .ne-news-grid { grid-template-columns: 1fr 1fr; }
	.ne-history-grid article:nth-child(2) { border-right: 0; }
	.ne-contact-grid { grid-template-columns: 1fr; }
	.ne-post-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 782px) { .admin-bar .ne-header { top: 46px; } }

@media (max-width: 620px) {
	.ne-hero { min-height: 35rem; }
	.ne-hero-pill { top: 5.3rem; right: .8rem; left: .8rem; justify-content: space-between; gap: .5rem; padding-left: .8rem; }
	.ne-hero-pill > span { font-size: .53rem; }
	.ne-hero-pill a { padding: .7rem .85rem; font-size: .62rem; }
	.ne-scroll-cue { right: .8rem; bottom: .8rem; }
	.ne-section { padding-top: 5.5rem; padding-bottom: 5.5rem; }
	.ne-departments { padding-top: 2.75rem; padding-bottom: 3.5rem; }
	.ne-heading h2 { font-size: clamp(3.35rem,18vw,5.8rem); }
	.ne-departments .ne-heading h2 { font-size: clamp(2.65rem,11.5vw,4rem); }
	.ne-departments .ne-heading h2 em { display: inline; margin: 0 0 0 .12em; }
	.ne-departments .ne-dept-controls { gap: .35rem; }
	.ne-departments .ne-dept-controls button { width: 2.4rem; }
	.ne-about-grid article { min-height: 25rem; }
	.ne-dept-card, .ne-dept-card.is-active, .ne-dept-card:hover, .ne-dept-card:focus-within, .ne-dept-rail:hover .ne-dept-card.is-active:not(:hover):not(:focus-within) { height: min(34rem,68svh); flex-basis: 82vw; }
	.ne-curriculum-grid, .ne-history-grid, .ne-news-grid, .ne-contact-cards, .ne-post-grid { grid-template-columns: 1fr; }
	.ne-curriculum-card { min-height: 25rem; }
	.ne-history-grid article { min-height: 20rem; border-right: 0; border-bottom: 1px solid var(--ne-line); }
	.ne-news-card { min-height: 20rem; }
	.ne-contact-grid > div:first-child h2 { font-size: clamp(4.2rem,21vw,7rem); }
	.ne-contact-cards a { min-height: 11rem; }
	.ne-footer-top { grid-template-columns: 1fr auto; }
	.ne-footer-top > p { display: none; }
	.ne-footer-main { align-items: start; flex-direction: column; }
	.ne-footer-bottom { flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
	[data-reveal] { opacity: 1; transform: none; }
}

/* Compact single-action footer. */
.ne-footer.ne-footer-minimal { display: grid; min-height: clamp(7rem,12vw,10rem); place-items: center; padding: 1.5rem; border-top: 1px solid rgba(255,255,255,.14); }
.ne-footer-up { display: grid; width: clamp(3.4rem,5vw,4.6rem); aspect-ratio: 1; place-items: center; border: 1px solid rgba(255,255,255,.42); border-radius: 50%; background: rgba(255,255,255,.04); color: white; font-size: clamp(1rem,1.5vw,1.35rem); transition: color .22s, background .22s, border-color .22s, box-shadow .3s, transform .3s var(--ne-ease); }
.ne-footer-up:hover, .ne-footer-up:focus-visible { border-color: var(--ne-lime); background: var(--ne-lime); color: var(--ne-ink); box-shadow: 0 0 0 .55rem rgba(215,240,111,.12); transform: translateY(-.35rem); }
.ne-footer-up span { transition: transform .3s var(--ne-ease); }

/* Layered parallax depth; important text remains in the normal document flow. */
[data-ne-parallax] { --ne-parallax-y: 0px; }
.ne-hero { perspective: 1200px; transform-style: preserve-3d; }
.ne-hero::before { opacity: .54; filter: blur(32px) saturate(.88); transform: scale(1.16); }
.ne-parallax-backdrop { position: absolute; z-index: -1; inset: -14%; background: linear-gradient(180deg,rgba(5,24,21,.2),rgba(5,24,21,.48)),var(--hero-image) center/cover no-repeat; filter: blur(30px) saturate(.8); opacity: .78; pointer-events: none; transform: translate3d(0,var(--ne-parallax-y),-150px) scale(1.2); will-change: transform; }
.ne-depth-lens { position: absolute; z-index: 2; display: block; border-radius: 50%; filter: blur(32px); mix-blend-mode: screen; opacity: .34; pointer-events: none; transform: translate3d(0,var(--ne-parallax-y),70px); will-change: transform; }
.ne-depth-lens-one { top: 8%; left: -7rem; width: min(32vw,31rem); aspect-ratio: 1; background: radial-gradient(circle,rgba(134,218,209,.55),transparent 68%); }
.ne-depth-lens-two { right: -4rem; bottom: -7rem; width: min(28vw,27rem); aspect-ratio: 1; background: radial-gradient(circle,rgba(215,240,111,.42),transparent 68%); }
.ne-hero-art { animation: ne-parallax-fade 1.15s var(--ne-ease) both; transform: translate3d(0,var(--ne-parallax-y),45px) scale(1.025); will-change: transform; }
.ne-hero-art img { filter: drop-shadow(0 2.4rem 4.5rem rgba(0,0,0,.36)) saturate(1.03); }
.ne-hero-pill { box-shadow: 0 1.3rem 3rem rgba(3,20,17,.24),inset 0 1px rgba(255,255,255,.7); transform: translate3d(0,var(--ne-parallax-y),95px); will-change: transform; }
.ne-facts { position: relative; z-index: 5; box-shadow: 0 -1.5rem 4rem rgba(3,20,17,.32),0 1.5rem 4rem rgba(3,20,17,.18); }
.ne-departments,.ne-news,.ne-contact { isolation: isolate; }
.ne-parallax-wash,.ne-news-depth-glow,.ne-contact-depth-orb { transform: translate3d(0,var(--ne-parallax-y),0); will-change: transform; }
.ne-parallax-wash { position: absolute; z-index: 0; top: -8rem; right: -8rem; width: min(52vw,44rem); aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle,rgba(86,205,177,.2),transparent 68%); pointer-events: none; }
.ne-departments::after { position: absolute; z-index: 0; right: 4%; bottom: 4%; width: min(38vw,34rem); aspect-ratio: 1; border: 1px solid rgba(47,131,121,.1); border-radius: 50%; box-shadow: 0 0 0 3rem rgba(47,131,121,.035),0 0 0 7rem rgba(47,131,121,.025); content: ""; pointer-events: none; }
.ne-dept-rail { z-index: 2; perspective: 1500px; }
.ne-dept-card { border: 1px solid rgba(255,255,255,.24); transform: translateZ(0); }
.ne-dept-card:nth-child(3n+1) { box-shadow: 0 1.8rem 3.2rem rgba(7,31,28,.18); }
.ne-dept-card:is(.is-active,:hover,:focus-within) { box-shadow: 0 2.8rem 5.5rem rgba(5,27,24,.34); transform: translate3d(0,-.45rem,35px); }
.ne-news-depth-glow { position: absolute; z-index: 0; top: -12rem; right: -8rem; width: min(52vw,46rem); aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle,rgba(135,217,208,.2),rgba(215,240,111,.05) 42%,transparent 70%); filter: blur(14px); pointer-events: none; }
.ne-news-grid { perspective: 1400px; transform-style: preserve-3d; }
.ne-news-card { border-top: 1px solid rgba(255,255,255,.09); background: linear-gradient(145deg,rgba(27,73,67,.94),rgba(13,46,42,.98)); box-shadow: inset 0 1px rgba(255,255,255,.04),0 1.4rem 3rem rgba(0,0,0,.08); transform: translateZ(0); }
.ne-news-card:nth-child(2),.ne-news-card:nth-child(4) { background: linear-gradient(145deg,rgba(20,60,55,.97),rgba(10,39,36,.99)); }
.ne-news-card:hover,.ne-news-card:focus-visible { z-index: 3; box-shadow: 0 2.5rem 5rem rgba(0,0,0,.24); transform: translate3d(0,-.6rem,55px) scale(1.012); }
.ne-contact-depth-orb { position: absolute; z-index: 0; top: -14rem; left: -10rem; width: 40rem; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle,rgba(215,240,111,.18),transparent 68%); pointer-events: none; }
.ne-contact-cards { perspective: 1200px; }
.ne-contact-cards a { box-shadow: inset 0 1px rgba(255,255,255,.08),0 1rem 2.5rem rgba(3,24,21,.1); transform: translateZ(0); }
.ne-contact-cards a:hover,.ne-contact-cards a:focus-visible { transform: translate3d(0,-.4rem,35px); }

@keyframes ne-parallax-fade {
	from { opacity: 0; transform: translate3d(0,2.5rem,45px) scale(1.055); }
	to { opacity: 1; transform: translate3d(0,var(--ne-parallax-y),45px) scale(1.025); }
}

@media (max-width: 980px), (pointer: coarse) {
	[data-ne-parallax] { --ne-parallax-y: 0px !important; }
	.ne-parallax-backdrop { transform: scale(1.16); will-change: auto; }
	.ne-hero-art { animation: ne-fade .9s ease both; }
	.ne-hero-art,.ne-hero-pill,.ne-depth-lens,.ne-parallax-wash,.ne-news-depth-glow,.ne-contact-depth-orb { transform: none; will-change: auto; }
	.ne-dept-card:is(.is-active,:hover,:focus-within),.ne-news-card:hover,.ne-news-card:focus-visible,.ne-contact-cards a:hover,.ne-contact-cards a:focus-visible { transform: none; }
	.ne-departments::after { right: -7rem; width: 24rem; }
}

@media (prefers-reduced-motion: reduce) {
	[data-ne-parallax],.ne-hero-art,.ne-hero-pill,.ne-parallax-backdrop,.ne-depth-lens,.ne-parallax-wash,.ne-news-depth-glow,.ne-contact-depth-orb { transform: none !important; will-change: auto !important; }
}
.ne-footer-up:hover span { transform: translateY(-.2rem); }
@media (max-width: 620px) { .ne-footer.ne-footer-minimal { min-height: 6.5rem; padding: 1rem; } }

/* Four-section snap navigation. */
html.ne-snap-scroll-root { overscroll-behavior-y: contain; scroll-snap-type: y mandatory; scroll-padding-top: 0; }
.ne-snap-edition > .ne-hero,.ne-snap-edition > .ne-departments,.ne-snap-edition > .ne-news,.ne-snap-edition > .ne-contact { min-height: 100svh; scroll-snap-align: start; scroll-snap-stop: always; }
.ne-snap-edition > .ne-departments,.ne-snap-edition > .ne-news,.ne-snap-edition > .ne-contact { display: flex; height: 100svh; min-height: 42rem; flex-direction: column; overflow: hidden; }
.ne-snap-edition .ne-dept-rail,.ne-snap-edition .ne-news-grid { min-height: 0; flex: 1; }
.ne-snap-edition .ne-dept-rail { height: auto; max-height: none; }
.ne-snap-edition .ne-news-grid { margin-top: clamp(1.4rem,2.5vw,2.5rem); }
.ne-snap-edition .ne-news-card { min-height: 0; overflow: hidden; }
.ne-snap-edition .ne-news-grid h3 { margin-top: clamp(1.4rem,3vh,2.4rem); }
.ne-snap-edition .ne-contact-grid { height: 100%; align-items: center; }
.ne-snap-edition + .ne-footer { display: none; }
.ne-snap-nav { position: fixed; z-index: 490; top: 50%; right: clamp(.75rem,1.5vw,1.5rem); display: grid; gap: .65rem; padding: .35rem; transform: translateY(-50%); }
.ne-snap-nav a { display: block; width: .72rem; height: .72rem; border: 1.5px solid rgba(255,255,255,.9); border-radius: 50%; background: rgba(8,35,31,.28); box-shadow: 0 .15rem .7rem rgba(3,22,19,.25); transition: transform .18s,background .18s,border-color .18s,box-shadow .18s; }
.ne-snap-nav a:hover,.ne-snap-nav a:focus-visible { border-color: var(--ne-lime); transform: scale(1.3); }
.ne-snap-nav a.is-active { border-color: var(--ne-lime); background: var(--ne-lime); box-shadow: 0 0 0 .2rem rgba(215,240,111,.17),0 .15rem .7rem rgba(3,22,19,.25); }

@media (max-width: 980px) {
	.ne-snap-edition > .ne-departments,.ne-snap-edition > .ne-news,.ne-snap-edition > .ne-contact { height: 100svh; min-height: 0; }
	.ne-snap-edition .ne-dept-rail { height: auto; max-height: none; }
	.ne-snap-edition .ne-dept-card,.ne-snap-edition .ne-dept-card.is-active,.ne-snap-edition .ne-dept-card:hover,.ne-snap-edition .ne-dept-card:focus-within,.ne-snap-edition .ne-dept-rail:hover .ne-dept-card.is-active:not(:hover):not(:focus-within) { height: 100%; max-height: none; }
	.ne-snap-edition .ne-news-grid { display: flex; gap: .8rem; margin-right: calc(var(--ne-pad) * -1); padding-right: var(--ne-pad); overflow-x: auto; overflow-y: hidden; border: 0; border-radius: 0; background: transparent; scroll-padding-inline: var(--ne-pad); scroll-snap-type: x mandatory; scrollbar-width: none; }
	.ne-snap-edition .ne-news-grid::-webkit-scrollbar,.ne-snap-edition .ne-contact-cards::-webkit-scrollbar { display: none; }
	.ne-snap-edition .ne-news-card { height: 100%; min-height: 0; flex: 0 0 min(76vw,27rem); border: 1px solid rgba(255,255,255,.14); border-radius: 1.1rem; scroll-snap-align: start; }
	.ne-snap-edition .ne-contact-grid { grid-template-columns: minmax(13rem,.65fr) minmax(0,1.35fr); gap: clamp(1.2rem,4vw,3rem); }
}

@media (max-width: 720px) {
	html.ne-snap-scroll-root { overscroll-behavior-y: auto; scroll-snap-type: y proximity; }
	.ne-snap-edition > .ne-hero,.ne-snap-edition > .ne-departments,.ne-snap-edition > .ne-news,.ne-snap-edition > .ne-contact { scroll-snap-stop: normal; }
	.ne-hero::before { display: none; }
	.ne-hero-art img { object-fit: cover; object-position: center; filter: saturate(1.03) contrast(1.01); }
	.ne-snap-edition > .ne-departments,.ne-snap-edition > .ne-news,.ne-snap-edition > .ne-contact { padding: 4.9rem 1rem 4.8rem; }
	.ne-snap-edition .ne-kicker { font-size: .55rem; }
	.ne-snap-edition .ne-news .ne-heading > div { margin-top: .8rem; }
	.ne-snap-edition .ne-news .ne-heading h2 { max-width: none; font-size: clamp(2.8rem,12.5vw,4.2rem); line-height: .86; }
	.ne-snap-edition .ne-news .ne-heading h2 em { display: inline; margin-left: .12em; }
	.ne-snap-edition .ne-news-card { flex-basis: 82vw; padding: 1.35rem; }
	.ne-snap-edition .ne-news-grid h3 { margin: 1.1rem 0 .8rem; font-size: clamp(1.7rem,8vw,2.5rem); }
	.ne-snap-edition > .ne-contact { padding-top: 5.15rem; padding-bottom: 3.35rem; }
	.ne-snap-edition .ne-contact-grid { display: flex; min-height: 0; flex: 1; flex-direction: column; align-items: stretch; gap: .65rem; }
	.ne-snap-edition .ne-contact-grid > div:first-child h2 { margin: .45rem 0; font-size: clamp(2.65rem,12.5vw,3.6rem); line-height: .82; }
	.ne-snap-edition .ne-contact-grid > div:first-child > p:last-child { max-width: 30rem; margin: .4rem 0 0; font-size: .72rem; line-height: 1.35; }
	.ne-snap-edition .ne-contact-cards { display: grid; min-height: 0; flex: 1; grid-template-columns: 1fr; grid-template-rows: repeat(4,minmax(0,1fr)); gap: .5rem; margin: 0; padding: 0; overflow: visible; scroll-snap-type: none; }
	.ne-snap-edition .ne-contact-cards a { display: grid; min-height: 0; height: auto; grid-template-columns: minmax(0,1fr) auto; grid-template-areas: "label action" "value action"; align-content: center; column-gap: .75rem; padding: .65rem .9rem; border-radius: .9rem; scroll-snap-align: none; }
	.ne-snap-edition .ne-contact-cards span { grid-area: label; }
	.ne-snap-edition .ne-contact-cards strong { grid-area: value; margin-top: .24rem; font-size: clamp(.98rem,4.4vw,1.25rem); overflow-wrap: anywhere; }
	.ne-snap-edition .ne-contact-cards small { display: none; }
	.ne-snap-edition .ne-contact-cards i { grid-area: action; align-self: center; margin: 0; font-size: .52rem; }
	.ne-snap-nav { top: auto; right: 50%; bottom: max(.75rem,env(safe-area-inset-bottom)); grid-auto-flow: column; gap: .65rem; padding: .35rem; transform: translateX(50%); }
	.ne-snap-nav a { width: .68rem; height: .68rem; }
}

@media (max-width: 720px) and (max-height: 700px) {
	.ne-snap-edition > .ne-contact { padding-top: 4.75rem; padding-bottom: 3rem; }
	.ne-snap-edition .ne-contact-grid > div:first-child h2 { font-size: 2.35rem; }
	.ne-snap-edition .ne-contact-grid > div:first-child > p:last-child { display: none; }
	.ne-snap-edition .ne-contact-cards { gap: .4rem; }
}

@media (prefers-reduced-motion: reduce) { html.ne-snap-scroll-root { scroll-behavior: auto; } }

/* Rotating hero news title and a temporary artistic swipe cue. */
.ne-hero-news-ticker { position: absolute; z-index: 3; top: clamp(6.6rem,12vh,9rem); right: clamp(1.25rem,5vw,6.5rem); display: grid; width: min(32rem,calc(100% - 2.5rem)); min-height: 0; grid-template-columns: minmax(0,1fr); grid-template-rows: 2.4rem auto 2.4rem; align-items: center; gap: .18rem; padding: 0; color: #fff; transform: translate3d(0,var(--ne-parallax-y),95px); transition: transform .3s var(--ne-ease); will-change: transform; }
.ne-hero-news-ticker:hover,.ne-hero-news-ticker:focus-within { background: transparent; }
.ne-hero-news-ticker button { min-width: 0; padding: 0; border: 0; background: transparent; color: inherit; cursor: pointer; text-align: left; }
.ne-hero-news-main { display: grid; width: 100%; min-height: 4.4rem; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: .85rem; padding: .7rem .72rem .7rem 1.25rem !important; border: 1px solid rgba(255,255,255,.56) !important; border-radius: 999px; background: rgba(250,248,242,.91) !important; box-shadow: 0 1.2rem 3rem rgba(3,20,17,.23),inset 0 1px rgba(255,255,255,.75); color: var(--ne-ink) !important; backdrop-filter: blur(18px) saturate(125%); transition: background .24s,box-shadow .3s; }
.ne-hero-news-main:hover,.ne-hero-news-main:focus-visible { background: rgba(255,253,247,.98) !important; box-shadow: 0 1.55rem 3.6rem rgba(3,20,17,.31),inset 0 1px #fff; }
.ne-hero-news-side { display: flex; width: 92%; height: 2.4rem; align-items: center; justify-self: center; justify-content: center; overflow: hidden; padding-inline: 1.2rem !important; color: rgba(255,255,255,.92) !important; font-size: clamp(.82rem,1vw,.95rem) !important; font-weight: 700 !important; line-height: 1.3 !important; letter-spacing: .035em; text-align: center !important; text-shadow: 0 .2rem 1rem rgba(0,0,0,.52); text-overflow: ellipsis; white-space: nowrap; transition: color .22s; }
.ne-hero-news-side.is-entering { animation: ne-headline-side-cycle 8s ease both; }
.ne-hero-news-side:hover,.ne-hero-news-side:focus-visible { color: #fff !important; }
.ne-hero-news-previous { align-items: flex-end; -webkit-mask-image: linear-gradient(to bottom,transparent 0%,#000 58%); mask-image: linear-gradient(to bottom,transparent 0%,#000 58%); }
.ne-hero-news-next { align-items: flex-start; -webkit-mask-image: linear-gradient(to bottom,#000 42%,transparent 100%); mask-image: linear-gradient(to bottom,#000 42%,transparent 100%); }
.ne-hero-news-title { overflow: hidden; font: 500 clamp(1.08rem,2vw,1.5rem)/1.08 Georgia,serif; letter-spacing: -.025em; text-wrap: balance; }
.ne-hero-news-main.is-entering .ne-hero-news-title { animation: ne-headline-cycle 8s ease both; }
.ne-hero-news-arrow { display: grid; width: 2.95rem; aspect-ratio: 1; place-items: center; border-radius: 50%; background: var(--ne-ink); color: var(--ne-lime); font-size: 1.2rem; transition: transform .3s var(--ne-ease); }
.ne-hero-news-main:hover .ne-hero-news-arrow,.ne-hero-news-main:focus-visible .ne-hero-news-arrow { transform: translate(.15rem,.15rem); }
.ne-swipe-cue { position: absolute; z-index: 3; left: 50%; bottom: max(1rem,env(safe-area-inset-bottom)); display: grid; width: 2.8rem; aspect-ratio: 1; place-items: center; border: 1px solid rgba(255,255,255,.5); border-radius: 50%; background: rgba(7,25,23,.34); color: #fff; font-size: 1.15rem; backdrop-filter: blur(10px); transform: translateX(-50%); animation: ne-cue-life 6s ease forwards; }
.ne-swipe-cue span { animation: ne-cue-drift 1.5s ease-in-out infinite; }
@keyframes ne-headline-cycle { 0% { opacity: 0; transform: translateY(.45rem); } 8%,91% { opacity: 1; transform: none; } 100% { opacity: 0; transform: translateY(-.32rem); } }
@keyframes ne-headline-side-cycle { 0% { opacity: 0; } 12%,87% { opacity: .82; } 100% { opacity: 0; } }
@keyframes ne-cue-life { 0% { opacity: 0; } 10%,72% { opacity: .9; } 100% { opacity: 0; visibility: hidden; } }
@keyframes ne-cue-drift { 0%,100% { transform: translateY(-.16rem); } 50% { transform: translateY(.2rem); } }
@media (max-width: 980px) { .ne-hero-news-ticker { width: min(38rem,calc(100% - 2rem)); grid-template-columns: minmax(0,1fr); grid-template-rows: auto; transform: none; will-change: auto; } .ne-hero-news-side { display: none; } }
@media (pointer: coarse) { .ne-hero-news-ticker { transform: none; will-change: auto; } }
@media (max-width: 720px) {
	.ne-hero-news-ticker { top: 5.35rem; right: .8rem; left: .8rem; width: auto; min-height: 4rem; gap: 0; padding: 0; }
	.ne-hero-news-main { min-height: 4rem; padding: .5rem .58rem .5rem 1rem !important; }
	.ne-hero-news-title { font-size: clamp(.98rem,4.7vw,1.25rem); }
	.ne-hero-news-arrow { width: 2.35rem; }
	.ne-swipe-cue { bottom: max(.8rem,env(safe-area-inset-bottom)); width: 2.5rem; }
}
@media (prefers-reduced-motion: reduce) { .ne-hero-news-ticker { transform: none !important; will-change: auto !important; } .ne-hero-news-title,.ne-hero-news-side,.ne-swipe-cue span { animation: none !important; } }
