/* ────────────────────────────────────────────────────────────────────────────
   2Create360 AI — Shared Global Styles (Safe for all pages)
   Includes: Design Tokens | Reset | Navigation | Footer | Modal | Pixel Popup
   Optimized build: duplicates merged, dead rules removed, computed output unchanged.
   Items marked "NOTE" are known quirks kept on purpose — see audit notes.
   ──────────────────────────────────────────────────────────────────────────── */

/* ─── DESIGN TOKENS ────────────────────────────────────────────────────────── */
:root {
  --black:           #0a0a0b;
  --void:            #0e0e10;
  --surface:         #141416;
  --surface2:        #1a1a1d;
  --border:          rgba(255,255,255,0.07);
  --border-mid:      rgba(255,255,255,0.12);

  --crimson:         #8B1A1A;
  --crimson-mid:     #a82020;
  --crimson-glow:    #c0392b;
  --gold:            #c9a84c;
  --gold-dim:        #9e7d34;
  --teal:            #0d6b6b;
  --teal-glow:       #0e9090;
  --teal-light:      #12b8b8;
  --amber:           #d4750a;
  --amber-light:     #f0922a;
  --amber-dim:       #9e5208;

  --text:            #e8e6e1;
  --text-muted:      #8a8680;
  --text-dim:        #5a5854;

  --font-display:    'Rajdhani', sans-serif;
  --font-serif:      'Cormorant Garamond', serif;
  --font-mono:       'JetBrains Mono', monospace;

  --page-accent-glow: rgba(139,26,26,0.3);

  /* NOTE: --article-heading-color was never defined (it lived in a dead `root{}` rule),
     so article headings currently inherit their colour and the blockquote/.quote1
     left borders don't render. Uncomment to get the intended amber look:           */
  /* --article-heading-color: var(--amber-light); */
}

/* ─── RESET & BASE ─────────────────────────────────────────────────────────── */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth;
}

body {
  background: var(--black);
  color: var(--text);
  font-family: var(--font-serif);
  font-size: 18px;
  line-height: 1.75;
  overflow-x: hidden;
}

img {
  max-width: 100%;
  display: block;
}

a {
  color: inherit;
  text-decoration: none;
}

::-webkit-scrollbar {
  width: 3px;
}
::-webkit-scrollbar-track {
  background: var(--black);
}
::-webkit-scrollbar-thumb {
  background: var(--crimson);
}
body[data-accent="#0e9090"] ::-webkit-scrollbar-thumb { background: var(--teal-glow); }
body[data-accent="#c9a84c"] ::-webkit-scrollbar-thumb { background: var(--gold); }
body[data-accent="#d4750a"] ::-webkit-scrollbar-thumb { background: var(--amber); }

/* ─── UTILITY CLASSES ──────────────────────────────────────────────────────── */
.container {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 4rem;
}

.section-label {
  font-family: var(--font-mono);
  font-size: 0.65rem;
  letter-spacing: 0.35em;
  text-transform: uppercase;
  color: var(--crimson-glow);
  margin-bottom: 1rem;
}

.section-title {
  font-family: var(--font-display);
  font-size: clamp(2.2rem, 3.5vw, 3.4rem);
  font-weight: 700;
  line-height: 1.1;
  color: #fff;
  margin-bottom: 1.5rem;
}

.section-title em {
  font-style: italic;
  font-family: var(--font-serif);
  font-weight: 300;
  color: var(--gold);
}

.lead {
  font-size: 1.1rem;
  color: var(--text-muted);
  max-width: 640px;
  line-height: 1.85;
}

.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}
.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}
.reveal-left {
  opacity: 0;
  transform: translateX(-28px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}
.reveal-left.visible {
  opacity: 1;
  transform: translateX(0);
}

/* ─── BUTTONS ──────────────────────────────────────────────────────────────── */
.btn-primary,
.btn-ghost,
.btn-teal,
.btn-gold,
.btn-amber {
  font-family: var(--font-display);
  font-size: 0.82rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  padding: 1rem 2.4rem;
  cursor: pointer;
}

.btn-primary {
  background: var(--crimson);
  color: #fff;
  border: none;
  transition: background 0.25s, transform 0.2s;
  display: inline-block;
}
.btn-primary:hover {
  background: var(--crimson-glow);
  transform: translateY(-2px);
}

.btn-ghost {
  background: transparent;
  border: 1px solid var(--border);
  color: var(--text-muted);
  transition: border-color 0.25s, color 0.25s;
  display: inline-block;
}
.btn-ghost:hover {
  border-color: var(--text-muted);
  color: var(--text);
}

.btn-teal {
  background: var(--teal-glow);
  color: #fff;
  border: none;
  transition: background 0.25s, transform 0.2s;
}
.btn-teal:hover {
  background: var(--teal-light);
  transform: translateY(-2px);
}

.btn-gold {
  background: var(--gold);
  color: var(--black);
  border: none;
  transition: background 0.25s, transform 0.2s;
}
.btn-gold:hover {
  background: #e0bc58;
  transform: translateY(-2px);
}

.btn-amber {
  font-size: 0.85rem;
  letter-spacing: 0.2em;
  background: var(--amber);
  color: #fff !important;
  border: none;
  transition: background 0.25s, transform 0.2s;
  display: inline-block;
}
.btn-amber:hover {
  background: var(--amber-light);
  transform: translateY(-2px);
}

/* ─── NAVIGATION ───────────────────────────────────────────────────────────── */
#main-nav {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100;
  padding: 1.2rem 4rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: rgba(10, 10, 11, 0.85);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--border);
  transition: padding 0.3s, background 0.4s;
}

/* Plain <nav> fallback (pages without #main-nav) */
nav {
  display: flex;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100;
  justify-content: space-between;
  padding: 1.5rem 4rem;
  transition: 0.3s;
}
nav.scrolled {
  background: rgba(10, 10, 11, 0.96);
  backdrop-filter: blur(12px);
  padding: 0.8rem 4rem;
  border-bottom: 1px solid var(--border);
}

.nav-logo {
  display: flex;
}
.nav-logo img {
  height: 32px;
  width: auto;
}

/* LOGO STYLES */
.nav-logo-img {
  height: 40px;
  width: auto;
  display: block;
  transition: opacity 0.2s ease;
}
.nav-logo-img:hover {
  opacity: 0.85;
}

.hero-logo-subdued {
  margin-bottom: 2rem;
  opacity: 0.65;
  transition: opacity 0.3s ease;
}
.hero-logo-subdued:hover {
  opacity: 0.9;
}
.hero-logo-subdued img {
  max-width: 400px;
  height: auto;
  filter: grayscale(0.3);
}

.nav-logo-text {
  font-family: var(--font-display);
  font-size: 1.1rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: #fff;
}
.nav-logo-text span {
  color: var(--crimson-glow);
}

.nav-links {
  display: flex;
  gap: 0.25rem;
  align-items: center;
}
.nav-links a {
  font-family: var(--font-display);
  font-size: 0.82rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  padding: 0.55rem 1rem;
  color: var(--text-muted);
  transition: color 0.2s;
}
.nav-links a:hover {
  color: var(--text);
}

.nav-cta {
  font-family: var(--font-display);
  font-size: 0.78rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  padding: 0.55rem 1.6rem;
  border: 1px solid var(--crimson);
  color: var(--text) !important;
  background: transparent;
  cursor: pointer;
  transition: background 0.25s, color 0.25s;
}
.nav-cta:hover {
  background: var(--crimson);
  color: #fff !important;
}
/* Live look inside .nav-links: amber border + amber hover (these win on specificity) */
.nav-links .nav-cta {
  border: 1px solid var(--amber);
  margin-left: 0.5rem;
}
.nav-links .nav-cta:hover {
  background: var(--amber);
}

/* ─── TEAL CTA — Cal.com booking trigger ────────────────────────────────
   Mirrors .nav-cta geometry so the two buttons sit as a matched pair,
   but uses the teal accent to signal "book a slot" vs. "contact us".
   The anchor also carries data-cal-* attributes handled by main.js. */
