/* Anny’s Beauty Spa – link landing page. Black + gold, soft luxury glow. */
:root{
  --k:#050505;--k2:#0e0b08;--k3:#1a140d;
  --g:#E5B25D;--g2:#F6D58A;--g3:#FFE9B8;--gd:#A87A2E;--iv:#FBF3E4;
  --mut:#c2b49c;--line:rgba(229,178,93,.38);
  --fd:"Cormorant Garamond","Didot","Bodoni 72","Playfair Display",Georgia,"Times New Roman",serif;
  --fb:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --ease:cubic-bezier(.2,.8,.2,1);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;min-height:100vh;min-height:100dvh;color:var(--iv);font:500 16px/1.5 var(--fb);background:var(--k);overflow-x:clip}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}
:focus-visible{outline:3px solid var(--g3);outline-offset:3px;border-radius:14px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:12px;top:-64px;z-index:500;background:var(--g);color:#1a1208;padding:10px 16px;border-radius:12px;font-weight:800;transition:top .2s}
.skip:focus{top:12px}

#sparks{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}
#main{position:relative;z-index:1;width:min(520px,100%);margin:0 auto;padding:0 16px}

/* ---------- HERO ---------- */
.hero{position:relative;overflow-x:clip;min-height:72svh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px 0 34px}
.halo{position:absolute;left:50%;top:6%;width:min(120%,560px);aspect-ratio:1;translate:-50% 0;pointer-events:none;
  background:radial-gradient(closest-side,rgba(229,178,93,.20),rgba(229,178,93,.07) 55%,transparent 75%);animation:breathe 6s ease-in-out infinite}
@keyframes breathe{0%,100%{opacity:.7;scale:.96}50%{opacity:1;scale:1.05}}
.logo-wrap{position:relative;width:min(62vw,260px);perspective:900px;animation:logoin 1.4s var(--ease) both}
.logo-float{animation:bob 7s ease-in-out 1.5s infinite}
.logo-tilt{transform:rotateX(var(--ry,0deg)) rotateY(var(--rx,0deg)) scale(var(--sc,1));transform-style:preserve-3d;transition:transform .45s var(--ease)}
.logo{width:100%;height:auto;aspect-ratio:1;object-fit:contain;
  /* the artwork sits on pure black: soften only the outer edge so it melts into the page */
  -webkit-mask-image:radial-gradient(circle closest-side at 50% 50%,#000 86%,transparent 100%);mask-image:radial-gradient(circle closest-side at 50% 50%,#000 86%,transparent 100%);
  filter:drop-shadow(0 0 22px rgba(229,178,93,.35))}
@keyframes logoin{from{opacity:0;transform:translateY(16px) scale(.94);filter:blur(8px)}to{opacity:1;transform:none;filter:none}}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
.brand{margin:6px 0 0;font:600 clamp(34px,10vw,46px)/1 var(--fd);letter-spacing:.01em;color:var(--g2);text-shadow:0 0 28px rgba(229,178,93,.35),0 3px 0 rgba(0,0,0,.6);animation:fadeup .9s var(--ease) .5s both}
.brand span{display:block;margin-top:4px;font:600 clamp(13px,3.8vw,16px)/1 var(--fb);letter-spacing:.42em;text-transform:uppercase;color:var(--g);text-shadow:none}
.tagline{margin:14px 0 0;max-width:330px;font:italic 500 clamp(18px,5.2vw,22px)/1.25 var(--fd);color:var(--iv);opacity:.92;animation:fadeup .9s var(--ease) .7s both}
@keyframes fadeup{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.cta{position:relative;overflow:hidden;isolation:isolate;margin-top:24px;display:inline-flex;align-items:center;gap:8px;min-height:50px;padding:0 26px;border-radius:999px;font:700 14px/1 var(--fb);letter-spacing:.14em;text-transform:uppercase;color:#1a1208;
  background:linear-gradient(180deg,var(--g3),var(--g) 60%,var(--gd));box-shadow:0 6px 0 #6e4f1c,0 14px 26px rgba(0,0,0,.6),0 0 30px rgba(229,178,93,.35),inset 0 2px 0 rgba(255,255,255,.6);
  animation:fadeup .9s var(--ease) .9s backwards;transition:transform .25s var(--ease),box-shadow .25s var(--ease);-webkit-tap-highlight-color:transparent}
.cta svg{width:18px;height:18px;animation:nudge 1.8s ease-in-out infinite}
@keyframes nudge{0%,100%{transform:translateY(-1px)}50%{transform:translateY(3px)}}
.cta>*{position:relative;z-index:1}
@media(hover:hover){.cta:hover{transform:translateY(-3px) scale(1.05)}}
.cta:active{transform:translateY(5px) scale(.99);box-shadow:0 1px 0 #6e4f1c,0 6px 12px rgba(0,0,0,.5)}

/* ---------- SECTIONS ---------- */
.sec{padding:34px 0 8px;scroll-margin-top:12px}
.eyebrow{margin:0;text-align:center;font:700 11px/1 var(--fb);letter-spacing:.34em;text-transform:uppercase;color:var(--g)}
.sec h2{margin:10px 0 24px;text-align:center;font:600 clamp(32px,9vw,40px)/1 var(--fd);color:var(--iv);text-shadow:0 0 24px rgba(229,178,93,.25)}
.sec h2::after{content:"";display:block;width:54px;height:2px;margin:12px auto 0;border-radius:2px;background:linear-gradient(90deg,transparent,var(--g),transparent)}

/* reveal */
.js .rv{opacity:0;transform:translateY(26px) scale(.98);filter:blur(8px);transition:opacity .8s var(--ease),transform .8s var(--ease),filter .8s var(--ease);transition-delay:var(--d,0s)}
.js .rv.in{opacity:1;transform:none;filter:none}

/* ---------- STACKED LINK BUTTONS ---------- */
.stack{display:grid;gap:16px}
.link{position:relative;overflow:hidden;isolation:isolate;display:flex;align-items:center;gap:14px;min-height:78px;padding:12px 16px 12px 12px;border-radius:24px;
  border:1px solid var(--line);
  background:linear-gradient(160deg,rgba(40,31,20,.92),rgba(14,11,8,.96) 70%);
  box-shadow:0 7px 0 #040302,0 16px 26px rgba(0,0,0,.65),inset 0 1px 0 rgba(255,236,190,.2),inset 0 0 22px rgba(229,178,93,.05);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  transition:transform .3s var(--ease),box-shadow .3s var(--ease),filter .35s,opacity .35s,border-color .3s;-webkit-tap-highlight-color:transparent}
.link::before{content:"";position:absolute;inset:0 0 auto;height:2px;z-index:1;background:linear-gradient(90deg,transparent,var(--g2),transparent);opacity:.8}
.link::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(110deg,transparent 42%,rgba(255,233,184,.16) 50%,transparent 58%);transform:translateX(-130%);transition:transform .9s var(--ease)}
.chip{flex:none;display:grid;place-items:center;width:54px;height:54px;border-radius:18px;color:var(--g2);
  background:linear-gradient(145deg,#2b2115,#0b0805);box-shadow:inset 0 1px 0 rgba(255,236,190,.3),inset 0 -3px 0 rgba(0,0,0,.4),0 6px 12px rgba(0,0,0,.5),0 0 0 1px var(--line);transition:transform .45s var(--ease),box-shadow .3s}
.chip svg{width:28px;height:28px;display:block}
.lt{flex:1;min-width:0;display:grid;gap:2px;text-align:left}
.lt b{font:600 22px/1.1 var(--fd);letter-spacing:.01em;color:var(--iv)}
.lt small{font-size:12.5px;color:var(--mut);font-weight:600;overflow-wrap:anywhere}
.go{flex:none;width:34px;height:34px;display:grid;place-items:center;border-radius:50%;border:1px solid var(--line);color:var(--g2);font-size:18px;line-height:1;transition:transform .3s var(--ease),background .3s}
.link:active{transform:translateY(5px) scale(.985);box-shadow:0 2px 0 #040302,0 6px 12px rgba(0,0,0,.6)}
@media(hover:hover){
  .link:hover{transform:translateY(-4px) scale(1.03);border-color:rgba(255,226,160,.7);box-shadow:0 11px 0 #040302,0 24px 38px rgba(0,0,0,.75),0 0 34px rgba(229,178,93,.28),inset 0 1px 0 rgba(255,236,190,.3)}
  .link:hover::after{transform:translateX(130%)}
  .link:hover .chip{transform:scale(1.1) rotate(-5deg);box-shadow:inset 0 1px 0 rgba(255,236,190,.4),0 6px 14px rgba(0,0,0,.5),0 0 18px rgba(229,178,93,.45),0 0 0 1px var(--g)}
  .link:hover .go{transform:translateX(4px);background:rgba(229,178,93,.18)}
  .stack:has(.link:hover) .link:not(:hover){filter:blur(1.5px) brightness(.78);opacity:.8}
}
/* primary: Google Review */
.link.primary{min-height:88px;color:#1b1308;border-color:rgba(255,240,205,.8);
  background:linear-gradient(115deg,#FFE9B8 0%,#F6D58A 30%,#E5B25D 65%,#C98F3C 100%);
  box-shadow:0 8px 0 #7a5522,0 18px 30px rgba(0,0,0,.6),0 0 40px rgba(229,178,93,.4),inset 0 2px 0 rgba(255,255,255,.6),inset 0 -3px 0 rgba(120,80,20,.25)}
.link.primary::before{background:linear-gradient(90deg,transparent,#fff8e4,transparent)}
.link.primary::after{background:linear-gradient(110deg,transparent 40%,rgba(255,255,255,.6) 50%,transparent 60%);transform:translateX(-130%);animation:sweep 5s ease-in-out 2s infinite}
@keyframes sweep{0%,55%{transform:translateX(-130%)}100%{transform:translateX(130%)}}
.link.primary .chip{background:linear-gradient(145deg,#2e2314,#0c0905);color:var(--g2)}
.link.primary .chip svg{animation:twinkle 3s ease-in-out infinite}
@keyframes twinkle{0%,100%{transform:scale(1) rotate(0)}50%{transform:scale(1.16) rotate(12deg)}}
.link.primary .lt b{color:#1b1308}.link.primary .lt small{color:#4a3817}
.link.primary .go{background:#1a1208;border-color:#1a1208;color:var(--g2)}
@media(hover:hover){.link.primary:hover{border-color:#fff;box-shadow:0 12px 0 #7a5522,0 26px 44px rgba(0,0,0,.7),0 0 56px rgba(246,213,138,.55),inset 0 2px 0 rgba(255,255,255,.7)}.link.primary:hover .go{background:#1a1208}}

/* ---------- CONTACT CARD ---------- */
.card{position:relative;text-align:center;padding:28px 20px 24px;border-radius:30px;border:1px solid var(--line);overflow:hidden;
  background:linear-gradient(165deg,rgba(40,31,20,.92),rgba(12,9,7,.97) 75%);
  box-shadow:0 9px 0 #040302,0 22px 40px rgba(0,0,0,.7),0 0 46px rgba(229,178,93,.16),inset 0 1px 0 rgba(255,236,190,.22)}
.card::before{content:"";position:absolute;inset:0 0 auto;height:2px;background:linear-gradient(90deg,transparent,var(--g2),transparent)}
.card::after{content:"";position:absolute;left:50%;top:-40%;width:90%;aspect-ratio:1;translate:-50% 0;background:radial-gradient(closest-side,rgba(229,178,93,.14),transparent);pointer-events:none}
.c-ic{display:inline-grid;place-items:center;width:58px;height:58px;border-radius:20px;color:var(--g2);background:linear-gradient(145deg,#2b2115,#0b0805);box-shadow:inset 0 1px 0 rgba(255,236,190,.3),0 6px 14px rgba(0,0,0,.5),0 0 0 1px var(--line)}
.c-ic svg{width:30px;height:30px}
.c-l{margin:12px 0 0;font:700 11px/1 var(--fb);letter-spacing:.3em;text-transform:uppercase;color:var(--g)}
.c-n{margin:8px 0 20px;font:600 clamp(34px,10vw,42px)/1 var(--fd);color:var(--iv);letter-spacing:.02em;text-shadow:0 0 26px rgba(229,178,93,.3);user-select:all;-webkit-user-select:all}
.c-b{display:grid;gap:14px;position:relative}
.btn{position:relative;overflow:hidden;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:54px;width:100%;padding:0 22px;border-radius:16px;font:700 14px/1 var(--fb);letter-spacing:.1em;text-transform:uppercase;transition:transform .25s var(--ease),box-shadow .25s var(--ease);-webkit-tap-highlight-color:transparent}
.btn svg{width:20px;height:20px;flex:none}
.btn-gold{color:#1a1208;background:linear-gradient(180deg,var(--g3),var(--g) 60%,var(--gd));box-shadow:0 6px 0 #6e4f1c,0 14px 24px rgba(0,0,0,.55),inset 0 2px 0 rgba(255,255,255,.55)}
.btn-ghost{color:var(--iv);background:linear-gradient(180deg,#2a2016,#130e0a);border:1px solid var(--line);box-shadow:0 6px 0 #040302,0 14px 24px rgba(0,0,0,.55),inset 0 1px 0 rgba(255,236,190,.16)}
.btn>*,.cta>*{position:relative;z-index:1}
@media(hover:hover){.btn:hover{transform:translateY(-3px) scale(1.03)}}
.btn:active{transform:translateY(5px) scale(.99);box-shadow:0 1px 0 #040302,0 5px 10px rgba(0,0,0,.5)}

/* ripple + page waves */
.rip{position:absolute;z-index:0;pointer-events:none;border-radius:50%;transform:translate(-50%,-50%) scale(0);
  background:radial-gradient(circle,rgba(255,240,205,.55) 0,rgba(246,213,138,.35) 40%,rgba(246,213,138,0) 70%);animation:rip .85s ease-out forwards}
@keyframes rip{to{transform:translate(-50%,-50%) scale(1);opacity:0}}
.link>.rip,.btn>.rip,.cta>.rip{position:absolute;z-index:0}
#waves{position:fixed;inset:0;pointer-events:none;z-index:50;overflow:hidden}
.wave{position:absolute;width:16px;height:16px;margin:-8px 0 0 -8px;border-radius:50%;border:1.5px solid rgba(246,213,138,.8);box-shadow:0 0 14px rgba(229,178,93,.45);animation:wave 1.1s ease-out forwards}
@keyframes wave{to{transform:scale(11);opacity:0;border-width:.4px}}

/* ---------- FOOTER ---------- */
.foot{position:relative;z-index:1;margin-top:46px;padding:120px 16px calc(30px + env(safe-area-inset-bottom));text-align:center;
  isolation:isolate}
.foot::before{content:"";position:absolute;top:0;bottom:0;left:50%;width:min(100%,1240px);transform:translateX(-50%);z-index:-1;pointer-events:none;
  background:linear-gradient(180deg,#050505 0,rgba(5,5,5,0) 34%),url("assets/waves.webp") center bottom/auto 130px no-repeat;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 14%,#000 86%,transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 14%,#000 86%,transparent 100%)}
.foot>*{position:relative}
.wb{display:inline-flex;gap:6px;align-items:center;padding:7px 16px;border-radius:999px;border:1px solid rgba(229,178,93,.3);background:rgba(0,0,0,.45);color:#b3a58c;font-size:12px;letter-spacing:.05em;transition:all .3s var(--ease);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.wb b{color:var(--g2);font-weight:700}
.wb:hover{border-color:var(--g);color:#fff;background:rgba(229,178,93,.14);transform:translateY(-2px)}

/* toast */
#toast{position:fixed;left:50%;bottom:calc(28px + env(safe-area-inset-bottom));z-index:300;translate:-50% 24px;opacity:0;pointer-events:none;
  display:flex;align-items:center;gap:10px;padding:12px 20px;border-radius:999px;font-weight:700;font-size:14px;color:#1a1208;
  background:linear-gradient(180deg,var(--g3),var(--g));box-shadow:0 10px 30px rgba(0,0,0,.6),0 0 24px rgba(229,178,93,.4);transition:translate .4s var(--ease),opacity .4s}
#toast.on{translate:-50% 0;opacity:1}

/* ---------- ZELLE MODAL ---------- */
button.link{width:100%;text-align:left;color:inherit;font:inherit;cursor:pointer}
.modal{position:fixed;inset:0;z-index:200;display:flex;padding:16px;background:rgba(5,4,3,.66);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);opacity:0;transition:opacity .35s ease;overflow-y:auto}
.modal[hidden]{display:none}
.modal.open{opacity:1}
.m-card{position:relative;width:min(100%,420px);margin:auto;text-align:center;padding:28px 20px 22px;border-radius:30px;border:1px solid var(--line);
  background:linear-gradient(165deg,#251c11,#0f0b08 75%);box-shadow:0 30px 80px rgba(0,0,0,.8),0 0 46px rgba(229,178,93,.18),inset 0 1px 0 rgba(255,236,190,.2);
  opacity:0;transform:translateY(14px) scale(.97);transition:opacity .4s var(--ease) .05s,transform .45s var(--ease) .05s;outline:none}
.modal.open .m-card{opacity:1;transform:none}
.m-ic{width:50px;height:50px;border-radius:17px}.m-ic svg{width:26px;height:26px}
.m-card h2{margin:12px 0 4px;font:600 30px/1.1 var(--fd);color:var(--g3)}
.m-sub{margin:0 0 16px;color:var(--mut);font-size:14px}
.m-close{position:absolute;right:12px;top:12px;width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.07);border:1px solid var(--line);color:var(--iv);font-size:26px;line-height:1;padding-bottom:3px;cursor:pointer;transition:transform .25s var(--ease),background .25s}
.m-close:hover{background:rgba(229,178,93,.2);transform:scale(1.1) rotate(90deg)}
/* QR on a clean white frame: no filters or overlays so it scans */
.qr-frame{width:min(100%,300px);margin:0 auto 14px;padding:16px;background:#fff;border-radius:18px;box-shadow:0 8px 24px rgba(0,0,0,.5)}
.qr-frame img{display:block;width:100%;height:auto;aspect-ratio:1000/1016;object-fit:contain}
.znum-l{margin:0;font:700 11px/1 var(--fb);letter-spacing:.3em;text-transform:uppercase;color:var(--g)}
.znum{margin:8px 0 16px;font:600 34px/1 var(--fd);color:var(--iv);letter-spacing:.02em}
.m-live{min-height:1.4em;margin:12px 0 0;color:var(--g3);font-weight:700;font-size:14px}
.m-note{margin:4px 0 0;color:var(--mut);font-size:12px}

/* ---------- LARGER SCREENS ---------- */
@media(min-width:760px){#main{width:min(560px,100%)}.hero{min-height:78vh}}
@media(max-width:339px){.lt b{font-size:19px}.chip{width:48px;height:48px}.link{gap:10px}.go{display:none}}

/* ---------- LITE / REDUCED MOTION ---------- */
.lite .halo,.lite .link.primary::after,.lite .logo-float,.lite .cta svg{animation:none}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-delay:0s!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  .js .rv{opacity:1;transform:none;filter:none}
  .logo-tilt{transform:none!important}
}
