/* Homepage only. Navy canvas, blue light, and a steady reading surface. */
@property --ps-neon-angle {
 syntax: '<angle>';
 initial-value: 0deg;
 inherits: false;
}
body.ps-neon-home {
 --ps-blue: #174fc5;
 --ps-blue-hover: #103b9c;
 --ps-blue-soft: #eaf1ff;
 --ps-accent: #295eb7;
 --ps-neon-stroke: #316fe95c;
 --ps-neon-light: #3879f2;
}
html[data-home-theme=dark] body.ps-neon-home {
 --ps-bg: #070f21;
 --ps-surface: #0d1b33;
 --ps-ink: #edf4ff;
 --ps-muted: #adbfdb;
 --ps-blue: #97bdff;
 --ps-blue-hover: #c5daff;
 --ps-blue-soft: #142d53;
 --ps-accent: #8db8ff;
 --ps-border: #253d61;
 --ps-neon-stroke: #4a87eb73;
 --ps-neon-light: #82bcff;
}
body.ps-neon-home .ps-hero {
 --ps-bg: #f5f8ff;
 --ps-surface: #ffffff;
 --ps-ink: #142544;
 --ps-muted: #40536f;
 --ps-blue: #174fc5;
 --ps-blue-hover: #103b9c;
 --ps-blue-soft: #e7efff;
 --ps-border: #c5d4ec;
 --ps-success: #17734e;
 --ps-neon-light: #3879f2;
 --ps-neon-stroke: #316fe95c;
 --ps-hero-panel-top: #edf3ff;
 --ps-hero-shadow: #18355a18;
 background: var(--ps-bg);
 padding-block: 64px 48px;
 border-bottom: 1px solid var(--ps-border);
}
html[data-home-theme=dark] body.ps-neon-home .ps-hero {
 --ps-bg: #09172f;
 --ps-surface: #0d203e;
 --ps-ink: #edf4ff;
 --ps-muted: #b1c4e0;
 --ps-blue: #91c3ff;
 --ps-blue-hover: #c8e1ff;
 --ps-blue-soft: #122f57;
 --ps-border: #2b4870;
 --ps-success: #89dfc3;
 --ps-neon-light: #82bcff;
 --ps-neon-stroke: #4a87eb73;
 --ps-hero-panel-top: #122a4c;
 --ps-hero-shadow: #01081880;
 background: #071328;
}
body.ps-neon-home .ps-hero::before {
 background:
  radial-gradient(ellipse at 14% 40%, #1456b13b, transparent 57%),
  radial-gradient(ellipse at 86% 8%, #2863ba24, transparent 50%),
  linear-gradient(120deg, transparent 48%, #183a6220 49%, transparent 69%);
}
.ps-neon-home .ps-hero::after {
 content: '';
 position: absolute;
 inset: auto 0 -1px;
 height: 1px;
 background: linear-gradient(90deg, transparent 10%, #2866ca, #b6e1ff, #2866ca, transparent 90%);
 background-size: 200% 100%;
 animation: ps-neon-horizon 9s ease-in-out infinite;
 pointer-events: none;
}
.ps-neon-home .ps-hero__grid { gap: 48px; }
.ps-neon-home .ps-hero-title {
 font-size: clamp(36px, 3.2vw, 46px);
 line-height: 1.8;
 letter-spacing: -.04em;
 color: var(--ps-ink);
 text-shadow: 0 2px 18px var(--ps-hero-shadow);
}
.ps-neon-home .ps-type-line { display: block; position: relative; }
.ps-neon-home .ps-type-ink { position: absolute; inset: 0; }
.ps-neon-home [data-type-active] .ps-type-source { visibility: hidden; }
.ps-neon-home .ps-hero-title em {
 color: var(--ps-blue);
 text-shadow: 0 0 8px #5aa6ff45, 0 0 28px #2677e54d, 0 0 56px #145ec633;
 animation: ps-neon-text 6s ease-in-out infinite;
}
.ps-neon-home [data-typing=current] .ps-type-ink::after {
 content: '';
 display: inline-block;
 width: 2px;
 height: .75em;
 margin-inline: 4px -6px;
 vertical-align: -.04em;
 background: var(--ps-blue);
 box-shadow: 0 0 10px #77b7ff;
 animation: ps-neon-caret 1s step-end infinite;
}
.ps-neon-home .ps-hero .ps-eyebrow {
 color: var(--ps-blue);
 letter-spacing: .01em;
}
.ps-neon-home .ps-hero .ps-eyebrow::before {
 width: 26px;
 background: var(--ps-blue);
 box-shadow: 0 0 12px #4c96ff99;
}
.ps-neon-home .ps-hero .ps-btn--primary {
 background: linear-gradient(135deg, #205ac8, #123c92);
 color: #f4f8ff !important;
 box-shadow: 0 7px 24px var(--ps-hero-shadow), inset 0 1px 0 #c2dfff24;
}
.ps-neon-home .ps-hero .ps-btn--primary:hover {
 background: linear-gradient(135deg, #2769df, #184ba9);
 box-shadow: 0 8px 28px #1c62cb40;
}
.ps-neon-home .ps-hero .ps-btn--secondary {
 background: var(--ps-surface);
 box-shadow: inset 0 1px 0 #d3e7ff0a;
}
.ps-neon-home .ps-search {
 position: relative;
 border-color: var(--ps-border);
 background: var(--ps-surface);
 box-shadow: 0 10px 28px var(--ps-hero-shadow);
}
.ps-neon-home .ps-art-panel {
 background: linear-gradient(145deg, var(--ps-hero-panel-top), var(--ps-surface));
 border-color: var(--ps-border);
 box-shadow: 0 22px 70px var(--ps-hero-shadow), 0 0 42px #1b65c81c, inset 0 1px 0 #daeaff12;
}
.ps-neon-home .ps-art-app > span {
 background: linear-gradient(145deg, var(--ps-blue-soft), var(--ps-surface));
 border-color: var(--ps-border);
 box-shadow: inset 0 1px 0 #b6d9ff12, 0 5px 14px var(--ps-hero-shadow);
}
.ps-neon-home .ps-art-note, .ps-neon-home .ps-hero-float {
 background: var(--ps-surface);
 border-color: var(--ps-border);
 box-shadow: 0 9px 28px var(--ps-hero-shadow), inset 0 1px 0 #bcdcff0d;
 color: var(--ps-muted);
}
.ps-neon-home .ps-hero-glow--blue {
 background: radial-gradient(circle, #2769d852, transparent 70%);
}
.ps-neon-home .ps-hero-glow--violet {
 background: radial-gradient(circle, #246ba836, transparent 70%);
}
.ps-neon-home .ps-hero-orbit { border-color: var(--ps-border); }
.ps-neon-home .ps-hero-orbit--inner { border-color: var(--ps-border); }
.ps-neon-home .ps-hero-orbit--inner > span {
 background: var(--ps-blue);
 box-shadow: 0 0 12px #5ca5ff, 0 0 0 6px #569eff12;
}
.ps-neon-home .ps-art-orbit { border-color: var(--ps-border); }
.ps-neon-home .ps-hero-spark--two { color: var(--ps-blue); }
.ps-neon-home .ps-hero-float--cloud > i { color: var(--ps-blue); }
.ps-neon-home .ps-section-head h2 { position: relative; }
.ps-neon-home .ps-section-head h2::after {
 content: '';
 display: block;
 width: 44px;
 height: 2px;
 margin-top: 9px;
 border-radius: 2px;
 background: linear-gradient(90deg, transparent, var(--ps-blue));
 box-shadow: 0 0 12px #4a88ec45;
 transform-origin: right;
 animation: ps-neon-underline 6s ease-in-out infinite;
}
/* Each service keeps its own accent; the surrounding cards stay navy/white. */
body.ps-neon-home.ps-home-page .ps-category .ps-category__icon {
 background: var(--service-tint);
 color: var(--service-ink);
 box-shadow: inset 0 1px 0 #ffffff18;
}
.ps-neon-home [data-service-icon="bi-apple"] { --service-ink: #215bcc; --service-tint: #eaf1ff; }
.ps-neon-home [data-service-icon="bi-cpu"] { --service-ink: #7042bd; --service-tint: #f0eafd; }
.ps-neon-home [data-service-icon="bi-stars"] { --service-ink: #916009; --service-tint: #fff3d6; }
.ps-neon-home [data-service-icon="bi-code-square"] { --service-ink: #08756b; --service-tint: #e0f5ef; }
.ps-neon-home [data-service-icon="bi-headphones"] { --service-ink: #b33468; --service-tint: #fce9f1; }
.ps-neon-home [data-service-icon="bi-phone"] { --service-ink: #aa4d1a; --service-tint: #fff0e4; }
html[data-home-theme=dark] .ps-neon-home [data-service-icon="bi-apple"] { --service-ink: #9ec8ff; --service-tint: #17345b; }
html[data-home-theme=dark] .ps-neon-home [data-service-icon="bi-cpu"] { --service-ink: #c8b1ff; --service-tint: #30264d; }
html[data-home-theme=dark] .ps-neon-home [data-service-icon="bi-stars"] { --service-ink: #f2cf78; --service-tint: #3e321a; }
html[data-home-theme=dark] .ps-neon-home [data-service-icon="bi-code-square"] { --service-ink: #7ee0ca; --service-tint: #153b3b; }
html[data-home-theme=dark] .ps-neon-home [data-service-icon="bi-headphones"] { --service-ink: #ffabc8; --service-tint: #40253e; }
html[data-home-theme=dark] .ps-neon-home [data-service-icon="bi-phone"] { --service-ink: #ffc18f; --service-tint: #3f3028; }
html[data-home-theme=dark] .ps-neon-home :is(.ps-section-head h2, .ps-final h2) {
 color: #d9eaff;
 text-shadow: 0 0 22px #2b72d52b;
}
.ps-neon-home .ps-final {
 position: relative;
 border-color: var(--ps-border);
 background: linear-gradient(120deg, var(--ps-blue-soft), var(--ps-surface));
 box-shadow: 0 12px 38px #071b4610;
}
/* A masked one-pixel light trail leaves the content and hit areas untouched. */
.ps-neon-home :is(.ps-art-panel, .ps-final, .ps-category, .ps-hero__actions .ps-btn) {
 position: relative;
}
@supports (mask-composite: exclude) or (-webkit-mask-composite: xor) {
 .ps-neon-home :is(.ps-art-panel, .ps-final, .ps-category, .ps-search, .ps-hero__actions .ps-btn)::before {
  content: '';
  position: absolute;
  inset: -1px;
  padding: 1px;
  border-radius: inherit;
  background: conic-gradient(from var(--ps-neon-angle), transparent 0deg 235deg, var(--ps-neon-stroke) 270deg, var(--ps-neon-light) 305deg, transparent 345deg);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  mask-composite: exclude;
  animation: ps-neon-border 9s linear infinite;
  pointer-events: none;
 }
 .ps-neon-home .ps-final::before { animation-duration: 14s; }
 .ps-neon-home .ps-search::before { animation-duration: 12s; animation-direction: reverse; }
 .ps-neon-home .ps-category::before { animation-play-state: paused; opacity: .35; transition: opacity .25s; }
 .ps-neon-home .ps-category:is(:hover, :focus-visible)::before { animation-play-state: running; opacity: 1; }
}
@keyframes ps-neon-border { to { --ps-neon-angle: 360deg; } }
@keyframes ps-neon-horizon { 50% { background-position: 100% 0; opacity: .55; } }
@keyframes ps-neon-text { 50% { text-shadow: 0 0 10px #5aa6ff66, 0 0 34px #2677e566, 0 0 64px #145ec640; } }
@keyframes ps-neon-caret { 50% { opacity: 0; } }
@keyframes ps-neon-underline { 50% { transform: scaleX(1.4); opacity: .7; } }
@media (max-width: 1100px) and (min-width: 768px) {
 .ps-neon-home .ps-hero-title { font-size: clamp(27px, 3.2vw, 36px); }
 .ps-neon-home .ps-hero__grid { gap: 26px; }
}
@media (max-width: 767px) {
 body.ps-neon-home .ps-hero { padding-block: 30px 28px; }
 .ps-neon-home .ps-hero-title { font-size: clamp(24px, 7.1vw, 34px); line-height: 1.85; }
 .ps-neon-home .ps-hero__grid { gap: 26px; }
 .ps-neon-home .ps-hero__copy > p { font-size: 13px; }
 .ps-neon-home .ps-art-panel { transform: none; }
 .ps-neon-home .ps-art-panel::before { animation-duration: 14s; }
 .ps-neon-home .ps-hero-spark { display: none; }
}
@media (prefers-reduced-motion: reduce) {
 .ps-neon-home *, .ps-neon-home *::before, .ps-neon-home *::after {
  animation: none !important;
  transition: none !important;
 }
}