.nav-cta-teal {
  font-family: var(--font-display);
  font-size: 0.78rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  padding: 0.55rem 1.6rem;
  border: 1px solid var(--teal-glow);
  color: var(--text) !important;
  background: transparent;
  cursor: pointer;
  transition: background 0.25s, color 0.25s, box-shadow 0.25s;
  white-space: nowrap;
}
.nav-cta-teal:hover,
.nav-cta-teal:focus-visible {
  background: var(--teal-glow);
  color: #fff !important;
  box-shadow: 0 0 20px rgba(14, 144, 144, 0.35);
  outline: none;
}

/* Active-page variant (consistent with .nav-cta.active behaviour) */
.nav-links a.nav-cta-teal.active {
  background: transparent;
  color: var(--text) !important;
  padding: 0.55rem 1.6rem;
  margin: 0;
  border: 1px solid var(--teal-glow);
}
.nav-links a.nav-cta-teal.active:hover {
  background: var(--teal-glow);
  color: #fff !important;
}

.hamburger {
  display: none;
  flex-direction: column;
  gap: 5px;
  cursor: pointer;
}
.hamburger span {
  width: 24px;
  height: 1.5px;
  background: var(--text);
  display: block;
  transition: 0.3s;
}

.nav-links a.active-link {
  color: #fff !important;
  padding: 0.55rem 1rem;
  border-radius: 4px;
  border: 1px solid rgba(255,255,255,0.12);
  box-shadow: 0 0 20px var(--page-accent-glow), inset 0 0 0 1px rgba(255,255,255,0.03);
}
.nav-links a.active-link::after {
  display: none;
}
.nav-links a.nav-cta.active {
  background: transparent;
  color: var(--text) !important;
  padding: 0.55rem 1.6rem;
  margin: 0;
  border: 1px solid var(--crimson);
}
.nav-links a.nav-cta.active:hover {
  background: var(--crimson);
  color: #fff !important;
}

/* ---------------- Screen Readers ---------------------------------- */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* ─── FOOTER ───────────────────────────────────────────────────────────────── */
footer {
  background: var(--void);
  border-top: 1px solid var(--border);
  padding: 3rem 0;
}

.footer-logo-img {
  max-width: 260px;
  width: 100%;
  height: auto;
  display: block;
  margin-bottom: 1rem;
}

.footer-brand-text {
  font-size: 0.85rem;
  color: var(--text-dim);
  line-height: 1.6;
  max-width: 280px;
}

.footer-top {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1fr;
  gap: 4rem;
  margin-bottom: 4rem;
  padding-bottom: 4rem;
  border-bottom: 1px solid var(--border);
}

.footer-brand {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.footer-col-title {
  font-family: var(--font-display);
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.5);
  margin-bottom: 1.5rem;
}

.footer-col-links {
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
}

.footer-col-links a {
  font-family: var(--font-mono);
  font-size: 0.65rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--text-dim);
  transition: color 0.2s;
  position: relative;
}
.footer-col-links a:hover {
  color: var(--text-muted);
}
.footer-col-links a.active-footer-link {
  color: var(--text);
}
.footer-col-links a.active-footer-link::after {
  content: '';
  position: absolute;
  bottom: -3px;
  left: 0;
  right: 0;
  height: 2px;
  background: var(--active-footer-color, currentColor);
  border-radius: 1px;
}

.footer-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1rem;
}

.footer-socials {
  display: flex;
  gap: 1.5rem;
}
.footer-socials a {
  font-family: var(--font-mono);
  font-size: 0.6rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--text-dim);
  transition: color 0.2s;
}
.footer-socials a:hover {
  color: var(--crimson-glow);
}
.footer-socials a svg {
  display: block;
  vertical-align: middle;
}

.footer-copy {
  font-family: var(--font-mono);
  font-size: 0.62rem;
  letter-spacing: 0.12em;
  color: var(--text-dim);
}

.footer-special {
  color: var(--gold) !important;
  position: relative;
}
.footer-special::before {
  content: '✦';
  position: absolute;
  left: -1.2rem;
  opacity: 0.8;
  font-size: 0.7rem;
  color: var(--gold);
}
.footer-special:hover {
  color: var(--crimson-glow) !important;
}
.footer-special:hover::before {
  color: var(--crimson-glow);
}

/* Responsive footer */
@media (max-width: 1100px) {
  .footer-top {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 640px) {
  .nav-logo-img {
    height: 32px;
  }
  .footer-logo-img {
    max-width: 200px;
  }
  .hero-logo-subdued img {
    max-width: 140px;
  }
  .footer-top {
    grid-template-columns: 1fr;
    gap: 2rem;
  }
  .footer-bottom {
    flex-direction: column;
    align-items: flex-start;
  }
}

@media (min-width: 641px) and (max-width: 1024px) {
  .nav-logo-img {
    height: 36px;
  }
  .footer-logo-img {
    max-width: 230px;
  }
  .hero-logo-subdued img {
    max-width: 160px;
  }
}

/* ─── CONTACT MODAL ───────────────────────────────────────────────────────── */
.modal-overlay {
  position: fixed;
  inset: 0;
  z-index: 1000;
  background: rgba(0,0,0,0.88);
  backdrop-filter: blur(8px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2rem;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s;
}
.modal-overlay.open {
  opacity: 1;
  pointer-events: all;
}
.modal {
  background: var(--surface);
  border: 1px solid var(--border);
  width: 100%;
  max-width: 580px;
  padding: 3.5rem;
  position: relative;
  transform: translateY(20px);
  transition: transform 0.35s ease;
}
.modal-overlay.open .modal {
  transform: translateY(0);
}
.modal-close {
  position: absolute;
  top: 1.5rem;
  right: 1.8rem;
  background: none;
  border: none;
  font-family: var(--font-mono);
  font-size: 0.75rem;
  letter-spacing: 0.2em;
  color: var(--text-dim);
  cursor: pointer;
  transition: color 0.2s;
}
.modal-close:hover {
  color: var(--text);
}
.modal-title {
  font-family: var(--font-display);
  font-size: 2rem;
  font-weight: 700;
  color: #fff;
  margin-bottom: 0.5rem;
}
.modal-sub {
  font-size: 0.9rem;
  color: var(--text-muted);
  margin-bottom: 2.5rem;
}
.form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}
.form-group {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-bottom: 1rem;
}
.form-group label {
  font-family: var(--font-mono);
  font-size: 0.6rem;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--text-dim);
}
.form-group input,
.form-group select,
.form-group textarea {
  background: var(--black);
  border: 1px solid var(--border);
  color: var(--text);
  font-family: var(--font-serif);
  font-size: 0.95rem;
  padding: 0.8rem 1rem;
  outline: none;
  width: 100%;
  transition: border-color 0.2s;
  resize: vertical;
}
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
  border-color: var(--crimson-glow);
}
.form-group textarea {
  min-height: 100px;
}
.form-submit {
  width: 100%;
  padding: 1rem;
  background: var(--crimson);
  color: #fff;
  border: none;
  font-family: var(--font-display);
  font-size: 0.85rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  cursor: pointer;
  margin-top: 0.5rem;
  transition: background 0.25s;
}
.form-submit:hover {
  background: var(--crimson-glow);
}
.form-success {
  display: none;
  text-align: center;
  padding: 2rem 0;
}
.form-success.show {
  display: block;
}
.success-icon {
  font-size: 2.5rem;
  margin-bottom: 1rem;
  color: var(--gold);
}
.success-title {
  font-family: var(--font-display);
  font-size: 1.5rem;
  color: #fff;
  margin-bottom: 0.5rem;
}
.success-body {
  color: var(--text-muted);
  font-size: 0.9rem;
}

