/* Swiss V2 — STREAMHUB ecosystem landing.
 * Namespaced to Swiss; shared navbar, footer, theme, and button tokens remain upstream.
 */
html[data-sh-page="home"] .swiss-body {
  font-family: "MontserratLocal", system-ui, sans-serif;
}

.swiss-body {
  --swiss-wire: rgba(64, 79, 108, .33);
  --swiss-wire-soft: rgba(64, 79, 108, .15);
  --swiss-point: #4c5e75;
  --swiss-active: #31b96d;
  --swiss-developing: #bb8d17;
  --swiss-ghost-wire: rgba(62, 79, 105, .37);
  --swiss-ghost-dot: rgba(55, 73, 98, .79);
  --swiss-tool-fill: color-mix(in srgb, var(--bg-surface) 96%, transparent);
  --swiss-tool-icon: rgba(52, 65, 87, .1);
}

html[data-theme="night"] .swiss-body {
  --swiss-wire: rgba(211, 222, 242, .32);
  --swiss-wire-soft: rgba(211, 222, 242, .14);
  --swiss-point: #dee5f5;
  --swiss-active: #8de1a4;
  --swiss-developing: #e9cb55;
  --swiss-ghost-wire: rgba(207, 219, 239, .35);
  --swiss-ghost-dot: rgba(217, 228, 245, .75);
  --swiss-tool-fill: color-mix(in srgb, var(--bg-surface) 92%, transparent);
  --swiss-tool-icon: rgba(189, 206, 241, .08);
}


/* Keep the existing StreamHUB shell readable even on standalone Swiss routes. */
.swiss-body {font-family:"MontserratLocal",system-ui,sans-serif;}
.swiss-body .swiss-main .shell {width:min(1190px,calc(100% - 56px));margin-inline:auto;}
.swiss-body .logo {font-family:"MontserratLocal",system-ui,sans-serif;font-size:1.5rem;font-weight:500;color:var(--text-main);}
.swiss-body .logo a {color:inherit;text-decoration:none;}
.swiss-body .logo-stream {font-weight:850;}
.swiss-body .logo-hub {font-weight:400;}
.swiss-body .sh-site-nav .logo {justify-self:start;}
.swiss-body .site-footer {border-top:1px solid var(--border-subtle);padding:18px 0 28px;}
.swiss-body .footer-inner {display:flex;align-items:center;justify-content:space-between;gap:18px;color:var(--text-subtle);}
.swiss-body .footer-inner p {margin:0;white-space:nowrap;}
.swiss-body .footer-nav {display:flex;align-items:center;gap:18px;flex-wrap:wrap;}
.swiss-body .footer-nav a {color:var(--text-subtle);text-decoration:none;}
.swiss-body .footer-nav a:hover {color:var(--text-main);}

.swiss-main { position:relative; overflow:hidden; isolation:isolate; }
.swiss-main::before {
  content:""; position:absolute; inset:0; z-index:-2; pointer-events:none;
  background-image: linear-gradient(var(--swiss-wire-soft) 1px,transparent 1px),linear-gradient(90deg,var(--swiss-wire-soft) 1px,transparent 1px);
  background-size:56px 56px;
  mask-image: linear-gradient(to bottom, rgba(0,0,0,.36), rgba(0,0,0,.18) 47%,transparent 96%);
}
.swiss-main::after {
  content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:radial-gradient(ellipse 42% 26% at 75% 15%,rgba(144,170,237,.08),transparent 100%);
}

.swiss-hero,.swiss-section { position:relative; z-index:1; }
.swiss-hero {
  display:grid; grid-template-columns:minmax(0,.96fr) minmax(0,1.08fr);
  align-items:center; gap:clamp(18px,3vw,52px);
  padding-top:clamp(75px,8vw,124px); padding-bottom:clamp(65px,7vw,112px);
}
.swiss-hero__copy { position:relative; z-index:2; }
.swiss-hero h1 {
  margin:0; max-width:13ch; color:var(--text-main);
  font-family:"MontserratLocal",system-ui,sans-serif;
  font-size:clamp(2.8rem,4.75vw,5rem); font-weight:850;
  letter-spacing:-.072em; line-height:1.055; text-wrap:balance;
}
.swiss-hero h1 em,.swiss-section h2 em { font-style:normal; color:var(--accent-main); }
.swiss-lead {
  margin:27px 0 0; max-width:540px; font-size:clamp(.92rem,1.25vw,1.06rem);
  line-height:1.83; color:var(--text-subtle);
}

