:root{
  --bg: #fbfbff;
  --paper: rgba(255,255,255,.82);
  --paper2: rgba(255,255,255,.74);
  --ink: #11121a;
  --muted: rgba(17,18,26,.74);
  --quiet: rgba(17,18,26,.60);
  --line: rgba(17,18,26,.12);
  --line2: rgba(17,18,26,.08);

  /* accents (logo-inspired) */
  --a1: #2dd4bf; /* teal */
  --a2: #6d5cff; /* violet */
  --a3: #d9a441; /* warm metal */

  --radius: 20px;
  --radius2: 14px;
  --shadow: 0 22px 70px rgba(17,18,26,.10);
  --shadow2: 0 12px 36px rgba(17,18,26,.10);
  --max: 1120px;

  --sans: "Chakra Petch", ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial;
  --serif: "Cinzel", ui-serif, Georgia, serif;
  --dev: "Tiro Devanagari Sanskrit", ui-serif, Georgia, serif;

  --mx: 50%;
  --my: 35%;
}

*{ box-sizing:border-box; }
html,body{ height:100%; }
body{
  margin:0;
  font-family: var(--sans);
  color: var(--ink);
  background: var(--bg);
  overflow-x:hidden;
}

a{ color:inherit; }
button{ font-family:inherit; }

:focus-visible{
  outline: 3px solid rgba(45,212,191,.30);
  outline-offset: 3px;
  border-radius: 12px;
}

/* -----------------------------
   Living background (subtle)
------------------------------ */
.bg{
  position:fixed;
  inset:0;
  z-index:-1;
  pointer-events:none;
}

#bgCanvas{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  opacity:.85;
}

.bg-lines{
  position:absolute;
  inset:-10%;
  background:
    radial-gradient(1000px 520px at 12% 10%, rgba(45,212,191,.12), transparent 55%),
    radial-gradient(900px 560px at 82% 20%, rgba(109,92,255,.10), transparent 55%),
    radial-gradient(900px 560px at 55% 92%, rgba(217,164,65,.09), transparent 55%),
    linear-gradient(180deg, rgba(255,255,255,.92), rgba(250,250,255,.92));
  filter: saturate(1.02);
}

.spotlight{
  position:absolute;
  inset:0;
  background: radial-gradient(520px 520px at var(--mx) var(--my), rgba(255,255,255,.70), transparent 62%);
  mix-blend-mode: overlay;
  opacity:.55;
}

.sanskrit-dust{
  position:absolute;
  inset:0;
  opacity:.28;
  font-family: var(--dev);
  color: rgba(17,18,26,.52);
  letter-spacing: .02em;
}
.glyph{
  position:absolute;
  font-size: 18px;
  user-select:none;
  pointer-events:none;
  animation: drift 14s ease-in-out infinite;
}
@keyframes drift{
  0%{ transform: translate(-50%,-50%) translateY(0px) scale(1); }
  50%{ transform: translate(-50%,-50%) translateY(-18px) scale(1.02); }
  100%{ transform: translate(-50%,-50%) translateY(0px) scale(1); }
}

@media (prefers-reduced-motion: reduce){
  .glyph{ animation:none !important; }
}

/* -----------------------------
   Top bar
------------------------------ */
.top{
  position:sticky;
  top:0;
  z-index:10;
  padding: 14px 18px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 16px;
  backdrop-filter: blur(10px);
  background: rgba(255,255,255,.78);
  border-bottom: 1px solid var(--line2);
}

.brand{
  display:flex;
  align-items:center;
  gap: 12px;
  text-decoration:none;
  color: inherit;
  min-width: 220px;
}
.brand-logo{
  width: 60px;
  height: 60px;
  border-radius: 20px;
  box-shadow: 0 0 0 1px var(--line) inset;
  background: rgba(255,255,255,.70);
  filter: drop-shadow(0 14px 28px rgba(109,92,255,.16)) drop-shadow(0 14px 28px rgba(45,212,191,.12));
  animation: logoBreathe 8.5s ease-in-out infinite;
}
@keyframes logoBreathe{
  0%,100%{ transform: translateY(0); }
  50%{ transform: translateY(-1px); }
}
.brand-text{ line-height:1.1; }
.brand-name{
  font-family: var(--serif);
  letter-spacing: .22em;
  font-size: 13px;
}
.brand-sub{
  margin-top: 4px;
  font-size: 12px;
  color: var(--muted);
  letter-spacing:.02em;
}

