/* Movéya — shared design tokens & components */
@property --ex { syntax: '<length>'; inherits: true; initial-value: 0px; }

html{scroll-behavior:smooth}
.mv{--cream:#FBF6F1;--paper:#FFFCFA;--blush:#F5E6E2;--blush2:#EED6D1;--rose:#8A4F58;--rose2:#B07275;--gold:#C68E7C;--cocoa:#2A1B1B;--cocoa2:#3A2627;--ink:#2F2222;--text:#54423F;--muted:#6E5A57;--line:rgba(138,79,88,.18);--lined:rgba(246,236,232,.13);--disp:'Marcellus','Cinzel',Georgia,serif;--ital:'Bodoni Moda','Bodoni 72','Didot',Georgia,serif;--sans:'Jost','Futura','Avenir Next',system-ui,sans-serif;--ease:cubic-bezier(.2,.8,.2,1);position:relative;overflow-x:clip;font-family:var(--sans);font-size:17px;line-height:1.7;color:var(--ink);background:var(--cream);-webkit-font-smoothing:antialiased}
.mv *,.mv *::before,.mv *::after{box-sizing:border-box}
.mv.dark,.dark{background-color:var(--cocoa);color:#F6ECE8}
.wrap{position:relative;max-width:1280px;margin:0 auto;padding:0 clamp(20px,5vw,72px)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

/* type */
.eyebrow{display:flex;align-items:center;gap:14px;margin:0 0 26px;font-family:var(--sans);font-size:12px;font-weight:500;line-height:1.4;letter-spacing:.34em;text-transform:uppercase;color:var(--rose)}
.eyebrow::before{content:'';flex:none;width:32px;height:1px;background:currentColor}
.eyebrow.bare::before{display:none}
.dark .eyebrow,.eyebrow.light{color:#EDBFAE}
.disp{margin:0;font-family:var(--disp);font-weight:400;line-height:1.04;letter-spacing:-.005em;color:var(--cocoa);text-wrap:balance}
.dark .disp,.disp.light{color:#FBF2EE}
.it{font-family:var(--ital);font-style:italic;font-weight:500;letter-spacing:-.025em;background:linear-gradient(100deg,#7E434C 0%,#A8656A 38%,#B8766F 50%,#A8656A 62%,#7E434C 100%);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;padding-right:.08em}
.dark .it,.it.light{background-image:linear-gradient(100deg,#E7B3A3,#F7DCCF 50%,#E7B3A3)}
.shimmer{animation:shimmer 6s ease-in-out infinite}
@keyframes shimmer{0%,100%{background-position:0% 0}50%{background-position:100% 0}}
.txt{margin:0;color:var(--text);font-size:clamp(16px,1.2vw,17.5px);line-height:1.75;text-wrap:pretty}
.dark .txt{color:#D9C5C0}
.num{font-family:var(--ital);font-style:italic;font-weight:400}

/* buttons */
.btn{position:relative;isolation:isolate;overflow:hidden;display:inline-flex;align-items:center;gap:16px;min-height:58px;padding:8px 8px 8px 28px;border:0;border-radius:999px;background:var(--cocoa);color:#FBF2EE;font-family:var(--sans);font-size:15px;font-weight:500;letter-spacing:.04em;text-decoration:none;cursor:pointer;box-shadow:0 18px 40px -22px rgba(42,27,27,.7);transition:translate .5s var(--ease)}
.btn::before{content:'';position:absolute;inset:0;z-index:-1;border-radius:inherit;background:linear-gradient(100deg,#6F3C45,#9B5E66);transform:translateY(101%);transition:transform .65s cubic-bezier(.7,0,.2,1)}
.btn:hover{color:#fff;translate:0 -2px}
.btn:hover::before{transform:none}
.btn-ic{display:grid;place-items:center;flex:none;width:42px;height:42px;border-radius:50%;background:#FBF2EE;color:var(--cocoa);transition:transform .6s var(--ease)}
.btn-ic svg{width:18px;height:18px}
.btn:hover .btn-ic{transform:rotate(-45deg)}
.btn.light{background:#FBF2EE;color:var(--cocoa)}
.btn.light .btn-ic{background:var(--cocoa);color:#FBF2EE}
.btn.light:hover{color:#fff}
.btn.wa .btn-ic{background:#1E6B46;color:#fff}
.btn.wa:hover .btn-ic{transform:scale(1.06)}
.btn.block{width:100%;justify-content:space-between}
.link{display:inline-flex;align-items:center;gap:10px;min-height:44px;font-size:14px;letter-spacing:.06em;color:var(--muted)}

/* icons */
.ic{fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.gf{fill:#D9A69A}
.gl{fill:none;stroke:rgba(255,255,255,.85);stroke-width:1.3;stroke-linejoin:round}
.mono{fill:#A9636B}
.eo{fill-rule:evenodd}

/* photo placeholders */
.photo{position:relative;display:grid;place-items:center;overflow:hidden;padding:32px;text-align:center;background:linear-gradient(165deg,#F6E2DD 0%,#EAC9C3 55%,#DFB6B0 100%)}
.photo::after{content:'';position:absolute;inset:12px;border:1px solid rgba(255,255,255,.6);border-radius:inherit;pointer-events:none}
.ph{position:relative;z-index:1;max-width:230px;font-size:13px;line-height:1.6;letter-spacing:.02em;color:#6A4648}

/* nav */
.nav{position:fixed;top:0;left:0;right:0;z-index:50;padding:14px clamp(10px,2.4vw,28px)}
.nav-in{display:flex;align-items:center;justify-content:space-between;gap:16px;max-width:1280px;height:66px;margin:0 auto;padding:0 9px 0 22px;border-radius:999px;background:rgba(251,246,241,.78);-webkit-backdrop-filter:blur(14px) saturate(1.3);backdrop-filter:blur(14px) saturate(1.3);border:1px solid rgba(138,79,88,.12)}
.nav.on-dark .nav-in{background:rgba(42,27,27,.55);border-color:rgba(246,236,232,.12)}
.brand{display:flex;align-items:center;gap:12px;min-height:44px;text-decoration:none}
.brand-m{width:34px;height:30px}
.brand-w{width:96px;height:13px;fill:var(--cocoa)}
.on-dark .brand-w{fill:#FBF2EE}
.links{display:flex;align-items:center;gap:2px}
.links a{position:relative;padding:12px 16px;font-size:14px;font-weight:400;letter-spacing:.06em;color:var(--ink);text-decoration:none}
.on-dark .links a{color:#F6ECE8}
.links a::after{content:'';position:absolute;left:16px;right:16px;bottom:8px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .5s var(--ease)}
.links a:hover::after{transform:scaleX(1);transform-origin:left}
.pill{display:inline-flex;align-items:center;gap:10px;min-height:48px;padding:0 20px 0 8px;border-radius:999px;background:var(--cocoa);color:#FBF2EE;font-size:14px;font-weight:500;letter-spacing:.04em;text-decoration:none}
.on-dark .pill{background:#FBF2EE;color:var(--cocoa)}
.pill-dot{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#1E6B46;color:#fff}
.pill-dot svg{width:17px;height:17px}
.burger{display:none;place-items:center;width:48px;height:48px;padding:0;border:0;border-radius:50%;background:var(--cocoa);cursor:pointer}
.on-dark .burger{background:#FBF2EE}
.burger span{display:block;width:18px;height:1.5px;background:#FBF2EE;transition:transform .45s var(--ease)}
.on-dark .burger span{background:var(--cocoa)}
.burger .b1{transform:translateY(-3.5px)}.burger .b2{transform:translateY(3.5px)}
.nav.is-open .nav-in{background:transparent;border-color:transparent}
.nav.is-open .brand-w{fill:#FBF2EE}
.nav.is-open .burger{background:#FBF2EE}
.nav.is-open .burger span{background:var(--cocoa)}
.nav.is-open .b1{transform:rotate(45deg) translate(.5px,.5px)}
.nav.is-open .b2{transform:rotate(-45deg) translate(.5px,-.5px)}
.mmenu{position:fixed;inset:0;z-index:40;display:flex;flex-direction:column;justify-content:center;gap:4px;padding:110px 28px 40px;background:radial-gradient(120% 80% at 100% 0%,#4A2A2E,#2A1B1B 60%);animation:menuin .7s cubic-bezier(.7,0,.2,1) both}
.ml{font-family:var(--disp);font-size:46px;line-height:1.2;color:#FBF2EE;text-decoration:none;opacity:0;animation:fadeup .7s var(--ease) forwards}
.ml:nth-child(1){animation-delay:.2s}.ml:nth-child(2){animation-delay:.27s}.ml:nth-child(3){animation-delay:.34s}.ml:nth-child(4){animation-delay:.41s}
.mmenu .btn{align-self:flex-start;margin-top:36px}
@keyframes menuin{from{clip-path:circle(0% at calc(100% - 52px) 47px)}to{clip-path:circle(150% at calc(100% - 52px) 47px)}}
@media (max-width:960px){.links,.nav-in>.pill{display:none}.burger{display:grid}}

/* 3D gem — geometry: octagonal brilliant, girdle r=100px */
.gem3{position:relative;width:240px;height:300px;perspective:1100px;pointer-events:none}
.gem-r{position:absolute;left:50%;top:36%;width:0;height:0;transform-style:preserve-3d;animation:gemspin 18s linear infinite}
@keyframes gemspin{from{transform:rotateX(-22deg) rotateY(0deg)}to{transform:rotateX(-22deg) rotateY(360deg)}}
.f{position:absolute;display:block;left:-38px;width:76px}
.p{top:0;height:151px;transform-origin:50% 0;clip-path:polygon(0 0,100% 0,50% 100%)}
.c{top:-61px;height:61px;transform-origin:50% 100%;clip-path:polygon(22.5% 0,77.5% 0,100% 100%,0 100%)}
.tb{left:-51px;top:-51px;width:102px;height:102px;transform:translateY(calc(-45px - var(--ex))) rotateX(90deg);clip-path:polygon(29.3% 0,70.7% 0,100% 29.3%,100% 70.7%,70.7% 100%,29.3% 100%,0 70.7%,0 29.3%);background:linear-gradient(135deg,rgba(255,248,243,.96),rgba(234,186,172,.9))}
.p0{transform:rotateY(0deg) translateZ(calc(92px + var(--ex))) rotateX(-37.6deg)}
.p1{transform:rotateY(45deg) translateZ(calc(92px + var(--ex))) rotateX(-37.6deg)}
.p2{transform:rotateY(90deg) translateZ(calc(92px + var(--ex))) rotateX(-37.6deg)}
.p3{transform:rotateY(135deg) translateZ(calc(92px + var(--ex))) rotateX(-37.6deg)}
.p4{transform:rotateY(180deg) translateZ(calc(92px + var(--ex))) rotateX(-37.6deg)}
.p5{transform:rotateY(225deg) translateZ(calc(92px + var(--ex))) rotateX(-37.6deg)}
.p6{transform:rotateY(270deg) translateZ(calc(92px + var(--ex))) rotateX(-37.6deg)}
.p7{transform:rotateY(315deg) translateZ(calc(92px + var(--ex))) rotateX(-37.6deg)}
.c0{transform:rotateY(0deg) translateZ(calc(92px + var(--ex))) rotateX(42.8deg)}
.c1{transform:rotateY(45deg) translateZ(calc(92px + var(--ex))) rotateX(42.8deg)}
.c2{transform:rotateY(90deg) translateZ(calc(92px + var(--ex))) rotateX(42.8deg)}
.c3{transform:rotateY(135deg) translateZ(calc(92px + var(--ex))) rotateX(42.8deg)}
.c4{transform:rotateY(180deg) translateZ(calc(92px + var(--ex))) rotateX(42.8deg)}
.c5{transform:rotateY(225deg) translateZ(calc(92px + var(--ex))) rotateX(42.8deg)}
.c6{transform:rotateY(270deg) translateZ(calc(92px + var(--ex))) rotateX(42.8deg)}
.c7{transform:rotateY(315deg) translateZ(calc(92px + var(--ex))) rotateX(42.8deg)}
.p0{background:linear-gradient(180deg,rgba(250,222,210,.93),rgba(204,140,128,.88))}
.p1,.p7{background:linear-gradient(180deg,rgba(240,198,186,.9),rgba(184,116,110,.88))}
.p2,.p6{background:linear-gradient(180deg,rgba(220,168,158,.9),rgba(160,94,96,.9))}
.p3,.p5{background:linear-gradient(180deg,rgba(196,138,134,.9),rgba(136,74,82,.92))}
.p4{background:linear-gradient(180deg,rgba(178,118,118,.9),rgba(118,60,70,.92))}
.c0{background:linear-gradient(180deg,rgba(255,242,235,.94),rgba(236,190,176,.9))}
.c1,.c7{background:linear-gradient(180deg,rgba(250,226,216,.92),rgba(224,170,158,.9))}
.c2,.c6{background:linear-gradient(180deg,rgba(238,204,194,.9),rgba(206,148,140,.9))}
.c3,.c5{background:linear-gradient(180deg,rgba(222,180,172,.9),rgba(186,124,122,.9))}
.c4{background:linear-gradient(180deg,rgba(210,162,156,.9),rgba(170,108,110,.9))}
.gem-glow{position:absolute;left:50%;top:40%;width:340px;height:340px;margin:-170px 0 0 -170px;border-radius:50%;background:radial-gradient(closest-side,rgba(255,240,233,.9),rgba(240,200,190,.35) 55%,rgba(240,200,190,0))}
.float{animation:float 7s ease-in-out infinite}
@keyframes float{50%{transform:translateY(-16px)}}

/* marquee */
.marq{display:flex;overflow:hidden;white-space:nowrap;mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.marq-t{display:flex;flex:none;gap:48px;padding-right:48px;animation:marq 40s linear infinite}
@keyframes marq{to{transform:translateX(-100%)}}

/* motion: load */
@keyframes fadeup{from{opacity:0;transform:translateY(26px)}}
@keyframes fade{from{opacity:0}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes rv{from{opacity:0;transform:translateY(56px)}}
@keyframes rvs{from{opacity:0;transform:scale(.9)}}
@keyframes draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@keyframes growx{from{transform:scaleX(0)}}
@keyframes growy{from{transform:scaleY(0)}}
.ld{animation:fadeup 1.1s var(--ease) both}
.ld1{animation-delay:.15s}.ld2{animation-delay:.3s}.ld3{animation-delay:.45s}.ld4{animation-delay:.6s}.ld5{animation-delay:.75s}

/* motion: scroll-driven (compositor-friendly, no JS) */
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    .rv{animation:rv linear both;animation-timeline:view();animation-range:entry 0% entry 75%}
    .rv2{animation:rv linear both;animation-timeline:view();animation-range:entry 12% entry 90%}
    .rv3{animation:rv linear both;animation-timeline:view();animation-range:entry 24% cover 32%}
    .rvs{animation:rvs linear both;animation-timeline:view();animation-range:entry 0% entry 80%}
    .draw{stroke-dasharray:1;animation:draw linear both;animation-timeline:view();animation-range:entry 20% cover 45%}
  }
}
@media (prefers-reduced-motion: reduce){
  .mv *,.mv *::before,.mv *::after{animation:none !important;transition:none !important}
}
