:root {
  --nw-navy: #113744;
  --nw-teal: #3295ad;
  --nw-orange: #f0440d;
  --nw-ink: #172126;
  --nw-mist: #eaf5f7;
  --nw-cloud: #f5f7f8;
  --nw-white: #fff;
  --nw-shadow: 0 24px 70px rgba(17, 55, 68, 0.13);
}

html { scroll-behavior: smooth; }
body { overflow-x: hidden; }

/* Enforce the NIL Wizard type system on the live site and inside Gutenberg.
   Some parent-theme block styles can otherwise reintroduce a monospace font
   on blocks created manually in the editor. */
body,
body p,
body li,
body a,
body button,
body input,
body textarea,
body .wp-block-group,
body .wp-block-column,
.editor-styles-wrapper,
.editor-styles-wrapper p,
.editor-styles-wrapper li,
.editor-styles-wrapper a,
.editor-styles-wrapper button,
.editor-styles-wrapper input,
.editor-styles-wrapper textarea,
.editor-styles-wrapper .wp-block-group,
.editor-styles-wrapper .wp-block-column {
  font-family: "Avenir Next", "Segoe UI", Helvetica, Arial, sans-serif !important;
}

body h1,
body h2,
body h3,
body h4,
body h5,
body h6,
.editor-styles-wrapper h1,
.editor-styles-wrapper h2,
.editor-styles-wrapper h3,
.editor-styles-wrapper h4,
.editor-styles-wrapper h5,
.editor-styles-wrapper h6 {
  font-family: "Arial Black", "Avenir Next", "Segoe UI", Helvetica, Arial, sans-serif !important;
  letter-spacing: -.025em;
}

/* A branded wand cursor for mouse/trackpad visitors. The hot spot is the
   glowing tip, so clicking still feels precise. */
@media (hover: hover) and (pointer: fine) {
  body,
  a,
  button,
  [role="button"],
  input[type="button"],
  input[type="submit"],
  .wp-element-button,
  .wp-block-button__link {
    cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath d='M7 27 24 10' stroke='%23113744' stroke-width='5' stroke-linecap='round'/%3E%3Cpath d='M7 27 24 10' stroke='%23f0440d' stroke-width='2.2' stroke-linecap='round'/%3E%3Cpath d='m25 2 1.3 4.2L30 8l-3.7 1.8L25 14l-1.3-4.2L20 8l3.7-1.8L25 2Z' fill='%23f0440d' stroke='white' stroke-width='1'/%3E%3Ccircle cx='25' cy='8' r='2' fill='white'/%3E%3C/svg%3E") 25 8, pointer;
  }

  input:not([type="button"]):not([type="submit"]),
  textarea,
  [contenteditable="true"] { cursor: text; }
}

.nw-cursor-spark {
  background: var(--nw-orange);
  clip-path: polygon(50% 0%, 61% 38%, 100% 50%, 61% 62%, 50% 100%, 39% 62%, 0% 50%, 39% 38%);
  filter: drop-shadow(0 0 5px rgba(240,68,13,.72));
  height: var(--nw-spark-size, 8px);
  left: 0;
  opacity: 0;
  pointer-events: none;
  position: fixed;
  top: 0;
  transform: translate(-50%, -50%);
  width: var(--nw-spark-size, 8px);
  z-index: 999999;
  animation: nw-cursor-spark .72s ease-out forwards;
}

.nw-touch-wand,
.nw-touch-ring {
  left: 0;
  pointer-events: none;
  position: fixed;
  top: 0;
  z-index: 999999;
}

.nw-touch-wand {
  animation: nw-touch-wand .58s ease-out forwards;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='36' viewBox='0 0 32 32'%3E%3Cpath d='M7 27 24 10' stroke='%23113744' stroke-width='5' stroke-linecap='round'/%3E%3Cpath d='M7 27 24 10' stroke='%23f0440d' stroke-width='2.2' stroke-linecap='round'/%3E%3Cpath d='m25 2 1.3 4.2L30 8l-3.7 1.8L25 14l-1.3-4.2L20 8l3.7-1.8L25 2Z' fill='%23f0440d' stroke='white' stroke-width='1'/%3E%3Ccircle cx='25' cy='8' r='2' fill='white'/%3E%3C/svg%3E") center / contain no-repeat;
  height: 36px;
  transform: translate(-78%, -22%);
  width: 36px;
}

.nw-touch-ring {
  animation: nw-touch-ring .55s ease-out forwards;
  border: 2px solid rgba(240,68,13,.7);
  border-radius: 50%;
  height: 12px;
  transform: translate(-50%, -50%);
  width: 12px;
}

.nw-kicker {
  color: var(--nw-orange);
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
}

/* Dedicated launch-preview typography. This selector deliberately outranks
   block-level font choices saved by Gutenberg or the parent theme. */
