/* RallyPointPC OLED skin: layered on top of style.css. Keeps the original palette
   (olive / brass / rust / paper) and fonts; adds depth, glow, glass and motion. */
:root{
  --bg:#15190f; --panel:#181d12; --panel-2:#1d2315; --moss:#3a4429;
  --line:#434e36; --line-2:#56634a;
  --brass-glow:rgba(212,180,110,.38); --rust-glow:rgba(221,106,63,.42); --field-glow:rgba(173,189,130,.35);
  --r-sm:8px; --r:14px; --r-lg:20px; --r-xl:26px;
  --ease:cubic-bezier(.2,.8,.2,1);
}
html{scroll-behavior:smooth; scroll-padding-top:104px; background:var(--bg);}
body{background:var(--bg); overflow-x:clip;}
main, footer{overflow-x:clip;}

/* ambient light + grain in place of the diagonal texture */
.texture{opacity:1; background:
  radial-gradient(900px 600px at 85% -10%, rgba(221,106,63,.07), transparent 70%),
  radial-gradient(800px 700px at 0% 30%, rgba(173,189,130,.05), transparent 70%),
  radial-gradient(700px 500px at 60% 110%, rgba(212,180,110,.05), transparent 70%);}
body::after{content:""; position:fixed; inset:0; pointer-events:none; z-index:95; opacity:.04; mix-blend-mode:screen;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");}

/* ---------- header: floating glass bar ---------- */
header{position:sticky; top:14px; z-index:60; margin:14px 16px 0; background:none; border:0; backdrop-filter:none; -webkit-backdrop-filter:none;}
header nav{max-width:1180px; height:64px; padding:0 10px 0 16px; border-radius:99px; gap:18px;
  background:rgba(20,23,15,.78); backdrop-filter:blur(18px) saturate(1.3); -webkit-backdrop-filter:blur(18px) saturate(1.3);
  box-shadow:0 0 0 1px var(--line) inset, 0 1px 0 rgba(236,231,214,.05) inset, 0 20px 60px -20px rgba(0,0,0,.9);}
.logo{gap:10px;}
.logo-mark-img{width:32px; border-radius:7px;}
.logo-word{font:600 1.22rem/1 'Oswald',sans-serif; letter-spacing:.06em; text-transform:uppercase; color:var(--paper); white-space:nowrap;}
.logo-word b{color:var(--field); font-weight:600;}
.navlinks{gap:2px; font-size:.72rem; letter-spacing:.1em; margin-left:auto;}
.navlinks a{opacity:1; color:var(--paper-dim); border:0; padding:9px 12px; border-radius:99px; transition:color .2s, background .2s;}
.navlinks a:hover{color:var(--paper); background:rgba(236,231,214,.05); border:0;}
.navlinks a.active{color:var(--paper); background:rgba(173,189,130,.1); border:0;}
header nav > div:last-of-type{gap:8px !important;}
.navcta, #accountBtn{border-radius:99px; padding:11px 18px; font-size:.74rem; letter-spacing:.08em;}
#accountBtn{background:rgba(236,231,214,.04) !important; color:var(--paper) !important; box-shadow:0 0 0 1px var(--line-2) inset;}
#accountBtn:hover{background:rgba(236,231,214,.08) !important;}
.nav-toggle{width:42px; height:42px; border-radius:99px; background:rgba(236,231,214,.04); box-shadow:0 0 0 1px var(--line-2) inset; align-items:center;}
.nav-toggle span{width:16px; height:1.5px;}
.nav-toggle.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg);}
.nav-toggle.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg);}