/* ─── PIXEL CLOUD MODAL (PopUp) ───────────────────────────────────────────── */
.pixel-modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  visibility: hidden;
}
.pixel-modal.active {
  visibility: visible;
}
.pixel-modal-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(10, 10, 11, 0.94);
  backdrop-filter: blur(12px);
  opacity: 0;
  transition: opacity 0.5s ease;
}
.pixel-modal.active .pixel-modal-overlay {
  opacity: 1;
}
.pixel-cloud-container {
  position: relative;
  z-index: 10001;
  width: 90%;
  max-width: 720px;
  background: var(--surface);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 28px;
  box-shadow: 0 40px 80px rgba(0,0,0,0.6), 0 0 0 1px rgba(255,255,255,0.03);
  opacity: 0;
  transform: scale(0.96);
  transition: opacity 0.3s ease, transform 0.3s ease;
  overflow: hidden;
}
.pixel-modal.active .pixel-cloud-container {
  opacity: 1;
  transform: scale(1);
}
.pixel-cloud-grid {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: grid;
  grid-template-columns: repeat(20, 1fr);
  grid-template-rows: repeat(20, 1fr);
  pointer-events: none;
  z-index: 0;
}
.pixel {
  background: var(--crimson);
  opacity: 0;
  transition: opacity 0.06s linear;
  border-radius: 1px;
}
.pixel.revealed {
  opacity: 1;
}
.pixel-modal-content {
  position: relative;
  z-index: 2;
  padding: 2rem;
  background: var(--surface);
  border-radius: 28px;
  max-height: 85vh;
  display: flex;
  flex-direction: column;
}
.pixel-modal-close {
  position: absolute;
  top: 1rem;
  right: 1.2rem;
  background: rgba(255,255,255,0.05);
  border: none;
  width: 32px;
  height: 32px;
  border-radius: 40px;
  font-size: 1.1rem;
  font-family: var(--font-mono);
  color: var(--text-dim);
  cursor: pointer;
  transition: all 0.2s;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: center;
}
.pixel-modal-close:hover {
  background: var(--crimson);
  color: #fff;
}

.pixel-modal-header {
  text-align: center;
  margin-bottom: 1.5rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--border);
  flex-shrink: 0;
}
.pixel-modal-logo {
  max-width: 280px;
  width: 100%;
  height: auto;
  display: inline-block;
}

.pixel-modal-intro {
  margin-bottom: 1.5rem;
  font-family: var(--font-serif);
  font-size: 0.9rem;
  line-height: 1.65;
  color: var(--text-muted);
}
.pixel-modal-intro p {
  margin-bottom: 1rem;
}
.pixel-modal-intro p:last-child {
  margin-bottom: 0;
}

.pixel-modal-ron-section {
  margin-bottom: 1rem;
  flex: 1;
  min-height: 120px;
  max-height: 200px;
  overflow-y: auto;
  padding-right: 0.5rem;
}
.pixel-modal-ron-section::-webkit-scrollbar {
  width: 4px;
}
.pixel-modal-ron-section::-webkit-scrollbar-track {
  background: var(--border);
  border-radius: 4px;
}
.pixel-modal-ron-section::-webkit-scrollbar-thumb {
  background: var(--crimson);
  border-radius: 4px;
}
/* Clearfix */
.pixel-modal-ron-section::after {
  content: "";
  display: table;
  clear: both;
}

.pixel-modal-image-left {
  float: left;
  margin-right: 1rem;
  margin-bottom: 0.5rem;
}
.pixel-modal-image-left img {
  width: 90px;
  height: 90px;
  object-fit: cover;
  border-radius: 50%;
  border: 2px solid var(--gold);
  box-shadow: 0 0 0 3px rgba(201,168,76,0.15);
}

.pixel-modal-ron-text {
  font-family: var(--font-serif);
  font-size: 0.88rem;
  line-height: 1.6;
  color: var(--text-muted);
}
.pixel-modal-ron-text p {
  margin-bottom: 0;
}
.pixel-modal-ron-text strong {
  color: var(--gold);
  font-family: var(--font-display);
}

.pixel-modal-links {
  margin-top: 0.5rem;
  display: flex;
  gap: 1rem;
  justify-content: center;
  flex-shrink: 0;
  padding-top: 1rem;
  border-top: 1px solid var(--border);
}
.pixel-modal-links a {
  font-family: var(--font-mono);
  font-size: 0.7rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  padding: 0.5rem 1rem;
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 40px;
  color: var(--text-muted);
  transition: all 0.2s;
}
.pixel-modal-links a:hover {
  background: var(--crimson);
  border-color: var(--crimson-glow);
  color: #fff;
}

@media (max-width: 560px) {
  .pixel-modal-ron-section {
    max-height: 280px;
  }
  .pixel-modal-image-left {
    float: none;
    display: flex;
    justify-content: center;
    margin-right: 0;
    margin-bottom: 1rem;
  }
  .pixel-modal-ron-text {
    text-align: center;
  }
  .pixel-modal-logo {
    max-width: 200px;
  }
}

/* ─── EXTERNAL LINK TOOLTIP ───────────────────────────────────────────────── */
.external-tooltip {
  position: fixed;
  z-index: 9999;
  background: rgba(14,14,16,0.96);
  border: 1px solid rgba(255,255,255,0.08);
  padding: 0.85rem 1rem;
  min-width: 260px;
  max-width: 320px;
  backdrop-filter: blur(12px);
  box-shadow: 0 20px 60px rgba(0,0,0,0.45), 0 0 0 1px rgba(255,255,255,0.02);
  opacity: 0;
  transform: translateY(8px) scale(0.98);
  pointer-events: none;
  transition: opacity 0.22s ease, transform 0.22s ease;
}
.external-tooltip.show {
  opacity: 1;
  transform: translateY(0) scale(1);
}
.external-tooltip::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--crimson), var(--gold), var(--teal-glow));
}
.external-tooltip-label {
  font-family: var(--font-mono);
  font-size: 0.55rem;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--crimson-glow);
  margin-bottom: 0.45rem;
}
.external-tooltip-text {
  font-size: 0.82rem;
  line-height: 1.6;
  color: var(--text-muted);
}
.external-tooltip-url {
  margin-top: 0.55rem;
  font-family: var(--font-mono);
  font-size: 0.62rem;
  color: var(--gold);
  opacity: 0.8;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* ─── SHARED RESPONSIVE BREAKPOINTS ───────────────────────────────────────── */
@media (max-width: 1100px) {
  .container {
    padding: 0 2.5rem;
  }
}

@media (max-width: 640px) {
  .container {
    padding: 0 1.5rem;
  }
  .nav-links {
    display: none;
  }
  .nav-links.open {
    display: flex;
    flex-direction: column;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: var(--black);
    align-items: center;
    justify-content: center;
    gap: 2rem;
    z-index: 99;
  }
  .nav-links.open a {
    font-size: 1.2rem;
  }
  .hamburger {
    display: flex;
  }
  .footer-inner {            /* verify still used: grep your HTML */
    flex-direction: column;
    align-items: flex-start;
  }
  .footer-links {            /* verify still used: grep your HTML */
    flex-wrap: wrap;
    gap: 1rem;
  }
  .form-row {
    grid-template-columns: 1fr;
  }
  .modal {
    padding: 2rem 1.5rem;
  }
  .pixel-modal-content {
    padding: 1.8rem;
  }
  .pixel-modal-message {     /* verify still used: grep your HTML */
    font-size: 0.9rem;
  }
  .pixel-modal-image img {   /* verify still used: grep your HTML */
    width: 110px;
    height: 110px;
  }
}

/* =======================================================
   CONTACT MODAL
   NOTE: these rules apply at ALL widths (the original @media wrapper was lost,
   leaving a stray "}"). That is the current live behaviour, so it is preserved.
   To make this mobile-only, wrap the block in @media (max-width:700px){ ... }
   ======================================================= */
#contactModal {
  position: fixed !important;
  top: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  left: 0 !important;
  width: 100vw !important;
  height: 100vh !important;
  height: 100dvh !important;
  max-width: 100vw !important;
  max-height: 100vh !important;
  max-height: 100dvh !important;
  box-sizing: border-box !important;
  display: flex !important;
  align-items: flex-start !important;
  justify-content: center !important;
  padding: 12px !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  z-index: 2147483647 !important;
}

#contactModal .modal {
  position: relative !important;
  width: 100% !important;
  max-width: 600px !important;
  max-height: calc(100vh - 24px) !important;
  max-height: calc(100dvh - 24px) !important;
  margin: 0 auto !important;
  box-sizing: border-box !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  transform: none !important;
}