/* One fixed SWISS core, six linked drifting nodes. SVG lines and labels share
   coordinates; only translate transforms and a dozen SVG attributes animate. */
.swiss-network {
  position:relative; width:100%; max-width:705px; aspect-ratio:720 / 620;
  justify-self:end; color:var(--text-main); contain:layout style;
}
.swiss-network__lines {
  position:absolute; inset:0; width:100%; height:100%; overflow:visible;
}
.swiss-network__orbit { fill:none; stroke:var(--swiss-wire-soft); stroke-width:.9; stroke-dasharray:2 7; }
.swiss-network__orbit--reverse { stroke-dasharray:1 7; opacity:.85; }
.swiss-network__orbit--thin { opacity:.5; stroke-dasharray:none; }
.swiss-network__rays { fill:none; stroke:var(--swiss-wire); stroke-width:1; stroke-linecap:round; }
.swiss-network__link--active { stroke:var(--swiss-active); opacity:.8; stroke-width:1.25; }
.swiss-network__link--developing { stroke:var(--swiss-developing); opacity:.88; stroke-width:1.35; }
.swiss-network__mesh { stroke:var(--swiss-wire-soft); stroke-width:.8; fill:none; }
.swiss-network__satellites { fill:var(--swiss-point); opacity:.38; }
.swiss-network__node-dot { fill:var(--swiss-point); }
.swiss-network__node-dot--active { fill:var(--swiss-active); filter:drop-shadow(0 0 5px var(--swiss-active)); }
.swiss-network__node-dot--developing { fill:var(--swiss-developing); filter:drop-shadow(0 0 3px var(--swiss-developing)); }
.swiss-network__origin-ring { fill:none; stroke:var(--swiss-wire); stroke-width:1; }
.swiss-network__origin { fill:var(--swiss-active); filter:drop-shadow(0 0 5px var(--swiss-active)); }
.swiss-network__name {
  position:absolute; left:var(--swiss-x); top:var(--swiss-y);
  display:block; width:max-content; max-width:168px; text-align:center;
  transform:translate3d(-50%,calc(-100% - 9px),0);
  border:0; padding:0; margin:0; background:none; box-shadow:none;
  font-family:"MontserratLocal",system-ui,sans-serif;
  font-size:clamp(.89rem,1.34vw,1.24rem); font-weight:850;
  letter-spacing:-.052em; line-height:1.2; color:var(--text-main);
  text-wrap:balance; overflow-wrap:break-word;
  text-shadow:0 0 18px rgba(10,18,32,.13);
  pointer-events:none;
}
.swiss-network__name--core {
  top:50%; left:50%; width:auto; max-width:none;
  transform:translate3d(-50%,-50%,0);
  font-size:clamp(2rem,3.7vw,3.7rem); font-weight:900; letter-spacing:-.075em;
}
.swiss-network__name--converter { color:var(--swiss-active); font-size:clamp(1rem,1.68vw,1.5rem); }
.swiss-network__name--chat { color:var(--swiss-active); font-size:clamp(.86rem,1.38vw,1.18rem); }
.swiss-network__name--obs { color:var(--swiss-developing); }

/* Tool catalogue: exactly three card columns at maximum, whether one, two or three tools exist. */
.swiss-section { padding-block:clamp(64px,7vw,110px); border-top:1px solid var(--border-subtle); }
.swiss-section__heading { margin-bottom:clamp(27px,4vw,52px); }
.swiss-section__eyebrow { display:block; margin:0 0 20px; font-size:.71rem;font-weight:750;letter-spacing:.18em;text-transform:uppercase;color:var(--accent-main); }
.swiss-section h2 {
  margin:0; max-width:800px; color:var(--text-main);
  font-size:clamp(2.3rem,4.7vw,4.9rem);font-weight:850;
  line-height:1.06;letter-spacing:-.065em;
}
.swiss-tool-grid {
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,2vw,24px);
  align-items:stretch;
}
.swiss-tool-card {
  position:relative;display:flex;flex-direction:column;min-width:0;min-height:420px;
  padding:clamp(20px,2.4vw,30px);border:1px solid var(--border-subtle);
  border-radius:16px;background:var(--swiss-tool-fill);
  box-shadow:var(--shadow-soft);
  transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease;
}
.swiss-tool-card:hover { transform:translateY(-3px); border-color:var(--accent-main);box-shadow:var(--shadow-strong); }
/* Permanent Premium treatment (same gold as Premium pricing cards).
   The data attribute supports future tools with a server-configured tier. */
