/* Platform product-page system (pp-). Shared by the ready-to-run platform pages.
   Derived from the cypress/talon editorial system. Per-page tone via --pp-night-rgb
   and an optional hero photo via --pp-photo on .pp-page. */
@property --border-angle{syntax:'<angle>';initial-value:0deg;inherits:false}
@keyframes border-spin{to{--border-angle:360deg}}
@keyframes pp-drift{from{transform:scale(1.01) translate3d(-0.25%,0,0)}to{transform:scale(1.045) translate3d(0.25%,-0.3%,0)}}
html,body{overflow-x:clip}
.pp-page{--pp-night-rgb:31,18,30;--pp-paper-rgb:255,250,244;--pp-white:#fffaf4;--pp-blush:#e8b3a7;--pp-label:#efd8cf;--pp-frame:#f8efe2;--pp-photo:none}
.pp-hero{position:relative;min-height:720px;padding:9rem 2.5rem 5rem;display:grid;align-items:center;overflow:hidden;background:rgb(var(--pp-night-rgb));isolation:isolate}
.pp-hero::before{content:'';position:absolute;inset:-2%;z-index:-3;background:var(--pp-photo) center 40%/cover no-repeat;animation:pp-drift 34s ease-in-out infinite alternate}
.pp-hero::after{content:'';position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,rgba(var(--pp-night-rgb),.97) 0%,rgba(var(--pp-night-rgb),.86) 45%,rgba(var(--pp-night-rgb),.55) 75%,rgba(var(--pp-night-rgb),.8) 100%)}
.pp-hero-glow{position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 78% 55%,rgba(var(--rose-rgb),.28),transparent 55%),linear-gradient(180deg,transparent 70%,rgba(var(--bg-rgb),1) 100%)}
.pp-hero-inner{width:min(1180px,100%);margin:0 auto;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(330px,.75fr);gap:clamp(3rem,7vw,7rem);align-items:center}
.pp-hero-copy{max-width:680px}
.pp-hero .he{color:var(--pp-label);margin-bottom:1.3rem}
.pp-hero h1{font-family:'Playfair Display',serif;font-size:clamp(2.7rem,5.8vw,5rem);font-weight:400;line-height:1;letter-spacing:-.02em;color:var(--pp-white);margin-bottom:1.6rem}
.pp-hero h1 em{display:block;font-weight:400;color:var(--pp-blush)}
.pp-hero .hero-p{font-size:clamp(1rem,1.6vw,1.15rem);line-height:1.75;color:rgba(var(--pp-paper-rgb),.84);max-width:600px;margin-bottom:1.8rem}
.pp-hero-price{display:inline-flex;align-items:stretch;border:1px solid rgba(var(--pp-paper-rgb),.3);margin-bottom:2rem}
.pp-hero-price span{display:flex;flex-direction:column;gap:.15rem;padding:.7rem 1.2rem}
.pp-hero-price span+span{border-left:1px solid rgba(var(--pp-paper-rgb),.3)}
.pp-hero-price small{font-family:'Outfit',sans-serif;font-size:.56rem;font-weight:500;text-transform:uppercase;letter-spacing:.2em;color:rgba(var(--pp-paper-rgb),.65)}
.pp-hero-price strong{font-family:'Playfair Display',serif;font-size:1.5rem;font-weight:400;line-height:1.1;color:var(--pp-white);font-variant-numeric:tabular-nums}
.pp-actions{display:flex;align-items:center;gap:.9rem;flex-wrap:wrap}
.pp-actions .cta{min-width:210px;text-align:center}
.pp-hero .pp-actions .cta-o{color:var(--pp-white);border-color:rgba(var(--pp-paper-rgb),.55)}
.pp-hero .pp-actions .cta-o:hover{border-color:var(--rose);color:var(--cta-tx)}
.pp-trust{display:flex;gap:1.25rem;flex-wrap:wrap;margin-top:2rem;font-family:'Outfit',sans-serif;font-size:.64rem;line-height:1.5;text-transform:uppercase;letter-spacing:.18em;color:rgba(var(--pp-paper-rgb),.82)}
.pp-trust span{display:flex;align-items:center;gap:.6rem}
.pp-trust span::before{content:'';width:18px;height:1px;background:var(--pp-blush)}
.pp-device-stage{position:relative;min-height:540px;display:flex;justify-content:center;align-items:center}
.pp-device{position:relative;width:min(300px,72vw);padding:9px;background:var(--pp-frame);border:1px solid rgba(var(--pp-paper-rgb),.58);box-shadow:0 34px 90px rgba(var(--pp-night-rgb),.55);z-index:2}
.pp-device img{display:block;width:100%;aspect-ratio:769/1080;object-fit:cover;object-position:top;border:1px solid rgba(var(--pp-night-rgb),.18)}
.pp-device-note{position:absolute;left:-70px;bottom:60px;width:190px;padding:1rem 1.1rem;background:rgba(var(--pp-night-rgb),.94);border:1px solid rgba(var(--pp-paper-rgb),.24);box-shadow:0 18px 50px rgba(var(--pp-night-rgb),.42);z-index:3}
.pp-device-note strong,.pp-device-note span{display:block}
.pp-device-note strong{font-family:'Playfair Display',serif;font-size:1.45rem;font-weight:400;color:var(--pp-white)}
.pp-device-note span{margin-top:.2rem;font-family:'Outfit',sans-serif;font-size:.56rem;text-transform:uppercase;letter-spacing:.18em;color:rgba(var(--pp-paper-rgb),.62)}
.pp-intro{padding:7rem 2.5rem 6rem}
.pp-intro-grid{max-width:1120px;margin:0 auto;display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(3rem,7vw,7rem);align-items:center}
.pp-copy .st{font-size:clamp(2rem,4vw,3.1rem);line-height:1.08;letter-spacing:-.015em;margin-bottom:1.5rem}
.pp-copy p{font-size:1rem;line-height:1.82;color:var(--tx-d);max-width:560px}
.pp-copy p+p{margin-top:1rem}
.pp-proof-stage{position:relative;min-height:600px}
.pp-shot{margin:0;background:var(--bg-card);border:1px solid var(--bdr);box-shadow:0 28px 75px var(--glow-deep);overflow:hidden}
.pp-shot img{display:block;width:100%;height:100%;object-fit:cover;object-position:top}
.pp-shot-main{position:absolute;right:8%;top:0;width:min(330px,62%);height:590px;z-index:2}
.pp-shot-side{position:absolute;left:0;top:90px;width:min(245px,48%);height:460px;z-index:3}
.pp-section{padding:7rem 2.5rem}
.pp-section-alt{background:var(--bg-up);border-top:1px solid var(--bdr);border-bottom:1px solid var(--bdr)}
.pp-inner{max-width:1120px;margin:0 auto}
.pp-section-head{display:grid;grid-template-columns:minmax(0,.8fr) minmax(300px,.55fr);gap:4rem;align-items:end;margin-bottom:3.5rem}
.pp-section-head .st{font-size:clamp(2rem,4vw,3rem);line-height:1.08;margin-bottom:0}
.pp-section-lead{font-size:.98rem;line-height:1.8;color:var(--tx-d)}
.pp-bento{display:grid;grid-template-columns:repeat(12,1fr);gap:1rem}
.pp-card{position:relative;background:var(--bg-card);border:1px solid var(--bdr);padding:2rem;overflow:hidden;transition:transform .5s ease,box-shadow .5s ease,border-image .5s ease}
.pp-card:hover{transform:translateY(-3px);border-image:conic-gradient(from var(--border-angle),transparent 25%,var(--rose) 30%,var(--rose-l) 35%,transparent 40%) 1;animation:border-spin 3s linear infinite;box-shadow:0 0 20px var(--glow-medium),0 20px 50px var(--glow-deep)}
.pp-card h3{font-family:'Playfair Display',serif;font-size:1.4rem;font-weight:400;line-height:1.22;color:var(--cream);margin-bottom:.75rem;text-transform:none;letter-spacing:0}
.pp-card p{font-size:.86rem;line-height:1.72;color:var(--tx-d)}
.pp-card-label{font-family:'Outfit',sans-serif;font-size:.58rem;font-weight:500;text-transform:uppercase;letter-spacing:.25em;color:var(--rose);margin-bottom:.8rem}
.pp-card-wide{grid-column:span 7;min-height:520px;display:grid;grid-template-columns:minmax(0,.78fr) minmax(230px,1fr);gap:2rem;align-items:center}
.pp-card-tall{grid-column:span 5;min-height:520px;display:flex;flex-direction:column}
.pp-card-half{grid-column:span 6;min-height:340px;display:grid;grid-template-columns:minmax(0,.8fr) minmax(180px,.8fr);gap:1.5rem;align-items:center}
.pp-card-third{grid-column:span 4;min-height:220px}
.pp-card-copy{position:relative;z-index:2}
.pp-card-screen{align-self:end;margin:1.5rem 0 -3rem auto;width:min(255px,100%);height:420px;border:1px solid var(--bdr);box-shadow:0 18px 45px var(--glow-deep);overflow:hidden;background:var(--bg-up)}
.pp-card-screen img{width:100%;height:100%;display:block;object-fit:cover;object-position:top}
.pp-card-wide .pp-card-screen{margin:0;width:100%;height:450px}
.pp-card-half .pp-card-screen{margin:0;width:100%;height:300px}
.pp-role-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--bdr);border:1px solid var(--bdr);margin-top:3rem}
.pp-role{background:var(--bg-card);padding:1.8rem}
.pp-role h3{font-size:.64rem;text-transform:uppercase;letter-spacing:.22em;color:var(--rose);margin-bottom:.75rem}
.pp-role p{font-size:.84rem;line-height:1.7;color:var(--tx-d)}
.pp-ba{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--bdr);border:1px solid var(--bdr);margin-top:3rem}
.pp-ba-col{background:var(--bg-card);padding:2.5rem}
.pp-ba-col.after{background:linear-gradient(145deg,var(--bg-card),var(--rose-hover-bg))}
.pp-ba-col h3{font-size:.62rem;text-transform:uppercase;letter-spacing:.25em;color:var(--rose);margin-bottom:1.4rem}
.pp-ba-list{list-style:none;display:flex;flex-direction:column;gap:1rem}
.pp-ba-list li{position:relative;padding-left:1.4rem;font-size:.86rem;line-height:1.65;color:var(--tx-d)}
.pp-ba-list li::before{content:'';position:absolute;left:0;top:.68rem;width:6px;height:1px;background:var(--rose)}
.pp-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:3rem}
.pp-steps.three{grid-template-columns:repeat(3,1fr)}
.pp-step{padding:2.2rem;background:var(--bg-card);border:1px solid var(--bdr)}
.pp-step-num{font-family:'Playfair Display',serif;font-size:2.7rem;color:var(--rose);line-height:1;margin-bottom:2rem}
.pp-step h3{font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--cream);margin-bottom:.7rem}
.pp-step p{font-size:.84rem;line-height:1.7;color:var(--tx-d)}
.pp-roi{margin-top:2.5rem;padding:1.8rem 2rem;background:var(--bg-card);border:1px solid var(--bdr);border-left:3px solid var(--rose)}
.pp-roi p{font-size:.92rem;color:var(--tx-d);line-height:1.7}
.pp-roi strong{color:var(--cream);font-weight:500}
.pp-price-wrap{max-width:920px;margin:3rem auto 0;display:grid;grid-template-columns:1fr 1fr;gap:1rem;text-align:left}
.pp-price-card{padding:2.5rem;background:var(--bg-card);border:1px solid var(--bdr)}
.pp-price-card.primary{border-top:3px solid var(--rose)}
.pp-price-card .pp-price-label{font-family:'Outfit',sans-serif;font-size:.62rem;font-weight:500;text-transform:uppercase;letter-spacing:.25em;color:var(--rose)}
.pp-price-card .pp-price-big{font-family:'Playfair Display',serif;font-size:clamp(3rem,6vw,4.6rem);line-height:1;color:var(--cream);margin:1.1rem 0 .5rem;font-variant-numeric:tabular-nums}
.pp-price-card .pp-price-big small{font-family:'Outfit',sans-serif;font-size:.68rem;font-weight:400;text-transform:uppercase;letter-spacing:.15em;color:var(--tx-f);margin-left:.4rem}
.pp-price-card>p{font-size:.9rem;line-height:1.75;color:var(--tx-d)}
.pp-price-card .includes{margin:1.6rem 0 0;max-width:none;text-align:left}
.pp-price-card .includes li::before{content:'';width:7px;height:1px;top:.7rem;background:var(--rose)}
.pp-price-actions{max-width:920px;margin:1.5rem auto 0;display:flex;gap:.9rem;flex-wrap:wrap}
.pp-license{margin:1.5rem auto 0;font-size:.66rem;line-height:1.7;color:var(--tx-f);font-style:italic;max-width:650px;text-align:center}
.pp-tiers{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1.4rem}
.pp-tier{padding:1.2rem 1.3rem;background:var(--bg);border:1px solid var(--bdr)}
.pp-tier h4{font-family:'Outfit',sans-serif;font-size:.6rem;font-weight:500;text-transform:uppercase;letter-spacing:.22em;color:var(--rose);margin-bottom:.5rem}
.pp-tier strong{display:block;font-family:'Playfair Display',serif;font-size:1.5rem;font-weight:400;color:var(--cream);line-height:1.15}
.pp-tier p{font-size:.8rem;line-height:1.6;color:var(--tx-d);margin-top:.4rem}
.faq-q{width:100%;border:0;background:none;text-align:left;font-family:'Outfit',sans-serif;line-height:1.6}
.faq-q:focus-visible{outline:2px solid var(--rose);outline-offset:8px}
.pp-cta{position:relative;padding:8rem 2.5rem;text-align:center;overflow:hidden;background:rgb(var(--pp-night-rgb));isolation:isolate}
.pp-cta::before{content:'';position:absolute;inset:-2%;z-index:-2;background:var(--pp-photo) center/cover no-repeat}
.pp-cta::after{content:'';position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 50% 100%,rgba(var(--rose-rgb),.3),transparent 60%),rgba(var(--pp-night-rgb),.86)}
.pp-cta h2{font-family:'Playfair Display',serif;font-size:clamp(2.3rem,5vw,3.8rem);font-weight:400;line-height:1.08;color:var(--pp-white);margin-bottom:1rem}
.pp-cta p{max-width:610px;margin:0 auto 2rem;font-size:1rem;line-height:1.75;color:rgba(var(--pp-paper-rgb),.78)}
.pp-cta .pp-actions{justify-content:center}
.pp-cta .pp-contact{margin-top:1.3rem;font-size:.75rem;color:rgba(var(--pp-paper-rgb),.7)}
.pp-cta .pp-contact a{color:var(--pp-white)}
.pp-cta .cta-o{color:var(--pp-white);border-color:rgba(var(--pp-paper-rgb),.55)}
@media(prefers-reduced-motion:reduce){.pp-hero::before{animation:none}.pp-card:hover{animation:none}}
@media(max-width:1000px){.pp-card-wide,.pp-card-tall,.pp-card-half{grid-column:span 12}.pp-card-third{grid-column:span 6}.pp-steps{grid-template-columns:repeat(2,1fr)}.pp-role-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){
  .pp-hero{min-height:auto;padding-top:8.5rem}
  .pp-hero-inner,.pp-intro-grid,.pp-section-head{grid-template-columns:1fr}
  .pp-hero-copy{max-width:720px}
  .pp-device-stage{min-height:auto;margin-top:2rem}
  .pp-device-note{left:auto;right:-10px;bottom:-30px}
  .pp-proof-stage{min-height:auto;display:grid;grid-template-columns:1fr 1fr;gap:1rem}
  .pp-shot-main,.pp-shot-side{position:static;width:100%;height:420px}
}
@media(max-width:760px){
  .pp-hero{padding:8rem 1.5rem 4.5rem}
  .pp-hero::after{background:linear-gradient(180deg,rgba(var(--pp-night-rgb),.92) 0%,rgba(var(--pp-night-rgb),.84) 100%)}
  .pp-actions .cta{width:100%;min-width:0}
  .pp-hero-price{display:flex}
  .pp-hero-price span{flex:1}
  .pp-device{width:min(260px,80vw)}
  .pp-device-note{right:0;bottom:-24px;width:160px}
  .pp-intro{padding:4.5rem 1.5rem 4rem}
  .pp-proof-stage{grid-template-columns:1fr}
  .pp-shot-main,.pp-shot-side{height:380px}
  .pp-section{padding:4.5rem 1.5rem}
  .pp-section-head{gap:1rem;margin-bottom:2.2rem}
  .pp-card{padding:1.5rem}
  .pp-card-wide,.pp-card-half{grid-template-columns:1fr}
  .pp-card-third{grid-column:span 12}
  .pp-card-screen,.pp-card-wide .pp-card-screen,.pp-card-half .pp-card-screen{margin:1.2rem 0 -2.5rem;width:100%;height:320px}
  .pp-card-wide,.pp-card-tall,.pp-card-half{min-height:auto}
  .pp-role-grid,.pp-ba,.pp-steps,.pp-steps.three,.pp-price-wrap,.pp-tiers{grid-template-columns:1fr}
  .pp-ba-col,.pp-price-card{padding:1.8rem 1.5rem}
  .pp-cta{padding:5rem 1.5rem}
}
.faq-item.open .faq-a{max-height:900px}
.pp-card-screen.land,.pp-card-wide .pp-card-screen.land,.pp-card-half .pp-card-screen.land{height:auto;aspect-ratio:16/10}
.pp-card-wide:has(.land){grid-template-columns:1fr;align-content:end;min-height:auto}
.pp-proof-stage.single .pp-shot-main{right:auto;left:50%;transform:translateX(-50%)}
/* Consult / contact pages (2026-09-11): photo hero, photo frames, dark aside, ways grid */
.pp-hero.photo{min-height:620px}
.pp-hero.photo .pp-hero-inner{grid-template-columns:minmax(0,1fr)}
.pp-hero.photo::before{background-position:center 30%}
.pp-hero.photo::after{background:linear-gradient(90deg,rgba(var(--pp-night-rgb),.96) 0%,rgba(var(--pp-night-rgb),.86) 38%,rgba(var(--pp-night-rgb),.42) 72%,rgba(var(--pp-night-rgb),.25) 100%)}
.pp-photo{margin:0;border:2px solid var(--cream);box-shadow:0 28px 75px var(--glow-deep);overflow:hidden;background:var(--bg-card)}
.pp-photo img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}
.pp-photo.portrait img{aspect-ratio:1/1;object-position:top}
.pp-intro-grid .pp-photo{max-width:560px;justify-self:end}
.pp-bento.four .pp-card-third{grid-column:span 3}
.pp-card-full{grid-column:span 12}
.pp-price-wrap.one{grid-template-columns:minmax(0,620px);justify-content:center}
.pp-price-card .pp-price-foot{margin-top:1.4rem;font-size:.78rem;line-height:1.65;color:var(--tx-f)}
.pp-price-card .cta{margin-top:1.6rem;display:inline-block}
.pp-role[href]{display:block;text-decoration:none;color:inherit;transition:background .3s}
.pp-role[href]:hover{background:var(--bg-card-h)}
.pp-role.current{box-shadow:inset 0 3px 0 var(--rose)}
.pp-role-name{font-family:'Playfair Display',serif;font-size:1.15rem;line-height:1.3;color:var(--cream);margin-bottom:.6rem}
.pp-role-price{margin-top:1.1rem;font-family:'Playfair Display',serif;font-size:1.35rem;color:var(--cream)}
.pp-role-price small{font-family:'Outfit',sans-serif;font-size:.58rem;font-weight:400;text-transform:uppercase;letter-spacing:.14em;color:var(--tx-f);margin-left:.4rem}
.pp-essay p{font-size:.98rem;line-height:1.9;color:var(--tx);max-width:720px}
.pp-essay p+p{margin-top:1.3rem}
.pp-essay strong{color:var(--cream);font-weight:500}
.pp-founder{display:grid;grid-template-columns:260px minmax(0,1fr);gap:3rem;align-items:start;margin-top:3rem}
.pp-contact-grid{max-width:1120px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);gap:3.5rem;align-items:start}
.pp-aside{position:sticky;top:110px;background:rgb(var(--pp-night-rgb));border:2px solid var(--cream);padding:2.2rem;color:rgba(var(--pp-paper-rgb),.82)}
.pp-aside .pp-card-label{color:var(--pp-blush)}
.pp-aside h3{font-family:'Playfair Display',serif;font-size:1.5rem;font-weight:400;line-height:1.2;color:var(--pp-white);margin-bottom:.8rem;text-transform:none;letter-spacing:0}
.pp-aside p{font-size:.88rem;line-height:1.7;margin-bottom:1.2rem}
.pp-aside .cta{display:block;text-align:center}
.pp-aside a:not(.cta){color:var(--pp-white)}
.pp-aside hr{border:0;border-top:1px solid rgba(var(--pp-paper-rgb),.2);margin:1.6rem 0}
.pp-aside ul{list-style:none;display:flex;flex-direction:column;gap:.7rem}
.pp-aside li{position:relative;padding-left:1.3rem;font-size:.84rem;line-height:1.6}
.pp-aside li::before{content:'';position:absolute;left:0;top:.65rem;width:7px;height:1px;background:var(--pp-blush)}
.pp-form .field label{font-size:.62rem;font-weight:500;text-transform:uppercase;letter-spacing:.3em;color:var(--rose)}
@media(max-width:1000px){.pp-bento.four .pp-card-third{grid-column:span 6}}
@media(max-width:900px){.pp-intro-grid .pp-photo{max-width:none;justify-self:stretch}.pp-contact-grid{grid-template-columns:1fr}.pp-aside{position:static}}
@media(max-width:760px){.pp-bento.four .pp-card-third{grid-column:span 12}.pp-founder{grid-template-columns:1fr}.pp-founder img{max-width:240px}.pp-hero.photo{min-height:auto}.pp-photo img{aspect-ratio:16/11}}