#contactModal .form-row {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  width: 100% !important;
  gap: 0 !important;
}

#contactModal .form-group {
  min-width: 0 !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

#contactModal input,
#contactModal select,
#contactModal textarea {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}

#contactModal textarea {
  min-height: 120px !important;
  max-width: 100% !important;
  resize: vertical !important;
}

#contactModal .modal-close {
  position: sticky !important;
  top: 0 !important;
  z-index: 20 !important;
}

#contactModal *,
#contactModal *::before,
#contactModal *::after {
  box-sizing: border-box !important;
  max-width: 100% !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   IMAGE UTILITY KIT — LIVE STYLES (mirror of styles.css)
   ═══════════════════════════════════════════════════════════════════════════ */

/* ---------- SIZING HELPERS ---------- */
.img-w150 { width: 150px; }
.img-w200 { width: 200px; }
.img-w250 { width: 250px; }
.img-w300 { width: 300px; }
.img-w400 { width: 400px; }
.img-w500 { width: 500px; }
.img-w600 { width: 600px; }
.img-full { width: 100%; }

@media (max-width: 640px) {
  .img-w150, .img-w200, .img-w250,
  .img-w300, .img-w400, .img-w500, .img-w600 {
    width: 100%;
  }
}

/* Base hover zoom on every preview image */
.row-preview img {
  transition:
    transform 0.35s ease,
    box-shadow 0.35s ease,
    filter 0.45s ease,
    border-radius 0.35s ease;
  will-change: transform;
}

/* ---------- SHAPE ---------- */
.img-rcorner {
  border-radius: 12px !important;
  overflow: hidden;
}
.img-rcorner-lg {
  border-radius: 24px !important;
  overflow: hidden;
}
.img-round {
  border-radius: 50% !important;
  aspect-ratio: 1 / 1 !important;
  object-fit: cover !important;
  overflow: hidden;
}
.img-pill {
  border-radius: 999px !important;
  overflow: hidden;
}

/* ---------- SHADOW ---------- */
.img-shadow {
  box-shadow:
    0 2px 4px rgba(0, 0, 0, 0.6),
    0 8px 24px rgba(0, 0, 0, 0.55),
    0 16px 40px -8px rgba(0, 0, 0, 0.65);
}
.img-shadow-hard {
  box-shadow:
    6px 6px 0 0 rgba(0, 0, 0, 0.75),
    10px 10px 24px -6px rgba(0, 0, 0, 0.55);
}
.img-shadow-glow {
  box-shadow:
    0 4px 12px rgba(0, 0, 0, 0.5),
    0 0 0 1px rgba(240, 146, 42, 0.15),
    0 12px 40px -8px rgba(240, 146, 42, 0.35);
}
.img-shadow-glow:hover {
  box-shadow:
    0 4px 8px rgba(0, 0, 0, 0.65),
    0 16px 48px rgba(0, 0, 0, 0.6),
    0 0 0 1px rgba(240, 146, 42, 0.3),
    0 12px 48px -8px rgba(240, 146, 42, 0.55);
}
.img-shadow-crimson {
  box-shadow:
    0 4px 12px rgba(0, 0, 0, 0.5),
    0 0 0 1px rgba(192, 57, 43, 0.15),
    0 12px 40px -8px rgba(192, 57, 43, 0.4);
}
.img-shadow-crimson:hover {
  box-shadow:
    0 4px 8px rgba(0, 0, 0, 0.65),
    0 16px 48px rgba(0, 0, 0, 0.6),
    0 0 0 1px rgba(192, 57, 43, 0.3),
    0 12px 48px -8px rgba(192, 57, 43, 0.6);
}

/* ---------- FILTERS ---------- */
.img-bw       { filter: grayscale(1) contrast(1.05); }
.img-bw:hover { filter: grayscale(0) contrast(1); }

.img-sepia       { filter: sepia(0.85) contrast(1.05) brightness(0.95); }
.img-sepia:hover { filter: sepia(0) contrast(1) brightness(1); }

.img-muted    { filter: saturate(0.65) brightness(0.92); }
.img-contrast { filter: contrast(1.15) saturate(1.05); }
.img-dim      { filter: brightness(0.65) saturate(0.9); }
.img-duotone  {
  filter: grayscale(1) sepia(0.4) hue-rotate(-10deg) saturate(2.2)
          contrast(1.05) brightness(0.95);
}

/* ---------- EFFECTS (continuous) ---------- */
.img-pulse {
  animation: img-pulse 3s ease-in-out infinite;
  transform-origin: center;
}
@keyframes img-pulse {
  0%, 100% { transform: scale(1); }
  50%      { transform: scale(1.035); }
}

.img-pulse-soft {
  animation: img-pulse-soft 4.5s ease-in-out infinite;
  transform-origin: center;
}
@keyframes img-pulse-soft {
  0%, 100% { transform: scale(1); }
  50%      { transform: scale(1.02); }
}

.img-pulse-glow {
  animation: img-pulse-glow 3.5s ease-in-out infinite;
}
@keyframes img-pulse-glow {
  0%, 100% {
    box-shadow:
      0 8px 24px rgba(0, 0, 0, 0.5),
      0 0 0 0 rgba(240, 146, 42, 0.35);
  }
  50% {
    box-shadow:
      0 8px 24px rgba(0, 0, 0, 0.5),
      0 0 0 14px rgba(240, 146, 42, 0);
  }
}

.img-float {
  animation: img-float 4s ease-in-out infinite;
  transform-origin: center;
}
@keyframes img-float {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-8px); }
}

.img-float-soft {
  animation: img-float-soft 6s ease-in-out infinite;
}
@keyframes img-float-soft {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-4px); }
}

/* ---------- EFFECTS (hover only) ---------- */
.img-float-hover {
  transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}
.img-float-hover:hover { transform: translateY(-6px); }

.img-tilt {
  transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}
.img-tilt:hover { transform: rotate(-2deg) scale(1.02); }

.img-tilt-right {
  transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}
.img-tilt-right:hover { transform: rotate(2deg) scale(1.02); }

.img-tilt-idle {
  transform: rotate(-1.5deg);
  transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}
.img-tilt-idle:hover { transform: rotate(0deg) scale(1.02); }

.img-tilt-3d {
  transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
  transform-style: preserve-3d;
}
.img-tilt-3d:hover {
  transform: perspective(800px) rotateX(3deg) rotateY(-4deg) scale(1.03);
}

.img-zoom-slow { transition: transform 1.2s cubic-bezier(0.22, 1, 0.36, 1); }
.img-zoom-slow:hover { transform: scale(1.08); }

.img-lift {
  transition:
    transform 0.4s cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}
.img-lift:hover {
  transform: translateY(-6px);
  box-shadow:
    0 8px 16px rgba(0, 0, 0, 0.6),
    0 24px 64px -12px rgba(0, 0, 0, 0.75);
}

.img-shine { position: relative; overflow: hidden; }
.img-shine::after {
  content: "";
  position: absolute;
  top: -50%; left: -75%;
  width: 50%; height: 200%;
  background: linear-gradient(120deg,
    transparent 0%,
    rgba(255,255,255,0.12) 40%,
    rgba(255,255,255,0.28) 50%,
    rgba(255,255,255,0.12) 60%,
    transparent 100%);
  transform: skewX(-20deg);
  transition: left 0.7s cubic-bezier(0.22, 1, 0.36, 1);
  pointer-events: none;
  z-index: 2;
}
.img-shine:hover::after { left: 125%; }

.img-shine-auto::after { animation: img-shine-auto 4s ease-in-out infinite; }
@keyframes img-shine-auto {
  0%, 60%, 100% { left: -75%; }
  80%           { left: 125%; }
}

/* ---------- TREATMENT ---------- */
.img-frame {
  padding: 10px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 6px;
  box-shadow:
    0 4px 16px rgba(0, 0, 0, 0.5),
    inset 0 0 0 1px rgba(255, 255, 255, 0.03);
}
.img-frame img { border-radius: 3px; width: 100%; height: auto; }