.nw-launch-preview,
.nw-launch-preview * {
  font-family: "Avenir Next", "Segoe UI", Helvetica, Arial, sans-serif !important;
}

.nw-launch-preview h1,
.nw-launch-preview h2,
.nw-launch-preview h3,
.nw-launch-preview h4,
.nw-launch-preview h5,
.nw-launch-preview h6 {
  font-family: "Arial Black", "Avenir Next", "Segoe UI", Helvetica, Arial, sans-serif !important;
  font-weight: 800 !important;
  letter-spacing: -.025em;
}

.nw-hero {
  isolation: isolate;
  min-height: 680px;
  overflow: hidden;
  position: relative;
}

.nw-hero > :not(.nw-magic-canvas) {
  position: relative;
  z-index: 2;
}

.nw-magic-canvas {
  height: 100%;
  inset: 0;
  pointer-events: none;
  position: absolute;
  width: 100%;
  z-index: 1;
}

.nw-hero::before {
  animation: nw-aurora 14s ease-in-out infinite alternate;
  background:
    radial-gradient(circle at 15% 20%, rgba(50,149,173,.22), transparent 34%),
    radial-gradient(circle at 86% 12%, rgba(240,68,13,.16), transparent 29%),
    linear-gradient(135deg, #f8fcfd 0%, #fff 58%, #fdf5f2 100%);
  background-size: 118% 118%;
  content: "";
  inset: 0;
  position: absolute;
  z-index: -2;
}

.nw-hero::after {
  background-image: linear-gradient(rgba(17,55,68,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(17,55,68,.045) 1px, transparent 1px);
  background-size: 54px 54px;
  content: "";
  inset: 0;
  mask-image: linear-gradient(to bottom, black, transparent 90%);
  position: absolute;
  z-index: -1;
}

.nw-hero-title strong { color: var(--nw-orange); }

.nw-orbit {
  animation: nw-float 6s ease-in-out infinite;
  background: rgba(255,255,255,.86);
  border: 1px solid rgba(50,149,173,.22);
  border-radius: 18px;
  box-shadow: var(--nw-shadow);
  padding: 1rem 1.15rem;
  position: relative;
}
.nw-orbit:nth-child(2) { animation-delay: -2s; }
.nw-orbit:nth-child(3) { animation-delay: -4s; }

.nw-orbit::after {
  animation: nw-star-pulse 3.6s ease-in-out infinite;
  background: linear-gradient(135deg, var(--nw-orange), #ff9a78);
  clip-path: polygon(50% 0%, 60% 38%, 100% 50%, 60% 62%, 50% 100%, 40% 62%, 0% 50%, 40% 38%);
  content: "";
  filter: drop-shadow(0 0 8px rgba(240,68,13,.42));
  height: 15px;
  opacity: .75;
  position: absolute;
  right: 1rem;
  top: 1rem;
  width: 15px;
}

.nw-orbit:nth-child(2)::after { animation-delay: -1.2s; }
.nw-orbit:nth-child(3)::after { animation-delay: -2.4s; }

.nw-path-card,
.nw-video-card {
  background: var(--nw-white);
  border: 1px solid rgba(17,55,68,.11);
  border-radius: 22px;
  box-shadow: 0 14px 45px rgba(17,55,68,.08);
  height: 100%;
  padding: clamp(1.25rem, 3vw, 2rem);
  position: relative;
  transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease;
}

.nw-path-card::before {
  background: var(--nw-orange);
  border-radius: 99px;
  content: "";
  height: 4px;
  left: 1.5rem;
  position: absolute;
  top: 0;
  width: 58px;
}

.nw-path-card::after,
.nw-video-card::after {
  background: radial-gradient(circle, rgba(50,149,173,.24), transparent 67%);
  border-radius: 50%;
  content: "";
  height: 105px;
  opacity: 0;
  pointer-events: none;
  position: absolute;
  right: -30px;
  top: -30px;
  transform: scale(.6);
  transition: opacity .3s ease, transform .3s ease;
  width: 105px;
}

.nw-path-card:hover,
.nw-video-card:hover {
  border-color: rgba(240,68,13,.35);
  box-shadow: 0 24px 60px rgba(17,55,68,.14);
  transform: translateY(-7px);
}

.nw-path-card:hover::after,
.nw-video-card:hover::after,
.nw-path-card:focus-within::after,
.nw-video-card:focus-within::after {
  opacity: 1;
  transform: scale(1);
}

.nw-trust-strip {
  backdrop-filter: blur(12px);
  background: rgba(17,55,68,.96);
  border-radius: 22px;
  color: var(--nw-white);
}

.nw-footer {
  background:
    radial-gradient(circle at 8% 10%, rgba(50,149,173,.24), transparent 30%),
    linear-gradient(135deg, #0c2d38 0%, #113744 60%, #174c5d 100%);
  color: rgba(255,255,255,.78);
  position: relative;
}

.nw-footer::before {
  background: linear-gradient(90deg, var(--nw-teal), var(--nw-orange));
  content: "";
  height: 4px;
  inset: 0 0 auto;
  position: absolute;
}

.nw-footer h2,
.nw-footer h3,
.nw-footer .wp-block-site-title,
.nw-footer .wp-block-site-title a {
  color: var(--nw-white);
}

.nw-footer a {
  color: rgba(255,255,255,.82);
  text-decoration: none;
}

.nw-footer a:hover { color: var(--nw-orange); }

.nw-footer-links {
  list-style: none;
  margin: 0;
  padding: 0;
}

.nw-footer-links li { margin-bottom: .55rem; }

.nw-footer-bottom {
  border-top: 1px solid rgba(255,255,255,.16);
  font-size: .86rem;
}

.nw-pill {
  background: var(--nw-mist);
  border-radius: 999px;
  color: var(--nw-navy);
  display: inline-block;
  font-size: .8rem;
  font-weight: 700;
  padding: .3rem .7rem;
}

.wp-element-button,
.wp-block-button__link {
  box-shadow: 0 10px 24px rgba(240,68,13,.22);
  isolation: isolate;
  overflow: hidden;
  position: relative;
  transition: transform .2s ease, box-shadow .2s ease;
}

.wp-element-button::after,
.wp-block-button__link::after {
  background: linear-gradient(110deg, transparent 20%, rgba(255,255,255,.48) 48%, transparent 76%);
  content: "";
  inset: 0;
  position: absolute;
  transform: translateX(-135%);
  transition: transform .65s ease;
  z-index: -1;
}
.wp-element-button:hover,
.wp-block-button__link:hover {
  box-shadow: 0 14px 32px rgba(240,68,13,.3);
  transform: translateY(-2px);
}

.wp-element-button:hover::after,
.wp-block-button__link:hover::after,
.wp-element-button:focus-visible::after,
.wp-block-button__link:focus-visible::after {
  transform: translateX(135%);
}

.wp-element-button:active,
.wp-block-button__link:active,
.nw-path-card:active,
.nw-video-card:active {
  transform: translateY(-1px) scale(.985);
}

.nw-reveal {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity .65s ease, transform .65s ease;
}
.nw-reveal.is-visible { opacity: 1; transform: none; }

/* The block editor does not run the front-end reveal script. Keep all
   editable content visible while preserving the animation on the live site. */
.editor-styles-wrapper .nw-reveal,
.block-editor-block-list__layout .nw-reveal {
  opacity: 1;
  transform: none;
}

@keyframes nw-float {
  0%, 100% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-12px) rotate(1deg); }
}

@keyframes nw-float-mobile {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-5px); }
}