.nav{
  display:flex;
  gap: 12px;
  align-items:center;
  flex-wrap:wrap;
}
.nav-link{
  color: var(--muted);
  text-decoration:none;
  font-size: 13px;
  padding: 10px 12px;
  border-radius: 999px;
  border: 1px solid transparent;
  background: transparent;
}
.nav-link:hover{
  color: var(--ink);
  border-color: var(--line);
  background: rgba(255,255,255,.55);
}

.wrap{
  max-width: var(--max);
  margin: 0 auto;
  padding: 26px 18px 80px;
}

/* -----------------------------
   Hero
------------------------------ */
.hero{
  display:grid;
  grid-template-columns: 1.08fr .92fr;
  gap: 32px;
  align-items:center;
  padding: 34px;
  border: 1px solid var(--line);
  border-radius: calc(var(--radius) + 6px);
  background: var(--paper);
  box-shadow: var(--shadow);
  position:relative;
  overflow:hidden;
}

.hero:before{
  content:"";
  position:absolute;
  inset:-90px -90px auto auto;
  width: 360px;
  height: 360px;
  border-radius: 50%;
  background:
    radial-gradient(circle at 30% 30%, rgba(109,92,255,.18), transparent 60%),
    radial-gradient(circle at 60% 60%, rgba(45,212,191,.14), transparent 60%);
  filter: blur(1px);
  opacity:.75;
  pointer-events:none;
}

.kicker{
  font-size: 12px;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: rgba(17,18,26,.68);
  margin-bottom: 12px;
}

.hero-title{
  margin:0 0 10px;
  font-family: var(--serif);
  font-size: clamp(34px, 4.2vw, 56px);
  letter-spacing: -.01em;
  line-height: 1.05;
}

.hero-lede{
  margin: 0;
  max-width: 70ch;
  font-size: 16px;
  line-height: 1.65;
  color: rgba(17,18,26,.86);
}
.hero-lede strong{ color: var(--ink); }

/* USPs (minimal rails, not “button-like”) */
.usp{
  margin-top: 18px;
  display:flex;
  flex-direction:column;
  gap: 12px;
}
.usp-item{
  display:flex;
  gap: 12px;
  padding: 12px 0;
  border-top: 1px solid var(--line2);
}
.usp-item:first-child{ border-top: 0; padding-top: 0; }

.usp-ico{
  width: 34px;
  height: 34px;
  border-radius: 14px;
  display:flex;
  align-items:center;
  justify-content:center;
  border: 1px solid var(--line2);
  background: rgba(255,255,255,.75);
  color: rgba(17,18,26,.78);
  flex: 0 0 auto;
}
.usp-title{ font-weight: 750; }
.usp-sub{ margin-top: 3px; color: var(--muted); font-size: 13px; line-height:1.55; }

.cta{
  display:flex;
  flex-wrap:wrap;
  gap: 10px;
  margin-top: 18px;
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap: 10px;
  padding: 12px 14px;
  border-radius: 14px;
  border: 1px solid var(--line);
  text-decoration:none;
  font-weight: 650;
  color: var(--ink);
  background: rgba(255,255,255,.74);
  cursor:pointer;
  transition: transform .12s ease, box-shadow .12s ease, border-color .12s ease;
}
.btn:hover{ transform: translateY(-1px); border-color: rgba(17,18,26,.18); box-shadow: var(--shadow2); }
.btn.primary{
  border-color: rgba(45,212,191,.25);
  background: linear-gradient(135deg, rgba(45,212,191,.22), rgba(109,92,255,.10));
}
.btn.ghost{ background: rgba(255,255,255,.58); }

.btn.mini{
  padding: 10px 12px;
  border-radius: 12px;
  font-size: 13px;
  font-weight: 700;
}
.btn.linkedin{
  border-color: rgba(109,92,255,.20);
  background: linear-gradient(135deg, rgba(109,92,255,.12), rgba(45,212,191,.08));
}

/* Small LinkedIn mark (minimal, no external icon dependency) */
.li-ico{
  width: 18px;
  height: 18px;
  border-radius: 6px;
  background: linear-gradient(135deg, rgba(45,212,191,.92), rgba(109,92,255,.86));
  position: relative;
  flex: 0 0 auto;
}
.li-ico:after{
  content:"in";
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  font-size: 11px;
  font-weight: 900;
  letter-spacing:-.06em;
  color: rgba(17,18,26,.92);
}


