/* landing/hero.css — hero band: headline + CTAs + the animated demo stage
   (glow, contact shadow, tap burst, NFC tag, phone, screen layers, scan-page
   mock, floating cards). NAV lives in site-chrome.css. */

/* ═══ HERO ═══ */
.hero{
  min-height:calc(100vh - 56px);
  padding:5rem 2.5rem 4rem;
  display:grid;grid-template-columns:2fr 1fr;
  gap:2rem;align-items:center;
  position:relative;overflow:hidden;
}
.hero::before{
  content:'';position:absolute;
  right:-5%;top:-10%;width:50%;height:70%;
  background:radial-gradient(ellipse,rgba(182,108,69,0.12) 0%,transparent 65%);
  pointer-events:none;
}
.hero::after{
  content:'';position:absolute;
  left:-5%;bottom:-10%;width:40%;height:50%;
  background:radial-gradient(ellipse,rgba(182,108,69,0.06) 0%,transparent 65%);
  pointer-events:none;
}

.hero-l{position:relative;z-index:2}
.hero-eyebrow{
  display:inline-flex;align-items:center;gap:0.75rem;
  font-size:0.68rem;font-weight:700;letter-spacing:0.2em;text-transform:uppercase;
  color:var(--copper);margin-bottom:2rem;
}
.eyebrow-line{width:24px;height:1px;background:var(--copper);opacity:0.6}
.eyebrow-dot{width:6px;height:6px;border-radius:50%;background:var(--copper);animation:blink 2s ease-in-out infinite}
@keyframes blink{0%,100%{opacity:1}50%{opacity:0.3}}
.hero-h{
  font-family:var(--font-d);font-weight:800;
  font-size:clamp(3.2rem,5.5vw,5.2rem);
  letter-spacing:-0.04em;line-height:0.92;
  color:var(--warm);
}
.hero-h em{font-style:italic;color:var(--copper);font-weight:400}
.hero-sub{
  font-size:1.1rem;line-height:1.6;
  color:rgba(249,244,235,0.55);
  margin-top:1.8rem;
}
.hero-cta{display:flex;gap:1rem;align-items:center;margin-top:2.5rem;flex-wrap:wrap}
.btn-primary{
  background:var(--copper);color:var(--warm);
  padding:1rem 1.8rem;border-radius:12px;
  font-size:1rem;font-weight:600;text-decoration:none;
  display:inline-flex;align-items:center;gap:0.6rem;
  box-shadow:0 8px 32px rgba(182,108,69,0.35);
  transition:background 150ms ease-out,transform 100ms ease-out,box-shadow 150ms ease-out;
}
.btn-primary:hover{background:#C87A50;box-shadow:0 12px 40px rgba(182,108,69,0.45);transform:translateY(-1px)}
.btn-primary:active{transform:scale(0.97) translateY(0)}
.btn-ghost{
  color:rgba(249,244,235,0.5);font-size:0.95rem;
  padding:1rem 0.8rem;text-decoration:none;
  display:inline-flex;align-items:center;gap:0.6rem;
  transition:color 150ms ease-out;
}
.btn-ghost:hover{color:rgba(249,244,235,0.85)}
.hero-trust{
  font-size:0.82rem;color:rgba(249,244,235,0.3);
  margin-top:2rem;display:flex;align-items:center;gap:0.6rem;
}
.trust-dot{width:5px;height:5px;border-radius:50%;background:#2D5F4D;flex-shrink:0}

/* ═══ DEMO STAGE ═══ */
.hero-r{position:relative;z-index:2;display:flex;justify-content:center;align-items:center;min-height:780px}
.demo-stage{
  position:relative;width:100%;max-width:560px;height:800px;
  perspective:1200px;
  perspective-origin:50% 35%;
}

/* AMBIENT LIGHT — breathes, intensifies after tap */
.stage-glow{
  position:absolute;left:32%;top:50%;
  width:560px;height:560px;margin:-280px;
  background:radial-gradient(circle,rgba(182,108,69,0.16) 0%,transparent 60%);
  opacity:0.45;transition:opacity 900ms ease-out;
  animation:glow-breathe 6s ease-in-out infinite;
  pointer-events:none;z-index:0;
}
.demo-stage.lit .stage-glow{opacity:1}
@keyframes glow-breathe{0%,100%{transform:scale(1)}50%{transform:scale(1.07)}}

/* CONTACT SHADOW — grows as phone descends */
.stage-shadow{
  position:absolute;bottom:11%;left:28%;
  width:250px;height:56px;margin-left:-125px;
  background:radial-gradient(ellipse,rgba(0,0,0,0.6) 0%,transparent 65%);
  filter:blur(7px);
  transform:scale(0.5);opacity:0.3;
  transition:transform 1000ms var(--ease-drawer),opacity 1000ms var(--ease-drawer);
  pointer-events:none;z-index:1;
}
.stage-shadow.near{transform:scale(1);opacity:0.85}

/* TAP BURST — copper energy rings at contact point */
.tap-burst{
  position:absolute;bottom:20%;left:28%;
  transform:translate(-50%,50%);
  width:1px;height:1px;pointer-events:none;z-index:5;
}
.tap-burst i{
  position:absolute;left:50%;top:50%;
  width:140px;height:54px;margin:-27px -70px;
  border:2px solid rgba(232,176,130,0.9);
  border-radius:50%;opacity:0;
}
.tap-burst i:nth-child(2){border-width:1px;border-color:rgba(182,108,69,0.7)}
.tap-burst i:nth-child(3){
  border:none;width:90px;height:36px;margin:-18px -45px;
  background:radial-gradient(ellipse,rgba(255,214,170,0.8) 0%,transparent 70%);
}
.tap-burst.go i{animation:tap-ring 750ms cubic-bezier(0.16,1,0.3,1) forwards}
.tap-burst.go i:nth-child(2){animation-delay:90ms}
.tap-burst.go i:nth-child(3){animation:tap-glow 550ms ease-out forwards}
@keyframes tap-ring{0%{opacity:0.9;transform:scale(0.25)}100%{opacity:0;transform:scale(2.5)}}
@keyframes tap-glow{0%{opacity:1;transform:scale(0.4)}100%{opacity:0;transform:scale(1.9)}}

/* NFC TAG at bottom */
.nfc-tag{
  position:absolute;bottom:14%;left:28%;
  transform:translateX(-50%) rotateX(55deg) rotateY(-5deg);
  transform-style:preserve-3d;
  z-index:3;
  display:flex;flex-direction:column;align-items:center;gap:8px;
}
.nfc-tag-card{
  width:120px;height:72px;border-radius:10px;
  background:linear-gradient(135deg,#2D2620,#1A1410);
  border:1px solid rgba(182,108,69,0.35);
  box-shadow:0 0 0 6px rgba(182,108,69,0.04),0 10px 30px rgba(0,0,0,0.5);
  display:flex;align-items:center;justify-content:space-between;
  padding:10px 12px;gap:8px;
  position:relative;overflow:hidden;
  transition:border-color 300ms ease-out,box-shadow 300ms ease-out,filter 300ms ease-out;
}
.nfc-tag-card.flare{
  border-color:rgba(232,176,130,0.9);
  box-shadow:0 0 0 6px rgba(182,108,69,0.12),0 0 34px rgba(182,108,69,0.55),0 10px 30px rgba(0,0,0,0.5);
  filter:brightness(1.3);
}
.nfc-tag-card::before{
  content:'';position:absolute;inset:0;
  background:radial-gradient(ellipse at 30% 50%,rgba(182,108,69,0.08),transparent 60%);
}
.nfc-tag-nfc{display:flex;flex-direction:column;align-items:center;gap:3px}
.nfc-tag-icon{font-size:1.2rem;line-height:1;transition:opacity 400ms ease-out}
.nfc-tag-nfc-lbl{font-size:0.38rem;font-weight:700;letter-spacing:0.15em;text-transform:uppercase;color:rgba(182,108,69,0.6)}
.nfc-tag-divider{width:1px;height:36px;background:rgba(255,255,255,0.08);flex-shrink:0}
.nfc-tag-qr{display:grid;grid-template-columns:repeat(5,1fr);gap:1.5px;width:36px;height:36px;flex-shrink:0}
.qr-cell{border-radius:1px;background:rgba(249,244,235,0.6)}
.qr-cell.e{background:transparent}
.nfc-tag-label{
  font-size:0.5rem;font-weight:700;letter-spacing:0.15em;text-transform:uppercase;
  color:rgba(249,244,235,0.25);
  transition:opacity 400ms ease-out;
}

/* NFC RIPPLES */
.nfc-ripples{
  position:absolute;bottom:20%;left:28%;
  transform:translate(-50%,50%);
  width:1px;height:1px;pointer-events:none;z-index:2;
}
.nfc-ripples span{
  position:absolute;left:50%;top:50%;
  width:110px;height:46px;margin:-23px -55px;
  border:1.5px solid var(--copper);
  border-radius:50%;opacity:0;
}

/* PHONE */
.phone{
  position:absolute;left:50%;top:0%;
  transform:translateX(-80%) rotateX(38deg) rotateY(-18deg) translateY(-10px);
  transform-style:preserve-3d;
  width:370px;z-index:4;
  will-change:transform;
}
/* Use-case iframe path: the fake-scene JS (which tilts the phone each cycle) is
   skipped, so give the live phone a gentle continuous sway around its rest pose
   — same "alive, rotating" feel as the landing, but the angle stays readable. */
@keyframes phone-live-sway{
  0%,100%{transform:translateX(-80%) rotateX(38deg) rotateY(-18deg) translateY(-10px)}
  50%{transform:translateX(-80%) rotateX(29deg) rotateY(-9deg) translateY(-16px)}
}
.phone.live-sway{animation:phone-live-sway 7s ease-in-out infinite}
.phone-shell{
  position:relative;
  background:#0a0806;border-radius:40px;
  border:9px solid #111;
  box-shadow:
    0 60px 120px rgba(0,0,0,0.7),
    0 20px 40px rgba(0,0,0,0.4),
    0 0 0 1px rgba(255,255,255,0.03),
    inset 0 1px 0 rgba(255,255,255,0.06);
  overflow:hidden;
  position:relative;
}
.phone-notch{
  height:26px;background:#0a0806;
  display:flex;align-items:center;justify-content:center;gap:6px;
  position:relative;z-index:2;
}
.phone-notch-spk{width:50px;height:4px;background:#151210;border-radius:2px}
.phone-notch-cam{width:8px;height:8px;border-radius:50%;background:#151210;border:1px solid rgba(255,255,255,0.04)}

/* SCREEN LAYERS */
.phone-screen{position:relative;height:580px;overflow:hidden;background:#faf3ee}
/* The use-case preview iframe auto-pans a full scan page through this 580px
   window, so its top and bottom rows are always mid-scroll. Soft fade masks at
   both edges make the crop read as intentional instead of a hard slice.
   Only the live-iframe path uses them (fake-scene screens fill the frame). */
.phone-screen.has-live-fade::before,
.phone-screen.has-live-fade::after{
  content:"";position:absolute;left:0;right:0;height:30px;z-index:4;pointer-events:none;
}
.phone-screen.has-live-fade::before{top:0;background:linear-gradient(to bottom,#faf3ee,rgba(250,243,238,0))}
.phone-screen.has-live-fade::after{bottom:0;background:linear-gradient(to top,#faf3ee,rgba(250,243,238,0))}
.screen-layer{position:absolute;inset:0;transition:opacity 500ms var(--ease-out),transform 500ms var(--ease-out)}

/* Lock screen */
.screen-lock{
  background:linear-gradient(160deg,#1a1410 0%,#0a0806 100%);
  display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:12px;
  z-index:3;
}
.lock-nfc-icon{
  width:52px;height:52px;
  border-radius:50%;
  border:1.5px solid rgba(182,108,69,0.35);
  display:grid;place-items:center;
  animation:lock-pulse 2s ease-in-out infinite;
}
@keyframes lock-pulse{0%,100%{box-shadow:0 0 0 0 rgba(182,108,69,0.2)}50%{box-shadow:0 0 0 10px rgba(182,108,69,0)}}
.lock-nfc-icon svg{stroke:var(--copper);opacity:0.7}
.lock-nfc-icon path{stroke-dasharray:30;stroke-dashoffset:0;animation:lock-draw 2.4s ease-in-out infinite}
.lock-nfc-icon path:nth-child(2){animation-delay:150ms}
.lock-nfc-icon path:nth-child(3){animation-delay:300ms}
.lock-nfc-icon path:nth-child(4){animation-delay:450ms}
@keyframes lock-draw{
  0%{stroke-dashoffset:30;opacity:0.15}
  40%{stroke-dashoffset:0;opacity:1}
  75%,100%{stroke-dashoffset:0;opacity:0.45}
}
.lock-text{font-size:0.75rem;font-weight:700;letter-spacing:0.18em;text-transform:uppercase;color:rgba(249,244,235,0.5)}
.lock-sub{font-size:0.58rem;letter-spacing:0.15em;text-transform:uppercase;color:rgba(249,244,235,0.2)}

/* Scan flash */
.screen-flash{
  background:radial-gradient(circle at 50% 60%,rgba(255,239,220,0.98) 0%,rgba(255,228,200,0.92) 100%);
  z-index:5;opacity:0;pointer-events:none;
}

/* Content screens */
.screen-content{z-index:2;opacity:0}
.screen-content.visible{opacity:1}

/* Real scan page structure */
.sc-page{
  background:linear-gradient(to bottom,#F9F4EB 0%,#F5EFE3 100%);
  min-height:100%;
  padding:10px;
  display:flex;align-items:flex-start;justify-content:center;
}
.sc-card{
  background:#fff;border-radius:10px;width:100%;
  box-shadow:0 1px 2px rgba(45,38,32,0.04),0 6px 20px rgba(45,38,32,0.1);
  overflow:hidden;
}
.sc-header{
  display:flex;justify-content:space-between;align-items:center;
  padding:8px 11px;border-bottom:1px solid #E8DBC4;
}
.sc-brand{font-family:var(--font-d);font-weight:800;font-size:0.78rem;color:#2D2620;letter-spacing:-0.01em;display:inline-flex;align-items:center;gap:2px}
.sc-brand-logo{width:11px;height:11px;flex-shrink:0}
.sc-tmpl{font-size:0.45rem;font-weight:700;letter-spacing:0.18em;text-transform:uppercase;color:#B66C45}
.sc-body{padding:0}
.sc-block{padding:8px 11px;border-top:1px solid #E8DBC4}
.sc-block:first-child{border-top:none;padding-top:9px}
.sc-block:last-child{padding-bottom:9px}
.sc-heading{
  font-family:var(--font-d);font-weight:800;
  font-size:1.15rem;letter-spacing:-0.02em;line-height:1.1;color:#2D2620;
}
.sc-para{font-size:0.62rem;color:#2D2620;line-height:1.55}
.sc-facts{display:grid;grid-template-columns:max-content 1fr;gap:3px 8px;font-size:0.58rem}
.sc-facts dt{font-size:0.45rem;font-weight:700;letter-spacing:0.15em;text-transform:uppercase;color:#B66C45}
.sc-facts dd{color:#2D2620;margin:0}
.sc-btn{
  display:flex;align-items:center;gap:6px;
  padding:7px 9px;border-radius:8px;
  background:#2D2620;color:#F9F4EB;
  font-size:0.6rem;font-weight:700;text-align:center;justify-content:center;
}
.sc-btn-outline{
  display:flex;align-items:center;gap:6px;
  padding:6px 9px;border-radius:8px;
  border:1px solid #E8DBC4;color:#2D2620;
  font-size:0.6rem;font-weight:600;justify-content:center;
}
.sc-footer{text-align:center;padding:5px 11px 8px;font-size:0.42rem;letter-spacing:0.15em;text-transform:uppercase;color:#8A7560}
.sc-btn-copper{display:flex;align-items:center;gap:6px;padding:7px 9px;border-radius:8px;background:#B66C45;color:#fff;font-size:0.6rem;font-weight:700;text-align:center;justify-content:center}
#scPet .sc-page{position:relative}
#scPet .sc-page::before{content:'';position:absolute;inset:0;z-index:0;pointer-events:none;background-color:#B66C45;opacity:0.08;-webkit-mask-image:url('/img/bg/paws.svg');mask-image:url('/img/bg/paws.svg');-webkit-mask-repeat:repeat;mask-repeat:repeat;-webkit-mask-mode:alpha;mask-mode:alpha;-webkit-mask-size:50px;mask-size:50px}
#scPet .sc-card{position:relative;z-index:1}
#scWedding .sc-page{position:relative}
#scWedding .sc-page::before{content:'';position:absolute;inset:0;z-index:0;pointer-events:none;background-color:#B66C45;opacity:0.06;-webkit-mask-image:url('/img/bg/rings.svg');mask-image:url('/img/bg/rings.svg');-webkit-mask-repeat:repeat;mask-repeat:repeat;-webkit-mask-mode:alpha;mask-mode:alpha;-webkit-mask-size:48px;mask-size:48px}
#scWedding .sc-card{position:relative;z-index:1}

.phone-home{height:4px;background:rgba(255,255,255,0.15);border-radius:2px;width:50px;margin:6px auto}
.phone-preview-overlay{position:absolute;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;background:rgba(15,12,10,0.5);backdrop-filter:blur(3px);opacity:0;transition:opacity 200ms ease-out;text-decoration:none;pointer-events:none;border-radius:31px}
.phone-shell:hover .phone-preview-overlay{opacity:1;pointer-events:auto}
.phone-preview-btn{color:var(--warm);font-family:var(--font-d);font-weight:700;font-size:1rem;letter-spacing:-0.01em;background:var(--copper);padding:0.55rem 1.1rem;border-radius:9px;box-shadow:0 4px 20px rgba(182,108,69,0.45);white-space:nowrap;cursor:pointer}

/* FLOATING CARDS */
.float-cards{position:absolute;right:0;top:20%;z-index:10;display:flex;flex-direction:column;gap:8px;width:172px;pointer-events:none}
.fcard.visible{pointer-events:auto}
.fcard{
  background:rgba(15,12,10,0.85);
  backdrop-filter:blur(12px);
  border:1px solid rgba(255,255,255,0.1);
  border-radius:12px;padding:10px 12px;
  display:flex;align-items:flex-start;gap:8px;
  opacity:0;transform:translateX(16px);
  transition:opacity 400ms var(--ease-out),transform 400ms var(--ease-out);
  box-shadow:0 8px 32px rgba(0,0,0,0.4);
}
.fcard.visible{opacity:1;transform:translateX(0);animation:fcard-float 4.5s ease-in-out 600ms infinite}
.fcard.visible:nth-child(2){animation-delay:1100ms}
@keyframes fcard-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
.fcard-icon{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;font-size:0.9rem;flex-shrink:0}
.fcard-icon.green{background:rgba(45,95,77,0.25);border:1px solid rgba(45,95,77,0.3)}
.fcard-icon.copper{background:rgba(182,108,69,0.2);border:1px solid rgba(182,108,69,0.3)}
.fcard-icon.blue{background:rgba(59,130,246,0.15);border:1px solid rgba(59,130,246,0.2)}
.fcard-icon.purple{background:rgba(139,92,246,0.15);border:1px solid rgba(139,92,246,0.2)}
.fcard-body{flex:1;min-width:0}
.fcard-title{font-size:0.7rem;font-weight:600;color:var(--warm);line-height:1.2}
.fcard-sub{font-size:0.6rem;color:rgba(249,244,235,0.4);margin-top:1px}
