@charset "UTF-8";
:root {
  color-scheme:dark;
  --bg:#0b0d10;
  --surface:#121519;
  --surface-2:#191d22;
  --line:rgba(255,255,255,.08);
  --line-strong:rgba(255,255,255,.16);
  --text:#f1f3f2;
  --muted:#9aa3a8;
  --jade:#5bdda8;
  --jade-dim:#3fb487;
  --mint:#c3f6e1;
  --ink:#141414;
  --ink-soft:#9a978f;
  --danger:#fca5a5;
  --serif:"Newsreader",Georgia,"Times New Roman",serif;
  --sans:"Inter","Segoe UI",Arial,sans-serif;
  --mono:"JetBrains Mono",ui-monospace,SFMono-Regular,monospace;
  --radius:1.25rem;
  --max:75rem;
  font-family:var(--sans);
  font-synthesis:none
}

* {
  box-sizing:border-box
}

[hidden] {
  display:none!important
}

html {
  font-size:clamp(16px,calc(11px + .39vw),24px);
  scroll-behavior:smooth;
  scroll-padding-top:6rem
}

body {
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-size:1rem;
  line-height:1.6;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased
}

a {
  color:inherit;
  text-decoration:none
}

button {
  font:inherit;
  color:inherit;
  cursor:pointer
}

:focus-visible {
  outline:2px solid var(--jade);
  outline-offset:3px
}

img,video {
  max-width:100%;
  display:block
}

svg.i {
  width:1.25rem;
  height:1.25rem;
  fill:none;
  stroke:currentColor;
  stroke-width:1.6;
  stroke-linecap:round;
  stroke-linejoin:round;
  flex-shrink:0
}

.icon-library {
  position:absolute;
  width:0;
  height:0;
  overflow:hidden
}

::selection {
  background:var(--jade);
  color:#06231a
}

.container {
  width:min(calc(100% - 3rem),var(--max));
  margin-inline:auto
}

.skip-link {
  position:fixed;
  top:-100px;
  left:1rem;
  z-index:100;
  background:var(--jade);
  color:#06231a;
  padding:10px 1rem;
  border-radius:10px
}

.skip-link:focus {
  top:0.75rem
}

.label {
  font-family:var(--mono);
  font-size:.75rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--muted)
}

.btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:2.75rem;
  padding:10px 1.375rem;
  border-radius:62.4375rem;
  border:1px solid transparent;
  font-weight:500;
  font-size:.9375rem;
  white-space:nowrap;
  transition:background .2s,color .2s,border-color .2s,transform .2s
}

.btn:active {
  transform:translateY(1px)
}

.btn-light {
  background:var(--text);
  color:#0b0d10
}

.btn-light:hover {
  background:#fff
}

.btn-jade {
  background:var(--jade);
  color:#06231a
}

.btn-jade:hover {
  background:#7ae6bb
}

.btn-glass {
  background:rgba(255,255,255,.08);
  border-color:rgba(255,255,255,.14)
}

.btn-glass:hover {
  background:rgba(255,255,255,.16)
}

.btn-ghost {
  border-color:var(--line-strong)
}

.btn-ghost:hover {
  background:var(--surface-2)
}

.btn-text {
  padding-inline:8px
}

.btn-text:hover {
  color:var(--jade)
}

.brand {
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-weight:700;
  font-size:1.25rem;
  letter-spacing:-.02em
}

.brand img {
  width:1.75rem;
  height:1.75rem;
  border-radius:8px;
  object-fit:cover
}

.brand span {
  color:var(--jade)
}

.nav {
  position:sticky;
  top:0.875rem;
  z-index:50;
  display:flex;
  justify-content:center;
  padding:0 1rem;
  margin-top:0.875rem;
  pointer-events:none
}

.nav-pill {
  pointer-events:auto;
  position:relative;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1.5rem;
  width:min(100%,73.75rem);
  min-height:4rem;
  padding:8px 10px 8px 1.375rem;
  border:1px solid rgba(255,255,255,.12);
  border-radius:62.4375rem;
  background:rgba(48,50,52,.62);
  backdrop-filter:blur(1.125rem) saturate(140%);
  -webkit-backdrop-filter:blur(1.125rem) saturate(140%);
  box-shadow:0 1.125rem 3.125rem -20px rgba(0,0,0,.7),inset 0 1px 0 rgba(255,255,255,.08)
}