.trustline{
  margin-top: 14px;
  color: rgba(17,18,26,.70);
  font-size: 13px;
  line-height: 1.6;
}

/* Hero 3D card */
.hero-art{ display:flex; justify-content:center; align-items:center; }
.art-frame{
  width: min(440px, 100%);
  border-radius: calc(var(--radius) + 8px);
  border: 1px solid var(--line);
  background: rgba(255,255,255,.72);
  box-shadow: var(--shadow2);
  padding: 16px;
  position:relative;
  overflow:hidden;
}


/* Sigil badge (prominent logo, alive, but clean) */
.sigil-badge{
  position:absolute;
  top: 14px;
  right: 14px;
  width: 74px;
  height: 74px;
  border-radius: 999px;
  display:grid;
  place-items:center;
  background: rgba(255,255,255,.70);
  border: 1px solid var(--line2);
  box-shadow: var(--shadow2);
  backdrop-filter: blur(10px);
  overflow:hidden;
}
.sigil-badge:before{
  content:"";
  position:absolute;
  inset:-30%;
  background: conic-gradient(from 180deg,
    rgba(45,212,191,.0),
    rgba(45,212,191,.20),
    rgba(109,92,255,.22),
    rgba(217,164,65,.16),
    rgba(45,212,191,.0)
  );
  filter: blur(18px);
  opacity:.55;
  animation: sigilPulse 5.8s ease-in-out infinite;
}
.sigil-badge img{
  position:relative;
  z-index:1;
  width: 86%;
  height: 86%;
  object-fit: contain;
  opacity: .98;
  animation: sigilSpin 22s linear infinite;
  filter: drop-shadow(0 14px 26px rgba(109,92,255,.16)) drop-shadow(0 14px 26px rgba(45,212,191,.12));
}
@keyframes sigilSpin{ to{ transform: rotate(360deg); } }
@keyframes sigilPulse{
  0%,100%{ transform: scale(.92); opacity:.45; }
  50%{ transform: scale(1.02); opacity:.78; }
}

.reactor-stage{
  position:relative;
  width: 100%;
  height: 380px;
  border-radius: calc(var(--radius) + 6px);
  border: 1px solid var(--line2);
  background:
    radial-gradient(440px 320px at 50% 35%, rgba(45,212,191,.14), transparent 60%),
    radial-gradient(440px 320px at 40% 75%, rgba(109,92,255,.12), transparent 60%),
    linear-gradient(180deg, rgba(255,255,255,.85), rgba(255,255,255,.65));
  overflow:hidden;
}

.reactor-canvas{
  width:100%;
  height:100%;
  display:none; /* shown when 3D is ready */
}

.reactor-fallback{
  position:absolute;
  inset:0;
  display:block;
}
.reactor-fallback img{
  width:100%;
  height:100%;
  object-fit: contain;
  opacity:.92;
  transform: translateY(6px);
  filter: contrast(1.05) saturate(1.02);
}

.reactor-hint{
  position:absolute;
  left: 14px;
  bottom: 12px;
  display:flex;
  align-items:center;
  gap: 10px;
  padding: 8px 10px;
  border-radius: 999px;
  border: 1px solid var(--line2);
  background: rgba(255,255,255,.76);
  color: rgba(17,18,26,.68);
  font-size: 12px;
  user-select:none;
}
.hint-dot{
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: radial-gradient(circle at 30% 30%, var(--a1), var(--a2));
  box-shadow: 0 0 0 5px rgba(109,92,255,.08);
}

.art-caption{
  display:flex;
  align-items:center;
  gap: 10px;
  margin-top: 12px;
}
.cap-dot{
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: radial-gradient(circle at 30% 30%, var(--a1), var(--a2));
  box-shadow: 0 0 0 5px rgba(109,92,255,.08);
}
.cap-text{
  font-size: 12px;
  color: rgba(17,18,26,.62);
  letter-spacing: .04em;
  text-transform: uppercase;
}

/* -----------------------------
   Vault
------------------------------ */
.vault{
  margin-top: 26px;
  padding: 28px;
  border-radius: calc(var(--radius) + 6px);
  border: 1px solid var(--line);
  background: var(--paper2);
  box-shadow: var(--shadow2);
}

