/* Gamemode landing pages (/original, /life). Shares the rules/faq page shell:
   tokens.css supplies colours, effects.css supplies nav + footer + buttons. */
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-padding-top:104px}
html,body{background:var(--ink);color:var(--bone);font-family:'Inter',system-ui,sans-serif;-webkit-font-smoothing:antialiased}
body{overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
.wrap{width:min(1100px,92vw);margin:0 auto;position:relative}
.mono{font-family:'JetBrains Mono',ui-monospace,monospace}
main{position:relative;z-index:2}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:-2;background:
  radial-gradient(ellipse 60% 46% at 50% -10%,var(--gm-ember),transparent 60%),
  radial-gradient(ellipse 52% 40% at 88% 90%,var(--ember-blood),transparent 64%),
  radial-gradient(circle at 50% 38%,#0a0f0c 0%,#070a08 44%,var(--void) 100%)}
body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.78' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.55  0 0 0 0 0.58  0 0 0 0 0.56  0 0 0 0.5 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  background-size:200px 200px;opacity:.4;mix-blend-mode:overlay}

/* world accent: pages set --gm-accent / --gm-ember on <body> */
.gm-original{--gm-accent:var(--green);--gm-accent-deep:var(--green-deep);--gm-ember:var(--ember-og);--gm-glow:rgba(157,255,43,.3);--gm-title-shadow:#7add26;--gm-title-shadow-2:#3e7112}
.gm-life{--gm-accent:var(--gold);--gm-accent-deep:#b98a25;--gm-ember:var(--ember-life);--gm-glow:rgba(230,184,74,.32);--gm-title-shadow:#c99a2e;--gm-title-shadow-2:#5c4410}

/* HERO */
.page-hero{position:relative;padding:150px 0 70px;border-bottom:1px solid var(--hair);overflow:hidden;isolation:isolate;background:#070a08}
.page-hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:136px;z-index:0;pointer-events:none;background:linear-gradient(180deg,transparent 0%,rgba(7,10,8,.52) 48%,#070a08 100%)}
.page-hero__bg{position:absolute;inset:-2%;z-index:-2;background-position:center 40%;background-size:cover;background-repeat:no-repeat;filter:saturate(1.03) contrast(1.05) brightness(.86);transform:scale(1.02);animation:heroSceneDrift 18s cubic-bezier(.16,1,.3,1) infinite alternate}
.page-hero__veil{position:absolute;inset:0;z-index:-1;background:
  linear-gradient(90deg,rgba(5,7,6,.92) 0%,rgba(5,7,6,.7) 34%,rgba(5,7,6,.2) 66%,rgba(5,7,6,.6) 100%),
  linear-gradient(180deg,rgba(5,7,6,.12) 0%,rgba(5,7,6,.26) 50%,rgba(5,7,6,.88) 100%),
  repeating-linear-gradient(0deg,rgba(255,255,255,.014) 0 1px,transparent 1px 4px)}
.page-hero .wrap{z-index:1}
.kicker{display:flex;width:max-content;align-items:center;gap:10px;font-family:'JetBrains Mono',monospace;text-transform:uppercase;letter-spacing:.26em;font-size:12px;color:var(--gm-accent);margin-bottom:16px}
.kicker::before{content:"";width:26px;height:1px;background:var(--gm-accent)}
.page-hero h1{display:inline-block;font-family:'Anton',sans-serif;font-size:clamp(44px,7vw,92px);line-height:.94;text-transform:uppercase;letter-spacing:.01em;max-width:14ch;text-shadow:1px 1px 0 #8b8f80,2px 2px 0 #4a5047,5px 7px 0 rgba(0,0,0,.42),0 18px 34px rgba(0,0,0,.58)}
.page-hero h1 em{color:var(--gm-accent);font-style:normal;text-shadow:1px 1px 0 var(--gm-title-shadow),2px 2px 0 var(--gm-title-shadow-2),5px 7px 0 rgba(0,0,0,.46),0 16px 30px rgba(0,0,0,.52)}
.page-hero .lede{color:var(--bone-2);max-width:680px;margin-top:18px;font-size:17px;line-height:1.65;text-shadow:0 2px 14px rgba(0,0,0,.58)}
.page-hero .lede b{color:var(--bone)}
.hero-ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:12px 24px;border-radius:2px;font-family:'Barlow Condensed',sans-serif;font-weight:800;text-transform:uppercase;letter-spacing:.12em;font-size:15px;border:1px solid var(--hair-2);color:var(--bone);background:rgba(255,255,255,.04);transition:transform .15s ease,background .15s ease,border-color .15s ease}
.btn:hover{transform:translateY(-2px);background:rgba(255,255,255,.08)}
.btn--primary{background:var(--gm-accent);color:#06080a;border-color:transparent;box-shadow:0 0 0 1px var(--gm-glow),0 12px 36px rgba(0,0,0,.5)}
.btn--primary:hover{background:var(--gm-accent);filter:brightness(1.05)}
.btn:focus-visible{outline:2px solid var(--gm-accent);outline-offset:3px}

/* FACT STRIP */
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:var(--hair);border:1px solid var(--hair);border-radius:4px;overflow:hidden;margin-top:34px}
.fact{background:rgba(9,12,10,.86);padding:16px 18px;backdrop-filter:blur(6px)}
.fact__val{font-family:'Anton',sans-serif;font-size:26px;line-height:1;color:var(--bone)}
.fact__val b{color:var(--gm-accent);font-weight:400}
.fact__lbl{font-family:'Barlow Condensed',sans-serif;text-transform:uppercase;letter-spacing:.14em;font-size:12px;color:var(--bone-3);margin-top:6px}
.fact--live .fact__lbl::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--gm-accent);margin-right:7px;box-shadow:0 0 8px var(--gm-glow);vertical-align:1px}

/* SECTIONS */
.section{padding:70px 0}
.section + .section{border-top:1px solid var(--hair)}
.section-head{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:22px 48px;align-items:end;margin-bottom:34px}
.section-kicker{font-family:'JetBrains Mono',monospace;font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--gm-accent);margin-bottom:10px}
.section-title{font-family:'Anton',sans-serif;font-size:clamp(32px,4.4vw,56px);line-height:.95;text-transform:uppercase}
.section-title em{color:var(--gm-accent);font-style:normal}
.section-sub{color:var(--bone-2);font-size:16px;line-height:1.65;max-width:52ch}
.section-sub b{color:var(--bone)}
.prose{max-width:800px}
.prose p{color:var(--bone-2);line-height:1.7;font-size:16px;margin-bottom:16px}
.prose p b{color:var(--bone)}
.prose a{color:var(--gm-accent);text-decoration:underline;text-underline-offset:3px}

/* LOOP */
.loop{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:8px}
.loop__step{position:relative;padding:18px 18px 16px 18px;border:1px solid var(--hair);border-radius:3px;background:rgba(255,255,255,.025)}
.loop__step::before{content:counter(lp,decimal-leading-zero);counter-increment:lp;font-family:'JetBrains Mono',monospace;font-size:12px;letter-spacing:.14em;color:var(--gm-accent)}
.loop{counter-reset:lp}
.loop__step h3{font-family:'Barlow Condensed',sans-serif;text-transform:uppercase;font-weight:800;font-size:19px;letter-spacing:.04em;margin:8px 0 6px}
.loop__step p{color:var(--bone-2);font-size:14.5px;line-height:1.55}

/* FEATURE GRID */
.feat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;counter-reset:ft}
.feat{position:relative;isolation:isolate;overflow:hidden;border-radius:4px;border:1px solid var(--hair);min-height:270px;display:flex;flex-direction:column;justify-content:flex-end;counter-increment:ft;transition:transform .3s ease,border-color .3s ease,box-shadow .3s ease}
.feat__bg{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;filter:saturate(1.04) contrast(1.06) brightness(.8);transition:transform .7s cubic-bezier(.2,.8,.2,1)}
.feat__shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(6,8,7,.05) 0%,rgba(6,8,7,.58) 52%,rgba(5,7,6,.97) 100%)}
.feat::after{content:counter(ft,decimal-leading-zero);position:absolute;top:12px;right:15px;font-family:'JetBrains Mono',monospace;font-size:12px;letter-spacing:.08em;color:var(--gm-accent);opacity:.7}
.feat__content{padding:20px 20px 18px}
.feat h3{font-family:'Anton',sans-serif;text-transform:uppercase;font-size:22px;line-height:1;color:var(--bone)}
.feat h3::after{content:"";display:block;width:30px;height:3px;background:var(--gm-accent);margin-top:10px;transition:width .3s ease}
.feat p{color:var(--bone-2);font-size:14px;line-height:1.5;margin-top:10px}
.feat__link{display:inline-block;margin-top:12px;font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--gm-accent)}
.feat__link::before{content:"";position:absolute;inset:0;z-index:2}
.feat:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--gm-accent) 45%,transparent);box-shadow:0 22px 50px rgba(0,0,0,.5),0 0 30px var(--gm-glow)}
.feat:hover .feat__bg{transform:scale(1.08)}
.feat:hover h3::after{width:66px}
.feat:hover .feat__link,.feat:focus-within .feat__link{text-decoration:underline;text-underline-offset:3px}
.feat:focus-within{outline:2px solid var(--gm-accent);outline-offset:2px}

