/* Experimental only. GOLD remains unchanged. */
html[data-ag-alive] .ag-alive-opener { view-transition-name: ag-living-pill; isolation:isolate; transform-style:preserve-3d; }
html[data-ag-alive] .ag-alive-copy { view-transition-name:ag-living-words; }
html[data-ag-alive]::view-transition-group(ag-living-pill) {
 z-index:30; overflow:clip; border-radius:var(--alive-radius,28px);
 animation-duration:1000ms;
 animation-timing-function:linear(0, .07 8%, .25 18%, .52 30%, .8 43%, .98 56%, 1.035 68%, 1.016 81%, 1 100%);
}
html[data-ag-alive]::view-transition-image-pair(ag-living-pill) { isolation:isolate; overflow:hidden; border-radius:inherit; }
html[data-ag-alive]::view-transition-old(ag-living-pill) { mix-blend-mode:normal; animation:alive-out 440ms ease both; height:100%; width:100%; object-fit:cover; }
html[data-ag-alive]::view-transition-new(ag-living-pill) { mix-blend-mode:normal; animation:alive-in 620ms ease both; height:100%; width:100%; object-fit:cover; }
html[data-ag-alive]::view-transition-group(ag-living-words) { z-index:31;animation-duration:1000ms;animation-timing-function:cubic-bezier(.2,.85,.25,1.08); }
html[data-ag-alive]::view-transition-old(ag-living-words) { animation:alive-words-out 240ms ease both; }
html[data-ag-alive]::view-transition-new(ag-living-words) { animation:alive-words-in 650ms 140ms both cubic-bezier(.17,.85,.24,1.12); }
@keyframes alive-out { to { opacity:0;filter:blur(5px); } }
@keyframes alive-in { from { opacity:0;filter:blur(8px); } to { opacity:1;filter:blur(0); } }
@keyframes alive-words-out { to { opacity:0;translate:0 -12px;filter:blur(5px); } }
@keyframes alive-words-in { from { opacity:0;translate:0 18px;filter:blur(7px); } to { opacity:1;translate:0 0;filter:blur(0); } }
html[data-ag-alive] .ag-alive-depth { translate:var(--alive-x,0px) var(--alive-y,0px); will-change:translate; }
@media(prefers-reduced-motion:reduce) {
 html[data-ag-alive] .ag-alive-depth { translate:none;will-change:auto; }
 html[data-ag-alive] .ag-alive-opener,html[data-ag-alive] .ag-alive-copy { view-transition-name:none; }
}
html[data-ag-alive] .ag-alive-perspective{perspective:1400px} @media(prefers-reduced-motion:reduce){html[data-ag-alive] .ag-alive-perspective{perspective:none}}
/* Prototype: isolate the living opener; the rest of the incoming page is immediate. */
html[data-ag-alive]::view-transition-group(root){animation:none!important}
html[data-ag-alive]::view-transition-old(root){animation:none!important;opacity:0!important;mix-blend-mode:normal!important}
html[data-ag-alive]::view-transition-new(root){animation:none!important;opacity:1;filter:none!important;mix-blend-mode:normal!important}
html[data-ag-alive][data-ag-route-blur] #main{animation:none!important;filter:none!important}
/* Register snapshot identities before the incoming document is revealed. */
html[data-ag-alive] main :is([data-ag-opening=standard],.ag-news-banner){view-transition-name:ag-living-pill}
html[data-ag-alive] main [data-ag-opening-role=copy],html[data-ag-alive] main .ag-news-banner>h1{view-transition-name:ag-living-words}
@media(prefers-reduced-motion:reduce){html[data-ag-alive] main :is([data-ag-opening=standard],.ag-news-banner,[data-ag-opening-role=copy]),html[data-ag-alive] main .ag-news-banner>h1{view-transition-name:none!important}}
/* Prototype revision 3: no opacity or blur handoffs, including inside the opener. */
html[data-ag-alive]::view-transition-old(ag-living-pill),
html[data-ag-alive]::view-transition-old(ag-living-words){animation:none!important;opacity:0;}
html[data-ag-alive]::view-transition-new(ag-living-pill){animation:none!important;opacity:1;}
html[data-ag-alive]::view-transition-new(ag-living-words){animation:alive-words-slide 850ms cubic-bezier(.17,.85,.24,1.08) both!important;opacity:1!important;filter:none!important}
@keyframes alive-words-slide{from{translate:0 14px}to{translate:0 0}}
html[data-ag-alive] main :is([data-ag-opening=standard],.ag-news-banner) :is([data-ag-reveal],.ag-word,.reveal.pending){opacity:1!important;filter:none!important;animation:none!important}
/* Revision 4: retain an opaque outgoing surface until the new surface covers it. */
html[data-ag-alive]::view-transition-old(root){opacity:1!important;animation:none!important}
html[data-ag-alive]::view-transition-old(ag-living-pill){opacity:1;animation:none!important;}
html[data-ag-alive]::view-transition-new(ag-living-pill){opacity:1;animation:alive-media-reveal 800ms cubic-bezier(.22,.78,.22,1) both!important}
html[data-ag-alive]::view-transition-image-pair(ag-living-pill){background:#171719;isolation:isolate}
@keyframes alive-media-reveal{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
html[data-ag-alive]::view-transition-old(ag-living-words){opacity:1!important;filter:none!important;animation:alive-words-leave 380ms cubic-bezier(.4,0,.6,1) both!important}
html[data-ag-alive]::view-transition-new(ag-living-words){opacity:1!important;filter:none!important;animation:alive-words-arrive 850ms cubic-bezier(.17,.85,.24,1.08) both!important}
html[data-ag-alive]::view-transition-image-pair(ag-living-words){overflow:clip}
@keyframes alive-words-leave{to{translate:-110% 0}}
@keyframes alive-words-arrive{from{translate:110% 0}to{translate:0 0}}
/* Reserve image bleed beyond the largest spring displacement on every edge. */
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
 html[data-ag-alive] .ag-alive-depth{scale:var(--alive-cover-scale,1.04)!important;transform-origin:50% 50%!important;will-change:translate,scale;backface-visibility:hidden}
}
/* All tilted opening media, including live films, bleed behind one outer rounding. */
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
 html[data-ag-alive] .ag-alive-opener :is(img,video).ag-alive-depth{border-radius:0!important;scale:var(--alive-cover-scale,1.055)!important;transform-origin:center!important;backface-visibility:hidden}
}
/* Contact forms stay inside the original morphing opener, never a modal layer. */
html[data-ag-alive] .ag-inline-surface[data-alive-form]{background:var(--paper,#e9e9e6)!important;rotate:none!important;overflow:hidden!important;clip-path:inset(0 round 28px)!important;border-radius:28px!important;aspect-ratio:auto!important;padding:0!important}
.ag-inline-surface[data-alive-form]>.ag-contact-original{display:none!important}
.ag-contact-hero .ag-contact-original[hidden]{display:none!important}
.ag-inline-surface .ag-inline-back{display:flex;align-items:center;gap:8px;margin:0;padding:20px 28px;background:#151719;color:#fff;border:0;border-radius:0;font:14px var(--font-body,system-ui);width:100%;cursor:pointer;text-align:left}
html body[data-page] .ag-inline-surface dialog.ag-inline-form{display:block;position:relative!important;inset:auto!important;margin:0!important;padding:0!important;width:100%!important;max-width:none!important;max-height:none!important;height:auto!important;border:0!important;border-radius:0!important;overflow:visible!important;box-shadow:none!important;background:var(--paper,#e9e9e6)!important;color:#202119!important;opacity:1!important;transform:none!important}
html body[data-page] .ag-inline-form>.close-booking,html body[data-page] .ag-inline-form>.ag-close-enquiry{display:none!important}
html body[data-page] :is(.ag-inline-form,.ag-detached-form) .ag-form-banner{height:240px!important;min-height:240px!important;border-radius:0!important;overflow:hidden!important}
html body[data-page] :is(.ag-inline-form,.ag-detached-form) .ag-form-banner img{border-radius:0!important}
html body[data-page] :is(.ag-inline-form,.ag-detached-form) .ag-enquiry-body{padding:28px!important}
html body[data-page] :is(.ag-inline-form,.ag-detached-form).booking-dialog>p,html body[data-page] :is(.ag-inline-form,.ag-detached-form).booking-dialog>form{margin:0!important;padding:24px 28px!important}
html body[data-page] :is(.ag-inline-form,.ag-detached-form) .ag-form-banner :is(h2,.eyebrow){color:white!important;opacity:1!important;filter:none!important}
html body[data-page] :is(.ag-inline-form,.ag-detached-form) :is(label,legend,p,input,textarea){color:#202119!important;opacity:1!important;filter:none!important}
html body[data-page] :is(.ag-inline-form,.ag-detached-form) :is(form,.form-row,label,input,textarea,fieldset){max-width:100%;box-sizing:border-box}
html body[data-page] :is(.ag-inline-form,.ag-detached-form) :is(input,textarea){width:100%}
html body[data-page] :is(.ag-inline-form,.ag-detached-form) input:is([type=checkbox],[type=radio]){width:auto}
html body[data-page] :is(.ag-inline-form,.ag-detached-form) .interest-options{display:flex;flex-wrap:wrap;gap:8px}
html body[data-page] :is(.ag-inline-form,.ag-detached-form) .interest-options legend{width:100%;margin-bottom:12px}
@media(max-width:640px){html body[data-page] :is(.ag-inline-form,.ag-detached-form) .form-row{grid-template-columns:1fr!important;display:grid!important;gap:20px!important}html body[data-page] :is(.ag-inline-form,.ag-detached-form) .ag-form-banner{height:210px!important;min-height:210px!important}html body[data-page] :is(.ag-inline-form,.ag-detached-form) .ag-enquiry-body{padding:22px!important}}
html[data-ag-alive] .ag-inline-surface[data-alive-form]{display:block!important;justify-content:flex-start!important;align-items:stretch!important}
html[data-ag-alive] .ag-inline-surface[data-alive-form]::before,html[data-ag-alive] .ag-inline-surface[data-alive-form]::after{display:none!important}
/* A separate, non-interactive shadow is never cut by the media clipping mask. */
.ag-alive-shadow{position:absolute;pointer-events:none;z-index:20;box-sizing:border-box;background:transparent;border:1px solid rgba(20,23,25,.10);box-shadow:0 3px 9px rgba(16,20,18,.10),0 18px 38px rgba(16,20,18,.18);}
html:not([data-ag-alive]) .ag-alive-shadow{display:none}
html[data-ag-alive] .ag-alive-shadow[data-alive-primary]{view-transition-name:ag-living-shadow}
html[data-ag-alive]::view-transition-group(ag-living-shadow){z-index:29;overflow:visible;animation-duration:1000ms;animation-timing-function:linear(0,.07 8%,.25 18%,.52 30%,.8 43%,.98 56%,1.035 68%,1.016 81%,1 100%)}
html[data-ag-alive]::view-transition-image-pair(ag-living-shadow){overflow:visible}
html[data-ag-alive]::view-transition-old(ag-living-shadow){animation:none;opacity:0}
html[data-ag-alive]::view-transition-new(ag-living-shadow){animation:none;opacity:1}
@media(prefers-reduced-motion:reduce){html[data-ag-alive] .ag-alive-shadow{view-transition-name:none}}
/* One shadow surface, and full-width form artwork with an accessible close control. */
.ag-alive-shadow{border:0!important;outline:0!important}
html body[data-page] .ag-inline-surface .ag-inline-back{position:absolute;z-index:10;top:16px;right:16px;left:auto;display:grid;place-items:center;width:42px;height:42px;padding:0;border-radius:50%;background:rgba(255,255,255,.9);color:#151719;font:28px/1 system-ui;border:1px solid #ffffff66;box-shadow:0 2px 12px #0002;backdrop-filter:blur(12px)}
html body[data-page] .ag-inline-surface .ag-inline-back:focus-visible{outline:3px solid #3478f6;outline-offset:3px}
html body[data-page] :is(.ag-inline-form,.ag-detached-form) .ag-form-banner{position:relative!important;display:block!important;width:100%!important;height:280px!important;min-height:280px!important;padding:0!important;background:#151719!important;isolation:isolate}
html body[data-page] :is(.ag-inline-form,.ag-detached-form) .ag-form-banner>img{position:absolute!important;inset:0!important;left:0!important;right:0!important;top:0!important;width:100%!important;height:100%!important;max-width:none!important;object-fit:cover!important;object-position:center 38%!important;mask-image:none!important;-webkit-mask-image:none!important;clip-path:none!important;opacity:1!important;filter:none!important;transform:none!important;scale:1!important;z-index:0!important}
html body[data-page] :is(.ag-inline-form,.ag-detached-form) .ag-form-banner::after{content:''!important;position:absolute!important;inset:0!important;background:linear-gradient(90deg,rgba(0,0,0,.62),rgba(0,0,0,.15) 60%,transparent)!important;z-index:1!important;pointer-events:none}
html body[data-page] :is(.ag-inline-form,.ag-detached-form) .ag-form-banner>div{position:absolute!important;left:28px!important;bottom:26px!important;top:auto!important;right:28px!important;width:auto!important;max-width:80%!important;padding:0!important;background:none!important;z-index:2!important}
html body[data-page] :is(.ag-inline-form,.ag-detached-form) .ag-form-banner h2{font-size:42px!important;line-height:1!important;text-shadow:0 2px 8px #0003!important}
@media(max-width:640px){html body[data-page] :is(.ag-inline-form,.ag-detached-form) .ag-form-banner{height:250px!important;min-height:250px!important}html body[data-page] :is(.ag-inline-form,.ag-detached-form) .ag-form-banner>div{left:22px!important;right:22px!important;max-width:85%!important}html body[data-page] :is(.ag-inline-form,.ag-detached-form) .ag-form-banner h2{font-size:36px!important}}
/* The moving surface owns its rounding; stationary cinema shells must not cut it. */
html[data-ag-alive] body:not([data-page=home]) .ag-alive-opener{border-radius:28px!important;clip-path:inset(0 round 28px)!important;-webkit-clip-path:inset(0 round 28px)!important;overflow:hidden!important;transform-style:flat!important}
html[data-ag-alive] .ag-alive-open-shell{overflow:visible!important;clip-path:none!important;border-radius:0!important;box-shadow:none!important;background:transparent!important}
@media(max-width:800px){html[data-ag-alive] body:not([data-page=home]) .ag-alive-opener:not([data-alive-form]){border-radius:20px!important;clip-path:inset(0 round 20px)!important;-webkit-clip-path:inset(0 round 20px)!important}}
/* Local CTA morphs claim the same shared surface identity without duplicate names. */
html[data-ag-inline-morph] :is(.ag-alive-opener,[data-ag-opening=standard],.ag-news-banner,[data-ag-opening-role=copy],.ag-alive-copy,.ag-news-banner>h1){view-transition-name:none!important}
html[data-ag-inline-morph] .ag-inline-surface:not(#ag-unused-form-surface){view-transition-name:ag-living-pill!important}
html body[data-page] .ag-inline-surface[data-alive-form]{position:relative!important;inset:auto!important;display:block!important;aspect-ratio:auto!important;transform:none!important;translate:none!important;scale:1!important;rotate:none!important;padding:0!important;isolation:isolate!important;border-radius:28px!important;clip-path:inset(0 round 28px)!important;overflow:hidden!important;background:var(--paper,#e9e9e6)!important;color:#202119!important}
html body[data-page] .ag-inline-surface[data-alive-form]>.ag-inline-source{display:none!important}
html body[data-page] .ag-inline-surface[data-alive-form]::before,html body[data-page] .ag-inline-surface[data-alive-form]::after{display:none!important}
html[data-ag-alive] .ag-form-open-shell{position:relative!important;inset:auto!important;height:auto!important;min-height:0!important;overflow:visible!important;padding:0!important}
@media(prefers-reduced-motion:reduce){html[data-ag-inline-morph] .ag-inline-surface:not(#ag-unused-form-surface){view-transition-name:none!important}}

/* Closing CTAs retain their original responsive geometry. Only the surface moves. */
html[data-ag-alive] .ag-alive-cta{isolation:isolate;transform-style:flat!important;overflow:hidden!important;clip-path:inset(0 round var(--alive-cta-radius,28px));backface-visibility:hidden}

/* A feathered moving edge replaces the hard wipe. Blur stays inside the pill. */
html[data-ag-alive]::view-transition-new(ag-living-pill){
 clip-path:none!important;
 -webkit-mask-image:linear-gradient(90deg,#000 48%,transparent 52%);
 mask-image:linear-gradient(90deg,#000 48%,transparent 52%);
 -webkit-mask-size:300% 100%;mask-size:300% 100%;
 -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
 animation:alive-soft-media 850ms cubic-bezier(.22,.78,.22,1) both!important;
}
html[data-ag-alive]::view-transition-old(ag-living-pill){animation:alive-soft-depart 850ms ease both!important}
@keyframes alive-soft-media{
 0%{mask-position:80% 0;-webkit-mask-position:80% 0;filter:blur(5px)}
 40%{filter:blur(3px)}
 100%{mask-position:20% 0;-webkit-mask-position:20% 0;filter:blur(0)}
}
@keyframes alive-soft-depart{0%,100%{filter:blur(0)}45%{filter:blur(2px)}}
@media(prefers-reduced-motion:reduce){html[data-ag-alive]::view-transition-new(ag-living-pill){animation:none!important;mask-image:none;-webkit-mask-image:none;filter:none}}

/* Booking has its own floating pill. The source CTA remains untouched behind it. */
html body[data-page] dialog.ag-detached-form{
 position:fixed!important;inset:0!important;margin:auto!important;padding:0!important;
 width:min(620px,calc(100vw - 32px))!important;max-width:620px!important;max-height:calc(100dvh - 48px)!important;
 border:0!important;border-radius:28px!important;overflow:auto!important;background:var(--paper,#e9e9e6)!important;color:#202119!important;
 opacity:1!important;translate:none!important;scale:1!important;transform:none;transition:none!important;
 box-shadow:0 5px 15px #10141226,0 24px 64px #10141240!important;transform-origin:center;overscroll-behavior:contain;
}
html body[data-page] dialog.ag-detached-form::backdrop{background:rgba(15,20,18,.25);backdrop-filter:blur(8px)}
html body[data-page] .ag-detached-form>.close-booking{
 display:grid!important;position:absolute;place-items:center;z-index:10;top:16px;right:16px;left:auto;
 width:42px;height:42px;padding:0;border-radius:50%;background:rgba(255,255,255,.92);color:#151719;
 border:1px solid #ffffff66;box-shadow:0 2px 12px #0002;font:28px/1 system-ui;cursor:pointer;
}
html body[data-page] .ag-detached-form>.close-booking:focus-visible{outline:3px solid #3478f6;outline-offset:3px}

/* Forms get a clean, independent, scrollable view matching the portrait reference. */
html body[data-page] dialog.ag-form-view{
 position:fixed!important;inset:0!important;width:100vw!important;height:100dvh!important;max-width:none!important;max-height:none!important;
 margin:0!important;padding:32px 16px!important;box-sizing:border-box!important;border:0!important;border-radius:0!important;
 overflow:auto!important;overscroll-behavior:contain;background:var(--paper,#e9e9e6)!important;color:#202119!important;box-shadow:none!important;
 opacity:1!important;transform:none!important;translate:none!important;scale:1!important;transition:none!important;
}
html body[data-page] dialog.ag-form-view::backdrop{background:var(--paper,#e9e9e6);backdrop-filter:none}
html body[data-page] .ag-form-view:not([open]){display:none!important}
html body[data-page] dialog.ag-form-view-card{
 display:block!important;position:relative!important;inset:auto!important;float:none!important;margin:0 auto!important;padding:0!important;
 width:min(620px,100%)!important;max-width:620px!important;max-height:none!important;height:auto!important;min-height:min(1100px,160vw)!important;
 overflow:visible!important;border-radius:28px!important;clip-path:inset(0 round 28px)!important;
}
html body[data-page] .ag-form-view-card>:is(.close-booking,.ag-close-enquiry){display:none!important}
html body[data-page] .ag-form-view-card>.ag-form-view-close{
 position:absolute;display:grid;place-items:center;z-index:10;top:16px;right:16px;width:42px;height:42px;
 margin:0;padding:0;border-radius:50%;background:#fffffff0;color:#151719;border:1px solid #ffffff66;
 box-shadow:0 2px 12px #0002;font:28px/1 system-ui;cursor:pointer;
}
html body[data-page] .ag-form-view-close:focus-visible{outline:3px solid #3478f6;outline-offset:3px}
@media(max-width:640px){html body[data-page] dialog.ag-form-view{padding:20px 16px!important}}

/* Every pill uses Contact’s local perspective; ancestor size cannot amplify tilt. */
html[data-ag-alive] .ag-alive-perspective{perspective:none}

/* Local form morphs narrow first, then lengthen. Page-to-page wipes stay separate. */
html[data-ag-alive][data-ag-form-motion]::view-transition-new(ag-living-pill){
 mask-image:none!important;-webkit-mask-image:none!important;
 animation:ag-form-content-arrive 1120ms linear both!important;
}
html[data-ag-alive][data-ag-form-motion]::view-transition-old(ag-living-pill){
 animation:ag-form-content-depart 1120ms linear both!important;
}
@keyframes ag-form-content-arrive{
 0%,38%{opacity:0;filter:blur(4px)}
 72%,100%{opacity:1;filter:blur(0)}
}
@keyframes ag-form-content-depart{
 0%,42%{opacity:1;filter:blur(0)}
 72%,100%{opacity:0;filter:blur(3px)}
}
/* Keep the shadow snapshot fitted to the same changing frame, including its height. */
html[data-ag-alive][data-ag-form-motion]::view-transition-image-pair(ag-living-shadow){width:100%;height:100%}
html[data-ag-alive][data-ag-form-motion]::view-transition-old(ag-living-shadow),
html[data-ag-alive][data-ag-form-motion]::view-transition-new(ag-living-shadow){width:100%;height:100%;object-fit:fill}
html[data-ag-alive][data-ag-form-motion]::view-transition-old(ag-living-pill){object-position:left top}
@keyframes ag-form-content-arrive{
 0%,42%{opacity:0;filter:blur(3px)}
 55%,100%{opacity:1;filter:blur(0)}
}
@keyframes ag-form-content-depart{
 0%,42%{opacity:1;filter:blur(0)}
 55%,100%{opacity:0;filter:blur(3px)}
}
/* The form's clean view has no navigation snapshot crossing over the moving pill. */

/* Every shadow snapshot must fill its animated frame, including during page handoffs. */
html[data-ag-alive]::view-transition-image-pair(ag-living-shadow){width:100%;height:100%}
html[data-ag-alive]::view-transition-old(ag-living-shadow),
html[data-ag-alive]::view-transition-new(ag-living-shadow){width:100%;height:100%;object-fit:fill}
/* Draw transition shadows on the animated outline itself, avoiding stretched bitmap edges. */
html[data-ag-alive]::view-transition-group(ag-living-shadow){
 border-radius:var(--alive-radius,28px);
 box-shadow:0 3px 7px rgba(16,20,18,.09),0 13px 28px rgba(16,20,18,.16);
}
html[data-ag-alive]::view-transition-image-pair(ag-living-shadow){opacity:0}
/* Keep independently animated words inside the same rounded, moving pill. */
@supports(view-transition-group:nearest){
 html[data-ag-alive] main :is([data-ag-opening=standard],.ag-news-banner){view-transition-group:contain}
 html[data-ag-alive] :is(.ag-alive-copy,[data-ag-opening-role=copy],.ag-news-banner>h1){view-transition-group:nearest}
 html[data-ag-alive]::view-transition-group-children(ag-living-pill){
  width:100%;height:100%;overflow:clip;border-radius:inherit;
  clip-path:inset(0 round var(--alive-radius,28px));
 }
}
/* Older engines keep the text in the clipped pill snapshot rather than a loose layer. */
@supports not (view-transition-group:nearest){
 html[data-ag-alive] main :is(.ag-alive-copy,[data-ag-opening-role=copy],.ag-news-banner>h1){view-transition-name:none!important}
}

/* Keep the real navigation inside the active form view and leave room beneath it. */
html body[data-page] dialog.ag-form-view{padding-top:calc(var(--ag-header-height,75px) + env(safe-area-inset-top,0px) + 32px)!important;scroll-padding-top:calc(var(--ag-header-height,75px) + 24px)}
html body[data-page] .ag-form-view>header.site-header{position:fixed!important;inset:0 0 auto!important;opacity:1!important;visibility:visible!important;transform:none!important;z-index:5000}
html body[data-page] .ag-form-view-card[data-ag-confirmed]{min-height:420px!important;margin-top:max(0px,calc((100dvh - var(--ag-header-height,75px) - 64px - 420px)/2))!important}
.ag-thanks-content{padding:58px 44px 48px;text-align:center}
.ag-thanks-check{display:grid;place-items:center;width:56px;height:56px;margin:0 auto 24px;border-radius:50%;background:#1d1e1b;color:#fff;font:32px/1 var(--sans)}
.ag-thanks-content>.eyebrow{margin-bottom:20px;color:#62635e}
html body[data-page] .ag-thanks-content>h2{font:400 clamp(44px,4.5vw,64px)/1.02 var(--display)!important;letter-spacing:-.02em;margin:0 0 24px!important;color:#1d1e1b!important}
.ag-thanks-content>p{font:400 16px/1.6 var(--sans);color:#62635e;max-width:36ch;margin:auto}
.ag-preview-note{font:400 12px/1.5 var(--sans);color:#62635e;margin-top:14px}
.ag-preview-thanks{margin-top:10px}
@media(max-width:640px){html body[data-page] dialog.ag-form-view{padding-top:calc(var(--ag-header-height,64px) + env(safe-area-inset-top,0px) + 20px)!important}.ag-thanks-content{padding:56px 24px 36px}}
/* The rounded outer pill is the only mask. Text can move beyond its own copy box. */
html[data-ag-alive]::view-transition-group(ag-living-words),
html[data-ag-alive]::view-transition-image-pair(ag-living-words){overflow:visible;clip-path:none}
/* Phone morphs use the same rounding as their real responsive surface. */
@media(max-width:800px){html[data-ag-alive]{--alive-radius:20px}}
html[data-ag-alive][data-ag-form-motion]{--alive-radius:28px}
/* Touch keeps the spring timing and soft wipe, with less full-surface blur work. */
@media(hover:none) and (pointer:coarse){
 html[data-ag-alive] .ag-alive-depth{translate:none;scale:none;will-change:auto}
 html[data-ag-alive]::view-transition-new(ag-living-pill){animation-name:alive-touch-media!important}
 html[data-ag-alive]::view-transition-old(ag-living-pill){animation-name:alive-touch-depart!important}
 html[data-ag-alive][data-ag-form-motion]::view-transition-new(ag-living-pill){animation-name:ag-form-content-arrive!important}
 html[data-ag-alive][data-ag-form-motion]::view-transition-old(ag-living-pill){animation-name:ag-form-content-depart!important}
 html body[data-page] .ag-form-view-card>.ag-form-view-close{width:48px;height:48px;touch-action:manipulation}
}
@keyframes alive-touch-media{
 0%{mask-position:80% 0;-webkit-mask-position:80% 0;filter:blur(2px)}
 40%{filter:blur(1px)}
 100%{mask-position:20% 0;-webkit-mask-position:20% 0;filter:blur(0)}
}
@keyframes alive-touch-depart{0%,100%{filter:blur(0)}45%{filter:blur(.75px)}}
html body[data-page] dialog.ag-form-view{
 padding-left:max(16px,env(safe-area-inset-left,0px))!important;
 padding-right:max(16px,env(safe-area-inset-right,0px))!important;
 padding-bottom:max(32px,env(safe-area-inset-bottom,0px))!important;
}
@media(prefers-reduced-motion:reduce){
 html[data-ag-alive]::view-transition-old(ag-living-pill),html[data-ag-alive]::view-transition-new(ag-living-pill){animation:none!important;filter:none!important}
}

/* Keep the outgoing page underneath until the incoming page has covered it.
   The pill still owns its original spring/wipe; the surrounding page blends in. */
html[data-ag-alive]:not([data-ag-form-motion])::view-transition-new(root){
 animation:alive-page-arrive 800ms cubic-bezier(.22,.61,.36,1) both!important;
}
@keyframes alive-page-arrive{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){
 html[data-ag-alive]::view-transition-new(root){animation:none!important;opacity:1}
}

/* Retain native, accessible radios behind their labelled choice buttons.
   The generic form visibility rule must not expose iOS's native radio paint. */
html body[data-page] .ag-form-view-card .interest-options input[type=radio]{
 position:absolute!important;width:1px!important;height:1px!important;
 margin:0!important;padding:0!important;opacity:0!important;
 overflow:hidden!important;clip-path:inset(50%)!important;
}
html body[data-page] .ag-form-view-card .interest-options input[type=radio]:focus-visible+span{
 outline:2px solid #3478f6;outline-offset:3px;
}

/* Fixed descendants of the scrolling dialog move with its content on mobile.
   A sticky header stays at the viewport edge without adding space above the card. */
html body[data-page] dialog.ag-form-view{--ag-form-top-gap:32px}
html body[data-page] .ag-form-view>header.site-header{
 position:sticky!important;inset:calc(-1 * (var(--ag-header-height,75px) + env(safe-area-inset-top,0px) + var(--ag-form-top-gap))) auto auto!important;
 width:calc(100% + max(16px,env(safe-area-inset-left,0px)) + max(16px,env(safe-area-inset-right,0px)))!important;
 margin:calc(-1 * (var(--ag-header-height,75px) + env(safe-area-inset-top,0px) + var(--ag-form-top-gap))) calc(-1 * max(16px,env(safe-area-inset-right,0px))) var(--ag-form-top-gap) calc(-1 * max(16px,env(safe-area-inset-left,0px)))!important;
}
html body[data-page] .ag-form-view>header.site-header .mobile-nav{
 position:absolute!important;inset:0!important;width:100%!important;
}
@media(max-width:640px){html body[data-page] dialog.ag-form-view{--ag-form-top-gap:20px}}

/* Keep the form and its shadow in one browser-sized scrolling box. */
html[data-ag-alive] body[data-page=home] .home-cinema-stage{overflow:visible}
html body[data-page] .ag-form-shadow-anchor{
 position:relative;display:flow-root;width:min(620px,100%);margin:0 auto;
 overflow:visible;border-radius:28px;
}
html body[data-page] .ag-form-shadow-anchor:has(>[data-ag-confirmed]){
 margin-top:max(0px,calc((100dvh - var(--ag-header-height,75px) - 64px - 420px)/2));
}
html body[data-page] .ag-form-shadow-anchor>.ag-form-view-card[data-ag-confirmed]{margin-top:0!important}
