/* Genplan public landing: progressive visual polish without layout shifts.
   Effects are decorative; text and controls are always usable without JavaScript. */
.landing-v21 .marketing-hero{
  position:relative;isolation:isolate;overflow:hidden;
  background:radial-gradient(ellipse 62% 85% at 94% 17%,rgba(202,244,173,.35),transparent 72%),
    radial-gradient(ellipse 58% 75% at -13% 83%,rgba(210,237,214,.30),transparent 75%),
    linear-gradient(160deg,#fcfefa 0%,#f5faf3 100%);
}
.landing-v21 .marketing-hero::before{
  content:"";position:absolute;z-index:-1;inset:0;pointer-events:none;
  background-image:radial-gradient(#568d69 0.8px,transparent 0.8px);
  background-size:24px 24px;opacity:.075;
  mask-image:linear-gradient(90deg,transparent 24%,#000 100%);
}
.landing-v21 .marketing-hero::after{
  content:"";position:absolute;z-index:-1;right:-150px;top:6%;width:540px;height:540px;
  border:1px solid rgba(49,129,82,.10);border-radius:50%;pointer-events:none;
  box-shadow:0 0 0 65px rgba(70,152,91,.035),0 0 0 150px rgba(70,152,91,.022);
}
.landing-v21 .hero-art{
  isolation:isolate;will-change:transform;
  box-shadow:0 38px 88px rgba(21,74,45,.19),0 3px 14px rgba(21,74,45,.06);
}
.landing-v21 .hero-art::after{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:3;
  border-radius:17px;
  background:radial-gradient(260px circle at var(--gp-spot-x,50%) var(--gp-spot-y,45%),rgba(228,255,193,.19),transparent 75%);
  transition:opacity .25s ease;
}
.landing-v21 .hero-art .floating-detail{
  box-shadow:0 22px 55px rgba(18,53,32,.20),0 0 0 1px rgba(40,113,60,.08);
}
.landing-v21 .hero-kicker .pulse{box-shadow:0 0 0 4px rgba(100,196,107,.10)}
.landing-v21 .primary-btn,.landing-v21 .outline-btn{
  position:relative;overflow:hidden;transition:background-color .22s ease,box-shadow .22s ease,transform .22s ease;
}
.landing-v21 .primary-btn:hover,.landing-v21 .outline-btn:hover{transform:translateY(-2px)}
.landing-v21 .primary-btn:hover{box-shadow:0 12px 30px rgba(30,104,66,.22)}
.landing-v21 .feature-card,.landing-v21 .audience-card,.landing-v21 .billing-card{
  transition:transform .25s cubic-bezier(.21,.7,.25,1),box-shadow .25s ease,border-color .25s ease;
}
.landing-v21 .feature-card:hover,.landing-v21 .audience-card:hover{
  transform:translateY(-5px);border-color:#b4d6bf;
  box-shadow:0 19px 42px rgba(30,75,43,.09);
}
.landing-v21 .billing-card:hover{transform:translateY(-4px);box-shadow:0 22px 42px rgba(29,68,40,.09)}
.landing-v21 .feature-icon{transition:transform .22s ease,background-color .22s ease}
.landing-v21 .feature-card:hover .feature-icon{transform:rotate(-4deg) scale(1.06);background:#e0f5d0}
.landing-v21 .demo-plot{transition:filter .22s ease,transform .22s ease,box-shadow .22s ease}
.landing-v21 .demo-plot:hover{transform:translateY(-2px);z-index:1;box-shadow:0 6px 14px rgba(27,73,44,.12)}
.landing-v21 .demo-plot:focus-visible{outline:3px solid #155f40;outline-offset:2px;z-index:2}
.landing-v21 .faq-items details[open] summary{color:#187448}
.landing-v21 .faq-items summary:hover{color:#187448}
.landing-v21 .code-card{position:relative;transition:box-shadow .25s ease,transform .25s ease}
.landing-v21 .code-card:hover{box-shadow:0 23px 56px rgba(13,48,27,.17);transform:translateY(-3px)}
.gp-cms-list{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 26px}
.gp-cms-list span{display:inline-flex;align-items:center;min-height:31px;border-radius:8px;border:1px solid #cfe3d0;background:#eef7e9;color:#426f4e;font-size:11px;font-weight:750;padding:5px 10px}
@media(min-width:821px){
  .landing-v21 .code-foot{flex-wrap:wrap}
}
@media(prefers-reduced-motion:no-preference){
  @keyframes gp-rise{from{opacity:0;transform:translateY(17px)}to{opacity:1;transform:translateY(0)}}
  @keyframes gp-art-in{from{opacity:0;transform:translateY(22px) rotate(-2deg) scale(.97)}to{opacity:1;transform:translateY(0) rotate(-.7deg) scale(1)}}
  @keyframes gp-selected-glow{0%,100%{box-shadow:inset 0 0 0 2px #ffffff55}50%{box-shadow:inset 0 0 0 3px rgba(244,255,219,.94),0 0 0 3px rgba(111,195,105,.18)}}
  @keyframes gp-card-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
  .landing-v21 .hero-copy{animation:gp-rise .75s .05s both cubic-bezier(.2,.7,.2,1)}
  .landing-v21 .marketing-art{animation:gp-art-in 1s .15s both cubic-bezier(.2,.7,.2,1)}
  .landing-v21 .hero-art .floating-detail{animation:gp-card-float 6.5s ease-in-out infinite}
  .landing-v21 .art-plots>.art-lot:nth-child(6){animation:gp-selected-glow 3.9s ease-in-out infinite}
  .landing-v21.gp-effects-ready .gp-reveal{opacity:0;transform:translateY(19px);transition:opacity .6s ease,transform .6s cubic-bezier(.21,.7,.25,1);transition-delay:var(--gp-delay,0ms)}
  .landing-v21.gp-effects-ready .gp-reveal.gp-visible{opacity:1;transform:translateY(0)}
}
@media(max-width:720px){
  .landing-v21 .marketing-hero::after{right:-245px;width:440px;height:440px}
  .gp-cms-list{gap:6px}
  .gp-cms-list span{font-size:10px}
}
@media(prefers-reduced-motion:reduce){
  .landing-v21 .hero-copy,.landing-v21 .marketing-art,.landing-v21 .hero-art .floating-detail,.landing-v21 .art-plots>.art-lot:nth-child(6){animation:none!important}
  .landing-v21 .primary-btn,.landing-v21 .outline-btn,.landing-v21 .feature-card,.landing-v21 .audience-card,.landing-v21 .billing-card,.landing-v21 .feature-icon,.landing-v21 .demo-plot,.landing-v21 .code-card{transition:none!important;transform:none!important}
  html{scroll-behavior:auto}
}