.nav-links {
  display:flex;
  align-items:center;
  gap:6px
}

.nav-links a {
  padding:8px 0.875rem;
  border-radius:62.4375rem;
  color:rgba(241,243,242,.72);
  font-size:.9375rem;
  transition:color .2s
}

.nav-links a:hover,.nav-links a.on {
  color:var(--text)
}

.nav-actions {
  display:flex;
  align-items:center;
  gap:10px
}

.menu-toggle {
  display:none;
  width:2.75rem;
  height:2.75rem;
  border:1px solid var(--line-strong);
  border-radius:62.4375rem;
  background:none;
  align-items:center;
  justify-content:center
}

.hero {
  position:relative;
  overflow:hidden;
  padding:5.5rem 0 0;
  text-align:center
}

.status-pill {
  display:inline-flex;
  align-items:center;
  gap:9px;
  padding:6px 0.875rem;
  border:1px solid rgba(91,221,168,.28);
  border-radius:62.4375rem;
  background:rgba(91,221,168,.08);
  color:var(--jade);
  font-size:.8125rem;
  font-weight:500
}

.pulse-dot {
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--jade);
  animation:pulse 2s ease-in-out infinite
}

@keyframes pulse {
  0%,100% {
    box-shadow:0 0 0 0 rgba(91,221,168,.55)
  }
  50% {
    box-shadow:0 0 0 6px rgba(91,221,168,0)
  }
}

.hero h1 {
  font-family:var(--serif);
  font-weight:300;
  font-size:clamp(2.625rem,6.6vw,5.5rem);
  line-height:1.04;
  letter-spacing:-.03em;
  margin:1.625rem auto 0;
  max-width:62.5rem
}

.hero h1 em {
  font-style:italic;
  color:var(--jade)
}

.hero-sub {
  max-width:37.5rem;
  margin:1.5rem auto 0;
  color:var(--muted);
  font-size:1.125rem
}

.hero-cta {
  display:flex;
  justify-content:center;
  align-items:center;
  gap:0.75rem;
  flex-wrap:wrap;
  margin-top:2.75rem
}

.wave {
  width:min(22.5rem,26vw);
  height:5.625rem;
  overflow:visible
}

.wave path {
  fill:none;
  stroke:var(--muted);
  stroke-width:1;
  opacity:.45;
  vector-effect:non-scaling-stroke
}

.wave-left {
  margin-right:1.25rem
}

.wave-right {
  margin-left:1.25rem
}

.trust {
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:10px 1.75rem;
  margin-top:2rem;
  color:var(--muted);
  font-size:.875rem
}

.trust b {
  color:var(--text);
  font-weight:600
}

.stage {
  position:relative;
  margin-top:4.5rem;
  padding-bottom:2.5rem
}

