/* One room, one continuous view: the illustrated header and welcome share a scene. */
.home-grotto-opening{position:relative;isolation:isolate;background:#102639 url(../images/v3/home-continuous-v3.jpg) center/cover no-repeat}
.home-grotto-opening:after{content:'';position:absolute;bottom:-1px;left:0;right:0;height:80px;background:linear-gradient(transparent,var(--wine));pointer-events:none;z-index:0}
.home-grotto-opening .grotto-masthead{background:transparent;min-height:400px}
.home-grotto-opening .grotto-masthead:after,.home-grotto-opening .home-scene:before{display:none}
.home-grotto-opening .home-scene{background:none;margin:0;min-height:440px}
.home-grotto-opening .scene-copy{position:relative;z-index:1;padding-top:42px;padding-bottom:100px}
.home-grotto-opening .scene-copy h1{max-width:550px}
.home-grotto-opening .scene-copy p{max-width:430px}
.signpost-nav{margin-top:18px}
.signpost-nav:before{background-image:url(../images/v3/navigation-beam-v3-web.png);z-index:3;transform:translateY(50%)}
.hanging-sign{z-index:1}
/* The elf is a real control; its portrait tucks behind the solid timber. */
.magic-elf{position:absolute;left:max(calc(50% - 490px),24px);top:75px;z-index:2;width:125px;height:145px;padding:0;border:0;background:none;color:var(--cream);cursor:pointer}
.magic-elf-portrait{display:block;width:100%;height:100%;overflow:hidden}
.magic-elf img{width:100%;height:auto;display:block;transform:translateY(10px) rotate(-5deg);transform-origin:50% 100%;transition:transform .8s cubic-bezier(.45,0,.2,1),filter .8s ease-in-out}
.magic-elf:hover img,.magic-elf:focus-visible img{transform:translateY(0) rotate(-2deg);filter:brightness(1.1)}
.magic-elf[aria-pressed=true] img{filter:brightness(1.15)}
.magic-elf-bubble{position:fixed;z-index:1000;pointer-events:none;padding:13px 17px;background:#f8ecd5;color:#642131;border:1px solid #b18c54;border-radius:14px 14px 14px 3px;box-shadow:0 7px 12px #18080d55;font:17px/1.4 'EB Garamond',Georgia,serif;text-align:center;opacity:0;visibility:hidden;transform:translateY(7px);transition:opacity .25s ease-out,transform .35s cubic-bezier(.2,.8,.2,1),visibility .25s}
.magic-elf-bubble.is-visible{opacity:1;visibility:visible;transform:translateY(0)}
/* Connect the edges of neighbouring seals; never run a line beneath a seal. */
.journey-board ol:before{display:none}
.journey-stop{position:relative}
.journey-stop:not(:last-child):after{content:'';position:absolute;top:32px;left:calc(50% + 36px);width:calc(100% + 15px - 72px);border-top:1px dashed #a5804a;pointer-events:none}
/* Broad editorial spreads keep the long home story in the same room as the footer. */
.home-wide-flow{width:min(1150px,calc(100% - 56px));margin:0 auto}
.home-film-spread{margin:20px auto 60px}
.home-film-spread .grotto-video{width:100%;max-width:none;margin:0}
.home-joy-spread{margin:0 auto 65px;max-width:1100px}
.home-joy-spread h2{font-size:34px;margin:0 0 25px;text-align:left}
.home-joy-spread p{max-width:none;line-height:1.8}
.home-joy-spread p:first-of-type{font-size:23px;line-height:1.75}
.home-story-spreads{display:grid;grid-template-columns:1fr 1fr;gap:65px;align-items:start;margin:0 auto 65px}
.home-story-spreads h2{margin:0 0 24px;font-size:30px;text-align:left}
.home-story-spreads p,.home-farewell p{line-height:1.8}
.home-farewell{position:relative;padding-top:30px}
.home-farewell:before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,#ae8356,transparent)}
.home-farewell>h2{font-size:36px;margin:8px 0 30px;text-align:left}
.home-farewell-columns{display:grid;grid-template-columns:1fr 1fr;gap:65px;align-items:start}
.home-farewell h3{margin:0 0 20px;font-size:26px}
.home-final-order{display:flex;width:270px;margin:20px auto 35px}
#postal-dates-content h1,#postal-dates-content h2,#postal-dates-content h3{text-align:left;max-width:950px;margin-left:auto;margin-right:auto}
#postal-dates-content p,#postal-dates-content table{max-width:950px;margin-left:auto;margin-right:auto}
@media(max-width:1100px) and (min-width:801px){.magic-elf{left:18px;width:100px;top:90px}.home-story-spreads,.home-farewell-columns{gap:42px}.home-grotto-opening .scene-copy h1{max-width:480px}}
@media(max-width:800px){
 .grotto-controls{position:relative;z-index:7;width:230px;margin:6px 18px 0 auto}
 .corner-menu{overflow:visible}
 .corner-menu-body{position:static;top:auto;right:auto;width:100%;margin-top:-7px}
 .corner-menu-body>a{min-height:44px}
 .signpost-nav{margin-top:18px}
 .magic-elf{left:20px;top:112px;width:95px;height:110px}
 .home-grotto-opening{background-image:url(../images/v3/home-mobile-continuous-v3.jpg);background-position:center bottom;background-size:cover;background-color:#10263b}
 .home-grotto-opening .grotto-masthead{min-height:0}
 .home-grotto-opening .home-scene{min-height:640px}
 .home-grotto-opening .scene-copy{padding:28px 34px 300px;text-align:center}
 .home-grotto-opening .scene-copy h1,.home-grotto-opening .scene-copy p{margin-left:auto;margin-right:auto;max-width:550px}
 .home-wide-flow{width:calc(100% - 48px)}
 .home-film-spread{width:calc(100% + 32px);margin:10px -16px 45px}
 .home-story-spreads,.home-farewell-columns{grid-template-columns:1fr;gap:30px}
 .home-story-spreads,.home-joy-spread{margin-bottom:40px}
 .home-joy-spread h2,.home-farewell>h2{font-size:30px}
 .home-joy-spread p:first-of-type{font-size:21px}
}
@media(max-width:540px){
 .grotto-controls{width:200px;margin-right:12px}
 .signpost-nav{margin-top:18px}
 .magic-elf{left:14px;top:71px;width:75px;height:90px}
 .home-grotto-opening .home-scene{min-height:640px}
 .home-grotto-opening .scene-copy{padding:28px 26px 320px}
 .home-grotto-opening .scene-copy h1{font-size:34px;line-height:1.3}
 .home-grotto-opening .scene-copy p{font-size:21px;line-height:1.55}
 .home-grotto-opening .scene-copy .button{min-width:245px}
 .journey-stop:not(:last-child):after{top:24px;left:calc(50% + 27px);width:calc(100% + 5px - 54px)}
 .home-wide-flow{width:calc(100% - 40px)}
 .home-story-spreads h2{font-size:28px}
 .home-film-spread .grotto-video figcaption{font-size:15px;padding:0 15px}
}
@media(prefers-reduced-motion:reduce){.magic-elf img,.magic-elf-bubble{transition:none}.magic-elf:hover img,.magic-elf:focus-visible img{transform:translateY(10px) rotate(-5deg)}}

/* Empty space around the cutout logo must not intercept the elf. */
.grotto-masthead #header{pointer-events:none}.grotto-logo{pointer-events:auto}

/* The elf wakes the entire continuous room, including the welcome and Santa scene. */
.home-grotto-opening:before{content:'';position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(ellipse at 5% 65%,#ffbf5b66,transparent 45%),radial-gradient(ellipse at 95% 70%,#ffd89144,transparent 48%);opacity:0;transition:opacity 1.6s ease-in-out}
.grotto-awake .home-grotto-opening:before{opacity:1}
@media(prefers-reduced-motion:reduce){.home-grotto-opening:before{transition:none}}
