:root{--navy:#142c48;--pink:#f7dce5;--accent:#f887b1;--hot:var(--accent);--paper:#fbf4eb;--ivory:#fff6e9;--line:#d8d5d2}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;color:var(--navy);background:var(--paper);font:16px/1.6 "Helvetica Neue",Helvetica,Arial,sans-serif}a{color:inherit}button,a,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,summary:focus-visible{outline:3px solid var(--hot);outline-offset:5px}.skip{position:absolute;left:-999px}.skip:focus{left:10px;z-index:10;background:var(--ivory)}.announcement{background:var(--navy);color:var(--pink);text-align:center;font-size:10px;letter-spacing:2px;padding:9px}.announcement span{margin:0 22px}header{display:flex;align-items:center;justify-content:space-between;padding:16px 6%;background:var(--paper);position:sticky;top:0;z-index:5;border-bottom:1px solid #142c4815}.wordmark{font:bold italic 39px Georgia,serif;text-decoration:none;line-height:.9;display:inline-block}.wordmark b{font-style:normal;color:var(--hot);font-size:43px}.wordmark small{display:block;font:7px/1.7 "Helvetica Neue",Helvetica,Arial,sans-serif;letter-spacing:2px;margin-top:7px}nav{display:flex;gap:30px;font-size:13px}nav a{text-decoration:none}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:30px;background:var(--navy);color:var(--ivory);text-decoration:none;border:1px solid var(--navy);padding:17px 25px;font-size:14px;font-weight:bold;transition:background .2s,transform .2s}.button:hover{background:#29496b;transform:translateY(-2px)}.small{padding:12px 19px;font-size:12px}.hero{display:grid;grid-template-columns:1.02fr 1fr;background:var(--pink);min-height:610px}.hero-copy{padding:78px 8% 66px 12%}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:bold;margin:0 0 22px}h1,h2,h3,p{margin-top:0}h1{font:normal clamp(48px,5.4vw,83px)/1.01 Georgia,serif;letter-spacing:-3px;margin-bottom:27px}h1 em{color:var(--accent)}h2{font:normal clamp(36px,4vw,55px)/1.1 Georgia,serif;letter-spacing:-1.6px;margin-bottom:24px}.intro{font-size:16px;line-height:1.8;max-width:455px}.actions{display:flex;align-items:center;gap:26px;margin-top:30px}.text-link{font-size:13px;text-underline-offset:5px}.micro{font-size:10px;margin:23px 0 0;max-width:400px}.micro span{padding:0 5px}.hero-art{position:relative;min-width:0;overflow:hidden}.hero-art>img{width:100%;height:100%;object-fit:cover;object-position:center}.seal{position:absolute;right:30px;top:33px;border-radius:50%;background:var(--paper);width:114px;height:114px;text-align:center;padding:21px 5px;font-size:8px;letter-spacing:2px;transform:rotate(13deg);border:1px solid var(--navy);outline:5px solid var(--paper);line-height:1.4}.seal span{font-size:30px;line-height:1.3}.photo-note{position:absolute;bottom:26px;left:30px;color:var(--ivory);font:italic 23px Georgia,serif;text-shadow:0 1px 5px #000}.ribbon{background:var(--navy);color:var(--pink);padding:17px 0;text-align:center;font-size:11px;letter-spacing:3px;white-space:nowrap;overflow:hidden}.ribbon span{margin:0 40px}.wrap{max-width:1120px;margin:auto;padding:85px 30px}.section-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:30px}.section-head h2{margin-bottom:0}.section-head>p{font-size:14px}.service-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.service{border:1px solid var(--navy);padding:34px}.service-top{display:flex;justify-content:space-between;align-items:center;font-size:10px;letter-spacing:2px;margin-bottom:25px}.service-top span:last-child{font-size:30px}.service h3{font:normal 33px Georgia,serif;letter-spacing:-1px;margin-bottom:17px}.service p{font-size:14px;max-width:380px}.price{font:normal 48px Georgia,serif;border-bottom:1px solid #142c4830;padding-bottom:20px}.price span{font:12px "Helvetica Neue",Helvetica,Arial,sans-serif}.service ul{list-style:none;padding:0;font-size:13px;margin:23px 0}.service li{margin:9px 0}.service li:before{content:'✓';margin-right:12px}.service .button{width:100%}.mobile-service{background:var(--pink)}details{border-bottom:1px solid var(--line)}summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:15px;padding:23px 0;font-size:16px}summary::-webkit-details-marker{display:none}summary span{font-size:23px;font-weight:normal}details[open] summary span{transform:rotate(45deg)}details p{font-size:14px;max-width:760px;line-height:1.8}details a{font-size:13px}details.enhancements{border:1px solid var(--line);padding:0 25px;margin-top:25px}.enhancements>div{padding-bottom:23px}.fine{font-size:10px;margin-top:16px;max-width:700px}.campus-band{text-align:center;background:var(--navy);color:var(--pink);padding:65px 25px}.campus-band h2{margin-bottom:30px}.campus-band>div{display:flex;justify-content:center;gap:50px;font:italic 27px Georgia,serif}.campus-band>p:not(.eyebrow){font-size:13px;margin:25px 0}.light{background:var(--pink);color:var(--navy);border-color:var(--pink)}.light:hover{background:#f3c3d3}.first{display:grid;grid-template-columns:1fr 1fr;gap:80px}.first .intro{font-size:14px}.steps article{display:flex;gap:25px;border-top:1px solid var(--line);padding:24px 0 0}.steps article>span{font:italic 25px Georgia,serif;color:var(--accent)}.steps h3{font:normal 23px Georgia,serif;margin-bottom:10px}.steps p{font-size:13px}.faq{padding-top:15px}.closing{background:var(--pink);text-align:center;padding:70px 25px}.closing h2{font-size:clamp(42px,5vw,68px)}.closing>p:last-child{font-size:12px;margin:22px 0 0}footer{padding:45px 6% 20px;display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:30px;font-size:12px}footer p{grid-column:1/-1;font-size:10px;border-top:1px solid var(--line);padding-top:20px;margin-top:10px}.mobile-book{display:none}@media(max-width:760px){header{padding:14px 6%}nav{display:none}.announcement{font-size:8px;letter-spacing:1px}.announcement span{margin:0 9px}.wordmark{font-size:31px}.wordmark b{font-size:34px}.wordmark small{font-size:6px}.hero{grid-template-columns:1fr}.hero-copy{padding:45px 7% 35px}h1{font-size:58px;letter-spacing:-2px}.hero-art{height:290px}.hero-art>img{object-position:center}.hero .intro{font-size:14px}.actions{gap:20px}.micro{font-size:9px}.seal{width:90px;height:90px;top:20px;right:22px;padding-top:16px;font-size:6px}.seal span{font-size:24px}.photo-note{font-size:20px}.wrap{padding:55px 7%}.section-head{display:block}.section-head>p{margin:20px 0 0}.service-grid{grid-template-columns:1fr}.service{padding:27px}.service h3{font-size:31px}.campus-band>div{flex-wrap:wrap;gap:12px 25px;font-size:23px}.first{grid-template-columns:1fr;gap:30px}.faq{padding-top:0}summary{font-size:14px}.closing{padding:55px 20px}footer{grid-template-columns:1fr 1fr;padding-bottom:100px;gap:26px}.mobile-book{display:flex;position:fixed;bottom:12px;left:5%;width:90%;z-index:8;box-shadow:0 5px 25px #142c4830;justify-content:center}h2{font-size:40px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button{transition:none}}
.wordmark{display:flex;align-items:center;gap:12px;font-style:normal}.wordmark img{width:58px;height:68px;object-fit:contain}.wordmark small{font:italic 14px Georgia,serif;letter-spacing:0;margin:0}footer .wordmark{align-items:flex-start;flex-direction:column}footer .wordmark img{width:82px;height:95px}@media(max-width:760px){.wordmark{gap:8px}.wordmark img{width:42px;height:52px}.wordmark small{font-size:11px}}
/* Campus edition: artwork first, fast booking, and a little more personality. */
:root{--hot:var(--accent);--electric:var(--accent)}header{padding-top:10px;padding-bottom:10px}.hero{display:flex;flex-direction:column;min-height:0;padding:20px 24px 0}.hero-art{width:100%;height:clamp(210px,29vh,330px);border-radius:5px;outline:1px solid #142c4820}.hero-art>img{display:block;object-position:center 48%}.hero-copy{display:grid;grid-template-columns:1.1fr 1fr;gap:45px;padding:30px max(0px,calc((100% - 1120px)/2)) 34px;align-items:center}.hero-heading .eyebrow{margin-bottom:12px}.hero h1{font:900 clamp(42px,4.7vw,68px)/.98 "Helvetica Neue",Helvetica,Arial,sans-serif;letter-spacing:-3px;margin:0;position:relative}.hero h1 em{font:italic 1.12em/.8 Georgia,serif}.spark{display:inline-block;color:var(--hot);font-size:.65em;margin-left:15px;vertical-align:middle}.glow-era{font:italic 23px Georgia,serif;margin:0 0 9px}.hero-details .intro{font-size:14px;line-height:1.6;margin-bottom:0;max-width:440px}.hero .actions{margin-top:18px}.hero .micro{margin-top:12px;font-size:10px}.button{border-radius:4px;min-height:48px}.hero .button{box-shadow:4px 4px 0 var(--electric)}.ribbon{font-weight:bold;font-size:10px;padding:13px 0;letter-spacing:2px}.service{border-radius:9px;position:relative;box-shadow:5px 5px 0 #142c4810;transition:box-shadow .2s}.service:hover{box-shadow:7px 7px 0 #142c4820}.service-top{font-weight:bold}.price{font-weight:bold}.price span{font-weight:normal}.service .button{margin-top:3px}.service-top>span:first-child{border:1px solid #142c4840;padding:5px 10px;border-radius:30px}.campus-band{position:relative;overflow:hidden}.club-sticker{position:absolute;left:7%;top:45px;transform:rotate(-12deg);border:2px solid var(--pink);border-radius:50%;width:100px;height:100px;display:flex;align-items:center;justify-content:center;font:bold 17px/1.05 "Helvetica Neue",Helvetica,Arial,sans-serif;letter-spacing:1px;background:var(--hot);color:var(--paper);box-shadow:5px 5px 0 #0002}.campus-band>div>span{border-bottom:2px solid var(--electric);padding-bottom:5px}.steps article>span{border-radius:50%;border:1px solid #f887b140;min-width:39px;height:39px;text-align:center;font:italic 20px/37px Georgia,serif}.closing{background-color:var(--pink);background-image:radial-gradient(#f887b120 1px,transparent 1px);background-size:13px 13px}.mobile-dock{display:none}.mobile-book{display:none}.fine{font-size:12px}.micro{line-height:1.5}
@media(max-width:760px){html{scroll-padding-top:85px}header{padding:7px 5%;height:66px}.announcement{padding:5px 0;font-size:7px;letter-spacing:1px}.wordmark img{width:39px;height:46px}.wordmark small{font-size:11px}.small{padding:10px 12px;min-height:44px;font-size:11px}.hero{padding:10px 12px 0}.hero-art{height:clamp(145px,25svh,210px);border-radius:4px}.hero-copy{display:block;padding:19px 8px 22px}.hero-heading .eyebrow{font-size:8px;letter-spacing:1.2px;margin-bottom:9px}.hero h1{font-size:clamp(37px,10.5vw,51px);letter-spacing:-1.9px;line-height:.96}.hero h1 br{display:none}.hero h1 em{white-space:nowrap}.spark{margin-left:8px}.glow-era{font-size:17px;margin:12px 0 7px}.hero-details .intro{font-size:12px;line-height:1.55;max-width:460px}.hero .actions{margin-top:14px;gap:23px}.hero .button{padding:12px 18px;font-size:13px;min-height:47px}.hero .micro{font-size:9px;margin-top:12px}.ribbon{font-size:9px;padding:12px 0;letter-spacing:1.2px}.ribbon span{margin:0 19px}.wrap{padding:45px 6%}.section-head h2{font:900 37px/1.02 "Helvetica Neue",Helvetica,Arial,sans-serif;letter-spacing:-1.5px}.section-head>p{font-size:13px;margin-top:14px}.service{padding:24px;box-shadow:4px 4px 0 #142c4810}.service-top{margin-bottom:19px;font-size:9px}.service h3{font-size:30px}.service p{font-size:13px}.price{font-size:42px}.service ul{margin:17px 0}.service-grid{gap:21px}.service li{margin:7px 0}.enhancements summary{font-size:13px}.fine{font-size:11px}.campus-band{padding:50px 24px}.campus-band h2{max-width:270px;margin:0 auto 28px;font-size:38px}.club-sticker{width:67px;height:67px;font-size:11px;left:auto;right:10px;top:8px;transform:rotate(12deg)}.campus-band>div{gap:13px 19px;font-size:21px}.first{gap:25px}.faq{padding-top:0}.mobile-dock{position:fixed;bottom:0;left:0;right:0;z-index:8;display:flex;align-items:center;gap:12px;background:var(--paper);border-top:1px solid #142c4820;padding:10px 16px calc(10px + env(safe-area-inset-bottom));box-shadow:0 -4px 20px #142c4809}.mobile-dock .button{flex:1;justify-content:center;padding:12px 9px;font-size:12px}.dock-text{font-size:12px;text-decoration:none;min-height:46px;display:flex;gap:9px;align-items:center;padding:0 6px}footer{padding-bottom:115px}.text-link{min-height:44px;display:inline-flex;align-items:center}summary{min-height:56px}details p{font-size:14px}.first .text-link{font-size:14px}}
@media(max-width:380px){.hero-art{height:145px}.hero-copy{padding-top:16px}.hero h1{font-size:37px}.hero-details .intro{font-size:12px}.hero .micro{font-size:8px}.wordmark small{font-size:10px}}
@media(prefers-reduced-motion:reduce){.service{transition:none}}
@media(min-width:761px){.hero-art{background:var(--navy);height:clamp(240px,31vh,320px);display:flex;justify-content:center;align-items:center}.hero-art>img{width:auto;max-width:44%;height:100%;object-fit:contain}.art-type{position:absolute;color:var(--pink);font:900 clamp(24px,3.2vw,47px)/.98 "Helvetica Neue",Helvetica,Arial,sans-serif;letter-spacing:-1.5px}.art-left{left:7%;transform:rotate(-5deg)}.art-right{right:5%;transform:rotate(4deg)}.art-type i{display:block;color:var(--electric);font-style:normal;font-size:40px;margin:12px 0}.hero h1{font-size:clamp(42px,4.4vw,64px)}}
@media(max-width:760px){.art-type{display:none}}
@media(max-width:380px){.hero-art{height:135px}.hero .spark{display:none}.hero h1{font-size:35px}.hero-copy{padding-bottom:17px}.glow-era{font-size:16px;margin-top:10px}.hero .actions{margin-top:11px}.hero .micro{margin-top:9px}}
@media(max-width:380px){.hero .actions{gap:16px}.hero .actions .button{flex-shrink:0;white-space:nowrap;padding:12px 15px;gap:21px}.hero .actions .text-link{font-size:12px;white-space:nowrap}}
@media(max-width:350px){.hero-art{height:125px}.hero h1{font-size:33px}.hero-details .intro{font-size:11px}.hero .micro{font-size:8px}}
/* Independent brand layer: the mark is never cropped with the photograph. */
.hero{padding-top:42px;overflow:visible}.hero-art{overflow:visible;isolation:isolate}.hero-photo{height:100%;width:100%;overflow:hidden;border-radius:4px}.hero-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 33%}.hero-art>img.hero-logo{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);height:calc(100% + 48px);width:auto;max-width:65%;object-fit:contain;z-index:4;filter:drop-shadow(0 5px 4px #142c4820);pointer-events:none}.hero-copy{padding-top:46px}.art-type{z-index:1}
@media(min-width:761px){.hero-photo{width:44%;border-radius:0}.hero-photo img{object-fit:cover;object-position:center 33%}.hero-art>img.hero-logo{max-width:40%;height:calc(100% + 56px)}}
@media(max-width:760px){.hero{padding-top:28px}.hero-copy{padding-top:37px}.hero-art>img.hero-logo{height:calc(100% + 40px);max-width:72%}.hero-photo img{object-position:center 33%}}
@media(max-width:350px){.hero{padding-top:23px}.hero-copy{padding-top:30px}.hero-art>img.hero-logo{height:calc(100% + 34px)}}

/* Full-bleed photography with the original floating logo layer. */
.hero{padding-left:0;padding-right:0}.hero-art{background:transparent;border-radius:0;outline:0}.hero-photo{width:100%;border-radius:0}.hero-photo img{object-fit:cover;object-position:center 33%}.hero-copy{padding-left:max(24px,calc((100% - 1120px)/2));padding-right:max(24px,calc((100% - 1120px)/2))}
@media(max-width:760px){.hero-copy{padding-left:20px;padding-right:20px}.hero-photo{width:100%}.hero-art{border-radius:0}}
.hero-photo{position:relative}.hero-photo .hero-motion{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 33%;opacity:0;transition:opacity .6s;pointer-events:none}.hero-photo .hero-motion.is-ready{opacity:1}.motion-toggle{position:absolute;right:14px;bottom:12px;z-index:3;background:var(--paper);color:var(--navy);border:1px solid #142c4830;border-radius:4px;padding:9px 12px;min-height:44px;font:11px "Helvetica Neue",Helvetica,Arial,sans-serif;cursor:pointer;box-shadow:0 2px 10px #142c4820}.motion-toggle[hidden]{display:none}.motion-toggle span{margin-left:6px}@media(max-width:760px){.motion-toggle{right:8px;bottom:8px;padding:7px 10px;font-size:10px}}@media(prefers-reduced-motion:reduce){.hero-photo .hero-motion{display:none;transition:none}}
/* The animated frame has a slightly wider source crop; retain the sun in view. */
.hero-photo .hero-motion{object-position:center 22%}@media(max-width:760px){.hero-photo .hero-motion{object-position:center 30%}}
/* Two identical groups make the marquee loop without a visible seam. */
.ribbon{text-align:left;overflow:hidden}.ribbon-track{display:flex;width:max-content;animation:campus-scroll 36s linear infinite;will-change:transform}.ribbon .ribbon-group{display:flex;align-items:center;justify-content:space-around;flex:none;min-width:100vw;gap:40px;padding:0 20px;margin:0}.ribbon .ribbon-group>span{margin:0;flex:none}.ribbon:hover .ribbon-track{animation-play-state:paused}@keyframes campus-scroll{to{transform:translateX(-50%)}}@media(max-width:760px){.ribbon .ribbon-group{gap:28px;padding:0 14px}}@media(prefers-reduced-motion:reduce){.ribbon-track{animation:none;transform:none;will-change:auto}}
