/* Six monochrome cinematic entrances; the page always remains the same. */
.alc-intro{display:none;position:fixed;inset:0;z-index:100000;background:#050505;color:#f2f0ea;overflow:hidden;opacity:1;transition:opacity 2s ease;isolation:isolate}
.alc-intro-armed .alc-intro{display:block}.alc-intro-armed .site-shell{opacity:0}
.alc-intro-exiting .alc-intro{opacity:0;pointer-events:none}.alc-intro-exiting .site-shell{opacity:1;transition:opacity 2s ease}
.intro-scene{position:absolute;inset:0;display:grid;place-items:center}
.intro-mark{position:relative;z-index:3;text-align:center;max-width:90vw;will-change:transform,opacity}
.intro-mark .ritual-eye{width:clamp(170px,25vw,310px);margin:0 auto 36px}
.intro-wordmark{font-family:var(--alc-font,Arial,sans-serif);font-size:clamp(22px,4vw,52px);font-weight:300;letter-spacing:.3em;padding-left:.3em}
.intro-custom-logo{width:clamp(180px,37vw,470px);height:clamp(180px,37vw,470px);object-fit:contain}
.intro-skip{position:absolute;bottom:max(28px,env(safe-area-inset-bottom));right:clamp(24px,4vw,60px);z-index:10;color:#ccc;background:transparent;border:1px solid #555;border-radius:30px;padding:12px 20px;font-size:10px;text-transform:uppercase;letter-spacing:.2em;cursor:pointer}
.intro-skip:hover,.intro-skip:focus-visible{color:#fff;border-color:#fff;box-shadow:0 0 20px #ffffff22}
.intro-aura{position:absolute;width:75vmin;height:75vmin;border-radius:50%;background:radial-gradient(circle,#dedac622,transparent 64%);filter:blur(18px);opacity:.5}
.intro-eclipse,.intro-beam,.intro-orbits,.intro-stars,.intro-curtain{display:none}
/* 1. A dark moon crosses a silver disc. */
[data-effect="eclipse"] .intro-eclipse{display:block;position:absolute;width:46vmin;height:46vmin;max-width:520px;max-height:520px;border-radius:50%;background:#eee9d9;box-shadow:0 0 70px #eee9d977}
[data-effect="eclipse"] .intro-eclipse:after{content:"";position:absolute;inset:-2%;border-radius:50%;background:#050505;transform:translateX(-120%)}
[data-effect="eclipse"].is-playing .intro-eclipse:after{animation:alc-eclipse 4s cubic-bezier(.2,.6,.2,1) forwards}
[data-effect="eclipse"] .intro-mark{mix-blend-mode:difference}
@keyframes alc-eclipse{0%{transform:translateX(-120%)}55%{transform:translateX(-2%)}78%{transform:translateX(0)}100%{transform:translateX(108%)}}
/* 2. Two deep black curtains open with a fine luminous seam. */
[data-effect="curtain"]{background:#121212}
[data-effect="curtain"] .intro-curtain{display:block;position:absolute;inset:0 auto 0 0;width:50.1%;z-index:4;background:linear-gradient(90deg,#020202,#0d0d0d);border-right:1px solid #eae6d04d}
[data-effect="curtain"] .intro-curtain.right{left:auto;right:0;border-right:0;border-left:1px solid #eae6d04d;background:linear-gradient(270deg,#020202,#0d0d0d)}
[data-effect="curtain"].is-playing .intro-curtain.left{animation:alc-curtain-left 4s cubic-bezier(.75,0,.15,1) forwards}
[data-effect="curtain"].is-playing .intro-curtain.right{animation:alc-curtain-right 4s cubic-bezier(.75,0,.15,1) forwards}
@keyframes alc-curtain-left{0%,15%{transform:translateX(0)}100%{transform:translateX(-100%)}}
@keyframes alc-curtain-right{0%,15%{transform:translateX(0)}100%{transform:translateX(100%)}}
/* 3. A warm, narrow beam reveals the mark without flashes. */
[data-effect="signal"] .intro-beam{display:block;position:absolute;z-index:4;left:0;top:50%;width:100%;height:1px;background:linear-gradient(90deg,transparent,#fff9df,transparent);box-shadow:0 0 22px 3px #e7e1c644}
[data-effect="signal"].is-playing .intro-beam{animation:alc-signal 4s ease-in-out forwards}
[data-effect="signal"].is-playing .intro-mark{animation:alc-materialize 4s ease-out both}
@keyframes alc-signal{0%{transform:translateY(22vh) scaleX(.01);opacity:0}20%{opacity:1}70%{transform:translateY(-18vh) scaleX(.8);opacity:1}100%{transform:translateY(-26vh) scaleX(1);opacity:0}}
@keyframes alc-materialize{0%{opacity:0;filter:blur(14px);transform:translateY(18px)}65%,100%{opacity:1;filter:blur(0);transform:translateY(0)}}
/* 4. Thin elliptical orbits turn, align and disperse. */
[data-effect="orbit"] .intro-orbits{display:block;position:absolute;width:68vmin;height:68vmin}
.intro-orbits span{position:absolute;inset:0;border:1px solid #d9d5c773;border-radius:50%;box-shadow:0 0 20px #ffffff09}
[data-effect="orbit"].is-playing .intro-orbits{animation:alc-orbit 4s ease-in-out forwards}
.intro-orbits span:nth-child(1){transform:rotate(35deg) scaleY(.38)}.intro-orbits span:nth-child(2){transform:rotate(-35deg) scaleY(.38)}.intro-orbits span:nth-child(3){transform:rotate(90deg) scaleY(.38)}
@keyframes alc-orbit{0%{transform:rotate(-120deg) scale(.3);opacity:0}20%{opacity:.8}80%{opacity:.8}100%{transform:rotate(90deg) scale(1.2);opacity:0}}
/* 5. Thirty-six points converge into the centre of the mark. */
[data-effect="stardust"] .intro-stars{display:block;position:absolute;inset:0}
.intro-stars i{position:absolute;left:var(--x);top:var(--y);width:2px;height:2px;border-radius:50%;background:#eee9d8;box-shadow:0 0 9px #fff9d8;opacity:0}
[data-effect="stardust"].is-playing .intro-stars i{animation:alc-star 3s var(--delay) cubic-bezier(.6,.05,.25,1) both}
[data-effect="stardust"].is-playing .intro-mark{animation:alc-materialize 4s ease-out both}
@keyframes alc-star{0%{opacity:0;transform:scale(.6)}20%,70%{opacity:.8}100%{left:50%;top:46%;opacity:0;transform:scale(.2)}}
/* 6. Three measured breaths, followed by a slow reveal. */
[data-effect="breath"].is-playing .intro-mark{animation:alc-logo-breath 2.4s ease-in-out 3}
[data-effect="breath"].is-playing .intro-aura{animation:alc-aura-breath 2.4s ease-in-out 3}
[data-effect="breath"].is-playing .eyeball-dot{animation:alc-pupil-breath 2.4s ease-in-out 3}
@keyframes alc-logo-breath{0%,100%{transform:scale(.98);opacity:.58;filter:drop-shadow(0 0 2px #fff1)}50%{transform:scale(1.025);opacity:1;filter:drop-shadow(0 0 16px #eee7cb44)}}
@keyframes alc-aura-breath{0%,100%{transform:scale(.55);opacity:.18}50%{transform:scale(1.3);opacity:1}}
@keyframes alc-pupil-breath{0%,100%{box-shadow:0 0 18px #fff4}50%{box-shadow:0 0 48px #fff9,0 0 90px #eee6bf44}}
@media(max-width:600px){.intro-wordmark{letter-spacing:.2em}.intro-mark .ritual-eye{margin-bottom:24px}.intro-skip{bottom:24px;right:20px}.intro-orbits{width:84vmin!important;height:84vmin!important}}
@media(prefers-reduced-motion:reduce){.alc-intro-armed .alc-intro{display:none}.alc-intro-armed .site-shell{opacity:1;transition:none}.alc-intro *{animation:none!important}}

/* 7–16: original visual interpretations of published Alcantara reviews. */
.intro-landscape{position:absolute;inset:0;pointer-events:none;overflow:hidden}.intro-landscape>*{display:none}
.intro-waves{position:absolute;width:140%;height:36vh;left:-20%;top:55%;fill:none;stroke:#c4d9d6;stroke-width:1;opacity:.65}.intro-waves path:nth-child(2){opacity:.5}.intro-waves path:nth-child(3){opacity:.25}
[data-effect="sail"] .intro-waves{display:block}[data-effect="sail"].is-playing .intro-waves{animation:alc-tide 4s ease-in-out both}[data-effect="sail"].is-playing .intro-mark{animation:alc-drift 4s ease-in-out both}
@keyframes alc-tide{0%{transform:translate(-5%,20%) scaleY(.4);opacity:0}35%{opacity:.7}100%{transform:translate(6%,-12%) scaleY(1.2);opacity:.25}}
@keyframes alc-drift{0%{opacity:0;transform:translateY(14px) rotate(-2deg)}50%{opacity:1;transform:translateY(-5px) rotate(1deg)}100%{transform:translateY(0);opacity:1}}
[data-effect="weave"] .intro-waves{display:block;top:28%;height:44vh;stroke:#ead6b9;transform:rotate(-12deg)}[data-effect="weave"].is-playing .intro-waves path{stroke-dasharray:1600;stroke-dashoffset:1600;animation:alc-thread 4s ease-in-out both}[data-effect="weave"] .intro-waves path:nth-child(2){animation-delay:.2s;transform:scaleY(-1);transform-origin:center;stroke:#a9c9d9}[data-effect="weave"] .intro-waves path:nth-child(3){animation-delay:.4s;stroke:#e5e6e2;stroke-width:2}
@keyframes alc-thread{0%{stroke-dashoffset:1600;opacity:0}25%{opacity:.7}100%{stroke-dashoffset:0;opacity:.55}}
.intro-veils{position:absolute;inset:-20%;filter:blur(45px)}.intro-veils i{position:absolute;inset:10%;border-radius:50%;background:radial-gradient(ellipse,#64748555,transparent 65%)}.intro-veils i:nth-child(2){inset:25% -10%;background:radial-gradient(ellipse,#a8936655,transparent 60%)}.intro-veils i:nth-child(3){inset:0 30%;background:radial-gradient(ellipse,#dedaca33,transparent 65%)}
[data-effect="twilight"] .intro-veils{display:block;background:linear-gradient(180deg,#050505 35%,#31485944 65%,#a37f4333 80%,#050505)}[data-effect="twilight"].is-playing .intro-veils{animation:alc-sunset 4s ease-in-out both}[data-effect="twilight"].is-playing .intro-mark{animation:alc-materialize 4s both}
@keyframes alc-sunset{0%{transform:translateY(20%) scale(.8);opacity:0}45%{opacity:.9}100%{transform:translateY(-5%) scale(1.1);opacity:.4}}
.intro-starpoint{position:absolute;left:50%;top:42%;width:6px;height:6px;border-radius:50%;background:#fff6df;box-shadow:0 0 25px 6px #f8ead977,0 0 100px 20px #d2dce833}.intro-starpoint:before,.intro-starpoint:after{content:"";position:absolute;left:-70px;top:2px;width:146px;height:1px;background:linear-gradient(90deg,transparent,#fff6df99,transparent)}.intro-starpoint:after{transform:rotate(90deg) scaleX(.5)}
[data-effect="distant"] .intro-starpoint{display:block}[data-effect="distant"].is-playing .intro-starpoint{animation:alc-distance 4s ease both}[data-effect="distant"].is-playing .intro-mark{animation:alc-late-mark 4s ease both}
@keyframes alc-distance{0%{opacity:0;transform:translate(22vw,-18vh) scale(.1)}35%{opacity:.7}75%{opacity:1;transform:translate(0,0) scale(1)}100%{opacity:0;transform:scale(3)}}
@keyframes alc-late-mark{0%,45%{opacity:0;filter:blur(8px)}100%{opacity:1;filter:blur(0)}}
.intro-depth{position:absolute;inset:0;display:none;place-items:center}.intro-depth i{position:absolute;width:65vmin;height:65vmin;border:1px solid #c5ccd85c;border-radius:18%;transform:rotate(45deg);opacity:0}
[data-effect="vertigo"] .intro-depth{display:grid}[data-effect="vertigo"].is-playing .intro-depth i{animation:alc-depth 3s ease-in-out both}[data-effect="vertigo"] .intro-depth i:nth-child(2){animation-delay:.3s}[data-effect="vertigo"] .intro-depth i:nth-child(3){animation-delay:.6s}[data-effect="vertigo"] .intro-depth i:nth-child(4){animation-delay:.9s}[data-effect="vertigo"] .intro-depth i:nth-child(5){animation-delay:1.2s}
@keyframes alc-depth{0%{transform:rotate(20deg) scale(2);opacity:0}30%{opacity:.4}100%{transform:rotate(75deg) scale(.05);opacity:0}}
.intro-radio{position:absolute;top:38%;left:10%;width:80%;height:24%;fill:none;stroke:#afc5cd;stroke-width:1;filter:drop-shadow(0 0 6px #b9d5df66)}
[data-effect="radio"] .intro-radio{display:block}[data-effect="radio"].is-playing .intro-radio path{stroke-dasharray:1000;animation:alc-transmission 4s ease both}[data-effect="radio"].is-playing .intro-mark{animation:alc-late-mark 4s both}
@keyframes alc-transmission{0%{stroke-dashoffset:1000;opacity:0}20%{opacity:.7}70%{stroke-dashoffset:0;opacity:.7}100%{stroke-dashoffset:-1000;opacity:0}}
[data-effect="mist"] .intro-veils{display:block;z-index:5;filter:blur(32px)}[data-effect="mist"] .intro-veils i{background:radial-gradient(ellipse,#b8bccf66,transparent 62%)}[data-effect="mist"].is-playing .intro-veils i{animation:alc-mist 4s ease-in-out both}[data-effect="mist"] .intro-veils i:nth-child(2){animation-direction:reverse}[data-effect="mist"] .intro-veils i:nth-child(3){animation-delay:.15s}[data-effect="mist"].is-playing .intro-mark{animation:alc-materialize 4s both}
@keyframes alc-mist{0%{transform:translateX(-30%) scale(1.3);opacity:.9}45%{opacity:.65}100%{transform:translateX(35%) scale(.8);opacity:0}}
.intro-panels{position:absolute;inset:0;z-index:4}.intro-panels i{position:absolute;left:0;width:100%;height:34%;background:#080808;border-bottom:1px solid #ded8c52b}.intro-panels i:nth-child(2){top:33.3%}.intro-panels i:nth-child(3){top:66.6%}
[data-effect="detachment"] .intro-panels{display:block}[data-effect="detachment"].is-playing .intro-panels i{animation:alc-detach 4s cubic-bezier(.7,0,.15,1) both}[data-effect="detachment"] .intro-panels i:nth-child(2){animation-name:alc-detach-reverse;animation-delay:.15s}[data-effect="detachment"] .intro-panels i:nth-child(3){animation-delay:.3s}
@keyframes alc-detach{0%,10%{transform:translateX(0)}100%{transform:translateX(-105%)}}
@keyframes alc-detach-reverse{0%,10%{transform:translateX(0)}100%{transform:translateX(105%)}}
.intro-seasons{position:absolute;inset:-10%;filter:blur(38px)}.intro-seasons i{position:absolute;inset:0;opacity:0;background:radial-gradient(ellipse at 20% 50%,#8aaa9744,transparent 65%)}.intro-seasons i:nth-child(2){background:radial-gradient(ellipse at 50% 80%,#d7c78344,transparent 65%)}.intro-seasons i:nth-child(3){background:radial-gradient(ellipse at 80% 50%,#ae795b44,transparent 65%)}.intro-seasons i:nth-child(4){background:radial-gradient(ellipse at 50% 20%,#7fabc244,transparent 65%)}
[data-effect="seasons"] .intro-seasons{display:block}[data-effect="seasons"].is-playing .intro-seasons i{animation:alc-season 1.7s ease both}[data-effect="seasons"] .intro-seasons i:nth-child(2){animation-delay:.8s}[data-effect="seasons"] .intro-seasons i:nth-child(3){animation-delay:1.6s}[data-effect="seasons"] .intro-seasons i:nth-child(4){animation-delay:2.4s}
@keyframes alc-season{0%{opacity:0;transform:scale(.8)}50%{opacity:1}100%{opacity:0;transform:scale(1.15)}}
.intro-steps{position:absolute;inset:0;display:none;align-items:center;justify-content:center;gap:4vw}.intro-steps i{width:1px;height:65vh;background:linear-gradient(transparent,#e2d5b9,transparent);opacity:0;box-shadow:0 0 18px #ddd1b455}
[data-effect="crescendo"] .intro-steps{display:flex}[data-effect="crescendo"].is-playing .intro-steps i{animation:alc-crescendo 3.1s ease both}[data-effect="crescendo"] .intro-steps i:nth-child(2){animation-delay:.15s}[data-effect="crescendo"] .intro-steps i:nth-child(3){animation-delay:.3s}[data-effect="crescendo"] .intro-steps i:nth-child(4){animation-delay:.45s}[data-effect="crescendo"] .intro-steps i:nth-child(5){animation-delay:.6s}[data-effect="crescendo"] .intro-steps i:nth-child(6){animation-delay:.75s}[data-effect="crescendo"] .intro-steps i:nth-child(7){animation-delay:.9s}[data-effect="crescendo"].is-playing .intro-mark{animation:alc-materialize 4s ease both}
@keyframes alc-crescendo{0%{transform:scaleY(.01);opacity:0}55%{opacity:.6;transform:scaleY(.65)}85%{opacity:.7;transform:scaleY(1)}100%{opacity:0;transform:scaleY(1.2)}}
@media(prefers-reduced-motion:reduce){.intro-landscape *{animation:none!important}}

/* 2.5: map the intro onto the real hero, including its responsive type. */
.alc-intro-armed .hero-content.reveal{transform:none!important;transition:none!important}
.alc-intro-exiting .intro-mark{animation:none!important;transform:none!important;filter:none!important;opacity:1!important}
.intro-aura,.intro-eclipse,.intro-orbits{left:var(--intro-cx,50%);top:var(--intro-cy,50%);translate:-50% -50%}
@keyframes alc-star{0%{opacity:0;transform:scale(.6)}20%,70%{opacity:.8}100%{left:var(--intro-cx,50%);top:var(--intro-cy,46%);opacity:0;transform:scale(.2)}}
/* 17: concentric ripples expand from the pupil. */
[data-effect="ripple"] .intro-orbits{display:block;position:absolute;width:45vmin;height:45vmin}
[data-effect="ripple"] .intro-orbits span{transform:none;opacity:0}
[data-effect="ripple"].is-playing .intro-orbits span{animation:alc-ripple 3s ease-out both}
[data-effect="ripple"] .intro-orbits span:nth-child(2){animation-delay:.5s}
[data-effect="ripple"] .intro-orbits span:nth-child(3){animation-delay:1s}
@keyframes alc-ripple{0%{transform:scale(.08);opacity:0}20%{opacity:.65}100%{transform:scale(2.2);opacity:0}}
/* 18: a slow northern light curtain. */
[data-effect="aurora"] .intro-veils{display:block;filter:blur(28px)}
[data-effect="aurora"] .intro-veils i{border-radius:40%;background:linear-gradient(110deg,transparent 25%,#72ab9638 46%,#9299cc38 55%,transparent 70%)}
[data-effect="aurora"].is-playing .intro-veils{animation:alc-aurora 4s ease both}
@keyframes alc-aurora{0%{opacity:0;transform:skewX(-22deg) translateX(-15%)}45%{opacity:1}100%{opacity:.2;transform:skewX(18deg) translateX(15%)}}
/* 19: points form a delicate stellar net. */
[data-effect="constellation"] .intro-stars{display:block;position:absolute;inset:0}
[data-effect="constellation"] .intro-stars i:after{content:"";position:absolute;left:0;top:0;width:8vw;height:1px;transform:rotate(35deg);transform-origin:left;background:linear-gradient(90deg,#b8cddd55,transparent)}
[data-effect="constellation"].is-playing .intro-stars i{animation:alc-net 3s var(--delay) ease both}
@keyframes alc-net{0%{opacity:0;transform:scale(.65)}45%,70%{opacity:.6}100%{opacity:0;transform:scale(1)}}
/* 20: a photographic aperture opens around the actual pupil. */
[data-effect="shutter"] .intro-landscape{display:block;z-index:4;background:#050505;mask-image:radial-gradient(circle at var(--intro-cx,50%) var(--intro-cy,50%),transparent var(--alc-aperture),#000 calc(var(--alc-aperture) + 2px))}
[data-effect="shutter"].is-playing .intro-landscape{animation:alc-shutter 4s cubic-bezier(.65,0,.2,1) both}
@property --alc-aperture{syntax:'<length>';inherits:false;initial-value:0px}
@keyframes alc-shutter{0%,10%{--alc-aperture:0px;opacity:1}90%{opacity:1}100%{--alc-aperture:150vmax;opacity:0}}
/* 21: two restrained coloured beams cross like refracted moonlight. */
[data-effect="prism"] .intro-beam{display:block;position:absolute;inset:-20%;height:auto;background:linear-gradient(115deg,transparent 42%,#87acc533 48%,#dac4a544 50%,transparent 56%);filter:blur(12px)}
[data-effect="prism"].is-playing .intro-beam{animation:alc-prism 4s ease both}
@keyframes alc-prism{0%{opacity:0;transform:translateX(-35%) rotate(-12deg)}50%{opacity:1}100%{opacity:0;transform:translateX(35%) rotate(12deg)}}
/* 22: elliptical echoes dissolve into the distance. */
[data-effect="echo"] .intro-depth{display:grid}
[data-effect="echo"] .intro-depth i{border-radius:50%;height:28vmin;width:70vmin}
[data-effect="echo"].is-playing .intro-depth i{animation:alc-echo 3s ease both}
[data-effect="echo"] .intro-depth i:nth-child(2){animation-delay:.25s}[data-effect="echo"] .intro-depth i:nth-child(3){animation-delay:.5s}[data-effect="echo"] .intro-depth i:nth-child(4){animation-delay:.75s}[data-effect="echo"] .intro-depth i:nth-child(5){animation-delay:1s}
@keyframes alc-echo{0%{opacity:0;transform:translateY(20vh) scale(.3)}35%{opacity:.45}100%{opacity:0;transform:translateY(-30vh) scale(1.5)}}
/* 23: a horizontal opening grows into the full frame. */
[data-effect="horizon"] .intro-mark{clip-path:inset(50% 0)}
[data-effect="horizon"].is-playing .intro-mark{animation:alc-horizon 4s ease both}
@keyframes alc-horizon{0%,12%{clip-path:inset(50% 0);opacity:0}35%{opacity:1}100%{clip-path:inset(0);opacity:1}}
/* 24: a silver print develops gradually in a darkroom. */
[data-effect="negative"].is-playing .intro-mark{animation:alc-develop 4s ease both}
@keyframes alc-develop{0%{opacity:0;filter:blur(18px) brightness(.3)}45%{opacity:.5;filter:blur(4px) brightness(.6)}100%{opacity:1;filter:blur(0) brightness(1)}}
/* 25: a celestial arc comes gently to rest. */
[data-effect="pendulum"] .intro-orbits{display:block;position:absolute;width:70vmin;height:70vmin}
[data-effect="pendulum"] .intro-orbits span{border-color:transparent transparent #d0c4a777;transform:none}
[data-effect="pendulum"] .intro-orbits span:nth-child(2){inset:10%}[data-effect="pendulum"] .intro-orbits span:nth-child(3){inset:20%}
[data-effect="pendulum"].is-playing .intro-orbits{animation:alc-pendulum 4s ease both}
@keyframes alc-pendulum{0%{transform:rotate(-65deg);opacity:0}25%{opacity:.8}55%{transform:rotate(30deg)}80%{transform:rotate(-10deg);opacity:.5}100%{transform:rotate(0);opacity:0}}
/* 26: fine rain of light slows into darkness. */
[data-effect="rain"] .intro-stars{display:block;position:absolute;inset:0}
[data-effect="rain"] .intro-stars i{height:8vh;width:1px;border-radius:0;background:linear-gradient(transparent,#c5d6dc77,transparent);box-shadow:none}
[data-effect="rain"].is-playing .intro-stars i{animation:alc-rain 3s var(--delay) cubic-bezier(.1,.5,.2,1) both}
@keyframes alc-rain{0%{transform:translateY(-25vh);opacity:0}25%{opacity:.7}100%{transform:translateY(20vh);opacity:0}}