/* TWO-COL PANELS (wipes / progression, getting started) */
.cols{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.panel{padding:24px 26px;border:1px solid var(--hair);border-radius:4px;background:rgba(255,255,255,.03)}
.panel h3{font-family:'Barlow Condensed',sans-serif;text-transform:uppercase;font-weight:800;letter-spacing:.1em;font-size:15px;color:var(--gm-accent);margin-bottom:12px}
.panel ul{list-style:none;display:flex;flex-direction:column;gap:10px}
.panel li{position:relative;padding-left:24px;color:var(--bone-2);line-height:1.6;font-size:15px}
.panel li::before{content:"▸";position:absolute;left:2px;top:0;color:var(--gm-accent)}
.panel li b{color:var(--bone)}
.panel li a{color:var(--gm-accent);text-decoration:underline;text-underline-offset:3px}
.steps{list-style:none;counter-reset:st;display:flex;flex-direction:column;gap:14px}
.steps li{position:relative;padding-left:44px;color:var(--bone-2);line-height:1.6;font-size:15px}
.steps li::before{content:counter(st,decimal-leading-zero);counter-increment:st;position:absolute;left:0;top:2px;font-family:'JetBrains Mono',monospace;font-size:13px;letter-spacing:.06em;color:var(--gm-accent)}
.steps li b{color:var(--bone)}
.steps li a{color:var(--gm-accent);text-decoration:underline;text-underline-offset:3px}
.steps code{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:13.5px;color:var(--bone);background:rgba(255,255,255,.06);padding:2px 6px;border-radius:2px}

/* FAQ */
.faq{max-width:820px}
.faq details{border:1px solid var(--hair);border-radius:3px;background:rgba(255,255,255,.025);margin-bottom:10px}
.faq summary{cursor:pointer;list-style:none;padding:16px 18px;font-family:'Barlow Condensed',sans-serif;text-transform:uppercase;font-weight:700;letter-spacing:.06em;font-size:16px;color:var(--bone);display:flex;justify-content:space-between;align-items:center;gap:12px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:'JetBrains Mono',monospace;color:var(--gm-accent);font-size:18px;line-height:1}
.faq details[open] summary::after{content:"–"}
.faq summary:focus-visible{outline:2px solid var(--gm-accent);outline-offset:-2px}
.faq .faq-body{padding:0 18px 16px;color:var(--bone-2);line-height:1.65;font-size:15px}
.faq .faq-body b{color:var(--bone)}
.faq .faq-body a{color:var(--gm-accent);text-decoration:underline;text-underline-offset:3px}

/* CTA */
.cta{position:relative;padding:96px 0;text-align:center;border-top:1px solid var(--hair);overflow:hidden;isolation:isolate}
.cta__bg{position:absolute;inset:0;z-index:-2;background-size:cover;background-position:center;filter:saturate(.98) contrast(1.06) brightness(.6)}
.cta::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(6,8,7,.82),rgba(6,8,7,.6) 50%,rgba(5,7,6,.94)),radial-gradient(ellipse at 50% 0%,var(--gm-glow),transparent 60%)}
.cta h2{font-family:'Anton',sans-serif;font-size:clamp(32px,4vw,56px);line-height:.95;text-transform:uppercase}
.cta h2 em{color:var(--gm-accent);font-style:normal}
.cta p{color:var(--bone-2);margin:14px auto 28px;max-width:560px;line-height:1.6}
.cta .hero-ctas{justify-content:center}
.cta .mono{display:block;margin-top:18px;color:var(--bone-3);font-size:13px}

