/* pelleforsman.com preview — shared design system (gradient-rich olive/cream/gold) */
:root{
  --olive:#2C2F24;--olive-2:#343829;--olive-3:#3F4433;--olive-deep:#20231A;
  --cream:#EAE3D3;--cream-2:#DED3BE;--ink-on-cream:#26291D;
  --gold:#C2A05A;--gold-soft:#D2B876;--gold-deep:#9a7a3c;--ink:#191C14;
  --muted-d:rgba(237,230,214,.6);--muted-l:rgba(25,28,20,.6);
  --line-d:rgba(237,230,214,.14);--line-l:rgba(25,28,20,.12);
  --ease:cubic-bezier(.22,.61,.36,1);--maxw:1180px;
  --grad-warm:linear-gradient(135deg,#3C4130,#282B21 60%);
  --grad-gold:linear-gradient(120deg,var(--gold-soft),var(--gold) 55%,var(--gold-deep));
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:"Inter",system-ui,sans-serif;color:var(--cream);-webkit-font-smoothing:antialiased;line-height:1.6;overflow-x:hidden;
  background:#20231A;
}
/* gradient mesh on a FIXED layer — painted once, GPU-composited, never repaints on scroll
   (replaces background-attachment:fixed, which was repainting 4 radials every scroll frame) */
body::before{
  content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:
    radial-gradient(1100px 760px at 84% -8%,rgba(194,160,90,.20),transparent 58%),
    radial-gradient(900px 720px at 6% 12%,rgba(76,81,57,.55),transparent 55%),
    radial-gradient(1000px 900px at 50% 108%,rgba(194,160,90,.10),transparent 60%),
    linear-gradient(180deg,#20231A,#282B21 42%,#20231A);
}
.serif{font-family:"Fraunces",Georgia,serif;font-weight:500;letter-spacing:-.01em;line-height:1.04}
.mono{font-family:"JetBrains Mono",monospace}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px;width:100%}
a{color:inherit;text-decoration:none}
.grad-text{background:linear-gradient(100deg,var(--cream) 34%,var(--gold));-webkit-background-clip:text;background-clip:text;color:transparent}
.label{font-size:12px;letter-spacing:.28em;text-transform:uppercase;font-weight:600;color:var(--gold);display:inline-flex;align-items:center;gap:12px}
.label::before{content:"";width:26px;height:1px;background:var(--gold);opacity:.7}
.eyebrow-dot{width:7px;height:7px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 0 rgba(194,160,90,.5);animation:pulse 2.4s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(194,160,90,.5)}70%{box-shadow:0 0 0 8px rgba(194,160,90,0)}100%{box-shadow:0 0 0 0 rgba(194,160,90,0)}}

/* texture overlays */
.grain,.vignette{position:fixed;inset:0;pointer-events:none;z-index:60}
.vignette{background:radial-gradient(120% 92% at 50% 36%,transparent 52%,rgba(0,0,0,.46) 100%)}
/* grain: no mix-blend-mode (it forced a full-screen composite every scroll frame) — plain low-opacity texture */
.grain{opacity:.03;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.progress{position:fixed;top:0;left:0;height:2px;background:var(--grad-gold);width:0;z-index:70;box-shadow:0 0 12px rgba(194,160,90,.7)}

/* boot */
#boot{position:fixed;inset:0;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;transition:transform 1s var(--ease),opacity .6s ease;
  background:radial-gradient(700px 500px at 50% 42%,#33372A,#20231A)}
#boot.done{transform:translateY(-100%);opacity:0;pointer-events:none}
#boot svg{width:64px;height:64px}
#boot svg line{stroke:var(--gold);stroke-width:2.4;stroke-linecap:round;stroke-dasharray:26;stroke-dashoffset:26;animation:draw .7s var(--ease) forwards}
#boot svg line:nth-child(2){animation-delay:.08s}#boot svg line:nth-child(3){animation-delay:.16s}#boot svg line:nth-child(4){animation-delay:.24s}#boot svg line:nth-child(5){animation-delay:.32s}#boot svg line:nth-child(6){animation-delay:.4s}#boot svg line:nth-child(7){animation-delay:.48s}
@keyframes draw{to{stroke-dashoffset:0}}
#boot .bstat{font-family:"JetBrains Mono",monospace;font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--muted-d)}
#boot .bstat b{color:var(--gold)}

/* nav */
header.nav{position:fixed;top:0;left:0;right:0;z-index:50;transition:background .4s var(--ease),backdrop-filter .4s,border-color .4s}
header.nav.scrolled{background:rgba(32,35,26,.72);backdrop-filter:blur(14px);border-bottom:1px solid var(--line-d)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:74px}
.brand{display:flex;align-items:center;gap:11px;font-family:"Fraunces",serif;font-size:17px;font-weight:600}
.mark{width:26px;height:26px;flex:0 0 auto}.mark line{stroke:var(--gold);stroke-width:1.5;stroke-linecap:round}
.nav-right{display:flex;align-items:center;gap:30px}
.nav-links{display:flex;gap:26px;font-size:14px;color:var(--muted-d)}
.nav-links a{transition:color .25s;position:relative}
.nav-links a:hover,.nav-links a.active{color:var(--cream)}
.nav-links a.active::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:1px;background:var(--grad-gold)}
.status{display:flex;align-items:center;gap:8px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-d)}
@media(max-width:820px){.nav-links,.status{display:none}}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:9px;padding:14px 24px;border-radius:999px;font-size:14px;font-weight:600;transition:transform .3s var(--ease),box-shadow .3s,background .3s,color .3s,border-color .3s}
.btn-primary{background:var(--grad-gold);color:var(--ink);box-shadow:0 10px 30px -12px rgba(194,160,90,.6)}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 16px 36px -12px rgba(194,160,90,.8)}
.btn-ghost{border:1px solid var(--line-d);color:var(--cream)}
.btn-ghost:hover{border-color:var(--gold);color:var(--gold)}