.swiss-tool-card--premium,
.swiss-tool-card[data-swiss-tier="premium"] {
  border-color:color-mix(in srgb,var(--status-premium) 65%,var(--border-subtle));
  box-shadow:var(--shadow-soft),inset 0 0 0 1px color-mix(in srgb,var(--status-premium) 13%,transparent);
}
.swiss-tool-card--premium:hover,
.swiss-tool-card[data-swiss-tier="premium"]:hover,
.swiss-tool-card--premium:focus-within,
.swiss-tool-card[data-swiss-tier="premium"]:focus-within {
  border-color:var(--status-premium);
  box-shadow:var(--shadow-strong),inset 0 0 0 1px color-mix(in srgb,var(--status-premium) 22%,transparent);
}
.swiss-tool-card--premium .swiss-tool-tier,
.swiss-tool-card[data-swiss-tier="premium"] .swiss-tool-tier {
  color:var(--status-premium);
  border-color:color-mix(in srgb,var(--status-premium) 45%,var(--border-subtle));
}

.swiss-tool-card--draft { border-style:dashed; }
.swiss-tool-card__index {
  color:var(--text-subtle);font-size:.71rem;letter-spacing:.14em;text-transform:uppercase;font-weight:750;
}
.swiss-tool-status { position:absolute;right:29px;top:27px; width:9px;height:9px;border-radius:50%; background:var(--swiss-active); box-shadow:0 0 0 3px rgba(89,207,137,.1); }
.swiss-tool-card__art {
  display:grid;place-items:center;min-height:170px;
  margin:5px 0 12px;flex:0 0 auto;
}
.swiss-tool-card__art img {display:block;width:clamp(88px,9vw,124px);height:clamp(88px,9vw,124px);object-fit:contain; }
.swiss-tool-card--draft .swiss-tool-card__art img {opacity:.6;}
html[data-theme="night"] .swiss-tool-card__art img {filter:invert(1);}
.swiss-tool-card__info {margin-bottom:30px;}
.swiss-tool-card__info h3 { margin:0;color:var(--text-main);font-size:clamp(1.35rem,1.8vw,1.8rem);font-weight:850;letter-spacing:-.048em;line-height:1.17; }
.swiss-tool-card__info p {margin:12px 0 0;color:var(--text-subtle);font-size:.9rem;line-height:1.6;max-width:31ch;}
.swiss-btn--tool {
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  width:100%;min-height:49px;margin-top:auto;padding:11px 17px;
  color:var(--button-on-accent,#fff);background:var(--accent-main);
  border:1px solid var(--accent-main);border-radius:10px;
  box-shadow:none;text-decoration:none;text-align:left;
  font:700 .87rem "MontserratLocal",system-ui,sans-serif;
  cursor:pointer;
  transition:transform .18s ease,background .18s ease,border-color .18s ease;
}
.swiss-btn--tool:not(:disabled):not([aria-disabled="true"]):hover { transform:translateY(-2px);background:var(--accent-hover,var(--accent-main));border-color:var(--accent-hover,var(--accent-main)); }
.swiss-btn--tool:focus-visible {outline:2px solid var(--accent-main);outline-offset:3px;}
.swiss-btn--tool:disabled,.swiss-btn--tool[aria-disabled="true"] {
  cursor:not-allowed;background:transparent;border-color:var(--border-subtle);color:var(--text-subtle);opacity:.68;transform:none;
}

/* The interactive timeline takes over the three old cards. */
.swiss-timeline {max-width:940px;margin:0 auto;}
.swiss-timeline__track {
  position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  align-items:start;gap:12px;--swiss-progress:0%;
}
.swiss-timeline__track::before,.swiss-timeline__track::after {
  content:"";position:absolute;top:39px;left:16.6667%;height:1px;pointer-events:none;
}
.swiss-timeline__track::before {right:16.6667%;background:var(--border-subtle);}
.swiss-timeline__track::after {width:calc((100% - 33.3334%) * var(--swiss-progress-number, 0));background:var(--accent-main);transition:width .36s ease;}
.swiss-timeline__step {
  position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:15px;
  padding:0 6px 20px;border:0;background:none;color:var(--text-subtle);
  font:700 .94rem "MontserratLocal",system-ui,sans-serif;cursor:pointer;
}
.swiss-timeline__icon {
  display:grid;place-items:center;width:80px;height:80px;border:1px solid var(--border-subtle);
  border-radius:50%;background:var(--bg-surface);box-shadow:var(--shadow-soft);
  transition:transform .23s ease,background .23s ease,border-color .23s ease,box-shadow .23s ease;
}
.swiss-timeline__icon img {width:31px;height:31px;display:block;opacity:.72;}
html[data-theme="night"] .swiss-timeline__icon img {filter:invert(1);}
.swiss-timeline__step:hover .swiss-timeline__icon {transform:translateY(-3px);border-color:var(--accent-main);}
.swiss-timeline__step[aria-selected="true"] { color:var(--text-main); }
.swiss-timeline__step[aria-selected="true"] .swiss-timeline__icon {border-color:var(--accent-main);box-shadow:0 0 0 5px var(--accent-soft,rgba(120,145,255,.1));transform:translateY(-3px);}
.swiss-timeline__step[aria-selected="true"] .swiss-timeline__icon img {opacity:1;}
.swiss-timeline__step:focus-visible {outline:2px solid var(--accent-main);outline-offset:3px;border-radius:10px;}
.swiss-timeline__detail {
  position:relative;max-width:700px;min-height:190px;margin:32px auto 0;
  padding:clamp(25px,4vw,43px);border:1px solid var(--border-subtle);border-radius:16px;
  background:var(--bg-surface);box-shadow:var(--shadow-soft);
}
.swiss-timeline__detail h3 {margin:0;color:var(--text-main);font-size:clamp(1.6rem,2.6vw,2.5rem);font-weight:850;letter-spacing:-.045em;line-height:1.1;}
.swiss-timeline__detail p {margin:16px 0 0;line-height:1.7;font-size:.95rem;color:var(--text-subtle);}
.swiss-timeline__detail:focus-visible {outline:2px solid var(--accent-main);outline-offset:4px;}
.swiss-timeline__detail.is-changing {animation:swissTimelineEnter .25s ease-out;}
@keyframes swissTimelineEnter {from {opacity:.6;transform:translateY(5px);}to {opacity:1;transform:translateY(0);}}

/* V1 Converter route stays a styled placeholder while VERT integration is pending. */
.swiss-converter-hero {display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.9fr);gap:22px;padding-top:100px;align-items:center;}
.swiss-converter-hero h1 {margin:0;color:var(--text-main);font-size:clamp(2.4rem,5vw,4.8rem);letter-spacing:-.07em;}
.swiss-converter-hero .swiss-lead {max-width:54ch;}
.swiss-status-panel {margin:24px 0 0;padding:22px;border:1px solid var(--border-subtle);border-radius:16px;background:var(--bg-surface);}
.swiss-status-panel h2 {margin:14px 0 8px;font-size:1.06rem;color:var(--text-main);}
.swiss-status-panel p {margin:0;color:var(--text-subtle);line-height:1.6;}
.swiss-status-pill,.swiss-chip {color:var(--text-main);font-size:.78rem;font-weight:700;}
.swiss-status-pill[data-state="warn"],.swiss-chip[data-state="warn"] {color:#bd8a0a;}
.swiss-status-pill[data-state="danger"],.swiss-chip[data-state="danger"] {color:#c44f5c;}
.swiss-converter-hero .swiss-actions {display:flex;flex-wrap:wrap;gap:12px;margin-top:25px;}
.swiss-converter-hero .swiss-btn {display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 17px;border-radius:10px;border:1px solid var(--border-subtle);color:var(--text-main);background:var(--bg-surface);text-decoration:none;font-weight:700;}
.swiss-converter-hero .swiss-btn--primary {background:var(--accent-main);border-color:var(--accent-main);color:var(--button-on-accent,#fff);}
.swiss-converter-hero .swiss-btn[aria-disabled="true"] {pointer-events:none;opacity:.62;}
.swiss-converter-hero .swiss-tool-card {min-height:360px;}
.swiss-converter-hero .swiss-tool-card__top {display:flex;align-items:start;justify-content:space-between;gap:15px;flex-wrap:wrap;}
.swiss-converter-hero .swiss-tool-card__kicker {margin:0 0 8px;font-size:.76rem;letter-spacing:.13em;color:var(--text-subtle);}
.swiss-converter-hero .swiss-tool-card h2 {font-size:1.5rem;letter-spacing:-.04em;}
.swiss-converter-hero .swiss-tool-list {list-style:none;padding:0;display:grid;gap:12px;margin:28px 0 0;color:var(--text-subtle);line-height:1.55;}
.swiss-converter-hero .swiss-tool-list li::before {content:"✓";color:var(--accent-main);margin-right:10px;}
.swiss-converter-hero .swiss-privacy-note--block {margin-top:23px;color:var(--text-subtle);line-height:1.5;}

@media (max-width:1100px) {
  .swiss-hero {grid-template-columns:1fr;gap:25px;}
  .swiss-hero h1 {max-width:15ch;}
  .swiss-network {justify-self:center;width:min(100%,680px);}
  .swiss-converter-hero {grid-template-columns:1fr;}
}
@media (max-width:830px) {
  .swiss-tool-grid {grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:580px) {
  .swiss-body .swiss-main .shell {width:calc(100% - 32px);}
  .swiss-body .footer-inner {flex-wrap:wrap;justify-content:center;}
  .swiss-body .footer-nav {justify-content:center;gap:10px 16px;}
  .swiss-hero {padding-top:72px;padding-bottom:64px;}
  .swiss-network {width:calc(100% + 18px);max-width:none;margin-inline:-9px;}
  .swiss-network__name {font-size:clamp(.72rem,3.2vw,.98rem);max-width:112px;line-height:1.12;}
  .swiss-network__name--core {font-size:clamp(1.75rem,7.8vw,2.35rem);max-width:none;}
  .swiss-network__name--converter {font-size:clamp(.82rem,3.6vw,1.12rem);}
  .swiss-tool-grid {grid-template-columns:1fr;}
  .swiss-tool-card {min-height:375px;}
  .swiss-tool-card__art {min-height:135px;}
  .swiss-timeline__track {gap:0;}
  .swiss-timeline__track::before,.swiss-timeline__track::after {top:30px;}
  .swiss-timeline__step {font-size:.78rem;gap:12px;padding-inline:2px;}
  .swiss-timeline__icon {width:62px;height:62px;}
  .swiss-timeline__icon img {width:25px;height:25px;}
  .swiss-timeline__detail {min-height:230px;margin-top:12px;}
}
@media (max-width:360px) {
  .swiss-timeline__step { font-size:.69rem; letter-spacing:-.015em; }
}
@media (prefers-reduced-motion: reduce) {
  .swiss-tool-card,.swiss-btn--tool,.swiss-timeline__step,.swiss-timeline__icon,.swiss-timeline__track::after {transition:none;}
  .swiss-timeline__detail.is-changing {animation:none;}
}

/* V4 — viewport-aware Swiss hero; the fixed core and glow never move. */
html[data-sh-page="home"] .swiss-hero {
  min-height: calc(100svh - 72px);
  min-height: calc(100dvh - 72px);
  padding-top: clamp(30px, 5vh, 80px);
  padding-bottom: clamp(92px, 10vh, 125px);
}
html[data-sh-page="home"] .swiss-scroll-cue {
  position:absolute;bottom:28px;left:50%;transform:translateX(-50%);
  display:inline-flex;align-items:center;gap:13px;
  margin:0;color:var(--text-subtle);white-space:nowrap;
  font-size:.65rem;font-weight:750;letter-spacing:.19em;text-decoration:none;
}
html[data-sh-page="home"] .swiss-scroll-cue:hover {color:var(--accent-main);}
html[data-sh-page="home"] .swiss-scroll-cue span {font-size:1.35rem;}
/* Unannounced background nodes: connected to the stationary SWISS core.
   Keep their strokes lighter than the six named tool connections. */
.swiss-network__possibilities { pointer-events:none; }
.swiss-network__possibilities path {
  fill:none;stroke:var(--swiss-ghost-wire);stroke-width:.85;
  stroke-dasharray:2 8;stroke-linecap:round;
}
.swiss-network__possibilities circle {
  fill:var(--swiss-ghost-dot);stroke:none;
}
.swiss-network__possibilities circle:nth-of-type(n+7) {opacity:.78;}

@media(max-width:1100px) {
 html[data-sh-page="home"] .swiss-hero {min-height:calc(100svh - 72px);padding-bottom:98px;}
}
@media(max-width:580px) {
 html[data-sh-page="home"] .swiss-hero {min-height:calc(100svh - 64px);padding-top:42px;padding-bottom:88px;}
 html[data-sh-page="home"] .swiss-scroll-cue {bottom:23px;}
}
@media(max-height:640px) {
 html[data-sh-page="home"] .swiss-scroll-cue {bottom:12px;}
}

.swiss-tool-tier{display:inline-flex;align-items:center;gap:6px;margin:6px 0 0;padding:5px 10px;border:1px solid var(--border-subtle);border-radius:99px;color:var(--text-subtle);font-size:.73rem;font-weight:700;letter-spacing:.04em}

/* OBS Editor activado como herramienta SWISS Premium. */
.swiss-network__name--obs {color:var(--swiss-active);}
