/* CANDLE RUN · PIXEL FLIGHT SYSTEM */
:root {
  --page: #ededed;
  --paper: #f6f6f5;
  --ink: #142117;
  --muted: #748076;
  --line: #d1d6d0;
  --green: #21d64b;
  --deep-green: #06662f;
  --font: 'Courier New', Courier, ui-monospace, monospace;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 30px; }
body { margin: 0; min-width: 320px; background: var(--page); color: var(--ink); font-family: var(--font); -webkit-font-smoothing: antialiased; }
body::before { content: ''; position: fixed; inset: 0; z-index: -1; pointer-events: none; background: radial-gradient(ellipse at 50% 33%, #f5f5f4 0%, #eeeeed 48%, #e9eae8 100%); }
::selection { background: var(--green); color: var(--ink); }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
button:focus-visible, a:focus-visible, summary:focus-visible { outline: 3px solid var(--deep-green); outline-offset: 4px; }
.site-shell { width: min(1140px, calc(100% - 76px)); margin: 0 auto; }
.site-header { display: flex; align-items: center; justify-content: space-between; gap: 18px; min-height: 94px; border-bottom: 1px solid var(--line); }
.brand { display: inline-flex; align-items: center; gap: 12px; font-size: 19px; font-weight: 900; letter-spacing: -1.8px; white-space: nowrap; }
.brand-icon { width: 36px; height: 36px; border: 2px solid var(--ink); background: var(--paper); box-shadow: 3px 3px 0 #8f9990; display: grid; place-items: center; overflow: hidden; }
.brand-icon img { display: block; width: 34px; height: 34px; image-rendering: pixelated; }
.brand-green, .brand-period { color: var(--deep-green); }
.header-nav { display: flex; gap: clamp(14px, 2.3vw, 36px); align-items: center; }
.header-nav a, .header-status { font-size: 10px; font-weight: 800; letter-spacing: 1px; white-space: nowrap; }
.header-nav a { color: #667269; transition: color 150ms; }
.header-nav a:hover { color: var(--deep-green); }
.header-status { display: inline-flex; gap: 9px; align-items: center; padding: 11px 12px; border: 1px solid var(--line); background: rgba(255,255,255,.3); }
.status-led,.online-dot { display: inline-block; height: 7px; width: 7px; flex: 0 0 auto; background: var(--green); box-shadow: 0 0 0 2px rgba(33,214,75,.15); }
.hero { text-align: center; padding: 65px 0 97px; position: relative; }
.eyebrow { display: flex; justify-content: center; align-items: center; gap: 15px; font-weight: 800; letter-spacing: 2.8px; font-size: 11px; color: var(--deep-green); }
.eyebrow-line { height: 2px; width: 23px; background: var(--green); }
.hero h1 { font-family: Impact, Haettenschweiler, 'Arial Black', sans-serif; font-stretch: condensed; font-size: clamp(78px, 11.8vw, 156px); font-weight: 900; line-height: .99; margin: 17px 0 11px; letter-spacing: -.045em; text-transform: uppercase; white-space: nowrap; }
.hero h1 > span { color: #169738; }
.title-dot { color: var(--ink); }
.hero-subtitle { margin: 0; font-size: clamp(11px, 1.35vw, 15px); letter-spacing: 2px; line-height: 1.6; font-weight: 700; color: #556358; }
.hero-subtitle strong { color: var(--ink); }
.sprite-stage { height: 492px; max-width: 960px; position: relative; margin: 1px auto 0; isolation: isolate; display: flex; align-items: center; justify-content: center; }
.sprite-halo { position: absolute; z-index: -1; height: 440px; width: 440px; border-radius: 50%; background: radial-gradient(circle, rgba(33,214,75,.10) 0%, rgba(33,214,75,.045) 47%, transparent 72%); }
.hero-sprite { position: relative; z-index: 2; width: min(450px, 58vw); height: auto; max-height: 485px; object-fit: contain; image-rendering: auto; filter: drop-shadow(0 20px 12px rgba(12,53,21,.085)); animation: float 5.5s ease-in-out infinite; }
.stage-base { position: absolute; z-index: 0; bottom: 18px; width: 246px; height: 19px; border-radius: 50%; background: #bfcac0; opacity: .35; filter: blur(14px); }
.stage-caption { position: absolute; z-index: 3; font-size: 11px; font-weight: 800; letter-spacing: 1.2px; color: #7e8980; }
.stage-caption-left { left: 8%; top: 49%; transform: rotate(-90deg); }
.stage-caption-right { right: 5%; top: 39%; transform: rotate(90deg); }
.pixel { position: absolute; width: 11px; height: 11px; background: var(--green); opacity: .8; image-rendering: pixelated; }
.pixel-a { top: 18%; left: 21%; box-shadow: 11px 11px 0 -3px #acd8b6; }
.pixel-b { top: 21%; right: 21%; width: 7px; height: 7px; background: #b5bdb6; }
.pixel-c { bottom: 21%; left: 18%; width: 8px; height: 8px; background: #9cdaa9; }
.pixel-d { bottom: 25%; right: 17%; width: 15px; height: 15px; background: transparent; border: 3px solid var(--green); }
.pixel-e { top: 50%; right: 10%; width: 5px; height: 5px; background: var(--deep-green); }
@keyframes float { 0%, 100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-13px) rotate(1deg); } }
.hero-bottom { position: relative; z-index: 3; }
.mini-kicker { display: flex; align-items: center; justify-content: center; gap: 11px; font-size: 10px; color: #657367; letter-spacing: 2px; font-weight: 900; margin: 6px 0 18px; }
.tiny-diamond { display: inline-block; width: 6px; height: 6px; transform: rotate(45deg); background: var(--green); }
.social-links { display: flex; justify-content: center; flex-wrap: wrap; gap: 12px; }
.social-link { display: inline-flex; justify-content: space-between; align-items: center; gap: 12px; width: 180px; height: 57px; padding: 0 15px; text-align: left; background: #f7f8f6; border: 2px solid var(--ink); box-shadow: 4px 4px 0 #a3aca3; font-size: 12px; font-weight: 900; letter-spacing: .3px; transition: transform 130ms, box-shadow 130ms, background 130ms; }
.social-link:hover { transform: translate(2px, 2px); box-shadow: 2px 2px 0 #a3aca3; background: white; }
.social-link:active { transform: translate(4px, 4px); box-shadow: none; }
.social-link-primary { background: var(--green); box-shadow: 4px 4px 0 var(--deep-green); }
.social-link-primary:hover { background: #4aea6b; box-shadow: 2px 2px 0 var(--deep-green); }
.social-icon { font-size: 17px; line-height: 1; }
.social-arrow { color: var(--deep-green); font-size: 17px; margin-left: auto; }
.icon-x { font-size: 18px; }
.hero-footnote { margin: 25px 0 0; color: #8c988e; font-size: 9px; letter-spacing: 1.5px; font-weight: 700; line-height: 1.7; }
.hero-footnote span { color: var(--deep-green); }
.section-heading-row { display: flex; justify-content: space-between; gap: 20px; align-items: end; margin-bottom: 21px; }
.section-heading { display: flex; align-items: baseline; gap: 16px; }
.section-heading h2 { font-family: Impact, Haettenschweiler, 'Arial Black', sans-serif; font-size: clamp(32px, 4.5vw, 51px); font-weight: 900; letter-spacing: -.02em; line-height: 1; margin: 0; }
.section-number { color: #18883b; letter-spacing: 1px; font-size: 11px; font-weight: 900; white-space: nowrap; }
.section-side-label { text-align: right; font-weight: 800; letter-spacing: 1.5px; color: #89948a; font-size: 10px; line-height: 1.5; }
.ca-section { padding: 46px 0 102px; border-top: 1px solid var(--line); }
.ca-card { display: flex; align-items: center; gap: 18px; border: 2px solid var(--ink); background: #f7f8f6; box-shadow: 6px 6px 0 #c2cac2; padding: 18px 20px; min-height: 108px; }
.ca-badge { width: 61px; height: 61px; flex: 0 0 auto; display: grid; place-items: center; border: 2px solid var(--ink); background: var(--green); box-shadow: 3px 3px 0 #90ba96; }
.ca-badge span { font-family: Impact, Haettenschweiler, 'Arial Black', sans-serif; font-size: 27px; }
.ca-content { display: flex; flex: 1 1 auto; flex-direction: column; gap: 10px; min-width: 0; text-align: left; }
.ca-label { font-size: 10px; letter-spacing: 1.7px; font-weight: 900; color: #768277; }
.ca-value { font-size: clamp(13px, 1.7vw, 19px); font-family: var(--font); font-weight: 900; word-break: break-all; color: var(--ink); }
.copy-button { border: 2px solid var(--ink); background: var(--green); height: 53px; min-width: 148px; cursor: pointer; font-size: 12px; font-weight: 900; letter-spacing: 1px; box-shadow: 3px 3px 0 #83ab8b; transition: transform 130ms, box-shadow 130ms; }
.copy-button:not(:disabled):hover { transform: translate(2px,2px); box-shadow: 1px 1px 0 #83ab8b; }
.copy-button:disabled { background: #e0e5de; border-color: #aab4aa; color: #7b877b; box-shadow: 3px 3px 0 #ced5cd; cursor: not-allowed; }
.copy-button.is-copied { background: var(--green); }
.copy-icon { font-size: 18px; vertical-align: -1px; margin-right: 7px; }
.ca-note { margin: 20px 0 0 2px; color: #8b968b; font-size: 10px; font-weight: 800; letter-spacing: .65px; line-height: 1.6; }
.ca-note span { color: var(--deep-green); font-size: 14px; margin-right: 5px; }
.about-section { display: grid; grid-template-columns: 1.08fr .92fr; gap: clamp(40px, 9vw, 122px); padding: 89px 0 112px; border-top: 1px solid var(--line); align-items: center; }
.about-section .section-heading { align-items: start; }
.about-section .section-number { margin-top: 12px; }
.about-section .section-heading h2 { font-size: clamp(41px, 5vw, 65px); line-height: 1.02; }
.about-section .section-heading h2 span { color: #169738; }
.about-text > p { font-family: var(--font); font-size: 14px; line-height: 1.9; color: #677468; max-width: 465px; margin: 31px 0 0; }
.about-text > p + p { margin-top: 15px; }
.about-text strong { color: var(--ink); }
.text-link { display: inline-flex; gap: 15px; align-items: center; margin: 29px 0 0; padding-bottom: 8px; border-bottom: 2px solid var(--green); font-size: 12px; font-weight: 900; letter-spacing: 1px; }
.text-link:hover { color: var(--deep-green); }
.text-link span { font-size: 19px; }
.vibe-card { background: #f7f8f6; border: 2px solid var(--ink); padding: 17px; box-shadow: 7px 7px 0 #cbd3ca; }
.vibe-card-top,.vibe-card-bottom { display: flex; justify-content: space-between; align-items: center; gap: 10px; font-size: 9px; font-weight: 900; letter-spacing: 1px; }
.vibe-card-top { padding: 0 1px 13px; }
.vibe-card-bottom { padding: 15px 1px 0; color: #69786b; }
.vibe-card-bottom span:first-child { display: flex; align-items: center; gap: 8px; }
.vibe-display { position: relative; height: 300px; background: linear-gradient(#e9eee9 1px, transparent 1px),linear-gradient(90deg,#e9eee9 1px, transparent 1px),#f0f3ef; background-size: 22px 22px; border: 1px solid #d0dad1; display: flex; justify-content: center; align-items: center; overflow: hidden; }
.vibe-display img { width: auto; height: 265px; position: relative; z-index: 1; object-fit: contain; }
.vibe-crosshair { position: absolute; height: 13px; width: 13px; border-color: #a0b5a3; border-style: solid; }
.top-left { top: 10px; left: 10px; border-width: 2px 0 0 2px; }.top-right { top: 10px; right: 10px; border-width: 2px 2px 0 0; }.bottom-left { bottom: 10px; left: 10px; border-width: 0 0 2px 2px; }.bottom-right { bottom: 10px; right: 10px; border-width: 0 2px 2px 0; }
.faq-section { padding: 86px 0 104px; border-top: 1px solid var(--line); }
.faq-section .section-heading-row { margin-bottom: 30px; }
.green-punctuation { color: #169738; }
.faq-list { border-top: 2px solid var(--ink); }
.faq-list details { border-bottom: 1px solid #c2cac2; }
.faq-list details[open] { background: rgba(255,255,255,.18); }
.faq-list summary { display: flex; align-items: center; gap: 20px; list-style: none; padding: 27px 18px 27px 8px; cursor: pointer; user-select: none; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-number { color: #18983b; font-size: 12px; font-weight: 900; }
.faq-question { flex: 1; font-size: 13px; letter-spacing: .4px; font-weight: 900; line-height: 1.5; }
.faq-symbol { display: block; height: 27px; width: 27px; position: relative; flex: 0 0 27px; background: #e2e9e1; border: 1px solid #bdc9bd; }
.faq-symbol::before,.faq-symbol::after { content: ''; position: absolute; background: var(--deep-green); }
.faq-symbol::before { height: 2px; width: 11px; top: 11px; left: 7px; }.faq-symbol::after { height: 11px; width: 2px; left: 11px; top: 7px; }
.faq-list details[open] .faq-symbol::after { display: none; }
.faq-answer { padding: 0 68px 28px 51px; color: #637064; font-size: 13px; line-height: 1.9; max-width: 820px; }
.disclaimer-section { display: flex; align-items: flex-start; gap: 22px; border: 1px solid #cdd4cd; background: rgba(255,255,255,.36); padding: 26px 29px 25px; margin: 0 0 88px; }
.disclaimer-marker { flex: 0 0 35px; display: grid; place-items: center; width: 35px; height: 35px; color: var(--deep-green); border: 2px solid var(--deep-green); font-weight: 900; font-size: 21px; }
.disclaimer-section h2 { margin: 2px 0 10px; font-size: 12px; font-weight: 900; letter-spacing: 1.1px; }
.disclaimer-section p { color: #728073; line-height: 1.85; font-size: 11px; margin: 0; }
.site-footer { display: flex; align-items: center; justify-content: space-between; gap: 15px; min-height: 114px; border-top: 1px solid var(--line); }
.footer-brand { font-size: 19px; font-weight: 900; letter-spacing: -1px; white-space: nowrap; }
.footer-brand span { color: var(--deep-green); }
.site-footer > span, .site-footer > a:last-child { color: #859185; font-weight: 800; font-size: 10px; letter-spacing: .5px; line-height: 1.7; }
.site-footer > a:last-child { color: var(--deep-green); white-space: nowrap; }
@media (max-width: 980px) {
  .header-nav { display: none; }
  .site-shell { width: min(100% - 44px, 1140px); }
  .hero { padding-top: 69px; }
  .stage-caption-left { left: 1%; }
  .stage-caption-right { right: 0; }
  .social-link { flex: 1 1 166px; }
  .about-section { gap: 40px; }
}
@media (max-width: 650px) {
  .site-shell { width: calc(100% - 34px); }
  .site-header { min-height: 76px; }
  .brand { font-size: 17px; }
  .brand-icon { width: 33px; height: 33px; }
  .brand-icon img { width: 31px; height: 31px; }
  .header-status { padding: 9px; gap: 7px; font-size: 9px; }
  .hero { padding: 60px 0 76px; }
  .hero h1 { font-size: clamp(56px, 12.1vw, 79px); letter-spacing: -.05em; margin: 18px 0 14px; }
  .eyebrow { letter-spacing: 1.7px; font-size: 9px; gap: 10px; }
  .eyebrow-line { width: 15px; }
  .hero-subtitle { font-size: 10px; letter-spacing: 1px; }
  .sprite-stage { height: 390px; margin-top: 12px; }
  .hero-sprite { width: min(368px, 86vw); max-height: 390px; }
  .sprite-halo { width: 310px; height: 310px; }
  .stage-caption { font-size: 8px; }
  .stage-caption-left { left: -22px; }
  .stage-caption-right { right: -18px; }
  .pixel-a { left: 8%; }.pixel-b { right: 10%; }.pixel-c { left: 6%; }.pixel-d { right: 5%; }
  .mini-kicker { margin-top: 10px; }
  .social-links { gap: 11px; }
  .social-link { flex: 1 1 calc(50% - 6px); width: auto; min-width: 0; height: 56px; padding: 0 11px; font-size: 11px; }
  .hero-footnote { font-size: 8px; letter-spacing: .75px; }
  .section-heading-row { align-items: start; }
  .section-heading { gap: 10px; }
  .section-heading h2 { font-size: 36px; }
  .section-number { font-size: 9px; }
  .section-side-label { font-size: 8px; max-width: 135px; }
  .ca-section { padding: 36px 0 74px; }
  .ca-card { flex-wrap: wrap; gap: 14px; padding: 15px; }
  .ca-badge { width: 52px; height: 52px; }
  .ca-badge span { font-size: 23px; }
  .ca-value { font-size: 13px; }
  .copy-button { min-width: 100%; }
  .ca-note { font-size: 9px; }
  .about-section { grid-template-columns: 1fr; padding: 76px 0 87px; gap: 34px; }
  .about-section .section-heading h2 { font-size: clamp(38px, 11vw, 61px); }
  .about-text > p { font-size: 13px; line-height: 1.8; }
  .vibe-display { height: 260px; }.vibe-display img { height: 230px; }
  .faq-section { padding: 72px 0 85px; }
  .faq-list summary { gap: 13px; padding: 22px 4px; }
  .faq-question { font-size: 11px; }
  .faq-answer { font-size: 12px; padding: 0 15px 22px 35px; }
  .disclaimer-section { padding: 20px 16px; gap: 12px; margin-bottom: 55px; }
  .disclaimer-marker { width: 29px; height: 29px; flex-basis: 29px; font-size: 17px; }
  .disclaimer-section h2 { font-size: 11px; line-height: 1.5; }
  .disclaimer-section p { font-size: 10px; }
  .site-footer { padding: 22px 0; flex-wrap: wrap; min-height: 115px; }
  .site-footer > span { order: 3; flex-basis: 100%; font-size: 9px; }
}
@media (max-width: 380px) {
  .header-status { font-size: 8px; }.brand { font-size: 15px; }.hero h1 { font-size: 12vw; }
  .social-link { font-size: 10px; gap: 6px; }
  .sprite-stage { height: 330px; }.hero-sprite { max-height: 330px; width: 84vw; }
  .hero-subtitle { font-size: 9px; }
  .section-side-label { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .hero-sprite { animation: none; }
  *, *::before, *::after { transition-duration: .01ms !important; }
}