/* ---------- type ---------- */
h1, h2{letter-spacing:.005em; text-wrap:balance;}
.section h2, .section h1.page-title, .service-hero h1{font-size:clamp(2rem,1.3rem + 2.2vw,3rem) !important; line-height:1.05; text-transform:uppercase;
  background:linear-gradient(180deg,#fbf8ee 35%,#9c9885 130%); -webkit-background-clip:text; background-clip:text; color:transparent;}
#about .hero-line{font-family:"Oswald",sans-serif; font-weight:600; font-size:clamp(2.6rem,1.4rem + 4vw,4.4rem) !important; line-height:.98; text-transform:uppercase; letter-spacing:-.005em;
  background:linear-gradient(180deg,#fbf8ee 35%,#a8a490 130%); -webkit-background-clip:text; background-clip:text; color:transparent;}
#about .hero-line em{-webkit-text-fill-color:var(--rust); text-shadow:0 0 40px var(--rust-glow);}
.section .sub, .about-copy p{font-size:.95rem; line-height:1.75;}
p{text-wrap:pretty;}

/* ---------- sections ---------- */
.section{padding:108px 24px; border-bottom:1px solid var(--line);}
.wrap{max-width:1160px;}

/* ---------- buttons ---------- */
.btn-primary, .navcta, .submit-btn{
  border-radius:99px; border:0 !important; color:var(--rust-text);
  background:var(--rust) !important;
  box-shadow:0 0 0 1px rgba(255,170,130,.35) inset, 0 10px 36px -10px var(--rust-glow);
  transition:transform .25s var(--ease), box-shadow .3s var(--ease), filter .2s;}
.btn-primary:hover, .navcta:hover, .submit-btn:hover{color:var(--rust-text); transform:translateY(-1px); filter:brightness(1.06);
  box-shadow:0 0 0 1px rgba(255,190,150,.5) inset, 0 14px 44px -8px var(--rust-glow), 0 0 0 6px rgba(221,106,63,.09);}
.btn-primary:active, .navcta:active, .submit-btn:active, .btn-ghost:active{transform:translateY(1px) scale(.985);}
.btn-primary{padding:15px 28px;}
.btn-ghost{border-radius:99px; border:0; box-shadow:0 0 0 1px var(--line-2) inset; background:rgba(236,231,214,.02);
  transition:background .25s, box-shadow .25s, color .25s, transform .25s var(--ease);}
.btn-ghost:hover{background:rgba(212,180,110,.08); color:var(--brass); box-shadow:0 0 0 1px rgba(212,180,110,.55) inset, 0 0 30px -8px var(--brass-glow);}

/* ---------- stamps become glowing pills ---------- */
.stamp{border-radius:99px; border:0 !important; padding:8px 14px; font-size:.64rem; background:rgba(173,189,130,.04); box-shadow:0 0 0 1px var(--line-2) inset;}
.stamp::before{box-shadow:0 0 10px var(--rust); animation:skin-pulse 2.6s ease-in-out infinite;}
.stamp-brass{background:rgba(212,180,110,.05); box-shadow:0 0 0 1px rgba(212,180,110,.4) inset;}
.stamp-brass::before{box-shadow:0 0 10px var(--brass);}
@keyframes skin-pulse{50%{opacity:.45;}}

/* ---------- photos melt into the dark ---------- */
.hero-photo{border:0; padding:0; background:none; max-width:820px;}
.hero-photo img{--fx:linear-gradient(90deg,transparent,#000 14%,#000 86%,transparent); --fy:linear-gradient(180deg,transparent,#000 12%,#000 80%,transparent);
  -webkit-mask-image:var(--fx),var(--fy); -webkit-mask-composite:source-in; mask-image:var(--fx),var(--fy); mask-composite:intersect; filter:saturate(.9) contrast(1.06);}
.hero-photo::after{display:none;}
.about-photo-frame{border:0; padding:0; border-radius:var(--r-xl); overflow:hidden; position:relative; box-shadow:0 0 0 1px var(--line) , 0 40px 80px -30px #000;}
.about-photo-frame img{filter:saturate(.85) contrast(1.05);}
.about-photo-frame::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 60%,rgba(21,25,15,.85)); pointer-events:none;}
.service-visual{border:0; padding:0; background:none; border-radius:var(--r-xl); max-width:640px; overflow:visible;}
.service-visual img{border-radius:var(--r-xl); --fx:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent); --fy:linear-gradient(180deg,transparent,#000 12%,#000 82%,transparent);
  -webkit-mask-image:var(--fx),var(--fy); -webkit-mask-composite:source-in; mask-image:var(--fx),var(--fy); mask-composite:intersect;}
.service-visual::after{display:none;}

/* ---------- panels: rounded glass with hairline + cursor light ---------- */
.svc, .ptier, .consult-banner, .manifest, .service-price-box, .punchcard, .review-card, .acct-modal, .ticket-card, #reviewForm, .rewards-cta, #reviews > .wrap > div[style*="max-width:560px"]{
  border-radius:var(--r-lg); border:0 !important;
  background:linear-gradient(180deg,rgba(236,231,214,.03),rgba(236,231,214,.008)), var(--panel) !important;
  box-shadow:0 0 0 1px var(--line) inset, 0 1px 0 rgba(236,231,214,.04) inset, 0 30px 60px -30px rgba(0,0,0,.8);}
.svc::after, .ptier::after, .mstep::after, .service-price-box::after{border-radius:inherit;
  background:radial-gradient(360px circle at var(--mx,50%) var(--my,50%), rgba(212,180,110,.13), transparent 55%) !important;}
.services-grid{background:none; border:0; gap:14px;}
.svc{padding:30px 26px 28px; border-top:0 !important; overflow:hidden;}
.svc:hover{background:linear-gradient(180deg,rgba(221,106,63,.06),rgba(236,231,214,.01)), var(--panel) !important;}
.tag{border-radius:99px; border:0; padding:5px 11px; box-shadow:0 0 0 1px var(--line-2) inset; font-size:.62rem;}
.svc h3{font-size:1.3rem; text-transform:uppercase; letter-spacing:.02em;}
.svc .arrow{display:inline-flex; align-items:center; gap:8px;}
.svc:hover .arrow{color:var(--rust); text-shadow:0 0 18px var(--rust-glow);}

/* rotating light ring: featured cards + hovered cards */
@property --ang{syntax:'<angle>'; inherits:false; initial-value:0deg;}
.ring{position:absolute; inset:0; border-radius:inherit; padding:1px; pointer-events:none; z-index:3; opacity:0; transition:opacity .4s;
  background:conic-gradient(from var(--ang),transparent 0 58%,rgba(221,106,63,.95) 74%,rgba(240,205,150,.95) 80%,transparent 92%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0); -webkit-mask-composite:xor;
  mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0); animation:skin-spin 5s linear infinite;}
.ptier.feat .ring, .consult-banner .ring, .svc:hover .ring, .ptier:hover .ring, .service-price-box .ring, .rewards-cta .ring{opacity:1;}
@keyframes skin-spin{to{--ang:360deg;}}
.ptier.feat{background:linear-gradient(180deg,rgba(221,106,63,.09),rgba(236,231,214,.01) 50%), var(--panel) !important;}

/* ---------- challenge coins: glow + circling light ---------- */
.coin-face{box-shadow:0 0 0 1px rgba(212,180,110,.25) inset, 0 18px 40px -12px rgba(0,0,0,.9), 0 0 50px -18px var(--brass-glow);
  background:radial-gradient(circle at 35% 28%, var(--panel-2), var(--panel) 75%);}
.coin-face.front{border:2px solid rgba(212,180,110,.7);}
.coin-face.back{border:2px solid rgba(173,189,130,.6);}
.coin-stat{text-shadow:0 0 28px var(--brass-glow);}
.coin{border-radius:50%;}
.coin::before{content:""; position:absolute; inset:-8px; border-radius:50%; padding:1.5px; pointer-events:none; opacity:.35; transition:opacity .4s;
  background:conic-gradient(from var(--ang),transparent 0 55%,rgba(212,180,110,.95) 75%,rgba(255,230,180,.95) 80%,transparent 92%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0); -webkit-mask-composite:xor;
  mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0); animation:skin-spin 4.5s linear infinite;}
