/* ROSY ESLA — creative layer (preloader, transitions, cursor, petals, scroll scenes) */

/* ---------- smooth scroll ---------- */
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-stopped{overflow:hidden}

/* ---------- grain ---------- */
.grain{position:fixed;inset:0;z-index:200;pointer-events:none;overflow:hidden}
.grain::before{content:"";position:absolute;inset:-50%;opacity:.055;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");animation:grain 1.2s steps(6) infinite}
@keyframes grain{0%{transform:translate(0,0)}20%{transform:translate(-4%,3%)}40%{transform:translate(3%,-5%)}60%{transform:translate(-6%,2%)}80%{transform:translate(5%,5%)}100%{transform:translate(0,0)}}

/* ---------- preloader ---------- */
.preload{position:fixed;inset:0;z-index:300;background:var(--noir);display:grid;place-items:center;color:var(--blush);clip-path:circle(150% at 50% 46%)}
.preload .bloom{width:120px;height:120px;position:relative}
.preload .bloom svg{width:100%;height:100%;overflow:visible}
.preload .petal{opacity:0}
.preload .bloom svg{transform-origin:50% 50%}
.preload .core{opacity:0}
.preload .word{position:absolute;top:calc(50% + 86px);left:0;right:0;text-align:center;font-family:var(--f-display);letter-spacing:.5em;font-size:13px;direction:ltr;opacity:0}
.preload .count{position:absolute;bottom:28px;left:34px;font-family:var(--f-display);font-style:italic;font-size:clamp(54px,9vw,120px);line-height:1;color:rgba(255,228,235,.12);direction:ltr}
.preload .tag{position:absolute;bottom:40px;right:34px;font-family:var(--f-script);font-size:28px;color:var(--rose);direction:ltr;opacity:0}

/* ---------- page transition curtain ---------- */
.curtain{position:fixed;inset:0;z-index:290;background:var(--blush);display:grid;place-items:center;transform:translateY(0);pointer-events:none}
.curtain svg{width:64px;height:64px}
.curtain.gone{transform:translateY(-101%)}

/* ---------- cursor ---------- */
@media (hover:none){.cur-dot,.cur-ring{display:none}}
.cur-dot,.cur-ring{position:fixed;top:0;left:0;z-index:250;pointer-events:none;border-radius:50%;will-change:transform}
.cur-dot{width:8px;height:8px;margin:-4px 0 0 -4px;background:var(--deep)}
.cur-ring{width:38px;height:38px;margin:-19px 0 0 -19px;border:1px solid rgba(156,72,82,.55);display:grid;place-items:center;transition:width .35s var(--ease),height .35s var(--ease),margin .35s var(--ease),background .35s,border-color .35s}
.cur-ring span{font-family:var(--f-body);font-size:12px;color:var(--ink);opacity:0;transition:opacity .25s;white-space:nowrap}
.cur-ring.hover{width:58px;height:58px;margin:-29px 0 0 -29px;background:rgba(255,228,235,.35)}
.cur-ring.view{width:92px;height:92px;margin:-46px 0 0 -46px;background:var(--blush);border-color:var(--blush)}
.cur-ring.view span{opacity:1}
.cur-ring.dark{border-color:rgba(255,228,235,.6)}
.cur-dot.dark{background:var(--blush)}
html.has-cursor,html.has-cursor a,html.has-cursor button{cursor:none}
html.has-cursor input,html.has-cursor textarea,html.has-cursor select{cursor:text}

/* ---------- petals canvas ---------- */
.petals{position:fixed;inset:0;z-index:45;pointer-events:none;width:100%;height:100%}
.burst-petal{position:fixed;z-index:260;pointer-events:none;width:14px;height:10px;border-radius:70% 0 70% 0;background:var(--rose)}

/* ---------- header on scroll ---------- */
.header{transition:transform .5s var(--ease),box-shadow .3s,background .3s}
.header.hide{transform:translateY(-100%)}
.header.on-dark{background:rgba(46,34,25,.55);border-color:rgba(255,228,235,.08);color:var(--blush)}
.header.on-dark .logo img{filter:brightness(0) invert(.93) sepia(.2) saturate(3) hue-rotate(300deg)}

/* ---------- split text ---------- */
.w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em;margin-bottom:-.08em}
.wi{display:inline-block;will-change:transform}

/* =========================================================
   HOME
   ========================================================= */
