/*
Theme Name: Eclipse Web Solutions
Author: Eclipse Web Solutions
Description: Native editable WordPress block theme with animated eclipse artwork.
Version: 2.11.2
Requires at least: 6.4
Requires PHP: 7.4
Text Domain: eclipse-web-solutions
*/
:root{--violet:#c63cff;--blue:#14a8ff;--black:#020204;--muted:#babac4}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--black);color:#fff;font-family:Arial,Helvetica,sans-serif;overflow-x:hidden}a{color:inherit;text-decoration:none}
.topbar{position:relative;z-index:20;min-height:104px;padding:24px clamp(20px,3.1vw,44px);background:#000}.topbar .wp-block-navigation__container{gap:clamp(18px,3vw,36px)}.topbar .wp-block-navigation a{font-size:.78rem}.brand-link{display:block}.exact-header-logo{display:block;width:285px;max-width:42vw;height:72px;background:url('assets/images/eclipse-header-logo.png') center/contain no-repeat}
.eclipse-editor-page,.eclipse-editor-page>.wp-block-group{margin-block-start:0}.hero{position:relative;overflow:hidden;min-height:970px;padding:0 20px 34px!important;background:radial-gradient(circle at 50% 32%,#11051b 0,transparent 28%),#010103;display:flex!important;flex-direction:column;align-items:center;justify-content:flex-start!important}.stars,.stars:before,.stars:after{position:absolute;inset:0;content:"";pointer-events:none}.stars{z-index:0;background-image:radial-gradient(circle,rgba(255,255,255,.9) 0 1px,transparent 1.8px),radial-gradient(circle,rgba(220,235,255,.68) 0 .8px,transparent 1.7px);background-size:255px 218px,386px 334px;background-position:9px 17px,61px 42px;filter:drop-shadow(0 0 2px rgba(255,255,255,.65));opacity:.58}.stars:before{background-image:radial-gradient(circle,rgba(255,255,255,.96) 0 1.5px,transparent 3px),radial-gradient(circle,rgba(210,230,255,.82) 0 1px,transparent 2.5px);background-size:562px 446px,298px 394px;background-position:80px 31px,21px 92px;animation:twinkleBright 5.8s ease-in-out infinite alternate}.stars:after{background:radial-gradient(circle at 14% 28%,rgba(255,255,255,.95) 0 1px,transparent 4px),radial-gradient(circle at 76% 63%,rgba(255,255,255,.85) 0 1px,transparent 4px),radial-gradient(circle at 45% 82%,rgba(255,255,255,.75) 0 1px,transparent 4px);animation:oddTwinkle 7.4s ease-in-out infinite}
.eclipse-wrap{position:relative;flex:0 0 auto;width:660px;max-width:none;height:570px;margin-top:0;transform-origin:top center}.spark-canvas{position:absolute;inset:0;width:660px;height:570px;z-index:2;pointer-events:none;filter:contrast(1.25) saturate(1.25)}.eclipse{position:absolute;left:87px;top:45px;width:455px;height:455px;border-radius:50%;background:#000;box-shadow:-14px -6px 11px #c63cff,12px 8px 13px #116dff,0 0 24px #882cff,inset 0 0 35px #05000a}.eclipse:before{content:"";position:absolute;inset:-3px;border-radius:50%;border:3px solid transparent;border-top-color:#eea4ff;border-left-color:#c238ff;border-right-color:#168fff;border-bottom-color:#5143ff;filter:drop-shadow(0 0 9px #c539ff) drop-shadow(4px 5px 10px #086fff)}.flare{position:absolute;width:15px;height:15px;border-radius:50%;right:31px;top:84px;background:#fff;box-shadow:0 0 8px 4px #fff,0 0 22px 13px #cf39ff,0 0 50px 28px #7b16b8;animation:flare 2.5s ease-in-out infinite}.exact-ew-logo{position:absolute;left:50%;top:50%;width:330px;height:170px;transform:translate(-50%,-50%);background:url('assets/images/eclipse-ew-logo.png') center/contain no-repeat;z-index:3}
.hero-copy{position:relative;z-index:4;width:min(719px,92vw);margin-top:-26px!important;gap:0!important}.editor-wordmark,.editor-solutions{margin-left:auto!important;margin-right:auto!important;background-position:center;background-repeat:no-repeat;background-size:contain}.editor-wordmark{width:100%!important;max-width:719px!important;aspect-ratio:719/91;margin-top:0!important;margin-bottom:0!important;background-image:url('assets/images/eclipse-wordmark.png')}.editor-solutions{width:100%!important;max-width:719px!important;aspect-ratio:719/26;margin-top:18px!important;margin-bottom:0!important;background-image:url('assets/images/web-solutions-wordmark.png')}.editor-wordmark img,.editor-solutions img{display:block;width:100%;height:100%;opacity:0}.trinity{width:min(530px,100%)!important;margin:34px auto 32px!important;font-size:1rem;letter-spacing:.42em;white-space:nowrap}.trinity em{font-style:normal;margin:0 16px}.editor-cta-row{margin:0!important}.editor-cta-row .cta{position:relative;isolation:isolate;overflow:hidden;width:min(414px,85vw);padding:0;border:1px solid transparent;border-radius:999px;background:linear-gradient(#020204,#020204) padding-box,linear-gradient(90deg,var(--violet),var(--blue)) border-box!important;box-shadow:0 0 12px #8d2cff44}.editor-cta-row .cta:after{content:"";position:absolute;z-index:2;top:-45%;bottom:-45%;left:-38%;width:24%;pointer-events:none;transform:skewX(-24deg) translateX(-420%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.92),rgba(101,192,255,.78),transparent);filter:blur(1px);animation:ctaFlash 6.5s ease-in-out infinite}.editor-cta-row .cta .wp-block-button__link{position:relative;z-index:1;display:grid;place-items:center;min-height:56px;padding:0 24px;background:transparent;color:#fff;font-size:.95rem;letter-spacing:.09em}.down{margin:32px 0 0!important;font-size:2rem;line-height:1;color:#cc39ff;text-shadow:0 0 12px #b92cff;animation:bounce 2s infinite}
.services{position:relative;overflow:hidden;min-height:590px;margin:0!important;padding:52px 5% 90px!important;background:#020204;text-align:center}.section-head{position:relative;z-index:2}.section-head>p:first-child{margin:0}.section-head>p:first-child span{color:var(--violet);letter-spacing:.18em;font-size:.8rem}.section-head h1{font-size:2.35rem;line-height:1.12;font-weight:350;margin:13px 0 24px}.section-head h1 strong{font-weight:350;background:linear-gradient(90deg,var(--violet),var(--blue));color:transparent;background-clip:text}.section-head>p:last-child{color:var(--muted);line-height:1.6;font-size:.95rem;margin:0}.cards{position:relative;z-index:2;max-width:800px;margin:34px auto 0!important;gap:26px!important}.card{position:relative;background:linear-gradient(145deg,#0e0f13,#050609);border:1px solid #292a30;border-radius:13px;padding:27px 20px 24px;min-height:245px;box-shadow:0 20px 30px #000;transition:.3s}.card:after{content:"";position:absolute;left:20%;right:20%;bottom:-2px;height:2px;background:linear-gradient(90deg,transparent,var(--violet),var(--blue),transparent);filter:drop-shadow(0 0 7px #7a2cff)}.card:hover{transform:translateY(-8px);border-color:#64358a}.card .icon{height:82px;margin:0!important;display:grid;place-items:center;font-family:monospace;font-size:3.4rem;color:#ae3cff;text-shadow:0 0 15px #5622ff}.card h2{font-size:1rem;margin:9px}.card p:last-child{font-size:.79rem;line-height:1.7;color:#c1c1c8}.wave{position:absolute;top:-20px;width:35%;height:150px;background-image:radial-gradient(#a52cff 1px,transparent 1.5px);background-size:9px 9px;mask-image:linear-gradient(to bottom,#000,transparent);opacity:.55;animation:wave 5s ease-in-out infinite}.wave.left{left:-8%;transform:skewY(8deg)}.wave.right{right:-8%;background-image:radial-gradient(#1489ff 1px,transparent 1.5px);transform:skewY(-8deg)}.anchor-section{min-height:35vh;display:grid;place-items:center;border-top:1px solid #111}.contact{text-align:center;padding:90px 20px 120px;border-top:1px solid #15151b;background:radial-gradient(circle at 50% 8%,rgba(126,42,255,.14),transparent 38%),#020204}.contact>h2{margin:10px 0 12px;font-size:clamp(2rem,5vw,3.2rem);font-weight:350}.contact>p{margin:0;color:var(--violet);font-size:.78rem;letter-spacing:.17em}.eclipse-contact-form{width:min(860px,94vw);margin:38px auto 0;padding:30px;border:1px solid #2d2e38;border-radius:22px;background:linear-gradient(145deg,rgba(13,14,20,.96),rgba(4,5,9,.96));box-shadow:0 24px 55px rgba(0,0,0,.48),0 0 24px rgba(126,42,255,.08);text-align:left}.contact-field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.eclipse-contact-form label{display:block}.eclipse-contact-form label span{display:block;margin:0 0 8px;color:#d5d5dd;font-size:.76rem;letter-spacing:.08em}.eclipse-contact-form input,.eclipse-contact-form textarea{display:block;width:100%;border:1px solid #343540;border-radius:11px;background:#07080d;color:#fff;font:inherit;padding:13px 14px;outline:none;transition:border-color .2s,box-shadow .2s}.eclipse-contact-form input:focus,.eclipse-contact-form textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(20,168,255,.12),0 0 16px rgba(20,168,255,.12)}.contact-message-field{margin-top:18px}.eclipse-contact-form textarea{min-height:150px;resize:vertical}.contact-submit{display:block;margin:24px auto 0;padding:13px 30px;border:1px solid transparent;border-radius:999px;background:linear-gradient(#07080d,#07080d) padding-box,linear-gradient(90deg,var(--violet),var(--blue)) border-box;color:#fff;font-weight:600;letter-spacing:.1em;cursor:pointer;box-shadow:0 0 14px rgba(126,42,255,.24)}.contact-submit:hover,.contact-submit:focus-visible{box-shadow:0 0 20px rgba(20,168,255,.34);outline:none}.contact-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}.contact-notice{width:min(860px,94vw);margin:24px auto 0!important;padding:13px 18px;border-radius:10px;font-size:.9rem!important;letter-spacing:0!important}.contact-success{border:1px solid #2f8b61;background:rgba(29,104,71,.18);color:#b8f4d7!important}.contact-error{border:1px solid #9d4658;background:rgba(120,39,57,.18);color:#ffd0d8!important}@media(max-width:620px){.contact{padding:70px 14px 90px}.eclipse-contact-form{width:100%;padding:22px 16px}.contact-field-grid{grid-template-columns:1fr;gap:14px}.contact-message-field{margin-top:14px}.eclipse-contact-form textarea{min-height:130px}}
@keyframes flare{50%{transform:scale(1.4);opacity:.8}}@keyframes twinkleBright{from{opacity:.12}to{opacity:.72}}@keyframes oddTwinkle{0%,18%,46%,72%,100%{opacity:.12}9%,34%,61%,86%{opacity:.9}}@keyframes bounce{50%{transform:translateY(8px)}}@keyframes wave{50%{translate:0 8px}}@keyframes ctaFlash{0%,86%{transform:skewX(-24deg) translateX(-420%);opacity:0}88%{opacity:1}97%{transform:skewX(-24deg) translateX(690%);opacity:.9}98%,100%{transform:skewX(-24deg) translateX(690%);opacity:0}}
@media(max-width:820px){.topbar .wp-block-navigation{display:none}.topbar{min-height:82px}.exact-header-logo{width:242px;height:61px}.hero{min-height:860px}.eclipse-wrap{transform:scale(.78);margin-bottom:-125px}.hero-copy{margin-top:0!important}.cards{max-width:600px}.trinity{font-size:.8rem;letter-spacing:.3em}.trinity em{margin:0 8px}}
@media(max-width:520px){.topbar{min-height:72px;padding:12px 18px}.exact-header-logo{width:205px;height:52px}.hero{min-height:700px;padding-bottom:28px!important}.eclipse-wrap{transform:scale(.58);margin-bottom:-235px}.hero-copy{width:94vw;margin-top:0!important}.editor-solutions{margin-top:10px!important}.trinity{width:82vw!important;margin:22px auto 22px!important;font-size:.62rem;letter-spacing:.2em}.trinity em{margin:0 4px}.editor-cta-row .cta{width:72vw}.editor-cta-row .cta .wp-block-button__link{min-height:44px;font-size:.7rem;padding:0 12px}.down{margin-top:22px!important;font-size:1.7rem}.services{padding:42px 5% 70px!important}.section-head h1{font-size:1.9rem}.section-head>p:last-child br{display:none}.cards{display:flex!important;flex-direction:column;max-width:360px}.card{min-height:230px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;scroll-behavior:auto!important;transition:none!important}}
.editor-styles-wrapper{background:#020204;color:#fff}.editor-styles-wrapper .hero{min-height:900px}.editor-styles-wrapper .eclipse-wrap{pointer-events:none}.editor-styles-wrapper .wp-block-navigation{color:#fff}

/* Final sparse sky and flowing service waves. Hide stale saved shooting-star markup too. */
.shooting-star,.shooting-star:before,.shooting-star:after{display:none!important;visibility:hidden!important;animation:none!important}
.stars{background-image:radial-gradient(circle,rgba(255,255,255,.86) 0 1px,transparent 1.8px),radial-gradient(circle,rgba(220,235,255,.6) 0 .8px,transparent 1.7px);background-size:360px 308px,546px 472px;background-position:18px 34px,122px 84px;opacity:.5;filter:drop-shadow(0 0 1.5px rgba(255,255,255,.55))}
.stars:before{background-image:radial-gradient(circle,rgba(255,255,255,.94) 0 1.4px,transparent 3px);background-size:794px 630px;background-position:160px 62px;animation:rareTwinkleOne 8.7s ease-in-out infinite}
.stars:after{background:radial-gradient(circle at 14% 28%,rgba(255,255,255,.95) 0 1px,transparent 4px),radial-gradient(circle at 76% 63%,rgba(255,255,255,.82) 0 1px,transparent 4px);animation:rareTwinkleTwo 11.3s ease-in-out 2.1s infinite}
.services{margin-top:-24px!important;padding-top:42px!important}
.wave{top:-46px;width:48%;height:210px;border-radius:50% 50% 42% 58%/68% 62% 38% 32%;background-size:10px 10px;mask-image:radial-gradient(ellipse 78% 52% at 50% 48%,#000 15%,rgba(0,0,0,.92) 46%,transparent 75%);transform-origin:center;opacity:.62}
.wave.left{left:-15%;transform:rotate(7deg) skewY(4deg);animation:waveLeft 6.8s ease-in-out infinite}
.wave.right{right:-15%;transform:rotate(-7deg) skewY(-4deg);animation:waveRight 7.6s ease-in-out infinite}
@keyframes rareTwinkleOne{0%,30%,48%,76%,100%{opacity:.08}38%{opacity:.7}84%{opacity:.42}}
@keyframes rareTwinkleTwo{0%,24%,54%,79%,100%{opacity:.08}33%{opacity:.8}66%{opacity:.48}88%{opacity:.72}}
@keyframes waveLeft{0%,100%{translate:0 0;rotate:-1deg;scale:1 .9}50%{translate:12px 14px;rotate:3deg;scale:1.08 1.04}}
@keyframes waveRight{0%,100%{translate:0 0;rotate:1deg;scale:1 .92}50%{translate:-12px 16px;rotate:-3deg;scale:1.08 1.05}}
@media(max-width:520px){.services{margin-top:-16px!important;padding-top:34px!important}.wave{top:-28px;height:130px;width:62%}}

/* Click-to-flip About Eclipse panel. */
.about-flip{width:min(860px,90vw);height:330px;min-height:0;margin:70px auto!important;padding:0!important;border:0;perspective:1400px;cursor:pointer;outline:none}.about-flip-inner{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .8s cubic-bezier(.2,.72,.25,1)}.about-flip.is-flipped .about-flip-inner{transform:rotateY(180deg)}.about-face{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:46px clamp(24px,6vw,76px)!important;border:1px solid #292a36;border-radius:24px;overflow:hidden;backface-visibility:hidden;background:radial-gradient(circle at 50% 20%,rgba(126,42,255,.2),transparent 48%),linear-gradient(145deg,#0d0e14,#040509);box-shadow:0 24px 60px rgba(0,0,0,.55),inset 0 0 36px rgba(130,50,255,.07)}.about-face:before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:linear-gradient(120deg,var(--violet),transparent 42%,var(--blue));mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude;pointer-events:none}.about-face h2{position:relative;margin:0 0 18px;font-size:clamp(1.8rem,4vw,3rem);font-weight:350}.about-face p{position:relative;max-width:650px;margin:0;color:#c9c9d2;font-size:1rem;line-height:1.7}.about-front h2{background:linear-gradient(90deg,#fff 12%,#d958ff 56%,#22aaff);color:transparent;background-clip:text}.about-back{transform:rotateY(180deg)}.about-back h2{color:#fff}.about-back .flip-hint{margin-top:22px;color:#b74bff;font-size:.76rem;letter-spacing:.16em;text-transform:uppercase}.about-flip:hover .about-flip-inner{filter:drop-shadow(0 0 16px rgba(121,50,255,.28))}.about-flip:focus-visible{outline:2px solid var(--blue);outline-offset:6px;border-radius:24px}
.editor-styles-wrapper .about-flip{height:auto;cursor:default}.editor-styles-wrapper .about-flip-inner{height:auto;display:grid;gap:20px;transform:none!important}.editor-styles-wrapper .about-face{position:relative;min-height:260px;transform:none}.editor-styles-wrapper .about-back{transform:none}
@media(max-width:520px){.about-flip{height:300px;margin:45px auto!important}.about-face{padding:32px 22px!important}.about-face h2{font-size:1.65rem}.about-face p{font-size:.88rem}}
.portfolio-front{background:radial-gradient(circle at 50% 18%,rgba(20,168,255,.2),transparent 48%),linear-gradient(145deg,#0d0e14,#040509)}.portfolio-back{background:radial-gradient(circle at 50% 18%,rgba(198,60,255,.2),transparent 48%),linear-gradient(145deg,#0d0e14,#040509)}.portfolio-front h2{background:linear-gradient(90deg,#fff 12%,#7f7cff 54%,#22aaff);color:transparent;background-clip:text}

/* Editable project placeholders on the Portfolio back face. */
.portfolio-flip{height:600px}
.portfolio-back{justify-content:flex-start;padding:34px clamp(22px,4vw,46px)!important;overflow-y:auto}
.portfolio-back>h2{margin-bottom:6px}.portfolio-intro{font-size:.9rem!important;line-height:1.5!important}.portfolio-projects{width:100%;margin:22px 0 0!important;gap:20px!important}.portfolio-project-card{padding:14px!important;border:1px solid #292a36;border-radius:16px;background:rgba(4,5,9,.8);box-shadow:0 14px 26px rgba(0,0,0,.3)}.portfolio-project-image{margin:0 0 13px!important}.portfolio-project-image img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:10px}.portfolio-project-card h3{margin:0 0 7px;font-size:1rem;font-weight:500}.portfolio-project-card>p{margin:0 0 13px;font-size:.78rem!important;line-height:1.45!important}.portfolio-project-card .wp-block-buttons{margin:0!important}.portfolio-project-card .wp-block-button__link{padding:9px 16px;border:1px solid #713c9a;border-radius:999px;background:#090a0f;color:#fff;font-size:.7rem;letter-spacing:.08em}.portfolio-project-card .wp-block-button__link:hover{border-color:var(--blue);box-shadow:0 0 12px rgba(20,168,255,.3)}
@media(max-width:700px){.portfolio-flip{height:850px}.portfolio-projects{display:flex!important;flex-direction:column}.portfolio-back{padding:28px 18px!important}.portfolio-project-card{width:100%}.portfolio-project-image img{max-height:190px}}

/* Editable pricing destination for the PRICE PLAN navigation tab. */
.pricing{position:relative;margin:0!important;padding:100px 20px;min-height:380px;display:grid;place-items:center;text-align:center;border-top:1px solid #15151b;background:radial-gradient(circle at 50% 25%,rgba(126,42,255,.15),transparent 48%),#020204}.pricing-inner{width:min(760px,92vw)}.pricing-kicker{margin:0 0 12px;color:var(--violet);font-size:.78rem;letter-spacing:.18em}.pricing h2{margin:0 0 18px;font-size:clamp(2rem,5vw,3.2rem);font-weight:350;background:linear-gradient(90deg,#fff 15%,var(--violet),var(--blue));color:transparent;background-clip:text}.pricing-copy{margin:0;color:var(--muted);font-size:.95rem;line-height:1.65}
@media(max-width:520px){.pricing{min-height:300px;padding:72px 20px}.pricing-inner{width:100%}.pricing-copy{font-size:.88rem}}

/* Price Plan uses the same click-to-flip system as About and Portfolio. */
.pricing.about-flip{display:block;width:min(860px,90vw);height:560px;min-height:0;margin:70px auto!important;padding:0!important;border:0;background:none;text-align:center}.pricing-front{background:radial-gradient(circle at 50% 18%,rgba(198,60,255,.2),transparent 48%),linear-gradient(145deg,#0d0e14,#040509)}.pricing-back{transform:rotateY(180deg) translateZ(1px);justify-content:flex-start;padding:34px clamp(22px,4vw,46px)!important;overflow-y:auto;background:radial-gradient(circle at 50% 18%,rgba(20,168,255,.17),transparent 48%),linear-gradient(145deg,#0d0e14,#040509)}.pricing-front h2{background:linear-gradient(90deg,#fff 12%,#d958ff 56%,#22aaff);color:transparent;background-clip:text}.pricing-back>h2{margin-bottom:6px}.pricing-plans{width:100%;margin:22px 0 0!important;gap:18px!important;align-items:stretch}.pricing-card{min-height:340px;padding:24px 17px!important;border:1px solid #30313b;border-radius:16px;background:rgba(4,5,9,.82);display:flex;flex-direction:column;align-items:center;justify-content:flex-start}.pricing-card h3{margin:0 0 10px;font-size:1rem}.pricing-card .plan-price{margin:0 0 12px;color:#fff;font-size:1.35rem!important;background:linear-gradient(90deg,var(--violet),var(--blue));background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.pricing-card .plan-features{width:100%;margin:0;color:#bfc0c9;font-size:.76rem!important;line-height:1.7!important;white-space:normal;overflow-wrap:anywhere}.pricing-back .flip-hint{margin-top:18px}
.editor-styles-wrapper .pricing.about-flip{height:auto}.editor-styles-wrapper .pricing-back{transform:none}
@media(max-width:700px){.pricing.about-flip{width:calc(100vw - 28px);height:850px}.pricing-plans{display:flex!important;flex-direction:column}.pricing-card{width:100%;padding:15px!important}.pricing-back{padding:28px 18px!important}}

/* Prevent mirrored face content from bleeding through during a flip. */
.about-flip-inner{-webkit-transform-style:preserve-3d;transform-style:preserve-3d;will-change:transform}
.about-face{-webkit-backface-visibility:hidden!important;backface-visibility:hidden!important;transform-style:preserve-3d;will-change:transform,opacity;transition:opacity .12s linear .34s}
.about-front{transform:rotateY(0deg) translateZ(1px);opacity:1}
.about-back{transform:rotateY(180deg) translateZ(1px);opacity:0}
.about-flip.is-flipped .about-front{opacity:0}
.about-flip.is-flipped .about-back{opacity:1}
.about-face>*{-webkit-backface-visibility:hidden;backface-visibility:hidden}
.editor-styles-wrapper .about-front,.editor-styles-wrapper .about-back{transform:none;opacity:1;transition:none}

/* Face visibility follows click state only; hover never changes the shown side. */
.about-flip:hover .about-flip-inner{filter:none!important}
.about-flip:hover .about-face{box-shadow:0 24px 60px rgba(0,0,0,.55),0 0 24px rgba(125,55,255,.25),inset 0 0 36px rgba(130,50,255,.07)}
.about-flip .about-front{opacity:1!important;visibility:visible!important;pointer-events:auto}
.about-flip .about-back{opacity:0!important;visibility:hidden!important;pointer-events:none}
.about-flip.is-flipped .about-front{opacity:0!important;visibility:hidden!important;pointer-events:none}
.about-flip.is-flipped .about-back{opacity:1!important;visibility:visible!important;pointer-events:auto}
.editor-styles-wrapper .about-front,.editor-styles-wrapper .about-back{visibility:visible!important;opacity:1!important;pointer-events:auto!important}
.about-flip{touch-action:manipulation}

/* Responsive stage: anchor the fixed 660px artwork by its true center before scaling. */
@media(max-width:820px){
  .eclipse-wrap{align-self:flex-start;left:50%;margin-left:-330px;transform:scale(.78);margin-bottom:-125px}
  .hero-copy{max-width:94vw}
  .cards{width:min(600px,92vw)}
}
@media(max-width:700px){
  .eclipse-wrap{transform:scale(.70);margin-bottom:-170px}
  .cards{display:flex!important;flex-direction:column;max-width:380px}
  .card{width:100%;min-height:230px}
  .about-face p,.section-head p{overflow-wrap:anywhere}
}
@media(max-width:520px){
  .hero{padding-left:14px!important;padding-right:14px!important}
  .eclipse-wrap{transform:scale(.58);margin-bottom:-235px}
  .hero-copy{width:calc(100vw - 28px);max-width:none}
  .editor-wordmark,.editor-solutions{max-width:100%!important}
  .trinity{max-width:100%;white-space:normal;line-height:1.8}
  .about-flip{width:calc(100vw - 28px);height:310px}
}
@media(max-width:390px){
  .eclipse-wrap{transform:scale(.52);margin-bottom:-275px}
  .editor-cta-row .cta{width:82vw}
  .about-flip{height:325px}
}
@media(max-width:350px){
  .eclipse-wrap{transform:scale(.46);margin-bottom:-310px}
  .trinity{font-size:.56rem;letter-spacing:.15em}
  .about-face{padding:26px 18px!important}
}
@media(min-width:521px) and (max-width:820px) and (orientation:landscape){
  .eclipse-wrap{transform:scale(.68);margin-bottom:-180px}
}

/* A viewport-sized stage prevents the fixed artwork from widening or offsetting the flex layout. */
.eclipse-stage{position:relative;z-index:1;flex:0 0 auto;width:100%;height:570px;overflow:visible}
.eclipse-stage>.eclipse-wrap{position:absolute;top:0;left:50%;width:660px;max-width:none;margin:0 0 0 -330px!important;align-self:auto;transform:scale(1);transform-origin:top center}
@media(max-width:820px){.eclipse-stage{height:445px}.eclipse-stage>.eclipse-wrap{transform:scale(.78);margin-left:-330px!important;margin-bottom:0!important}}
@media(max-width:700px){.eclipse-stage{height:399px}.eclipse-stage>.eclipse-wrap{transform:scale(.70);margin-bottom:0!important}}
@media(max-width:520px){.eclipse-stage{height:331px}.eclipse-stage>.eclipse-wrap{transform:scale(.58);margin-bottom:0!important}}
@media(max-width:390px){.eclipse-stage{height:296px}.eclipse-stage>.eclipse-wrap{transform:scale(.52);margin-bottom:0!important}}
@media(max-width:350px){.eclipse-stage{height:262px}.eclipse-stage>.eclipse-wrap{transform:scale(.46);margin-bottom:0!important}}
@media(min-width:521px) and (max-width:820px) and (orientation:landscape){.eclipse-stage{height:388px}.eclipse-stage>.eclipse-wrap{transform:scale(.68);margin-bottom:0!important}}

/*
 * Responsive layout authority (2.3.0)
 *
 * The artwork is intentionally drawn on a fixed 660 x 570 canvas. On narrow
 * screens, size the stage from one fluid scale value and centre that canvas
 * inside it. This replaces the older accumulated pixel offsets above and also
 * supports a previously saved front-page template until particles.js adds the
 * stage wrapper.
 */
@media (max-width: 820px) {
  html,
  body,
  .wp-site-blocks,
  .eclipse-editor-page {
    width: 100%;
    max-width: 100%;
    overflow-x: clip;
  }

  .topbar {
    width: 100%;
    min-height: 0;
    padding: 12px 14px 10px;
    flex-direction: column;
    flex-wrap: nowrap !important;
    justify-content: center !important;
    gap: 8px;
  }

  .brand-link,
  .exact-header-logo {
    max-width: calc(100vw - 36px);
  }

  .brand-link {
    align-self: center;
  }

  /* The earlier mobile stylesheet hid this navigation completely. */
  .topbar .wp-block-navigation {
    display: flex !important;
    width: 100%;
    max-width: 100%;
    justify-content: center;
  }

  .topbar .wp-block-navigation__responsive-container,
  .topbar .wp-block-navigation__responsive-container-content {
    display: flex !important;
    position: static !important;
    width: 100%;
    padding: 0 !important;
    background: transparent !important;
  }

  .topbar .wp-block-navigation__responsive-container-content {
    justify-content: center;
  }

  .topbar .wp-block-navigation__container {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    justify-content: center;
    width: 100%;
    gap: clamp(7px, 2.5vw, 18px) !important;
  }

  .topbar .wp-block-navigation-item {
    flex: 0 0 auto;
  }

  .topbar .wp-block-navigation a {
    display: block;
    padding: 7px 0;
    font-size: clamp(.5rem, 1.9vw, .68rem);
    line-height: 1;
    letter-spacing: .06em;
    white-space: nowrap;
  }

  .topbar .wp-block-navigation a:focus-visible,
  .topbar .wp-block-navigation a:active {
    color: var(--violet);
  }

  .hero {
    --eclipse-mobile-width: min(514.8px, calc(100vw - 20px));
    --eclipse-mobile-height: min(444.6px, calc(86.3636vw - 17.27px));
    box-sizing: border-box;
    width: 100%;
    min-height: 0 !important;
    height: auto !important;
    padding: 0 14px 30px !important;
    overflow: hidden;
    justify-content: flex-start !important;
  }

  .hero > * {
    margin-block-start: 0 !important;
  }

  .eclipse-stage {
    position: relative;
    flex: 0 0 auto;
    width: 100%;
    max-width: 100%;
    height: var(--eclipse-mobile-height);
    margin: 0 !important;
    overflow: visible;
  }

  .eclipse-stage > .eclipse-wrap {
    position: relative;
    top: auto;
    left: auto;
    width: var(--eclipse-mobile-width);
    height: var(--eclipse-mobile-height);
    margin: 0 auto !important;
    transform: none !important;
  }

  /* Compatibility with an older template cached in WordPress. */
  .hero > .eclipse-wrap {
    position: relative;
    left: auto;
    flex: 0 0 var(--eclipse-mobile-height);
    width: var(--eclipse-mobile-width);
    height: var(--eclipse-mobile-height);
    margin: 0 auto !important;
    transform: none !important;
    align-self: center;
  }

  .eclipse-wrap .spark-canvas {
    width: 100%;
    height: 100%;
    filter: saturate(1.15);
  }

  .eclipse-wrap .eclipse {
    left: 13.1818%;
    top: 7.8947%;
    width: 68.9394%;
    height: auto;
    aspect-ratio: 1;
  }

  .eclipse-wrap .exact-ew-logo {
    width: 72.5275%;
    height: 37.3626%;
  }

  /* Keep the rim flare proportional to the fluid eclipse on small screens. */
  .eclipse-wrap .flare {
    z-index: 4;
    width: 2.4%;
    height: auto;
    aspect-ratio: 1;
    right: 1.5%;
    top: 18%;
    background: #fff;
    border: 0;
    box-shadow: 0 0 3px 1px #fff, 0 0 9px 5px #cf39ff, 0 0 22px 11px #7b16b8;
    overflow: visible;
  }

  .eclipse-wrap .flare::before,
  .eclipse-wrap .flare::after {
    content: none !important;
    display: none !important;
  }

  .hero-copy {
    position: relative;
    z-index: 4;
    flex: 0 0 auto;
    width: min(719px, calc(100vw - 28px));
    max-width: calc(100vw - 28px);
    margin: 0 auto !important;
  }

  .editor-wordmark,
  .editor-solutions {
    width: 100% !important;
    max-width: 100% !important;
  }

  .trinity {
    width: 100% !important;
    max-width: 100%;
    white-space: normal;
    line-height: 1.8;
  }

  .services,
  .about-flip,
  .contact {
    width: 100%;
    max-width: 100%;
  }

  /* Avoid expensive full-layer filters while a mobile browser is scrolling. */
  .stars {
    filter: none;
  }
}

/* Performance: avoid filtering two large animated layers during page scroll. */
.spark-canvas {
  filter: saturate(1.15);
}

.stars {
  filter: none;
}

.wave,
.flare,
.editor-cta-row .cta::after {
  will-change: transform, opacity;
}

/* Four editable Portfolio cards in one horizontal snap-scrolling track. */
.portfolio-projects{display:grid!important;grid-auto-flow:column;grid-template-columns:none!important;grid-auto-columns:min(82%,300px);justify-content:start!important;width:100%;max-width:100%;gap:14px!important;padding:2px 4px 10px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;touch-action:pan-x;scrollbar-width:none;cursor:grab}.portfolio-projects.is-dragging{cursor:grabbing;scroll-snap-type:none;user-select:none}.portfolio-projects::-webkit-scrollbar{display:none}.portfolio-projects>.portfolio-project-card{width:auto!important;min-width:0;scroll-snap-align:center;scroll-snap-stop:always}.portfolio-scroll-controls{display:flex;align-items:center;justify-content:center;gap:14px;margin:2px auto 0}.portfolio-scroll-button{display:grid;place-items:center;width:34px;height:34px;padding:0;border:1px solid #59406f;border-radius:50%;background:#08090e;color:#fff;font-size:1.25rem;line-height:1;cursor:pointer;box-shadow:0 0 10px rgba(116,48,180,.2)}.portfolio-scroll-button:hover,.portfolio-scroll-button:focus-visible{border-color:var(--blue);color:#fff;box-shadow:0 0 13px rgba(20,168,255,.36);outline:none}.portfolio-scroll-button:disabled{opacity:.3;cursor:default;box-shadow:none}

/* Compact desktop dashboard row for the three interactive information tiles. */
.flip-tiles-row{position:relative;z-index:2;display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;width:min(1500px,94vw);max-width:94vw;margin:72px auto!important;gap:clamp(18px,2vw,32px)!important}.flip-tiles-row>.about-flip{width:100%;height:560px;min-width:0;margin:0!important}.flip-tiles-row .about-face{padding:30px clamp(16px,2.2vw,34px)!important}.flip-tiles-row .about-face h2{color:#fff!important;background:none!important;background-clip:border-box!important;-webkit-background-clip:border-box!important;-webkit-text-fill-color:#fff!important}.flip-tiles-row .portfolio-projects,.flip-tiles-row .pricing-plans{gap:12px!important}.flip-tiles-row .portfolio-project-card,.flip-tiles-row .pricing-card{min-width:0;padding:13px!important}.flip-tiles-row .portfolio-back,.flip-tiles-row .pricing-back{padding:28px 18px!important}.flip-tiles-row .portfolio-back>h2,.flip-tiles-row .pricing-back>h2{font-size:clamp(1.45rem,2.2vw,2rem)}
@media(max-width:899px){.flip-tiles-row{display:flex!important;flex-direction:column;width:100%;max-width:100%;margin:45px auto!important;padding:0 14px;gap:28px!important}.flip-tiles-row>.about-flip{width:100%;margin:0!important}.flip-tiles-row>#about{height:325px}.flip-tiles-row>#portfolio{height:520px}.flip-tiles-row>#pricing{height:480px}.flip-tiles-row .portfolio-back,.flip-tiles-row .pricing-back{padding:22px 16px!important}.flip-tiles-row .portfolio-projects,.flip-tiles-row .pricing-plans{display:grid!important;grid-auto-flow:column;grid-template-columns:none!important;grid-auto-columns:min(84%,330px);justify-content:start!important;gap:14px!important;width:100%;max-width:100%;padding:2px 4px 10px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;touch-action:pan-x;scrollbar-width:none}.flip-tiles-row .portfolio-projects::-webkit-scrollbar,.flip-tiles-row .pricing-plans::-webkit-scrollbar{display:none}.flip-tiles-row .portfolio-project-card,.flip-tiles-row .pricing-card{width:auto!important;scroll-snap-align:center;scroll-snap-stop:always}.flip-tiles-row .portfolio-project-image img{max-height:155px}.flip-tiles-row .pricing-card{min-height:300px}.flip-tiles-row .portfolio-back .flip-hint,.flip-tiles-row .pricing-back .flip-hint{margin-top:8px;font-size:.62rem}}

@media (max-width: 520px) {
  .hero {
    --eclipse-mobile-width: min(409.2px, calc(100vw - 12px));
    --eclipse-mobile-height: min(353.4px, calc(86.3636vw - 10.36px));
  }

  .hero-copy {
    width: calc(100vw - 28px);
  }

  .exact-header-logo {
    width: min(205px, calc(100vw - 36px));
    height: 52px;
  }

  .trinity {
    margin: 20px auto !important;
    font-size: clamp(.56rem, 2.4vw, .68rem);
    letter-spacing: .18em;
  }

  .editor-cta-row .cta {
    width: min(82vw, 330px);
  }

  .about-flip {
    width: calc(100vw - 28px);
  }
}

/*
 * Site Editor visibility authority.
 * Show every flip face as a normal editable block; never apply live-site
 * transforms, fixed heights, clipping or click-state visibility in the editor.
 */
.editor-styles-wrapper .about-flip,
.editor-styles-wrapper .portfolio-flip,
.editor-styles-wrapper .pricing.about-flip {
  display: block !important;
  width: min(860px, 94%) !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 36px auto !important;
  padding: 0 !important;
  overflow: visible !important;
  perspective: none !important;
}

.editor-styles-wrapper .about-flip-inner {
  position: relative !important;
  display: flex !important;
  flex-direction: column !important;
  width: 100% !important;
  height: auto !important;
  gap: 20px !important;
  transform: none !important;
  filter: none !important;
}

.editor-styles-wrapper .about-face,
.editor-styles-wrapper .about-front,
.editor-styles-wrapper .about-back,
.editor-styles-wrapper .portfolio-front,
.editor-styles-wrapper .portfolio-back,
.editor-styles-wrapper .pricing-front,
.editor-styles-wrapper .pricing-back {
  position: relative !important;
  inset: auto !important;
  display: flex !important;
  width: 100% !important;
  min-height: 280px !important;
  height: auto !important;
  visibility: visible !important;
  opacity: 1 !important;
  transform: none !important;
  pointer-events: auto !important;
  overflow: visible !important;
  backface-visibility: visible !important;
}

.editor-styles-wrapper .portfolio-back,
.editor-styles-wrapper .pricing-back {
  min-height: 440px !important;
}

.editor-styles-wrapper .portfolio-projects,
.editor-styles-wrapper .pricing-plans {
  display: flex !important;
  flex-wrap: wrap !important;
  overflow: visible !important;
  scroll-snap-type: none !important;
  cursor: default !important;
}

.editor-styles-wrapper .portfolio-project-card,
.editor-styles-wrapper .pricing-card {
  min-width: 180px !important;
  flex: 1 1 200px !important;
}

/* Scroll performance: promote 3D layers only during an actual tile flip. */
.about-flip-inner,
.about-face {
  will-change: auto !important;
}

.about-flip.is-animating .about-flip-inner {
  will-change: transform !important;
}

.flip-tiles-row .about-flip,
.flip-tiles-row .about-face {
  contain: layout style;
}

.flip-tiles-row .about-flip:hover .about-face {
  box-shadow: 0 24px 60px rgba(0,0,0,.55), inset 0 0 36px rgba(130,50,255,.07);
}

/* Eclipse Assistant and live-chat widget. */
.eclipse-chat{position:fixed;right:max(20px,env(safe-area-inset-right));bottom:max(20px,env(safe-area-inset-bottom));z-index:9998;font-family:inherit;color:#fff}.eclipse-chat-toggle{display:flex;align-items:center;justify-content:center;width:62px;height:62px;padding:0;border:1px solid rgba(199,75,255,.8);border-radius:50%;background:#05060c;box-shadow:0 0 20px rgba(184,45,255,.55),0 0 35px rgba(25,152,255,.25);cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.eclipse-chat-toggle:hover,.eclipse-chat-toggle:focus-visible{transform:translateY(-2px) scale(1.04);box-shadow:0 0 25px rgba(196,57,255,.8),0 0 45px rgba(31,166,255,.4);outline:2px solid #fff;outline-offset:3px}.eclipse-chat-icon{position:relative;display:block;width:36px;height:36px;flex:0 0 36px;border-radius:50%;background:radial-gradient(circle at 60% 43%,#11152a 0 44%,#020207 46% 100%);box-shadow:inset 0 0 4px #000}.eclipse-chat-icon:before{content:"";position:absolute;inset:-3px;border-radius:50%;background:conic-gradient(from 210deg,#b91dff,#ff64e6 26%,#7b48ff 52%,#13a8ff 78%,#b91dff);z-index:-1;filter:drop-shadow(0 0 5px #a738ff)}.eclipse-chat-icon:after{content:"";position:absolute;right:-5px;top:4px;width:9px;height:9px;border-radius:50%;background:#fff;box-shadow:0 0 8px 3px #d843ff}.eclipse-chat-toggle-label{position:absolute;right:72px;white-space:nowrap;padding:8px 12px;border:1px solid rgba(172,72,255,.45);border-radius:18px;background:rgba(5,6,12,.94);font-size:.74rem;letter-spacing:.04em;box-shadow:0 8px 24px rgba(0,0,0,.4)}.eclipse-chat-panel{position:absolute;right:0;bottom:76px;display:flex;flex-direction:column;width:min(370px,calc(100vw - 28px));height:min(540px,calc(100dvh - 120px));overflow:hidden;border:1px solid rgba(190,73,255,.65);border-radius:22px;background:linear-gradient(155deg,rgba(12,8,26,.99),rgba(2,12,24,.99));box-shadow:0 22px 70px rgba(0,0,0,.7),0 0 25px rgba(124,58,237,.28);transform:translateY(14px) scale(.96);transform-origin:bottom right;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s ease,transform .2s ease,visibility .2s}.eclipse-chat.is-open .eclipse-chat-panel{transform:none;opacity:1;visibility:visible;pointer-events:auto}.eclipse-chat.is-open .eclipse-chat-toggle-label{display:none}.eclipse-chat-header{display:flex;align-items:center;gap:12px;padding:16px 17px;border-bottom:1px solid rgba(255,255,255,.1);background:rgba(0,0,0,.22)}.eclipse-chat-title{min-width:0;flex:1}.eclipse-chat-title strong,.eclipse-chat-title span{display:block}.eclipse-chat-title strong{font-size:.92rem;letter-spacing:.05em}.eclipse-chat-status{margin-top:2px;color:#a9b4c8;font-size:.67rem}.eclipse-chat-status.is-online{color:#73f6c0}.eclipse-chat-close{width:34px;height:34px;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.08);color:#fff;font-size:1.35rem;line-height:1;cursor:pointer}.eclipse-chat-close:hover,.eclipse-chat-close:focus-visible{background:rgba(201,67,255,.25);outline:1px solid #d365ff}.eclipse-chat-messages{flex:1;display:flex;flex-direction:column;gap:10px;overflow-y:auto;padding:16px;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#8637c4 transparent}.eclipse-chat-message{max-width:86%;padding:10px 13px;border-radius:15px;font-size:.82rem;line-height:1.48;white-space:pre-wrap}.eclipse-chat-message.bot,.eclipse-chat-message.agent{align-self:flex-start;border:1px solid rgba(94,191,255,.2);border-bottom-left-radius:4px;background:rgba(29,42,68,.76)}.eclipse-chat-message.agent:before{content:"Live agent";display:block;margin-bottom:3px;color:#73f6c0;font-size:.58rem;text-transform:uppercase;letter-spacing:.08em}.eclipse-chat-message.user{align-self:flex-end;border-bottom-right-radius:4px;background:linear-gradient(135deg,#8a2be2,#2569d8)}.eclipse-chat-message a{color:#bdeeff;text-decoration:underline;text-underline-offset:2px}.eclipse-chat-quick{display:flex;flex-wrap:wrap;gap:7px;padding:0 15px 12px}.eclipse-chat-quick button{padding:7px 10px;border:1px solid rgba(160,83,255,.5);border-radius:16px;background:rgba(71,33,111,.28);color:#fff;font:inherit;font-size:.7rem;cursor:pointer}.eclipse-chat-quick button:hover,.eclipse-chat-quick button:focus-visible{border-color:#5dd9ff;background:rgba(38,121,175,.25);outline:none}.eclipse-chat-quick .live-chat-choice{border-color:rgba(63,232,178,.65)}.eclipse-chat-form{display:flex;gap:8px;padding:12px;border-top:1px solid rgba(255,255,255,.1);background:rgba(0,0,0,.2)}.eclipse-chat-input{min-width:0;flex:1;height:42px;padding:0 13px;border:1px solid rgba(255,255,255,.17);border-radius:21px;background:rgba(255,255,255,.07);color:#fff;font:inherit;font-size:.8rem}.eclipse-chat-input::placeholder{color:#aeb4c4}.eclipse-chat-input:focus{border-color:#4fc7ff;outline:none;box-shadow:0 0 0 2px rgba(70,196,255,.14)}.eclipse-chat-send{width:42px;height:42px;padding:0;border:0;border-radius:50%;background:linear-gradient(135deg,#bd2eff,#168ee8);color:#fff;font-size:1.05rem;cursor:pointer}.eclipse-chat-send:hover,.eclipse-chat-send:focus-visible{filter:brightness(1.18);outline:2px solid rgba(255,255,255,.65);outline-offset:2px}
@media(max-width:520px){.eclipse-chat{right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom))}.eclipse-chat-toggle{width:56px;height:56px}.eclipse-chat-toggle-label{display:none}.eclipse-chat-panel{right:0;bottom:68px;height:min(510px,calc(100dvh - 94px));border-radius:18px}.eclipse-chat-message{font-size:.79rem}}
@media(prefers-reduced-motion:reduce){.eclipse-chat-toggle,.eclipse-chat-panel{transition:none}}

/* More compact contact form on desktop and mobile. */
.contact{padding:62px 20px 76px}.contact>h2{margin:7px 0 9px;font-size:clamp(1.8rem,4vw,2.75rem)}.eclipse-contact-form{margin-top:26px;padding:22px 24px;border-radius:18px}.contact-field-grid{gap:13px 16px}.eclipse-contact-form label span{margin-bottom:6px}.eclipse-contact-form input,.eclipse-contact-form textarea{padding:10px 12px}.contact-message-field{margin-top:13px}.eclipse-contact-form textarea{min-height:105px}.contact-submit{margin-top:17px;padding:11px 26px}
@media(max-width:620px){.contact{padding:46px 12px 58px}.contact>h2{font-size:1.75rem}.eclipse-contact-form{margin-top:20px;padding:17px 14px;border-radius:16px}.contact-field-grid{gap:10px}.eclipse-contact-form label span{margin-bottom:5px}.eclipse-contact-form input,.eclipse-contact-form textarea{padding:9px 11px;font-size:16px}.contact-message-field{margin-top:10px}.eclipse-contact-form textarea{min-height:92px}.contact-submit{margin-top:14px;padding:10px 23px}}

/* Stable tile order and matching horizontal controls for pricing. */
.flip-tiles-row>#about{order:1}.flip-tiles-row>#portfolio{order:2}.flip-tiles-row>#pricing{order:3}
.flip-tiles-row .portfolio-projects,.flip-tiles-row .pricing-plans{display:grid!important;grid-auto-flow:column;grid-template-columns:none!important;grid-auto-columns:min(82%,300px);justify-content:start!important;width:100%;max-width:100%;gap:14px!important;padding:2px 4px 10px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;touch-action:auto;scrollbar-width:none;cursor:grab}.flip-tiles-row .portfolio-projects.is-dragging,.flip-tiles-row .pricing-plans.is-dragging{cursor:grabbing;scroll-snap-type:none;user-select:none}.flip-tiles-row .pricing-plans::-webkit-scrollbar{display:none}.flip-tiles-row .pricing-plans>.pricing-card{width:auto!important;min-width:0;scroll-snap-align:center;scroll-snap-stop:always}.pricing-scroll-controls{margin-top:4px}

/* Price packages occupy one complete carousel viewport at a time. */
.flip-tiles-row .pricing-plans{grid-auto-columns:100%;padding:2px 0 10px}.flip-tiles-row .pricing-plans>.pricing-card{width:100%!important;box-sizing:border-box;align-self:stretch}.flip-tiles-row .portfolio-projects,.flip-tiles-row .pricing-plans{margin-top:22px!important}.flip-tiles-row .portfolio-scroll-controls,.flip-tiles-row .pricing-scroll-controls{width:100%}

/* Exact shared geometry for Portfolio and Price Plan sub-tiles. */
.flip-tiles-row .portfolio-projects,.flip-tiles-row .pricing-plans{grid-auto-columns:100%;padding:2px 0 10px}.flip-tiles-row .portfolio-project-card,.flip-tiles-row .pricing-card{width:100%!important;box-sizing:border-box;min-height:340px;align-self:stretch}.flip-tiles-row .portfolio-back>h2,.flip-tiles-row .pricing-back>h2{display:flex;align-items:center;justify-content:center;min-height:2.5rem;margin:0!important}.flip-tiles-row .portfolio-back>.portfolio-intro,.flip-tiles-row .pricing-back>.portfolio-intro{display:flex;align-items:flex-start;justify-content:center;min-height:3.15em;margin:6px 0 0!important}.flip-tiles-row .portfolio-projects,.flip-tiles-row .pricing-plans{margin-top:14px!important}
@media(max-width:899px){.flip-tiles-row .portfolio-project-card,.flip-tiles-row .pricing-card{min-height:300px}.flip-tiles-row .portfolio-back>h2,.flip-tiles-row .pricing-back>h2{min-height:2.25rem}.flip-tiles-row .portfolio-back>.portfolio-intro,.flip-tiles-row .pricing-back>.portfolio-intro{min-height:3em}}

/* Uniform compact mobile dimensions for all three flip tiles. */
@media(max-width:899px){.flip-tiles-row>#about,.flip-tiles-row>#portfolio,.flip-tiles-row>#pricing{height:360px!important;min-height:360px!important}.flip-tiles-row .portfolio-back,.flip-tiles-row .pricing-back{padding:14px 12px!important;overflow-y:hidden}.flip-tiles-row .portfolio-back>h2,.flip-tiles-row .pricing-back>h2{min-height:1.8rem;font-size:1.25rem!important}.flip-tiles-row .portfolio-back>.portfolio-intro,.flip-tiles-row .pricing-back>.portfolio-intro{min-height:2.5em;margin-top:3px!important;font-size:.68rem!important;line-height:1.3!important}.flip-tiles-row .portfolio-projects,.flip-tiles-row .pricing-plans{margin-top:7px!important;padding-bottom:5px}.flip-tiles-row .portfolio-project-card,.flip-tiles-row .pricing-card{height:215px;min-height:215px;max-height:215px;padding:10px!important;overflow-y:auto;overscroll-behavior-y:contain}.flip-tiles-row .portfolio-project-image{margin-bottom:7px!important}.flip-tiles-row .portfolio-project-image img{height:88px;max-height:88px;object-fit:cover}.flip-tiles-row .portfolio-project-card h3,.flip-tiles-row .pricing-card h3{margin-bottom:5px;font-size:.88rem}.flip-tiles-row .portfolio-project-card>p{margin-bottom:7px;font-size:.68rem!important;line-height:1.3!important}.flip-tiles-row .portfolio-project-card .wp-block-button__link{padding:6px 12px;font-size:.62rem}.flip-tiles-row .pricing-card .plan-price{margin-bottom:6px;font-size:1.05rem!important}.flip-tiles-row .pricing-card .plan-features{font-size:.68rem!important;line-height:1.45!important}.flip-tiles-row .portfolio-scroll-controls{height:30px;margin-top:1px}.flip-tiles-row .portfolio-scroll-button{width:28px;height:28px;font-size:1rem}.flip-tiles-row .portfolio-back .flip-hint,.flip-tiles-row .pricing-back .flip-hint{display:none}}

/* Let a long mobile About biography expand instead of clipping above the card. */
@media(max-width:899px){.flip-tiles-row>#about{transition:height .28s ease}.flip-tiles-row>#about .about-back{justify-content:flex-start;overflow:visible}.flip-tiles-row>#about .about-back>p{flex:0 0 auto;width:100%}}

/* Preserve the intended word break in the mobile services introduction. */
@media(max-width:520px){.section-head>p:last-child br{display:inline!important}}

/* Solid-black eclipse center for the chat icon. */
.eclipse-chat-icon{background:#000!important}

/* Keep the Price Plans front typography identical to About and Portfolio. */
.flip-tiles-row .pricing-front h2{margin:0 0 18px!important;font-size:clamp(1.8rem,4vw,3rem)!important;line-height:normal}.flip-tiles-row .pricing-front p{font-size:1rem!important;line-height:1.7!important}
@media(max-width:520px){.flip-tiles-row .pricing-front h2{font-size:1.65rem!important}.flip-tiles-row .pricing-front p{font-size:.88rem!important}}

/*
 * Desktop scroll stability: retain the two decorative service waves without
 * continuously repainting their large masked gradient layers. Scaling and
 * rotating those layers during wheel scrolling caused a visible stall near
 * the "Powerful Websites. Seamless Solutions." section on some PCs.
 */
.services .wave.left,
.services .wave.right {
  animation: none !important;
  will-change: auto !important;
}

/* Consistent editable feature lists across every price-plan card. */
.flip-tiles-row .pricing-card ul.plan-features {
  display: block !important;
  width: fit-content !important;
  max-width: 100% !important;
  margin: 0 auto !important;
  padding-left: 22px !important;
  color: #bfc0c9;
  font-size: 16px !important;
  line-height: 1.5 !important;
  list-style-position: outside !important;
  text-align: left !important;
  white-space: normal;
  overflow-wrap: anywhere;
}

.flip-tiles-row .pricing-card ul.plan-features > li {
  display: list-item !important;
  margin: 0 0 8px !important;
  padding-left: 3px !important;
  font-size: 16px !important;
  line-height: 1.5 !important;
  text-align: left !important;
}

/* Override accidental block-level font changes so all plan headings match. */
.flip-tiles-row .pricing-plans > .pricing-card > h3,
.flip-tiles-row .pricing-plans > .pricing-card > .wp-block-heading {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 2.5em;
  margin: 0 0 8px !important;
  font-size: 16px !important;
  line-height: 1.25 !important;
  font-weight: 600 !important;
  text-align: center !important;
}

/* Keep the first snap point reachable after font or content-width changes. */
.flip-tiles-row .pricing-plans {
  scroll-padding-inline: 0 !important;
}

.flip-tiles-row .pricing-plans > .pricing-card {
  scroll-snap-align: start !important;
}

/* Match pricing titles even when the Site Editor nests a heading differently. */
.flip-tiles-row .pricing-card .pricing-card-title,
.flip-tiles-row .pricing-card h1,
.flip-tiles-row .pricing-card h2,
.flip-tiles-row .pricing-card h3,
.flip-tiles-row .pricing-card h4,
.flip-tiles-row .pricing-card h5,
.flip-tiles-row .pricing-card h6 {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  min-height: 2.5em !important;
  margin: 0 0 8px !important;
  font-size: 16px !important;
  line-height: 1.25 !important;
  font-weight: 600 !important;
  text-align: center !important;
}

.flip-tiles-row .pricing-card .pricing-card-title > * {
  font-size: inherit !important;
  line-height: inherit !important;
  font-weight: inherit !important;
}

.flip-tiles-row .pricing-plans > .wp-block-column:empty {
  display: none !important;
}

/* Build-payment and managed-care offers inside all three pricing tiles. */
.plan-payment-summary {
  width: 100%;
  margin: 0 0 12px;
  padding: 11px 12px;
  border: 1px solid rgba(118, 73, 184, .48);
  border-radius: 12px;
  background: linear-gradient(145deg, rgba(31, 13, 55, .78), rgba(5, 15, 29, .82));
  text-align: left;
}

.plan-payment-summary p {
  max-width: none;
  margin: 0;
  text-align: left !important;
}

.plan-installment {
  color: #d8d8e1 !important;
  font-size: 14px !important;
  line-height: 1.4 !important;
}

.plan-installment span {
  color: #9fa1ae;
  font-size: 11px;
  text-transform: uppercase;
}

.plan-installment strong {
  color: #fff;
  font-size: 15px;
}

.plan-care-price {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  margin-top: 9px !important;
  padding-top: 9px;
  border-top: 1px solid rgba(255, 255, 255, .11);
}

.plan-care-price span {
  color: #d8d8e1;
  font-size: 14px;
  font-weight: 600;
}

.plan-care-price strong {
  background: linear-gradient(90deg, var(--violet), var(--blue));
  background-clip: text;
  -webkit-background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
  font-size: 18px;
  white-space: nowrap;
}

.plan-combined-price {
  margin-top: 4px !important;
  color: #aeb3c2 !important;
  font-size: 12px !important;
  line-height: 1.4 !important;
}

.plan-combined-price strong {
  color: #fff;
}

.plan-care-features {
  width: 100%;
  margin: 9px 0 0 !important;
  padding-left: 18px !important;
  color: #c7c9d4;
  font-size: 12px !important;
  line-height: 1.5 !important;
  list-style-position: outside !important;
  text-align: left !important;
}

.plan-care-features li {
  margin: 0 0 4px !important;
  padding-left: 2px !important;
  font-size: inherit !important;
  line-height: inherit !important;
  text-align: left !important;
}

.plan-payment-terms {
  margin-top: 8px !important;
  color: #8f94a3 !important;
  font-size: 10px !important;
  line-height: 1.45 !important;
}

@media(max-width:899px) {
  .plan-payment-summary {padding: 10px}
  .plan-installment strong {font-size: 14px}
  .plan-care-price strong {font-size: 17px}
  .flip-tiles-row .pricing-card .plan-price {font-size: 1.18rem !important;line-height: 1.35 !important}
}
