/* CartaLuna v3.0 — conversion/result UI + lightweight ambient motion. */
:root{
  --v3-card:rgba(31,23,36,.92);
  --v3-card-soft:rgba(42,32,50,.72);
  --v3-gold:#D2A958;
  --v3-gold-soft:rgba(210,169,88,.22);
}

/* Ambient stars. Pure decoration: no layout shift, no pointer capture. */
.cl-v3-ambient{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.cl-v3-spark{position:absolute;width:3px;height:3px;border-radius:50%;background:var(--brass);
  opacity:.18;box-shadow:0 0 12px rgba(210,169,88,.36);animation:v3float var(--dur,13s) ease-in-out infinite alternate}
.cl-v3-spark.cross{width:8px;height:8px;background:transparent;box-shadow:none}
.cl-v3-spark.cross:before,.cl-v3-spark.cross:after{content:"";position:absolute;left:50%;top:50%;background:var(--brass);opacity:.32;transform:translate(-50%,-50%)}
.cl-v3-spark.cross:before{width:8px;height:1px}.cl-v3-spark.cross:after{width:1px;height:8px}
@keyframes v3float{0%{transform:translate3d(0,0,0) rotate(0deg);opacity:.12}50%{opacity:.36}100%{transform:translate3d(var(--dx,10px),var(--dy,-18px),0) rotate(20deg);opacity:.16}}
body>.wrap,body>.legal-foot,body>.home-v3-shell{position:relative;z-index:1}

/* Identity fields used in every calculator. */
.v3-identity{display:grid;gap:14px;margin-bottom:22px}
.v3-field-label{display:block;font:600 9.5px/1 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--brass-dim);margin-bottom:9px}.v3-field-label-empty{visibility:hidden}
.v3-name-input{width:100%;background:var(--night-2);border:1px solid var(--line);color:var(--vellum);
  font:400 18px/1.25 var(--ui);padding:14px 15px;border-radius:2px;transition:.18s}
.v3-name-input:focus{outline:none;border-color:var(--brass);background:var(--night-3)}
.v3-name-input::placeholder{color:var(--vellum-3);opacity:.65}
.v3-gender{display:flex;gap:8px;flex-wrap:wrap}
.v3-gender label{position:relative;cursor:pointer;user-select:none}
.v3-gender input{position:absolute;opacity:0;pointer-events:none}
.v3-gender span{display:inline-flex;align-items:center;gap:8px;padding:9px 13px;border:1px solid var(--line);border-radius:999px;
  color:var(--vellum-2);font:600 12px/1 var(--ui);transition:.18s;background:var(--night-2)}
.v3-gender span:before{content:"";width:9px;height:9px;border-radius:50%;border:1px solid var(--brass-dim);box-shadow:inset 0 0 0 2px var(--night-2)}
.v3-gender input:checked+span{border-color:var(--brass);color:var(--vellum);background:rgba(210,169,88,.08)}
.v3-gender input:checked+span:before{background:var(--brass);border-color:var(--brass)}
.v3-gender input:focus-visible+span{outline:2px solid var(--brass);outline-offset:2px}

/* Personal greeting above a result. */
.result-personal{margin:8px 0 22px;text-align:center}
.result-personal strong{display:block;font:400 32px/1.1 var(--disp);color:var(--vellum);letter-spacing:.01em;text-wrap:balance}
.result-personal strong em{font-style:italic;color:var(--brass)}
.result-personal span{display:block;margin-top:7px;font:13px/1.45 var(--ui);color:var(--vellum-3)}

