/* Level hero — built on Figma theme 16 "Romano Reserve" (New Arkkhe).
   Stage 1920×1080, absolute geometry copied from the file; scaled to the viewport.
   Motion classes (.k33-3 …) come from hero-anim.css, generated from the Figma timeline. */

.hero{position:relative;height:100vh;height:100svh;min-height:640px;overflow:hidden;background:#0a0a0a;color:var(--hero-ink);
  --hero-ink:#f5f5f2;--hero-veil:#06111c;--hero-accent:#3b5bff;--s:1}
.hero,.hero *{box-sizing:border-box}

/* ---------- background plates (stand-in for the hero film) ---------- */
.hero .plates{position:absolute;inset:0;overflow:hidden;background:#0a0a0a}
.hero .plate{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transform:scale(1.08);
  transition:opacity 1.6s cubic-bezier(.7,0,.3,1),transform 1.6s cubic-bezier(.7,0,.3,1),filter 1.6s cubic-bezier(.7,0,.3,1);will-change:transform,opacity}
.hero .plate.on{opacity:1;transform:scale(1);transition-duration:1.8s}
.hero .plate.on.drift{animation:plateDrift 11s linear forwards}
.hero .plate.leave{opacity:0;transform:scale(1.32);filter:blur(10px) brightness(.4);transition-duration:2.6s}
@keyframes plateDrift{from{transform:scale(1)}to{transform:scale(1.09)}}
.hero video.film{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1s}
.hero video.film.ready{opacity:1}
.hero .plates::after{content:none}

/* ---------- stage ---------- */
.hero .stagewrap{position:absolute;inset:0;pointer-events:none}
.hero .stage{position:absolute;left:50%;top:50%;width:1920px;height:1080px;transform:translate(-50%,-50%) scale(var(--s));transform-origin:center center;pointer-events:none}
.hero .stage a,.hero .stage button{pointer-events:auto}
.hero .stage *{position:absolute}
.hero .stage a{color:inherit;text-decoration:none}
.sec{left:0;top:0;width:1920px;height:1080px}
.sec[data-state="off"]{visibility:hidden}

/* veils + grid + ghost */
.veil{left:0;top:0;width:1920px;height:1080px;background:none}
.veil.bottom{top:760px;height:320px;background:none}
.veil.right{left:820px;width:1100px;background:none}
.grid{left:0;top:0;width:1920px;height:1080px;overflow:hidden}
.grid i{top:0;width:1px;height:1080px;background:var(--hero-ink);opacity:.14}
.ghostmask{left:0;width:1920px;overflow:hidden}
.ghost{font-family:var(--font-display);font-weight:800;letter-spacing:-.04em;line-height:1;white-space:nowrap;color:var(--hero-ink);opacity:.07;top:-40px}

/* text */
.title{width:1000px}
.title .lm{left:0;width:1000px;height:98px;overflow:hidden}
.title .ln{left:0;top:6px;font-family:var(--font-display);font-weight:800;font-size:84px;line-height:84px;letter-spacing:-.035em;text-transform:uppercase;white-space:nowrap;
  color:var(--hero-ink);transform-origin:left center}
.title .ln em{font-style:normal;color:inherit}
.grain{display:none;pointer-events:none;mix-blend-mode:screen;background:linear-gradient(100deg,transparent 20%,rgba(255,255,255,.55) 50%,transparent 80%);
  -webkit-mask:linear-gradient(#000,#000);opacity:0}
.para{width:360px;height:130px}
.para .pm{left:0;width:360px;height:30px;overflow:hidden}
.para .pl{left:0;top:3px;font-size:17px;line-height:24px;white-space:nowrap;color:var(--hero-ink);opacity:.9}
.chapter{font-size:13px;letter-spacing:.22em;text-transform:uppercase;white-space:nowrap;opacity:.7}

/* CTA pill */
.cta{height:56px;display:block}
.cta .bg{left:0;top:0;width:100%;height:56px;border-radius:28px;border:1px solid rgba(245,245,242,.55);background:rgba(10,10,10,.18);backdrop-filter:blur(8px)}
.cta .disc{left:8px;top:8px;width:40px;height:40px;border-radius:50%;background:var(--hero-ink)}
.cta .dots{left:11.5px;top:11.5px;width:17px;height:17px;transform-origin:center}
.cta .label{left:60px;top:18px;font-size:16px;font-weight:600;line-height:20px;white-space:nowrap}
.cta:hover .disc{background:var(--hero-accent)}
.dots{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;width:17px;height:17px}
.dots b{position:static;display:block;width:3.6px;height:3.6px;border-radius:50%;background:#0a0a0a}

/* play */
.play{width:126px;height:126px;display:block;border-radius:50%}
.play .ring{left:0;top:0;width:126px;height:126px;border-radius:50%;border:1px solid rgba(245,245,242,.55)}
.play .dm{left:0;top:0;width:126px;height:126px;border-radius:50%;overflow:hidden}
.play .pd{left:35px;top:35px;width:56px;height:56px;border-radius:50%;background:var(--hero-ink)}
.play .pi{left:0;top:0;width:56px;height:56px;display:grid;place-items:center}
.play .pi::before{content:"";width:0;height:0;border-left:14px solid #0a0a0a;border-top:9px solid transparent;border-bottom:9px solid transparent;margin-left:4px}
.play:hover .pd{background:var(--hero-accent)}

/* cards */
.card{border-radius:18px;overflow:hidden;background:#111;display:block;box-shadow:0 30px 60px rgba(0,0,0,.35)}
/* smaller hero cards (Firas, 2026-11-03): scaled toward their outer corner so the layout anchors stay */
.card.c1{transform:scale(.68);transform-origin:top right}.card.c2{transform:scale(.68);transform-origin:bottom right}
.card.s1,.card.s2{transform:scale(.78);transform-origin:top right}.card.s3{transform:scale(.78);transform-origin:bottom right}
.card.r{transform:scale(.86);transform-origin:top left}
.card .photo{background-size:cover;background-position:center}
.card .shade{left:0;width:100%;background:linear-gradient(180deg,transparent,rgba(5,8,12,.88))}
.card .lab{left:28px;font-size:14px;line-height:18px;opacity:.8;white-space:nowrap}
.card .ttl{left:28px;overflow:hidden}
.card .ct{left:0;font-family:var(--font-display);font-weight:600;font-size:32px;line-height:30px;letter-spacing:-.02em;white-space:nowrap}
.card .btn{width:54px;height:54px;border-radius:50%;background:var(--hero-ink);display:grid;place-items:center}
.card .btn .dots{position:static}
.card:hover .btn{background:var(--hero-accent)}
.card:hover .btn b{background:#fff}
.card.c1{left:1240px;top:250px;width:296px;height:280px}
.card.c1 .photo{left:-60px;top:-40px;width:420px;height:420px}
.card.c1 .shade{top:118px;height:162px}
.card.c1 .lab{top:156px}.card.c1 .ttl{top:172px;width:248px;height:66px}.card.c1 .ct.l2{top:30px}.card.c1 .btn{left:222px;top:206px}
.card.c2{left:1560px;top:600px;width:296px;height:280px}
.card.c2 .photo{left:-20px;top:-120px;width:336px;height:450px}
.card.c2 .shade{top:118px;height:162px}
.card.c2 .lab{top:156px}.card.c2 .ttl{top:172px;width:248px;height:66px}.card.c2 .ct.l2{top:30px}.card.c2 .btn{left:222px;top:206px}
/* ritual strip */
.strip{left:40px;top:600px;width:1840px;height:420px}
.card.r{top:120px;width:430px;height:300px}
.card.r .photo{left:-40px;top:-80px;width:510px;height:460px}
.card.r .shade{top:120px;height:180px}
.card.r .lab{top:206px}.card.r .ttl{top:222px;width:304px;height:36px}.card.r .btn{left:356px;top:226px}
/* suites */
.card.s1{left:1000px;top:236px;width:520px;height:380px}
.card.s1 .photo{left:-40px;top:-80px;width:600px;height:540px}
.card.s1 .shade{top:171px;height:209px}.card.s1 .lab{top:280px}.card.s1 .ttl{top:296px;width:394px;height:40px}.card.s1 .btn{left:446px;top:306px}
.card.s2{left:1548px;top:236px;width:332px;height:380px}
.card.s2 .photo{left:-40px;top:-80px;width:412px;height:540px}
.card.s2 .shade{top:171px;height:209px}.card.s2 .lab{top:280px}.card.s2 .ttl{top:296px;width:206px;height:40px}.card.s2 .btn{left:258px;top:306px}
.card.s3{left:1000px;top:644px;width:880px;height:330px}
.card.s3 .photo{left:-40px;top:-80px;width:960px;height:490px}
.card.s3 .shade{top:149px;height:182px}.card.s3 .lab{top:230px}.card.s3 .ttl{top:246px;width:754px;height:40px}.card.s3 .btn{left:806px;top:256px}

/* stats */
.stat{width:300px;height:40px}
.stat .ic{left:0;top:0;width:40px;height:40px;border-radius:12px;border:1px solid rgba(245,245,242,.35);display:grid;place-items:center;transform-origin:center}
.stat .ic svg{position:static;width:20px;height:20px;stroke:var(--hero-ink);fill:none;stroke-width:1.4}
.stat .lm{left:52px;top:2px;width:240px;height:18px;overflow:hidden}
.stat .vm{left:52px;top:20px;width:240px;height:22px;overflow:hidden}
.stat .sl{left:0;top:0;font-size:13px;line-height:16px;opacity:.75;white-space:nowrap}
.stat .sv{left:0;top:0;font-size:16px;line-height:20px;font-weight:700;white-space:nowrap}

/* scroll */
.scroll{left:952px;top:920px;width:20px;height:160px;overflow:hidden}
.scroll .sline{left:8px;top:100px;width:1px;height:60px;background:var(--hero-ink)}
.scroll .stext{left:16px;top:61px;font-size:12px;letter-spacing:.3em;text-transform:uppercase;writing-mode:vertical-rl;transform-origin:center}

/* footer in ch3 */
.hfoot{left:40px;top:1030px;width:1840px;height:24px}
.hfoot .rule{left:0;top:0;width:1840px;height:1px;background:rgba(245,245,242,.5);transform-origin:left center}
.hfoot .copy{left:0;top:10px;font-size:12px;letter-spacing:.18em;text-transform:uppercase;white-space:nowrap}
.hfoot .links{right:0;top:10px;font-size:12px;letter-spacing:.18em;text-transform:uppercase;white-space:nowrap;display:flex;gap:28px}
.hfoot .links a{position:static}

/* header (lives on the stage so it animates with the film) */
.hhead{left:0;top:0;width:1920px;height:100px}
.hhead .brand{left:40px;top:28px;width:260px;height:44px;display:block}
.hhead .mark{display:none}
.hhead .wm{left:0;top:8px;width:220px;height:28px;overflow:hidden}
.hhead .wmt{left:0;top:0;font-family:var(--font-display);font-weight:800;font-size:24px;line-height:28px;letter-spacing:.14em}
.hhead .nav{left:658px;top:40px;width:605px;height:20px}
.hhead .nav a{top:0;font-size:15px;line-height:19px;white-space:nowrap;transition:opacity .3s}
.hhead .nav a:hover{opacity:1!important}
.hhead .nav .ul{left:0;top:26px;height:1px;background:var(--hero-ink);transform-origin:left center;transition:left .7s cubic-bezier(.2,.9,.2,1),width .7s cubic-bezier(.2,.9,.2,1)}
.hhead .login{left:1827px;top:41px;font-size:14px;line-height:18px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap}
.hhead .lline{left:1827px;top:65px;width:53px;height:1px;background:var(--hero-ink);transform-origin:left center}
.hhead .ldot{left:1813px;top:48px;width:5px;height:5px;border-radius:50%;background:var(--hero-accent);transform-origin:center}

/* chapter dots (jump controls) */
.hero .chapters{position:absolute;right:28px;bottom:26px;display:flex;gap:10px;z-index:5;align-items:center}
.hero .chapters button{appearance:none;border:0;background:none;color:#f5f5f2;font:500 11px/1 var(--font-body);letter-spacing:.2em;padding:8px 2px;opacity:.5;cursor:pointer;border-bottom:1px solid transparent;transition:.3s}
.hero .chapters button.on{opacity:1;border-bottom-color:#f5f5f2}
.hero .chapters .pp{width:28px;height:28px;border:1px solid rgba(245,245,242,.4);border-radius:50%;padding:0;opacity:.8;display:grid;place-items:center;margin-left:8px}
.hero .chapters .pp::before{content:"";width:8px;height:8px;background:#f5f5f2;border-radius:1px}
.hero.paused .chapters .pp::before{width:0;height:0;background:none;border-left:9px solid #f5f5f2;border-top:5px solid transparent;border-bottom:5px solid transparent;margin-left:2px}
.hero.paused .stage *,.hero.paused .plate{animation-play-state:paused!important}

/* ---------- mobile hero (portrait) ---------- */
.hero-m{display:none}
@media (max-width:900px),(orientation:portrait) and (max-width:1100px){
  .hero .stagewrap,.hero .chapters{display:none}
  .hero{height:auto;min-height:100svh}
  .hero-m{display:flex;position:relative;min-height:100svh;flex-direction:column;justify-content:flex-end;padding:120px 20px 36px;gap:18px;z-index:2}
  .hero-m .chapter{position:static;margin-bottom:6px}
  .hero-m h1{font-family:var(--font-display);font-weight:800;font-size:clamp(40px,11vw,64px);line-height:.96;letter-spacing:-.035em;text-transform:uppercase;margin:0}
  .hero-m h1 em{font-style:normal;color:inherit}
  .hero-m p{font-size:17px;line-height:1.5;max-width:34ch;margin:0;opacity:.9}
  .hero-m .row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
  .hero-m .cards{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}
  .hero-m .mc{position:relative;aspect-ratio:1/1.05;border-radius:16px;overflow:hidden;background:#111;display:block;color:inherit;text-decoration:none}
  .hero-m .mc img{width:100%;height:100%;object-fit:cover;display:block}
  .hero-m .mc span{position:absolute;left:14px;right:14px;bottom:14px;font-family:var(--font-display);font-weight:600;font-size:18px;line-height:1.1;text-shadow:0 2px 12px rgba(0,0,0,.6)}
  .hero-m .mc small{position:absolute;left:14px;bottom:58px;font-size:12px;opacity:.8}
  .hero-m .pillbtn{display:inline-flex;align-items:center;gap:12px;height:52px;padding:0 20px 0 8px;border:1px solid rgba(245,245,242,.55);border-radius:26px;font-weight:600;font-size:15px;color:inherit;text-decoration:none;backdrop-filter:blur(8px)}
  .hero-m .pillbtn i{width:36px;height:36px;border-radius:50%;background:#f5f5f2;display:grid;place-items:center}
  .hero-m .pillbtn i .dots{position:static;width:15px;height:15px;gap:2.5px}
  .hero-m .pillbtn.ghost{padding:0 20px;height:52px}
  .hero-m .mstats{display:flex;gap:26px;font-size:13px;opacity:.85}
  .hero-m .mstats b{display:block;font-size:16px}
  .hero-m>*{opacity:0;transform:translateY(28px);animation:mrise 1.1s cubic-bezier(.2,.7,.2,1) forwards}
  .hero-m>:nth-child(1){animation-delay:.9s}.hero-m>:nth-child(2){animation-delay:1.1s}.hero-m>:nth-child(3){animation-delay:1.35s}.hero-m>:nth-child(4){animation-delay:1.55s}.hero-m>:nth-child(5){animation-delay:1.75s}.hero-m>:nth-child(6){animation-delay:1.95s}
  @keyframes mrise{to{opacity:1;transform:none}}
  .hero .plates,.hero video.film{z-index:0}
}
