/* =========================================================
   LiveProfile.in — landing page only.
   Extends the app palette (ink / pine / amber) rather than
   replacing it, so the page and the product feel like one thing.
   All classes are lx- prefixed to stay out of style.css's way.
   ========================================================= */

:root{
  --lx-mint:#7FD1BE;          /* only lives on dark surfaces */
  --lx-ink-2:#12303C;
  --lx-grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='.32'/%3E%3C/svg%3E");
}

/* ---------- shared section rhythm ---------- */
.lx-sec{padding:76px 0}
.lx-sec-tight{padding:52px 0}
.lx-kicker{
  font-family:'IBM Plex Mono',monospace; font-size:.68rem; letter-spacing:.2em;
  text-transform:uppercase; color:var(--brand); margin:0 0 14px;
}
.lx-h2{font-family:'Bricolage Grotesque',serif; font-weight:800; letter-spacing:-.035em; font-size:clamp(1.7rem,4vw,2.5rem); margin:0 0 12px}
.lx-lead{font-size:1.05rem; color:var(--muted); max-width:56ch; margin:0}

/* ---------- hero ---------- */
.lx-hero{
  position:relative; overflow:hidden; color:#fff;
  background:
    radial-gradient(900px 420px at 88% 8%, rgba(14,110,98,.55) 0%, transparent 62%),
    radial-gradient(700px 380px at 4% 96%, rgba(224,138,34,.22) 0%, transparent 60%),
    linear-gradient(168deg,#12303C 0%, #0C1B24 58%);
  padding:60px 0 72px;
}
.lx-hero::after{content:''; position:absolute; inset:0; background-image:var(--lx-grain); opacity:.5; pointer-events:none; mix-blend-mode:overlay}
.lx-hero > .wrap{position:relative; z-index:1}
.lx-hero-grid{display:grid; gap:44px; align-items:center}
@media(min-width:920px){.lx-hero-grid{grid-template-columns:1.05fr .95fr; gap:56px}}

.lx-tagline{
  display:inline-flex; align-items:center; gap:8px; margin-bottom:22px;
  padding:6px 13px 6px 9px; border-radius:30px;
  background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.14);
  font-family:'IBM Plex Mono',monospace; font-size:.7rem; letter-spacing:.12em; text-transform:uppercase;
  color:rgba(255,255,255,.85);
}
.lx-h1{
  font-family:'Bricolage Grotesque',serif; font-weight:800; letter-spacing:-.045em;
  font-size:clamp(2.5rem,7.2vw,4.5rem); line-height:.98; margin:0 0 20px; text-wrap:balance;
}
.lx-h1 em{font-style:normal; color:var(--signal); position:relative; white-space:nowrap}
.lx-h1 em::after{
  content:''; position:absolute; left:0; right:0; bottom:.08em; height:.09em;
  background:var(--signal); opacity:.32; border-radius:2px;
}
.lx-sub{font-size:1.08rem; line-height:1.6; color:rgba(255,255,255,.78); max-width:50ch; margin:0 0 28px}
.lx-cta-row{display:flex; flex-wrap:wrap; gap:12px; margin-bottom:30px}
.lx-btn-xl{padding:14px 24px; font-size:.98rem; border-radius:12px}
.lx-btn-glow{background:var(--signal); color:#231402; box-shadow:0 10px 34px -12px rgba(224,138,34,.85)}
.lx-btn-glow:hover{background:#f0983a}
.lx-btn-line{background:transparent; color:#fff; border:1px solid rgba(255,255,255,.28)}
.lx-btn-line:hover{background:rgba(255,255,255,.09); border-color:rgba(255,255,255,.5)}

.lx-proof{display:flex; flex-wrap:wrap; gap:26px 34px; padding-top:26px; border-top:1px solid rgba(255,255,255,.13)}
.lx-proof-n{font-family:'Bricolage Grotesque',serif; font-weight:800; font-size:1.85rem; line-height:1; color:#fff}
.lx-proof-n span{color:var(--lx-mint)}
.lx-proof-k{font-family:'IBM Plex Mono',monospace; font-size:.66rem; letter-spacing:.13em; text-transform:uppercase; color:rgba(255,255,255,.52); margin-top:6px}

/* ---------- the signature: a phone that records itself ---------- */
.lx-stage{display:flex; justify-content:center; perspective:1400px}
.lx-phone{
  width:min(300px,84vw); border-radius:34px; padding:9px;
  background:linear-gradient(160deg,#2b4552,#0a161d);
  box-shadow:0 40px 90px -34px rgba(0,0,0,.9), 0 0 0 1px rgba(255,255,255,.09) inset;
  transform:rotateY(-9deg) rotateX(3deg); transform-style:preserve-3d;
  animation:lx-float 7s ease-in-out infinite;
}
@keyframes lx-float{0%,100%{transform:rotateY(-9deg) rotateX(3deg) translateY(0)}50%{transform:rotateY(-6deg) rotateX(2deg) translateY(-12px)}}
.lx-screen{position:relative; background:#08141A; border-radius:26px; overflow:hidden; min-height:520px}
.lx-notch{position:absolute; top:8px; left:50%; transform:translateX(-50%); width:82px; height:5px; border-radius:6px; background:rgba(255,255,255,.16); z-index:4}

/* camera half */
.lx-cam{
  position:relative; height:232px;
  background:radial-gradient(120% 100% at 50% 20%, #1d4a55 0%, #0e2630 62%, #08141A 100%);
  display:flex; align-items:flex-end; justify-content:center; overflow:hidden;
}
.lx-figure{position:absolute; bottom:0; left:50%; transform:translateX(-50%); width:150px; opacity:.95}
.lx-figure .fig-head, .lx-figure .fig-body{fill:var(--lx-mint); opacity:.9}
.lx-figure .fig-body{opacity:.75}
.lx-recbar{
  position:absolute; top:16px; left:14px; z-index:3; display:flex; align-items:center; gap:7px;
  background:rgba(6,15,20,.66); backdrop-filter:blur(8px);
  padding:5px 11px 5px 9px; border-radius:20px; border:1px solid rgba(255,255,255,.1);
}
.lx-recdot{width:7px; height:7px; border-radius:50%; background:#E4453A; animation:lx-blink 1s steps(1) infinite}
@keyframes lx-blink{50%{opacity:.2}}
.lx-time{font-family:'IBM Plex Mono',monospace; font-size:.72rem; color:#fff; letter-spacing:.03em}

.lx-ring{position:absolute; top:12px; right:12px; z-index:3; width:44px; height:44px; transform:rotate(-90deg)}
.lx-ring circle{fill:none; stroke-width:3.5; stroke-linecap:round}
.lx-ring .trk{stroke:rgba(255,255,255,.16)}
.lx-ring .bar{stroke:var(--signal); stroke-dasharray:119; stroke-dashoffset:119; transition:stroke-dashoffset .12s linear}

.lx-wave{position:absolute; bottom:14px; left:0; right:0; z-index:3; display:flex; align-items:flex-end; justify-content:center; gap:3px; height:26px}
.lx-wave i{width:3px; height:5px; border-radius:3px; background:rgba(255,255,255,.62); animation:lx-bar .9s ease-in-out infinite}
.lx-wave i:nth-child(2n){animation-duration:.7s}
.lx-wave i:nth-child(3n){animation-duration:1.15s; background:var(--lx-mint)}
@keyframes lx-bar{0%,100%{height:5px}50%{height:22px}}
.lx-paused .lx-wave i{animation-play-state:paused; height:5px}
.lx-paused .lx-recdot{animation:none; background:#3b5b66}

/* resume half — fills in as the clip records */
.lx-card{padding:18px 16px 16px; display:flex; flex-direction:column; gap:11px}
.lx-line{opacity:0; transform:translateY(7px); transition:opacity .45s ease, transform .45s ease}
.lx-line.on{opacity:1; transform:none}
.lx-nm{font-family:'Bricolage Grotesque',serif; font-weight:800; font-size:1.22rem; color:#fff; letter-spacing:-.02em; min-height:1.2em}
.lx-hd{font-size:.82rem; color:rgba(255,255,255,.66); min-height:1.1em}
.lx-caret{display:inline-block; width:2px; height:.92em; background:var(--signal); vertical-align:-.1em; margin-left:2px; animation:lx-blink .8s steps(1) infinite}
.lx-chips{display:flex; flex-wrap:wrap; gap:6px; min-height:26px}
.lx-chip{
  padding:4px 10px; border-radius:20px; font-size:.7rem; font-weight:600;
  background:rgba(127,209,190,.15); color:var(--lx-mint); border:1px solid rgba(127,209,190,.22);
  opacity:0; transform:scale(.82); transition:opacity .3s ease, transform .3s cubic-bezier(.2,1.5,.4,1);
}
.lx-chip.on{opacity:1; transform:none}
.lx-facts{display:grid; grid-template-columns:1fr 1fr; gap:10px; padding-top:12px; border-top:1px solid rgba(255,255,255,.1)}
.lx-fk{font-family:'IBM Plex Mono',monospace; font-size:.6rem; letter-spacing:.12em; text-transform:uppercase; color:rgba(255,255,255,.42)}
.lx-fv{font-size:.82rem; font-weight:600; color:#fff; margin-top:3px}
.lx-mask{font-family:'IBM Plex Mono',monospace; color:var(--signal); font-size:.78rem}

.lx-done{
  position:absolute; inset:auto 0 0 0; z-index:5; padding:13px 16px;
  background:linear-gradient(0deg,rgba(10,85,75,.98),rgba(14,110,98,.92));
  display:flex; align-items:center; gap:9px; font-size:.82rem; font-weight:600; color:#fff;
  transform:translateY(100%); transition:transform .5s cubic-bezier(.2,.9,.3,1);
}
.lx-done.on{transform:none}
.lx-tick{width:19px; height:19px; border-radius:50%; background:#fff; color:var(--brand-dark); display:grid; place-items:center; font-size:.7rem; font-weight:800; flex:none}

/* ---------- steps: a real sequence, so numbers earn their place ---------- */
.lx-steps{display:grid; gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden}
@media(min-width:760px){.lx-steps{grid-template-columns:repeat(4,1fr)}}
.lx-step{background:#fff; padding:24px 20px; position:relative; transition:background .25s ease}
.lx-step:hover{background:#FAFCFB}
.lx-step-n{
  font-family:'IBM Plex Mono',monospace; font-size:.68rem; letter-spacing:.14em; color:var(--brand);
  display:flex; align-items:center; gap:8px; margin-bottom:14px;
}
.lx-step-n::after{content:''; flex:1; height:1px; background:var(--line)}
.lx-step h3{font-size:1.02rem; margin:0 0 6px; letter-spacing:-.02em}
.lx-step p{margin:0; font-size:.88rem; color:var(--muted); line-height:1.5}

/* ---------- who pays ---------- */
.lx-pays{display:grid; gap:16px}
@media(min-width:820px){.lx-pays{grid-template-columns:1.08fr .92fr}}
.lx-pay{border-radius:var(--radius); padding:28px; border:1px solid var(--line); background:#fff}
.lx-pay-free{
  background:linear-gradient(150deg,#0E6E62,#0A554B); color:#fff; border-color:transparent;
  box-shadow:0 24px 60px -34px rgba(10,85,75,.9);
}
.lx-price{font-family:'Bricolage Grotesque',serif; font-weight:800; font-size:3rem; line-height:1; letter-spacing:-.04em; margin:6px 0 4px}
.lx-pay-free .lx-price{color:#fff}
.lx-ticks{list-style:none; margin:20px 0 0; padding:0; display:grid; gap:11px}
.lx-ticks li{display:flex; gap:10px; align-items:flex-start; font-size:.9rem; line-height:1.45}
.lx-ticks li::before{content:'✓'; flex:none; width:19px; height:19px; border-radius:50%; display:grid; place-items:center; font-size:.66rem; font-weight:800; background:var(--brand-wash); color:var(--brand-dark); margin-top:1px}
.lx-pay-free .lx-ticks li::before{background:rgba(255,255,255,.2); color:#fff}
.lx-pay-free .lx-fine{color:rgba(255,255,255,.72)}
.lx-fine{font-size:.8rem; color:var(--muted); margin:18px 0 0}

/* ---------- the 12-second script ---------- */
.lx-script{display:grid; gap:18px}
@media(min-width:820px){.lx-script{grid-template-columns:.9fr 1.1fr; align-items:center}}
.lx-tape{background:var(--ink); border-radius:var(--radius); padding:22px; color:#fff; position:relative; overflow:hidden}
.lx-tape::after{content:''; position:absolute; inset:0; background-image:var(--lx-grain); opacity:.4; mix-blend-mode:overlay; pointer-events:none}
.lx-beat{display:grid; grid-template-columns:64px 1fr; gap:14px; padding:13px 0; border-bottom:1px dashed rgba(255,255,255,.16); position:relative; z-index:1}
.lx-beat:last-child{border-bottom:none; padding-bottom:0}
.lx-beat time{font-family:'IBM Plex Mono',monospace; font-size:.72rem; color:var(--signal); letter-spacing:.02em; padding-top:2px}
.lx-beat p{margin:0; font-size:.9rem; line-height:1.5; color:rgba(255,255,255,.88)}
.lx-beat p b{color:#fff; font-weight:600}

/* ---------- live profiles rail ---------- */
.lx-rail{display:flex; gap:14px; overflow-x:auto; padding:4px 4px 16px; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch}
.lx-rail::-webkit-scrollbar{height:6px}
.lx-rail::-webkit-scrollbar-thumb{background:var(--line); border-radius:20px}
.lx-tile{
  flex:none; width:210px; scroll-snap-align:start; background:#fff; border:1px solid var(--line);
  border-radius:var(--radius); padding:16px; color:inherit; transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.lx-tile:hover{transform:translateY(-4px); box-shadow:var(--shadow); border-color:var(--brand); text-decoration:none}

/* ---------- questions ---------- */
.lx-qs{display:grid; gap:14px}
@media(min-width:760px){.lx-qs{grid-template-columns:repeat(3,1fr)}}
.lx-q{background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:22px}
.lx-q h4{margin:0 0 8px; font-size:.96rem; letter-spacing:-.01em}
.lx-q p{margin:0; font-size:.88rem; color:var(--muted); line-height:1.55}

/* ---------- closing band ---------- */
.lx-close{
  position:relative; overflow:hidden; text-align:center; color:#fff; padding:72px 0;
  background:radial-gradient(760px 320px at 50% 0%, rgba(224,138,34,.3) 0%, transparent 62%), var(--ink);
}
.lx-close::after{content:''; position:absolute; inset:0; background-image:var(--lx-grain); opacity:.45; mix-blend-mode:overlay; pointer-events:none}
.lx-close > .wrap{position:relative; z-index:1}
.lx-close h2{font-family:'Bricolage Grotesque',serif; font-weight:800; font-size:clamp(1.9rem,5vw,3rem); letter-spacing:-.04em; margin:0 0 12px}
.lx-close p{color:rgba(255,255,255,.76); max-width:46ch; margin:0 auto 26px}

/* ---------- scroll reveal ---------- */
.lx-rise{opacity:0; transform:translateY(22px)}
.lx-rise.seen{opacity:1; transform:none; transition:opacity .6s cubic-bezier(.2,.7,.3,1), transform .6s cubic-bezier(.2,.7,.3,1)}
.lx-rise.d1{transition-delay:.07s}.lx-rise.d2{transition-delay:.14s}
.lx-rise.d3{transition-delay:.21s}.lx-rise.d4{transition-delay:.28s}

/* ---------- reduced motion: everything holds still, nothing hides ---------- */
@media(prefers-reduced-motion:reduce){
  .lx-phone,.lx-wave i,.lx-recdot,.lx-caret{animation:none !important}
  .lx-phone{transform:none}
  .lx-rise{opacity:1; transform:none}
  .lx-line,.lx-chip{opacity:1; transform:none}
  .lx-tile:hover{transform:none}
}