.vault-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap: 18px;
  flex-wrap:wrap;
}

.vault-title{
  font-family: var(--serif);
  margin:0;
  font-size: 26px;
  letter-spacing: -.01em;
}

.vault-sub{
  margin:0;
  color: rgba(17,18,26,.74);
  max-width: 64ch;
  line-height:1.6;
}
.vault-sub-strong{ font-weight: 700; }

.tiles{
  margin-top: 16px;
  display:grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 14px;
}

.tile{
  text-align:left;
  border: 1px solid var(--line);
  background: rgba(255,255,255,.60);
  border-radius: var(--radius);
  padding: 18px 18px 18px;
  cursor:pointer;
  transition: transform .12s ease, box-shadow .12s ease, border-color .12s ease;
  position: relative;
  overflow:hidden;
}
.tile:hover{ transform: translateY(-1px); border-color: rgba(17,18,26,.18); box-shadow: var(--shadow2); }
.tile[aria-selected="true"]{ border-color: rgba(45,212,191,.35); box-shadow: var(--shadow); }

.tile-ico{
  width: 42px;
  height: 42px;
  border-radius: 16px;
  border: 1px solid var(--line2);
  background: rgba(255,255,255,.72);
  display:flex;
  align-items:center;
  justify-content:center;
  color: rgba(17,18,26,.72);
}
.tile-ico svg{ width: 22px; height: 22px; }

.tile-title{
  margin-top: 12px;
  font-weight: 800;
}
.tile-sub{
  margin-top: 4px;
  font-size: 13px;
  color: var(--muted);
  line-height:1.5;
}

.tile-cta{
  position:absolute;
  right: 16px;
  top: 16px;
  font-size: 11px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(17,18,26,.60);
  display:flex;
  align-items:center;
  gap: 8px;
}
.tile-cta span{ transition: transform .12s ease; }
.tile:hover .tile-cta span{ transform: translateX(2px); }

.panel{
  margin-top: 14px;
  border-radius: var(--radius);
  border: 1px solid rgba(17,18,26,.14);
  background: rgba(255,255,255,.76);
  box-shadow: var(--shadow);
  overflow:hidden;
}
.panel-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding: 16px 16px;
  border-bottom: 1px solid var(--line2);
}
.panel-title{ font-weight: 800; }
.panel-close{
  border: 1px solid var(--line);
  background: rgba(255,255,255,.65);
  border-radius: 12px;
  padding: 8px 10px;
  cursor:pointer;
}
.panel-body{ padding: 16px; }

.panel-hint{
  font-size: 12px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(17,18,26,.56);
  margin: 0 0 12px;
}

.panel-section{ animation: pop .18s ease both; }
@keyframes pop{ from{opacity:0; transform: translateY(6px);} to{opacity:1; transform:none;} }

/* -----------------------------
   PSS
------------------------------ */
.pss-diagram{
  display:flex;
  align-items:center;
  gap: 10px;
  justify-content:space-between;
  margin-bottom: 14px;
}

.node{
  border: 1px solid var(--line);
  background: rgba(255,255,255,.76);
  border-radius: 999px;
  padding: 10px 12px;
  display:flex;
  align-items:center;
  gap: 10px;
  cursor:pointer;
  color: rgba(17,18,26,.68);
}
.node:hover{ border-color: rgba(17,18,26,.20); }
.node.is-on{
  color: var(--ink);
  border-color: rgba(45,212,191,.35);
  box-shadow: 0 0 0 4px rgba(45,212,191,.08);
}
.node-dot{
  width: 10px; height: 10px;
  border-radius: 50%;
  background: radial-gradient(circle at 30% 30%, var(--a1), var(--a2));
}
.node-label{ font-weight: 750; font-size: 13px; }

.node-line{
  flex:1;
  height: 1px;
  background: linear-gradient(90deg, rgba(17,18,26,.10), rgba(17,18,26,.04));
}

.pss-content{
  display:grid;
  grid-template-columns: 1.2fr .8fr;
  gap: 14px;
  align-items: start;
}