.img-frame-accent {
  padding: 6px;
  background: transparent;
  border: 1px solid var(--amber-light);
  border-radius: 10px;
  box-shadow: 0 8px 32px rgba(240, 146, 42, 0.15);
}
.img-frame-accent img { border-radius: 6px; width: 100%; height: auto; }

.img-fade-bottom {
  mask-image: linear-gradient(to bottom, #000 60%, transparent 100%);
  -webkit-mask-image: linear-gradient(to bottom, #000 60%, transparent 100%);
}
.img-fade-top {
  mask-image: linear-gradient(to top, #000 60%, transparent 100%);
  -webkit-mask-image: linear-gradient(to top, #000 60%, transparent 100%);
}
.img-fade-edges {
  mask-image: radial-gradient(ellipse at center, #000 55%, transparent 95%);
  -webkit-mask-image: radial-gradient(ellipse at center, #000 55%, transparent 95%);
}

.img-vignette { position: relative; }
.img-vignette::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at center,
    transparent 55%,
    rgba(0, 0, 0, 0.55) 100%);
  border-radius: inherit;
  pointer-events: none;
}

.img-outline {
  outline: 1px solid rgba(255, 255, 255, 0.08);
  outline-offset: -1px;
}
.img-outline-amber {
  outline: 1px solid rgba(240, 146, 42, 0.4);
  outline-offset: -1px;
}

/* ---------- ACCESSIBILITY ---------- */
@media (prefers-reduced-motion: reduce) {
  .img-pulse, .img-pulse-soft, .img-pulse-glow,
  .img-float, .img-float-soft, .img-shine-auto::after {
    animation: none;
  }
  .img-bw, .img-sepia, .img-tilt, .img-tilt-right, .img-tilt-idle,
  .img-tilt-3d, .img-zoom-slow, .img-lift, .img-float-hover,
  .img-shine::after {
    transition: none;
  }
}

/* ---- POSITION (with text wrap) ---- */
.img-left {
  float: left !important;
  margin: 0.4rem 1.75rem 1rem 0 !important;
  max-width: 45% !important;
}
.img-right {
  float: right !important;
  margin: 0.4rem 0 1rem 1.75rem !important;
  max-width: 45% !important;
}
.img-center {
  float: none !important;
  display: block !important;
  margin: 2rem auto !important;
  max-width: 100% !important;
}
.img-clear {
  clear: both !important;
}

@media (max-width: 720px) {
  .img-left,
  .img-right {
    float: none !important;
    display: block !important;
    max-width: 100% !important;
    width: 100% !important;
    margin: 2rem auto !important;
  }
}

/* =========================================================
   ARTICLE / SHARE / SPECIAL TEXT TREATMENTS
   (formerly the minified "Supplied special text" block —
   same rules, same order, one rule per line)
   ========================================================= */
.article-content a.ext,a.ext{text-underline-offset:3px;text-decoration:underline}
.article-cta,.card,.card2{text-align:center}
.article-content h6,a.ext::before{letter-spacing:.08em;text-transform:uppercase}

.share-group,.share-group a{align-items:center;display:flex}
.share-group{gap:.4rem}
.share-group a{justify-content:center;width:32px;height:32px;padding:0;border-radius:50%;background:rgba(255,255,255,.04);border:1px solid var(--border);flex-shrink:0;cursor:pointer}
.share-group a:hover{background:var(--amber);border-color:var(--amber);color:#fff;transform:translateY(-2px)}
.share-group a svg{width:14px;height:14px;fill:currentColor;display:block}
.nav-share{margin-left:.75rem;padding-left:.75rem;border-left:1px solid var(--border)}
.footer-share-section{display:flex;align-items:center;justify-content:center;gap:1rem;padding:.2rem 0;flex-wrap:wrap}
.footer-share-label{letter-spacing:.25em;text-transform:uppercase;color:var(--text-dim)}
.footer-share-section .share-group{gap:.6rem}
.footer-share-section .share-group a{width:40px;height:40px}

.article-hero{min-height:50vh;position:relative;overflow:hidden;display:flex;align-items:flex-end;background:var(--void)}
.article-hero:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;z-index:4;background:linear-gradient(90deg,transparent,var(--amber-dim),var(--amber-light),var(--amber-dim),transparent)}
.article-hero-bg{position:absolute;inset:0}
.article-hero-bg img{width:100%;height:100%;object-fit:cover;opacity:.64}
.article-hero-bg:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,10,11,.97),rgba(10,10,11,.78),rgba(10,10,11,.4)),linear-gradient(0deg,rgba(10,10,11,.96),transparent 60%)}
.article-hero-content{position:relative;z-index:3;width:100%;max-width:1280px;margin:auto;padding:7rem 4rem 4rem}
.article-eyebrow{font-size:.68rem;letter-spacing:.38em;text-transform:uppercase;color:var(--amber-light);margin-bottom:1.2rem}
.article-hero h1{max-width:950px;font-family:var(--font-display);font-size:clamp(2.8rem, 5.5vw, 6rem);font-weight:700;line-height:.98;color:#fff;margin-bottom:1rem}
.article-deck{max-width:760px;color:var(--text-muted);font-size:1.15rem;line-height:1.7}
.card2,.ol1{line-height:1.6}
.article-meta{display:flex;flex-wrap:wrap;gap:1rem 2rem;margin-top:1.5rem;font-size:.58rem;letter-spacing:.16em;text-transform:uppercase;color:var(--text-dim)}
.article-wrapper{max-width:920px;margin:auto;padding:6rem 2rem 8rem}
.article-content h1,.article-content h2,.article-content h3,.article-content h4,.article-content h5,.article-content h6{color:var(--article-heading-color);font-family:var(--font-display);font-weight:700;line-height:1.12;margin-top:3rem;margin-bottom:1.2rem}
.article-content h1{font-size:clamp(2.6rem, 5vw, 4.5rem)}
.article-content h2{font-size:clamp(2rem, 3.5vw, 3.2rem)}
.article-content h3{font-size:clamp(1.6rem, 2.6vw, 2.25rem)}
.article-content h4{font-size:1.5rem}
.article-content h5{font-size:1.2rem}
.article-content h6{font-size:1rem}
.article-content p{margin-bottom:1.5rem}
.article-content strong,a.ext:hover{color:#fff}
.article-content a{color:var(--amber-light)}
.article-content ol,.article-content ul{margin:0 0 2rem 1.5rem}
.article-content li{margin-bottom:.65rem}
.article-content blockquote{margin:2.5rem 0;padding:1.5rem 2rem;border-left:3px solid var(--article-heading-color);background:var(--surface);color:var(--text-muted);font-size:1.2rem;font-style:italic}
.article-content pre,.article-cta{background:var(--surface);border:1px solid var(--border)}
.article-content figure{margin:2.5rem 0}
.article-content figcaption{margin-top:-1.7rem;margin-bottom:2rem;font-family:var(--font-mono);font-size:.58rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim)}
.article-content code{font-family:var(--font-mono);color:var(--gold);background:var(--surface);padding:.15rem .35rem}
.article-content pre{overflow-x:auto;margin:2rem 0;padding:1.5rem;font-family:var(--font-mono);font-size:.78rem;line-height:1.65}
.article-content hr{border:0;border-top:1px solid var(--border);margin:4rem 0}
.article-cta{margin-top:5rem;padding:3rem;position:relative}
.article-cta:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--crimson),var(--gold),var(--teal-glow))}
.article-cta h2{margin-top:0}
.article-cta p{max-width:620px;margin:0 auto 2rem;color:var(--text-muted)}
.ol2,strong.s1{letter-spacing:.01em}

@media (max-width:1024px){
  nav{padding:1.2rem 2.5rem}
  nav.scrolled{padding:.8rem 2.5rem}
  .article-hero-content{padding:7rem 2.5rem 3.5rem}
  .footer-container{padding:0 2.5rem}
}

.article-content .quote1,.ol1>li,.ol2>li,strong.s1{position:relative}

