.visit-intro{padding-top:64px;display:flex;align-items:center;justify-content:space-between;gap:24px}.visit-intro h1{font-size:clamp(3rem,5.7vw,5.8rem);letter-spacing:-.065em;line-height:1;margin:0 0 24px}.visit-intro h1 em{font-style:normal;background:linear-gradient(105deg,#f8e8bc 15%,#bba5eb 65%,#80ffe1);background-clip:text;color:transparent}.visit-intro p{color:var(--muted);font-size:1rem;max-width:620px;line-height:1.7}.visit-emblem{opacity:.65;padding-right:5%}.visit-emblem .sparkle{width:74px;height:74px}.visit-experience{margin-top:24px;position:relative}.visit-frame{display:block;border:0;width:100%;height:536px;background:transparent;transition:height .2s}.visit-after{padding:22px 0 70px}.visit-plan{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.visit-plan-content{display:grid;grid-template-columns:1.2fr 1fr;gap:50px;padding:30px 0}.visit-plan-content img{width:100%;height:auto;align-self:start}.visit-plan-content h2{font-size:1.8rem}.visit-plan-content h3{font-size:1.1rem;margin:22px 0 6px}.visit-plan-content p,.visit-links p{color:var(--muted);font-size:.9rem;line-height:1.65}.visit-links{display:flex;align-items:center;gap:32px;flex-wrap:wrap;padding-top:25px}.visit-links p{flex-basis:100%;margin-bottom:0}.visit-links .button{margin-left:auto}.header nav{gap:20px}.header .brand{flex-shrink:0}.header nav a{white-space:nowrap}
@media(min-width:1001px) and (max-width:1250px){.header{gap:18px;padding-inline:24px}.header .brand{width:170px}.header nav{gap:15px;font-size:.78rem}.header-support{padding:10px 12px;font-size:.72rem}}
@media(max-width:700px){.visit-intro{padding-top:38px}.visit-intro h1{font-size:3.4rem}.visit-intro p{font-size:.94rem}.visit-emblem{display:none}.visit-experience{margin-top:20px}.visit-frame{height:436px}.visit-plan-content{grid-template-columns:1fr;gap:20px}.visit-links{gap:20px}.visit-links .button{margin-left:0}.visit-after{padding-bottom:40px}}
@media(prefers-reduced-motion:reduce){.visit-frame{transition:none}}

.visit-frame{color-scheme:dark}
@media(max-width:700px){body:has(.visit-frame) .support-sticky{display:none}}

@media(min-width:761px) and (max-width:1000px){.header nav{display:none;position:absolute;top:100%;left:0;right:0;margin:0;padding:18px 24px 28px;background:var(--ink);border-bottom:1px solid var(--line);align-items:stretch;gap:0;font-size:1rem}.header.menu-open nav{display:flex;flex-direction:column}.header nav a{padding:14px 0}.header nav a:after{display:none}.menu-toggle{display:flex;background:none;border:1px solid var(--line);width:44px;height:44px;align-items:center;justify-content:center;gap:6px;flex-direction:column;border-radius:4px;flex-shrink:0}.menu-toggle span{height:1px;width:18px;background:var(--gold)}.header-support{margin-left:auto}.header .brand{width:200px}}

.visit-intro{padding-top:28px;gap:16px}.visit-intro h1{font-size:clamp(2.3rem,4.2vw,4.3rem);margin:0;line-height:1.05}.visit-emblem{padding:0}.visit-emblem .sparkle{width:40px;height:40px}.visit-experience.wrap{width:calc(100% - 32px);max-width:1600px;margin-top:8px}.visit-frame{height:clamp(540px,calc(100svh - 200px),940px);transition:none}.visit-after{padding-top:8px}
@media(max-width:700px){.visit-intro{padding-top:22px}.visit-intro h1{font-size:2.15rem}.visit-experience.wrap{width:100%;margin-top:8px}.visit-frame{height:clamp(540px,calc(100svh - 175px),820px)}}

/* The intro folds away while the scene grows into the available viewport. */
.visit-heading{display:grid;grid-template-rows:1fr;opacity:1;transition:grid-template-rows 1.2s cubic-bezier(.22,1,.36,1),opacity .55s ease,transform .9s ease}
.visit-heading .page-intro{min-height:0;overflow:hidden;padding-bottom:18px;transition:padding 1.2s cubic-bezier(.22,1,.36,1)}
.visit-heading .lead{white-space:pre-line}
.visit-heading--running{grid-template-rows:0fr;opacity:0;transform:translateY(-24px);pointer-events:none}
.visit-heading--running .page-intro{padding-top:0;padding-bottom:0;border-width:0}
.visit-frame{height:clamp(330px,44svh,460px);transition:height 1.2s cubic-bezier(.22,1,.36,1)}
.visit-heading--running + .visit-experience .visit-frame{height:clamp(540px,calc(100svh - 110px),1040px)}
.visit-experience.wrap{margin-top:0;margin-bottom:32px}
@media(max-width:700px){.visit-frame{height:clamp(280px,40svh,360px)}.visit-heading .page-intro{padding-bottom:8px}.visit-heading--running .page-intro{padding-bottom:0}.visit-heading--running + .visit-experience .visit-frame{height:clamp(540px,calc(100svh - 95px),940px)}}
@media(prefers-reduced-motion:reduce){.visit-heading,.visit-heading *,.visit-frame{transition:none!important}}
