/* A separate, native-scroll entrance. The approved rim light is in the photograph. */
:root{color-scheme:dark;--charcoal:#17140f;--cream:#f4f1ea;--ember:#e8743b;--ui:'Montserrat',sans-serif;--light-x:22%;--light-y:34%;--portrait-y:0px;--identity-opacity:1;--identity-shift:0px;--cue-opacity:1}
*{box-sizing:border-box}html{background:#090807;scroll-behavior:smooth}body{margin:0;color:var(--cream);font:400 14px/1.6 var(--ui);background:#090807}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid var(--ember);outline-offset:6px}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip-link{position:fixed;top:12px;left:12px;z-index:20;background:var(--charcoal);padding:12px;transform:translateY(-160%)}.skip-link:focus{transform:none}
.entrance-header{position:absolute;top:0;left:0;width:100%;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px 3.4vw}.entrance-header p{font-size:11px;letter-spacing:.24em;text-transform:uppercase;margin:0}.language{display:flex;align-items:center;gap:5px;flex-shrink:0;font-size:12px;letter-spacing:.13em}.language button{min-width:40px;min-height:44px;padding:8px}.language button[aria-pressed=true]{color:var(--ember)}.language>span{opacity:.45}
.entrance{height:165svh;min-height:780px;position:relative}.entrance-scene{position:sticky;top:0;height:100svh;min-height:500px;isolation:isolate;overflow:hidden;display:grid;place-items:center}.portrait-scene{position:absolute;inset:0;z-index:-1;background:#090807;overflow:hidden}.portrait-base,.portrait-light{position:absolute;inset:-3% 0;transform:translateY(var(--portrait-y));pointer-events:none}.portrait-base img,.portrait-light img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 50%;transform:scaleX(-1)}.portrait-base{filter:brightness(.24)}.portrait-light{filter:brightness(1.08) saturate(1.05);-webkit-mask-image:radial-gradient(ellipse 30vw 47vh at var(--light-x) var(--light-y),#000 8%,#000d 30%,#0005 60%,transparent 100%);mask-image:radial-gradient(ellipse 30vw 47vh at var(--light-x) var(--light-y),#000 8%,#000d 30%,#0005 60%,transparent 100%)}.portrait-shade{position:absolute;inset:0;background:linear-gradient(0deg,#08070682,transparent 23%,transparent 86%,#08070635);pointer-events:none}.entrance-identity{width:min(34vw,510px,66svh);text-align:center;transform:translateY(var(--identity-shift));opacity:var(--identity-opacity);padding-bottom:20px}.entrance-identity h1{margin:0}.entrance-identity h1 img{display:block;width:100%;height:auto;filter:brightness(.96) sepia(.08)}.enter-work{display:flex;align-items:center;justify-content:center;gap:24px;min-height:52px;width:max-content;max-width:100%;margin:10px auto 0;border:1px solid #e8743bc9;border-radius:100px;padding:14px 32px;letter-spacing:.18em;font-size:11px;text-transform:uppercase;background:#08070624;transition:background .25s,color .25s}.enter-work>span:last-child{color:var(--ember);font-size:21px;line-height:1;transition:transform .25s}.enter-work:hover,.enter-work:focus-visible{background:var(--ember);color:var(--charcoal)}.enter-work:hover>span:last-child,.enter-work:focus-visible>span:last-child{color:var(--charcoal);transform:translateX(3px)}.scroll-cue{position:absolute;bottom:max(24px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:13px;font-size:11px;letter-spacing:.19em;white-space:nowrap;opacity:var(--cue-opacity)}.scroll-line{display:block;width:1px;height:45px;background:var(--ember)}.last-light{position:absolute;bottom:0;height:1px;width:1px;pointer-events:none}.entrance-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:28px 3.4vw;background:#090807;border-top:1px solid #f4f1ea15;color:#c5beb3;font-size:12px}.entrance-footer a{color:var(--cream)}.entrance-footer button{min-height:44px;font-size:12px}
/* Photographic smoke in two depths. Scroll motion belongs to the wrapper. */
.entrance-smoke{position:absolute;inset:-8% 0;pointer-events:none;transform:translate3d(var(--smoke-x,0px),var(--smoke-y,0px),0)}
.smoke-drift{position:absolute;right:-8%;bottom:-25%;width:62%;height:115%;opacity:.25;pointer-events:none;background:url('../assets/candle/smoke-swirls.jpg') center/contain no-repeat;mix-blend-mode:screen;mask-image:radial-gradient(ellipse at 50% 65%,#000 10%,#000a 43%,transparent 72%);animation:vapor-drift 24s ease-in-out infinite alternate;will-change:transform}
.smoke-drift--near{right:4%;bottom:-40%;width:95%;height:100%;opacity:.16;transform:scaleX(-1);animation-name:vapor-near;animation-duration:32s;animation-delay:-14s}
.entrance-embers{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;mix-blend-mode:screen}
.entrance-grain{position:absolute;inset:0;pointer-events:none;opacity:.075;mix-blend-mode:soft-light;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
@keyframes vapor-drift{from{transform:translate3d(4%,7%,0) rotate(-8deg) scale(1)}to{transform:translate3d(-7%,-9%,0) rotate(4deg) scale(1.08)}}
@keyframes vapor-near{from{transform:translate3d(-4%,5%,0) scaleX(-1) rotate(-14deg)}to{transform:translate3d(7%,-9%,0) scaleX(-1) rotate(-3deg)}}
.atmosphere-paused .smoke-drift,.is-hidden .smoke-drift{animation-play-state:paused}
@media(max-aspect-ratio:3/4){.entrance-header{padding:16px 20px}.entrance-header p{font-size:9px;letter-spacing:.13em;max-width:160px}.portrait-base img,.portrait-light img{object-position:87% 50%}.portrait-base{filter:brightness(.29)}.portrait-light{mask-image:radial-gradient(ellipse 85vw 45vh at var(--light-x) var(--light-y),#000,transparent 95%)}.portrait-shade{background:linear-gradient(0deg,#080706b8 0%,#0807064a 45%,transparent 65%,#08070635)}.entrance-identity{width:min(78vw,360px,48svh);align-self:end;margin-bottom:clamp(140px,18svh,180px);padding:0}.enter-work{margin-top:10px;font-size:10px;padding:13px 24px;gap:20px;min-height:50px}.scroll-cue{font-size:10px;letter-spacing:.12em}.scroll-line{height:32px}.smoke-drift{width:110%;height:90%;right:-45%;opacity:.24}.smoke-drift--near{width:140%;height:85%;right:-30%;opacity:.12}.entrance-footer{padding:22px;flex-wrap:wrap;font-size:11px}.entrance-footer>span{display:none}}
@media(max-height:550px) and (min-aspect-ratio:3/4){.entrance-scene{min-height:350px}.entrance-header{padding-block:8px}.entrance-identity{width:min(31vw,60svh);padding:0}.enter-work{padding:10px 22px;font-size:10px;min-height:44px;margin-top:0}.scroll-cue{bottom:10px;font-size:9px;gap:5px}.scroll-line{height:18px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.smoke-drift{animation:none;will-change:auto}.entrance-smoke{transform:none!important}.portrait-base,.portrait-light,.entrance-identity{transform:none!important}.entrance-identity{opacity:1!important}.enter-work,.enter-work>span:last-child{transition:none}.entrance{height:100svh;min-height:580px}.scroll-cue{display:none}}

/* A feathered veil supports the real logo without boxing off the portrait. */
.entrance-identity{position:relative;isolation:isolate}
.entrance-identity::before{content:'';position:absolute;inset:-12% -24% -15%;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 50% 46%,rgba(5,4,3,.72) 0%,rgba(5,4,3,.48) 35%,rgba(5,4,3,.17) 57%,transparent 74%)}
.entrance-identity h1 img{filter:brightness(.96) sepia(.08) drop-shadow(0 3px 5px #000b) drop-shadow(0 9px 22px #0008)}
@media(max-aspect-ratio:3/4){.entrance-identity::before{inset:-7% -28% -20%;background:radial-gradient(ellipse,rgba(5,4,3,.78),rgba(5,4,3,.45) 39%,transparent 73%)}}

/* The longer Spanish action stays centered on one line. */
.enter-work{max-width:calc(100vw - 32px);white-space:nowrap;flex-shrink:0}
.enter-work>span:first-child{white-space:nowrap}
.enter-work>span:last-child{flex:none}
@media(max-width:600px){.enter-work{gap:12px;padding-inline:20px;font-size:clamp(9px,2.7vw,11px);letter-spacing:.1em}}
/* Same framing and source as the fallback; only illumination changes. */
.entrance-depth{position:absolute;inset:-3% 0;width:100%;height:106%;transform:translateY(var(--portrait-y));pointer-events:none;opacity:0}
.has-depth-light .entrance-depth{opacity:1;mix-blend-mode:multiply}.has-depth-light .portrait-base{visibility:visible;filter:none}.has-depth-light .portrait-light{visibility:hidden}

/* An explicit visitor choice can enable motion; reduced motion stays the default. */
.motion-enabled .smoke-drift{animation:vapor-drift 24s ease-in-out infinite alternate;will-change:transform}
.motion-enabled .smoke-drift--near{animation-name:vapor-near;animation-duration:32s;animation-delay:-14s}
.motion-enabled .entrance-smoke{transform:translate3d(var(--smoke-x,0px),var(--smoke-y,0px),0)!important}
.motion-enabled .entrance{height:165svh;min-height:780px}
.motion-enabled .scroll-cue{display:flex}
.motion-enabled .portrait-base,.motion-enabled .portrait-light{transform:translateY(var(--portrait-y))!important}
.entrance-motion{font-size:10px;letter-spacing:.08em;min-height:44px;padding:8px 12px;border:1px solid #f4f1ea40;border-radius:30px;background:#090807aa}
.entrance-header{gap:12px}.entrance-header .language{margin-left:auto}
@media(max-width:600px){.entrance-header{flex-wrap:wrap;align-items:center}.entrance-motion{order:3;margin-left:auto;font-size:9px}.entrance-header p{max-width:150px}}

/* The support shadow spans the scene: no fading rectangular logo surface. */
.entrance-identity{isolation:auto}
.entrance-identity::before{content:none!important}
.portrait-veil{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 30% 45% at 50% 48%,#05040370,transparent 100%)}
.strong-contrast .portrait-veil{background:radial-gradient(ellipse 36% 49% at 50% 48%,#050403bc,transparent 100%)}
.entrance-smoke{mix-blend-mode:screen}
@media(max-aspect-ratio:3/4){.portrait-veil{background:linear-gradient(transparent 38%,#08070670 67%,#08070688)}.strong-contrast .portrait-veil{background:linear-gradient(transparent 30%,#080706b8 68%,#080706bb)}}

/* The complete original photo is one native image: no generated hands or face patches. */
.portrait-base img,.portrait-light img{position:absolute;left:var(--original-left,0px);top:var(--original-top,0px);width:var(--original-width,75vh);height:var(--original-height,112.5vh);object-fit:fill;object-position:center;transform:scaleX(-1);mask-image:linear-gradient(90deg,transparent 0%,#000 11%,#000 99%,transparent 100%);-webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 11%,#000 99%,transparent 100%)}
.portrait-scene{background:#030202}
.portrait-veil{background:radial-gradient(ellipse 30% 45% at 50% 48%,#05040330,transparent 100%)}

@media(min-aspect-ratio:3/4){.entrance-identity{position:relative;left:5vw}}
.entrance-smoke{opacity:.75}

/* Warm environment and rim stay behind the registered original photographic detail. */
.portrait-environment{position:absolute;inset:-3% 0;transform:translateY(var(--portrait-y));pointer-events:none;filter:brightness(.72)}
.portrait-environment img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 50%;transform:scaleX(-1)}
.portrait-base img,.portrait-light img{mask-image:url('../assets/entrance/original-detail-mask.svg');-webkit-mask-image:url('../assets/entrance/original-detail-mask.svg');mask-size:100% 100%;-webkit-mask-size:100% 100%}
.portrait-base{filter:brightness(.65) saturate(.92)}
.has-depth-light .portrait-base{filter:brightness(.90) saturate(.92)}
.has-depth-light .portrait-environment{filter:none}
@media(max-aspect-ratio:3/4){.portrait-environment img{object-position:87% 50%}}