.hx{position:relative;margin-top:calc(-1 * var(--header));height:100vh;height:100svh;background:var(--noir);color:var(--blush);overflow:hidden}
.hx-bgword{position:absolute;left:-2vw;bottom:-4vw;font-family:var(--f-script);font-size:26vw;line-height:1;color:transparent;-webkit-text-stroke:1px rgba(255,228,235,.09);direction:ltr;white-space:nowrap;pointer-events:none}
.hx-in{position:relative;height:100%;max-width:var(--wrap);margin:0 auto;padding:calc(var(--header) + 20px) var(--pad) 40px;display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:4vw}
.hx-txt{position:relative;z-index:3}
.hx-txt .eyebrow{color:var(--rose)}
.hx h1{font-family:var(--f-ar);font-weight:700;font-size:clamp(52px,7.6vw,118px);line-height:1.12;margin:18px 0 22px}
.hx h1 .accent{color:var(--rose)}
.hx p{max-width:430px;color:#e5d6d6;font-size:18px}
.hx .ctas{display:flex;gap:12px;margin-top:34px;flex-wrap:wrap}
.hx-arch{position:absolute;z-index:2;top:calc(50% + 30px);left:calc(max(0px,(100vw - var(--wrap)) / 2) + var(--pad) + 3vw);width:min(32vw,460px);height:min(72vh,680px);transform:translateY(-50%);border-radius:999px 999px 18px 18px;overflow:hidden;box-shadow:0 60px 120px -40px rgba(0,0,0,.7)}
.hx-arch img{width:100%;height:100%;object-fit:cover;transform:scale(1.25)}
.hx-arch::after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 0 1px rgba(255,228,235,.15);border-radius:inherit;pointer-events:none}
.hx-final{position:absolute;inset:0;z-index:4;display:grid;place-items:center;text-align:center;pointer-events:none;opacity:0}
.hx-final .q{font-family:var(--f-display);font-style:italic;font-size:clamp(34px,5vw,74px);color:var(--blush);direction:ltr;line-height:1.15;text-shadow:0 10px 40px rgba(0,0,0,.5)}
.hx-final .q b{font-family:var(--f-script);font-weight:400;font-style:normal;color:var(--rose);font-size:1.3em}
.hx-scroll{position:absolute;z-index:5;bottom:26px;left:50%;transform:translateX(-50%);display:grid;justify-items:center;gap:8px;font-family:var(--f-latin);font-size:11px;letter-spacing:.32em;color:rgba(255,228,235,.65);direction:ltr}
.hx-scroll i{width:1px;height:46px;background:linear-gradient(rgba(255,228,235,.7),transparent);display:block;animation:drip 1.8s var(--ease) infinite;transform-origin:top}
@keyframes drip{0%{transform:scaleY(0)}50%{transform:scaleY(1)}100%{transform:scaleY(1);opacity:0}}

/* velocity marquee — slim ribbon */
.vm{background:var(--blush);padding:13px 0;overflow:hidden;direction:ltr;border-block:1px solid rgba(156,72,82,.1);position:relative}
.vm::before,.vm::after{content:"";position:absolute;top:0;bottom:0;width:80px;z-index:2;pointer-events:none}
.vm::before{left:0;background:linear-gradient(90deg,var(--blush),transparent)}
.vm::after{right:0;background:linear-gradient(-90deg,var(--blush),transparent)}
.vm-track{display:flex;width:max-content;will-change:transform}
.vm-track span{font-family:var(--f-display);font-style:italic;font-size:clamp(17px,1.7vw,24px);line-height:1.2;white-space:nowrap;display:flex;align-items:center;gap:26px;padding-right:26px;color:var(--ink)}
.vm-track span em{font-style:normal;font-family:var(--f-body);font-weight:500;font-size:.85em;color:var(--deep)}
.vm-track svg{width:.62em;height:.62em;flex:0 0 auto;opacity:.85}
@media (max-width:860px){.vm{padding:10px 0}.vm-track span{font-size:16px;gap:18px;padding-right:18px}.vm::before,.vm::after{width:36px}}

/* manifesto */
.mani{padding:clamp(90px,14vw,190px) 0;background:var(--ivory)}
.mani p{font-family:var(--f-ar);font-weight:700;font-size:clamp(30px,4.4vw,64px);line-height:1.45;max-width:1100px}
.mani p .mw{opacity:.13;transition:opacity .2s}
.mani p .en{font-family:var(--f-display);font-weight:400;font-style:italic;color:var(--deep)}
.mani .sig{display:flex;align-items:center;gap:18px;margin-top:40px;color:var(--muted)}
.mani .sig .script{font-size:42px;color:var(--deep);direction:ltr}