.pss-box{
  border: 1px solid var(--line2);
  border-radius: var(--radius2);
  padding: 14px;
  background: rgba(255,255,255,.70);
}
.pss-title{ margin:0 0 8px; font-weight: 800; }
.pss-text{ margin:0; color: rgba(17,18,26,.78); line-height: 1.7; }
.pss-list{ margin: 10px 0 0; padding-left: 18px; color: rgba(17,18,26,.74); }
.pss-list li{ margin: 6px 0; }

.pss-tags{ margin-top: 12px; display:flex; flex-wrap:wrap; gap: 8px; }

.micro-pill{
  font-size: 12px;
  color: rgba(17,18,26,.62);
  border: 1px dashed rgba(17,18,26,.18);
  padding: 8px 10px;
  border-radius: 999px;
  background: rgba(255,255,255,.66);
}

.mini-infographic{
  margin-top: 14px;
  border-top: 1px dashed rgba(17,18,26,.18);
  padding-top: 14px;
}
.mini-title{ font-size: 13px; color: rgba(17,18,26,.72); margin-bottom: 10px; }
.mini-bar{ height: 12px; border-radius: 999px; background: rgba(17,18,26,.06); position: relative; overflow:hidden; }
.mini-fill{ height:100%; background: linear-gradient(90deg, rgba(17,18,26,.12), rgba(17,18,26,.04)); }
.mini-tail{
  position:absolute;
  top:-6px;
  right: 10%;
  width: 24px;
  height: 24px;
  border-radius: 14px;
  border: 1px solid rgba(17,18,26,.14);
  background: radial-gradient(circle at 30% 30%, rgba(109,92,255,.22), rgba(45,212,191,.14));
  box-shadow: 0 0 0 6px rgba(109,92,255,.06);
}
.mini-legend{ display:flex; justify-content:space-between; margin-top: 8px; font-size: 12px; color: rgba(17,18,26,.56); }

/* Reuse chips for small tags */
.chip{
  display:inline-flex;
  align-items:center;
  gap: 8px;
  border: 1px solid var(--line2);
  border-radius: 999px;
  padding: 10px 12px;
  font-size: 13px;
  color: rgba(17,18,26,.70);
  background: rgba(255,255,255,.68);
  user-select:none;
}
.chip.small{ padding: 8px 10px; font-size: 12px; }

/* -----------------------------
   Tech
------------------------------ */
.tech-grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 12px;
}

.tech-card{
  border: 1px solid var(--line);
  background: rgba(255,255,255,.70);
  border-radius: var(--radius);
  padding: 14px;
  cursor:pointer;
  text-align:left;
  position:relative;
}
.tech-card:hover{ border-color: rgba(17,18,26,.18); }
.tech-card.is-on{
  border-color: rgba(45,212,191,.35);
  box-shadow: 0 0 0 4px rgba(45,212,191,.08);
}

.tech-ico{
  width: 36px;
  height: 36px;
  border-radius: 14px;
  border: 1px solid var(--line2);
  display:flex;
  align-items:center;
  justify-content:center;
  background: rgba(255,255,255,.74);
  margin-bottom: 10px;
}

.tech-title{ font-weight: 800; }
.tech-sub{ margin-top: 4px; color: var(--muted); font-size: 13px; }

.mini-arrow{
  position:absolute;
  right: 14px;
  top: 14px;
  color: rgba(17,18,26,.50);
  font-weight: 800;
}

.tech-detail{
  margin-top: 12px;
  border: 1px solid var(--line2);
  border-radius: var(--radius2);
  padding: 14px;
  background: rgba(255,255,255,.76);
  color: rgba(17,18,26,.78);
  line-height: 1.75;
}

.tech-detail-title{ font-weight: 850; margin-bottom: 8px; }
.tech-detail-text{ color: rgba(17,18,26,.78); }
.tech-detail-list{ margin: 10px 0 0; padding-left: 18px; }
.tech-detail-list li{ margin: 6px 0; }

.compare{
  margin-top: 14px;
  display:grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 12px;
  align-items: start;
  border-top: 1px dashed rgba(17,18,26,.18);
  padding-top: 14px;
}
.compare-col{
  border: 1px solid var(--line2);
  border-radius: var(--radius2);
  padding: 12px;
  background: rgba(255,255,255,.68);
}
.compare-title{ font-weight: 850; margin-bottom: 8px; }
.compare-list{ margin:0; padding-left: 18px; color: rgba(17,18,26,.74); }
.compare-list li{ margin: 6px 0; }
.compare-mid{ color: rgba(17,18,26,.50); font-size: 18px; display:flex; align-items:center; justify-content:center; padding-top: 10px; }

