/* NewCore Living Core Hero - styles (glass, keyframes). Scoped to #42a markup.
   Ported from the Lovable export's "v47" redesign (living-core-47a.css) -
   upgrades this file from the earlier "v42" build. The #42a/nc42-* naming
   here predates that upgrade; kept as-is since it's just an id, not a
   visual difference, and renaming it would be pure unrelated churn. */

/* First-paint state. This is present in the HTML before the script runs, so
   the construction never flashes in its completed state while it loads. */
.nc42-prepared .r47-sg,
.nc42-prepared .r42-ty,
.nc42-prepared .r42-tx,
.nc42-prepared .r42-tx2,
.nc42-prepared .r42-cap,
.nc42-prepared .r42-out,
.nc42-prepared .r42-conn{opacity:0;stroke-dashoffset:100}
.nc42-prepared .r42-frame{opacity:0;transform:translateY(-16px)}
.nc42-prepared .r42-glass{opacity:0;transform:translateY(-10px)}
.nc42-prepared .r42-lens,.nc42-prepared .r42-light{opacity:0}
.nc42-prepared .r42-ring{opacity:0;transform:scale(.62)}
.nc42-prepared .r42-diag{opacity:0;transform:scale(0)}
.nc42-prepared .r42-entW,.nc42-prepared .r42-entC{opacity:0;transform-origin:50% 50%;transform:scale(.02)}
.nc42-prepared .r42-lgf{fill-opacity:0}
.nc42-prepared .core16{transform:translate(-50%,-50%) scale(.94)!important}

/* Hold every looping CSS animation frozen until the reveal actually starts.
   Several loops (the r42-entW/r42-entC liquid color blobs, the always-on
   flow lines) use negative animation-delay values, so without this they
   start ticking the instant this HTML parses - well before the JS handshake
   (iframe load -> nc42:ready -> nc42:start round trip) completes - and are
   already partway through their cycle by the time the elements containing
   them fade in, which reads as those loops "jumping" or moving unnaturally
   fast. Matches the Lovable source's [data-reveal="prepare"] safety net. */
.nc42-prepared *,
.nc42-prepared *::before,
.nc42-prepared *::after{animation-play-state:paused!important}

/* The one-shot JS-driven flow wave (separate from the always-on CSS-looped
   flow lines above it in the markup) stays hidden by default in every
   state - reduced motion included - and is only ever shown by the JS
   travel() tween while the build is running. */
.r42-fill line,.r42-fill circle{opacity:0}

/* Glass capsule material - light stage (base) and dark stage (x) variants.
   The v47 capsule uses the darker "x" pairing (lg19x/lens19x); lg19/lens19
   alone are kept for parity with the source file but unused here. */
