/* Finishing details shared by the homepage, public pages, and authentication. */
:root{--sw-focus:#efd9aa;--sw-ui-ease:cubic-bezier(.2,.8,.2,1)}
/* Explicitly requested glow pulse stays on with reduced motion; buttons never move. */
body:has(#comparison-showcase) .btn.cta-attention{--start-glow:#70b4ff38;box-shadow:inset 0 1px 0 #ffffff1f,0 0 7px -4px var(--start-glow);animation:sw-start-glow 5s ease-in-out infinite!important}
body:has(#comparison-showcase) .btn.btn-red.cta-attention{--start-glow:#fa8b9640;animation-delay:1.2s!important}
@keyframes sw-start-glow{0%,100%{box-shadow:inset 0 1px 0 #ffffff14,0 0 7px -4px var(--start-glow)}50%{box-shadow:inset 0 1px 0 #ffffff24,0 0 16px -2px var(--start-glow)}}
/* Mirrors the app's WizardSpinner rings, center spark, and orbiting particles. */
.ease-loading{position:absolute;inset:0;z-index:4;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:17px;padding:24px;background:#0a1424b8;backdrop-filter:blur(5px)}
.ease-loading[hidden]{display:none}
/* Keep autofilled contact/account fields legible through focus changes. */
body.sw-public :is(input,textarea,select){color-scheme:dark;caret-color:#e8f1ff}
body.sw-public input:is(:autofill,:-webkit-autofill){-webkit-text-fill-color:#e8f1ff!important;caret-color:#e8f1ff!important;box-shadow:0 0 0 1000px #0b1729 inset!important;transition:none!important}
body.sw-public input:is(:autofill,:-webkit-autofill):focus{box-shadow:0 0 0 1000px #0b1729 inset,0 0 0 3px #7eb6ff35!important}
body.sw-public :is(input,textarea)::placeholder{color:#a4b5cc!important;opacity:1}
body.sw-public label{font-size:13px!important}

/* Keep the two-line action label stacked tight. */
body #how-it-works #ease-action-label{display:block;min-height:0;line-height:1.1}
body #how-it-works #ease-action-hint{display:block;min-height:0;margin:0;line-height:1.1}
body #how-it-works .ease-status{min-height:3lh}
.ease-loading p{margin:0;color:#edf4ff;font-size:13px;line-height:1.6;text-align:center;text-wrap:balance}
.ease-spinner{position:relative;width:44px;height:44px}
.ease-spinner>span{position:absolute;inset:0;border-radius:50%}
.ease-spinner-glow{border:2px solid #dbeafe55;box-shadow:0 0 30px #fbbf2433;animation:ease-spinner-pulse 1.5s ease-in-out infinite}
.ease-spinner-ring{border:2px solid transparent;border-top-color:#3b82f6;border-right-color:#60a5fa;box-shadow:0 0 20px #fbbf244d,inset 0 0 20px #fbbf241a;animation:ease-spinner-turn 1s linear infinite}
.ease-spinner .ease-spinner-spark{inset:20px;background:#60a5fa;box-shadow:0 0 10px #fbbf24cc;animation:ease-spinner-pulse 1.5s ease-in-out infinite}
.ease-spinner-particles{animation:ease-spinner-turn 3s linear infinite}
.ease-spinner-particles::before,.ease-spinner-particles::after{content:'';position:absolute;left:50%;top:0;width:2px;height:2px;border-radius:50%;background:#93c5fd}
.ease-spinner-particles::after{top:auto;bottom:0}
@keyframes ease-spinner-turn{to{transform:rotate(360deg)}}
@keyframes ease-spinner-pulse{50%{opacity:.5}}
body.sw-public :is(.sw-button,.form-submit,.pricing-button,.starter-mini-btn,.home-link,.academy-purchase-btn,.btn-wizard,.view-category-link),body .auth-experience .auth-card :is(.auth-primary,button[type=submit]){background:#2563eb33!important;border:1px solid #3b82f699!important;border-radius:12px!important;color:#eff6ff!important;box-shadow:inset 0 1px 0 #d9eaff12,0 4px 14px #00000012!important;backdrop-filter:blur(4px);font-weight:600!important;transform:none!important;transition:background .3s var(--sw-ui-ease),border-color .3s,box-shadow .35s!important}
body.sw-public :is(.sw-button,.form-submit,.pricing-button,.starter-mini-btn,.home-link,.academy-purchase-btn,.btn-wizard,.view-category-link):hover:not(:disabled),body .auth-experience .auth-card :is(.auth-primary,button[type=submit]):hover:not(:disabled){background:#2563eb4d!important;border-color:#60a5facc!important;box-shadow:inset 0 1px 0 #e1efff20,0 0 20px -8px #83baff55!important}
body.sw-public .view-category-link{display:inline-flex!important;align-items:center;justify-content:center;width:auto;max-width:100%;min-height:44px;padding:12px 22px!important;line-height:1.35;text-align:center;text-decoration:none!important;white-space:nowrap;box-sizing:border-box}
body.sw-public .view-category-link:hover{text-decoration:none!important}
body.sw-public .sw-button.sw-button-red{background:#d9324333!important;border-color:#ef444499!important;color:#fef2f2!important}
body.sw-public .sw-button.sw-button-red:hover{background:#d932434d!important;border-color:#f87171cc!important;box-shadow:inset 0 1px 0 #fff1,0 0 20px -8px #f871714d!important}
:is(body.sw-public,body:has(#comparison-showcase),.auth-experience) :is(button,a,input,select,textarea,summary):focus-visible{outline:2px solid var(--sw-focus)!important;outline-offset:3px}
:is(body.sw-public,body:has(#comparison-showcase),.auth-experience) button:disabled{opacity:.55!important;cursor:not-allowed!important;animation:none!important;box-shadow:none!important}
:is(body.sw-public,body:has(#comparison-showcase),.auth-experience) :is(h1,h2,h3){text-wrap:balance}
body.sw-public :is(.content,.about-content,.article-content) p{text-wrap:pretty}
:is(body.sw-public,body:has(#comparison-showcase)) :is(.price,.pw-price,.pack-price,.price-tag){font-variant-numeric:tabular-nums}
body.sw-public :is(.hero-subtitle,.about-content p,.article-content p){overflow-wrap:break-word}
body.sw-public :is(.content,.about-content,.article-content) a:not(.sw-button){text-underline-offset:4px;text-decoration-thickness:1px}
body:has(#comparison-showcase) :is(.hero-preview,.collection-preview):hover img{transform:none!important}
body:has(#comparison-showcase) :is(.preview-caption,.hero-strip-heading,.collection-toolbar){color:#b6c6dd}
body:has(#comparison-showcase) .hero-preview .preview-caption{white-space:normal;overflow:visible;text-overflow:clip;min-height:34px;line-height:1.45}
body:has(#comparison-showcase) :is(.image-tag,.preview-motion,.ease-photo-label){line-height:1.4;letter-spacing:.055em}
body:has(#comparison-showcase) :is(.plan-badge,.subscription-badge){max-width:calc(100% - 32px);line-height:1.4;text-align:center}
body:has(#comparison-showcase) .scene-benefit{isolation:isolate}
body.sw-public .form-status{font-size:12px;line-height:1.65;overflow-wrap:anywhere}
body.sw-public .form-status:not(:empty){padding:10px 12px;border:1px solid #b3cef333;border-radius:9px;background:#a9cfff08;margin:0}
body.sw-public .form-status.success{color:#b9e2d1;border-color:#a3d8bf44}
body.sw-public .form-status.error{color:#ffd0c8;border-color:#f4a29655}
:is(body.sw-public,.auth-experience) :is(input,select,textarea):user-invalid{border-color:#e8a199!important;box-shadow:0 0 0 2px #e8a19912!important}
.auth-experience [role=alert]{font-size:12px;line-height:1.7;overflow-wrap:anywhere}
.auth-experience .auth-card form[aria-busy=true]{cursor:progress}
.auth-experience .auth-card form[aria-busy=true] button[type=submit]{cursor:progress!important}
body:has(.auth-experience)>.sw-privacy-trigger{position:static;display:block;margin:0 auto;padding:12px 16px;min-height:40px;background:none}
body:has(.auth-experience){background:#0b1424}
body.sw-public .contact-form form[aria-busy=true] .form-submit{cursor:progress!important}
@media(max-width:800px){
 body:has(#comparison-showcase) .benefits{display:flex;flex-direction:column;flex-wrap:nowrap;align-items:flex-start;gap:8px;margin-top:12px}
 body:has(#comparison-showcase) .benefits>a{width:auto}
}
@media(max-width:760px){
 body.sw-public :is(input:not([type=checkbox]):not([type=radio]),select,textarea){font-size:16px!important}
 body.sw-public :is(.sw-mobile-nav a,.category-btn,.help-topic-links a){min-height:44px;display:inline-flex;align-items:center}
 body.sw-public :is(.sw-footer nav,.footer-links){gap:8px 20px}
 body.sw-public .sw-footer nav a{min-height:36px;display:inline-flex;align-items:center}
 body.sw-public :is(.content,.article,.about-content){padding:24px 20px!important}
 body.sw-public .contact-grid{gap:18px!important}
 body.sw-public .contact-grid .contact-form{grid-row:1}
 body.sw-public .contact-info a{overflow-wrap:anywhere}
 body.sw-public .view-category-link{white-space:normal}
 body:has(#comparison-showcase) :is(.collection-filters button,.hero-tour-controls button,.billing button,.ease-samples button,.collection-pagination button){min-height:44px}
 body:has(#comparison-showcase) .hero-scene-nav button{width:44px;height:44px}
 body:has(#comparison-showcase) .hero-scene-nav{gap:6px;right:10px}
 body:has(#comparison-showcase) .scene-benefit{max-width:calc(100% - 125px)}
 body:has(#comparison-showcase) .collection-filters{display:flex;flex-wrap:wrap;gap:6px}
 body:has(#comparison-showcase) .footer-links{display:flex;flex-wrap:wrap;gap:8px 20px}
 body:has(#comparison-showcase) .footer-links a{min-height:36px;display:inline-flex;align-items:center}
 .auth-experience .auth-card{padding:22px!important}
 .auth-experience .auth-card :is(.auth-google,button[type=submit]){min-height:46px!important}
 .auth-experience .auth-card>div:last-child>button{min-height:40px!important}
 .auth-experience .auth-container{padding-bottom:max(28px,env(safe-area-inset-bottom))}
}
@media(prefers-reduced-motion:reduce){
 html:has(:is(body.sw-public,#comparison-showcase,.auth-experience)){scroll-behavior:auto!important}
 :is(body.sw-public,body:has(#comparison-showcase),.auth-experience) *, :is(body.sw-public,body:has(#comparison-showcase),.auth-experience) *::before, :is(body.sw-public,body:has(#comparison-showcase),.auth-experience) *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
 body:has(#comparison-showcase) .reveal-ready,body.sw-public .sw-arrive{opacity:1!important;translate:none!important;filter:none!important}
 body:has(#comparison-showcase) .depth-surface{transform:none!important}
 /* Keep the explicitly requested, brief loading indicator readable in motion. */
 body:has(#comparison-showcase) .ease-spinner-ring{animation:ease-spinner-turn .8s linear infinite!important}
 /* Keep the requested background ambience on without moving page content. */
 body:has(#comparison-showcase) .aurora-one{animation:aurora-drift 18s ease-in-out infinite alternate!important}
 body:has(#comparison-showcase) .aurora-two{animation:aurora-drift 24s ease-in-out infinite alternate-reverse!important}
 body:has(#comparison-showcase) .portal-orbit::after{animation:orbit 45s linear infinite!important}
 body:has(#comparison-showcase) .orbit-two::after{animation:orbit 65s linear infinite reverse!important}
}