/* -----------------------------
   Fit
------------------------------ */
.fit-wrap{}

.fit-rail{
  position:relative;
  display:grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap: 12px;
  align-items: stretch;
}
.fit-rail::before{
  content:"";
  position:absolute;
  left: 4%;
  right: 4%;
  top: 50%;
  height: 1px;
  background: linear-gradient(90deg, rgba(17,18,26,.14), rgba(17,18,26,.05));
  transform: translateY(-50%);
  pointer-events:none;
}

.fit-node{
  position:relative;
  z-index:1;
  border: 1px solid var(--line);
  background: rgba(255,255,255,.70);
  border-radius: var(--radius);
  padding: 14px;
  text-align:left;
  cursor:pointer;
  display:flex;
  flex-direction:column;
  gap: 6px;
}
.fit-node:hover{ border-color: rgba(17,18,26,.18); }
.fit-node.is-on{
  border-color: rgba(45,212,191,.35);
  box-shadow: 0 0 0 4px rgba(45,212,191,.08);
}

.fit-icon{
  width: 34px;
  height: 34px;
  border-radius: 14px;
  border: 1px solid var(--line2);
  display:flex;
  align-items:center;
  justify-content:center;
  background: rgba(255,255,255,.74);
  margin-bottom: 2px;
}

.fit-top{
  font-size: 12px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(17,18,26,.55);
}
.fit-main{ font-weight: 850; }
.fit-sub{ color: var(--muted); font-size: 13px; }
.fit-open{
  margin-top: 4px;
  font-size: 11px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(17,18,26,.60);
}

.fit-detail{
  margin-top: 12px;
  border: 1px solid var(--line2);
  border-radius: var(--radius2);
  padding: 14px;
  background: rgba(255,255,255,.76);
  color: rgba(17,18,26,.78);
  line-height: 1.75;
}
.fit-detail-title{ font-weight: 850; margin-bottom: 8px; }
.fit-detail-text{ color: rgba(17,18,26,.78); }

.fit-chips{ margin-top: 12px; display:flex; flex-wrap:wrap; gap: 8px; }

/* -----------------------------
   Myth
------------------------------ */
.myth-grid{
  display:grid;
  grid-template-columns: .95fr 1.05fr;
  gap: 16px;
  align-items:center;
}
.myth-art{
  border: 1px solid var(--line2);
  border-radius: var(--radius);
  background: rgba(255,255,255,.74);
  padding: 14px;
}
.myth-bridge{ width:100%; height:auto; display:block; }
.myth-bridge .spiral{ stroke-dasharray: 8 14; animation: spiral 6s linear infinite; }
.myth-bridge .trace{ animation: trace 5s linear infinite; }
@keyframes spiral{ to{ stroke-dashoffset: -300; } }
@keyframes trace{ to{ stroke-dashoffset: -180; } }

@media (prefers-reduced-motion: reduce){
  .myth-bridge .spiral, .myth-bridge .trace{ animation:none !important; }
}

.myth-kicker{
  font-size: 12px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(17,18,26,.58);
}
.myth-title{ margin: 10px 0 8px; font-family: var(--serif); letter-spacing: -.01em; }
.myth-text{ margin: 0 0 10px; color: rgba(17,18,26,.78); line-height: 1.75; }
.dev{ font-family: var(--dev); }
.myth-source{ margin-top: 10px; font-size: 12px; color: rgba(17,18,26,.56); }

/* -----------------------------
   People
------------------------------ */
.people{
  margin-top: 26px;
  padding: 22px;
  border: 1px solid var(--line);
  border-radius: calc(var(--radius) + 6px);
  background: var(--paper2);
  box-shadow: var(--shadow2);
}
.people-head{ display:flex; align-items:flex-end; justify-content:space-between; gap: 14px; flex-wrap:wrap; }
.people-title{ margin:0; font-family: var(--serif); font-size: 22px; }
.people-sub{ color: rgba(17,18,26,.74); }