/* Locked previews: real personalised copy with a fade starting on line 3. */
.v3-preview-intro{margin:28px 0 14px;padding:0 2px}
.v3-preview-intro b{display:block;font:400 23px/1.2 var(--disp);color:var(--vellum);margin-bottom:7px}
.v3-preview-intro p{margin:0;font:14px/1.55 var(--ui);color:var(--vellum-2)}
.preview-card.v3-preview-card{position:relative;overflow:hidden;padding-bottom:17px}
.preview-card.v3-preview-card .chead{margin-bottom:10px}
.v3-preview-copy{position:relative;margin:7px 0 12px;font:15px/1.63 var(--ui);color:var(--vellum-2);
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;overflow:hidden;
  max-height:6.52em;
  -webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 50%,rgba(0,0,0,.86) 64%,rgba(0,0,0,.38) 82%,transparent 100%);
  mask-image:linear-gradient(to bottom,#000 0%,#000 50%,rgba(0,0,0,.86) 64%,rgba(0,0,0,.38) 82%,transparent 100%)}
.v3-preview-copy .v3-hook{color:var(--vellum)}
.preview-lock.v3-unlock{width:100%;margin-top:2px;padding:11px 12px;border:1px solid var(--brass-dim);background:rgba(210,169,88,.035);
  color:var(--brass);font:600 10.5px/1.2 var(--ui);letter-spacing:.04em;text-transform:none;border-radius:999px;cursor:pointer;transition:.18s}
.preview-lock.v3-unlock:hover{border-color:var(--brass);background:rgba(210,169,88,.1)}
.preview-lock.v3-unlock b{margin-right:5px}

/* Strong but restrained final unlock block. */
.wall.v3-wall{margin-top:32px;padding:25px 22px 22px;border-color:var(--brass-dim);background:
  radial-gradient(110% 75% at 50% 0%,rgba(210,169,88,.14),transparent 70%),var(--night-2)}
.wall.v3-wall h3{font-size:27px;text-align:center;margin-bottom:8px;letter-spacing:-.01em}
.wall.v3-wall>p{text-align:center;max-width:43ch;margin:0 auto 16px;color:var(--vellum-2)}
.v3-benefits{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin:0 0 18px}
.v3-benefits span{border:1px solid var(--line-2);padding:7px 9px;border-radius:999px;font:600 10px/1 var(--ui);color:var(--vellum-2);background:rgba(255,255,255,.012)}
.v3-price{text-align:center;margin:0 0 15px}
.v3-price small{display:block;font:600 9px/1 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--vellum-3);margin-bottom:5px}
.v3-price strong{font:400 38px/1 var(--disp);color:var(--brass)}
.v3-wall .pay-inline{margin-top:0}

/* Existing result cards become a little airier in v3. */
#body .card{border-radius:8px}