.coin:hover::before, .coin.flipped::before, .coin:focus-visible::before{opacity:1; filter:drop-shadow(0 0 8px var(--brass-glow));}
.coin-caption{letter-spacing:.08em;}

/* ---------- manifest / how it works ---------- */
.manifest{overflow:hidden;}
.manifest-head{border-bottom:1px solid var(--line); color:var(--brass);}
.mstep{border-right:1px solid var(--line); padding:30px 26px;}
.mstep .mn{font-size:2.6rem; -webkit-text-stroke:1px rgba(173,189,130,.55); transition:text-shadow .3s, -webkit-text-stroke-color .3s;}
.mstep:hover .mn{-webkit-text-stroke-color:var(--rust); text-shadow:0 0 30px var(--rust-glow);}

/* ---------- pricing ---------- */
.pricing-grid{gap:14px;}
.ptier{padding:30px 26px 26px; overflow:visible;}
.ptier .price, .consult-price .price, .service-price-box .price{color:var(--brass); text-shadow:0 0 34px var(--brass-glow); font-size:2.4rem;}
.ptier li{border-top:1px solid var(--line);}
.consult-banner{padding:30px 32px; position:relative;}
.consult-icon{border-radius:18px; border:0; width:64px; height:64px; font-size:1.3rem; box-shadow:0 0 0 1px rgba(212,180,110,.5) inset, 0 0 30px -8px var(--brass-glow);
  background:radial-gradient(circle at 50% 30%,rgba(212,180,110,.14),transparent 70%);}
