/* The original logo is sliced into a single continuous tiled surface. */
.logo-intro{position:fixed;inset:0;background:#000;color:#f4f1e9;z-index:1000;overflow:hidden;opacity:1;transition:opacity .9s cubic-bezier(.22,1,.36,1);isolation:isolate}.logo-intro[hidden]{display:none}.logo-intro.is-finished{opacity:0;pointer-events:none}.logo-intro-controls{position:absolute;z-index:4;top:32px;right:4.3%;display:flex;gap:9px}.logo-intro-controls button{border:1px solid #766b5c;background:#12110f;color:#f5eee5;padding:11px 16px;font:500 12px/1.3 var(--sans);cursor:pointer}.logo-intro-controls button:hover{border-color:#edaa65;color:#f4bd84}.logo-intro-controls button:focus-visible{outline:3px solid #edaa65;outline-offset:4px}.logo-intro-center{position:absolute;inset:0;display:grid;place-items:center;overflow:hidden}.logo-mark{position:relative;width:min(79vw,850px);aspect-ratio:500/165;perspective:1200px;transform-style:preserve-3d}.logo-fragments,.logo-final{position:absolute;inset:0;width:100%;height:100%}.logo-fragments{perspective:1200px;transform-style:preserve-3d}.logo-fragment{position:absolute;inset:0;transform-style:preserve-3d;will-change:transform,opacity}.logo-fragment img,.logo-final{position:absolute;left:0;top:-109.09%;width:100%;height:auto;max-width:none;display:block}.logo-final{opacity:0}.logo-intro.is-assembled .logo-final{opacity:1}.logo-intro.is-assembled .logo-fragments{visibility:hidden}.logo-intro-bottom{position:absolute;bottom:35px;left:4.3%;right:4.3%;display:flex;align-items:center;gap:20px;font:600 9px/1 var(--sans);letter-spacing:.16em;color:#ad9c89}.logo-intro-progress{height:1px;background:#ffffff2e;flex:1;max-width:130px;margin-left:auto}.logo-intro-progress i{display:block;height:100%;background:#e7a566;transform-origin:left;transform:scaleX(var(--logo-progress,0))}.logo-intro-bottom>span:last-child{color:#dfa86e}.film-replay{position:absolute;right:4.3%;top:57px;color:#d3b493;font-size:10px;letter-spacing:.04em;background:#18120e99;border:1px solid #ba9b7166;padding:9px 12px;z-index:3;cursor:pointer}.film-replay:focus-visible{outline:3px solid #edaa65;outline-offset:4px}
@media(max-width:700px){.logo-intro-controls{top:22px;right:23px}.logo-intro-controls button{font-size:11px;padding:10px 13px}.logo-mark{width:87vw}.logo-intro-bottom{left:23px;right:23px;bottom:25px;font-size:8px}.film-replay{right:23px;top:48px;font-size:9px}.logo-intro-progress{max-width:80px}}
@media(prefers-reduced-motion:reduce){.logo-intro{transition:none}.logo-fragment{will-change:auto}}
.logo-extrusion{position:fixed;inset:0;pointer-events:none;display:none}.logo-extrusion canvas{display:block;width:100%;height:100%}.logo-intro[data-mode="extrusion"] .logo-extrusion{display:block}.logo-intro[data-mode="extrusion"] .logo-fragments{display:none}.logo-intro[data-mode="extrusion"].is-assembled .logo-extrusion{visibility:hidden}.logo-intro[data-mode="extrusion"].is-fallback .logo-final{opacity:1;animation:logo-fallback-arrival 3s cubic-bezier(.22,1,.36,1) both}.extrusion-replay{position:absolute;right:4.3%;top:96px;color:#d3b493;font-size:10px;letter-spacing:.04em;background:#18120e99;border:1px solid #ba9b7166;padding:9px 12px;z-index:3;cursor:pointer}.extrusion-replay:focus-visible{outline:3px solid #edaa65;outline-offset:4px}@keyframes logo-fallback-arrival{0%{opacity:0;transform:scale(.9) perspective(900px) rotateY(-30deg)}40%{opacity:1}100%{opacity:1;transform:scale(1) perspective(900px) rotateY(0deg)}}
@media(max-width:700px){.extrusion-replay{right:23px;top:84px;font-size:9px}}
@media(prefers-reduced-motion:reduce){.logo-intro[data-mode="extrusion"].is-fallback .logo-final{animation:none}}
/* Camera-follow typography: words stay in one world while the camera moves. */
.logo-caption{position:absolute;inset:0;overflow:hidden;opacity:0;visibility:hidden;transition:opacity .65s ease,visibility .65s;pointer-events:none}.logo-caption-world{position:absolute;left:50%;top:50%;width:0;height:0;transform-origin:0 0;will-change:transform}.logo-caption-word{position:absolute;display:block;font-family:var(--display);font-weight:700;letter-spacing:-.055em;line-height:1;white-space:nowrap;color:#f5f2ea;opacity:0;transition:opacity .25s ease}.logo-caption-word.is-visible{opacity:1}.logo-caption-word.is-accent{color:#eda963}.logo-intro.is-caption .logo-caption{opacity:1;visibility:visible}.logo-intro .logo-intro-center{transition:opacity .65s ease}.logo-intro.is-caption .logo-intro-center{opacity:0}
@media(prefers-reduced-motion:reduce){.logo-caption,.logo-intro .logo-intro-center,.logo-caption-word{transition:none}}
.logo-caption-world{transition:opacity .55s ease}.logo-caption-resolve{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(88vw,1050px);font:600 clamp(42px,6vw,84px)/1.13 var(--display);letter-spacing:-.055em;text-align:center;color:#f5f2ea;opacity:0;transition:opacity .55s ease}.logo-caption-resolve em{color:#eda963;font-style:normal}.logo-intro.caption-resolved .logo-caption-world{opacity:0}.logo-intro.caption-resolved .logo-caption-resolve{opacity:1}
@media(max-width:700px){.logo-caption-resolve{font-size:clamp(36px,9.5vw,62px);line-height:1.15}}
@media(prefers-reduced-motion:reduce){.logo-caption-world,.logo-caption-resolve{transition:none}}
/* Fade the assembled slices away before the untouched logo fades up. */
.logo-fragments{opacity:1;transition:opacity .5s ease}.logo-intro[data-mode="slice"].is-logo-transition .logo-fragments{opacity:0}.logo-final{transition:opacity .65s ease}
/* One complete thought at a time, with no accumulated word staircase. */
.logo-caption{display:grid;place-items:center}.logo-caption-beat{grid-area:1 / 1;width:min(86vw,1120px);margin:0;text-align:center;color:#f5f2ea;font:600 clamp(42px,5.4vw,76px)/1.18 var(--display);letter-spacing:-.045em;opacity:0;transform:translateY(12px) scale(.985);transition:opacity .38s ease,transform .75s cubic-bezier(.22,1,.36,1);pointer-events:none}.logo-caption-beat:nth-child(2){font-size:clamp(36px,4.6vw,64px);line-height:1.24}.logo-caption-beat.is-active{opacity:1;transform:translateY(0) scale(1);transition-delay:.28s}.logo-caption-beat em{color:#eda963;font-style:normal}
@media(max-width:700px){.logo-caption-beat{width:86vw;font-size:clamp(34px,8.7vw,52px);line-height:1.2}.logo-caption-beat:nth-child(2){font-size:clamp(27px,7vw,40px);line-height:1.25}}
@media(prefers-reduced-motion:reduce){.logo-fragments,.logo-final,.logo-caption-beat{transition:none}}
/* Keep the completed slices on screen: no second logo is layered over them. */
@media(prefers-reduced-motion:no-preference){.logo-intro[data-mode="slice"].is-assembled .logo-fragments{visibility:visible;opacity:1}.logo-intro[data-mode="slice"].is-assembled .logo-final{opacity:0}}
/* Whole phrases travel through the frame while their words arrive in sequence. */
.logo-caption-beat{transform:translate3d(40px,18px,0) scale(.96)}.logo-caption-beat.is-active{transform:translate3d(0,0,0) scale(1)}.logo-caption-beat.is-past{transform:translate3d(-40px,-12px,0) scale(1.025)}.story-word{display:inline-block;opacity:0;transform:translate3d(0,16px,0)}.story-word.story-accent{color:#eda963}.logo-caption-beat.is-active .story-word{animation:story-word-arrival .7s cubic-bezier(.22,1,.36,1) both;animation-delay:calc(.28s + var(--word-i)*65ms)}
@keyframes story-word-arrival{from{opacity:0;transform:translate3d(0,16px,0)}to{opacity:1;transform:translate3d(0,0,0)}}
@media(prefers-reduced-motion:reduce){.story-word,.logo-caption-beat.is-active .story-word{opacity:1;transform:none;animation:none}.logo-caption-beat{transform:none}}
.logo-caption-beat.is-past .story-word{opacity:1;transform:none;animation:none}

/* Short phrases share a single composition; earlier phrases stay visible. */
.caption-phrases{position:absolute;inset:0;overflow:hidden}.caption-phrase{position:absolute;left:50%;top:55%;width:min(90vw,1200px);margin:0;text-align:center;color:#f5f2ea;font:600 clamp(32px,5vw,70px)/1.2 var(--display);letter-spacing:-.045em;opacity:0;transform:translate(-50%,20px) scale(.92);transition:top 1s cubic-bezier(.22,1,.36,1),transform 1s cubic-bezier(.22,1,.36,1),opacity .55s ease;transform-origin:center;pointer-events:none}.caption-phrase em{font-style:normal;color:#eda963}.caption-phrase.is-active{opacity:1;transform:translate(-50%,-50%) scale(1)}.caption-phrase.is-past{top:calc(15% + var(--phrase-i)*7%);opacity:.83;transform:translate(-50%,-50%) scale(.5)}.caption-resolved .caption-phrase.is-active,.caption-resolved .caption-phrase.is-past{top:calc(30% + var(--phrase-i)*8%);opacity:1;transform:translate(-50%,-50%) scale(.62)}
@media(max-width:700px){.caption-phrase{font-size:clamp(25px,6.6vw,38px);width:94vw}.caption-phrase.is-past{top:calc(17% + var(--phrase-i)*6%);transform:translate(-50%,-50%) scale(.68)}.caption-resolved .caption-phrase.is-active,.caption-resolved .caption-phrase.is-past{top:calc(29% + var(--phrase-i)*7.5%);transform:translate(-50%,-50%) scale(.72)}}
@media(prefers-reduced-motion:reduce){.caption-phrase{transition:none}}

/* HyperFrames-inspired camera: phrase placements persist as the view pulls back. */
.camera-world{position:absolute;left:0;top:0;width:0;height:0;transform-origin:0 0;transition:transform 1.05s cubic-bezier(.31,0,.11,1);will-change:transform}
.camera-phrase{position:absolute;display:block;white-space:nowrap;font-family:var(--display);font-weight:700;letter-spacing:-.045em;line-height:.95;color:#f5f2ea;opacity:0;transition:opacity .4s ease}.camera-phrase.is-visible{opacity:1}.camera-phrase.camera-accent{color:#eda963}
@media(prefers-reduced-motion:reduce){.camera-world,.camera-phrase{transition:none}}

/* Completed phrases collect in a stable upper-left column. */
.camera-world{inset:0;width:auto;height:auto;transform:none;transition:none}
.camera-phrase{left:50%;top:50%;width:max-content;max-width:85vw;text-align:center;white-space:normal;font-size:clamp(40px,5.2vw,76px);line-height:1.1;transform:translate(-50%,-35%) scale(.96);transform-origin:top left;transition:left 1s cubic-bezier(.22,1,.36,1),top 1s cubic-bezier(.22,1,.36,1),transform 1s cubic-bezier(.22,1,.36,1),font-size 1s cubic-bezier(.22,1,.36,1),opacity .5s ease}
.camera-phrase.is-active{transform:translate(-50%,-50%) scale(1)}
.camera-phrase.is-past{left:5%;top:calc(12% + var(--phrase-i)*3.6%);width:36vw;max-width:36vw;text-align:left;font-size:clamp(12px,1.35vw,19px);line-height:1.15;opacity:.76;transform:translate(0,0) scale(1)}
@media(max-width:700px){.camera-phrase{font-size:clamp(30px,8vw,44px);max-width:88vw}.camera-phrase.is-past{left:5%;top:calc(11% + var(--phrase-i)*3%);width:40vw;max-width:40vw;font-size:clamp(10px,2.8vw,12px);line-height:1.08}}
@media(prefers-reduced-motion:reduce){.camera-phrase{transition:none}}


/* Caret-swap sequence precedes the assembled brand mark. */
.intro-swap{position:absolute;inset:0;display:grid;place-items:center;opacity:1;transition:opacity .7s ease;pointer-events:none}
.swap-line{position:relative;width:max-content;max-width:90vw;font:700 clamp(28px,4.8vw,67px)/1.15 var(--display);letter-spacing:-.045em;color:#f4f1e9;white-space:nowrap}
.swap-first,.swap-second{display:inline-block;white-space:nowrap}.swap-first[hidden],.swap-second[hidden]{display:none}.swap-caret{position:absolute;top:0;bottom:0;left:0;width:4px;background:linear-gradient(145deg,#f5be7f,#c8732b);pointer-events:none}
.logo-intro .logo-intro-center{opacity:0;transition:opacity .7s ease}.logo-intro.is-logo-stage .logo-intro-center{opacity:1}.logo-intro.is-logo-stage .intro-swap{opacity:0}
.logo-intro[data-mode="extrusion"] .logo-extrusion{opacity:0;transition:opacity .7s ease}.logo-intro[data-mode="extrusion"].is-logo-stage .logo-extrusion{opacity:1}
@media(max-width:700px){.swap-line{font-size:clamp(20px,5.4vw,36px);max-width:94vw}}
@media(prefers-reduced-motion:reduce){.intro-swap,.logo-intro .logo-intro-center{transition:none}.logo-intro.is-assembled .logo-intro-center{opacity:1}.intro-swap{display:none}}
@keyframes caret-blink{0%,48%{opacity:1}49%,100%{opacity:0}} .swap-caret.is-blinking{animation:caret-blink 1.1s steps(1,end) infinite}

/* Avoid enlarging the 500px supplied logo above its native pixel width. */
.logo-mark{width:min(79vw,500px)}
@media(max-width:700px){.logo-mark{width:min(87vw,500px)}}
