/* Repguild homepage refinement. No external assets or dependencies. */
:root{--lime:#d7fb43;--text:#f3f5ee;--muted:#aab2a5}
body{font-family:"Avenir Next","Century Gothic",ui-sans-serif,system-ui,sans-serif}
h1,h2,h3,.brand,.price-main strong{font-family:"Avenir Next","Century Gothic",ui-sans-serif,system-ui,sans-serif}
/* Navigation */
.site-header{background:rgba(8,10,8,.92);border-bottom-color:rgba(215,251,67,.11);backdrop-filter:blur(18px)}
.nav{height:78px}
.brand{font-size:14px;letter-spacing:.17em;transition:color .25s ease}
.brand:hover{color:var(--lime)}
.brand-mark{position:relative;width:31px;height:31px;border-radius:5px;box-shadow:inset 0 0 0 1px rgba(215,251,67,.1)}
.nav-links{gap:34px}
.nav-links a{position:relative;padding:10px 0;color:#c7cfc1;transition:color .2s ease}
.nav-links a:after{content:"";position:absolute;left:0;bottom:4px;width:100%;height:1px;background:var(--lime);transform:scaleX(0);transform-origin:left;transition:transform .25s ease}
.nav-links a:hover:after,.nav-links a:focus-visible:after{transform:scaleX(1)}
.nav-cta,.button{min-height:44px;letter-spacing:.01em;transition:transform .22s cubic-bezier(.2,.8,.2,1),background-color .22s ease,border-color .22s ease,box-shadow .22s ease}
.nav-cta{padding-inline:21px}
.button{padding:14px 23px}
.nav-cta:hover,.button-primary:hover{box-shadow:0 8px 26px rgba(215,251,67,.18);transform:translateY(-2px)}
.nav-cta span,.button span[aria-hidden]{display:inline-block;transition:transform .22s ease}
.nav-cta:hover span,.button-primary:hover span[aria-hidden]{transform:translate(2px,-2px)}
.button-secondary:hover span[aria-hidden]{transform:translateY(3px)}
.nav-cta:active,.button:active{transform:translateY(0) scale(.98)}
/* Homepage hero: graphic restraint, editorial scale, instrument-panel details */
.hero{isolation:isolate;min-height:min(790px,calc(100svh - 78px));display:flex;align-items:center;padding:110px 0 120px;background:radial-gradient(ellipse 42% 55% at 79% 47%,rgba(165,206,48,.115),transparent 75%),linear-gradient(116deg,#080a08 13%,#0c110b 62%,#090b08 100%)}
.hero:before{content:"";position:absolute;z-index:0;top:0;right:0;bottom:0;width:42%;border-left:1px solid rgba(215,251,67,.07);background:repeating-linear-gradient(135deg,transparent 0,transparent 31px,rgba(215,251,67,.025) 32px,transparent 33px);mask-image:linear-gradient(90deg,transparent,#000 42%);pointer-events:none}
.hero:after{opacity:.2;background-size:76px 76px;mask-image:linear-gradient(to bottom,#000,transparent 92%)}
.hero-grid{grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:clamp(34px,6vw,82px)}
.hero .eyebrow{border:1px solid rgba(215,251,67,.28);border-radius:99px;padding:8px 13px 8px 11px;background:rgba(215,251,67,.045);font-size:10px;letter-spacing:.17em}
.hero .eyebrow:before{width:13px}
.hero h1{font-size:clamp(66px,7.6vw,116px);line-height:.91;letter-spacing:-.082em;font-weight:850;margin:29px 0 27px;text-wrap:balance}
.hero h1 span{position:relative;display:inline-block}
.hero h1 span:after{content:"";position:absolute;left:4px;bottom:-6px;width:97%;height:2px;background:linear-gradient(90deg,var(--lime),transparent);transform-origin:left}
.hero-copy{max-width:485px;margin:0;color:#b7c0b3;font-size:16px;line-height:1.8}
.hero-actions{margin-top:34px}
.launch-note{margin-top:30px;font-size:11px;letter-spacing:.04em}
.launch-dot{box-shadow:0 0 0 4px rgba(215,251,67,.09)}
.training-card{padding:28px;min-height:485px;border-radius:18px;border-color:#3a4531;background:linear-gradient(155deg,rgba(28,35,23,.98),rgba(11,15,11,.99) 72%);box-shadow:0 32px 90px rgba(0,0,0,.42),inset 0 1px rgba(255,255,255,.055)}
.training-card:before{width:300px;height:300px;right:-145px;top:-125px;border-color:rgba(215,251,67,.29);box-shadow:0 0 0 35px rgba(215,251,67,.025),0 0 0 70px rgba(215,251,67,.014)}
.training-card:after{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:linear-gradient(180deg,transparent,var(--lime) 36%,rgba(215,251,67,.1) 75%,transparent)}
.card-top{padding-bottom:19px;border-bottom:1px solid rgba(215,251,67,.12)}
.card-title{font-size:clamp(29px,3vw,39px);line-height:1.12;margin:61px 0 9px;font-weight:760}
.card-subtitle{color:#aeb9a8}
.record-list{gap:8px;margin-top:29px}
.record-row{border-radius:9px;border-color:#303a2c;background:rgba(238,255,223,.025);transition:transform .25s ease,border-color .25s ease,background-color .25s ease}
.record-row:hover{transform:translateX(3px);border-color:rgba(215,251,67,.38);background:rgba(215,251,67,.045)}
.record-icon{border-radius:6px}
.card-foot{letter-spacing:.025em}
/* Sections and component rhythm */
.section{padding:118px 0}
.section-head{margin-bottom:49px}
.section-head h2,.pricing-copy h2{font-weight:760;line-height:1.03;letter-spacing:-.065em}
.section-head p{line-height:1.78}
.eyebrow{letter-spacing:.19em}
.feature-grid{gap:12px}
.feature-card{position:relative;min-height:242px;padding:29px;border-radius:15px;overflow:hidden;background:linear-gradient(142deg,#171c15,#0e110e 78%);border-color:#30382d;transition:transform .32s cubic-bezier(.2,.8,.2,1),border-color .3s ease,box-shadow .3s ease}
.feature-card:before{content:"";position:absolute;left:0;top:0;width:0;height:2px;background:var(--lime);transition:width .35s ease}
.feature-card:hover,.feature-card:focus-within{transform:translateY(-5px);border-color:#657841;box-shadow:0 19px 39px rgba(0,0,0,.22)}
.feature-card:hover:before{width:100%}
.feature-number,.battle-code,.price-label{font-variant-numeric:tabular-nums}
.feature-card h3{font-size:21px;line-height:1.2;margin:45px 0 10px}
.feature-card p{font-size:13px;line-height:1.75}
.competition{position:relative;overflow:hidden;background:linear-gradient(180deg,#0d120c,#10160e 54%,#090c09)}
.competition:before{content:"";position:absolute;inset:0;opacity:.17;background:repeating-linear-gradient(90deg,transparent,transparent 91px,rgba(215,251,67,.12) 92px);pointer-events:none}
.competition .wrap{position:relative}
.battle-grid{gap:17px}
.battle-card{min-height:311px;padding:34px;border-radius:15px;border-color:#3a4933;background:radial-gradient(ellipse at 99% 0%,rgba(215,251,67,.12),transparent 48%),linear-gradient(135deg,#1a2118,#101510);transition:transform .32s cubic-bezier(.2,.8,.2,1),border-color .3s ease,box-shadow .3s ease}
.battle-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--lime),rgba(215,251,67,.08) 61%,transparent)}
.battle-card:nth-child(2):before{background:linear-gradient(270deg,var(--lime),rgba(215,251,67,.08) 61%,transparent)}
.battle-card:hover{transform:translateY(-5px);border-color:#7b9943;box-shadow:0 20px 38px rgba(0,0,0,.24)}
.battle-card h3{position:relative;z-index:1;margin-top:54px;max-width:320px;font-size:clamp(27px,3vw,38px);line-height:1.13}
.battle-card p{position:relative;z-index:1;line-height:1.73}
.battle-mark{bottom:-22px;right:27px;font-size:151px;color:rgba(215,251,67,.065);font-variant-numeric:tabular-nums}
.step{border-left-color:#48583b;transition:border-color .25s ease,transform .25s ease}
.step:hover{border-left-color:var(--lime);transform:translateY(-3px)}
.step h3{font-size:17px}
.identity-band{position:relative;overflow:hidden;border-radius:17px;border-color:#394731;background:linear-gradient(125deg,#161d14,#10160f 80%);box-shadow:inset 0 1px rgba(255,255,255,.04)}
.identity-band:before{content:"";position:absolute;top:0;right:0;width:42%;height:100%;background:linear-gradient(135deg,transparent 40%,rgba(215,251,67,.055));pointer-events:none}
.identity-band>div{position:relative}
.identity-point{border-radius:8px;border-color:#354130;transition:border-color .25s ease,transform .25s ease}
.identity-point:hover{border-color:#82975c;transform:translateX(3px)}
.price-card{position:relative;border-radius:16px;border-color:#576b3c;background:linear-gradient(150deg,#1d2818,#10160e 73%);box-shadow:0 27px 62px rgba(0,0,0,.3),inset 0 1px rgba(255,255,255,.05)}
.price-card:before{content:"";position:absolute;inset:0 0 auto;height:3px;background:linear-gradient(90deg,var(--lime),rgba(215,251,67,.08))}
.price-main strong{font-variant-numeric:tabular-nums;font-weight:760}
.price-row{border-bottom:1px solid rgba(255,255,255,.045);font-variant-numeric:tabular-nums}
.price-row:last-of-type{border-bottom:0}
/* Closing statement, intentionally not an active download link */
.cta-band{position:relative;isolation:isolate;overflow:hidden;min-height:210px;padding:52px 56px;border-radius:17px;background:#d7fb43;box-shadow:0 22px 58px rgba(119,155,33,.13)}
.cta-band:before{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(112deg,transparent 0%,transparent 42%,rgba(255,255,255,.32) 49%,transparent 58%,transparent 100%);transform:translateX(-125%);pointer-events:none}
.cta-band:after{content:"";position:absolute;z-index:-1;top:-140px;right:-70px;width:420px;height:420px;border:1px solid rgba(25,45,7,.16);border-radius:50%;box-shadow:0 0 0 42px rgba(25,45,7,.035),0 0 0 84px rgba(25,45,7,.025);pointer-events:none}
.cta-band h2{max-width:520px;font-size:clamp(32px,4vw,48px)}
.cta-band p{max-width:550px;line-height:1.7;color:#39482a}
.cta-band .button{position:relative;z-index:1;background:#172016;color:var(--lime);border-color:#172016;cursor:default;box-shadow:0 9px 24px rgba(26,48,14,.17)}
.cta-band .button:hover{transform:none}
/* Restrained shared-page polish only */
.page-hero{border-bottom:1px solid rgba(215,251,67,.08)}
.legal-nav a,.footer-links a,.back-home{transition:color .2s ease}
.footer-bottom{line-height:1.6}
/* JS only applies hidden states to elements below the fold after observer setup. */
@media(prefers-reduced-motion:no-preference){
  .motion-ready .hero .eyebrow{animation:rg-rise .65s .05s both cubic-bezier(.2,.8,.2,1)}
  .motion-ready .hero h1{animation:rg-rise .8s .15s both cubic-bezier(.2,.8,.2,1)}
  .motion-ready .hero h1 span:after{animation:rg-line .8s .68s both cubic-bezier(.2,.8,.2,1)}
  .motion-ready .hero-copy{animation:rg-rise .75s .36s both cubic-bezier(.2,.8,.2,1)}
  .motion-ready .hero-actions{animation:rg-rise .7s .5s both cubic-bezier(.2,.8,.2,1)}
  .motion-ready .launch-note{animation:rg-rise .65s .66s both cubic-bezier(.2,.8,.2,1)}
  .motion-ready .training-card{animation:rg-card .95s .35s both cubic-bezier(.2,.8,.2,1)}
  .motion-ready .training-card:after{animation:rg-trace .95s .75s both ease-out}
  .motion-ready .hero:after{animation:rg-grid 1.5s .15s both ease-out}
  .reveal-pending{opacity:0;transform:translateY(26px)}
  .reveal-pending.is-visible{animation:rg-rise .75s both cubic-bezier(.2,.8,.2,1)}
  .feature-card.reveal-pending,.battle-card.reveal-pending{transform:translateY(22px) scale(.985)}
  .feature-card.reveal-pending.is-visible,.battle-card.reveal-pending.is-visible{animation:rg-card .7s both cubic-bezier(.2,.8,.2,1)}
  .record-row.reveal-pending{opacity:0;transform:translateX(16px)}
  .record-row.reveal-pending.is-visible{animation:rg-side .6s both cubic-bezier(.2,.8,.2,1)}
  .cta-band.is-visible:before{animation:rg-sweep 1.15s .24s both ease-out}
}
@keyframes rg-rise{from{opacity:0;transform:translateY(25px)}to{opacity:1;transform:translateY(0)}}
@keyframes rg-card{from{opacity:0;transform:translateY(25px) scale(.975)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes rg-side{from{opacity:0;transform:translateX(16px)}to{opacity:1;transform:translateX(0)}}
@keyframes rg-line{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes rg-trace{from{opacity:0;transform:translateY(-70%)}to{opacity:1;transform:translateY(0)}}
@keyframes rg-grid{from{opacity:0;transform:translateY(-12px)}to{opacity:.2;transform:translateY(0)}}
@keyframes rg-sweep{from{transform:translateX(-125%)}to{transform:translateX(125%)}}
@media(max-width:900px){.hero{min-height:0}.hero-grid{gap:32px}.hero h1{font-size:clamp(57px,7.5vw,82px)}.training-card{min-height:440px}.section{padding:95px 0}}
@media(max-width:680px){
  .site-header{backdrop-filter:blur(10px)}.nav{height:66px}.nav-links{gap:0}.nav-links a:after{display:none}
  .hero{min-height:0;padding:71px 0 80px}.hero:before{width:80%;opacity:.6}.hero-grid{grid-template-columns:1fr;gap:53px}.hero h1{font-size:clamp(58px,13.4vw,78px);margin:25px 0}.hero-copy{font-size:15px;line-height:1.7}
  .hero-actions{margin-top:26px}.hero-actions .button{min-height:47px}.launch-note{margin-top:25px}
  .training-card{min-height:0;padding:23px}.card-title{margin-top:50px}.record-list{margin-top:26px}
  .section{padding:78px 0}.section-head{margin-bottom:34px}.feature-card{min-height:0;padding:25px}.feature-card h3{margin-top:30px}
  .battle-card{min-height:253px;padding:27px}.battle-card h3{margin-top:39px}
  .identity-band{padding:28px}.price-card{padding:26px}
  .cta-band{min-height:0;padding:38px 29px;gap:25px}.cta-band:after{right:-250px}
}
@media(max-width:360px){.hero h1{font-size:clamp(51px,15vw,58px)}.hero-actions{align-items:stretch;flex-direction:column}.hero-actions .button{width:100%}.training-card{padding:18px}.card-top{font-size:9px;letter-spacing:.08em}.record-row{padding:12px}.cta-band{padding:31px 23px}}
@media(prefers-reduced-motion:reduce){
  .reveal-pending,.reveal-pending.is-visible{opacity:1!important;transform:none!important;animation:none!important}
  .hero .eyebrow,.hero h1,.hero-copy,.hero-actions,.launch-note,.training-card,.hero:after,.training-card:after,.cta-band:before{animation:none!important}
  .feature-card:hover,.battle-card:hover,.step:hover,.record-row:hover,.identity-point:hover,.nav-cta:hover,.button:hover{transform:none!important}
}