/* moments (editorial list) */
.moments{border-top:1px solid var(--line)}
.mo{display:grid;grid-template-columns:90px 1fr auto;align-items:center;gap:20px;padding:26px 6px;border-bottom:1px solid var(--line);position:relative;transition:padding .5s var(--ease),color .4s}
.mo .n{font-family:var(--f-display);font-style:italic;color:var(--rose);font-size:22px;direction:ltr}
.mo .t{font-family:var(--f-ar);font-weight:700;font-size:clamp(32px,4.6vw,66px);line-height:1.15}
.mo .go{font-family:var(--f-latin);font-size:13px;letter-spacing:.2em;direction:ltr;opacity:.5;transition:opacity .4s}
.mo::before{content:"";position:absolute;inset:0;background:var(--blush);transform:scaleY(0);transform-origin:bottom;transition:transform .55s var(--ease);z-index:-1}
.mo:hover{padding-right:28px;color:var(--deep)}
.mo:hover::before{transform:scaleY(1)}
.mo:hover .go{opacity:1}
.moments{position:relative;isolation:isolate}
.mo-float{position:fixed;top:0;left:0;z-index:40;width:250px;height:310px;border-radius:999px 999px 14px 14px;overflow:hidden;pointer-events:none;opacity:0;transform:translate(-50%,-50%) scale(.6);box-shadow:var(--shadow)}
.mo-float img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .35s}
.mo-float img.on{opacity:1}

/* tilt cards */
.card .media{transform-style:preserve-3d;will-change:transform}

