/* Quiet picture-book direction. Scoped to the two preview sections. */
/* Let the fixed scenery show faintly through the header/footer too (front page only). */
.nff-header{background:rgba(250,250,246,.72)}
.nff-footer{background:rgba(250,250,246,.72)}
.nff-preview-hero,.nff-preview-schools,.nff-home-diagnosis{--nff-forest:#49647b;--nff-ink:#303b43;--nff-ink-soft:#60686c;--nff-ember:#49647b;--nff-line:#d7d8d3;color:var(--nff-ink)}
.nff-preview-hero,.nff-preview-schools{position:relative;isolation:isolate;overflow:clip}
.nff-preview-hero{background:rgba(247,245,238,.25);padding-bottom:24px}
/* Scenery: fixed behind every section on the homepage, not just the hero. */
.nff-scenery-bg{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.nff-scenery-dormitory{position:absolute;z-index:0;left:4%;bottom:4%;height:24%;width:auto;max-width:42%;object-fit:contain;object-position:left bottom;opacity:1;filter:brightness(.88) contrast(1.06) saturate(1.05);transform:scaleX(-1);transform-origin:center bottom;pointer-events:none}
.nff-scenery-bg::before,.nff-scenery-bg::after{content:"";position:absolute;inset:-150px;pointer-events:none;background:url('../images/storybook-corners-dorm-clearing.png') center / 100% 100% no-repeat;opacity:.85;filter:saturate(1.15);will-change:transform}
.nff-scenery-bg::before{z-index:1;mask-image:linear-gradient(45deg,#000 0%,#000 36%,transparent 62%);clip-path:inset(0 0 11% 0);transform-origin:8% 100%;animation:nffTreeSway 4.5s ease-in-out infinite alternate}
.nff-scenery-bg::after{z-index:0;mask-image:linear-gradient(45deg,transparent 40%,#000 68%);animation:nffCloudDrift 12s linear infinite alternate}
.nff-scenery-bg::after{opacity:1;filter:saturate(1.2) contrast(1.04)}
@keyframes nffTreeSway{0%{transform:translateY(70px) rotate(-2deg) skewX(-1deg)}55%{transform:translateY(70px) rotate(.7deg) skewX(.5deg)}100%{transform:translateY(70px) rotate(2deg) skewX(1deg)}}
@keyframes nffCloudDrift{from{transform:translate(-65px,0)}to{transform:translate(65px,12px)}}
.nff-scenery-bg.is-scenery-paused::before,.nff-scenery-bg.is-scenery-paused::after{animation-play-state:paused}
/* Fixed to the viewport corner; only offered near the top of the page. */
.nff-scenery-toggle{position:fixed;right:20px;bottom:20px;z-index:60;display:block;margin:0;min-height:0;padding:8px 16px;font-size:11px;color:#fff;border:0;background:rgba(16,28,46,.55);border-radius:999px;box-shadow:0 2px 10px #00000030;transition:opacity .25s ease,transform .25s ease}
.nff-scenery-toggle[hidden]{display:none}
.nff-scenery-toggle.is-hidden{opacity:0;transform:translateY(10px);pointer-events:none}
/* On the front page the slider's own controls sit bottom-right too: give the toggle room above them instead of stacking on top. */
@media(min-width:769px){.nff-directory-home .nff-scenery-toggle{bottom:72px;right:max(20px,calc((100vw - var(--container)) / 2 + 20px))}}
@media(max-width:768px){.nff-scenery-toggle{right:14px;bottom:6px;font-size:10px;padding:7px 13px}}
@media(max-width:768px){.nff-scenery-bg::before,.nff-scenery-bg::after{inset:-90px;background-image:url('../images/storybook-corners-dorm-clearing-mobile.png');background-size:cover}.nff-scenery-bg::before{background-position:left bottom}.nff-scenery-bg::after{background-position:center top}}
@media(prefers-reduced-motion:reduce){.nff-scenery-bg::before,.nff-scenery-bg::after{animation:none!important;will-change:auto}.nff-scenery-toggle{display:none}}
.nff-preview-hero .nff-discover-intro{grid-template-columns:1.7fr 1fr;padding-top:44px;padding-bottom:38px;gap:42px}
.nff-preview-hero h1{font-family:var(--font-serif);font-weight:500;font-size:clamp(25px,2.5vw,36px);line-height:1.8;letter-spacing:.025em}
.nff-preview-hero h1 em{color:#49647b;text-decoration:none}
.nff-preview-hero .nff-discover-intro>div:last-child{border:0;padding:0;font-size:13px;line-height:2;color:var(--nff-ink-soft)}
.nff-preview-hero .nff-pickup-slider{max-width:var(--container);padding:0 40px}
.nff-preview-hero .nff-pickup-slide{display:grid;grid-template-columns:minmax(0,3fr) minmax(260px,1fr);grid-template-rows:auto 22px;column-gap:36px;min-height:0;background:transparent;color:var(--nff-ink);overflow:visible;animation:nffBookPage .65s ease-out}
.nff-preview-hero .nff-pickup-slide[hidden]{display:none}
.nff-preview-hero .nff-pickup-slide::after{content:none;display:none;background:none}
.nff-preview-hero .nff-pickup-slide>img{position:static;inset:auto;z-index:auto;grid-column:1;grid-row:1;display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:contain;object-position:center;border-radius:3px;filter:drop-shadow(0 12px 20px #24384b30);opacity:1;mix-blend-mode:normal;background:transparent;padding:0;box-shadow:none}
.nff-preview-hero .nff-slide-copy{grid-column:2;grid-row:1/3;align-self:center;padding:20px 0;max-width:none;border:0;border-radius:0;background:transparent;box-shadow:none;backdrop-filter:none;text-shadow:0 1px 6px #f7f5eeb3}
.nff-preview-hero .nff-slide-eyebrow{display:flex;flex-wrap:wrap;gap:9px 15px;font-size:10px;letter-spacing:.12em;color:#49647b}
.nff-preview-hero .nff-slide-eyebrow span{border:0;padding:0;font-size:11px;letter-spacing:.04em}
.nff-preview-hero .nff-slide-copy h2{font-family:var(--font-serif);font-weight:500;font-size:clamp(21px,1.85vw,28px);line-height:1.85;margin:25px 0 22px;text-shadow:0 1px 8px #f7f5eeb3}
.nff-preview-hero .nff-slide-school{font-size:12px;letter-spacing:.03em}
.nff-preview-hero .nff-slide-copy a{display:inline-flex;gap:12px;background:transparent;color:#49647b;border-bottom:1px solid #49647b;border-radius:0;padding:10px 0 6px;margin-top:18px;font-size:12px;transition:opacity .25s}
.nff-preview-hero .nff-slide-copy a:hover{opacity:.7}.nff-preview-hero .nff-slide-copy a:focus-visible{outline-color:#49647b}
.nff-preview-hero .nff-slide-credit{position:static;grid-column:1;grid-row:2;justify-self:end;align-self:center;font-size:9px;line-height:1.5;padding:3px 0 0;background:none;color:var(--nff-ink-soft)}
.nff-preview-hero .nff-slider-bar{border:0;padding:12px 0;min-height:70px}
.nff-preview-hero .nff-slider-bar>p{font-family:var(--font-serif);font-size:12px;letter-spacing:.12em}
.nff-preview-hero .nff-slider-controls button{border-color:var(--nff-line);color:#49647b;background:transparent}
.nff-preview-hero .nff-slider-dots button{border:0}.nff-preview-hero .nff-slider-dots button::after{background:#c9cfce}.nff-preview-hero .nff-slider-dots button[aria-current=true]::after{background:#49647b}
.nff-preview-schools{background:rgba(233,238,240,.3);padding:84px 0 90px}
.nff-preview-schools .nff-directory-heading{align-items:center}.nff-preview-schools .nff-heading{font-family:var(--font-serif);font-size:clamp(26px,2.7vw,37px);font-weight:500;line-height:1.8;letter-spacing:.03em;margin:0}
.nff-preview-schools .nff-directory-heading>a{color:#49647b;border-bottom:1px solid #49647b;background:none;border-radius:0;padding:7px 0;box-shadow:none;font-size:13px}
.nff-preview-schools .nff-lead{color:var(--nff-ink-soft);font-size:14px}
.nff-school-door-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:36px}
.nff-school-door{position:relative;display:flex;flex-direction:column;padding:0;border:1px solid #d4dde0;border-radius:3px 22px 3px 3px;background:#f7f5ee;overflow:hidden;transition:transform .35s ease,box-shadow .35s ease}
.nff-school-door__thumb{aspect-ratio:4/3;background:linear-gradient(135deg,#e9edf0,#dbe4e8);border-bottom:1px solid #d4dde0;overflow:hidden}
.nff-school-door__thumb img{width:100%;height:100%;object-fit:cover}
.nff-school-door__body{padding:20px 24px 44px}
.nff-door-top{display:flex;justify-content:space-between;align-items:center;color:#49647b;font-family:var(--font-serif);font-size:13px;letter-spacing:.1em}.nff-door-top .nff-icon{width:32px;height:32px;stroke-width:1.2}
.nff-school-door h3{font-family:var(--font-serif);font-size:clamp(17px,1.4vw,20px);font-weight:500;line-height:1.7;margin:14px 0 8px}.nff-school-door p{font-size:12px;color:var(--nff-ink-soft)}
.nff-door-arrow{position:absolute;bottom:20px;right:20px;color:#49647b;font-size:22px;transition:transform .35s ease}
.nff-school-door:hover{transform:translateY(-3px);box-shadow:0 8px 20px #303b4309}.nff-school-door:hover .nff-door-arrow{transform:translate(2px,-2px)}
@media(max-width:520px){.nff-school-door-grid{grid-template-columns:1fr}}
@keyframes nffBookPage{from{opacity:.75;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:769px) and (max-width:1023px){.nff-preview-hero .nff-discover-intro{grid-template-columns:1fr;gap:16px}.nff-preview-hero .nff-discover-intro>div:last-child{display:block}.nff-preview-hero .nff-pickup-slide{grid-template-columns:minmax(0,2fr) minmax(220px,1fr);column-gap:24px}.nff-preview-hero .nff-slide-copy h2{font-size:21px}.nff-preview-schools .nff-directory-heading{align-items:flex-start;flex-direction:column}}
@media(max-width:768px){.nff-preview-hero .nff-discover-intro{grid-template-columns:1fr;padding:28px 24px;gap:18px}.nff-preview-hero h1{font-size:clamp(22px,5.45vw,34px);letter-spacing:0}.nff-preview-hero .nff-discover-intro>div:last-child{display:block;font-size:12px}.nff-preview-hero .nff-discover-intro>div:last-child br{display:none}.nff-preview-hero .nff-pickup-slider{padding:0 20px}.nff-preview-hero .nff-pickup-slide{grid-template-columns:1fr;grid-template-rows:auto 26px auto;gap:0;min-height:0}.nff-preview-hero .nff-slide-copy{grid-column:1;grid-row:3;padding:18px 4px 6px;border:0;min-height:225px}.nff-preview-hero .nff-slide-copy h2{font-size:24px;line-height:1.7;margin:12px 0}.nff-preview-hero .nff-slide-copy h2 br{display:none}.nff-preview-hero .nff-slide-copy a{margin-top:10px}.nff-preview-hero .nff-slide-credit{font-size:8px;justify-self:start}.nff-preview-schools{padding:58px 0 65px}.nff-preview-schools .nff-directory-heading{align-items:flex-start;flex-direction:column;gap:20px}.nff-preview-schools .nff-heading{font-size:27px}.nff-preview-schools .nff-lead{font-size:13px}.nff-school-door-grid{grid-template-columns:1fr;gap:14px;margin-top:26px}.nff-school-door{padding:22px 24px 27px}.nff-school-door h3{font-size:21px}}
@media(prefers-reduced-motion:reduce){.nff-preview-hero *,.nff-preview-schools *{animation:none!important;transition:none!important}.nff-school-door:hover{transform:none}}
/* Keep the copy legible above the more visible moving scenery. */
.nff-preview-hero .nff-discover-intro h1{text-shadow:0 2px 14px #f7f5ee,0 0 5px #f7f5ee}
.nff-preview-hero .nff-discover-intro>div:last-child{background:transparent;border-radius:0;padding:0;backdrop-filter:none;text-shadow:0 1px 6px #f7f5eeb3}
.nff-preview-hero .nff-slide-credit{background:transparent;border-radius:0;padding:3px 0;text-shadow:0 1px 5px #f7f5eeb3}
@media(max-width:768px){.nff-preview-hero .nff-slide-copy{padding:18px 4px 6px;min-height:225px}.nff-preview-hero .nff-pickup-slide>img{padding:0;box-shadow:none;filter:drop-shadow(0 8px 12px #24384b29)}}
/* First viewport: title, image with overlaid copy, controls, scenery toggle. */
.nff-preview-hero{height:calc(100svh - var(--nff-top-offset,98px));min-height:480px;display:grid;grid-template-rows:auto minmax(0,1fr);padding-bottom:6px}
.nff-preview-hero .nff-discover-intro{width:100%;padding-top:18px;padding-bottom:18px;gap:12px 35px}
.nff-preview-hero h1{font-size:clamp(23px,2.3vw,34px);line-height:1.65}
.nff-hero-break--xs{display:none}
.nff-preview-hero .nff-discover-intro h1 .nff-hero-break--base{display:inline!important}
.nff-preview-hero .nff-pickup-slider{width:100%;height:100%;min-height:0;position:relative}
.nff-preview-hero .nff-pickup-slides{position:absolute;inset:0;min-height:0;filter:drop-shadow(0 8px 14px #24384b25)}
.nff-preview-hero .nff-pickup-slide{position:absolute;inset:0;display:block;min-height:0;height:100%;overflow:hidden;border-radius:4px}
.nff-preview-hero .nff-pickup-slide[hidden]{display:none}
.nff-preview-hero .nff-pickup-slide>img{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;object-fit:cover;object-position:center;filter:none;border-radius:0}
.nff-preview-hero .nff-slide-copy{position:absolute;left:clamp(22px,4vw,60px);bottom:30px;z-index:1;padding:0;min-height:0;max-width:calc(100% - 44px);color:#fff;text-shadow:0 2px 7px #101c2ee6,0 0 22px #101c2e99}
.nff-preview-hero .nff-slide-copy::before{content:"";position:absolute;inset:-28px -40px;z-index:-1;background:radial-gradient(ellipse at 35% 60%,#1420306b,transparent 72%);pointer-events:none}
.nff-preview-hero .nff-slide-copy h2{font-size:clamp(25px,3vw,42px);line-height:1.55;margin:10px 0;text-shadow:inherit}
.nff-preview-hero .nff-slide-eyebrow,.nff-preview-hero .nff-slide-copy a{color:#fff}
.nff-preview-hero .nff-slide-copy a{border-color:#ffffffb3;margin-top:8px;padding:6px 0;font-size:12px;min-height:36px}
.nff-preview-hero .nff-slide-copy a:focus-visible{outline-color:white}
.nff-preview-hero .nff-slide-school{font-size:13px}
.nff-preview-hero .nff-slide-credit{position:absolute;left:20px;top:20px;right:auto;bottom:auto;z-index:2;font-size:13px;font-weight:700;line-height:1.7;color:#3a2a12;text-shadow:none;background:rgba(255,209,102,.95);padding:10px 16px;border-radius:8px;box-shadow:0 2px 10px #00000030}
.nff-preview-hero .nff-slide-credit small{display:block;font-size:11px;font-weight:500}
/* Playback controls and the scenery toggle live on top of the photo, not in their own rows. */
.nff-preview-hero .nff-slider-bar{position:absolute;right:14px;bottom:14px;z-index:2;display:block;min-height:0;padding:0;border:0}
.nff-preview-hero .nff-slider-controls{gap:6px;background:rgba(16,28,46,.42);padding:5px 8px;border-radius:999px}
.nff-preview-hero .nff-slider-controls button{width:30px;height:30px;min-width:30px;border-width:1.5px;border-color:#ffffffe0;color:#fff;background:rgba(255,255,255,.16)}
.nff-preview-hero .nff-slider-controls button,.nff-preview-hero .nff-slider-controls .nff-slider-dots{flex:none}
.nff-preview-hero .nff-slider-dots button{width:32px;height:32px;min-width:32px;border:0;background:transparent}
.nff-preview-hero .nff-slider-dots button::after{background:#ffffff80}
.nff-preview-hero .nff-slider-dots button[aria-current=true]::after{background:#fff}
@media(max-width:1023px){.nff-preview-hero{--nff-top-offset:82px}.nff-preview-hero .nff-discover-intro{grid-template-columns:1fr;gap:8px}.nff-preview-hero .nff-discover-intro>div:last-child br{display:none}}
@media(max-width:768px){.nff-preview-hero{--nff-top-offset:76px;min-height:440px}.nff-preview-hero .nff-discover-intro{padding:28px 20px;gap:7px}.nff-preview-hero h1{font-size:clamp(21px,5.2vw,29px)}.nff-preview-hero .nff-discover-intro>div:last-child{font-size:11px;line-height:1.7}.nff-preview-hero .nff-pickup-slider{padding:0;display:flex;flex-direction:column}.nff-preview-hero .nff-pickup-slides{position:relative;inset:auto;flex:1 1 auto;min-height:0}.nff-preview-hero .nff-pickup-slide{border-radius:0}.nff-preview-hero .nff-slide-copy{left:20px;bottom:30px;max-width:calc(100% - 40px)}.nff-preview-hero .nff-slide-copy h2{font-size:clamp(23px,5.5vw,30px);line-height:1.5;margin:9px 0}.nff-preview-hero .nff-slide-copy h2 br{display:block}.nff-preview-hero .nff-slide-school{font-size:11px}.nff-preview-hero .nff-slider-bar{position:static;right:auto;bottom:auto;z-index:auto;flex:none;display:flex;justify-content:flex-start;padding:10px 0 0 20px}.nff-preview-hero .nff-slider-controls{padding:3px 5px;gap:3px}.nff-preview-hero .nff-slider-controls button{width:25px;height:25px;min-width:25px}.nff-preview-hero .nff-slide-credit{left:12px;top:12px;font-size:11px;padding:8px 12px}.nff-preview-hero .nff-slide-credit small{font-size:9px}}
@media(max-width:768px){
 .nff-directory-home .nff-preview-hero .nff-slider-bar{position:static;inset:auto;z-index:auto;display:flex;flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:8px;flex:none;min-height:48px;padding:8px 12px}
 .nff-directory-home .nff-slider-bar .nff-scenery-toggle{position:static;inset:auto;margin:0;flex:none;padding:7px 10px;font-size:10px;white-space:nowrap}
 .nff-directory-home .nff-preview-hero .nff-slider-controls{margin-left:auto;flex:none;padding:3px 5px;gap:3px}
 .nff-directory-home .nff-preview-hero .nff-slider-controls button{width:25px;height:25px;min-width:25px}
}
/* ~500px and below: the headline wraps to 4 short lines instead of 2, so trim its footprint and give the picture area back the room it would otherwise lose. */
@media(max-width:500px){.nff-hero-break--xs{display:inline!important}.nff-preview-hero{min-height:400px}.nff-preview-hero h1{font-size:clamp(19px,5.6vw,25px);line-height:1.5}}
@media(max-height:700px) and (min-width:769px){.nff-preview-hero .nff-discover-intro{padding-top:10px;padding-bottom:10px}.nff-preview-hero h1{font-size:24px}.nff-preview-hero .nff-slide-copy h2{font-size:27px}.nff-preview-hero .nff-slide-copy{bottom:22px}.nff-preview-hero .nff-slide-copy a{margin-top:2px}}
/* In short landscape windows, retain readable content and allow natural scrolling. */
@media(max-height:500px){.nff-preview-hero{min-height:510px}}
/* Diagnosis band: drop the old dark editorial block in favor of the shared light, scenery-visible look. */
.nff-home-diagnosis{background:rgba(233,238,240,.3)}
.nff-home-diagnosis__inner{background:none}
.nff-home-diagnosis::before{content:"";position:absolute;top:0;bottom:0;left:50%;width:100%;max-width:var(--container);transform:translateX(-50%);padding:0 40px;box-sizing:border-box;background:linear-gradient(to right,transparent,rgba(233,238,240,.93) 12%,rgba(233,238,240,.93) 88%,transparent);pointer-events:none;z-index:0}
.nff-home-diagnosis .nff-heading{color:var(--nff-ink)}
.nff-home-diagnosis__copy>p:not(.nff-eyebrow){max-width:none;color:var(--nff-ink-soft)}
.nff-home-diagnosis__note{color:var(--nff-ink-soft)}
.nff-home-diagnosis__cta{background:var(--nff-forest);color:#fff;box-shadow:none}
.nff-home-diagnosis__cta:hover{background:#3a5265;box-shadow:none}
.nff-home-diagnosis__circle{border-color:#49647b33}
.nff-home-diagnosis__circle--two{border-color:#49647b40}
.nff-home-diagnosis__card{background:#fff;color:var(--nff-forest);box-shadow:0 12px 26px #24384b26}
.nff-home-diagnosis__card .nff-icon{background:#eef1ea;color:var(--nff-forest)}
.nff-home-diagnosis__orbit span{background:var(--nff-forest)}
.nff-home-diagnosis__orbit span:nth-child(3){background:#8fa0ab}
