.registration-panel[hidden],.registration-panel [hidden]{display:none!important}
/* The page canvas also covers Safari's translucent toolbars and overscroll.
   Keep the landing layout intact so closing returns to the same scroll position.
   The native floating player is not inert and remains above this quiet surface. */
html:has(body.registration-open),body.registration-open{background:#e9eeeb!important;overscroll-behavior:none;overflow:hidden!important}
body.registration-open>[inert]{opacity:0!important;pointer-events:none!important}
body.registration-open::before{content:"";position:fixed;inset:0;min-height:100lvh;z-index:124;background:#e9eeeb;pointer-events:none}
.registration-panel{position:fixed;inset:calc(var(--registration-top,0px) + max(12px,(var(--registration-height,100dvh) - 740px)/2)) auto auto 50%;transform:translateX(-50%);width:min(920px,calc(100% - 24px));height:min(740px,calc(var(--registration-height,100dvh) - 24px));z-index:125;border-radius:28px;background:linear-gradient(145deg,#fffffff0,#edf5f0dc);color:#151715;border:1px solid #ffffffb8;backdrop-filter:blur(32px) saturate(135%);-webkit-backdrop-filter:blur(32px) saturate(135%);box-shadow:inset 0 1px 0 #fff,0 24px 90px #062b242b;overflow:hidden;isolation:isolate}
.registration-heading{--journey-height:84px;--registration-mark-size:38px;height:var(--journey-height);box-sizing:border-box;padding:16px 18px 0}
.registration-mail-note{margin:0 0 0 calc(var(--registration-mark-size) + 8px);font-size:12px;line-height:16px;color:#52665a}
.registration-actions{position:absolute;bottom:0;left:0;right:0;height:128px;box-sizing:border-box;padding:0 18px 12px}
.registration-trust{display:flex;align-items:center;justify-content:center;gap:5px;position:absolute;bottom:12px;left:0;right:0;margin:0;font-size:11px;line-height:16px;color:#426352}
.registration-trust svg{flex:none;width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.registration-trust a{margin-left:5px;color:inherit;text-decoration:none}
.registration-trust a:focus-visible{outline:2px solid #176349;outline-offset:3px}
.registration-heading-brand{display:flex;gap:8px;align-items:center;height:32px;padding-right:44px}
.registration-heading img{width:var(--registration-mark-size);height:var(--registration-mark-size);object-fit:contain;flex:none;transform:scale(1.3)}
.registration-heading-brand p{font-size:17px;font-weight:600;letter-spacing:-.03em;line-height:22px;margin:0}
.registration-steps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(6px,2vw,10px);width:100%;max-width:360px;margin-inline:auto;padding-top:0;padding-bottom:0;transform:translateY(var(--registration-rail-shift,0px))}
.registration-step-slot{position:relative;min-width:0}
.registration-steps button{display:flex;align-items:center;justify-content:center;gap:4px;width:100%;min-height:44px;padding:8px 4px;border:0;border-radius:99px;background:linear-gradient(135deg,#064e3b 0%,#047857 58%,#0b805b 100%);box-shadow:inset 0 1px 0 #ffffff38,0 3px 10px #064e3b20;font-family:inherit;color:#fff;cursor:pointer;transition:box-shadow .2s}
.registration-step-top{display:flex;align-items:center;justify-content:center;gap:5px;font-size:13px;line-height:13px;font-weight:500;font-variant-numeric:tabular-nums}
.registration-step-label{font-size:13px;font-weight:600;line-height:14px;white-space:nowrap}
.registration-actions .registration-step-note{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.registration-steps button:hover:not(:disabled){box-shadow:inset 0 1px 0 #ffffff50,0 4px 14px #064e3b30}
.registration-steps button:focus-visible{outline:2px solid #176349;outline-offset:3px}
.registration-steps button:disabled{cursor:default;opacity:1}
:is(.registration-close,.registration-help-close){position:absolute;right:12px;top:12px;z-index:4;width:44px;height:44px;border:0;border-radius:50%;font-size:30px;font-weight:300;line-height:1;font-family:inherit;background:transparent;color:#151715;cursor:pointer}
.registration-form{position:relative;height:calc(100% - 212px)}
.registration-panel iframe{display:block;width:100%;height:100%;border:0;background:transparent}
.registration-loading,.registration-fallback{position:absolute;left:18px;right:18px;top:24px;text-align:center;font-size:14px;z-index:3;background:#f8fbf9;padding:18px;border-radius:16px}
.registration-fallback{top:86px}.registration-fallback a{color:#176349;text-decoration:underline}
.registration-intro{display:flex;flex-direction:column;align-items:center;height:calc(100% - 212px);padding:0 20px 16px;box-sizing:border-box;text-align:center;gap:12px}.registration-intro h2{margin:0 0 6px;font-size:clamp(21px,4vw,28px);letter-spacing:-.04em;line-height:1.2}.registration-intro p{font-size:12px;line-height:1.5;color:#52665a;margin:0}.registration-intro-media{flex:1;min-height:0;width:100%}
.registration-intro small{display:block;color:#52665a;font-size:11px;margin:0}
.registration-open .floating-video{--mini-width:132px;z-index:130;width:var(--mini-width);max-height:none}
.registration-open .floating-video-back{display:none}
.registration-intro-required .registration-panel{width:min(680px,calc(100% - 24px));height:calc(var(--registration-height,100dvh) - 24px);top:calc(var(--registration-top,0px) + 12px)}
.registration-open.registration-intro-required .floating-video{left:var(--registration-film-left,50%);top:var(--registration-film-top,150px);transform:translateX(-50%);width:var(--registration-film-width,180px);height:auto;aspect-ratio:9/19.5}
@media(max-width:820px){
 .registration-panel:not([data-phase="intro"]){height:min(680px,calc(var(--registration-height,100dvh) - 24px));top:calc(var(--registration-top,0px) + max(12px,(var(--registration-height,100dvh) - 680px)/2))}
 .registration-heading{--registration-mark-size:36px}.registration-heading-brand p{font-size:16px}
 .registration-step-top{font-size:11px}
 .registration-step-label{font-size:clamp(10px,2.8vw,11px)}
 .registration-open:not(.registration-intro-required) .floating-video{--mini-width:88px;width:var(--mini-width);border-radius:14px}
 .registration-open:not(.registration-intro-required) .floating-video :is(.floating-video-play,.floating-video-close,.floating-video-sound,.floating-video-expand,.floating-video-replay){width:44px;height:44px}
 .registration-open:not(.registration-intro-required) .floating-video-play{left:0;top:0}.registration-open:not(.registration-intro-required) .floating-video-close{right:0;top:0}.registration-open:not(.registration-intro-required) .floating-video-sound{left:0;bottom:0}.registration-open:not(.registration-intro-required) .floating-video-expand{right:0;bottom:0}
 .registration-open:not(.registration-intro-required) .floating-video-end{padding:40px 5px 44px;gap:5px}.registration-open:not(.registration-intro-required) .floating-video-end img{width:18px;height:18px}.registration-open:not(.registration-intro-required) .floating-video-end-title{font-size:11px}.registration-open:not(.registration-intro-required) .floating-video-end-subtitle{display:none}.registration-open:not(.registration-intro-required) .floating-video-cta{font-size:10px;padding:3px 2px;min-height:44px}
}
@media(prefers-reduced-motion:reduce){.registration-panel{scroll-behavior:auto}}
/* Ticket actions no longer change their meaning when viewing completes. */
.visitor-flow [data-apply]:not([data-hero-start])>.cta-ticket-icon{display:block;width:18px;height:18px;flex:none}
.visitor-flow [data-apply]:not([data-hero-start])>.play-icon,.gm-cta .icon-play{display:none}
.gm-cta .icon-ticket{display:block}
.film-complete .watch-cta[data-hero-start] .play-icon{display:block}
.film-complete .watch-cta[data-hero-start] .duration{display:inline}
.selfie-end-cta .icon-ticket{display:block!important;width:18px;height:18px;flex:none}.selfie-end-cta .icon-play{display:none!important}

.registration-open main *{animation-play-state:paused!important}

/* One recommended next step, with booking available alongside the explainer. */
.visitor-flow [data-hero-start][data-journey-action="ticket"]>.play-icon{display:none!important}
.visitor-flow [data-hero-start][data-journey-action="ticket"]>.cta-ticket-icon{display:block;width:18px;height:18px;flex:none}
.visitor-flow [data-hero-start][data-journey-action="ticket"]>.duration{display:none!important}
.visitor-flow [data-hero-start]:not([data-journey-action="ticket"])>.cta-ticket-icon{display:none!important}
.selfie-end-ticket{display:flex;align-items:center;justify-content:center;min-height:44px;margin:8px 0 0;color:#304c43;font-size:clamp(10px,3.6cqi,13px);line-height:1.45;text-align:center;text-decoration:underline;text-underline-offset:3px}
.gm-parallel-ticket{display:none;text-align:center;margin:16px auto 0;max-width:350px;padding:0 12px}
.growth-model[data-zustand="film"] .gm-parallel-ticket{display:block}
.gm-parallel-ticket a{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;color:#006c46;font-size:14px;font-weight:600;text-decoration:underline;text-underline-offset:4px}
.gm-parallel-ticket p{margin:0;color:#626964;font-size:12px;line-height:1.5}
.dark-block .gm-parallel-ticket a{color:#85dfbc}
.dark-block .gm-parallel-ticket p{color:#b4bbb7}

/* Full view is the same live portrait stream, above the form, never a replacement. */
.registration-open .floating-video.is-expanded{left:0;top:var(--registration-top,0px);width:100vw;height:var(--registration-height,100dvh);aspect-ratio:auto;transform:none;border-radius:0;z-index:141}
.registration-open .floating-video.is-expanded .floating-video-end{padding:70px 74px 90px 24px;gap:20px}
.registration-open .floating-video.is-expanded .floating-video-end img{width:32px;height:32px}
.registration-open .floating-video.is-expanded .floating-video-end-title{font-size:clamp(22px,7vw,32px)}
.registration-open .floating-video.is-expanded .floating-video-end-subtitle{display:block;font-size:clamp(18px,5vw,25px)}
.registration-open .floating-video.is-expanded .floating-video-cta{font-size:15px;min-height:54px;padding:14px 18px;border-radius:99px}

/* The smallest phones keep the complete form on one screen. */
@media(max-width:820px) and (max-height:650px){
 .registration-panel:not([data-phase="intro"]){width:calc(100% - 16px);height:calc(var(--registration-height,100dvh) - 16px);top:calc(var(--registration-top,0px) + 8px)}
 .registration-heading{--journey-height:60px;--registration-mark-size:32px;padding:8px 12px 0}
 .registration-heading-brand p{font-size:15px}
 .registration-steps{gap:6px;padding-top:0;padding-bottom:0}
 .registration-actions{height:104px;padding:0 12px 8px}
 .registration-trust{bottom:8px;font-size:10px;line-height:14px}
 .registration-actions .registration-step-note{font-size:10px;margin-top:2px;line-height:12px}
 .registration-form{height:calc(100% - 164px)}
 .registration-intro{height:calc(100% - 164px);gap:8px;padding-bottom:12px}
}

/* Both films keep the same portrait frame, including their completed state.
 * Reserve the top/bottom control rows; do not widen a completed selfie into a square. */
@media(max-width:820px){
 .registration-open:not(.registration-intro-required) .floating-video:not(.is-expanded) .floating-video-end{padding:40px 4px 44px;gap:2px}
 .registration-open:not(.registration-intro-required) .floating-video:not(.is-expanded) .floating-video-end img{display:none}
 .registration-open:not(.registration-intro-required) .floating-video:not(.is-expanded) .floating-video-end p{font-size:10px;line-height:12px}
 .registration-open:not(.registration-intro-required) .floating-video:not(.is-expanded) .floating-video-end-title{font-size:10px;line-height:12px;white-space:nowrap}
 .registration-open:not(.registration-intro-required) .floating-video:not(.is-expanded) .floating-video-end-subtitle{display:none}
 .registration-open:not(.registration-intro-required) .floating-video:not(.is-expanded) :is(.floating-video-cta,.floating-video-secondary){min-height:44px;font-size:9px;line-height:12px;padding:3px 1px;gap:2px}
}

.selfie-end-ticket{gap:7px}
.selfie-end-ticket>svg{flex:none;width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}

/* A single masked reflection flows across the complete two-step row. */
.registration-steps{position:relative;isolation:isolate}
.registration-steps button{position:relative;isolation:isolate;overflow:hidden}
.registration-steps button>span{position:relative;z-index:1}
.registration-steps::after{content:"";position:absolute;left:0;right:0;top:0;height:var(--registration-sheen-height,44px);z-index:2;pointer-events:none;mask-image:var(--registration-sheen-mask,linear-gradient(transparent,transparent));-webkit-mask-image:var(--registration-sheen-mask,linear-gradient(transparent,transparent));mask-size:100% 100%;-webkit-mask-size:100% 100%;mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;background:linear-gradient(110deg,transparent 32%,#ffffff06 41%,#ffffff20 47%,#ffffff38 50%,#ffffff20 53%,#ffffff06 59%,transparent 68%);background-size:320% 100%;opacity:0;animation:registration-ticket-sheen 18s cubic-bezier(.4,0,.25,1) infinite;animation-delay:1s}
.registration-panel[hidden] .registration-steps::after,.registration-steps:not(:has(button:enabled))::after{animation:none;opacity:0}
.registration-background .registration-steps::after{animation-play-state:paused;opacity:0}
@keyframes registration-ticket-sheen{0%{background-position:100% 0;opacity:0}3%{background-position:100% 0;opacity:1}30%{background-position:0 0;opacity:1}33%,100%{background-position:0 0;opacity:0}}
@media(prefers-reduced-motion:reduce){.registration-steps::after{animation:none;opacity:0}}

/* After the personal message only the ticket action remains: pale green first, brand green once valid.
 * The valid form promotes the same native button, keeping focus and submission intact. */
.registration-panel[data-phase="ticket"] .registration-steps{grid-template-columns:minmax(0,1fr);max-width:320px}
.registration-panel[data-phase="ticket"] [data-registration-ticket] .registration-step-top{display:none}
.registration-steps [data-registration-ticket]{display:flex;gap:6px;padding:6px}
.registration-steps [data-registration-ticket] .registration-step-top{min-width:12px;flex:none}
.registration-steps [data-registration-ticket] .registration-step-label{min-width:0;white-space:nowrap}
.registration-ticket-featured .registration-actions{height:144px}
.registration-ticket-featured .registration-form{height:calc(100% - 228px)}
.registration-ticket-featured .registration-steps button{min-height:44px}
.registration-ticket-featured .registration-steps [data-registration-ticket]{display:flex;min-height:60px;padding:10px 22px;gap:10px;box-shadow:inset 0 1px 0 #ffffff38,0 6px 18px #064e3b33}
.registration-ticket-featured [data-registration-ticket] .registration-step-top{font-size:13px}
.registration-ticket-featured [data-registration-ticket] .registration-step-label{font-size:clamp(14px,3.8vw,15px)}
.registration-ticket-icon{display:inline-block;width:18px;height:18px;margin-left:8px;vertical-align:-3px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.registration-ticket-name,.registration-ticket-verb{display:inline-block;vertical-align:baseline;line-height:18px}
.registration-ticket-verb{width:max-content;margin:0;animation:registration-ticket-write .85s steps(7,end) .12s both}
@keyframes registration-ticket-write{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}
.registration-background .registration-ticket-verb{animation-play-state:paused}
/* Founder 09.10.2026: once the personal message is done the button itself is a ticket: a tear-off stub
   on the right carries the ticket mark, two notches sit on the perforation. It stays pale green until
   every field is valid and only then takes the full brand green, so the shape never jumps and the colour
   is the reward. The mask clips the outer shadow and the focus ring, so both move to the slot.
   No pseudo-elements: the shared reflection owns those. */
.registration-panel[data-phase="ticket"] .registration-steps [data-registration-ticket]{--ticket-stub:46px;--ticket-notch:6px;--ticket-dash:#04785780;--ticket-fill:linear-gradient(#e2f1ea,#e2f1ea);padding:6px calc(var(--ticket-stub) + 6px) 6px 14px;border-radius:14px;color:#064e3b;box-shadow:inset 0 0 0 1px #04785733;
 background-image:repeating-linear-gradient(to bottom,var(--ticket-dash) 0 4px,#0000 4px 8px),var(--ticket-fill);background-size:1.5px calc(100% - 2*var(--ticket-notch) - 8px),auto;background-position:right calc(var(--ticket-stub) - .75px) center,0 0;background-repeat:no-repeat;
 -webkit-mask-image:radial-gradient(circle var(--ticket-notch) at calc(100% - var(--ticket-stub)) 0,#0000 calc(var(--ticket-notch) - .5px),#000 var(--ticket-notch)),radial-gradient(circle var(--ticket-notch) at calc(100% - var(--ticket-stub)) 100%,#0000 calc(var(--ticket-notch) - .5px),#000 var(--ticket-notch));mask-image:radial-gradient(circle var(--ticket-notch) at calc(100% - var(--ticket-stub)) 0,#0000 calc(var(--ticket-notch) - .5px),#000 var(--ticket-notch)),radial-gradient(circle var(--ticket-notch) at calc(100% - var(--ticket-stub)) 100%,#0000 calc(var(--ticket-notch) - .5px),#000 var(--ticket-notch));
 -webkit-mask-size:100% 51%;mask-size:100% 51%;-webkit-mask-position:top,bottom;mask-position:top,bottom;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}
.registration-ticket-featured[data-phase="ticket"] .registration-steps [data-registration-ticket]{--ticket-stub:54px;--ticket-notch:7px;--ticket-dash:#ffffff73;--ticket-fill:linear-gradient(135deg,#064e3b 0%,#047857 58%,#0b805b 100%);padding:10px calc(var(--ticket-stub) + 6px) 10px 16px;border-radius:16px;color:#fff;box-shadow:inset 0 1px 0 #ffffff38}
.registration-panel[data-phase="ticket"] .registration-step-slot:has([data-registration-ticket]){border-radius:16px}
.registration-ticket-featured[data-phase="ticket"] .registration-step-slot:has([data-registration-ticket]){filter:drop-shadow(0 6px 9px #064e3b2e)}
.registration-panel[data-phase="ticket"] .registration-step-slot:has([data-registration-ticket]:focus-visible){outline:2px solid #176349;outline-offset:3px}
.registration-panel[data-phase="ticket"] .registration-steps [data-registration-ticket]:focus-visible{outline:0}
.registration-panel[data-phase="ticket"] .registration-steps [data-registration-ticket]>.registration-step-label{position:static}
.registration-panel:not([data-phase="ticket"]) .registration-ticket-icon{display:none}
.registration-panel[data-phase="ticket"] .registration-ticket-icon{position:absolute;top:50%;right:calc((var(--ticket-stub) - 18px)/2);margin:-9px 0 0;transition:transform .16s ease-out}
.registration-panel[data-phase="ticket"] [data-registration-ticket]:active:not(:disabled) .registration-ticket-icon{transform:translateX(2px) rotate(-6deg)}
/* 60px button + 12px + privacy line (16px) at bottom:56px = 144px below an 84px heading (228px); taller
   phones share this geometry. Smallest phones: 60px heading, privacy line at bottom:48px, so 134px. */
@media(max-width:820px) and (max-height:650px){
 .registration-ticket-featured .registration-actions{height:134px}
 .registration-ticket-featured .registration-form{height:calc(100% - 194px)}
}
@media(prefers-reduced-motion:reduce){.registration-ticket-verb{animation:none}.registration-ticket-icon{transition:none;transform:none!important}}

/* Locked steps remain focusable and explain their prerequisite on activation. */
.registration-steps button[data-locked="true"]:not(:disabled){cursor:help}
.registration-help{width:min(380px,calc(100vw - 40px));max-height:calc(100dvh - 32px);box-sizing:border-box;margin:auto;padding:30px 24px 24px;border:1px solid #ffffffba;border-radius:26px;color:#151715;background:linear-gradient(145deg,#fffffff2,#eaf4eef0);box-shadow:inset 0 1px 0 #fff,0 24px 70px #092a2433;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px)}
.registration-help::backdrop{background:#071e193b;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}
.registration-help-eyebrow{margin:0 38px 10px 0;font-size:11px;color:#52665a}
.registration-help h2{margin:0;font-size:clamp(21px,5.5vw,26px);line-height:1.22;letter-spacing:-.035em}
.registration-help ol{list-style:none;margin:24px 0;padding:0;display:grid;gap:20px}
.registration-help li{display:flex;align-items:center;gap:12px}
.registration-help li>span{display:grid;place-items:center;flex:none;width:30px;height:30px;border-radius:50%;color:#176349;background:#dceee4;font-size:12px;font-variant-numeric:tabular-nums}
.registration-help strong,.registration-help small{display:block}
.registration-help strong{font-size:13px;line-height:1.5;font-weight:600}
.registration-help small{font-size:11px;line-height:1.6;color:#52665a}
.registration-help-start{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:48px;border:0;border-radius:99px;background:linear-gradient(135deg,#064e3b 0%,#047857 58%,#0b805b 100%);color:white;font-family:inherit;font-size:13px;font-weight:600;line-height:1.4;cursor:pointer}
.registration-help-start:focus-visible{outline:2px solid #176349;outline-offset:3px}
@media(max-height:500px){.registration-help{padding:18px}.registration-help ol{gap:10px;margin:16px 0}.registration-help h2{font-size:20px}}

/* Keep the timeline touch strip clear of sound/full-view controls in the ticket mini. */
.registration-open:not(.registration-intro-required) .floating-video:not(.is-complete) :is(.floating-video-sound,.floating-video-expand){bottom:44px}
.registration-open:not(.registration-intro-required) .floating-video.is-expanded:not(.is-complete) :is(.floating-video-sound,.floating-video-expand){bottom:calc(44px + env(safe-area-inset-bottom))}

/* Quiet brand and published review proof share one baseline below privacy. */
.registration-trust{bottom:56px}
.registration-brand-proof{position:absolute;bottom:4px;left:18px;right:18px;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px}
.registration-wordmark{display:block;width:160px;height:auto;flex:none;opacity:.65}
.registration-reviews{display:flex;flex-direction:column;justify-content:center;align-items:flex-end;min-height:44px;flex:none;color:#59665e;text-decoration:none;font-variant-numeric:tabular-nums}
.registration-review-score{display:flex;align-items:center;gap:6px;line-height:12px;font-size:11px}
.registration-review-score>span{font-size:10px;letter-spacing:1px;color:#62786a}
.registration-review-score strong{font-size:11px;font-weight:600}
.registration-review-source{margin-top:2px;font-size:9px;line-height:11px;white-space:nowrap}
.registration-reviews:focus-visible{outline:2px solid #176349;outline-offset:3px;border-radius:4px}
@media(max-width:820px) and (max-height:650px){
 .registration-brand-proof{left:12px;right:12px;gap:8px;bottom:0}
 .registration-trust{bottom:48px}
 .registration-panel[data-phase="intro"] .registration-actions{height:120px}
 .registration-panel[data-phase="intro"] .registration-intro{height:calc(100% - 180px)}
}