.people-grid{
  margin-top: 14px;
  display:grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 14px;
}
.person{
  border: 1px solid var(--line2);
  border-radius: var(--radius);
  overflow:hidden;
  background: rgba(255,255,255,.72);
  display:flex;
  align-items:flex-start;
  gap: 14px;
  padding: 12px;
}
.person img{
  width: 92px;
  height: 92px;
  object-fit: cover;
  border-radius: 24px;
  filter: grayscale(.22) contrast(1.05);
}
.person-meta{ line-height:1.25; }
.person-name{ font-weight: 850; }
.person-role{ margin-top: 6px; color: var(--muted); font-size: 13px; }
.person-bio{ margin-top: 8px; color: rgba(17,18,26,.78); font-size: 13px; line-height: 1.65; }

.person-links{
  margin-top: 10px;
  display:flex;
  gap: 10px;
  align-items:center;
}
.person-btn{
  display:inline-flex;
  align-items:center;
  gap: 8px;
  padding: 9px 10px;
  border-radius: 12px;
  border: 1px solid var(--line2);
  background: rgba(255,255,255,.70);
  text-decoration:none;
  color: var(--ink);
  font-size: 12px;
  font-weight: 750;
  transition: transform .12s ease, box-shadow .12s ease, border-color .12s ease;
}
.person-btn:hover{
  transform: translateY(-1px);
  border-color: rgba(109,92,255,.20);
  box-shadow: var(--shadow2);
}


/* -----------------------------
   Contact
------------------------------ */
.contact{ margin-top: 26px; }
.contact-card{
  padding: 28px;
  border-radius: calc(var(--radius) + 6px);
  border: 1px solid var(--line);
  background: var(--paper);
  box-shadow: var(--shadow);
}
.contact-title{ margin:0; font-family: var(--serif); font-size: 26px; }
.contact-sub{ margin: 10px 0 0; color: rgba(17,18,26,.78); line-height:1.7; }

.contact-grid{
  margin-top: 16px;
  display:grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 12px;
}
.contact-item{
  border: 1px solid var(--line2);
  border-radius: var(--radius);
  padding: 14px;
  background: rgba(255,255,255,.70);
  position: relative;
}
.label{
  font-size: 12px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(17,18,26,.55);
}
.value{
  margin-top: 8px;
  display:inline-block;
  color: rgba(17,18,26,.90);
  text-decoration:none;
  font-weight: 700;
}

.contact-item .btn{ margin-top: 10px; justify-content:flex-start; }
.mono{ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; }

.copy{
  position:absolute;
  right: 12px;
  top: 12px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: rgba(255,255,255,.76);
  padding: 8px 10px;
  cursor:pointer;
  color: rgba(17,18,26,.68);
  font-size: 12px;
}
.copy:hover{ color: var(--ink); }

.fine{
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px dashed rgba(17,18,26,.18);
  color: rgba(17,18,26,.62);
  font-size: 12px;
  line-height: 1.6;
}
.fine-sep{ padding: 0 6px; }
.fine-note{ color: rgba(17,18,26,.62); }

.linklike{
  border:0;
  background: none;
  color: rgba(17,18,26,.72);
  text-decoration: underline;
  cursor:pointer;
  font: inherit;
  padding:0;
}

/* -----------------------------
   Dialog
------------------------------ */
.myth-dialog{
  border: 1px solid rgba(17,18,26,.18);
  border-radius: 18px;
  max-width: min(980px, calc(100vw - 24px));
  padding: 0;
  box-shadow: 0 40px 120px rgba(17,18,26,.22);
}
.myth-dialog::backdrop{
  background: rgba(17,18,26,.28);
  backdrop-filter: blur(4px);
}
.dialog-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding: 14px 16px;
  border-bottom: 1px solid var(--line2);
  background: rgba(255,255,255,.92);
}
.dialog-title{ font-weight: 850; }
.dialog-close{
  border: 1px solid var(--line);
  border-radius: 12px;
  background: rgba(255,255,255,.86);
  padding: 8px 10px;
  cursor:pointer;
}