table{border-collapse:collapse;}

/* ---------- rewards punch card ---------- */
.punchcard{padding:30px 28px;}
.punch{border-width:1.5px;}
.punch.filled{box-shadow:0 0 18px var(--brass-glow); border-style:solid;}
.punchcard .perk{border-top:1px solid var(--line);}
.rewards-cta{position:relative;}

/* ---------- FAQ ---------- */
.faq-item{border-bottom:1px solid var(--line);}
.faq-item summary{padding:22px 4px; font-size:1.05rem; letter-spacing:.02em;}
.faq-item summary::after{width:28px; height:28px; border-radius:50%; display:grid; place-items:center; font-size:1rem; box-shadow:0 0 0 1px var(--line-2) inset; transition:transform .3s var(--ease), box-shadow .3s;}
.faq-item[open] summary::after{box-shadow:0 0 0 1px var(--rust) inset, 0 0 16px var(--rust-glow);}
.faq-item p{animation:skin-open .35s var(--ease);}
@keyframes skin-open{from{opacity:0; transform:translateY(-3px); filter:blur(1.5px);}}

/* ---------- reviews ---------- */
.review-card{padding:24px;}
.review-card .stars{text-shadow:0 0 16px var(--brass-glow);}
.review-card img{border-radius:var(--r);}