/* lights off */
.lo{position:relative;padding:clamp(80px,10vw,140px) 0;background:var(--cream);transition:background 1.1s var(--ease),color 1.1s var(--ease);overflow:hidden}
.lo.dark{background:#140e0a;color:var(--blush)}
.lo-head{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;flex-wrap:wrap;margin-bottom:48px}
.lo .h2{transition:color 1s}
.lo .lead{transition:color 1s}
.lo.dark .lead{color:#c9b8b3}
.switch{display:flex;align-items:center;gap:16px;cursor:pointer;user-select:none}
.switch .plate{width:74px;height:110px;border-radius:16px;background:#fff;box-shadow:0 14px 30px -14px rgba(0,0,0,.35),inset 0 0 0 1px rgba(0,0,0,.06);display:grid;place-items:center;transition:background 1s}
.lo.dark .switch .plate{background:#2a201b;box-shadow:0 14px 30px -14px rgba(0,0,0,.8),inset 0 0 0 1px rgba(255,255,255,.06)}
.switch .tog{width:30px;height:60px;border-radius:9px;background:linear-gradient(#f4eeec,#ddd3d0);position:relative;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08);transition:background 1s}
.switch .tog::after{content:"";position:absolute;left:4px;right:4px;height:24px;top:4px;border-radius:6px;background:#fff;box-shadow:0 4px 8px rgba(0,0,0,.18);transition:top .35s var(--ease),background .6s}
.lo.dark .switch .tog{background:linear-gradient(#3a2d26,#241b16)}
.lo.dark .switch .tog::after{top:32px;background:var(--amber);box-shadow:0 0 18px rgba(201,138,75,.8)}
.switch .lbl b{display:block;font-size:17px}
.switch .lbl small{color:var(--muted);transition:color 1s}
.lo.dark .switch .lbl small{color:#a99895}
.lo .grid .card .media{transition:box-shadow 1.2s var(--ease)}
.lo .grid .card .media img{transition:filter 1.2s var(--ease),opacity .6s,transform 1s var(--ease)}
.lo:not(.dark) .grid .card .media img:not(.alt){filter:saturate(.75) brightness(1.05)}
.lo.dark .grid .card .media{box-shadow:0 30px 90px -20px rgba(255,170,90,.45)}
.lo.dark .grid .card .media img{filter:brightness(1.12) saturate(1.15)}
.lo.dark .card .ar{color:#b9a6a2}
.lo.dark .card .pr{color:var(--rose)}
.lo-spot{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity 1s;background:radial-gradient(circle 280px at var(--mx,50%) var(--my,50%),rgba(255,190,120,.16),transparent 70%)}
.lo.dark .lo-spot{opacity:1}

/* horizontal sakura scene */
.hz{background:var(--noir);color:#f3e6da;overflow:hidden;position:relative}
.hz-pin{direction:ltr;height:100vh;height:100svh;display:flex;flex-direction:column;justify-content:center;gap:34px;padding:calc(var(--header) + 10px) 0 30px}
.hz-head{direction:rtl;max-width:var(--wrap);margin:0 auto;padding:0 var(--pad);width:100%;display:flex;justify-content:space-between;align-items:flex-end;gap:20px}
.hz-head h2{font-family:var(--f-display);font-weight:400;letter-spacing:.14em;font-size:clamp(34px,5vw,72px);direction:ltr;color:#f6e9dd;line-height:1}
.hz-head .eyebrow{color:var(--amber)}
.hz-head .prog{width:180px;height:1px;background:rgba(255,228,235,.2);position:relative;direction:ltr}
.hz-head .prog i{position:absolute;inset:0;background:var(--amber);transform:scaleX(0);transform-origin:left}
.hz-track{display:flex;gap:3vw;padding:0 var(--pad);direction:ltr;width:max-content;will-change:transform}
.hz-card{width:min(36vw,520px);flex:0 0 auto;position:relative;direction:rtl}
.hz-card .ph{height:min(58vh,560px);border-radius:999px 999px 16px 16px;overflow:hidden;position:relative}
.hz-card .ph img{width:100%;height:100%;object-fit:cover;transform:scale(1.15)}
.hz-card .num{position:absolute;top:-14px;left:-10px;font-family:var(--f-display);font-style:italic;font-size:clamp(70px,8vw,120px);line-height:1;color:var(--amber);direction:ltr;z-index:2;mix-blend-mode:screen}
.hz-card .cap{display:flex;flex-direction:column;align-items:flex-start;margin-top:16px;gap:4px;text-align:right}
.hz-card .cap b{font-family:var(--f-display);font-weight:400;font-size:26px;direction:ltr;unicode-bidi:isolate}
.hz-card .cap span{color:#c9b6aa;font-size:14px}
.hz-card .cap .en{color:var(--amber)}
.hz-end{width:min(30vw,420px);flex:0 0 auto;display:flex;flex-direction:column;justify-content:center;gap:18px;direction:rtl}
.hz-end .script{font-size:clamp(52px,6vw,90px);color:var(--rose);direction:ltr;text-align:right;line-height:1}

/* personalize v2 */
.pz{background:var(--blush);overflow:hidden}
.pz-in{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:clamp(30px,6vw,90px)}
.pz .name{font-family:var(--f-script);font-size:clamp(80px,11vw,170px);line-height:1.05;color:var(--deep);direction:ltr;text-align:right;min-height:1.15em;white-space:nowrap}
.pz .name span{display:inline-block}
.pz input{width:100%;max-width:420px;border:0;border-bottom:1.5px solid var(--ink);background:transparent;padding:12px 2px;font-family:var(--f-display);font-size:22px;direction:ltr;text-align:left;outline:none}
.pz .ph{border-radius:999px 999px 20px 20px;overflow:hidden;aspect-ratio:4/5;position:relative;max-height:680px}
.pz .ph img{width:100%;height:120%;object-fit:cover;position:absolute;top:-10%}

/* craft v2 */
.cr{background:var(--ivory)}
.cr-in{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,6vw,90px)}
.cr-media{position:sticky;top:calc(var(--header) + 30px);align-self:start;border-radius:var(--r-lg);overflow:hidden;aspect-ratio:4/5}
.cr-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;clip-path:inset(0 0 0 0)}
.cr-steps{position:relative;padding-right:40px}
.cr-line{position:absolute;right:8px;top:10px;bottom:10px;width:1px;background:var(--line)}
.cr-line i{position:absolute;inset:0;background:var(--deep);transform:scaleY(0);transform-origin:top}
.cr-step{min-height:58vh;display:flex;flex-direction:column;justify-content:center;position:relative}
.cr-step::before{content:"";position:absolute;right:-38px;top:50%;width:13px;height:13px;border-radius:50%;background:var(--ivory);border:1.5px solid var(--deep);transform:translateY(-50%)}
.cr-step .n{font-family:var(--f-display);font-style:italic;font-size:clamp(60px,7vw,110px);line-height:1;color:var(--rose-soft);direction:ltr;text-align:right}
.cr-step h3{font-family:var(--f-ar);font-size:clamp(28px,3vw,40px);margin:6px 0}
.cr-step p{color:var(--muted);font-size:17px;max-width:440px}

/* footer big word */
.fbig{font-family:var(--f-script);font-size:clamp(90px,19vw,290px);line-height:.95;color:var(--blush);direction:ltr;text-align:center;white-space:nowrap;overflow:hidden;margin-top:30px;opacity:.95}
.fbig span{display:inline-block}

/* ---------- mobile ---------- */
@media (max-width:860px){
  .hx-in{grid-template-columns:1fr;align-content:end;padding-bottom:90px}
  .hx-arch{left:50%;top:calc(var(--header) + 22px);transform:translateX(-50%);width:62vw;height:36svh}
  .hx-in{padding-top:0}
  .hx h1{font-size:clamp(44px,12vw,64px);margin:10px 0 14px}
  .hx p{font-size:16px}
  .hx .ctas{margin-top:22px}
  .hx-scroll{display:none}
  .mo{grid-template-columns:44px 1fr;padding:20px 4px}
  .mo .go{display:none}
  .mo-float{display:none}
  .hz-pin{height:auto;padding:80px 0}
  .hz-pin{direction:rtl}
  .hz-track{direction:rtl;overflow-x:auto;scroll-snap-type:x mandatory;width:auto;padding-bottom:10px;scrollbar-width:none}
  .hz-track::-webkit-scrollbar{display:none}
  .hz-card{width:72vw;scroll-snap-align:center}
  .hz-card .ph{height:62vh}
  .hz-end{width:70vw}
  .hz-head .prog{display:none}
  .pz-in,.cr-in{grid-template-columns:1fr}
  .pz .ph{order:-1;max-height:420px}
  .cr-media{position:relative;top:0}
  .cr-step{min-height:auto;padding:26px 0}
  .switch .plate{width:60px;height:90px}
}
@media (prefers-reduced-motion:reduce){
  .grain::before{animation:none}
  .petals{display:none}
  .mani p .mw{opacity:1}
}

/* =========================================================
   v3 — hero slider, moments icons, personalize, footer tabs
   ========================================================= */
.hs{position:relative;margin-top:calc(-1 * var(--header));height:100vh;height:100svh;min-height:560px;background:var(--noir);color:var(--blush);overflow:hidden}
.hs-slide{position:absolute;inset:0;clip-path:inset(0 0 0 100%);transition:clip-path 1.25s cubic-bezier(.77,0,.18,1);z-index:1}
.hs-slide.on{clip-path:inset(0 0 0 0);z-index:2}
.hs-slide.leaving{clip-path:inset(0 0 0 0);z-index:1}
.hs-slide img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.14);transition:transform 7.5s cubic-bezier(.2,.7,.2,1)}
.hs-slide.on img{transform:scale(1)}
.hs-slide::after{content:"";position:absolute;inset:0;background:linear-gradient(270deg,rgba(24,17,13,.86) 0%,rgba(24,17,13,.55) 34%,rgba(24,17,13,.08) 64%),linear-gradient(0deg,rgba(24,17,13,.55),transparent 35%)}
.hs-cap{position:absolute;inset:0;z-index:2;display:flex;align-items:center;padding-top:calc(var(--header) + 10px)}
.hs-txt{max-width:560px}
.hs-txt>*{opacity:0;transform:translateY(34px);transition:opacity .9s var(--ease),transform 1.1s var(--ease)}
.hs.ready .hs-slide.on .hs-txt>*{opacity:1;transform:none}
.hs.ready .hs-slide.on .hs-txt>*:nth-child(2){transition-delay:.12s}
.hs.ready .hs-slide.on .hs-txt>*:nth-child(3){transition-delay:.24s}
.hs.ready .hs-slide.on .hs-txt>*:nth-child(4){transition-delay:.36s}
.hs-txt .eyebrow{color:var(--rose)}
.hs h1,.hs h2{font-family:var(--f-ar);font-weight:700;font-size:clamp(46px,6.6vw,100px);line-height:1.15;margin:14px 0 18px;color:var(--blush)}
.hs .accent{color:var(--rose)}
.hs-txt p{color:#eadede;font-size:18px;max-width:440px}
.hs .ctas{display:flex;gap:12px;margin-top:30px;flex-wrap:wrap}
.hs-ui{position:absolute;z-index:5;bottom:30px;left:0;right:0;display:flex;justify-content:space-between;align-items:flex-end;gap:20px}
.hs-dots{display:flex;gap:22px;direction:ltr}
.hs-dots button{display:grid;gap:8px;color:rgba(255,240,243,.55);font-size:13px;letter-spacing:.2em;text-align:left;transition:color .3s}
.hs-dots button.on{color:var(--blush)}
.hs-dots i{display:block;width:64px;height:2px;background:rgba(255,240,243,.22);position:relative;overflow:hidden;border-radius:2px}
.hs-dots b{position:absolute;inset:0;background:var(--rose);transform:scaleX(0);transform-origin:left}
.hs-dots.run button.on b{animation:hsfill var(--dur,6500ms) linear forwards}
.hs-dots.hold button.on b{animation-play-state:paused}
@keyframes hsfill{to{transform:scaleX(1)}}
.hs-arrows{display:flex;gap:10px}
.hs-btn{width:52px;height:52px;border-radius:50%;border:1px solid rgba(255,240,243,.35);color:var(--blush);display:grid;place-items:center;transition:background .3s,border-color .3s}
.hs-btn:hover{background:rgba(255,240,243,.12);border-color:var(--blush)}
.hs-btn svg{width:22px;height:22px}

/* moments with icons */
.mo{grid-template-columns:62px 1fr auto}
.mo .ic{width:46px;height:46px;border-radius:50%;background:var(--blush);display:grid;place-items:center;color:var(--ink);transition:transform .5s var(--ease),background .4s}
.mo .ic svg{width:25px;height:25px}
.mo:hover .ic{transform:rotate(-12deg) scale(1.08);background:#fff}
.mo-float{border-radius:16px}

/* flatter frames */
.hz-card .ph{border-radius:16px}

/* personalize v3 */
.pz2{display:grid;grid-template-columns:1fr 1fr;background:var(--blush);min-height:min(92vh,820px)}
.pz2-media{position:relative;overflow:hidden;min-height:480px}
.pz2-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.pz2-txt{padding:clamp(48px,7vw,110px) var(--pad);display:flex;flex-direction:column;justify-content:center;max-width:680px}
.gcard2{position:relative;margin:28px 0 22px;background:#fff;border-radius:6px;padding:26px 30px 22px;box-shadow:0 30px 60px -36px rgba(156,72,82,.55),0 0 0 1px rgba(156,72,82,.08);transform:rotate(-1.5deg);max-width:440px}
.gcard2::before{content:"";position:absolute;inset:8px;border:1px solid rgba(156,72,82,.18);border-radius:3px;pointer-events:none}
.gc-top{font-size:10px;letter-spacing:.38em;color:var(--deep);display:block;text-align:right}
.gcard2 .name{font-family:var(--f-script);font-size:clamp(64px,7vw,104px);line-height:1.15;color:var(--deep);direction:ltr;text-align:right;min-height:1.15em;white-space:nowrap;overflow:hidden}
.gcard2 .name span{display:inline-block}
.gc-msg{display:block;color:var(--muted);font-size:14px;border-top:1px dashed rgba(156,72,82,.25);padding-top:10px}
.gc-fl{position:absolute;width:44px;height:44px;left:-16px;top:-16px;transform:rotate(-14deg);filter:drop-shadow(0 6px 10px rgba(156,72,82,.25))}
.pz-in{width:100%;max-width:440px;border:0;border-bottom:1.5px solid var(--ink);background:transparent;padding:12px 2px;font-family:var(--f-display);font-size:20px;direction:ltr;text-align:left;outline:none}
.pz-in:focus{border-color:var(--deep)}
.pz-picks{display:flex;gap:8px;flex-wrap:wrap;margin-top:22px}
.pz-picks .chip{background:#fff}

/* footer v4 — compact, centred, arch top with a sakura badge */
.footer{position:relative;background:var(--ink);color:#cbbdbf;padding:0;margin-top:70px;overflow:visible}
.footer::before{content:"";position:absolute;left:0;right:0;top:-60px;height:61px;background:var(--ink);border-radius:50% 50% 0 0 / 100% 100% 0 0;pointer-events:none}
.f-badge{position:absolute;left:50%;top:-34px;width:68px;height:68px;margin-left:-34px;border-radius:50%;background:var(--ink);display:grid;place-items:center;z-index:2}
.f-badge svg{width:42px;height:42px;animation:spin 18s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.f-in{display:flex;flex-direction:column;align-items:center;text-align:center;gap:16px;padding:30px var(--pad) 34px;position:relative}
.f-logo{width:168px}
.f-tag{font-size:26px;color:var(--rose);direction:ltr;margin-top:-6px}
.f-nav{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 14px;max-width:900px;font-size:15px}
.f-nav a{position:relative;padding:4px 0;transition:color .3s}
.f-nav a::after{content:"";position:absolute;bottom:0;right:0;width:0;height:1px;background:var(--rose);transition:width .35s var(--ease)}
.f-nav a:hover{color:var(--blush)}
.f-nav a:hover::after{width:100%}
.f-sep{display:inline-grid;opacity:.6}
.f-sep svg{width:9px;height:9px}
.footer .social{display:flex;gap:10px;margin:4px 0 0}
.footer .social a{width:42px;height:42px;border-radius:50%;border:1px solid rgba(255,240,243,.2);display:grid;place-items:center;transition:background .3s,color .3s,border-color .3s,transform .4s var(--ease)}
.footer .social a:hover{background:var(--blush);color:var(--ink);border-color:var(--blush);transform:translateY(-3px)}
.f-bot{border-top:1px solid rgba(255,240,243,.08);font-size:12.5px;color:#a3969a}
.f-bot-in{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:16px var(--pad);flex-wrap:wrap}
.f-bot .pay span{border-color:rgba(255,240,243,.18)}

@media (max-width:860px){
  .hs-cap{align-items:flex-end;padding-bottom:110px}
  .hs-slide::after{background:linear-gradient(0deg,rgba(24,17,13,.92) 0%,rgba(24,17,13,.6) 42%,rgba(24,17,13,.05) 72%)}
  .hs h1,.hs h2{font-size:clamp(40px,11vw,58px);margin:8px 0 12px}
  .hs-txt p{font-size:15.5px}
  .hs .ctas{margin-top:20px}
  .hs-ui{bottom:24px}
  .hs-dots{gap:12px}
  .hs-dots i{width:34px}
  .hs-btn{width:42px;height:42px}
  /* moments: side-by-side icon tiles */
  .moments{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;border:0}
  .mo{grid-template-columns:1fr;justify-items:center;text-align:center;gap:10px;padding:18px 6px 16px;border:1px solid var(--line);border-radius:18px;background:#fff}
  .mo::before{border-radius:18px}
  .mo:hover{padding-right:6px}
  .mo .n,.mo .go{display:none}
  .mo .ic{width:56px;height:56px}
  .mo .ic svg{width:28px;height:28px}
  .mo .t{font-size:17px;font-family:var(--f-body);font-weight:600}
  .pz2{grid-template-columns:1fr}
  .pz2-media{min-height:62vh}
  .gcard2{padding:22px 22px 18px}
  .footer{margin-top:50px}
  .footer::before{top:-36px;height:37px}
  .f-badge{top:-28px;width:56px;height:56px;margin-left:-28px}
  .f-badge svg{width:34px;height:34px}
  .f-nav{font-size:14px;gap:4px 10px}
  .f-bot-in{justify-content:center;text-align:center}
  .gcard2 .name{font-size:clamp(52px,15vw,80px)}
}

/* =========================================================
   v5 — rounded panels, numbers cards, craft cards, footer columns
   ========================================================= */
/* soft, rounded dark panels instead of hard full-width bands */

/* numbers */
.nums2{padding:clamp(40px,6vw,80px) 0}
.nums2-box{background:linear-gradient(135deg,#fff 0%,var(--blush) 100%);border-radius:40px;padding:clamp(14px,2vw,22px);box-shadow:0 30px 70px -50px rgba(156,72,82,.5);position:relative;overflow:hidden}
.nums2-box::before{content:"";position:absolute;width:300px;height:300px;right:-90px;top:-130px;border-radius:50%;background:radial-gradient(circle,rgba(228,146,140,.22),transparent 70%)}
.nums2 .g{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(10px,1.4vw,18px);position:relative}
.nc{background:rgba(255,255,255,.75);backdrop-filter:blur(6px);border-radius:28px;padding:26px 18px 24px;text-align:center;display:grid;justify-items:center;gap:6px;border:1px solid rgba(156,72,82,.08);transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.nc:hover{transform:translateY(-6px);box-shadow:0 24px 40px -28px rgba(156,72,82,.6)}
.nc .ic{width:58px;height:58px;border-radius:50%;background:var(--blush);display:grid;place-items:center;color:var(--ink);margin-bottom:6px;box-shadow:inset 0 0 0 1px rgba(156,72,82,.1)}
.nc .ic svg{width:28px;height:28px}
.nc .v{font-family:var(--f-display);font-size:clamp(38px,4vw,54px);line-height:1;color:var(--deep);direction:ltr;unicode-bidi:isolate}
.nc .v small{font-size:.5em;color:var(--rose)}
.nc .l{color:var(--muted);font-size:14.5px}

/* craft cards */
.cr2-head{text-align:center;max-width:640px;margin:0 auto 46px}
.cr2-head .lead{margin:8px auto 0}
.cr2-row{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2.4vw,34px)}
.cr2-path{position:absolute;left:4%;right:4%;top:118px;width:92%;height:120px;z-index:0;overflow:visible}
.cr2-path path{fill:none;stroke:var(--rose);stroke-width:2;stroke-dasharray:2 10;stroke-linecap:round;opacity:.7}
.cr2-card{position:relative;z-index:1;background:#fff;border-radius:32px;padding:12px 12px 26px;box-shadow:0 30px 60px -44px rgba(156,72,82,.55);border:1px solid rgba(156,72,82,.07);transition:transform .6s var(--ease)}
.cr2-card:hover{transform:translateY(-8px)}
.cr2-card:nth-child(3){transform:translateY(34px)}
.cr2-card:nth-child(3):hover{transform:translateY(26px)}
.cr2-card .ph{aspect-ratio:5/4;border-radius:24px;overflow:hidden}
.cr2-card .ph img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.cr2-card:hover .ph img{transform:scale(1.06)}
.badge-ic{width:62px;height:62px;border-radius:50%;background:var(--blush);display:grid;place-items:center;color:var(--ink);margin:-31px auto 0;position:relative;box-shadow:0 0 0 6px #fff}
.badge-ic svg{width:28px;height:28px}
.cr2-card .step{display:block;text-align:center;margin-top:12px;font-size:12.5px;color:var(--deep);letter-spacing:.04em}
.cr2-card h3{text-align:center;font-family:var(--f-ar);font-size:clamp(24px,2.2vw,30px);margin:2px 0 6px}
.cr2-card p{text-align:center;color:var(--muted);font-size:15px;padding:0 14px}

/* footer columns */
.f-cols{display:grid;grid-template-columns:repeat(3,minmax(150px,220px));justify-content:center;gap:12px clamp(20px,5vw,70px);margin-top:10px;text-align:right;background:rgba(255,240,243,.04);border:1px solid rgba(255,240,243,.08);border-radius:28px;padding:24px clamp(20px,3vw,40px)}
.f-col{display:grid;gap:8px;align-content:start}
.f-col h4{display:flex;align-items:center;gap:8px;color:var(--blush);font-size:15px;font-weight:600;margin-bottom:4px}
.f-col a{font-size:14.5px;color:#bfb0b3;width:max-content;position:relative;transition:color .3s,transform .3s var(--ease)}
.f-col a:hover{color:var(--blush);transform:translateX(-4px)}

@media (max-width:860px){
  .nums2 .g{grid-template-columns:repeat(2,1fr)}
  .nc{padding:20px 10px;border-radius:24px}
  .nc .ic{width:50px;height:50px}
  .cr2-row{grid-template-columns:1fr;gap:22px}
  .cr2-path{display:none}
  .cr2-card:nth-child(3),.cr2-card:nth-child(3):hover{transform:none}
  .f-cols{grid-template-columns:repeat(2,1fr);text-align:right;padding:20px;border-radius:24px;width:100%}
  .f-col:last-child{grid-column:1/-1}
  .f-col:last-child{display:flex;flex-wrap:wrap;gap:8px 16px}
  .f-col:last-child h4{width:100%}
}

/* moments: compact icon tiles on all screens */
.moments{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;border:0}
.mo{grid-template-columns:1fr;justify-items:center;text-align:center;gap:12px;padding:24px 10px 20px;border:1px solid var(--line);border-radius:22px;background:#fff;transition:transform .5s var(--ease),box-shadow .5s var(--ease),border-color .4s}
.mo::before{border-radius:22px}
.mo:hover{padding-right:10px;transform:translateY(-6px);box-shadow:0 22px 40px -30px rgba(156,72,82,.55);border-color:transparent}
.mo .go{display:none}
.mo .ic{width:64px;height:64px}
.mo .ic svg{width:30px;height:30px}
.mo .t{font-size:18px;font-family:var(--f-body);font-weight:600}
.mo-float{display:none!important}
@media (max-width:1080px){.moments{grid-template-columns:repeat(3,1fr)}}
@media (max-width:860px){.mo .ic{width:56px;height:56px}.mo .t{font-size:16px}.mo{padding:18px 6px 16px;border-radius:18px}}

.f-credit{font-size:12px;letter-spacing:.06em;color:#a3969a;display:inline-flex;align-items:center;gap:4px;padding:5px 12px;border:1px solid rgba(255,240,243,.12);border-radius:999px;transition:all .3s}
.f-credit b{font-weight:500;color:var(--blush)}
.f-credit:hover{border-color:var(--rose);color:var(--blush)}
@media (max-width:860px){.f-bot-in{flex-direction:column;gap:10px}}

/* v7 mobile polish */
.icon-btn{color:inherit}
.search .close{color:var(--ink)}
@media (max-width:860px){
  .mani .sig{flex-direction:column;align-items:flex-start;gap:4px}
  .mani .sig .script{white-space:nowrap;font-size:36px}
  .cr2-row{grid-template-columns:1fr 1fr;gap:12px}
  .cr2-card{padding:8px 8px 18px;border-radius:24px}
  .cr2-card .ph{border-radius:18px;aspect-ratio:1}
  .badge-ic{width:50px;height:50px;margin-top:-25px;box-shadow:0 0 0 5px #fff}
  .badge-ic svg{width:24px;height:24px}
  .cr2-card h3{font-size:19px}
  .cr2-card p{font-size:13px;padding:0 4px}
  .cr2-card:nth-child(4){grid-column:1/-1}
  .cr2-card:last-of-type{grid-column:1/-1;display:grid;grid-template-columns:42% 1fr;align-items:center;column-gap:12px;padding:8px}
  .cr2-card:last-of-type .ph{grid-row:1/5;aspect-ratio:1}
  .cr2-card:last-of-type .badge-ic{margin:0 auto 0 0}
  .cr2-card:last-of-type .step,.cr2-card:last-of-type h3,.cr2-card:last-of-type p{text-align:right}
}