/* =========================================================
   MOBILE NAVIGATION (merged from two overlapping blocks)
   ========================================================= */
@media (max-width:700px){

  /* Share icons: hidden in bar, shown inside the open menu */
  .nav-share{display:none}
  #nav-links.open .nav-share{display:flex;margin:1.5rem 0 0;padding:1.5rem 0 0;border-left:none;border-top:1px solid var(--border);justify-content:center;width:100%}
  #nav-links.open .nav-share a{width:44px;height:44px}
  #nav-links.open .nav-share a svg{width:18px;height:18px}

  /* Nav bar: fixed at top, above everything else */
  #main-nav{
    position:fixed !important;
    top:0 !important;
    left:0 !important;
    right:0 !important;
    width:100% !important;
    max-width:100% !important;
    box-sizing:border-box !important;
    z-index:2147483646 !important;
    isolation:isolate !important;
  }

  /* Hamburger: always visible on mobile */
  .hamburger{
    display:flex !important;
    flex-direction:column !important;
    gap:5px !important;
    cursor:pointer !important;
  }

  /* Desktop links hidden until JS toggles .open */
  .nav-links{display:none !important}

  /* Open state: full-screen vertical menu */
  #nav-links.open{
    display:flex !important;
    flex-direction:column !important;
    position:fixed !important;
    top:64px !important;
    left:0 !important;
    right:0 !important;
    width:100vw !important;
    max-width:100vw !important;
    height:calc(100vh - 64px) !important;
    height:calc(100dvh - 64px) !important;
    max-height:calc(100vh - 64px) !important;
    max-height:calc(100dvh - 64px) !important;
    margin:0 !important;
    padding:10px 20px 20px !important;
    box-sizing:border-box !important;
    align-items:stretch !important;
    justify-content:flex-start !important;
    gap:0 !important;
    overflow-x:hidden !important;
    overflow-y:auto !important;
    overscroll-behavior:contain !important;
    transform:none !important;
    visibility:visible !important;
    opacity:1 !important;
    background:#0e0e10 !important;
    z-index:2147483645 !important;
  }

  #nav-links.open a{
    display:flex !important;
    align-items:center !important;
    justify-content:flex-start !important;
    width:100% !important;
    min-height:44px !important;
    padding:9px 0 !important;
    margin:0 !important;
    box-sizing:border-box !important;
    font-size:clamp(.78rem, 3.4vw, .94rem) !important;
    line-height:1.2 !important;
    white-space:normal !important;
    flex:0 0 auto !important;
    color:var(--text) !important;
    text-transform:uppercase !important;
    letter-spacing:.15em !important;
    border-bottom:1px solid var(--border) !important;
  }

  #nav-links.open .nav-cta{
    margin-top:8px !important;
    justify-content:center !important;
    text-align:center !important;
    border:1px solid var(--crimson) !important;
    border-bottom:1px solid var(--crimson) !important;
    padding:12px !important;
  }
  #nav-links.open .nav-cta-teal{
    margin-top:8px !important;
    justify-content:center !important;
    text-align:center !important;
  }

  /* Stop hero stacking contexts competing with the nav */
  .hero,.hero-bg,.hero-bg img,.hero-content,.hero-ghost,.hero-grid{z-index:auto !important}
}

/* Short / landscape phones */
@media (max-width:700px) and (max-height:520px){
  #nav-links.open{
    top:56px !important;
    height:calc(100vh - 56px) !important;
    height:calc(100dvh - 56px) !important;
    max-height:calc(100vh - 56px) !important;
    max-height:calc(100dvh - 56px) !important;
    padding:5px 18px 10px !important;
  }
  #nav-links.open a{
    min-height:36px !important;
    padding:6px 0 !important;
    font-size:.8rem !important;
    line-height:1.15 !important;
  }
  #contactModal{padding:8px !important}
  #contactModal .modal{
    max-height:calc(100vh - 16px) !important;
    max-height:calc(100dvh - 16px) !important;
  }
}