/* ---------- contact / dog tag ---------- */
.dogtag{border-radius:var(--r-xl); background:linear-gradient(160deg,#39432a,#252c1a) !important;
  box-shadow:0 0 0 1px rgba(173,189,130,.28) inset, 0 1px 0 rgba(236,231,214,.08) inset, 0 40px 80px -30px #000, 0 0 60px -30px var(--field-glow);}
.dogtag .dt-row{border-bottom:1px solid rgba(236,231,214,.08);}

/* ---------- forms ---------- */
input, select, textarea{border-radius:var(--r-sm); border:1px solid var(--line-2) !important; background:var(--panel) !important; transition:border-color .25s, box-shadow .25s;}
input:focus, select:focus, textarea:focus{border-color:var(--rust) !important; box-shadow:0 0 0 4px rgba(221,106,63,.13), 0 0 30px -8px var(--rust-glow);}
input[type=checkbox]{accent-color:var(--rust);}
input[type=file]{padding:10px !important;}
input[type=file]::file-selector-button{font:600 .72rem 'Oswald',sans-serif; letter-spacing:.08em; text-transform:uppercase; color:var(--paper); background:rgba(236,231,214,.06); border:0; border-radius:99px; padding:8px 14px; margin-right:12px; cursor:pointer;}
.submit-btn{padding:16px;}
#contactForm, #reviewForm{gap:18px;}
#reviewForm{padding:0; background:none !important; box-shadow:none;}

/* ---------- account modal ---------- */
.acct-overlay{background:rgba(10,12,7,.72); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);}
.acct-overlay.open .acct-modal{animation:skin-pop .35s var(--ease);}
@keyframes skin-pop{from{opacity:0; transform:translateY(6px) scale(.99); filter:blur(2px);}}
.acct-modal{border-radius:var(--r-xl); background:linear-gradient(180deg,rgba(236,231,214,.04),rgba(236,231,214,.01)), var(--panel-2) !important;
  box-shadow:0 0 0 1px rgba(212,180,110,.35) inset, 0 50px 100px -30px #000, 0 0 80px -40px var(--brass-glow);}
.acct-tabs{border:0; border-radius:99px; padding:4px; box-shadow:0 0 0 1px var(--line-2) inset;}
.acct-tab{border-radius:99px; transition:background .25s, color .25s;}
.acct-tab.active{background:rgba(173,189,130,.16); color:var(--paper);}
.acct-close{width:36px; height:36px; border-radius:50%; box-shadow:0 0 0 1px var(--line-2) inset; font-size:1.1rem;}
.rank-badge{border-radius:99px; box-shadow:0 0 20px var(--brass-glow);}
.progress-track{border:0; border-radius:99px; background:var(--bg); box-shadow:0 0 0 1px var(--line) inset; overflow:hidden;}
.progress-fill{border-radius:99px; background:linear-gradient(90deg,var(--rust),#f0a06f); box-shadow:0 0 14px var(--rust-glow);}
.step.completed .step-dot{box-shadow:0 0 12px var(--brass-glow);}
.step.active .step-dot{box-shadow:0 0 16px var(--rust-glow);}

/* ---------- service pages ---------- */
.service-hero{padding:96px 24px 40px; border-bottom:0; position:relative;}
.included-list li{border-top:1px solid var(--line);}
.included-list li::before{text-shadow:0 0 12px var(--brass-glow);}
.service-price-box{padding:30px; max-width:420px;}

/* ---------- footer + RallyPoint watermark ---------- */
footer{border-top:1px solid var(--line); padding:64px 24px 40px;}
.foot-mark{max-width:1160px; margin:56px auto 0; text-align:center; user-select:none; pointer-events:none;
  font:700 clamp(3.6rem,1rem + 12vw,11.5rem)/.8 'Oswald',sans-serif; text-transform:uppercase; letter-spacing:.01em;
  background:linear-gradient(180deg,rgba(173,189,130,.14),transparent 85%); -webkit-background-clip:text; background-clip:text; color:transparent;}
.foot-social a{width:40px; height:40px; border-radius:50%; justify-content:center; align-items:center; box-shadow:0 0 0 1px var(--line-2) inset; transition:box-shadow .25s, color .25s;}
.foot-social a:hover{box-shadow:0 0 0 1px var(--brass) inset, 0 0 20px -4px var(--brass-glow);}
.back-to-top{box-shadow:0 0 0 1px rgba(255,170,130,.35) inset, 0 10px 30px -8px var(--rust-glow);}

/* ---------- scrollbar + selection in the new depth ---------- */
html{scrollbar-color:var(--moss) var(--bg);}
::-webkit-scrollbar-thumb{background:var(--moss);}

/* ---------- blur-in reveal ---------- */
.reveal{opacity:0; transform:translateY(10px); filter:blur(3px); transition:opacity .6s var(--ease), transform .6s var(--ease), filter .6s var(--ease) !important; transition-delay:var(--d,0s) !important;}
.reveal.in{opacity:1; transform:none; filter:none;}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1; transform:none; filter:none;}
  .ring, .coin::before, .stamp::before{animation:none;}
  .faq-item p, .acct-overlay.open .acct-modal{animation:none;}
}

/* ---------- phones ---------- */
@media (max-width:860px){
  header{top:10px; margin:10px 10px 0;}
  header nav{height:auto; min-height:58px; flex-wrap:nowrap; border-radius:29px; padding:8px 8px 8px 14px; row-gap:0;}
  .logo-word{font-size:1.05rem;}
  header nav > div:last-of-type{margin-left:auto;}
  .navcta, #accountBtn{padding:9px 12px; font-size:.66rem;}
  .navlinks{position:absolute; top:calc(100% + 8px); left:0; right:0; width:auto; flex-direction:column; align-items:stretch; gap:2px; padding:10px;
    border-radius:var(--r-lg); border-top:0; background:var(--panel-2); box-shadow:0 0 0 1px var(--line-2) inset, 0 30px 60px -10px #000;}
  .navlinks a{padding:14px 16px; font-size:.82rem; color:var(--paper); border-radius:var(--r);}
  .section{padding:76px 20px;}
  .services-grid{gap:12px;}
  .mstep{border-right:0; border-bottom:1px solid var(--line);}
  .foot-mark{margin-top:36px;}
  .consult-banner{padding:24px 20px;}
  #contactForm{border-radius:var(--r-lg); background:var(--panel) !important; border:0 !important; box-shadow:0 0 0 1px var(--line) inset;}
}
@media (max-width:420px){
  .logo-word{display:none;}
}
header nav{position:relative;}
#about .local-kicker{font-size:.78rem; letter-spacing:.12em; color:var(--field); text-transform:uppercase; background:none; -webkit-text-fill-color:var(--field);}