.stage-art {
  position:absolute;
  left:50%;
  top:-90px;
  width:min(81.25rem,150%);
  max-width:none;
  transform:translateX(-50%);
  opacity:.6;
  pointer-events:none;
  mask-image:radial-gradient(ellipse at center,#000 25%,transparent 70%);
  -webkit-mask-image:radial-gradient(ellipse at center,#000 25%,transparent 70%)
}

.mock {
  position:relative;
  max-width:55rem;
  margin-inline:auto;
  border:1px solid var(--line-strong);
  border-radius:1.5rem;
  background:linear-gradient(180deg,rgba(25,29,34,.92),rgba(18,21,25,.96));
  box-shadow:0 2.5rem 7.5rem -40px rgba(0,0,0,.9);
  text-align:left;
  overflow:hidden
}

.mock-top {
  display:flex;
  align-items:center;
  gap:0.75rem;
  padding:0.875rem 1.125rem;
  border-bottom:1px solid var(--line);
  font-size:.8125rem;
  color:var(--muted)
}

.mock-dots {
  display:flex;
  gap:6px
}

.mock-dots i {
  width:10px;
  height:10px;
  border-radius:50%;
  background:var(--line-strong)
}

.mock-tag {
  margin-left:auto;
  font-family:var(--mono);
  font-size:.75rem;
  border:1px solid var(--line-strong);
  border-radius:62.4375rem;
  padding:3px 10px
}

.mock-body {
  padding:1.375rem 1.625rem 1.625rem;
  display:grid;
  gap:10px;
  font-family:var(--mono);
  font-size:.875rem
}

.mock-line {
  display:flex;
  justify-content:space-between;
  gap:1rem;
  padding:10px 0.875rem;
  border:1px solid var(--line);
  border-radius:0.75rem;
  background:var(--bg)
}

.mock-line span:first-child {
  color:var(--muted)
}

.mock-line .ok {
  color:var(--jade)
}

.mock-foot {
  display:flex;
  justify-content:space-between;
  gap:0.75rem;
  flex-wrap:wrap;
  font-size:.75rem;
  color:var(--muted);
  padding-top:8px
}

.signal {
  position:absolute;
  z-index:2;
  display:grid;
  gap:2px;
  min-width:9.375rem;
  padding:0.75rem 0.875rem;
  border:1px solid var(--line-strong);
  border-radius:0.875rem;
  background:rgba(18,21,25,.86);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  text-align:left;
  box-shadow:0 1.25rem 3.125rem -20px rgba(0,0,0,.8);
  animation:float 7s ease-in-out infinite
}

.signal strong {
  font-family:var(--serif);
  font-weight:400;
  font-size:1.5rem;
  line-height:1.1;
  color:var(--jade)
}

.signal small {
  color:var(--muted);
  font-size:.75rem
}

.signal .label {
  font-size:.625rem
}

.s1 {
  left:0;
  top:2.5rem
}

.s2 {
  left:3%;
  bottom:4.375rem;
  animation-delay:-2s
}

.s3 {
  right:0;
  top:5rem;
  animation-delay:-4s
}

.s4 {
  right:4%;
  bottom:3.125rem;
  animation-delay:-1s
}

@keyframes float {
  50% {
    translate:0 -8px
  }
}

.paper-wrap {
  padding:1.5rem
}

.paper {
  position:relative;
  overflow:hidden;
  border-radius:2.25rem;
  background:#f2efe9;
  color:var(--ink)
}

.paper-bg {
  position:absolute;
  inset:-6%;
  width:112%;
  height:112%;
  max-width:none;
  object-fit:cover;
  pointer-events:none;
  animation:smoke 26s ease-in-out infinite alternate
}

@keyframes smoke {
  from {
    transform:translate(-2%,-1%) scale(1)
  }
  to {
    transform:translate(2%,2%) scale(1.06)
  }
}

.scatter {
  min-height:51.25rem;
  display:grid;
  place-items:center;
  padding:8.75rem 3rem
}

.paper-center {
  position:relative;
  z-index:1;
  display:grid;
  justify-items:center;
  gap:1.75rem;
  width:100%
}

.paper-live {
  display:inline-flex;
  align-items:center;
  gap:10px;
  margin:0;
  font-family:var(--mono);
  font-size:.8125rem;
  letter-spacing:.08em;
  color:#3d3a35
}

.paper-live .pulse-dot {
  background:#2fa878
}

.paper .status-grid {
  display:none;
  width:min(100%,55rem);
  text-align:left
}

.paper .status-grid.show {
  display:flex
}

.paper .scard {
  background:#fff;
  border-color:rgba(20,20,20,.1);
  color:var(--ink)
}

.paper .scard:hover {
  border-color:rgba(31,122,85,.45)
}

.paper .scard .meta {
  color:#6f6c66
}

.paper .pill.active {
  background:rgba(47,168,120,.14);
  color:#1f7a55
}

.paper .pill.active i {
  background:#2fa878
}

.paper .pill.inactive {
  background:rgba(20,20,20,.06);
  color:#6f6c66
}

.statement {
  max-width:min(56.25rem,calc(100% - 26rem));
  margin:0;
  text-align:center;
  font-family:var(--serif);
  font-weight:300;
  font-size:clamp(2rem,3.8vw,3.5rem);
  line-height:1.18;
  letter-spacing:-.02em;
  color:var(--ink-soft)
}

.statement .w {
  transition:color .35s ease
}

.statement .w.on {
  color:var(--ink)
}

.fc {
  position:absolute;
  z-index:2;
  font-size:.8125rem;
  transform:translate3d(0,var(--py,0px),0) rotate(var(--r,0deg));
  transition:transform .6s cubic-bezier(.2,.7,.2,1);
  will-change:transform
}

.fc-card {
  min-width:13.125rem;
  padding:0.875rem 1.125rem;
  border-radius:0.75rem;
  background:#fff;
  box-shadow:0 1.125rem 2.5rem -18px rgba(20,20,20,.35),0 2px 6px rgba(20,20,20,.06);
  animation:float 9s ease-in-out infinite
}

.fc-top {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:1.125rem;
  margin-bottom:8px
}

.fc-src {
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:.75rem;
  font-weight:600;
  color:#1f7a55
}

.fc-src i {
  width:7px;
  height:7px;
  border-radius:50%;
  background:#2fa878
}

.fc-src.off {
  color:#6f6c66
}

.fc-src.off i {
  background:#a8a49c
}

.fc-top b {
  font-family:var(--mono);
  font-weight:500;
  font-size:.75rem;
  color:var(--ink)
}

.fc-card strong {
  display:block;
  font-weight:600;
  font-size:.9375rem;
  color:var(--ink)
}

.fc-card small {
  color:#6f6c66
}

.fc-stamp {
  padding:1rem 1.375rem;
  border:1.5px solid rgba(20,20,20,.55);
  background:rgba(242,239,233,.55);
  font-family:var(--mono);
  color:rgba(20,20,20,.62);
  letter-spacing:.06em
}

.fc-stamp .label {
  display:block;
  color:rgba(20,20,20,.75);
  margin-bottom:10px;
  letter-spacing:.18em
}

.fc-stamp p {
  margin:0;
  font-size:.75rem
}

.c1 {
  top:6.875rem;
  left:4%;
  --r:-5deg
}

.c2 {
  top:-14px;
  left:30%;
  --r:4deg
}

.c3 {
  top:5rem;
  right:5%;
  --r:3deg;
  animation-delay:-3s
}

.c4 {
  top:44%;
  left:1.5%;
  --r:3deg
}

.c5 {
  top:40%;
  right:1.5%;
  --r:1.5deg;
  animation-delay:-6s
}

.c6 {
  bottom:5.625rem;
  left:6%;
  --r:-4deg;
  animation-delay:-3s
}

.c7 {
  bottom:1.875rem;
  left:max(24%,21rem);
  --r:3deg;
  animation-delay:-6s
}

.c8 {
  bottom:1rem;
  right:28%;
  --r:1deg
}

.c9 {
  bottom:6.25rem;
  right:7%;
  --r:-2deg;
  animation-delay:-3s
}

.section {
  padding:7.5rem 0
}

.split-head {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:2rem;
  margin-bottom:3.5rem
}

.split-head h2 {
  margin:0;
  font-family:var(--serif);
  font-weight:300;
  font-size:clamp(2.25rem,4.6vw,3.75rem);
  line-height:1.05;
  letter-spacing:-.025em
}

.split-head p {
  max-width:27.5rem;
  margin:0;
  color:var(--muted);
  text-align:right;
  font-weight:300
}




.status-grid {
  display:flex;
  flex-wrap:wrap;
  gap:0.875rem
}

.scard {
  flex:1 1 18.125rem;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:0.75rem;
  padding:1.125rem 1.25rem;
  border:1px solid var(--line);
  border-radius:1rem;
  background:var(--surface);
  transition:transform .2s,border-color .2s
}

.scard:hover {
  transform:translateY(-3px);
  border-color:rgba(91,221,168,.35)
}

.scard .name {
  font-weight:600
}

.scard .meta {
  color:var(--muted);
  font-size:.75rem;
  margin-top:3px
}

.scard .meta span {
  font-family:var(--mono)
}

.pill {
  display:inline-flex;
  align-items:center;
  gap:7px;
  font-size:.75rem;
  font-weight:600;
  padding:5px 11px;
  border-radius:62.4375rem;
  white-space:nowrap
}

.pill i {
  width:8px;
  height:8px;
  border-radius:50%
}

.pill.active {
  background:rgba(91,221,168,.12);
  color:var(--jade)
}

.pill.active i {
  background:var(--jade);
  animation:pulse 2s ease-in-out infinite
}

.pill.inactive {
  background:rgba(255,255,255,.05);
  color:var(--muted)
}

.pill.inactive i {
  background:#5b6678
}


.steps {
  display:grid;
  grid-template-columns:repeat(4,1fr)
}

.step {
  display:flex;
  flex-direction:column;
  gap:0.875rem;
  padding:8px 1.75rem 4px;
  border-left:1px solid var(--line)
}

.step:first-child {
  border-left:0;
  padding-left:0
}

.ill {
  width:5.5rem;
  height:4.125rem;
  margin-bottom:1.75rem;
  overflow:visible
}

.ill .ln path {
  fill:none;
  stroke:rgba(241,243,242,.4);
  stroke-width:1;
  stroke-dasharray:260;
  stroke-dashoffset:260;
  transition:stroke-dashoffset 1.8s cubic-bezier(.4,0,.2,1) .2s
}

.in .ill .ln path {
  stroke-dashoffset:0
}

.ill circle,.ill .mk {
  opacity:0;
  transition:opacity .6s ease 1.2s
}

.in .ill circle,.in .ill .mk {
  opacity:1
}

.ill .dot {
  fill:rgba(241,243,242,.55)
}

.ill .hot {
  fill:none;
  stroke:var(--jade);
  stroke-width:1.5
}

.ill .fill {
  fill:var(--jade)
}

.ill .mk {
  fill:none;
  stroke:var(--jade);
  stroke-width:1.8
}

.step h3 {
  margin:0;
  font-family:var(--serif);
  font-weight:400;
  font-size:1.625rem;
  letter-spacing:-.01em
}

.step p {
  margin:0;
  color:var(--muted);
  font-weight:300
}

.step .num {
  margin-top:auto;
  padding-top:3rem;
  font-size:.8125rem;
  color:var(--muted)
}

.platform {
  background:radial-gradient(ellipse at 50% 100%,rgba(91,221,168,.08),transparent 60%)
}

.arch {
  display:grid;
  grid-template-columns:1fr 1fr 5rem 1.15fr;
  gap:0.875rem;
  align-items:stretch
}

.arch-panel {
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:rgba(18,21,25,.7);
  padding:1.5rem;
  display:flex;
  flex-direction:column;
  gap:1.375rem
}

.sources {
  flex:1;
  display:grid;
  grid-template-columns:auto 1fr;
  gap:1.125rem;
  align-items:center
}

.source-list {
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:8px
}

.source-list li {
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:8px;
  width:max-content;
  padding:6px 0.75rem;
  border:1px solid var(--line-strong);
  border-radius:10px;
  background:var(--bg);
  font-size:.8125rem
}

.source-list li svg {
  width:0.9375rem;
  height:0.9375rem;
  color:var(--jade)
}

.source-list li::after,.arch-side::before {
  content:"";
  position:absolute;
  height:1px;
  background-image:linear-gradient(90deg,var(--line-strong) 50%,transparent 50%);
  background-size:8px 1px;
  animation:flow 1.2s linear infinite
}

.source-list li::after {
  left:100%;
  top:50%;
  width:2.5rem
}

@keyframes flow {
  to {
    background-position:1rem 0
  }
}

.node-stack {
  display:grid;
  gap:0.875rem
}

.node {
  padding:0.875rem;
  border:1px solid var(--line-strong);
  border-radius:0.75rem;
  text-align:center;
  font-weight:600;
  font-size:.875rem;
  background:var(--bg)
}

.node-hot {
  border-color:rgba(91,221,168,.5);
  background:linear-gradient(160deg,rgba(91,221,168,.22),rgba(14,43,34,.6));
  color:#e3fff3;
  animation:glow 3s ease-in-out infinite
}

@keyframes glow {
  50% {
    box-shadow:0 0 0 6px rgba(91,221,168,.12)
  }
}

.node-hot .label {
  display:block;
  font-size:.625rem;
  margin-bottom:4px;
  color:#bfeedd
}

.arch-core {
  position:relative;
  overflow:hidden;
  border-radius:var(--radius);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:1.125rem;
  padding:2.25rem 1.75rem
}

.arch-core>img {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  animation:drift 18s ease-in-out infinite alternate
}

@keyframes drift {
  from {
    transform:scale(1.15) translate(-3%,2%)
  }
  to {
    transform:scale(1.3) translate(4%,-3%) rotate(6deg)
  }
}

.core-card {
  position:relative;
  width:100%;
  max-width:20rem;
  border-radius:1rem;
  background:rgba(11,13,16,.88);
  border:1px solid rgba(255,255,255,.1);
  box-shadow:0 1.875rem 3.75rem -20px rgba(0,0,0,.6);
  overflow:hidden
}

.core-head {
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:0.875rem 1.125rem;
  border-bottom:1px solid var(--line);
  font-size:.8125rem;
  color:var(--muted)
}

.core-head .brand {
  font-size:1rem
}

.core-head .brand img {
  width:1.25rem;
  height:1.25rem;
  border-radius:6px
}

.core-card ul {
  list-style:none;
  margin:0;
  padding:0
}

.core-card li {
  display:flex;
  gap:0.75rem;
  padding:0.875rem 1.125rem;
  border-bottom:1px solid var(--line);
  font-size:.875rem;
  transition:background .4s
}

.core-card li:last-child {
  border-bottom:0
}

.core-card li svg {
  width:1rem;
  height:1rem;
  margin-top:3px;
  color:var(--muted);
  transition:color .4s
}

.core-card li.on {
  background:rgba(91,221,168,.08)
}

.core-card li.on svg {
  color:var(--jade)
}

.core-card small {
  display:block;
  color:var(--muted);
  font-size:.75rem
}


.arch-side {
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:0.75rem;
  text-align:center;
  font-size:.75rem;
  color:var(--muted)
}

.arch-side::before {
  left:-8px;
  right:-8px;
  top:50%;
  z-index:-1
}

.side-ico {
  display:grid;
  place-items:center;
  width:2.75rem;
  height:2.75rem;
  border:1px solid var(--line-strong);
  border-radius:0.75rem;
  background:var(--bg);
  color:var(--text)
}

.org {
  flex:1;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:1.375rem
}

.org-row {
  position:relative;
  display:flex;
  justify-content:center;
  gap:8px 6px;
  flex-wrap:wrap
}

.org-row+.org-row::before {
  content:"";
  position:absolute;
  top:-12px;
  left:18%;
  right:18%;
  border-top:1px solid var(--line-strong)
}

.org-node {
  display:grid;
  grid-template-columns:auto 1fr;
  column-gap:8px;
  align-items:center;
  padding:5px 0.75rem 5px 5px;
  border:1px solid var(--line);
  border-radius:62.4375rem;
  background:var(--surface-2);
  font-size:.75rem;
  white-space:nowrap;
  transition:border-color .4s,box-shadow .4s
}

.org-node i {
  grid-row:span 2;
  width:1.375rem;
  height:1.375rem;
  border-radius:50%;
  background:radial-gradient(circle at 35% 35%,#fff8,var(--c) 55%)
}

.org-node b {
  font-weight:600
}

.org-node small {
  color:var(--muted);
  font-size:.6875rem
}

.org-node.on {
  border-color:rgba(91,221,168,.6);
  box-shadow:0 0 0 3px rgba(91,221,168,.12)
}

.org-quote {
  margin:6px 0 0;
  text-align:center;
  font-size:.75rem;
  color:var(--muted)
}



.enterprise {
  padding:6rem 6rem 4.5rem
}

.spiro {
  position:absolute;
  top:-40px;
  right:-60px;
  width:28.75rem;
  height:28.75rem;
  max-width:none;
  pointer-events:none;
  animation:spin-slow 120s linear infinite
}

@keyframes spin-slow {
  to {
    transform:rotate(360deg)
  }
}

.paper-title {
  position:relative;
  margin:0;
  max-width:53.75rem;
  font-family:var(--serif);
  font-weight:300;
  font-size:clamp(2.25rem,4.4vw,3.75rem);
  line-height:1.1;
  letter-spacing:-.02em
}

.paper-title span {
  color:var(--ink-soft)
}

.ent-rows {
  position:relative;
  margin-top:4.5rem;
  border-top:1px solid rgba(20,20,20,.12)
}

.ent-row {
  display:grid;
  grid-template-columns:1fr minmax(18.75rem,23.75rem) 1fr;
  gap:3rem;
  align-items:center;
  padding:3rem 0;
  border-bottom:1px solid rgba(20,20,20,.12)
}

.ent-row h3 {
  margin:0;
  font-weight:300;
  font-size:1.625rem;
  letter-spacing:-.01em
}

.ent-row>p {
  margin:0;
  color:#57544e;
  font-size:.9375rem
}

.widget {
  border-radius:0.875rem;
  background-color:#121212;
  background-image:linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);
  background-size:1rem 1rem;
  color:var(--text);
  padding:1.25rem;
  display:grid;
  gap:10px;
  box-shadow:0 1.875rem 3.75rem -30px rgba(0,0,0,.5)
}

.w-label {
  font-size:.8125rem;
  color:var(--muted)
}

.w-opt {
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:0.75rem;
  padding:0.75rem 0.875rem;
  border:1px solid var(--line-strong);
  border-radius:0.75rem;
  background:rgba(255,255,255,.04);
  font-size:.875rem
}

.w-opt small {
  display:block;
  font-family:var(--mono);
  font-size:.75rem;
  color:var(--muted)
}

.w-opt svg {
  width:1.125rem;
  height:1.125rem;
  color:var(--jade)
}

.w-foot {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:0.75rem;
  padding-top:0.75rem;
  border-top:1px solid var(--line);
  font-size:.8125rem;
  color:var(--muted)
}

.w-foot b {
  font-family:var(--serif);
  font-weight:300;
  font-size:1.75rem;
  color:var(--jade)
}

.w-code {
  margin:0;
  padding:0.75rem 0.875rem;
  border:1px solid var(--line);
  border-radius:0.75rem;
  background:#0b0d10;
  font-family:var(--mono);
  font-size:.8125rem;
  color:#d6dcd9;
  overflow:auto
}

.stats {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  border-block:1px solid var(--line)
}

.stat {
  padding:3rem 1.75rem;
  border-left:1px solid var(--line);
  text-align:center
}

.stat:first-child {
  border-left:0
}

.stat .big {
  font-family:var(--serif);
  font-weight:300;
  font-size:clamp(3rem,7vw,5rem);
  line-height:1;
  color:var(--jade)
}

.stat .lbl {
  margin-top:10px;
  color:var(--muted)
}

.closing {
  text-align:center;
  padding:8.75rem 0;
  position:relative;
  overflow:hidden
}

.closing h2 {
  font-family:var(--serif);
  font-weight:300;
  font-size:clamp(2.25rem,5.4vw,4.25rem);
  line-height:1.05;
  letter-spacing:-.03em;
  margin:0 auto;
  max-width:56.25rem
}

.closing h2 em {
  color:var(--jade)
}

.closing p {
  color:var(--muted);
  margin:1.125rem auto 0
}

.closing .hero-cta {
  margin-top:2.25rem
}

.footer {
  border-top:1px solid var(--line);
  padding:2.75rem 0 2.25rem;
  color:var(--muted);
  font-size:.875rem
}

.footer-inner {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:1.5rem;
  flex-wrap:wrap
}

.footer nav {
  display:flex;
  flex-wrap:wrap;
  gap:8px 1.5rem
}

.footer nav a:hover {
  color:var(--text)
}

.footer .copy {
  font-family:var(--mono);
  font-size:.75rem
}

[data-reveal] {
  opacity:0;
  translate:0 1.75rem;
  transition:opacity .9s cubic-bezier(.2,.7,.2,1),translate .9s cubic-bezier(.2,.7,.2,1)
}

[data-reveal].in {
  opacity:1;
  translate:0 0
}

.steps .step:nth-child(2) {
  transition-delay:.08s
}

.steps .step:nth-child(3) {
  transition-delay:.16s
}

.steps .step:nth-child(4) {
  transition-delay:.24s
}

.shop-main {
  padding:4.5rem 0 6.875rem
}

.shop-head {
  text-align:center;
  margin-bottom:2.75rem
}

.shop-head h1 {
  margin:0.75rem 0 0;
  font-family:var(--serif);
  font-weight:300;
  font-size:clamp(2.5rem,6vw,4.25rem);
  letter-spacing:-.03em;
  line-height:1.05
}

.shop-head p {
  color:var(--muted);
  margin:0.875rem 0 0
}

.shop-grid {
  display:grid;
  gap:1rem;
  grid-template-columns:repeat(auto-fit,minmax(18.75rem,1fr));
  max-width:53.75rem;
  margin-inline:auto
}

.pcard {
  position:relative;
  display:flex;
  flex-direction:column;
  gap:0.75rem;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:var(--surface);
  padding:1.75rem;
  transition:transform .2s,border-color .2s
}

.pcard:hover {
  transform:translateY(-4px);
  border-color:rgba(91,221,168,.4)
}

.pcard .tag {
  align-self:flex-start;
  font-family:var(--mono);
  font-size:.6875rem;
  letter-spacing:.1em;
  color:#06231a;
  background:var(--jade);
  padding:4px 10px;
  border-radius:62.4375rem
}

.pcard h2 {
  margin:6px 0 0;
  font-family:var(--serif);
  font-weight:400;
  font-size:1.875rem;
  letter-spacing:-.01em
}

.pcard .desc {
  margin:0;
  color:var(--muted);
  flex:1
}

.pcard-foot {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:0.75rem;
  margin-top:10px;
  padding-top:1.125rem;
  border-top:1px solid var(--line)
}

.price {
  font-family:var(--serif);
  font-size:1.5rem
}

.price small {
  font-family:var(--sans);
  font-size:.8125rem;
  color:var(--muted)
}

.go {
  color:var(--jade);
  font-weight:600;
  font-size:.9375rem
}

.lang {
  display:flex;
  border:1px solid var(--line-strong);
  border-radius:62.4375rem;
  padding:3px;
  font-family:var(--mono);
  font-size:.75rem
}

.lang button {
  background:none;
  border:0;
  padding:4px 10px;
  border-radius:62.4375rem;
  color:var(--muted)
}

.lang button.active {
  background:var(--text);
  color:#0b0d10
}

.closed {
  max-width:30rem;
  margin:1.875rem auto;
  text-align:center;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:var(--surface);
  padding:2.75rem 1.75rem
}

.closed svg {
  width:2.125rem;
  height:2.125rem;
  color:var(--jade);
  margin:0 auto 0.75rem
}

.closed h1 {
  margin:0 0 8px;
  font-family:var(--serif);
  font-weight:400;
  font-size:1.75rem
}

.closed p {
  margin:0;
  color:var(--muted)
}

.closed a {
  display:inline-block;
  margin-top:1.375rem;
  color:var(--muted)
}

@media(max-width:1180px) {
  .signal {
    display:none
  }

  .statement {
    font-size:1.75rem
  }

  .c7 {
    left:32%
  }

  .arch {
    grid-template-columns:1fr 1fr
  }

  .arch-side {
    display:none
  }

  .steps {
    grid-template-columns:1fr 1fr;
    row-gap:3rem
  }

  .step:nth-child(3) {
    border-left:0;
    padding-left:0
  }

  .ent-row {
    grid-template-columns:1fr;
    gap:1.25rem
  }

  .enterprise {
    padding:4.5rem 2rem 2.5rem
  }
}

@media(max-width:960px) {
  .fc {
    display:none
  }

  .paper .status-grid {
    display:flex
  }

  .scatter {
    min-height:0;
    padding:6.875rem 2rem
  }

  .statement {
    max-width:56.25rem;
    font-size:clamp(2rem,3.8vw,3.5rem)
  }
}

@media(max-width:860px) {
  .nav {
    top:8px;
    margin-top:8px
  }

  .nav-pill {
    padding-left:1rem
  }

  .menu-toggle {
    display:inline-flex
  }

  .nav-links {
    display:none;
    position:absolute;
    top:calc(100% + 8px);
    left:0;
    right:0;
    flex-direction:column;
    align-items:stretch;
    padding:0.75rem 1.25rem 1.125rem;
    border:1px solid var(--line);
    border-radius:1.25rem;
    background:var(--bg)
  }

  .nav-links.is-open {
    display:flex
  }

  .nav-links a {
    padding:0.75rem 4px
  }

  .wave {
    display:none
  }

  .arch {
    grid-template-columns:1fr
  }

  .split-head {
    flex-direction:column;
    align-items:flex-start
  }

  .split-head p {
    text-align:left
  }

  .spiro {
    width:17.5rem;
    height:17.5rem;
    top:-60px;
    right:-80px
  }

  .paper-wrap {
    padding:10px
  }

  .paper {
    border-radius:1.5rem
  }

  .stats {
    grid-template-columns:1fr
  }

  .stat {
    border-left:0;
    border-top:1px solid var(--line)
  }

  .stat:first-child {
    border-top:0
  }
}

@media(max-width:560px) {
  .steps {
    grid-template-columns:1fr
  }

  .step {
    border-left:0;
    padding-left:0
  }

  .sources {
    grid-template-columns:1fr
  }

  .source-list li::after {
    display:none
  }

  .section {
    padding:5.5rem 0
  }

  .hero {
    padding-top:3.5rem
  }

  .btn-nav {
    display:none
  }
}

@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }

  *,*::before,*::after {
    animation:none!important;
    transition:none!important
  }

  [data-reveal] {
    opacity:1;
    translate:none
  }

  .ill .ln path {
    stroke-dashoffset:0
  }

  .ill circle,.ill .mk {
    opacity:1
  }
}
