.fan-guidance{display:none}
.contact{position:relative}
.contact-cue{position:absolute;top:62px;right:clamp(30px,9vw,140px);width:58px;height:58px;pointer-events:none;color:#fff8ed;opacity:.75}
.contact-cue{display:grid;place-items:center}
.contact-cue .contact-glyph{transform:scale(1.15)}
.contact-cue .contact-glyph>span{animation-play-state:paused}
.contact.cue-in-view .contact-glyph>span{animation-play-state:running}
@media(min-width:901px) and (hover:hover) and (pointer:fine){.contact-cue{display:none}}
.contact:hover .contact-cue,.contact:focus-visible .contact-cue{opacity:1}
@media(max-width:900px){
 .book__stage{transform:translateX(clamp(8px,calc(28px - (100vw - 360px)*.2),20px))}
 .fan-guidance{display:block;position:absolute;inset:0;z-index:8;pointer-events:none}
 .fan-guidance__curve{position:absolute;inset:0;overflow:visible;display:block;width:100%;height:100%;fill:none;stroke-width:1;stroke-linecap:round;filter:drop-shadow(0 0 2px #fff8ed66)}
 .fan-guidance__curve path{stroke-dasharray:48 52;animation:fanCurveTrace 6.4s ease-in-out infinite;animation-play-state:paused}
 .fan-guidance__curve path:nth-of-type(2){animation-delay:-3.2s}
 .book.cue-in-view .fan-guidance__curve path{animation-play-state:running}
 .fan-guidance__arrow{position:absolute;width:44px;height:44px;transform:translate(-50%,-50%);padding:0;border:0;background:transparent;pointer-events:auto;-webkit-tap-highlight-color:transparent}
 .fan-guidance__arrow:focus-visible{outline:1px solid #cdb384!important;outline-offset:1px}
 .contact-cue{display:grid;width:50px;height:50px;right:28px;top:36px}
}
@keyframes fanCurveTrace{0%,100%{stroke-dashoffset:100;opacity:.35}50%{stroke-dashoffset:0;opacity:.85}}
@media(prefers-reduced-motion:reduce){.fan-guidance__curve path{animation:none}.fan-guidance__curve path{stroke-dasharray:30 70;stroke-dashoffset:45}}
