/* Start-page intro. The overlay never changes the website's layout. */
/* Do not animate pointer-events: discrete interpolation disables skip midway.
   Final visibility:hidden and controller cleanup release hit testing instead. */
.door-intro[hidden]{display:none!important}
.door-intro{--intro-duration:3.3s;--door-h:min(55svh,470px);--door-w:calc(var(--door-h)*.59);position:fixed;inset:0;height:100svh;z-index:1000;isolation:isolate;overflow:hidden;display:flex;flex-direction:column;align-items:center;padding:clamp(22px,4svh,42px) 20px 90px;background:linear-gradient(180deg,#f5f7f7 0%,#e6eef2 28%,#526d83 59%,#092744 100%);color:#092744;touch-action:none;animation:intro-exit var(--intro-duration) cubic-bezier(.4,0,.2,1) forwards;will-change:opacity}
html[data-door-intro="preparing"]::before{content:"";position:fixed;inset:0;z-index:999;background:linear-gradient(180deg,#f5f7f7 0%,#e6eef2 28%,#526d83 59%,#092744 100%);animation:intro-prepare-fallback 1.6s step-end forwards}
html[data-door-intro="preparing"] .door-intro[hidden]{display:flex!important;animation:intro-prepare-fallback 1.6s step-end forwards}
html[data-door-intro="preparing"] .door-intro *{animation-play-state:paused!important}
html[data-door-intro="preparing"] .intro-price::after{animation-play-state:paused!important}
@keyframes intro-prepare-fallback{0%{visibility:visible}100%{visibility:hidden}}
.intro-logo{display:block;width:min(560px,calc(100vw - 48px));height:auto;max-height:19svh;object-fit:contain;padding:0;background:transparent;border:0;border-radius:0;box-shadow:none;flex-shrink:0;opacity:0;animation:intro-logo-reveal var(--intro-duration) cubic-bezier(.4,0,.2,1) forwards;will-change:transform,opacity}
.intro-stage{position:relative;flex:1;width:100%;min-height:0;display:grid;place-items:center}
.intro-doorway{position:relative;width:var(--door-w);height:var(--door-h);perspective:1800px;isolation:isolate}
.intro-doorway::after{content:"";position:absolute;left:-24%;right:-24%;height:20px;bottom:-15px;background:radial-gradient(ellipse,#03101e77,transparent 70%);filter:blur(5px);z-index:-1}
.intro-opening{position:absolute;inset:0;background:radial-gradient(ellipse at 60% 35%,#fff 0%,#ecf4f8 38%,#b7cedd 100%);box-shadow:inset 14px 0 25px #09274438,0 0 48px #e9f4fc30;animation:intro-room-light var(--intro-duration) ease forwards}
.intro-frame{position:absolute;inset:-12px -12px -3px;border:10px solid #153e60;border-bottom-width:5px;box-shadow:inset 2px 1px 2px #ffffff65,2px 0 0 #7595aa,-4px 0 0 #092744,0 13px 26px #03172555;pointer-events:none;z-index:4}
.intro-frame::before,.intro-frame::after{content:"";position:absolute;left:-12px;top:17%;width:7px;height:26px;border-radius:2px;background:linear-gradient(90deg,#4b5e6c,#c8d2d9 45%,#566b7a);box-shadow:1px 1px 2px #0005}
.intro-frame::after{top:76%}
.intro-leaf{position:absolute;inset:0;z-index:3;transform-origin:left center;transform-style:preserve-3d;background:linear-gradient(112deg,#275e88 0%,#12466f 26%,#0c3458 100%);border:1px solid #497395;box-shadow:inset 3px 0 3px #ffffff24,inset -4px 0 6px #03142366,4px 4px 12px #09274444;animation:intro-door-swing var(--intro-duration) cubic-bezier(.4,0,.2,1) forwards;will-change:transform;backface-visibility:hidden}
.intro-leaf::before{content:"";position:absolute;inset:7% 12% 12%;border:1px solid #082b4e;box-shadow:inset 1px 1px 2px #ffffff25,1px 1px 1px #ffffff1c;background:linear-gradient(105deg,#ffffff03,#0317250d)}
.intro-leaf::after{content:"";position:absolute;left:100%;top:-1px;bottom:-1px;width:8px;background:linear-gradient(90deg,#092d4b,#244c6b);transform-origin:left;transform:rotateY(90deg)}
.intro-hardware{position:absolute;right:8%;top:47%;width:64px;height:70px;overflow:visible;backface-visibility:hidden;-webkit-backface-visibility:hidden;transform:translateZ(.1px)}
.intro-handle{transform-box:view-box;transform-origin:52px 20px;animation:intro-handle-turn var(--intro-duration) ease-in-out forwards}
.intro-offer{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;z-index:2;transform:translateZ(-180px) scale(.72);animation:intro-price-forward var(--intro-duration) cubic-bezier(.35,0,.2,1) forwards;will-change:transform;pointer-events:none}
/* Keep the existing offer position after removing the 25.6px tax line and its margin. */
.intro-offer-inner{position:relative;top:-12.8px;width:min(330px,calc(100vw - 38px));flex-shrink:0;padding:18px 0;filter:drop-shadow(0 2px 10px #fff9)}
.intro-service{font-size:clamp(24px,calc(var(--door-h)*.075),35px);font-weight:750;letter-spacing:-.025em;margin:0 0 10px;line-height:1.2}
.intro-price{position:relative;display:inline-flex;align-items:baseline;gap:10px;padding-inline:6px;line-height:1.12;white-space:nowrap;overflow:hidden}
.intro-price small{flex-shrink:0;font-size:clamp(25px,calc(var(--door-h)*.08),36px);font-weight:650}
.intro-price strong{flex-shrink:0;font-size:clamp(60px,min(calc(var(--door-h)*.21),24vw),100px);font-weight:850;letter-spacing:-.04em;padding-right:.08em;color:#c91b2a}
.intro-price::after{content:"";position:absolute;inset:-20%;background:linear-gradient(110deg,transparent 43%,#ffffff60 50%,transparent 57%);transform:translateX(-120%);animation:intro-price-reflection var(--intro-duration) ease forwards}
.intro-qualifier{font-size:clamp(15px,calc(var(--door-h)*.045),19px);line-height:1.4;font-weight:600;white-space:nowrap;margin:14px 0 0}
.intro-skip{position:absolute;right:calc(18px + env(safe-area-inset-right,0px));bottom:calc(24px + env(safe-area-inset-bottom,0px));min-height:44px;padding:10px 15px;border:1px solid #ffffff70;border-radius:5px;background:#092744cc;color:#fff;font:600 14px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;cursor:pointer;z-index:10}
.intro-skip:hover{background:#17466a}.intro-skip:focus-visible{outline:2px solid #fff;outline-offset:3px}
@keyframes intro-logo-reveal{0%{opacity:0;transform:translateY(6px)}20%,100%{opacity:1;transform:translateY(0)}}
@keyframes intro-handle-turn{0%,20%{transform:rotate(0)}26%,30%{transform:rotate(-25deg)}42%,100%{transform:rotate(0)}}
@keyframes intro-door-swing{0%,26%{transform:rotateY(0deg);box-shadow:inset 3px 0 3px #ffffff24,inset -4px 0 6px #03142366,4px 4px 12px #09274444}48%,100%{transform:rotateY(-88deg);box-shadow:inset 3px 0 3px #ffffff24,inset -4px 0 6px #03142366,12px 12px 22px #09274425}}
@keyframes intro-room-light{0%,26%{filter:brightness(.75)}48%,100%{filter:brightness(1)}}
@keyframes intro-price-forward{0%,47.99%{transform:translateZ(-180px) scale(.72);z-index:2}48%{transform:translateZ(-180px) scale(.72);z-index:5}72%,100%{transform:translateZ(0) scale(1);z-index:5}}
@keyframes intro-price-reflection{0%,73%{transform:translateX(-120%)}83%,100%{transform:translateX(120%)}}
@keyframes intro-exit{0%,86%{opacity:1;visibility:visible}99.9%{opacity:0;visibility:visible}100%{opacity:0;visibility:hidden}}
@media(max-height:600px){.door-intro{--intro-duration:3.3s;--door-h:50svh;padding-top:12px;padding-bottom:72px}.intro-logo{max-height:17svh}.intro-service{font-size:22px}.intro-price strong{flex-shrink:0;font-size:64px}.intro-qualifier{font-size:14px;margin-top:8px}.intro-skip{bottom:calc(14px + env(safe-area-inset-bottom,0px))}}
@media(prefers-reduced-motion:reduce){.door-intro{display:none!important;animation:none!important}}
