:root{color-scheme:dark;background:#080909;color:#F2EAE2;font-family:Arial,Helvetica,sans-serif}*{box-sizing:border-box}body{margin:0}main{height:100vh;height:100svh;display:grid;place-items:center;overflow:hidden;outline:none}.film{position:relative;width:min(100vw,177.7778vh);width:min(100vw,177.7778svh);aspect-ratio:16/9;background:#000;isolation:isolate}.logo{position:absolute;left:12.8443%;top:13.29847%;width:74.3101%;height:auto;display:block}.video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0;pointer-events:none}.video.visible{opacity:1}.video.fade{opacity:0;transition:opacity .18s linear}.tagline{position:absolute;left:10%;width:80%;top:74%;margin:0;text-align:center;font-size:clamp(16px,2vw,28px);font-weight:400;letter-spacing:.035em;line-height:1.4}.invitation{min-height:44px;padding:0 4px;border:0;border-radius:0;background:transparent;color:#F2EAE2;cursor:pointer;text-decoration:none}.invitation:hover{cursor:pointer;text-decoration:none}.invitation:focus-visible{outline:1px dotted #F2EAE2;outline-offset:3px;text-decoration:none}.invitation:disabled{cursor:default}.controls{position:fixed;top:max(12px,env(safe-area-inset-top));right:max(16px,env(safe-area-inset-right));display:flex;gap:8px;font-size:12px}.controls button{font:inherit;color:#F2EAE2;background:#080909;border:1px solid #777;padding:10px 16px;min-height:44px;border-radius:3px;cursor:pointer}.controls button:hover{border-color:#F2EAE2}.controls button:focus-visible{outline:2px solid #F2EAE2;outline-offset:4px}.status{position:fixed;bottom:max(12px,env(safe-area-inset-bottom));left:8%;right:8%;text-align:center;font-size:13px;margin:0}.film[data-state=end]{visibility:hidden}[hidden]{display:none!important}.sr{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip-path:inset(50%)!important}@media(max-height:450px){.tagline{font-size:16px}.controls{top:max(6px,env(safe-area-inset-top))}.status{font-size:12px;bottom:6px}}@media(prefers-reduced-motion:reduce){.video.fade{transition:none}}
.tagline{left:5%;width:90%;font-family:inherit}
/* Stage 2C: actual supplied display face; Stage 12E texture recipe reused. */
@font-face{font-family:'Edgeofusual Image Display';src:url('assets/EdgeofusualImageDisplay-Heavy.woff2') format('woff2'),url('assets/EdgeofusualImageDisplay-Heavy.woff') format('woff');font-weight:900;font-style:normal;font-display:block}
.tagline{font-family:'Edgeofusual Image Display';font-size:clamp(20px,2vw,32px);font-weight:900;font-style:normal;font-synthesis:none;font-kerning:normal;letter-spacing:.015em;line-height:1.2;text-shadow:none;-webkit-text-stroke:0;box-shadow:none;white-space:normal;overflow-wrap:normal;text-decoration:none}
.lettering{display:inline-block;max-width:100%;color:#F2EAE2;text-decoration:none}
@supports ((background-clip:text) or (-webkit-background-clip:text)){
.lettering{color:transparent;background-color:#F2EAE2;background-image:linear-gradient(112deg,rgba(242,234,226,var(--wash-tag0,.72)),rgba(242,234,226,var(--wash-tag1,.74)) 43%,rgba(242,234,226,var(--wash-tag2,.75)) 78%,rgba(242,234,226,var(--wash-tag0,.72))),url('assets/resting.png');background-size:100% 100%,240px auto;background-position:center,center 53%;background-repeat:no-repeat,repeat-x;background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}
}
@media(forced-colors:active){.lettering{background:none;color:CanvasText;-webkit-text-fill-color:CanvasText}.invitation:focus-visible{outline-color:Highlight}}
/* Stage 2D: opacity only; stable text box and logo registration. */
@keyframes tagline-reveal{from{opacity:0}to{opacity:1}}
.film[data-state=revealing] #tagline{animation:tagline-reveal 1.35s ease-in-out both;pointer-events:none}
.film[data-state=anticipating] #tagline{pointer-events:none}
@media(prefers-reduced-motion:reduce){.film[data-state=revealing] #tagline{animation:none;opacity:1}}

/* Stage 3: separate end sequence; approved film and tagline rules above unchanged. */
.outro{position:fixed;inset:0;display:grid;place-items:center;background:#080909;pointer-events:none;overflow:hidden}
.coming-soon{margin:0;max-width:calc(100vw - 32px);text-align:center;font-family:'Edgeofusual Image Display';font-weight:900;font-synthesis:none;font-size:clamp(40px,5.7vw,68px);line-height:1.2;letter-spacing:0;white-space:nowrap}
#outro-canvas{position:absolute;inset:0;width:100%;height:100%}
@media(max-width:600px){.coming-soon{font-size:40px}}
@media(max-height:450px) and (orientation:landscape){.coming-soon{font-size:clamp(36px,11vh,48px)}}
@media(max-width:340px){.coming-soon{font-size:36px}}

/* Stage 3A: typography-only, reversible overrides. */
.coming-soon{font-size:clamp(48px,6vw,84px);--type-outline:1px}
.coming-soon .lettering{-webkit-text-stroke:var(--type-outline) #F2EAE2}
.tagline .lettering{-webkit-text-stroke:.65px #F2EAE2}
@media(max-width:600px){.coming-soon{font-size:48px}}
@media(max-width:600px),(max-height:600px){.coming-soon{--type-outline:.8px}.tagline .lettering{-webkit-text-stroke:.5px #F2EAE2}}
@media(max-height:450px) and (orientation:landscape){.coming-soon{font-size:clamp(42px,13vh,56px)}}
@media(max-width:340px){.coming-soon{font-size:44px}}
@media(forced-colors:active){.coming-soon .lettering,.tagline .lettering{-webkit-text-stroke-color:CanvasText}}

/* Stage 3B: size, warm-stone contours and continuous artwork-derived grain. */
.tagline{font-size:clamp(36.81909px,3.681909vw,58.910544px)}
.tagline .lettering,.coming-soon .lettering{-webkit-text-stroke-color:#D5C5BB}
@supports ((background-clip:text) or (-webkit-background-clip:text)){
.lettering{background-image:linear-gradient(112deg,rgba(242,234,226,var(--wash-tag0,.72)),rgba(242,234,226,var(--wash-tag1,.74)) 43%,rgba(242,234,226,var(--wash-tag2,.75)) 78%,rgba(242,234,226,var(--wash-tag0,.72))),url('assets/type-stone-tile-3m.png');background-size:100% 100%,240px 128px;background-position:center,center;background-repeat:no-repeat,repeat}
.coming-soon .lettering{background-image:linear-gradient(112deg,rgba(242,234,226,var(--wash-coming0,.6696)),rgba(242,234,226,var(--wash-coming1,.6932)) 43%,rgba(242,234,226,var(--wash-coming2,.705)) 78%,rgba(242,234,226,var(--wash-coming0,.6696))),url('assets/type-stone-tile-3m.png')}
}
@media(forced-colors:active){.lettering{background:none;color:CanvasText;-webkit-text-fill-color:CanvasText}.tagline .lettering,.coming-soon .lettering{-webkit-text-stroke-color:CanvasText}}

/* Stage 3C: alpha-derived contours; dark ring is strictly inside SourceAlpha. */
.contour-defs{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}
.tagline .lettering{-webkit-text-stroke:0;filter:url('#contour-tag-desktop')}
.coming-soon .lettering{-webkit-text-stroke:0;filter:url('#contour-coming-desktop')}
@media(max-width:600px),(max-height:600px){.tagline .lettering{filter:url('#contour-tag-small')}.coming-soon .lettering{filter:url('#contour-coming-small')}}
@media(forced-colors:active){.tagline .lettering,.coming-soon .lettering{filter:none}}

/* Stage 3H: available only after the final disappearance. */
.replay-experience{position:fixed;z-index:3;left:50%;bottom:max(24px,env(safe-area-inset-bottom));transform:translateX(-50%);min-height:44px;padding:12px 18px;border:0;background:transparent;color:#F2EAE2;font:400 13px/1.4 Arial,Helvetica,sans-serif;letter-spacing:.03em;white-space:nowrap;cursor:pointer;animation:replay-appear .8s ease-out both}
.replay-experience:hover{color:#fff}
.replay-experience:focus-visible{outline:1px dotted #D5C5BB;outline-offset:2px}
@keyframes replay-appear{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){.replay-experience{animation:none}}

/* Keep playback/loading status announcements accessible without showing on screen. */
.status{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

/* During Replay Experience, keep the resting PNG hidden until the first opening film frame is visible. */
.film.replay-loading .logo{visibility:hidden}

/* Suppress the static resting image during the initial cinematic load as well as replay. */
.film[data-state="opening-loading"] .logo{visibility:hidden}