/* other-world nudge */
.other{margin-top:26px;padding:16px 18px;border:1px dashed var(--hair-2);border-radius:3px;color:var(--bone-2);font-size:14.5px;line-height:1.6;max-width:820px}
.other a{color:var(--bone);text-decoration:underline;text-underline-offset:3px}

@keyframes heroSceneDrift{from{transform:scale(1.02) translate3d(-.5%,0,0)}to{transform:scale(1.055) translate3d(.7%,-.4%,0)}}
@media (max-width:900px){
  .feat-grid{grid-template-columns:repeat(2,1fr)}
  .loop{grid-template-columns:repeat(2,1fr)}
  .section-head{grid-template-columns:1fr}
}
@media (max-width:640px){
  .page-hero{padding:118px 0 54px}
  .page-hero h1{font-size:clamp(40px,12vw,64px)}
  .kicker{letter-spacing:.18em}
  .feat-grid,.loop,.cols{grid-template-columns:1fr}
  .feat{min-height:230px}
  .section{padding:54px 0}
  .btn{width:100%}
  .facts{grid-template-columns:repeat(2,1fr)}
}
@media (hover:none){.feat:hover{transform:none}.feat:hover .feat__bg{transform:none}}
@media (prefers-reduced-motion:reduce){
  .page-hero__bg{animation:none}
  .feat,.feat__bg,.btn{transition:none!important}
  .feat:hover{transform:none}.feat:hover .feat__bg{transform:none}
}