.lg19{position:relative;width:100%;height:100%;border-radius:999px;overflow:hidden;background:radial-gradient(120% 90% at 50% 20%,rgba(255,255,255,0.92),rgba(255,255,255,0.55) 45%,rgba(255,255,255,0.35) 100%),linear-gradient(180deg,rgba(255,255,255,0.5),rgba(255,255,255,0.25) 55%,rgba(255,255,255,0.45));-webkit-backdrop-filter:blur(22px) saturate(1.15);backdrop-filter:blur(22px) saturate(1.15);box-shadow:inset 0 2px 3px rgba(255,255,255,0.95),inset 0 0 0 1.5px rgba(255,255,255,0.55),inset 0 -4px 8px rgba(255,255,255,0.45),inset 0 -1px 2px rgba(92,60,45,0.06),0 0 0 1px rgba(23,23,23,0.10),0 2px 6px rgba(92,60,45,0.08),0 24px 48px rgba(92,60,45,0.13)}
.lg19::before{content:"";position:absolute;left:7%;top:2.5%;width:86%;height:34%;border-radius:999px;background:linear-gradient(180deg,rgba(255,255,255,0.95),rgba(255,255,255,0) 85%);filter:blur(3px);opacity:.8;z-index:2;pointer-events:none}
.lg19::after{content:"";position:absolute;left:14%;bottom:3%;width:72%;height:16%;border-radius:999px;background:linear-gradient(0deg,rgba(255,255,255,0.75),rgba(255,255,255,0) 80%);filter:blur(4px);opacity:.7;z-index:2;pointer-events:none}
.lg19x{background:radial-gradient(120% 90% at 50% 20%,rgba(28,32,34,0.6),rgba(28,32,34,0.52) 45%,rgba(28,32,34,0.46) 100%),linear-gradient(180deg,rgba(255,255,255,0.06),rgba(255,255,255,0.02));border-color:rgba(255,255,255,0.28);box-shadow:inset 0 4px 10px rgba(23,23,23,0.42),inset 0 1px 2px rgba(23,23,23,0.5),inset 0 -1.5px 2px rgba(255,255,255,0.28),0 1px 0 rgba(255,255,255,0.65)}
.lg19x::before{opacity:.04}
.lg19x::after{opacity:.2}
.lens19{position:absolute;left:50%;top:50%;width:56%;aspect-ratio:275/329;transform:translate(-50%,-50%);-webkit-backdrop-filter:blur(7px) saturate(1.55) brightness(1.12);backdrop-filter:blur(7px) saturate(1.55) brightness(1.12);-webkit-mask:url('data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20275%20329%22%3E%3Cpath%20d%3D%22M84.3472%2010.9376C112.507%20-1.21864%20143.442%20-3.0753%20172.92%204.53791C231.02%2019.5483%20274.994%2076.369%20275%20139.978H243.65L243.629%20137.968C243.529%20105.669%20228.147%2075.7916%20203.892%2056.0222C169.215%2027.7558%20120.95%2024.4255%2082.8743%2047.6383C52.4403%2066.1967%2031.2274%20101.743%2031.1524%20139.318L31.0475%20191.419C31.0103%20210.389%2036.3519%20228.403%2046.011%20244.297C70.3907%20284.405%20116.328%20304.197%20161.02%20293.841C208.641%20282.803%20243.941%20240.428%20243.785%20189.088L243.743%20175.615H275V189.761C275.012%20217.561%20266.647%20244.021%20251.741%20266.579C216.314%20320.166%20150.913%20342.335%2091.9129%20320.915C59.0054%20308.975%2032.1648%20285.079%2015.6266%20253.232C5.39253%20233.528%20-0.0186953%20212.319%204.85299e-05%20189.695L0.0378142%20138.65C0.0753021%2083.0924%2035.8503%2031.8724%2084.3472%2010.9376Z%22%20fill%3D%22white%22%2F%3E%3Cpath%20d%3D%22M130.639%2076.6455C163.928%2072.2203%20194.351%2098.7761%20194.42%20134.23L194.588%20222.376C194.6%20228.803%20191.987%20234.143%20187.346%20237.311C182.703%20240.48%20176.551%20240.964%20171.127%20238.123C166.579%20235.74%20163.215%20230.642%20163.197%20224.842L162.873%20134.781C162.824%20120.616%20151.608%20108.474%20137.789%20108.466C122.844%20108.459%20111.513%20121.721%20111.5%20136.718L111.445%20224.373C111.445%20232.941%20105.333%20239.434%2097.4175%20240.016C87.9089%20240.709%2080.0065%20233.255%2080.0244%20223.07L80.2006%20135.45C80.2569%20105.351%20102.498%2080.3836%20130.639%2076.6455Z%22%20fill%3D%22white%22%2F%3E%3C%2Fsvg%3E') center/contain no-repeat;mask:url('data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20275%20329%22%3E%3Cpath%20d%3D%22M84.3472%2010.9376C112.507%20-1.21864%20143.442%20-3.0753%20172.92%204.53791C231.02%2019.5483%20274.994%2076.369%20275%20139.978H243.65L243.629%20137.968C243.529%20105.669%20228.147%2075.7916%20203.892%2056.0222C169.215%2027.7558%20120.95%2024.4255%2082.8743%2047.6383C52.4403%2066.1967%2031.2274%20101.743%2031.1524%20139.318L31.0475%20191.419C31.0103%20210.389%2036.3519%20228.403%2046.011%20244.297C70.3907%20284.405%20116.328%20304.197%20161.02%20293.841C208.641%20282.803%20243.941%20240.428%20243.785%20189.088L243.743%20175.615H275V189.761C275.012%20217.561%20266.647%20244.021%20251.741%20266.579C216.314%20320.166%20150.913%20342.335%2091.9129%20320.915C59.0054%20308.975%2032.1648%20285.079%2015.6266%20253.232C5.39253%20233.528%20-0.0186953%20212.319%204.85299e-05%20189.695L0.0378142%20138.65C0.0753021%2083.0924%2035.8503%2031.8724%2084.3472%2010.9376Z%22%20fill%3D%22white%22%2F%3E%3Cpath%20d%3D%22M130.639%2076.6455C163.928%2072.2203%20194.351%2098.7761%20194.42%20134.23L194.588%20222.376C194.6%20228.803%20191.987%20234.143%20187.346%20237.311C182.703%20240.48%20176.551%20240.964%20171.127%20238.123C166.579%20235.74%20163.215%20230.642%20163.197%20224.842L162.873%20134.781C162.824%20120.616%20151.608%20108.474%20137.789%20108.466C122.844%20108.459%20111.513%20121.721%20111.5%20136.718L111.445%20224.373C111.445%20232.941%20105.333%20239.434%2097.4175%20240.016C87.9089%20240.709%2080.0065%20233.255%2080.0244%20223.07L80.2006%20135.45C80.2569%20105.351%20102.498%2080.3836%20130.639%2076.6455Z%22%20fill%3D%22white%22%2F%3E%3C%2Fsvg%3E') center/contain no-repeat}
.lens19x{-webkit-backdrop-filter:blur(2.5px) saturate(1.3);backdrop-filter:blur(2.5px) saturate(1.3)}
/* Force center logo to solid white, no backdrop tint, blur, brightness, or shadow. */
.r42-lgf{fill:#ffffff!important;filter:none!important}
.lens19,.lens19x{background:#ffffff!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;filter:none!important;box-shadow:none!important}

@keyframes v19-heart{0%,100%{transform:scale(1) rotate(0deg)}7%{transform:scale(1.03,1.022) rotate(.4deg)}14%{transform:scale(.995,.998) rotate(0deg)}21%{transform:scale(1.02,1.014) rotate(-.3deg)}30%{transform:scale(1) rotate(0deg)}}
@keyframes v19-liqPs{0%,100%{transform:translate(-26px,-34px) scale(1,.96);border-radius:63% 37% 56% 44%/44% 64% 36% 56%}16%{transform:translate(28px,-20px) scale(1.18,.78);border-radius:26% 74% 42% 58%/62% 30% 70% 38%}32%{transform:translate(15px,26px) scale(.88,1.16);border-radius:58% 42% 30% 70%/68% 36% 64% 32%}48%{transform:translate(-28px,32px) scale(1.16,.8);border-radius:72% 28% 60% 40%/34% 66% 30% 70%}64%{transform:translate(-9px,-5px) scale(.95,1.05);border-radius:41% 59% 66% 34%/56% 38% 62% 44%}82%{transform:translate(22px,-35px) scale(1.1,.84);border-radius:66% 34% 28% 72%/42% 68% 32% 58%}}
@keyframes v42-liqC{0%,100%{transform:translate(24px,30px) scale(1);border-radius:37% 63% 44% 56%/58% 36% 64% 42%}14%{transform:translate(-26px,22px) scale(1.14,.8);border-radius:70% 30% 55% 45%/38% 62% 30% 70%}30%{transform:translate(-30px,-26px) scale(.9,1.16);border-radius:45% 55% 32% 68%/60% 40% 66% 34%}46%{transform:translate(2px,-4px) scale(1.05);border-radius:52% 48% 58% 42%/46% 58% 42% 54%}62%{transform:translate(26px,-28px) scale(1.12,.84);border-radius:30% 70% 46% 54%/64% 32% 58% 36%}80%{transform:translate(10px,12px) scale(.94,1.08);border-radius:58% 42% 62% 38%/40% 60% 36% 64%}}
@keyframes v42-breath{0%,100%{transform:scale(0.995)}50%{transform:scale(1.005)}}
@keyframes v42-flowL{0%{transform:translateX(0);opacity:0}8%{opacity:1}44%{opacity:1}56%,100%{transform:translateX(690px);opacity:0}}
@keyframes v42-flowR{0%{transform:translateX(0);opacity:0}8%{opacity:1}44%{opacity:1}56%,100%{transform:translateX(-690px);opacity:0}}

@media (prefers-reduced-motion:reduce){svg *,.lg19 *{animation:none!important}}

/* Compositor hints - only while the build is actually running. */
.nc42-running .r47-sg,.nc42-running .r42-ring,.nc42-running .r42-diag,
.nc42-running .r42-cap,.nc42-running .r42-conn,.nc42-running .r42-out{will-change:opacity,transform}
.nc42-running .r42-frame,.nc42-running .r42-glass,.nc42-running .r42-lens,
.nc42-running .r42-light,.nc42-running .r42-entW,.nc42-running .r42-entC{will-change:opacity,transform}