/* gradient-border card */
.card{position:relative;border-radius:20px;background:linear-gradient(180deg,rgba(60,65,48,.5),rgba(40,43,33,.62));overflow:hidden;transition:transform .5s var(--ease)}
.card::before{content:"";position:absolute;inset:0;border-radius:20px;padding:1px;background:linear-gradient(140deg,rgba(194,160,90,.55),rgba(237,230,214,.05) 55%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;transition:opacity .4s}
.card:hover{transform:translateY(-8px)}
.card .glow{position:absolute;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(194,160,90,.28),transparent 65%);top:-70px;right:-60px;filter:blur(6px);opacity:.7;pointer-events:none}

/* footer */
footer{background:linear-gradient(180deg,transparent,var(--olive-deep) 40%);padding:88px 0 42px;position:relative;z-index:2}
.foot-cta{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;flex-wrap:wrap;border-bottom:1px solid var(--line-d);padding-bottom:44px}
.foot-cta h2{font-family:"Fraunces",serif;font-size:clamp(26px,3.4vw,42px);font-weight:500;max-width:14ch}
.sub-form{display:flex;gap:10px;flex-wrap:wrap}
.sub-form input{background:rgba(237,230,214,.04);border:1px solid var(--line-d);border-radius:999px;padding:13px 20px;color:var(--cream);font-size:14px;min-width:220px;font-family:inherit}
.sub-form input::placeholder{color:var(--muted-d)}
.foot-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:30px;font-size:13px;color:var(--muted-d);flex-wrap:wrap;gap:16px}
.foot-bottom a:hover{color:var(--gold)}
.foot-brand{display:flex;align-items:center;gap:10px}

/* live ops ticker */
.ticker{border-top:1px solid var(--line-d);background:linear-gradient(180deg,transparent,rgba(25,28,20,.5));backdrop-filter:blur(8px)}
.ticker-inner{max-width:var(--maxw);margin:0 auto;padding:0 32px;display:flex;align-items:center;gap:16px;font-family:"JetBrains Mono",monospace;font-size:12px;color:var(--muted-d);height:44px;overflow:hidden}
.ticker .tag{color:var(--gold);letter-spacing:.1em;white-space:nowrap;display:inline-flex;align-items:center;gap:7px}
.ticker .feed{position:relative;flex:1;height:18px;overflow:hidden}
.ticker .feed span{position:absolute;left:0;white-space:nowrap}

/* reveal */
[data-reveal]{opacity:0;transform:translateY(26px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
[data-reveal].in{opacity:1;transform:none}
.d1{transition-delay:.08s}.d2{transition-delay:.16s}.d3{transition-delay:.24s}.d4{transition-delay:.32s}.d5{transition-delay:.4s}

@media(prefers-reduced-motion:reduce){
  [data-reveal]{opacity:1!important;transform:none!important;transition:none!important}
  .eyebrow-dot,.progress{animation:none!important}
  #boot{display:none!important}
  *{scroll-behavior:auto!important}
}
