/* ==========================================================================
   REBELLION SYSTEMS — SITE LAYOUT + COMPONENTS
   Loaded after colors_and_type.css. All visual decisions live here so the
   three pages (index / building / team) can stay short and identical.
   ========================================================================== */

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
html,body{background:#000;color:#fff;font-family:var(--rb-font-sans);min-height:100%}
body{position:relative;overflow-x:hidden;line-height:1.5}

/* brutalist grid */
body::before{content:"";position:fixed;inset:0;background:var(--rb-grid-overlay);background-size:40px 40px;opacity:0.05;pointer-events:none;z-index:0}

/* circuit ambient */
.ambient{position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden}
.ambient .node{position:absolute;width:4px;height:4px;background:#FF7B1A;border-radius:50%;box-shadow:0 0 8px rgba(255,123,26,0.6);animation:pulse 2s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:0.3}50%{opacity:0.85}}

/* nav */
.nav{position:sticky;top:0;z-index:50;background:rgba(0,0,0,0.85);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid rgba(255,123,26,0.15)}
.nav-inner{max-width:1280px;margin:0 auto;padding:18px 40px;display:flex;justify-content:space-between;align-items:center;gap:24px}
.nav-logo{display:flex;align-items:center;gap:12px;text-decoration:none}
.nav-logo img{height:28px;display:block}
.nav-logo .marker{font-size:0.6rem;font-weight:700;letter-spacing:0.25em;text-transform:uppercase;color:rgba(255,255,255,0.45);padding:3px 8px;border:1px solid rgba(255,255,255,0.15);border-radius:3px}
.nav-links{display:flex;gap:32px;align-items:center}
.nav-links a{font-size:0.7rem;font-weight:700;letter-spacing:0.18em;text-transform:uppercase;color:rgba(255,255,255,0.7);text-decoration:none;transition:color 0.3s}
.nav-links a:hover{color:#FF7B1A}
.nav-links a.active{color:#FF7B1A}
.nav-cta{font-size:0.7rem;font-weight:700;letter-spacing:0.15em;text-transform:uppercase;background:#FF7B1A;color:#000;padding:0.65rem 1.2rem;border-radius:999px;text-decoration:none;white-space:nowrap;box-shadow:0 0 12px rgba(255,123,26,0.4);transition:all 0.3s}
.nav-cta:hover{transform:scale(1.04);box-shadow:0 0 25px rgba(255,123,26,0.5)}
.nav-cta.active{color:#000}

/* Burger — hidden on desktop, swaps in for nav-links on small screens */
.nav-burger{display:none;background:none;border:none;cursor:pointer;width:36px;height:36px;padding:0;flex-direction:column;justify-content:center;align-items:center;gap:5px;color:#fff;transition:color 0.3s}
.nav-burger span{display:block;width:22px;height:2px;background:currentColor;border-radius:2px;transition:transform 0.3s var(--rb-ease),opacity 0.2s}
.nav-burger:hover{color:#FF7B1A}

main{position:relative;z-index:1}

/* === HERO — manifesto opening === */
.hero{padding:140px 40px 160px;border-bottom:1px solid rgba(255,123,26,0.15);position:relative}
.hero-inner{max-width:1100px;margin:0 auto}
.hero-meta{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:80px;font-size:0.65rem;font-weight:700;letter-spacing:0.25em;text-transform:uppercase;color:rgba(255,123,26,0.7)}
.hero-meta-block{display:flex;flex-direction:column;gap:6px}
.hero-meta-block .lab{color:rgba(255,255,255,0.4)}
.hero-meta-block .val{color:#FF7B1A}
.hero-display{font-family:var(--rb-font-sans);font-weight:600;font-size:clamp(3.2rem,8.5vw,7.5rem);line-height:0.95;letter-spacing:-0.03em;text-transform:uppercase;color:#fff;margin-bottom:60px;text-wrap:balance}
.hero-display .accent{color:#FF7B1A;font-family:var(--rb-font-serif);font-style:italic;font-weight:400;text-transform:none;letter-spacing:-0.02em}
.hero-display .word{display:inline-block;opacity:0.15;animation:reveal 0.6s var(--rb-ease) forwards}
@keyframes reveal{to{opacity:1}}
.hero-byline{display:grid;grid-template-columns:1fr 2fr;gap:60px;align-items:start;padding-top:30px;border-top:1px solid rgba(255,123,26,0.2);max-width:1100px}
.hero-byline .col-label{font-size:0.65rem;font-weight:700;letter-spacing:0.25em;text-transform:uppercase;color:rgba(255,255,255,0.4)}
.hero-byline .col-body{font-size:1.15rem;font-weight:300;color:rgba(255,255,255,0.85);line-height:1.55;text-wrap:pretty}
.hero-byline .col-body em{font-family:var(--rb-font-serif);font-style:italic;color:#FF7B1A;font-weight:400}
.hero-actions{display:flex;gap:14px;margin-top:48px;flex-wrap:wrap}
.btn{font-family:var(--rb-font-sans);font-size:0.78rem;font-weight:700;letter-spacing:0.15em;text-transform:uppercase;padding:0.95rem 1.8rem;border-radius:999px;cursor:pointer;transition:all 0.3s var(--rb-ease);border:none;text-decoration:none;display:inline-flex;align-items:center;gap:10px}
.btn-primary{background:#FF7B1A;color:#000;box-shadow:0 0 12px rgba(255,123,26,0.4)}
.btn-primary:hover{transform:scale(1.04);box-shadow:0 0 25px rgba(255,123,26,0.5)}
.btn-outline{background:transparent;color:#fff;border:2px solid rgba(255,123,26,0.4)}
.btn-outline:hover{border-color:#FF7B1A;color:#FF7B1A;transform:scale(1.04)}

/* === SECTION FRAME === */
.section{padding:110px 40px;border-bottom:1px solid rgba(255,123,26,0.12);position:relative}
.section-inner{max-width:1100px;margin:0 auto}
.sec-tag{display:flex;align-items:center;gap:14px;font-size:0.65rem;font-weight:700;letter-spacing:0.3em;text-transform:uppercase;color:#FF7B1A;margin-bottom:32px}
.sec-tag::before{content:"";width:40px;height:1px;background:#FF7B1A}
.sec-tag .num{color:rgba(255,255,255,0.4);font-family:var(--rb-font-mono);letter-spacing:0.1em}
.sec-title{font-size:clamp(2.4rem,5.2vw,4rem);font-weight:600;text-transform:uppercase;letter-spacing:-0.02em;color:#fff;line-height:1.0;margin-bottom:32px;text-wrap:balance}
.sec-title .accent{color:#FF7B1A;font-family:var(--rb-font-serif);font-style:italic;font-weight:400;text-transform:none;letter-spacing:-0.01em}
.sec-lede{font-size:1.25rem;font-weight:300;color:rgba(255,255,255,0.7);line-height:1.55;max-width:720px;margin-bottom:60px;text-wrap:pretty}
.sec-lede em{font-family:var(--rb-font-serif);font-style:italic;color:#FF7B1A;font-weight:400}

/* === PROBLEM — long form negation list === */
.neg-list{display:flex;flex-direction:column;gap:0}
.neg{display:grid;grid-template-columns:80px 1fr;gap:24px;padding:32px 0;border-top:1px solid rgba(255,123,26,0.18);align-items:start}
.neg:first-child{border-top:none}
.neg .num{font-family:var(--rb-font-mono);font-size:0.75rem;color:rgba(255,123,26,0.6);letter-spacing:0.15em;padding-top:10px}
.neg h3{font-family:var(--rb-font-sans);font-size:clamp(1.8rem,3.5vw,2.6rem);font-weight:600;text-transform:uppercase;letter-spacing:-0.01em;line-height:1.05;color:#fff;margin-bottom:14px}
.neg h3 .x{color:#E25C5C;font-family:var(--rb-font-mono);font-weight:400;margin-right:14px;font-size:0.9em}
.neg p{font-size:1.05rem;font-weight:300;color:rgba(255,255,255,0.6);line-height:1.6;max-width:680px}

.problem-coda{margin-top:80px;padding:48px 40px;border:1px solid rgba(255,123,26,0.4);border-radius:14px;background:rgba(255,123,26,0.04);text-align:center}
.problem-coda p{font-family:var(--rb-font-serif);font-style:italic;font-size:clamp(1.5rem,3vw,2.2rem);line-height:1.3;color:#fff;letter-spacing:-0.01em;text-wrap:balance}
.problem-coda p strong{color:#FF7B1A;font-weight:400}

/* === THESIS === */
.thesis-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-top:20px}
.thesis{padding:36px;border:1px solid rgba(255,123,26,0.18);border-radius:14px;background:rgba(255,255,255,0.02);transition:all 0.4s var(--rb-ease);position:relative;overflow:hidden}
.thesis:hover{border-color:#FF7B1A;background:rgba(255,123,26,0.04);transform:translateY(-3px)}
.thesis .num{position:absolute;top:24px;right:32px;font-family:var(--rb-font-mono);font-size:0.7rem;color:rgba(255,123,26,0.5);letter-spacing:0.2em}
.thesis h3{font-size:1.35rem;font-weight:700;text-transform:uppercase;letter-spacing:0.01em;color:#fff;margin-bottom:14px;line-height:1.15;text-wrap:balance}
.thesis h3 .accent{color:#FF7B1A;font-family:var(--rb-font-serif);font-style:italic;font-weight:400;text-transform:none;letter-spacing:-0.01em}
.thesis p{font-size:0.95rem;font-weight:300;color:rgba(255,255,255,0.65);line-height:1.6}

/* === VISION === */
.vision{padding:160px 40px;background:radial-gradient(ellipse at center,rgba(255,123,26,0.10) 0%,transparent 60%);border-bottom:1px solid rgba(255,123,26,0.15);text-align:center;position:relative;overflow:hidden}
.vision::before{content:"";position:absolute;inset:0;background:var(--rb-grid-overlay);background-size:40px 40px;opacity:0.04;pointer-events:none}
.vision-inner{max-width:1100px;margin:0 auto;position:relative;z-index:1}
.vision-tag{font-size:0.65rem;font-weight:700;letter-spacing:0.3em;text-transform:uppercase;color:#FF7B1A;margin-bottom:50px;display:flex;justify-content:center;align-items:center;gap:14px}
.vision-tag::before,.vision-tag::after{content:"";width:60px;height:1px;background:rgba(255,123,26,0.4)}
.vision-quote{font-family:var(--rb-font-serif);font-style:italic;font-weight:400;font-size:clamp(2.4rem,6vw,5rem);line-height:1.05;letter-spacing:-0.02em;color:#fff;margin-bottom:50px;text-wrap:balance}
.vision-quote .o{color:#FF7B1A}
.vision-quote .arrow{color:rgba(255,255,255,0.3);margin:0 0.5em}
.vision-cite{font-size:0.7rem;font-weight:700;letter-spacing:0.3em;text-transform:uppercase;color:rgba(255,255,255,0.4)}

.vision-pillars{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:80px;padding-top:60px;border-top:1px solid rgba(255,123,26,0.2)}
.pillar{padding:0 28px;border-right:1px solid rgba(255,123,26,0.15);text-align:left}
.pillar:last-child{border-right:none}
.pillar .ph{font-family:var(--rb-font-mono);font-size:0.65rem;color:#FF7B1A;letter-spacing:0.2em;margin-bottom:10px}
.pillar h4{font-size:0.95rem;font-weight:700;text-transform:uppercase;letter-spacing:0.05em;color:#fff;margin-bottom:8px;line-height:1.2}
.pillar p{font-size:0.8rem;font-weight:300;color:rgba(255,255,255,0.55);line-height:1.5}

/* === BUILDING === */
.build-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.product{padding:48px 40px;border-radius:16px;position:relative;overflow:hidden;transition:all 0.4s var(--rb-ease);min-height:380px;display:flex;flex-direction:column;justify-content:space-between}
.product.live{border:2px solid #FF7B1A;background:rgba(255,123,26,0.04);box-shadow:0 0 60px rgba(255,123,26,0.10)}
.product.soon{border:1px dashed rgba(255,123,26,0.4);background:rgba(255,255,255,0.02)}
.product .badge{font-size:0.6rem;font-weight:700;letter-spacing:0.25em;text-transform:uppercase;padding:0.4rem 0.8rem;border-radius:999px;display:inline-flex;align-items:center;gap:6px;align-self:flex-start;margin-bottom:24px}
.product.live .badge{background:#FF7B1A;color:#000}
.product.soon .badge{background:transparent;color:rgba(255,255,255,0.5);border:1px solid rgba(255,255,255,0.2)}
.product .badge .dot{width:6px;height:6px;border-radius:50%;background:#000;animation:pulse 1.5s infinite}
.product.soon .badge .dot{background:rgba(255,255,255,0.4)}
.product h3{font-size:2.4rem;font-weight:600;text-transform:uppercase;letter-spacing:-0.02em;color:#fff;margin-bottom:14px;line-height:0.95}
.product.soon h3{color:rgba(255,255,255,0.5)}
.product .product-tag{font-size:0.65rem;font-weight:700;letter-spacing:0.25em;text-transform:uppercase;color:#FF7B1A;margin-bottom:8px}
.product p{font-size:0.95rem;font-weight:300;color:rgba(255,255,255,0.7);line-height:1.6;max-width:420px;margin-bottom:24px}
.product .cta{font-size:0.7rem;font-weight:700;letter-spacing:0.2em;text-transform:uppercase;color:#FF7B1A;text-decoration:none;display:inline-flex;align-items:center;gap:8px;align-self:flex-start;transition:gap 0.3s}
.product .cta:hover{gap:14px}
.product .cta.disabled{color:rgba(255,255,255,0.3);pointer-events:none}

/* === TEAM === */
.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.person{padding:32px 28px;border:1px solid rgba(255,123,26,0.18);border-radius:14px;background:rgba(255,255,255,0.02);transition:all 0.3s}
.person:hover{border-color:#FF7B1A;background:rgba(255,123,26,0.04)}
.person .av{width:84px;height:84px;border-radius:50%;background:linear-gradient(135deg,rgba(255,123,26,0.3),rgba(255,123,26,0.05));border:1px solid rgba(255,123,26,0.4);display:flex;align-items:center;justify-content:center;overflow:hidden;font-family:var(--rb-font-sans);font-weight:600;font-size:1.6rem;letter-spacing:0.05em;color:#FF7B1A;margin-bottom:20px}
.person .av img{width:100%;height:100%;object-fit:cover;object-position:center 25%;display:block;border-radius:50%}
.person h4{font-size:1.05rem;font-weight:700;text-transform:uppercase;letter-spacing:0.02em;color:#fff;margin-bottom:4px}
.person .role{font-size:0.7rem;font-weight:700;letter-spacing:0.2em;text-transform:uppercase;color:#FF7B1A;margin-bottom:14px}
.person p{font-size:0.85rem;font-weight:300;color:rgba(255,255,255,0.6);line-height:1.55;margin-bottom:14px}
.person .links{display:flex;gap:14px;font-size:0.65rem;font-weight:700;letter-spacing:0.18em;text-transform:uppercase}
.person .links a{color:rgba(255,255,255,0.5);text-decoration:none;transition:color 0.3s}
.person .links a:hover{color:#FF7B1A}

/* === BACKERS === */
.backers{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border:1px solid rgba(255,123,26,0.2);border-radius:14px;overflow:hidden}
.backer{padding:36px 24px;border-right:1px solid rgba(255,123,26,0.15);border-bottom:1px solid rgba(255,123,26,0.15);display:flex;flex-direction:column;align-items:flex-start;gap:8px;transition:background 0.3s;text-decoration:none;color:inherit}
.backer:hover{background:rgba(255,123,26,0.04)}
.backer:nth-child(4n){border-right:none}
.backer:nth-last-child(-n+4){border-bottom:none}
.backer .name{font-size:1.05rem;font-weight:600;letter-spacing:-0.01em;color:#fff;text-transform:uppercase}
.backer .name .accent{color:#FF7B1A;font-family:var(--rb-font-serif);font-style:italic;font-weight:400;text-transform:none}
.backer .role{font-size:0.62rem;font-weight:700;letter-spacing:0.22em;text-transform:uppercase;color:rgba(255,123,26,0.7)}

/* === PRESS (kept hidden via inline style on the section itself) === */
.press-list{display:flex;flex-direction:column;gap:0}
.press{display:grid;grid-template-columns:120px 1fr 200px;gap:32px;padding:28px 0;border-top:1px solid rgba(255,123,26,0.15);align-items:center;text-decoration:none;color:inherit;transition:background 0.3s;padding-left:16px;padding-right:16px;border-radius:0;margin:0 -16px}
.press:first-child{border-top:none}
.press:hover{background:rgba(255,123,26,0.04)}
.press:hover .press-title{color:#FF7B1A}
.press-date{font-family:var(--rb-font-mono);font-size:0.7rem;color:rgba(255,123,26,0.7);letter-spacing:0.1em}
.press-title{font-size:1.15rem;font-weight:500;color:#fff;letter-spacing:-0.01em;line-height:1.3;transition:color 0.3s;text-wrap:balance}
.press-source{font-size:0.65rem;font-weight:700;letter-spacing:0.22em;text-transform:uppercase;color:rgba(255,255,255,0.5);text-align:right}

/* === CAREERS / JOIN === */
.join{padding:80px 50px;border:2px solid #FF7B1A;border-radius:18px;background:radial-gradient(ellipse at center,rgba(255,123,26,0.08) 0%,rgba(255,123,26,0.02) 100%);box-shadow:0 8px 32px rgba(0,0,0,0.30),0 0 60px rgba(255,123,26,0.10);text-align:center;position:relative;overflow:hidden}
.join::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,#FF7B1A,transparent)}
.join-eyebrow{font-size:0.7rem;font-weight:700;letter-spacing:0.3em;text-transform:uppercase;color:#FF7B1A;margin-bottom:24px}
.join h2{font-size:clamp(2.2rem,5vw,3.5rem);font-weight:600;text-transform:uppercase;letter-spacing:-0.02em;color:#fff;line-height:1.0;margin-bottom:24px;text-wrap:balance}
.join h2 .accent{color:#FF7B1A;font-family:var(--rb-font-serif);font-style:italic;font-weight:400;text-transform:none;letter-spacing:-0.01em}
.join p{font-size:1.1rem;font-weight:300;color:rgba(255,255,255,0.7);max-width:600px;margin:0 auto 36px;line-height:1.55;text-wrap:pretty}

/* === FOOTER === */
footer{padding:60px 40px 40px;border-top:1px solid rgba(255,123,26,0.2);position:relative;z-index:1}
.footer-inner{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:48px;margin-bottom:60px}
.foot-brand img{height:32px;margin-bottom:18px}
.foot-brand p{font-family:var(--rb-font-serif);font-style:italic;font-size:1.1rem;color:rgba(255,255,255,0.7);max-width:340px;line-height:1.45}
.foot-social{display:flex;gap:18px;margin-top:20px;font-size:0.65rem;font-weight:700;letter-spacing:0.22em;text-transform:uppercase}
.foot-social a{color:rgba(255,255,255,0.6);text-decoration:none;transition:color 0.3s}
.foot-social a:hover{color:#FF7B1A}
.foot-col h5{font-size:0.65rem;font-weight:700;letter-spacing:0.25em;text-transform:uppercase;color:#FF7B1A;margin-bottom:18px}
.foot-col ul{list-style:none;display:flex;flex-direction:column;gap:12px}
.foot-col a{font-size:0.85rem;font-weight:300;color:rgba(255,255,255,0.65);text-decoration:none;transition:color 0.3s}
.foot-col a:hover{color:#FF7B1A}
.foot-bottom{max-width:1100px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;padding-top:28px;border-top:1px solid rgba(255,123,26,0.12);font-size:0.7rem;letter-spacing:0.15em;text-transform:uppercase;color:rgba(255,255,255,0.4)}
.foot-bottom .verified{color:#FF7B1A;font-weight:700;letter-spacing:0.2em}

@media (max-width: 900px){
  .hero-byline,.thesis-grid,.team-grid,.build-grid{grid-template-columns:1fr}
  .vision-pillars,.backers{grid-template-columns:repeat(2,1fr)}
  .vision-pillars{row-gap:48px}
  .press{grid-template-columns:1fr;gap:8px}
  .press-source{text-align:left}
  .neg{grid-template-columns:1fr;gap:8px}

  /* Footer: brand spans 2 cols on top, Company + Products side-by-side,
     Contact spans 2 cols at the bottom (long emails need the room). */
  .footer-inner{grid-template-columns:1fr 1fr;gap:32px 24px}
  .footer-inner > .foot-brand{grid-column:1 / -1}
  .footer-inner > .foot-col:last-child{grid-column:1 / -1}
}

/* Nav: burger menu kicks in well before content cramps. */
@media (max-width: 720px){
  .nav-inner{padding:14px 24px}
  .nav-burger{display:flex}

  .nav-links{
    position:absolute;
    top:100%;left:0;right:0;
    flex-direction:column;
    align-items:flex-start;
    gap:22px;
    padding:28px 32px;
    background:rgba(0,0,0,0.95);
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
    border-bottom:1px solid rgba(255,123,26,0.2);
    transform:translateY(-12px);
    opacity:0;
    pointer-events:none;
    transition:transform 0.3s var(--rb-ease),opacity 0.3s var(--rb-ease);
  }
  .nav-links a{font-size:0.9rem;letter-spacing:0.18em}
  .nav-cta{align-self:flex-start;margin-top:4px;font-size:0.78rem;padding:0.75rem 1.4rem}

  .nav.nav-open .nav-links{transform:translateY(0);opacity:1;pointer-events:auto}

  /* Burger morphs into an X when the menu is open */
  .nav.nav-open .nav-burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .nav.nav-open .nav-burger span:nth-child(2){opacity:0}
  .nav.nav-open .nav-burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
}