.dialog-body{ padding: 16px; background: rgba(255,255,255,.94); }
.dialog-grid{ display:grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.dialog-logo{
  width: 86px;
  height: 86px;
  border-radius: 22px;
  border: 1px solid var(--line2);
  background: rgba(255,255,255,.70);
}
.dialog-text{ color: rgba(17,18,26,.78); line-height: 1.8; }

.dialog-callout{
  margin-top: 12px;
  border: 1px dashed rgba(17,18,26,.22);
  border-radius: 18px;
  padding: 12px;
  background: rgba(255,255,255,.84);
}
.callout-title{ font-weight: 850; margin-bottom: 6px; }
.callout-text{ color: rgba(17,18,26,.78); line-height: 1.7; }

.painting{
  margin:0;
  border: 1px solid var(--line2);
  border-radius: 18px;
  overflow:hidden;
  background: rgba(255,255,255,.90);
}
.painting img{ width:100%; height:auto; display:block; }
.painting figcaption{
  padding: 10px 12px;
  font-size: 12px;
  color: rgba(17,18,26,.60);
  line-height:1.5;
}
.ext{ margin-left: 8px; color: rgba(17,18,26,.78); text-decoration: underline; }

.dialog-foot{ margin-top: 12px; border: 1px solid var(--line2); border-radius: 18px; padding: 12px; background: rgba(255,255,255,.82); }
.dialog-foot-title{ font-weight: 850; margin-bottom: 6px; }
.dialog-foot-text{ color: rgba(17,18,26,.78); line-height:1.7; }

/* -----------------------------
   Responsive
------------------------------ */
@media (max-width: 980px){
  .hero{ grid-template-columns: 1fr; padding: 26px; }
  .pss-content{ grid-template-columns: 1fr; }
  .tech-grid{ grid-template-columns: 1fr; }
  .compare{ grid-template-columns: 1fr; }
  .compare-mid{ display:none; }
  .myth-grid{ grid-template-columns: 1fr; }
  .people-grid{ grid-template-columns: 1fr; }
  .contact-grid{ grid-template-columns: 1fr; }
  .dialog-grid{ grid-template-columns: 1fr; }
  .fit-rail{ grid-template-columns: 1fr; }
  .fit-rail::before{ display:none; }
}

@media (max-width: 760px){
  .tiles{ grid-template-columns: 1fr; }
  .top{ flex-wrap:wrap; }
  .brand{ min-width: auto; }
  .reactor-stage{ height: 320px; }
}

@media (prefers-reduced-motion: reduce){
  .btn, .tile{ transition:none !important; }
}


/* --- Mobile polish (v3.1) --- */
@media (max-width: 520px){
  .wrap{ padding: 18px 14px 64px; }
  .top{ gap: 10px; }
  .brand-logo{ width: 40px; height: 40px; }
  .brand-name{ font-size: 13px; letter-spacing: .22em; }
  .brand-sub{ font-size: 12px; }
  .nav{ width: 100%; justify-content: flex-start; gap: 10px; }
  .nav-link{ padding: 10px 12px; font-size: 13px; }
  .hero{ padding: 20px; gap: 16px; }
  .kicker{ font-size: 12px; }
  .hero-title{ font-size: clamp(30px, 9vw, 44px); }
  .hero-lede{ font-size: 15px; }
  .usp{ gap: 10px; }
  .usp-item{ padding: 12px; }
  .usp-ico{ width: 34px; height: 34px; font-size: 16px; }
  .usp-title{ font-size: 14px; }
  .usp-sub{ font-size: 13px; }
  .cta{ flex-direction: column; align-items: stretch; }
  .btn{ width: 100%; justify-content: center; }
  .trustline{ font-size: 13px; }
  .art-frame{ padding: 14px; }
  .reactor-stage{ height: min(340px, 72vw); }
  .reactor-hint{ right: 12px; bottom: 12px; padding: 8px 10px; }
  .art-caption{ font-size: 12px; }
  .vault{ margin-top: 22px; }
  .vault-head{ margin-bottom: 12px; }
  .vault-title{ font-size: 22px; }
  .vault-sub{ font-size: 14px; }
  .tile{ padding: 14px; }
  .tile-title{ font-size: 15px; }
  .tile-sub{ font-size: 13px; }
  .panel{ padding: 16px; }
  .dialog{ width: 96vw; max-width: 96vw; margin: 0 auto; }
  .dialog-body{ max-height: 72vh; }
  .people-card{ padding: 14px; }
  .person-photo{ width: 64px; height: 64px; }
  .person-name{ font-size: 16px; }
}

@media (max-width: 420px){
  .hero{ padding: 18px; }
  .usp-item{ gap: 10px; }
  .reactor-stage{ height: min(300px, 78vw); }
  .sigil-badge{ width: 44px; height: 44px; }
}
