/* Prime's blue and gold arcs carry the supplied PSP identity through the page. */
@layer prime {
 :root { --gold:#efc65b; --blue:#3687ff; }
 .site-header { backdrop-filter:blur(12px); }
 .brand { gap:14px; }
 .brand img { width:58px; height:58px; filter:none; }
 .brand strong { font-size:1.22rem; letter-spacing:-.035em; }
 .header-inner { display:grid; grid-template-columns:1fr auto 1fr; min-height:106px; gap:30px; }
 .site-header .brand { grid-column:2; grid-row:1; justify-self:center; }
 .site-header #navigation { display:contents; }
 .nav-group { display:flex; align-items:center; gap:40px; }
 .nav-left { grid-column:1; grid-row:1; justify-self:start; }
 .nav-right { grid-column:3; grid-row:1; justify-self:end; }
 .nav-group a { color:#c8d6e7; padding:12px 0; font-size:.9rem; font-weight:700; }
 .nav-group a { min-width:44px; min-height:44px; }
 .scroll-cue,.light-link,.back-top,.footer-bottom a { display:inline-flex; align-items:center; min-height:44px; }
 .footer-bottom { align-items:center; }
 .footer-bottom a { min-width:44px; font-size:.95rem; font-weight:600; padding:4px 6px; color:#d5e6fa; }
 .nav-group a:hover { color:var(--gold); }
 .brand .brand-name { display:block; font-size:1.6rem; text-align:center; font-weight:900; font-style:italic; letter-spacing:-.045em; line-height:1.05; text-transform:uppercase; }
 .brand-name span { display:block; width:fit-content; margin-inline:auto; padding:2px 4px; color:#79b4ff; background:linear-gradient(110deg,#3987ff 20%,#9cc8ff 37%,#fff 46%,#77b3ff 55%,#3386ff 70%); background-size:250% 100%; background-position:100% 0; background-clip:text; -webkit-text-fill-color:transparent; animation:brand-shimmer 2.2s ease-in-out 2; }
 .brand-name span+span { font-size:.66em; letter-spacing:.055em; margin-top:3px; color:#f3d37d; background-image:linear-gradient(110deg,#d49b27 20%,#ffe298 37%,#fffdf1 46%,#e9b83b 55%,#dfaa33 70%); }
 .brand:hover .brand-name span,.brand:focus-visible .brand-name span { animation:brand-shimmer-hover 1.5s ease-in-out; }
 .contact-grid { grid-template-columns:1.1fr .9fr; }
 .contact-copy { align-self:center; }
 .contact-details { margin-top:36px; gap:24px; }
 .contact-item { gap:18px; min-height:76px; font-size:1.4rem; line-height:1.4; }
 .contact-item>div { min-width:0; }
 .contact-item small { font-size:.82rem; font-weight:700; letter-spacing:.13em; margin-bottom:7px; }
 .contact-item svg { width:30px; height:30px; }
 .contact-item a { display:inline-flex; align-items:center; min-height:44px; overflow-wrap:anywhere; }
 .contact-item span { font-weight:600; }
 .hero-copy .eyebrow,.prime-divider>.container>span:first-child { text-transform:uppercase; }
 @keyframes brand-shimmer { from { background-position:100% 0; } to { background-position:0% 0; } }
 @keyframes brand-shimmer-hover { from { background-position:100% 0; } to { background-position:0% 0; } }
 .brand small { letter-spacing:.13em; font-size:.57rem; color:#c4b485; }
 .eyebrow { color:var(--gold); }
 .button { border-radius:2px; box-shadow:none; }
 .button-small { background:transparent; border-color:#e4c77d70; }
 .hero { background:radial-gradient(ellipse at 78% 45%,#11395c 0,#081b2d 32%,#030c18 70%); }
 .hero-grid { min-height:680px; padding:85px 0 95px; }
 .hero-copy { max-width:780px; }
 .hero-copy .eyebrow { color:var(--gold); letter-spacing:.24em; }
 .blue-dot { background:var(--gold); border-color:#675424; box-shadow:0 0 18px #dba83255; }
 .hero h1 { font-size:clamp(5rem,9vw,8.5rem); letter-spacing:-.065em; line-height:.86; }
 .hero h1 .hero-word.chrome-text { font-size:1.48em; margin-top:0; }
 .hero h1 .chrome-text { background:linear-gradient(115deg,#fff7d4 5%,#f3c246 35%,#fff2bc 59%,#b77911 95%); background-clip:text; }
 .hero h1 .hero-subline { font-family:Georgia,serif; font-style:italic; font-size:1.75rem; color:#e6dbbe; margin-top:26px; }
 .hero-invitation>p { font-size:1rem; color:#afbfce; }
 .hero-actions { margin-top:28px; }
 .hero-actions .button {
  color:#fff0c6;
  border-color:#d3ad5c99;
  background:radial-gradient(ellipse at 12% 0%,#29476280,transparent 70%),linear-gradient(125deg,#152638,#07121f);
  box-shadow:inset 0 1px 0 #fff1c61a,0 8px 24px #0004;
 }
 .hero-actions .button:hover {
  color:#fff8e3;
  border-color:#efc65b;
  background:radial-gradient(ellipse at 12% 0%,#365b7980,transparent 70%),linear-gradient(125deg,#1b3045,#0a1725);
  box-shadow:inset 0 1px 0 #fff1c626,0 10px 28px #0005;
 }
 .hero-actions .button:focus-visible { outline:2px solid #efc65b; outline-offset:5px; }
 .liquid-stage { width:540px; height:570px; right:-18px; top:44px; }
 .liquid-float { inset:35px 38px 40px; animation:prime-arrive 1.3s cubic-bezier(.2,.7,.2,1) both; }
 .liquid-drop { transform:rotateY(var(--tilt-x,0deg)) rotateX(var(--tilt-y,0deg)); filter:drop-shadow(0 28px 35px #0008); }
 .orbit { left:-38px; top:205px; width:630px; height:240px; transform:rotate(-33deg); border-color:#6cb6ff3d; }
 .orbit::after { border-top-color:#8dbfff; border-bottom-color:#efc65b; animation:orbit-glow 4s ease-in-out 1; filter:none; }
 .orbit-two { top:195px; left:-52px; width:655px; height:270px; border-color:#dfb23e; opacity:.45; }
 .orbit-two::after { border-top-color:#efc65b; }
 .orbit-three { display:none; }
 .satellite { animation:satellite-drift 4s ease-out 1 both; }
 .satellite-one { right:25px; top:110px; }
 .satellite-two { left:25px; top:420px; }
 .satellite-three { display:none; }
 .hero-halo { animation:halo-breathe 4s ease-in-out 1; }
 .hero-grid-lines { opacity:.45; background-size:120px 120px; }
 .hero-bottom { justify-content:center; padding:20px 0; border-color:#c5a65a36; }
 .hero-coordinate { color:#99a6b1; }
 .scroll-cue { color:#d3be88; letter-spacing:.13em; padding:10px 0; }
 /* The former hero invitation becomes one centered Services label. */
 .services-title { color:#d3be88; font-family:inherit; font-size:1rem; font-weight:400; line-height:1.5; letter-spacing:.13em; text-align:center; margin:0 0 28px; padding:10px 0; }
 @media(max-width:620px) { .services-title { font-size:.9375rem; margin-bottom:20px; letter-spacing:.1em; } }
 .prime-divider { background:#0b2036; border-block:1px solid #294157; }
 .prime-divider>.container { display:flex; align-items:center; gap:36px; padding-block:24px; font-size:.68rem; letter-spacing:.17em; color:#afc3d9; }
 .divider-line { flex:1; height:1px; background:linear-gradient(90deg,#477caa,#edc66c80); }
 .prime-divider b { color:var(--gold); margin-inline:14px; font-weight:400; }
 .service-grid { gap:0; border-block:1px solid #34516a; }
 .service-card,.service-card:nth-child(2) { border:0; border-radius:0; background:transparent; padding:42px 38px 34px 0; }
 .service-card:nth-child(2) { border-left:1px solid #34516a; padding-left:46px; }
 .service-card:hover { transform:none; box-shadow:none; }
 .service-card::after { width:200px; height:200px; right:20px; bottom:-145px; border-color:#d9ae5650; box-shadow:0 0 0 20px #3184ef0a; }
 .service-number { font-family:Georgia,serif; font-style:italic; color:#ddbd6b; font-weight:400; font-size:3rem; }
 .service-card .text-link { color:#e7c772; }
 .section-heading h2 { font-weight:500; }
 .wash-frame { border-radius:2px; padding:7px; box-shadow:none; background:#0d2031; }
 .comparison-scene { height:auto; aspect-ratio:16/9; border-radius:0; }
 .comparison-scene>img,.wash-dirty img { object-position:center; }
 .wash-dirty { filter:none; }
 .wash-clean-layer { position:absolute; inset:0; overflow:hidden; }
 .wash-clean-layer img,.wash-dirty img { position:absolute; inset:0; width:100%; max-width:none; height:100%; transform:none; object-fit:cover; }
 
 .grime { background:repeating-radial-gradient(ellipse at 15% 80%,#655f4b44 0 2px,transparent 3px 12px),linear-gradient(15deg,#a5905880,transparent 75%); mix-blend-mode:screen; }
 .wash-beam { background:#fff1c3; box-shadow:0 0 16px #f6cd6780; }
 .wash-beam span { border-color:#f0d790; background:#112a3ae8; color:var(--gold); box-shadow:0 0 24px #d5b75a30; font-size:1.2rem; }
 .comparison-label { border-color:#cdb67e70; background:#08192edd; }
 .photo-credit { padding:4px 20px 10px; font-size:.72rem; color:#9aadbf; }
 .photo-credit a { text-decoration:underline; text-underline-offset:3px; }
 .demo-disclaimer { color:#9eafbd; }
 .about { background:linear-gradient(110deg,#112d49,#071626); }
 .about::before { border-color:#e2bb4e30; box-shadow:0 0 0 70px #dfa53905,0 0 0 140px #2879cc05; }
 .about h2 span { color:#edcd7a; font-family:Georgia,serif; font-style:italic; font-weight:400; }
 .contact-section { background:radial-gradient(ellipse at 0 100%,#224259 0,transparent 60%),#061222; }
 form { border-radius:2px; backdrop-filter:none; background:#0c1e31; box-shadow:none; }
 .form-submit { justify-content:center; background:transparent; border:2px solid #000; box-shadow:0 5px 14px #0007; }
 .form-submit:hover { background:transparent; border-color:#000; box-shadow:0 7px 18px #0009; }
 .wash-frame { position:relative; }
 /* Preserve native keyboard/screen-reader control without a second visible slider. */
 .comparison-keyboard-control { position:absolute; width:1px; height:1px; min-height:0; padding:0; margin:0; border:0; overflow:hidden; clip-path:inset(50%); }
 .wash-frame:focus-within { outline:3px solid var(--gold); outline-offset:5px; }
 @keyframes prime-arrive { from { opacity:0; transform:translateY(25px) rotate(-7deg) scale(.96); } to { opacity:1; transform:none; } }
 @media(max-width:1100px) {
  .header-inner { gap:20px; }.nav-group { gap:24px; }.brand .brand-name { font-size:1.35rem; }
  .brand strong { font-size:1.05rem; }.brand img { width:49px; height:49px; }nav { gap:22px; }
  .liquid-stage { width:420px; height:510px; right:-25px; top:75px; opacity:.9; }
  .hero h1 { font-size:9.5vw; }.hero-grid { min-height:650px; }
  .orbit { width:530px; }.orbit-two { width:550px; }
 }
 @media(max-width:800px) {
  .header-inner { position:relative; grid-template-columns:44px 1fr 44px; gap:8px; min-height:92px; }
  .site-header .brand { gap:10px; }.site-header .brand img { width:46px; height:46px; }
  .brand .brand-name { font-size:1.2rem; }
  .menu-toggle { display:flex; grid-column:3; grid-row:1; flex-direction:column; justify-content:center; gap:6px; width:44px; height:44px; padding:12px; background:#142942; border-radius:4px; }
  .menu-toggle span { width:20px; height:2px; background:#c5e8ff; transition:transform .2s; }
  .menu-toggle[aria-expanded=true] span:first-child { transform:translateY(4px) rotate(45deg); }
  .menu-toggle[aria-expanded=true] span:last-child { transform:translateY(-4px) rotate(-45deg); }
  .site-header #navigation { display:none; position:absolute; top:100%; left:0; right:0; background:#071626; border:1px solid #23405e; padding:15px; }
  .site-header #navigation.is-open { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
  .nav-left,.nav-right { display:flex; flex-direction:column; align-items:stretch; justify-self:stretch; gap:4px; grid-row:auto; grid-column:auto; }
  .nav-group a { padding:13px 15px; font-size:.9rem; }
  .contact-grid { grid-template-columns:1.1fr .9fr; }
  .brand strong { font-size:1rem; }.brand small { font-size:.48rem; }nav { gap:16px; font-size:.8rem; }.button-small { padding:11px 14px; }
  .hero h1 { font-size:10.5vw; }.liquid-stage { right:-125px; opacity:.65; }.hero h1 .hero-subline { font-size:1.45rem; }
  .hero-grid { min-height:605px; }.hero-actions { flex-direction:row; }.prime-divider>.container { gap:20px; font-size:.58rem; }
  .service-card:nth-child(2) { padding-left:28px; }
 }
 /* Phone layout keeps the brand in the header and prioritizes useful content. */
 @media(max-width:800px) {
  .water-particles { display:none; }
  .site-header { backdrop-filter:none; background:#050e1b; }
 }
 @media(max-width:620px) {
  :root { scroll-padding-top:82px; }
  .container { width:calc(100% - 36px); }
  .review-banner { padding:5px 10px; font-size:.625rem; line-height:1.35; }
  .header-inner { grid-template-columns:44px minmax(0,1fr) 44px; gap:2px; min-height:68px; }
  .site-header .brand { gap:6px; min-height:44px; }
  .site-header .brand img { width:32px; height:32px; }
  .site-header .brand-name { font-size:clamp(.82rem,3.3vw,1.1rem); }
  .menu-toggle { width:44px; height:44px; padding:12px; }
  .site-header #navigation { left:-18px; right:-18px; padding:12px 18px; }
  .hero-grid { min-height:0; padding:30px 0 26px; }
  .hero-copy { z-index:3; }
  .hero h1 { font-size:clamp(2.5rem,11.4vw,3.6rem); line-height:.94; }
  .hero h1 .hero-subline { font-size:clamp(1.1rem,4.6vw,1.3rem); margin-top:16px; line-height:1.3; }
  .hero-copy .eyebrow { font-size:.59rem; letter-spacing:.11em; margin-bottom:18px; }
  .hero-invitation>p { font-size:.9375rem; line-height:1.6; margin-top:16px; max-width:100%; }
  .hero-actions { margin-top:20px; }
  .hero-actions .button { min-height:48px; padding:13px 24px; font-size:.9rem; }
  .hero-note { margin-top:14px; font-size:.75rem; }
  .liquid-stage,.hero-grid-lines,.hero-halo,.hero-coordinate { display:none; }
  .hero-bottom { padding:0; }
  .scroll-cue { min-height:44px; font-size:.6rem; letter-spacing:.1em; }
  .prime-divider>.container { padding-block:12px; gap:12px; font-size:.59rem; letter-spacing:.06em; }
  .prime-divider>.container>span:first-child { max-width:130px; }
  .prime-divider b { margin-inline:4px; }
  .section,.about,.contact-section { padding:44px 0; }
  .section-heading,.wash-section .section-heading { gap:16px; margin-bottom:24px; }
  .section-heading h2,.wash-section .section-heading h2,.about h2,.contact-copy h2 { font-size:clamp(1.9rem,8.2vw,2.25rem); line-height:1.08; }
  .eyebrow { margin-bottom:14px; font-size:.625rem; letter-spacing:.12em; }
  .section-heading>p,.service-card p,.about-copy>p,.contact-copy>p:not(.eyebrow) { font-size:.9375rem; line-height:1.65; }
  .service-grid { gap:0; }
  .service-card,.service-card:nth-child(2) { padding:24px 0; border:0; }
  .service-card:nth-child(2) { border-top:1px solid #34516a; }
  .service-icon { width:32px; height:32px; margin-bottom:16px; }
  .service-card h3 { font-size:1.4rem; margin-bottom:12px; }
  .service-card .service-detail { font-size:.8125rem; margin-top:14px; padding-top:14px; }
  .service-card .text-link { margin-top:12px; min-height:44px; }
  .service-card::after { display:none; }
  .wash-section { padding-bottom:44px; }
  .demo-disclaimer { margin-top:7px; font-size:.8125rem; }
  .wash-frame { padding:5px; }
  .comparison-scene { aspect-ratio:16/9; height:auto; }
  .comparison-label { font-size:.625rem; padding:5px 7px; }
  .wash-beam span { width:44px; height:44px; }
  .photo-credit { padding:4px 8px 8px; font-size:.75rem; line-height:1.5; }
  .about-grid { gap:22px; }
  .about-copy .large-copy { font-size:1.15rem; margin-bottom:16px; }
  .about-details { padding:18px 0; margin:20px 0; gap:18px; }
  .about-details strong { font-size:.8125rem; line-height:1.5; }
  .light-link { min-height:44px; }
  .gallery-placeholders { gap:0; }
  .gallery-placeholders .gallery-card { display:grid; grid-template-columns:84px minmax(0,1fr); gap:16px; align-items:center; padding:16px 0; border-bottom:1px solid #233d55; }
  .gallery-placeholders .gallery-card:first-child .gallery-image,.gallery-placeholders .gallery-image { height:84px; border-radius:3px; }
  .gallery-placeholders .image-badge { display:none; }
  .gallery-placeholders .placeholder-scene svg { padding:8px; }
  .gallery-placeholders figcaption { padding:0; }
  .gallery-placeholders h3 { font-size:1rem; }
  .gallery-placeholders p { font-size:.8125rem; line-height:1.45; }
  .contact-grid { grid-template-columns:1fr; gap:30px; }
  .contact-copy { margin-top:0; }
  .contact-copy>p:not(.eyebrow) { margin-top:16px; }
  .contact-details { margin-top:22px; gap:16px; }
  .contact-item { gap:12px; min-height:66px; font-size:1.125rem; overflow-wrap:anywhere; }
  .contact-item small { font-size:.75rem; margin-bottom:4px; }
  .contact-item svg { width:26px; height:26px; }
  .contact-item a[href^="mailto:"] { font-size:clamp(.95rem,4vw,1.125rem); }
  .contact-item a { display:inline-flex; align-items:center; min-height:44px; }
  form { padding:22px 18px; }
  form h3 { font-size:1.25rem; line-height:1.2; }
  .form-note { font-size:.8125rem; margin:10px 0 20px; }
  .form-privacy { font-size:.75rem; margin-top:12px; }
  label { margin-bottom:14px; font-size:.875rem; }
  input,select,textarea { font-size:1rem; min-height:48px; padding:11px 12px; }
  textarea { min-height:108px; }
  .form-submit { min-height:48px; padding:13px 18px; }
  footer { padding:28px 0 18px; }
  .footer-top { flex-wrap:wrap; align-items:center; gap:16px; padding-bottom:20px; }
  .footer-top .brand { min-height:44px; gap:8px; }
  .footer-top .brand img { width:36px; height:36px; }
  .footer-top .brand-name { font-size:1rem; }
  .back-top { display:inline-flex; align-items:center; min-height:44px; padding:8px; }
  .footer-bottom { gap:8px; padding-top:16px; }
  .footer-bottom>div { gap:18px; }
  .footer-bottom a { display:inline-flex; align-items:center; min-width:44px; min-height:44px; }
  .brand-name span { animation-iteration-count:1; }
 }
 @media(max-width:900px) and (max-height:500px) {
  .hero-grid { min-height:0; padding:30px 0; }
  .liquid-stage,.water-particles { display:none; }.hero h1 { font-size:3.5rem; }
 }
 @media(prefers-reduced-motion:reduce) { .liquid-drop { transform:none; } }

 /* Integrated PSP wordmark: original initials, surrounding blue/gold arcs. */
 .header-inner { width:min(1240px,calc(100% - 64px)); grid-template-columns:1fr auto 1fr; gap:48px; min-height:118px; }
 .site-header .brand { width:390px; max-width:100%; gap:0; }
 .nav-left { justify-self:end; }.nav-right { justify-self:start; }
 .nav-group { gap:28px; }
 .nav-group a,.socials-menu summary { display:inline-flex; align-items:center; justify-content:center; position:relative; white-space:nowrap; text-align:center; min-height:48px; padding:12px 20px; font-size:1.05rem; font-weight:700; letter-spacing:.025em; color:#e0edff; border:1px solid transparent; border-radius:10px; background:linear-gradient(#0a192a,#0a192a) padding-box,linear-gradient(110deg,#315375 0%,#315375 36%,#91cfff 46%,#fff3ce 50%,#e7c66c 54%,#315375 64%,#315375 100%) border-box; background-size:100% 100%,300% 100%; background-position:0 0,100% 0; box-shadow:0 3px 14px #00000018,inset 0 1px 0 #ffffff04; animation:nav-border-shimmer 18s linear infinite; transition:color .2s,box-shadow .2s,transform .2s; }
 .nav-left a:nth-child(2),.nav-right a:nth-child(2) { animation-delay:-4s; }
 .nav-right a { animation-delay:-8s; }
 .nav-right a:nth-child(2) { animation-delay:-12s; }
 .socials-menu summary { animation-delay:-16s; }
 .nav-group a:hover,.socials-menu summary:hover { color:#fff1c7; box-shadow:0 0 18px #3687ff22,inset 0 0 16px #3687ff0c; transform:translateY(-2px); }
 .nav-group a:focus-visible { outline:2px solid #ffe297; outline-offset:4px; }
 @keyframes nav-border-shimmer { from { background-position:0 0,100% 0; } to { background-position:0 0,0% 0; } }
 @media(prefers-reduced-motion:reduce) { .nav-group a,.socials-menu summary { animation:none; transition:none; }.nav-group a:hover,.socials-menu summary:hover { transform:none; } }
 .custom-wordmark { position:relative; display:block; width:100%; aspect-ratio:440/124; container-type:inline-size; isolation:isolate; }
 .wordmark-defs { position:absolute; width:0; height:0; overflow:hidden; }
 .wordmark-arcs { position:absolute; inset:0; width:100%; height:100%; opacity:.87; }
 .brand .wordmark-lines { position:absolute; inset:23% 10% 20%; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.12em; font-family:Arial,Helvetica,sans-serif; font-size:8cqi; font-weight:900; font-style:italic; line-height:1; letter-spacing:-.045em; text-transform:uppercase; }
 .wordmark-line { display:flex; justify-content:center; align-items:center; gap:.27em; white-space:nowrap; }
 .wordmark-line-bottom { font-size:.72em; letter-spacing:.005em; gap:.32em; }
 .wordmark-word { display:inline-flex; align-items:center; }
 .logo-initial { width:1.12em; height:.92em; flex:none; margin-right:-.15em; overflow:visible; transform:translateY(-.035em); }
 /* A shared alpha-clipped light crosses the entire wordmark, including PSP initials. */
 .wordmark-lines { filter:url(#wordmark-sweep); }
 @media(prefers-reduced-motion:reduce) { .wordmark-lines { filter:none; } }
 /* Italic glyphs extend beyond their advance width; keep that painted area inside the gradient. */
 .wordmark-letters { display:block; flex-shrink:0; padding:.12em .22em .12em .05em; margin-block:-.12em; margin-inline-end:-.22em; overflow:visible; color:#4e97fb; -webkit-text-fill-color:currentColor; }
 .wordmark-gold .wordmark-letters { color:#e8bd57; }
 @keyframes wordmark-shimmer { from { background-position:100% 0; } to { background-position:0% 0; } }
 .custom-wordmark::before { content:''; position:absolute; inset:12% 4%; z-index:-1; background:radial-gradient(ellipse,#2d74e520,transparent 72%); }
 /* A compact branded invitation above the contact fields. */
 form .email-psp-heading { position:relative; isolation:isolate; display:flex; align-items:center; justify-content:center; gap:16px; min-height:112px; width:fit-content; max-width:100%; margin:0 auto 28px; padding:4px 24px; }
 .email-psp-heading::before { content:''; position:absolute; z-index:-1; inset:12% -12%; border-radius:50%; background:radial-gradient(ellipse at 68% 50%,#dfb54c22,transparent 60%),radial-gradient(ellipse at 30% 55%,#3687ff32,transparent 68%); animation:email-aura 16s ease-in-out infinite; pointer-events:none; }
 .email-psp-heading::after { content:''; position:absolute; z-index:-1; inset:17% -3%; border-radius:50%; border-top:1px solid #5aabff66; border-bottom:1px solid #e6c36166; transform:rotate(-12deg); pointer-events:none; }
 .email-psp-word { font-size:clamp(2rem,4vw,2.8rem); font-weight:800; font-style:italic; letter-spacing:-.045em; line-height:1.2; padding-right:.14em; color:#cce5ff; background:linear-gradient(110deg,#87beff 0%,#87beff 36%,#d6ecff 46%,#fff 50%,#ffe8ad 54%,#87beff 64%,#87beff 100%); background-size:300% 100%; background-clip:text; -webkit-text-fill-color:transparent; animation:wordmark-shimmer 28s linear infinite; }
 .email-psp-logo { display:block; width:96px; height:auto; flex:none; overflow:visible; pointer-events:none; filter:drop-shadow(0 3px 14px #3687ff33); }
 .email-logo-piece { transform-box:view-box; animation-play-state:paused; }
 /* Separate lift from rotation so the flip never stalls at the top of the arc. */
 .email-logo-letter { animation:email-letter-hop 15s ease-in-out infinite paused; }
 .email-logo-letter>g { transform-box:view-box; transform-origin:inherit; animation:email-letter-flip 15s cubic-bezier(.45,0,.55,1) infinite paused; animation-delay:inherit; }
 .email-logo-first { transform-origin:17% 53%; }
 .email-logo-second { transform-origin:50% 53%; animation-delay:5s; }
 .email-logo-third { transform-origin:83% 53%; animation-delay:10s; }
 .email-logo-arch { animation:email-arch-lift 5s ease-in-out infinite paused; }
 .email-psp-logo[data-playing="true"] .email-logo-piece,.email-psp-logo[data-playing="true"] .email-logo-letter>g { animation-play-state:running; }
 @keyframes email-letter-hop {
  0%,3% { transform:translateY(0); }
  14.5% { transform:translateY(-140px); }
  26%,100% { transform:translateY(0); }
 }
 @keyframes email-letter-flip {
  0%,3% { transform:rotate(0deg); }
  26%,100% { transform:rotate(360deg); }
 }
 @keyframes email-arch-lift {
  0%,9% { transform:translateY(0); }
  43.5% { transform:translateY(-115px); }
  78%,100% { transform:translateY(0); }
 }
 @media(prefers-reduced-motion:reduce) { .email-logo-piece,.email-logo-letter>g { animation:none; transform:none; } }
 @keyframes email-aura { 0%,100% { opacity:.65; transform:scale(.96); } 50% { opacity:1; transform:scale(1.04); } }
 @media(max-width:620px) { form .email-psp-heading { min-height:88px; gap:12px; margin-bottom:22px; padding-inline:16px; }.email-psp-logo { width:74px; } }
 @media(prefers-reduced-motion:reduce) { .email-psp-heading::before,.email-psp-word { animation:none; } }
 /* Slow continuous orbit; paused offscreen and with reduced-motion preferences. */
 .liquid-stage { isolation:isolate; }
 /* Matching clipped halves share one orbit: rear arc, opaque logo, front arc. */
 .liquid-stage .liquid-float { z-index:2; }
 .logo-orbit { position:absolute; inset:40px -40px 40px -45px; transform:rotate(-28deg); }
 .logo-orbit-back { z-index:1; clip-path:inset(-32px -32px 50% -32px); }
 .logo-orbit-front { z-index:4; clip-path:inset(50% -32px -32px -32px); }
 .orbit-track { position:absolute; left:0; top:25%; width:100%; height:50%; border:1px solid #7cbded66; border-top-color:#9cd5ff9c; border-bottom-color:#edca7b99; border-radius:50%; }
 .orbit-track-outer { left:-10px; top:calc(25% - 7px); width:calc(100% + 20px); height:calc(50% + 14px); border-color:#dab76145; }
 .orbit-ball { position:absolute; top:0; left:0; width:26px; height:26px; border-radius:50%; offset-path:ellipse(50% 25% at 50% 50%); offset-rotate:0deg; offset-distance:0%; background:radial-gradient(circle at 30% 25%,#fff,#9ee4ff 12%,#2b97f1 36%,#0c2747 72%); box-shadow:0 0 18px #429aff55; animation:prime-orbit 24s linear infinite; }
 .orbit-ball-gold { width:18px; height:18px; offset-distance:50%; background:radial-gradient(circle at 30% 25%,#fffdf0,#ffeaa2 15%,#dfb448 40%,#76500c 76%); box-shadow:0 0 18px #d5b15d55; animation-name:prime-orbit-gold; }
 .orbit-ball-spark { width:7px; height:7px; offset-distance:22%; background:#e9f6ff; box-shadow:0 0 13px #b6e0ff; animation-name:prime-orbit-spark; }
 .liquid-stage[data-orbit-interactive="true"] .orbit-ball { animation:none; }
 @media(prefers-reduced-motion:no-preference) {
  .liquid-stage[data-orbit-interactive="true"] .orbit-ball { pointer-events:auto; cursor:grab; touch-action:none; }
  .liquid-stage[data-orbit-interactive="true"] .orbit-ball::after { content:''; position:absolute; width:44px; height:44px; left:50%; top:50%; transform:translate(-50%,-50%); border-radius:50%; }
  .orbit-ball:hover,.orbit-ball.is-grabbed { filter:brightness(1.2); }
  .orbit-grab-active,.orbit-grab-active * { cursor:grabbing !important; user-select:none; }
 }
 .logo-glint { position:absolute; inset:50px 20px 65px; z-index:3; border-radius:50%; background:linear-gradient(115deg,transparent 38%,#acdeff20 47%,#fff6d330 50%,transparent 59%); background-size:280% 100%; background-position:150% 0; mix-blend-mode:screen; opacity:0; pointer-events:none; animation:prime-glint 16s ease-in-out infinite; mask-image:radial-gradient(ellipse,#000 20%,transparent 68%); }
 .hero[data-orbit-motion="paused"] .orbit-ball,.hero[data-orbit-motion="paused"] .logo-glint { animation-play-state:paused; }
 @keyframes prime-orbit { from { offset-distance:0%; } to { offset-distance:100%; } }
 @keyframes prime-orbit-gold { from { offset-distance:50%; } to { offset-distance:150%; } }
 @keyframes prime-orbit-spark { from { offset-distance:22%; } to { offset-distance:122%; } }
 @keyframes prime-glint { 0% { opacity:0; background-position:150% 0; } 30% { opacity:1; } 85%,100% { opacity:0; background-position:-50% 0; } }
 @media(max-width:1100px) { .header-inner { gap:20px; }.site-header .brand { width:300px; }.nav-group { gap:16px; }.nav-group a { font-size:.95rem; padding-inline:14px; } }
 @media(max-width:800px) {
  .header-inner { width:calc(100% - 48px); grid-template-columns:44px minmax(0,1fr) 44px; gap:4px; min-height:88px; }
  .site-header .brand { width:290px; }.nav-left,.nav-right { justify-self:stretch; }.nav-group { gap:10px; }
  .nav-group a { justify-content:center; font-size:1rem; min-height:50px; padding:12px; }
 }
 @media(max-width:620px) {
  .header-inner { width:calc(100% - 36px); min-height:74px; }
  .site-header .brand { width:250px; }

  .liquid-stage { display:none; }
 }
}

/* Visual refinement: shared reading sizes and a static PSP-inspired contact backdrop. */
@layer prime {
 /* Clip decorative arcs without creating an internally scrollable focus container. */
 .contact-section { isolation:isolate; overflow:clip; background:radial-gradient(ellipse at 85% 18%,#174b7b85,transparent 58%),radial-gradient(ellipse at 4% 95%,#18578170,transparent 55%),linear-gradient(125deg,#0b223b,#061222 72%); }
 .contact-section::before,.contact-section::after { content:''; position:absolute; pointer-events:none; z-index:-1; border-radius:50%; transform:rotate(-24deg); }
 .contact-section::before { width:900px; height:620px; right:-330px; top:-300px; border:2px solid #60a9f84d; box-shadow:0 0 0 32px #3987ff0c,0 0 0 68px #3987ff09,0 0 85px #3687ff16; }
 .contact-section::after { width:740px; height:300px; left:-190px; bottom:-190px; border:2px solid #efc65b59; box-shadow:0 0 0 24px #efc65b08,0 0 0 55px #3687ff0c; }
 .contact-section form { background:linear-gradient(145deg,#102940,#0a1b2e); border-color:#416788; box-shadow:0 18px 44px #01091340,inset 0 1px 0 #acd4ff12; }
 @media(min-width:901px) {
  .hero-grid { min-height:620px; padding-block:58px 56px; }
  .hero h1 { font-size:clamp(5rem,8vw,7rem); }
  .liquid-stage { top:30px; }
  .hero-bottom { padding-block:8px; }
  .section { padding-block:76px; }
  .services { padding-top:42px; }
  .wash-section { padding-bottom:76px; }
  .about,.contact-section { padding-block:76px; }
  .section-heading,.wash-section .section-heading { gap:48px; margin-bottom:32px; }
  .section-heading>p { max-width:440px; font-size:1.0625rem; line-height:1.7; }
  .hero-invitation>p,.contact-copy>p:not(.eyebrow) { font-size:1.0625rem; line-height:1.7; }
  .service-card,.service-card:nth-child(2) { display:flex; flex-direction:column; align-items:flex-start; padding-top:32px; padding-bottom:24px; }
  .service-icon { margin-bottom:24px; }
  .service-card .text-link { margin-top:auto; }
  .service-card .service-detail { margin-top:16px; margin-bottom:12px; padding-top:16px; }
  .comparison-scene { aspect-ratio:16/9; }
  .about-grid,.contact-grid { gap:56px; }
  .about-copy { padding-top:12px; }
  .about-details { margin-block:22px; padding-block:20px; }
  .gallery-image { height:250px; }
  .contact-copy>p:not(.eyebrow) { max-width:420px; }
  .eyebrow,.hero-copy .eyebrow { font-size:.8125rem; letter-spacing:.13em; margin-bottom:18px; }
  .scroll-cue { font-size:.8125rem; }
  .hero-note { font-size:.875rem; margin-top:20px; }
  .hero-actions .button,.form-submit { font-size:1rem; }
  .service-card .service-detail,.gallery-card p,.demo-disclaimer { font-size:.9375rem; }
  .service-card .service-detail { color:#adc0d2; }
  .gallery-image .image-badge { font-size:.8125rem; letter-spacing:.025em; }
  .about-details span { font-size:.75rem; }
  .about-details strong { font-size:.9375rem; line-height:1.5; }
  .contact-item small { font-size:.875rem; color:#a8bfd6; }
  label { font-size:.9375rem; }
  .comparison-label { font-size:.8125rem; }
  .footer-bottom { font-size:.875rem; }
  .back-top { font-size:.9375rem; }
 }
}

/* Adapt composition at the existing phone breakpoint and where columns become cramped. */
@layer prime {
 .contact-grid>*,.about-grid>*,.section-heading>* { min-width:0; }
 .gallery-image .image-badge { max-width:calc(100% - 32px); line-height:1.45; }
 .prose h2 { font-size:1.5rem; line-height:1.2; }
 @media(min-width:901px) and (max-width:1100px) {
  .contact-grid { gap:32px; grid-template-columns:1.1fr 1fr; }
  .contact-grid .form-row { grid-template-columns:1fr 1fr; gap:14px; }
  .contact-copy h2 { font-size:2.7rem; }
  .contact-item { font-size:1.25rem; gap:12px; }
  .liquid-stage { width:360px; height:460px; right:-12px; top:48px; }
 }
 @media(min-width:621px) and (max-width:900px) {
  .hero-grid { min-height:0; padding:44px 0 38px; }
  .hero-copy { max-width:60%; }
  .hero h1 { font-size:clamp(3.2rem,8vw,4.5rem); }
  .hero h1 .hero-subline { font-size:1.3rem; }
  .hero-copy .eyebrow { font-size:.75rem; letter-spacing:.08em; }
  .hero-invitation>p { font-size:1rem; }
  .liquid-stage { width:34vw; max-width:290px; height:360px; right:0; top:64px; opacity:1; }
  .liquid-stage .liquid-float { inset:35px 15px 40px; }
  .logo-orbit { inset:40px -15px; }
  .hero-bottom { padding-block:6px; }
  .section,.about,.contact-section { padding-block:56px; }
  .services { padding-top:32px; }
  .wash-section { padding-bottom:56px; }
  .section-heading,.wash-section .section-heading { grid-template-columns:1fr; gap:18px; margin-bottom:26px; }
  .section-heading>p { max-width:560px; font-size:1rem; }
  .section-heading h2,.about h2,.contact-copy h2 { font-size:2.75rem; }
  .service-card,.service-card:nth-child(2) { display:flex; flex-direction:column; align-items:flex-start; padding-top:26px; padding-bottom:18px; }
  .service-icon { margin-bottom:20px; }
  .service-card p { font-size:1rem; }
  .service-card .service-detail { font-size:.875rem; margin-bottom:12px; }
  .service-card .text-link { margin-top:auto; }
  .about-grid { grid-template-columns:1fr; gap:26px; }
  .about-copy { padding-top:0; }
  .about-copy .large-copy { font-size:1.4rem; max-width:580px; }
  .about-details { grid-template-columns:1fr 1fr; }
  .gallery-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
  .gallery-card:first-child { grid-column:auto; }
  .gallery-image,.gallery-card:first-child .gallery-image { height:170px; }
  .gallery-image .image-badge { left:8px; bottom:8px; max-width:calc(100% - 16px); font-size:.6875rem; padding:4px 6px; }
  .gallery-card p { font-size:.875rem; }
  .contact-grid { grid-template-columns:1fr; gap:36px; }
  .contact-grid .form-row { grid-template-columns:1fr 1fr; }
  .contact-copy { display:grid; grid-template-columns:.85fr 1.3fr; gap:18px 28px; }
  .contact-copy h2 { font-size:clamp(2rem,4.5vw,2.3rem); align-self:end; }
  .contact-copy>p:not(.eyebrow) { margin:0; font-size:1rem; }
  .contact-details { grid-column:2; grid-row:1 / span 2; margin:0; gap:14px; }
  .contact-item { font-size:1.1rem; gap:12px; min-height:68px; }
  .contact-item svg { width:26px; height:26px; }
  .contact-section::before { right:-480px; top:-250px; }
 }
 @media(max-width:900px) {
  .scroll-cue,.hero-note { font-size:.8125rem; }
  .eyebrow { font-size:.75rem; }
  .about-details span { font-size:.75rem; }
  .about-details strong { font-size:.875rem; }
  .contact-item small { color:#adc5dc; font-size:.75rem; }
  .footer-bottom { font-size:.8125rem; }
  .back-top { font-size:.875rem; }
  .prose h1 { font-size:clamp(2rem,7vw,3rem); overflow-wrap:anywhere; }
 }
 @media(max-width:620px) {
  .services { padding-top:28px; }
  .section-heading>p,.service-card p,.about-copy>p,.contact-copy>p:not(.eyebrow) { font-size:1rem; }
  .hero-copy .eyebrow { font-size:.6875rem; letter-spacing:.08em; }
  .scroll-cue { font-size:.75rem; }
  .service-card .service-detail,.gallery-placeholders p,.demo-disclaimer { font-size:.875rem; }
  .gallery-placeholders .gallery-card { grid-template-columns:76px minmax(0,1fr); gap:14px; }
  .gallery-placeholders .gallery-image,.gallery-placeholders .gallery-card:first-child .gallery-image { height:76px; }
  .about-details { gap:16px; }
  .contact-section::before { width:580px; height:480px; right:-360px; top:-180px; }
  .contact-section::after { width:480px; height:280px; bottom:-200px; left:-180px; }
  .contact-grid { gap:32px; }
  .contact-copy { display:block; }
  .contact-details { margin-top:24px; }
  .contact-copy>p:not(.eyebrow) { margin-top:16px; }
  .footer-bottom { align-items:flex-start; }
  .prose { margin-block:40px; }
  .prose h2 { font-size:1.35rem; }
 }
 @media(max-width:900px) and (max-height:500px) {
  .header-inner { min-height:74px; }
  .site-header .brand { width:220px; }
  .hero-copy { max-width:100%; }
  .hero-grid { padding-block:28px; }
  .hero h1 { font-size:3.2rem; }
 }
}

/* Compact handheld rhythm; centered story and bounded ultrawide composition. */
@layer prime {
 .about-grid { grid-template-columns:minmax(0,1fr); gap:24px; text-align:center; }
 .about-heading,.about-copy { width:100%; max-width:760px; margin-inline:auto; }
 .about-copy { padding-top:0; }
 .about-copy .large-copy { max-width:none; margin-bottom:18px; }
 .about-copy>p:not(.large-copy) { max-width:65ch; margin-inline:auto; }
 .about-divider { border:0; border-top:1px solid #ffffff25; margin:24px 0; }
 .comparison-intro { text-align:center; margin:0 0 24px; font-size:1rem; line-height:1.6; }
 .hero-copy,.service-card,.gallery-card,.contact-item>div { min-width:0; }
 .contact-item a { overflow-wrap:anywhere; }
 @media(min-width:1800px) {
  .container { width:min(1560px,calc(100% - 160px)); }
  .hero-grid { min-height:620px; }
  .hero-copy { max-width:760px; }
  .liquid-stage { right:55px; }
  .section-heading { grid-template-columns:1.15fr 1fr; }
  .section-heading>p { max-width:48ch; }
  .contact-grid { gap:80px; }
  .comparison-scene { aspect-ratio:16/9; }
 }
 @media(min-width:621px) and (max-width:1100px) {
  .section-heading h2,.wash-section .section-heading h2,.about h2 { font-size:2.4rem; line-height:1.12; }
  .section,.about,.contact-section { padding-block:48px; }
  .services { padding-top:30px; }
  .wash-section { padding-bottom:48px; }
  .section-heading { gap:20px; margin-bottom:24px; }
  .service-card h3 { font-size:1.6rem; }
  .about-copy .large-copy { font-size:1.25rem; }
  form .email-psp-heading { min-height:82px; margin-bottom:20px; }
  .email-psp-logo { width:72px; }
  .email-psp-word { font-size:2rem; }
 }
 @media(max-width:620px) {
  .container { width:calc(100% - 32px); }
  .header-inner { min-height:68px; }
  .site-header .brand { width:clamp(180px,60vw,240px); }
  .hero-grid { padding-block:26px 22px; }
  .hero h1 { font-size:clamp(2.15rem,9.5vw,2.75rem); }
  .hero h1 .hero-subline { font-size:1.05rem; margin-top:12px; }
  .hero-invitation>p { font-size:.9375rem; margin-top:14px; }
  .hero-actions { margin-top:16px; }
  .section,.about,.contact-section { padding-block:36px; }
  .services { padding-top:24px; }
  .wash-section { padding-bottom:36px; }
  .section-heading,.wash-section .section-heading { gap:12px; margin-bottom:20px; }
  .section-heading h2,.wash-section .section-heading h2,.about h2,.contact-copy h2 { font-size:clamp(1.75rem,7.4vw,2rem); line-height:1.12; }
  .section-heading>p,.service-card p,.about-copy>p,.contact-copy>p:not(.eyebrow) { font-size:.9375rem; line-height:1.6; }
  .eyebrow { font-size:.6875rem; margin-bottom:12px; }
  .service-card,.service-card:nth-child(2) { padding-block:20px; }
  .service-card h3 { font-size:1.3rem; margin-bottom:10px; }
  .service-icon { width:28px; height:28px; margin-bottom:12px; }
  .about-grid { gap:16px; }
  .about-copy .large-copy { font-size:1.05rem; margin-bottom:14px; }
  .about-details { margin-block:16px; padding-block:16px; gap:14px; }
  .about-details strong { font-size:.8125rem; }
  .contact-grid { gap:26px; }
  .contact-section form { padding:20px 16px; }
  form .email-psp-heading { min-height:64px; gap:10px; margin-bottom:18px; padding-inline:12px; }
  .email-psp-logo { width:60px; }
  .email-psp-word { font-size:1.65rem; }
  .contact-item { font-size:1rem; min-height:56px; }
  .contact-item a[href^="mailto:"] { font-size:clamp(.875rem,3.8vw,1rem); }
  .contact-item svg { width:22px; height:22px; }
  .contact-details { gap:12px; margin-top:18px; }
  .gallery-placeholders .gallery-card { padding-block:12px; }
  input,select,textarea { font-size:1rem; } /* Avoid mobile focus zoom. */
 }
}