/* External link (a.ext) */
.article-content a.ext,a.ext{position:relative;display:inline;color:var(--amber-light);text-decoration-thickness:1px;padding-right:1.05em;transition:color .2s}
.card2,a.ext::before{color:var(--text,#e8e6e1)}
a.ext::after,a.ext::before{position:absolute;transition:opacity .2s,transform .2s}
a.ext::after{content:"";top:.15em;right:0;width:.75em;height:.75em;background-color:currentColor;-webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><path d='M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6'/><polyline points='15 3 21 3 21 9'/><line x1='10' y1='14' x2='21' y2='3'/></svg>") center/contain no-repeat;mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><path d='M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6'/><polyline points='15 3 21 3 21 9'/><line x1='10' y1='14' x2='21' y2='3'/></svg>") center/contain no-repeat;opacity:.75}
a.ext:hover::after{opacity:1;transform:translate(1px,-1px)}
a.ext::before{content:"Opens external site in a new tab";bottom:calc(100% + 10px);left:50%;transform:translate(-50%,4px);padding:.55rem .85rem;background:var(--surface2,#1a1a1d);font-family:var(--font-mono, "JetBrains Mono", monospace);font-size:.62rem;font-style:normal;font-weight:400;white-space:nowrap;border:1px solid var(--border,rgba(255,255,255,.07));border-radius:6px;box-shadow:0 8px 24px rgba(0,0,0,.35);opacity:0;pointer-events:none;z-index:50}
.ol1>li::after,.ol1>li::before{transform:translateY(-50%);position:absolute;top:50%}
a.ext:hover::before{opacity:1;transform:translate(-50%,0)}
.article-content p a.ext{isolation:isolate}

/* Cards */
.card{background:rgba(255,255,255,.1);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);border-radius:16px;padding:24px;box-shadow:0 8px 32px rgba(0,0,0,.1);transition:transform .3s;display:flex;flex-direction:column;gap:.35rem;align-items:center}
.card:hover{transform:translateY(-4px)}
.card2{display:inline-block;max-width:100%;background:rgba(0,0,0,.35);border:1px solid var(--amber-light,#f0922a);border-radius:12px;padding:1.1rem 1.4rem;margin:2rem auto;font-size:1.2rem;box-shadow:0 4px 20px rgba(0,0,0,.25);transition:background .25s,border-color .25s,box-shadow .25s,transform .25s}
.ol1,.ol2{list-style:none;padding-left:0}
.card2:hover{background:rgba(0,0,0,.5);border-color:#ffb04d;box-shadow:0 6px 26px rgba(240,146,42,.18);transform:translateY(-2px)}

/* Pull quote (.quote1) */
.article-content .quote1{margin:2.5rem 0;padding:2rem 2rem 2rem 3.5rem;background:var(--surface);color:var(--text-muted);font-size:1.2rem;font-style:italic;line-height:1.7;border-radius:0 12px 12px 0;border-left:5px solid var(--article-heading-color);box-shadow:0 1px 2px rgba(0,0,0,.03),0 8px 24px rgba(0,0,0,.04);transition:transform .3s,box-shadow .3s}
.article-content .quote1::before{content:"\201C";position:absolute;top:-.35em;left:.6rem;font-family:Georgia,"Times New Roman",serif;font-size:6rem;line-height:1;font-style:normal;color:var(--article-heading-color);opacity:.18;pointer-events:none;transition:opacity .3s,transform .3s}
.article-content .quote1::after{content:"";position:absolute;top:0;left:0;bottom:0;width:40px;background:linear-gradient(to right,color-mix(in srgb,var(--article-heading-color) 8%,transparent),transparent);pointer-events:none;border-radius:0}
.article-content .quote1:hover{transform:translateY(-2px);box-shadow:0 2px 4px rgba(0,0,0,.04),0 12px 32px rgba(0,0,0,.07)}
.article-content .quote1:hover::before{opacity:.28;transform:translateY(-3px)}
.article-content .quote1 cite{display:block;margin-top:1rem;font-size:.9rem;font-style:normal;font-weight:600;letter-spacing:.02em;color:var(--article-heading-color);opacity:.85}
.article-content .quote1 cite::before{content:"— ";opacity:.6}
.article-content .quote1 p{margin:0 0 .75rem}
.article-content .quote1 p:last-child{margin-bottom:0}

/* Ordered lists (.ol1 light, .ol2 dark) */
.ol1{margin:0;counter-reset:ol1-counter;font-family:system-ui,-apple-system,"Segoe UI",sans-serif;color:#2b2b2b}
.ol2,.s2{font-family:var(--font-display, 'Rajdhani', sans-serif);line-height:1.55;font-weight:500}
.ol1>li{padding:14px 18px 14px 52px;margin-bottom:10px;border-radius:10px;background:linear-gradient(135deg,#fdfafa 0,#f7eeee 100%);border-left:3px solid #8b1a1a;transition:transform .25s,box-shadow .25s,background .25s;counter-increment:ol1-counter}
.ol1>li::before{content:"➜";left:18px;color:#8b1a1a;font-size:1.1em;font-weight:700;transition:transform .25s,color .25s}
.ol1>li::after{content:counter(ol1-counter,decimal-leading-zero);right:16px;font-size:.75em;font-weight:600;letter-spacing:.05em;color:rgba(139,26,26,.35);transition:color .25s}
.ol1>li:hover::before{transform:translate(6px,-50%);color:#a82323}
.ol1>li:hover::after{color:rgba(139,26,26,.7)}
.ol1>li:focus-within{outline:#8B1A1A solid 2px;outline-offset:2px}
.ol2{margin:2rem 0;counter-reset:ol2-counter;font-size:1.05rem;color:var(--text,#e8e6e1)}
.s2,.s2.kicker::before{color:var(--amber-light,#f0922a)}
.ol2>li{padding:.75rem 1rem .75rem 2.25rem;margin-bottom:.5rem;background:rgba(0,0,0,.28);border:none;border-radius:8px;transition:background .25s,transform .25s,color .25s;transform-origin:left center;will-change:transform}
.ol2>li::before{content:"";position:absolute;left:1rem;top:50%;width:7px;height:7px;background:var(--amber-light,#f0922a);border-radius:50%;transform:translateY(-50%) scale(1);box-shadow:0 0 0 0 color-mix(in srgb,var(--amber-light,#f0922a) 45%,transparent);transition:transform .25s,box-shadow .3s,background .25s}
.ol2>li:hover{background:rgba(0,0,0,.42);transform:scale(1.015);color:#fff}
strong.s1,strong.s1::before{color:var(--crimson-glow,#c0392b)}
.ol2>li:hover::before{transform:translateY(-50%) scale(1.35);background:#ffb04d;box-shadow:0 0 0 6px color-mix(in srgb,var(--amber-light,#f0922a) 15%,transparent)}
.ol2>li>ol,.ol2>li>ul{margin-top:.5rem;margin-bottom:0}
.ol2>li:focus-within{background:rgba(0,0,0,.42);outline:2px solid var(--amber-light,#f0922a);outline-offset:3px}
@media (prefers-reduced-motion:reduce){.ol2>li,.ol2>li::before,a.ext::after,a.ext::before{transition:none}.ol2>li:hover{transform:none}}

/* Inline emphasis: strong.s1 and .s2 */
strong.s1{font-family:var(--font-display, 'Rajdhani', sans-serif);font-size:1.08em;font-weight:600;text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--crimson-glow,#c0392b) 55%,transparent);text-decoration-thickness:2px;text-underline-offset:4px;text-decoration-skip-ink:none;padding-left:1.35em;padding-right:.15em;transition:color .25s,text-decoration-color .25s;background:linear-gradient(180deg,transparent 62%,color-mix(in srgb,var(--crimson-glow,#c0392b) 12%,transparent) 62%);border-radius:2px}
strong.s1::before{content:"➜";position:absolute;left:0;top:50%;transform:translateY(-50%);font-size:.9em;font-weight:700;line-height:1;opacity:.85;transition:transform .25s,opacity .25s}
strong.s1:hover{color:#e74c3c;text-decoration-color:color-mix(in srgb,#e74c3c 80%,transparent)}
strong.s1:hover::before{opacity:1;transform:translate(2px,-50%)}
strong.s1.block{display:block;padding:1rem 1.25rem 1rem 3rem;margin:2rem 0;background:var(--surface);border-left:4px solid var(--crimson-glow,#c0392b);border-radius:0 8px 8px 0;font-size:1.15rem}
.s2{letter-spacing:.015em;font-size:1.04em;border-left:3px solid color-mix(in srgb,var(--amber-light,#f0922a) 65%,transparent);padding:.15em 0 .15em .9em;background:linear-gradient(90deg,color-mix(in srgb,var(--amber-light,#f0922a) 8%,transparent) 0,transparent 55%);border-radius:0 4px 4px 0;transition:color .25s,border-color .25s,background .3s}
a .s2,em.s2,span.s2{border-left:none;padding:0 .15em;background:linear-gradient(180deg,transparent 62%,color-mix(in srgb,var(--amber-light,#f0922a) 18%,transparent) 62%);border-radius:2px}
blockquote.s2,div.s2,p.s2{margin:2rem 0;padding:1rem 1.25rem 1rem 1.1rem;font-size:1.1em}
.s2:hover{color:#ffb04d;border-left-color:var(--amber-light,#f0922a)}
.s2.kicker{display:inline-flex;align-items:baseline;gap:.55em;border-left:none;padding:0;background:0 0;font-family:var(--font-mono, 'JetBrains Mono', monospace);font-size:.72em;letter-spacing:.22em;text-transform:uppercase;font-weight:500}
.s2.kicker::before{content:"◆";font-size:.55em;transform:translateY(-.1em);opacity:.8}
@media (prefers-reduced-motion:reduce){.s2,strong.s1,strong.s1::before{transition:none}}
@media (prefers-color-scheme:light){.s2{color:var(--amber-dim,#9e5208);border-left-color:color-mix(in srgb,var(--amber-dim,#9e5208) 65%,transparent)}.s2:hover{color:var(--amber,#d4750a)}}

/* ============================================================
   2Create360 — Advanced Attention / Interaction Treatments
   (the two original definitions are merged into the effective result)
   ============================================================ */

/* 1. Magnetic list */
.list-magnetic {
  list-style:none;
  padding:0;
  margin:2rem 0;
  counter-reset:magnetic-counter;
}
.list-magnetic > li {
  counter-increment:magnetic-counter;
  position:relative;
  margin:0 0 .65rem;
  padding:1rem 1.25rem 1rem 3.5rem;
  background:linear-gradient(90deg,rgba(255,255,255,.035),rgba(255,255,255,.015));
  border:1px solid var(--border,rgba(255,255,255,.07));
  border-radius:10px;
  overflow:hidden;
  transition:transform .35s cubic-bezier(.2,.8,.2,1),border-color .35s,background .35s,box-shadow .35s;
}
.list-magnetic > li::before {
  content:counter(magnetic-counter,decimal-leading-zero);
  position:absolute;
  left:1.15rem;
  top:50%;
  transform:translateY(-50%);
  font-family:var(--font-mono,'JetBrains Mono',monospace);
  font-size:.68rem;
  letter-spacing:.08em;
  color:var(--amber-light,#f0922a);
  transition:transform .35s,color .35s;
}
.list-magnetic > li::after {
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:3px;
  background:linear-gradient(180deg,var(--amber-light,#f0922a),var(--crimson-glow,#c0392b));
  transform:scaleY(0);
  transform-origin:center;
  transition:transform .35s;
}
.list-magnetic > li:hover {
  transform:translateX(8px) scale(1.012);
  background:linear-gradient(90deg,rgba(240,146,42,.10),rgba(255,255,255,.025));
  border-color:rgba(240,146,42,.35);
  box-shadow:0 12px 30px rgba(0,0,0,.22);
}
.list-magnetic > li:hover::before { transform:translate(3px,-50%) scale(1.08);color:#fff; }
.list-magnetic > li:hover::after { transform:scaleY(1); }

/* 2. Sweep list */
.list-sweep {
  list-style:none;
  padding:0;
  margin:2rem 0;
}
.list-sweep > li {
  position:relative;
  isolation:isolate;
  padding:.85rem 1rem .85rem 1.35rem;
  margin:.5rem 0;
  overflow:hidden;
  border-bottom:1px solid var(--border,rgba(255,255,255,.07));
  transition:color .3s,transform .3s,border-color .3s;
}
.list-sweep > li::before {
  content:"";
  position:absolute;
  z-index:-1;
  inset:0;
  background:linear-gradient(90deg,rgba(240,146,42,.18),rgba(240,146,42,.04),transparent);
  transform:translateX(-105%);
  transition:transform .45s cubic-bezier(.16,1,.3,1);
}
/* NOTE: left:0 / bottom:0 / background / z-index below are carried over from the
   old definition (leftover inset:0). That is why the arrow shows at the left with a
   faint gradient. For the intended right-aligned arrow, delete left, bottom,
   background and z-index and use: top:50%; right:1rem; */
.list-sweep > li::after {
  content:"↗";
  position:absolute;
  top:50%;
  right:1rem;
  bottom:0;
  left:0;
  background:linear-gradient(90deg,rgba(240,146,42,.13),transparent 65%);
  z-index:-1;
  transform:translate(10px,-50%);
  color:var(--amber-light,#f0922a);
  opacity:0;
  transition:transform .3s,opacity .3s;
}
.list-sweep > li:hover { color:#fff;transform:translateX(4px);border-color:rgba(240,146,42,.3); }
.list-sweep > li:hover::before { transform:translateX(0); }
.list-sweep > li:hover::after { opacity:1;transform:translate(0,-50%); }

/* 3. Paragraph pop */
.p-pop {
  position:relative;
  z-index:0;
  padding:1rem 1.2rem;
  margin-left:-1.2rem;
  margin-right:-1.2rem;
  border:1px solid transparent;
  border-radius:12px;
  transition:transform .3s cubic-bezier(.2,.8,.2,1),background .3s,border-color .3s,box-shadow .3s;
}
.p-pop:hover {
  z-index:5;
  transform:translateY(-4px) scale(1.025);
  background:rgba(240,146,42,.09);
  border-color:rgba(240,146,42,.28);
  box-shadow:0 18px 42px rgba(0,0,0,.28),0 0 0 1px rgba(240,146,42,.04);
}
.p-pop::before {
  content:"";
  position:absolute;
  left:0;
  top:1rem;
  bottom:1rem;
  width:2px;
  background:var(--amber-light,#f0922a);
  border-radius:2px;
  opacity:0;
  transform:scaleY(0);
  transform-origin:center;
  transition:transform .3s;
}
.p-pop:hover::before { opacity:1;transform:scaleY(1); }

/* 4. Paragraph spotlight (dims siblings inside .attention-field) */
.attention-field { position:relative; }
.attention-field > * { transition:opacity .35s ease, filter .35s ease; }
.attention-field:has(.p-spotlight:hover) > *:not(.p-spotlight:hover) { opacity:.42; filter:saturate(.55); }
.attention-field:has(.p-spotlight:hover) .p-spotlight:not(:hover) { opacity:.38; }
.p-spotlight {
  position:relative;
  padding:1rem 1.15rem;
  margin-left:-1.15rem;
  margin-right:-1.15rem;
  border-radius:10px;
  transition:background .35s ease, box-shadow .35s ease, transform .35s ease !important;
}
.p-spotlight:hover {
  z-index:3;
  opacity:1!important;
  background:radial-gradient(circle at 12% 50%,rgba(240,146,42,.12),transparent 62%);
  box-shadow:inset 3px 0 0 var(--amber-light,#f0922a);
  transform:translateX(4px);
}

/* 5. Header marker */
.h-marker {
  position:relative;
  display:inline-block;
  width:max-content;
  max-width:100%;
  padding-bottom:.35rem;
}
.h-marker::after {
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:2.5rem;
  height:2px;
  background:linear-gradient(90deg,var(--amber-light,#f0922a),transparent);
  transition:width .4s cubic-bezier(.16,1,.3,1);
}
.h-marker:hover::after { width:100%; }

/* 6. Header signal accent */
.h-signal {
  position:relative;
  transition:color .25s,text-shadow .25s;
}
/* NOTE: translateX(2px) is carried over from the old definition — the heading
   jumps 2px on hover. Remove it if you want colour-shadow only (the stated intent). */
.h-signal:hover {
  color:#fff;
  transform:translateX(2px);
  text-shadow:2px 0 0 rgba(192,57,43,.55),-2px 0 0 rgba(42,166,166,.45);
}

/* 7. Quote spotlight */
.quote-spotlight {
  position:relative;
  overflow:hidden;
  margin:2.5rem 0;
  padding:2rem 2rem 2rem 3.5rem;
  background:var(--surface,#141416);
  border-left:4px solid var(--amber-light,#f0922a);
  border-radius:0 14px 14px 0;
  color:var(--text-muted,#8a8680);
  font-size:1.2rem;
  font-style:italic;
  transition:transform .35s ease, box-shadow .35s ease, border-color .35s ease !important;
}
.quote-spotlight::before {
  content:"\201C";
  position:absolute;
  left:.55rem;
  top:-.25rem;
  font-family:Georgia,"Times New Roman",serif;
  font-size:5.5rem;
  line-height:1;
  color:var(--amber-light,#f0922a);
  opacity:.16;
  transition:opacity .35s,transform .35s;
}
.quote-spotlight::after {
  content:'';
  position:absolute;
  width:180px;
  height:180px;
  right:-90px;
  top:-90px;
  border-radius:50%;
  background:rgba(240,146,42,.09);
  filter:blur(25px);
  opacity:0;
  transition:opacity .4s ease;
  pointer-events:none;
}
/* NOTE: these !important values come from the old definition and override the
   newer hover glow/border that used to sit below it (that newer version was dead). */
.quote-spotlight:hover {
  transform:translateY(-4px) !important;
  box-shadow:0 18px 50px rgba(0,0,0,.3) !important;
  border-color:rgba(240,146,42,.4) !important;
}
.quote-spotlight:hover::before { opacity:.32;transform:scale(1.08); }
.quote-spotlight:hover::after { opacity:1; }

/* 8. Callout pulse */
.callout-pulse {
  position:relative;
  isolation:isolate;
  margin:2.5rem 0;
  padding:1.35rem 1.5rem 1.35rem 1.75rem;
  background:rgba(240,146,42,.055);
  border:1px solid rgba(240,146,42,.25);
  border-radius:10px;
  color:#fff;
  font-family:var(--font-display,'Rajdhani',sans-serif);
  font-size:1.2rem;
  font-weight:600;
  letter-spacing:.015em;
  box-shadow:0 0 0 0 rgba(240,146,42,.08);
  animation:calloutPulse 3.8s ease-in-out infinite;
}
/* NOTE: opacity:0 is carried over from the old definition, so this accent bar is
   currently INVISIBLE. Delete the opacity line to show the intended 3px amber bar. */
.callout-pulse::before {
  content:"";
  position:absolute;
  left:0;
  top:1rem;
  bottom:1rem;
  width:3px;
  background:var(--amber-light,#f0922a);
  opacity:0;
}
@keyframes calloutPulse {
  0%,100% { box-shadow:0 0 0 0 rgba(240,146,42,.02); }
  50% { box-shadow:0 0 0 7px rgba(240,146,42,.025); }
}

/* Motion/accessibility (merged from the two original blocks) */
@media (prefers-reduced-motion:reduce) {
  .list-magnetic > li,.list-magnetic > li::before,.list-magnetic > li::after,
  .list-sweep > li,.list-sweep > li::before,.list-sweep > li::after,
  .p-pop,.p-pop::before,.attention-field > *,.p-spotlight,.h-marker::after,.h-signal,
  .quote-spotlight,.quote-spotlight::before,.quote-spotlight::after,.callout-pulse { transition:none!important;animation:none!important; }
  .list-magnetic > li:hover,.list-sweep > li:hover,.p-pop:hover,.p-spotlight:hover,.quote-spotlight:hover { transform:none; }
}