/* Scene coordinates are percentages of the uncropped 1672 × 941 source.
   The photograph and every hit area stay in the same static coordinate space. */
.experience { --ink:#19364e; --paper:#fbf8f1; --gold:#bc943b; margin:0; background:var(--paper); color:var(--ink); font-family:Inter,Arial,sans-serif; }
.experience *, .experience *::before, .experience *::after { box-sizing:border-box; }
.experience a { color:inherit; }
.experience :is(.site-header,.site-header__inner,.brand,.brand__words,.primary-nav,.nav-toggle,.header-give,.hallway-shell,.hallway-viewport,.hallway-stage,.hallway-photo,.hallway-brand-plaque,.door,.door__sign,.door__open-label) { all:revert; box-sizing:border-box; }
.experience :is(.hallway-shell,.hallway-viewport,.hallway-stage,.door,.door__sign,.door__open-label,.site-header)::before,
.experience :is(.hallway-shell,.hallway-viewport,.hallway-stage,.door,.door__sign,.door__open-label,.site-header)::after { content:none; }
.experience .site-header { position:absolute; z-index:20; top:16px; left:20px; right:20px; background:rgb(253 250 243 / 95%); border:1px solid rgb(255 255 255 / 65%); border-radius:12px; box-shadow:0 8px 28px #182b3426; backdrop-filter:blur(18px); }
.experience .site-header__inner { display:flex; align-items:center; gap:24px; padding:10px 20px; margin:auto; }
.experience .brand { display:flex; align-items:center; gap:10px; text-decoration:none; flex-shrink:0; color:#19364e; }
.experience .brand img { display:block; width:53px; height:53px; object-fit:contain; filter:none; }
.experience .brand__words { display:flex; flex-direction:column; gap:3px; }
.experience .brand__words strong { font-family:Nunito,sans-serif; font-size:22px; letter-spacing:.15em; line-height:1; }
.experience .brand__words>span { font-size:10px; letter-spacing:.07em; font-weight:700; text-transform:uppercase; }
.experience .primary-nav { display:flex; align-items:center; justify-content:flex-end; gap:3px; margin-left:auto; }
.experience .primary-nav a { display:flex; align-items:center; min-height:44px; padding:0 10px; font-size:14px; font-weight:650; text-decoration:none; border-radius:6px; }
.experience .primary-nav a:hover,.experience .primary-nav [aria-current] { background:#e9e2cf; }
.experience .header-give { padding:12px 19px; background:#19364e; color:#fff; border-radius:6px; text-decoration:none; white-space:nowrap; font-size:14px; font-weight:700; }
.experience .nav-toggle { display:none; }
.experience .hallway-shell { display:block; position:relative; background:#19364e; }
.experience .hallway-viewport { display:block; width:100%; overflow:hidden; }
.experience .hallway-stage { display:block; position:relative; width:100%; aspect-ratio:1672/941; transform-origin:var(--entry-x,50%) var(--entry-y,50%); transition:transform .42s ease,filter .42s ease; isolation:isolate; }
.experience .hallway-stage.is-entering { transform:scale(1.06); filter:brightness(.88); }
.experience .hallway-photo { display:block; width:100%; height:100%; position:absolute; inset:0; object-fit:fill; }
.experience .hallway-brand-plaque { position:absolute; top:16%; left:40%; width:20%; display:flex; gap:5%; align-items:center; justify-content:center; padding:.4% .8%; border:2px solid #957440; border-radius:4px; background:#f3ebd7; box-shadow:0 4px 8px #4a352b40,inset 0 0 12px #b3916a20; color:#243c4d; }
.experience .hallway-brand-plaque img { width:25%; height:auto; }
.experience .hallway-brand-plaque div { display:flex; flex-direction:column; gap:3px; }
.experience .hallway-brand-plaque span { text-transform:uppercase; letter-spacing:.13em; font-size:clamp(9px,.75vw,15px); line-height:1.2; }
.experience .hallway-brand-plaque strong { font:800 clamp(18px,2.2vw,40px)/1 Nunito,sans-serif; letter-spacing:.08em; }
.experience .hallway-brand-plaque small { font-size:clamp(8px,.7vw,13px); font-weight:700; line-height:1.2; }
.experience .door { display:block; position:absolute; cursor:pointer; text-decoration:none; z-index:2; background:transparent; }
.experience .door--toddler { left:6.7%; top:4%; width:12.2%; height:91%; --sign-top:64%; --sign-angle:2deg; --door-shape:polygon(0 0,100% 13%,100% 92%,22% 100%); }
.experience .door--play { left:28%; top:26%; width:7.1%; height:47%; --sign-top:-21%; --sign-angle:2deg; --door-shape:polygon(0 0,100% 5%,100% 95%,0 100%); }
.experience .door--admin { left:47%; top:33%; width:7%; height:32%; --sign-top:-19%; --sign-angle:0deg; --door-shape:inset(0); }
.experience .door--admin .door__sign { width:178%; }
.experience .door--preschool { left:64.3%; top:27%; width:7.2%; height:46%; --sign-top:-21%; --sign-angle:-2deg; --door-shape:polygon(0 5%,100% 0,100% 100%,0 95%); }
.experience .door--infant { left:81.5%; top:4%; width:11.1%; height:93%; --sign-top:63%; --sign-angle:-2deg; --door-shape:polygon(0 13%,100% 0,100% 100%,0 90%); }
.experience .door::before { content:""; position:absolute; inset:0; clip-path:var(--door-shape); background:#ffe6a2; opacity:0; transition:opacity .2s; mix-blend-mode:soft-light; }
.experience .door:hover::before,.experience .door:focus-visible::before { opacity:.45; }
.experience .door__sign { position:absolute; top:var(--sign-top); left:50%; width:148%; padding:10px 7px; color:#20384b; text-align:center; border:1px solid #8c713c; border-radius:3px; background:#f5efdd; box-shadow:0 3px 1px #7d633d,0 5px 10px #35251955,inset 0 1px 0 #fff; transform:translateX(-50%) rotate(var(--sign-angle)); transition:background .2s,box-shadow .2s; }
.experience .door--toddler .door__sign,.experience .door--infant .door__sign { width:112%; }
.experience .door__sign strong { display:block; font:700 clamp(14px,1.3vw,24px)/1.15 Fraunces,Georgia,serif; }
.experience .door__sign small { display:block; font:650 clamp(11px,.85vw,16px)/1.4 Inter,sans-serif; margin-top:4px; }
.experience .door:hover .door__sign,.experience .door:focus-visible .door__sign { background:#fff5c9; box-shadow:0 3px 1px #7d633d,0 7px 25px #fff0bb70; }
.experience .door:focus-visible { outline:none; }
.experience .door:focus-visible .door__sign { outline:3px solid #175eff; outline-offset:4px; }
.experience .door__open-label { position:absolute; top:calc(var(--sign-top) + 88px); left:50%; transform:translateX(-50%); padding:8px 12px; border-radius:4px; background:#19364e; color:white; white-space:nowrap; font:700 13px Inter,sans-serif; opacity:0; transition:opacity .15s; box-shadow:0 3px 12px #0003; }
.experience .door:hover .door__open-label,.experience .door:focus-visible .door__open-label { opacity:1; }
.experience .hallway-welcome { position:absolute; top:79%; left:32%; width:36%; text-align:center; color:#fffaf0; text-shadow:0 2px 10px #24180a; }
.experience .hallway-welcome p { margin:0 0 6px; font:700 clamp(10px,.75vw,14px) Inter,sans-serif; text-transform:uppercase; letter-spacing:.15em; }
.experience .hallway-welcome h1 { font:600 clamp(22px,2.4vw,46px)/1.08 Fraunces,Georgia,serif; margin:0 0 8px; color:inherit; letter-spacing:-.025em; }
.experience .hallway-welcome>span { font:600 clamp(12px,.95vw,17px) Inter,sans-serif; }
.experience .hallway-caption { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:18px 4%; color:#f5ecd8; font-size:14px; }
.experience .hallway-caption>span { letter-spacing:.12em; text-transform:uppercase; font-size:12px; }
.experience .hallway-caption a { font-weight:650; text-decoration:none; }
.experience .mobile-rooms { display:none; }
.experience .site-footer { padding:32px 4% 20px; background:#112b40; border:0; }
.experience .site-footer__inner { max-width:1500px; gap:25px; grid-template-columns:1.1fr 1fr auto; align-items:center; }
.experience .footer-brand { gap:12px; }
.experience .footer-brand strong { font-size:18px; }
.experience .footer-brand span { font-size:12px; }
.experience .footer-brand img { width:66px; height:66px; }
.experience .site-footer address,.experience .site-footer nav { font-size:14px; }
.experience .site-footer__bottom { margin:26px auto 0; padding-top:18px; font-size:12px; }
.experience .noscript-note { background:white; color:#19364e; padding:24px; }

/* Room pages use native modal dialogs for focus containment and background inertness. */
.classroom { --room-color:#19364e; position:fixed; inset:0; width:100%; height:100%; max-width:none; max-height:none; margin:0; padding:0; border:0; background:#fbf8f1; color:#19364e; overflow-y:auto; overscroll-behavior:contain; font-family:Inter,Arial,sans-serif; }
.classroom:not([open]) { display:none; }
.classroom[open] { animation:room-arrive .3s ease both; }
.classroom::backdrop { background:rgb(15 33 44 / 75%); }
@keyframes room-arrive { from { opacity:0; transform:translateY(16px); } to { opacity:1; transform:translateY(0); } }
.classroom a { color:inherit; text-underline-offset:4px; }
.classroom button,.classroom input,.classroom select,.classroom textarea { font:inherit; }
.classroom-topbar { position:sticky; z-index:5; top:0; display:flex; align-items:center; justify-content:space-between; padding:12px max(24px,calc((100vw - 1240px)/2)); min-height:76px; background:rgb(251 248 241 / 96%); border-bottom:1px solid #19364e26; backdrop-filter:blur(14px); }
.hallway-back { display:flex; gap:10px; align-items:center; border:0; padding:12px 0; min-height:44px; background:none; color:#19364e; cursor:pointer; font-weight:650!important; font-size:14px!important; }
.classroom-brand { position:absolute; left:calc(50% - 24px); }
.classroom-brand img { display:block; width:48px; height:48px; }
.classroom-enroll { font-size:14px; font-weight:650; padding:12px 0; text-decoration:none; }
.classroom-body { max-width:1240px; padding:0 30px; margin:0 auto; }
.classroom-nav { display:flex; gap:26px; overflow:auto; scrollbar-width:thin; padding:15px 0; border-bottom:1px solid #19364e26; }
.classroom-nav a { display:flex; align-items:center; min-height:36px; flex-shrink:0; text-decoration:none; font-size:14px; color:#5a6871; }
.classroom-nav a[aria-current] { color:var(--room-color); font-weight:750; border-bottom:2px solid var(--room-color); }
.classroom-hero { display:grid; grid-template-columns:1.1fr 1fr; gap:60px; align-items:center; padding:44px 0; }
.eyebrow { font-size:12px; line-height:1.5; font-weight:750; text-transform:uppercase; letter-spacing:.11em; color:var(--room-color,#19364e); margin:0 0 14px; }
.classroom-intro .eyebrow span { margin:0 7px; }
.classroom-intro h2 { font:600 clamp(36px,4.5vw,67px)/1.04 Fraunces,Georgia,serif; letter-spacing:-.035em; margin:0 0 22px; color:#19364e; }
.classroom-lead { font:500 22px/1.45 Fraunces,Georgia,serif; margin:0 0 16px; }
.classroom-description { font-size:16px; line-height:1.8; color:#495b68; margin:0; max-width:540px; }
.classroom-actions { display:flex; align-items:center; flex-wrap:wrap; gap:20px; margin-top:26px; }
.classroom-actions>a:not(.action-primary),.action-text { font-size:14px; font-weight:700; text-decoration:underline; text-underline-offset:5px; }
.action-primary { display:inline-flex; justify-content:center; align-items:center; min-height:48px; padding:13px 20px; background:var(--room-color,#19364e); color:#fff!important; border:0; border-radius:5px; text-decoration:none; font-size:14px; font-weight:700; cursor:pointer; }
.action-primary:hover { filter:brightness(1.12); }
.classroom-art { margin:0; display:flex; flex-direction:column; align-items:center; }
.classroom-art img { display:block; width:100%; height:370px; object-fit:contain; background:#fff; border-radius:5px; box-shadow:0 2px 2px #19364e0a,0 16px 40px #19364e12; }
.classroom-art--photo img { height:370px; object-fit:cover; }
.classroom-art figcaption { margin-top:10px; font-size:12px; color:#64717b; }
.classroom-facts { display:grid; grid-auto-columns:1fr; grid-auto-flow:column; padding:27px 0; border-top:1px solid #19364e2e; border-bottom:1px solid #19364e2e; margin:0; }
.classroom-facts>div { padding:0 26px; border-right:1px solid #19364e26; }
.classroom-facts>div:first-child { padding-left:0; }
.classroom-facts>div:last-child { border:0; }
.classroom-facts dt { font-size:12px; color:#61717a; margin-bottom:6px; }
.classroom-facts dd { font:600 clamp(18px,2vw,25px)/1.2 Fraunces,Georgia,serif; margin:0; }
.classroom-learning { padding:52px 0 30px; }
.section-heading h3,.office-card h3,.office-inquiry h3 { font:600 28px/1.2 Fraunces,Georgia,serif; margin:0 0 20px; }
.section-heading .eyebrow { margin-bottom:8px; }
.learning-columns { display:grid; grid-template-columns:repeat(3,1fr); gap:36px; margin-top:32px; }
.learning-number { color:var(--room-color); font-size:12px; font-weight:700; }
.learning-columns h4 { font:600 21px/1.25 Fraunces,Georgia,serif; margin:12px 0; }
.learning-columns p,.office-card p,.office-inquiry p,.office-card address,.enrollment-steps { color:#495b68; font-size:16px; font-style:normal; line-height:1.8; }
.classroom-next { border-top:1px solid #19364e26; margin-top:16px; padding:28px 0; }
.classroom-next a { font-size:16px; font-weight:650; }
.classroom-footer { display:flex; justify-content:space-between; flex-wrap:wrap; gap:16px; padding:24px 0; border-top:1px solid #19364e26; color:#5a6871; font-size:12px; line-height:1.6; }
.office-grid { display:grid; grid-template-columns:1fr 1fr; gap:36px 60px; padding:46px 0; }
.office-card .action-text { display:block; margin-top:14px; width:fit-content; }
.enrollment-steps { padding-left:22px; }
.enrollment-steps li { padding:0 0 8px 6px; }
.office-email { overflow-wrap:anywhere; }
.office-inquiry { border-top:1px solid #19364e26; padding:42px 0; display:grid; grid-template-columns:1fr 1.2fr; gap:60px; }
.inquiry-fields { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.inquiry-fields label { display:flex; flex-direction:column; gap:7px; font-size:14px; font-weight:650; }
.inquiry-fields label:nth-child(n+3) { grid-column:1/-1; }
.inquiry-fields :is(input,select,textarea) { width:100%; padding:12px; border:1px solid #80909a; border-radius:4px; min-height:48px; background:#fff; color:#19364e; font-weight:400; }
.inquiry-fields textarea { resize:vertical; }
.office-inquiry form>.action-primary { margin-top:20px; }
#form-status { min-height:1.6em; font-size:14px; }
.experience :focus-visible { outline:3px solid #246cd2; outline-offset:4px; }
.experience.room-is-open { overflow:hidden; }
@media(min-width:1700px) { .experience .site-header { left:3%; right:3%; } .classroom-body { max-width:1380px; } }
@media(max-width:1200px) {
  .experience .hallway-brand-plaque { display:none; }
  .experience .brand__words>span { max-width:100px; font-size:9px; }
  .experience .site-header__inner { gap:12px; padding:8px 12px; }
  .experience .primary-nav a { padding:0 7px; font-size:12px; }
  .experience .header-give { padding:12px; }
  .experience .door__sign { padding:7px 4px; }
  .experience .door__sign strong { font-size:14px; }
  .experience .door__sign small { font-size:10px; }
  .experience .site-footer__inner { grid-template-columns:1fr 1fr; }
  .experience .site-footer nav { grid-column:1/-1; }
}
@media(max-width:900px) {
  .experience .hallway-brand-plaque { display:none; }
  .experience .door--play,.experience .door--preschool { --sign-top:-12%; }
.experience .site-header { top:10px; left:12px; right:12px; }
  .experience .nav-toggle { display:flex; align-items:center; gap:10px; margin-left:auto; padding:10px 12px; min-height:44px; border:1px solid #b5b7ac; border-radius:5px; background:transparent; color:#19364e; cursor:pointer; font:650 14px Inter,sans-serif; }
  .experience .primary-nav { display:none; position:absolute; top:calc(100% + 8px); left:0; right:0; padding:12px; margin:0; background:#fbf8f1; border-radius:8px; box-shadow:0 10px 30px #142a3938; }
  .experience .primary-nav.is-open { display:grid; grid-template-columns:1fr 1fr; }
  .experience .primary-nav a { font-size:15px; padding:10px 14px; }
  .classroom-hero { gap:30px; }
  .classroom-art img { height:300px; }
}
@media(max-width:767px) {
  .experience .site-header { position:relative; top:auto; left:auto; right:auto; border:0; border-radius:0; box-shadow:none; }
  .experience .site-header__inner { gap:10px; padding:9px 14px; }
  .experience .brand img { width:46px; height:46px; }
  .experience .brand__words strong { font-size:18px; }
  .experience .brand__words>span { font-size:8px; }
  .experience .nav-toggle { padding:9px; font-size:12px; }
  .experience .header-give { display:none; }
  .experience .primary-nav { top:100%; z-index:30; border-radius:0 0 8px 8px; }
  .experience .hallway-stage { aspect-ratio:1672/941; }
  .experience .hallway-stage .door,.experience .hallway-brand-plaque,.experience .hallway-welcome { display:none; }
  .experience .hallway-caption { padding:14px 20px; justify-content:center; }
  .experience .hallway-caption>span { display:none; }
  .experience .mobile-rooms { display:grid; padding:25px 20px 32px; gap:16px; background:#f5efe3; }
  .mobile-rooms__heading { margin-bottom:4px; }
  .mobile-rooms__heading h2 { margin:0 0 8px; font:600 29px/1.12 Fraunces,Georgia,serif; }
  .mobile-rooms__heading .eyebrow { margin-bottom:8px; }
  .mobile-door { display:grid; grid-template-columns:105px 1fr; min-height:172px; text-decoration:none; border-radius:6px; overflow:hidden; background:#fffaf0; border:1px solid #aa95734a; box-shadow:0 3px 10px #19364e0a; }
  .mobile-door__photo { background-image:url("../assets/mars-hallway.webp"); background-repeat:no-repeat; background-size:auto 340px; }
  .mobile-door--toddler .mobile-door__photo { background-position:7% 45%; }
  .mobile-door--play .mobile-door__photo { background-position:29% 47%; }
  .mobile-door--admin .mobile-door__photo { background-position:50% 41%; }
  .mobile-door--preschool .mobile-door__photo { background-position:72% 47%; }
  .mobile-door--infant .mobile-door__photo { background-position:94% 45%; }
  .mobile-door__words { padding:20px 16px; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:8px; }
  .mobile-door__words small { font-size:12px; color:#655b45; }
  .mobile-door__words strong { font:600 21px/1.15 Fraunces,Georgia,serif; }
  .mobile-door__words>span { font-size:12px; line-height:1.5; color:#546575; }
  .mobile-door__words b { font-size:13px; margin-top:3px; }
  .experience .site-footer { padding:30px 20px 20px; }
  .experience .site-footer__inner { grid-template-columns:1fr; gap:24px; }
  .experience .site-footer nav { grid-column:auto; gap:16px; }
  .classroom-topbar { padding:10px 18px; min-height:68px; }
  .hallway-back { font-size:12px!important; gap:6px; }
  .classroom-enroll { font-size:12px; }
  .classroom-brand { display:none; }
  .classroom-body { padding:0 22px; }
  .classroom-nav { gap:22px; padding:8px 0; }
  .classroom-nav a { min-height:44px; }
  .classroom-hero { grid-template-columns:1fr; gap:28px; padding:30px 0; }
  .classroom-intro h2 { font-size:43px; }
  .classroom-lead { font-size:21px; }
  .classroom-art img { height:300px; }
  .classroom-art--photo img { height:250px; }
  .classroom-facts { padding:22px 0; }
  .classroom-facts>div { padding:0 10px; }
  .classroom-facts dt { font-size:11px; }
  .classroom-facts dd { font-size:18px; }
  .classroom-learning { padding-top:34px; }
  .learning-columns { grid-template-columns:1fr; gap:26px; }
  .learning-columns h4 { margin:8px 0; }
  .learning-columns p { margin-bottom:0; }
  .office-grid { grid-template-columns:1fr; gap:26px; }
  .office-inquiry { grid-template-columns:1fr; gap:24px; }
  .inquiry-fields { grid-template-columns:1fr; }
  .classroom-actions { gap:20px; }
}
@media(prefers-reduced-motion:reduce) {
  .experience *, .experience *::before, .experience *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
}