/* ───────────────────────── Home v3 ───────────────────────── */
body.home-v3{background-image:radial-gradient(90% 65% at 72% 8%,#33233a 0%,#211725 36%,var(--night) 72%);background-attachment:fixed}
.home-v3-shell{max-width:1180px;margin:0 auto;padding:24px 28px 56px}
.v3-nav{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:28px}
.v3-brand{display:flex;align-items:center;gap:10px;font:400 24px/1 var(--disp);letter-spacing:.02em}
.v3-brand svg{width:32px;height:32px}.v3-brand path,.v3-brand circle{stroke:var(--brass);fill:none;stroke-width:1.2}
.v3-lang-slot{min-width:88px;min-height:32px}
.hero-v3{min-height:650px;display:grid;grid-template-columns:minmax(0,1.03fr) minmax(360px,.97fr);gap:58px;align-items:center;position:relative;padding:26px 0 52px}
.hero-v3-copy{max-width:590px;position:relative;z-index:1}
.v3-kicker{font:600 10px/1 var(--mono);letter-spacing:.24em;text-transform:uppercase;color:var(--brass);margin-bottom:16px}
.hero-v3 h1{font:400 clamp(46px,5.7vw,78px)/.96 var(--disp);margin:0 0 18px;letter-spacing:-.015em}
.hero-v3 h1 em{display:block;color:var(--brass);font-style:italic;font-weight:400}
.hero-v3-lead{font:16px/1.65 var(--ui);color:var(--vellum-2);max-width:44ch;margin:0 0 24px}
.hero-v3-form{max-width:520px;padding:22px;border:1px solid var(--line);background:rgba(31,23,36,.82);backdrop-filter:blur(10px);border-radius:12px;box-shadow:0 24px 80px rgba(0,0,0,.18)}
.hero-v3-form .v3-identity{margin-bottom:16px}
.hero-v3-form .dates{margin-bottom:4px}
.hero-v3-form .go{margin-top:15px;border-radius:999px;min-height:54px;font-size:12px}
.hero-v3-form .err{min-height:0}
.hero-v3-form-note{margin:11px 2px 0;font:11.5px/1.45 var(--ui);color:rgba(238,230,221,.62);text-align:center}
.hero-v3-visual{position:relative;display:flex;align-items:center;justify-content:center;min-height:560px;isolation:isolate;z-index:0}
.v3-orbit{position:absolute;border:1px solid rgba(210,169,88,.16);border-radius:50%;animation:v3orbit 13.5s linear infinite;transform-origin:center center;will-change:transform}
.v3-orbit.o1{width:500px;height:500px}.v3-orbit.o2{width:382px;height:382px;animation-duration:18s;animation-direction:reverse}.v3-orbit.o3{width:272px;height:272px;animation-duration:9.6s}
.v3-orbit:after{content:"";position:absolute;width:9px;height:9px;background:var(--brass);border-radius:50%;top:-4.5px;left:50%;box-shadow:0 0 28px rgba(210,169,88,.58)}
@keyframes v3orbit{to{transform:rotate(360deg)}}
.v3-matrix-hero{width:min(500px,100%);filter:drop-shadow(0 32px 58px rgba(0,0,0,.24));animation:v3heroBreath 5.8s ease-in-out infinite}
.v3-matrix-hero .line{fill:none;stroke:var(--brass);stroke-width:1.2;stroke-opacity:.56;stroke-dasharray:560;stroke-dashoffset:560;animation:v3draw 2.2s ease forwards}
.v3-matrix-hero .line.soft{stroke:var(--line-2);stroke-dasharray:4 5;stroke-dashoffset:0;animation:none}
.v3-matrix-hero .node{fill:var(--night-2);stroke:var(--brass);stroke-width:1.3;transform-origin:center;animation:v3node 1.9s ease-in-out infinite alternate}
.v3-matrix-hero text{fill:var(--vellum);font-family:Georgia,serif;font-size:16px;text-anchor:middle;dominant-baseline:middle}
@keyframes v3draw{to{stroke-dashoffset:0}}
@keyframes v3heroBreath{0%,100%{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(0,-10px,0) scale(1.016)}}
@keyframes v3node{0%{filter:drop-shadow(0 0 0 rgba(210,169,88,0));transform:scale(1)}100%{filter:drop-shadow(0 0 12px rgba(210,169,88,.52));transform:scale(1.075)}}
.v3-secondary{border-top:1px solid var(--line);padding-top:24px}
.v3-secondary-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:12px}
.v3-secondary-head h2{font:400 24px/1.1 var(--disp);margin:0}.v3-secondary-head p{font:12.5px/1.45 var(--ui);color:var(--vellum-3);margin:0}
.v3-secondary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.v3-secondary-card{display:flex;align-items:center;gap:12px;min-height:92px;padding:14px 15px;border:1px solid var(--line);border-radius:8px;background:var(--night-2);transition:.18s}
.v3-secondary-card:hover{border-color:var(--brass-dim);transform:translateY(-2px)}
.v3-secondary-card i{font-style:normal;font-size:22px;color:var(--brass)}
.v3-secondary-card b{display:block;font:400 17px/1.2 var(--disp);margin-bottom:3px}.v3-secondary-card span{font:12px/1.35 var(--ui);color:var(--vellum-3)}
.home-v3 .legal-foot{max-width:1180px;margin:0 auto;padding-left:28px;padding-right:28px}

/* SEO pages stay indexable but are intentionally not promoted in the primary UI. */
.v3-seo-entry{display:block;width:1px;height:1px;overflow:hidden;position:absolute;left:-9999px}

@media(max-width:860px){
  .home-v3-shell{padding:18px 18px 46px}.v3-nav{margin-bottom:12px}
  .hero-v3{grid-template-columns:1fr;gap:18px;min-height:0;padding:20px 0 42px}
  .hero-v3-copy{max-width:none}.hero-v3 h1{font-size:clamp(42px,12vw,62px)}
  .hero-v3-lead{font-size:15px;margin-bottom:20px}.hero-v3-form{max-width:none;padding:17px;border-radius:9px}
  .hero-v3-visual{min-height:332px;order:-1;margin:0 auto 18px;opacity:.98}.v3-matrix-hero{width:min(318px,84vw)}
  .v3-orbit.o1{width:308px;height:308px}.v3-orbit.o2{width:246px;height:246px}.v3-orbit.o3{width:176px;height:176px}
  .v3-secondary-grid{grid-template-columns:1fr}.v3-secondary-head{display:block}.v3-secondary-head p{margin-top:5px}
  .home-v3 .legal-foot{padding-left:18px;padding-right:18px}
}
@media(max-width:480px){
  .result-personal strong{font-size:28px}.result-personal{margin-bottom:17px}
  .v3-preview-copy{font-size:14.5px;line-height:1.62;max-height:6.48em}
  .wall.v3-wall{padding:23px 16px 20px;margin-left:-2px;margin-right:-2px}.wall.v3-wall h3{font-size:25px}
  .v3-benefits{gap:6px}.v3-benefits span{font-size:9.5px;padding:6px 8px}
  .home-v3-shell{padding:14px 14px 38px}.v3-brand{font-size:21px}.v3-brand svg{width:29px;height:29px}
  .hero-v3{padding-top:8px}.hero-v3-visual{min-height:292px;margin:0 auto 16px}.v3-matrix-hero{width:min(286px,82vw)}
  .v3-orbit.o1{width:282px;height:282px}.v3-orbit.o2{width:224px;height:224px}.v3-orbit.o3{width:160px;height:160px}
  .hero-v3 h1{font-size:43px}.hero-v3-lead{font-size:14.5px;line-height:1.55}.hero-v3-form{padding:15px}
  .v3-gender{gap:7px}.v3-gender span{padding:8px 11px;font-size:11.5px}.v3-name-input{padding:13px;font-size:16px}
  .hero-v3-form .go{min-height:52px}
}
@media(prefers-reduced-motion:reduce){.cl-v3-spark,.v3-orbit,.v3-matrix-hero .line,.v3-matrix-hero .node{animation:none!important}}
.v3-date-single{font-variant-numeric:tabular-nums;letter-spacing:.035em}

.hero-v3-form .v3-gender{justify-content:flex-start}
@media(max-width:860px){.hero-v3-copy{padding-top:2px}.hero-v3-form-note{font-size:11px}}
@media(max-width:480px){.hero-v3-copy{padding-top:0}.v3-kicker{margin-bottom:12px}.hero-v3 h1{margin-bottom:14px}.hero-v3-form-note{margin-top:10px}.wall.v3-wall h3{text-wrap:balance}}

/* v3.0.2 · hero star: compact mobile composition and softer living motion. */
.hero-node-dot{fill:var(--brass);opacity:.78;filter:drop-shadow(0 0 5px rgba(210,169,88,.56));transform-origin:center;animation:v302DotGlow 2.8s ease-in-out infinite alternate}
.hero-node-dot:nth-of-type(2n){animation-delay:-.9s}.hero-node-dot:nth-of-type(3n){animation-delay:-1.7s}
@keyframes v302DotGlow{0%{opacity:.38;transform:scale(.72)}100%{opacity:1;transform:scale(1.18)}}
.v3-matrix-hero{transform-origin:center center}
@keyframes v3heroBreath{0%{transform:translate3d(-1px,2px,0) rotate(-.10deg) scale(.996)}48%{transform:translate3d(2px,-11px,0) rotate(.16deg) scale(1.017)}100%{transform:translate3d(-1px,1px,0) rotate(-.07deg) scale(1.002)}}
@media(max-width:860px){
  .hero-v3-visual{min-height:304px;margin:0 auto 26px;overflow:visible}
  .v3-matrix-hero{width:min(292px,78vw)}
  .v3-orbit.o1{width:288px;height:288px}.v3-orbit.o2{width:228px;height:228px}.v3-orbit.o3{width:162px;height:162px}
}
@media(max-width:480px){
  .hero-v3{gap:8px}
  .hero-v3-visual{min-height:260px;margin:0 auto 34px;transform:translateY(-2px)}
  .v3-matrix-hero{width:min(252px,70vw)}
  .v3-orbit.o1{width:250px;height:250px}.v3-orbit.o2{width:198px;height:198px}.v3-orbit.o3{width:142px;height:142px}
  .hero-v3-copy{position:relative;z-index:2}
  .v3-kicker{margin-top:0}
}

/* v3.0.2 — hero clarity: language-neutral glyphs instead of question marks. */
.v3-matrix-hero .v3-node-glyph{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI Symbol","Arial Unicode MS",sans-serif;font-size:17px;font-weight:600;fill:var(--brass);opacity:.9}
.v3-matrix-hero text:not(.v3-node-glyph){pointer-events:none}
@keyframes v3orbitFlow{0%{transform:rotate(0deg) scale(1)}32%{transform:rotate(118deg) scale(1.012)}67%{transform:rotate(244deg) scale(.994)}100%{transform:rotate(360deg) scale(1)}}
.v3-orbit{animation-name:v3orbitFlow;animation-timing-function:cubic-bezier(.4,.05,.2,.98)}
.v3-orbit.o2{animation-timing-function:cubic-bezier(.24,.06,.36,1)}
.v3-matrix-hero{animation-name:v3heroFlow}
@keyframes v3heroFlow{0%,100%{transform:translate3d(0,0,0) rotate(0deg) scale(1)}28%{transform:translate3d(2px,-7px,0) rotate(.18deg) scale(1.012)}62%{transform:translate3d(-2px,4px,0) rotate(-.14deg) scale(1.004)}82%{transform:translate3d(1px,-3px,0) rotate(.08deg) scale(1.01)}}
@media(max-width:860px){
  .hero-v3-visual{overflow:hidden;border-radius:24px;min-height:310px;margin:0 auto 26px;width:100%;max-width:390px}
  .v3-matrix-hero{width:min(276px,76vw)}
  .v3-orbit.o1{width:270px;height:270px}.v3-orbit.o2{width:216px;height:216px}.v3-orbit.o3{width:154px;height:154px}
  .hero-v3-copy{position:relative;z-index:2}
}
@media(max-width:480px){
  .hero-v3-visual{min-height:272px;margin:0 auto 30px;max-width:350px}
  .v3-matrix-hero{width:min(250px,72vw)}
  .v3-orbit.o1{width:248px;height:248px}.v3-orbit.o2{width:198px;height:198px}.v3-orbit.o3{width:142px;height:142px}
}

/* v3.0.3 · the central hero matrix stays still; motion lives around it. */
.v3-matrix-hero{animation:none!important;transform:none!important}
.v3-matrix-hero .node{animation:none!important;transform:none!important;filter:none!important}
.hero-node-dot{animation:v303DotGlow 2.35s cubic-bezier(.37,.02,.22,1) infinite alternate}
@keyframes v303DotGlow{0%{opacity:.34;transform:scale(.78)}52%{opacity:.78;transform:scale(1.04)}100%{opacity:1;transform:scale(1.2)}}
.v3-orbit{animation-duration:12.8s}
.v3-orbit.o2{animation-duration:17.2s}.v3-orbit.o3{animation-duration:9.2s}
.cl-v3-spark{animation-duration:var(--dur,10s)}

/* v3.0.4 · Главная: центральная фигура полностью неподвижна.

   Пульсация золотых точек на узлах и быстрые орбиты давали ощущение
   мельтешения в самом центре экрана — там, где человек читает заголовок
   и форму. Убираем движение из центра и оставляем его только по краям:
   дальние орбиты и редкие частицы фона. */
.v3-matrix-hero,
.v3-matrix-hero *{
  animation:none!important;
  animation-name:none!important;
  transform:none!important;
  filter:none!important;
}

/* Точки узлов: без пульсации размера, только очень медленное свечение.
   Размер не меняем — именно скачки масштаба и читаются как дрожь. */
/* Точки узлов лежат внутри фигуры, поэтому общая блокировка гасит и их.
   Возвращаем им единственное разрешённое движение — очень медленное
   свечение без изменения размера: масштаб как раз и читается как дрожь. */
.v3-matrix-hero .hero-node-dot,
.hero-node-dot{
  animation:v304DotBreath 9s ease-in-out infinite alternate!important;
  animation-name:v304DotBreath!important;
  transform:none!important;
}
@keyframes v304DotBreath{ 0%{ opacity:.62 } 100%{ opacity:1 } }

/* Орбиты — вдвое медленнее: раньше полный круг занимал секунд десять,
   и глаз успевал следить за вращением. Теперь это фоновое движение. */
.v3-orbit{ animation-duration:46s!important }
.v3-orbit.o2{ animation-duration:62s!important }
.v3-orbit.o3{ animation-duration:38s!important }

/* Частицы фона: реже, дольше, слабее. Они и есть то самое «мелкое
   красивое движение», ради которого всё затевалось. */
.cl-v3-spark{
  animation-duration:calc(var(--dur,13s) * 2.4)!important;
  opacity:.13;
}


/* v3.0.5 · Hero astrolabe. The instrument itself is completely still.
   Motion is pushed to distant ambient layers so the eye never has to track
   a large moving object while reading the form. */
.v305-astrolabe{width:min(510px,100%);overflow:visible;filter:drop-shadow(0 28px 54px rgba(0,0,0,.18))!important}
.v305-astrolabe .v305-astro-ring,
.v305-astrolabe .v305-astro-main,
.v305-astrolabe .v305-astro-soft,
.v305-astrolabe .v305-center-ring,
.v305-astrolabe .v305-center-star,
.v305-astrolabe .v305-astro-ticks path{
  fill:none;vector-effect:non-scaling-stroke;animation:none!important;transform:none!important
}
.v305-astrolabe .v305-astro-ring{stroke:#6d5634;stroke-width:.85;opacity:.50}
.v305-astrolabe .ring-outer{stroke:#8f6e36;stroke-width:1;opacity:.58}
.v305-astrolabe .ring-soft{stroke:#45394d;opacity:.62}
.v305-astrolabe .v305-astro-main{stroke:#c89b4c;stroke-width:1.15;opacity:.78}
.v305-astrolabe .v305-astro-soft{stroke:#4c4055;stroke-width:.75;opacity:.74}
.v305-astrolabe .v305-astro-ticks path{stroke:#8b6c3b;stroke-width:1;opacity:.72}
.v305-astrolabe .v305-astro-nodes circle{fill:#c89b4c;opacity:.82;filter:drop-shadow(0 0 4px rgba(200,155,76,.24))!important}
.v305-astrolabe .v305-center-ring{stroke:#c89b4c;stroke-width:1.15;opacity:.82}
.v305-astrolabe .v305-center-star{stroke:#c89b4c;stroke-width:1;opacity:.85}
.v305-astrolabe .v305-center-dot{fill:#d7ad5e;opacity:.95;filter:drop-shadow(0 0 7px rgba(210,169,88,.38))!important}

/* A very slow halo shift around the static astrolabe. The SVG never moves. */
.hero-v3-visual:before,.hero-v3-visual:after{
  content:"";position:absolute;left:50%;top:50%;width:3px;height:3px;border-radius:50%;pointer-events:none;z-index:-1;
  background:rgba(220,183,103,.55);opacity:.24
}
.hero-v3-visual:before{
  box-shadow:-224px -98px 0 rgba(220,183,103,.44),198px -136px 0 rgba(234,218,188,.38),224px 78px 0 rgba(200,155,76,.42),-187px 145px 0 rgba(239,230,221,.28),-145px -188px 0 rgba(200,155,76,.36),132px 194px 0 rgba(220,183,103,.34),58px -224px 0 rgba(239,230,221,.28),-238px 20px 0 rgba(239,230,221,.22);
  animation:v305AmbientA 18s ease-in-out infinite alternate!important
}
.hero-v3-visual:after{
  width:2px;height:2px;
  box-shadow:-205px 101px 0 rgba(239,230,221,.34),174px 159px 0 rgba(200,155,76,.38),206px -38px 0 rgba(239,230,221,.26),-101px 205px 0 rgba(200,155,76,.34),-55px -205px 0 rgba(220,183,103,.34),114px -179px 0 rgba(239,230,221,.30);
  animation:v305AmbientB 23s ease-in-out infinite alternate!important
}
@keyframes v305AmbientA{0%{transform:translate(-50%,-50%) translate3d(-2px,2px,0);opacity:.18}55%{opacity:.46}100%{transform:translate(-50%,-50%) translate3d(4px,-5px,0);opacity:.28}}
@keyframes v305AmbientB{0%{transform:translate(-50%,-50%) translate3d(2px,-1px,0);opacity:.14}45%{opacity:.36}100%{transform:translate(-50%,-50%) translate3d(-4px,4px,0);opacity:.22}}

/* Existing decorative orbits remain almost imperceptible. */
.v3-orbit{animation-duration:72s!important;opacity:.34!important}
.v3-orbit.o2{animation-duration:94s!important;opacity:.28!important}
.v3-orbit.o3{animation-duration:58s!important;opacity:.24!important}
.cl-v3-spark{animation-duration:calc(var(--dur,13s) * 3.2)!important;opacity:.11!important}

@media(max-width:860px){.v305-astrolabe{width:min(322px,82vw)}}
@media(max-width:480px){.v305-astrolabe{width:min(286px,78vw)}.hero-v3-visual:before{transform:scale(.82)}.hero-v3-visual:after{transform:scale(.82)}}
@media(prefers-reduced-motion:reduce){.hero-v3-visual:before,.hero-v3-visual:after{animation:none!important}}

/* v3.2 · Date-only acquisition test. The single field is intentionally centered and given
   enough width/air so the form reads as complete rather than as fields removed. */
.hero-v3-form .v32-date-only{max-width:410px;margin:0 auto 16px}
.hero-v3-form .v32-date-only .v3-field-label{text-align:center;margin-bottom:10px}
.hero-v3-form .v32-date-only .v3-date-single{text-align:center;min-height:56px;font-size:17px;letter-spacing:.08em}
@media(max-width:480px){.hero-v3-form .v32-date-only{max-width:none;margin-bottom:13px}.hero-v3-form .v32-date-only .v3-date-single{min-height:54px;font-size:16.5px}}
