/* Shared feature-page components (used by all /features/* beyond Canvas flagship) */

.page-hero {
  position: relative;
  padding: 80px 0 48px;
  overflow: hidden;
}
.page-hero .grid-bg { opacity: 0.25; }
.page-hero .glow { top:-150px; left:50%; transform:translateX(-50%); width:700px; height:400px; opacity:.18; }
.page-hero .eyebrow { margin-bottom: 18px; }
.page-hero h1 { max-width: 900px; margin: 0 0 22px; }
.page-hero .lead { max-width: 720px; font-size: 19px; }
.page-hero .ctas { display: flex; gap: 10px; margin-top: 34px; }

.hero-side {
  display: grid; grid-template-columns: 1.15fr 1fr; gap: 60px; align-items: center;
}

.sec-head2 { max-width: 700px; margin-bottom: 40px; }
.sec-head2 h2 { margin: 0 0 12px; }
.sec-head2 p { color: var(--text-3); margin:0; font-size: 17px; }

.feat-grid {
  display: grid; gap: 14px;
  grid-template-columns: repeat(3, 1fr);
}
.feat-item {
  padding: 20px;
  background: var(--bg-2);
  border: 1px solid var(--border);
  border-radius: var(--r-4);
}
.feat-item h3 { margin: 14px 0 6px; font-size: 15px; font-weight: 600; }
.feat-item p { margin: 0; color: var(--text-3); font-size: 13px; line-height: 1.55; }
.feat-item .icon {
  width: 34px; height: 34px; border-radius: 8px;
  background: var(--accent-soft); color: var(--accent-hi);
  display: grid; place-items: center;
  font: 600 14px/1 var(--font-display);
}

/* Mock "device" frame for product shots */
.mock {
  background: var(--bg-1);
  border: 1px solid var(--border);
  border-radius: var(--r-4);
  overflow: hidden;
  box-shadow: 0 30px 80px -30px rgba(0,0,0,0.8);
}
.mock-head {
  display: flex; align-items: center; gap: 10px;
  padding: 9px 12px;
  background: var(--bg-2);
  border-bottom: 1px solid var(--border);
  font: 500 11.5px/1 var(--font-mono); color: var(--text-3);
}
.mock-head .tl { display:flex; gap:6px; }
.mock-head .tl span { width: 10px; height:10px; border-radius:50%; background: var(--border); }
.mock-head .tl span:nth-child(1){ background:#ff5f57; }
.mock-head .tl span:nth-child(2){ background:#febc2e; }
.mock-head .tl span:nth-child(3){ background:#28c840; }

.row-cta {
  padding: 48px;
  background: linear-gradient(135deg, var(--accent-soft), transparent);
  border: 1px solid var(--border);
  border-radius: var(--r-5);
  display: flex; gap: 32px; align-items: center; justify-content: space-between;
}
.row-cta h3 { margin:0 0 6px; font-family: var(--font-display); font-size: 26px; letter-spacing: -0.02em; }
.row-cta p { margin: 0; color: var(--text-3); }

.tweak {
  position: fixed; bottom: 20px; right: 20px; z-index: 100;
  background: var(--bg-2);
  border: 1px solid var(--border-strong);
  border-radius: 12px;
  padding: 14px;
  box-shadow: 0 20px 40px -12px rgba(0,0,0,0.7);
  display: none;
}
.tweak.on { display: block; }
.tweak h5 { margin: 0 0 10px; font: 600 10px/1 var(--font-mono); letter-spacing: 0.12em; text-transform: uppercase; color: var(--text-3); }
.swatches { display: flex; gap: 6px; }
.swatch { width: 22px; height: 22px; border-radius: 50%; cursor: pointer; border: 2px solid transparent; transition: transform .1s; }
.swatch.sel { border-color: var(--text-1); }
.swatch:hover { transform: scale(1.1); }

/* Timeline viz (M2 Seasons) */
.timeline-mock { padding: 18px; }
.tl-grid {
  display: grid; grid-template-columns: 120px 1fr; gap: 0;
  background: var(--bg-1);
  border: 1px solid var(--border);
  border-radius: 10px;
  overflow: hidden;
}
.tl-row { display: contents; }
.tl-name {
  padding: 12px 14px;
  border-top: 1px solid var(--border);
  font-size: 12px; color: var(--text-2);
  background: var(--bg-2);
  display: flex; align-items: center; gap: 7px;
}
.tl-name:first-child { border-top: 0; }
.tl-track {
  padding: 12px 14px;
  border-top: 1px solid var(--border);
  border-left: 1px solid var(--border);
  position: relative;
  min-height: 40px;
}
.tl-track:first-child { border-top: 0; }
.tl-header {
  padding: 8px 14px;
  background: var(--bg-3);
  font: 500 11px/1 var(--font-mono); color: var(--text-4);
  display: flex; gap: 40px;
}
.tl-header span { flex: 1; }
.tl-event {
  position: absolute; top: 8px; bottom: 8px;
  border-radius: 5px;
  padding: 4px 10px;
  font: 500 11px/1.3 var(--font-sans); color: #fff;
  display: flex; align-items: center;
  white-space: nowrap;
  overflow: hidden;
}

/* Config tree (M1) */
.cfg {
  font-family: var(--font-mono); font-size: 12.5px; color: var(--text-2);
  padding: 16px 20px;
}
.cfg-line { padding: 3px 0; display: flex; gap: 8px; align-items: center; }
.cfg-line .kk { color: var(--cyan); }
.cfg-line .vv { color: var(--text-1); }
.cfg-line .flag { display: inline-block; padding: 1px 6px; border-radius: 4px; font-size: 10px; font-family: var(--font-sans); margin-left: 6px; }
.cfg-line .flag.on  { background: var(--emerald-soft); color: var(--emerald); }
.cfg-line .flag.off { background: var(--rose-soft); color: var(--rose); }

/* Server map (M3 / M4) */
.world-map {
  position: relative;
  background: var(--bg-1);
  height: 320px;
  border-radius: 10px;
  border: 1px solid var(--border);
  overflow: hidden;
}
.region-dot {
  position: absolute; width: 12px; height: 12px; border-radius: 50%;
  background: var(--accent); box-shadow: 0 0 0 4px var(--accent-soft), 0 0 16px var(--accent-glow);
}
.region-dot::after {
  content: ''; position: absolute; inset: -10px; border-radius: 50%;
  border: 1px solid var(--accent);
  opacity: .3;
  animation: ring 2.5s ease-out infinite;
}
@keyframes ring { from { transform: scale(.4); opacity:.6;} to {transform:scale(2); opacity:0;} }
.region-label {
  position: absolute; font: 500 10.5px/1 var(--font-mono); color: var(--text-2);
  background: var(--bg-2); border: 1px solid var(--border);
  padding: 3px 7px; border-radius: 4px;
  transform: translate(-50%, -160%);
  white-space: nowrap;
}

/* Stat tiles */
.stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.stat {
  padding: 20px;
  background: var(--bg-2);
  border: 1px solid var(--border);
  border-radius: 12px;
}
.stat .n { font: 600 32px/1 var(--font-display); letter-spacing: -0.02em; }
.stat .l { color: var(--text-4); font: 500 11px/1 var(--font-mono); letter-spacing: 0.1em; text-transform: uppercase; margin-top: 6px; }
.stat .d { color: var(--emerald); font-size: 12px; margin-top: 8px; }