@keyframes nw-aurora {
  0% { background-position: 0% 25%; filter: saturate(1); }
  100% { background-position: 100% 75%; filter: saturate(1.12); }
}

@keyframes nw-star-pulse {
  0%, 100% { opacity: .38; transform: rotate(0deg) scale(.72); }
  50% { opacity: .95; transform: rotate(45deg) scale(1.08); }
}

@keyframes nw-cursor-spark {
  0% { opacity: .95; transform: translate(-50%, -50%) rotate(0deg) scale(.45); }
  55% { opacity: .72; }
  100% { opacity: 0; transform: translate(calc(-50% + var(--nw-spark-x, 0px)), calc(-50% + var(--nw-spark-y, -18px))) rotate(135deg) scale(1.25); }
}

@keyframes nw-touch-wand {
  0% { opacity: 0; transform: translate(-78%, -22%) rotate(-10deg) scale(.65); }
  24% { opacity: 1; }
  100% { opacity: 0; transform: translate(-78%, -22%) rotate(5deg) scale(1.08); }
}

@keyframes nw-touch-ring {
  0% { opacity: .9; transform: translate(-50%, -50%) scale(.35); }
  100% { opacity: 0; transform: translate(-50%, -50%) scale(3.5); }
}

@media (max-width: 781px) {
  .nw-hero { min-height: auto; }
  .nw-hero::before { animation-duration: 18s; }
  .nw-orbit { animation: nw-float-mobile 7s ease-in-out infinite; }
  .nw-orbit:nth-child(2) { animation-delay: -2.3s; }
  .nw-orbit:nth-child(3) { animation-delay: -4.6s; }
  .nw-path-card:hover,
  .nw-video-card:hover { transform: translateY(-3px); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .nw-reveal { opacity: 1; transform: none; }
  .nw-cursor-spark,
  .nw-touch-wand,
  .nw-touch-ring { display: none; }
}
