/*
  loiko.com — shared design system
  Tokens, reset, buttons, nav, ambient backgrounds, reveal-on-scroll, a11y.
  Loaded by every page BEFORE the page's own <style> block, so page styles
  can still override specifics (hero layout, forms, galleries, etc).

  Shared breakpoints used across pages: 480 / 640 / 860 / 900px.
*/

:root{
  --bg:#0E0E0E;--bg2:#151515;--panel:#1A1A1A;--text:#EDEAE3;--muted:#97948D;
  --accent:#C2410C;--accent-soft:rgba(194,65,12,.16);
  --line:rgba(255,255,255,.08);--line2:rgba(255,255,255,.14);

  /* spacing scale — tightened for a denser layout rhythm */
  --sp-1:6px;--sp-2:10px;--sp-3:14px;--sp-4:20px;--sp-5:28px;--sp-6:36px;--sp-7:48px;--sp-8:64px;

  /* type scale (display headings) — sized down from the Bebas Neue values since
     Unbounded is a much wider/heavier face at the same font-size */
  --fs-hero:clamp(2.6rem,6vw,4.6rem);
  --fs-page-title:clamp(2rem,5vw,3rem);
  --fs-section:clamp(1.6rem,3.4vw,2.4rem);
  --fs-name:clamp(1.8rem,4vw,2.4rem);
}

*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{scroll-behavior:smooth;scrollbar-gutter:stable}
body{background:var(--bg);color:var(--text);font-family:'Inter',sans-serif;line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button{font:inherit;background:none;border:none;cursor:pointer;color:inherit}

.wrap{max-width:1200px;margin:0 auto;padding:0 24px}
.wrap-wide{max-width:1200px;margin:0 auto;padding:0 24px}

.display{font-family:'Unbounded',sans-serif;font-weight:900;letter-spacing:-.01em;line-height:1.05}
.label{font-family:'Oswald',sans-serif;font-weight:500;text-transform:uppercase;letter-spacing:.35em;font-size:13px;color:var(--accent)}
h2.sec{font-family:'Oswald',sans-serif;font-weight:600;text-transform:uppercase;letter-spacing:.02em;font-size:var(--fs-section);line-height:1.05;margin:14px 0 0}

/* ============ BUTTONS ============ */
@property --ang{syntax:"<angle>";initial-value:0deg;inherits:false}
@keyframes spinAng{to{--ang:360deg}}
@keyframes pulseGlow{0%,100%{box-shadow:0 0 14px rgba(194,65,12,.28)}50%{box-shadow:0 0 22px rgba(194,65,12,.50)}}

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  font-family:'Oswald',sans-serif;font-weight:500;text-transform:uppercase;letter-spacing:.1em;font-size:14px;
  padding:14px 26px;border-radius:40px;cursor:pointer;
  position:relative;overflow:hidden;isolation:isolate;
  background:rgba(255,255,255,.03);border:1px solid var(--line2);color:var(--text);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  transition:transform .2s ease,background .25s ease,border-color .25s ease,box-shadow .25s ease,color .25s ease;
}
/* hollow "glass" hover shimmer — a soft orange light sweeps across on hover */
.btn::after{
  content:"";position:absolute;top:0;left:-75%;width:45%;height:100%;z-index:1;pointer-events:none;
  background:linear-gradient(120deg,transparent,rgba(255,158,68,.55),transparent);
  transform:skewX(-20deg);transition:left .65s ease;
}
.btn:hover::after{left:130%}

/* .btn-primary — the ONE animated CTA allowed per screen: soft ambient pulse + rotating beam, hollow glass fill */
.btn-primary{background:rgba(194,65,12,.10);border-color:var(--accent);animation:pulseGlow 3.6s ease-in-out infinite}
.btn-primary::before{
  content:"";position:absolute;inset:-1.5px;border-radius:inherit;padding:1.5px;z-index:-1;
  background:conic-gradient(from var(--ang),transparent 55%,rgba(255,158,68,.95) 78%,#ffe3c2 88%,rgba(255,158,68,.95) 96%,transparent 100%);
  -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,linear-gradient(#000 0 0);mask-composite:exclude;
  animation:spinAng 3.2s linear infinite;
}
.btn-primary:hover{transform:translateY(-2px);background:rgba(194,65,12,.22);color:#fff;box-shadow:0 0 30px rgba(194,65,12,.55)}
.btn-primary:disabled{opacity:.6;cursor:default;transform:none}

/* .btn-secondary — hollow, static border (hover-only feedback). Use for repeated / non-primary CTAs. */
.btn-secondary{background:rgba(194,65,12,.08);border-color:var(--accent);box-shadow:0 0 14px rgba(194,65,12,.12)}
.btn-secondary:hover{transform:translateY(-2px);background:rgba(194,65,12,.20);color:#fff;box-shadow:0 0 26px rgba(194,65,12,.4)}

/* .btn-ghost — most neutral outline, border only picks up accent on hover */
.btn-ghost{background:transparent;color:var(--text);border-color:var(--line2)}
.btn-ghost:hover{border-color:var(--accent);background:rgba(194,65,12,.10);color:#fff}

/* .btn-fire — hollow glass CTA for funnel pages (masterclass-realism / thank-you) */
.btn-fire{
  font-weight:600;background:rgba(194,65,12,.10);
  -webkit-backdrop-filter:blur(10px) saturate(160%);backdrop-filter:blur(10px) saturate(160%);
  border:1px solid rgba(194,65,12,.6);
  box-shadow:0 0 22px rgba(194,65,12,.22);
}
.btn-fire::before{
  content:"";position:absolute;inset:-1.5px;border-radius:inherit;padding:1.5px;z-index:-1;
  background:conic-gradient(from var(--ang),transparent 55%,rgba(255,180,110,.9) 78%,#ffe3c2 88%,rgba(194,65,12,.9) 96%,transparent 100%);
  -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,linear-gradient(#000 0 0);mask-composite:exclude;
  animation:spinAng 3.2s linear infinite;
}
.btn-fire:hover{transform:translateY(-2px);background:rgba(194,65,12,.24);box-shadow:0 0 36px rgba(194,65,12,.5);border-color:var(--accent)}

/* ============ AMBIENT BACKGROUND GLOW (index / full / masterclasses / zapys) ============ */
.bg-fx{position:fixed;inset:0;z-index:-2;pointer-events:none;overflow:hidden}
.bg-fx i{position:absolute;display:block;border-radius:50%;filter:blur(60px)}
.bg-fx i:nth-child(1){width:800px;height:800px;top:-250px;left:50%;transform:translateX(-50%);background:radial-gradient(circle,rgba(194,65,12,.28),transparent 65%);animation:breathe 9s ease-in-out infinite}
.bg-fx i:nth-child(2){width:560px;height:560px;top:32%;left:-180px;background:radial-gradient(circle,rgba(194,65,12,.16),transparent 70%);animation:drift1 24s ease-in-out infinite}
.bg-fx i:nth-child(3){width:520px;height:520px;bottom:-160px;right:-160px;background:radial-gradient(circle,rgba(194,65,12,.15),transparent 70%);animation:drift2 28s ease-in-out infinite}
@keyframes breathe{0%,100%{opacity:.85;transform:translateX(-50%) scale(1)}50%{opacity:1;transform:translateX(-50%) scale(1.08)}}
@keyframes drift1{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(60px,40px) scale(1.12)}}
@keyframes drift2{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-50px,-30px) scale(1.1)}}

/* ============ FLAME BACKGROUND (masterclass-realism / thank-you funnel pages) ============ */
.page-bg{position:fixed;inset:0;z-index:-1;overflow:hidden;background:
    radial-gradient(120% 80% at 72% 16%,rgba(194,65,12,.16),transparent 60%),
    radial-gradient(110% 100% at 18% 90%,rgba(115,45,10,.14),transparent 62%),
    linear-gradient(155deg,#160b0d 0%,#0E0E0E 62%)}
.page-bg i{position:absolute;border-radius:50%;filter:blur(64px);mix-blend-mode:screen}
.page-bg i:nth-child(1){width:520px;height:620px;left:7%;bottom:-220px;background:radial-gradient(circle,rgba(194,65,12,.30),transparent 66%);animation:flame 7s ease-in-out infinite}
.page-bg i:nth-child(2){width:460px;height:560px;left:40%;bottom:-250px;background:radial-gradient(circle,rgba(194,65,12,.26),transparent 66%);animation:flame 9s ease-in-out infinite .6s}
.page-bg i:nth-child(3){width:500px;height:640px;right:6%;bottom:-230px;background:radial-gradient(circle,rgba(174,60,10,.26),transparent 66%);animation:flame 8s ease-in-out infinite 1.2s}
@keyframes flame{0%,100%{transform:translateY(0) scale(1);opacity:.42}30%{transform:translateY(-44px) scale(1.06);opacity:.62}55%{transform:translateY(-74px) scale(.96);opacity:.5}80%{transform:translateY(-32px) scale(1.04);opacity:.56}}

.topbar{position:fixed;top:0;left:0;right:0;z-index:30;background:transparent;border-bottom:1px solid transparent;transition:background .3s ease,-webkit-backdrop-filter .3s ease,backdrop-filter .3s ease,border-color .3s ease}
.topbar.scrolled{background:rgba(14,14,14,.7);-webkit-backdrop-filter:blur(20px) saturate(160%);backdrop-filter:blur(20px) saturate(160%);border-bottom-color:rgba(255,255,255,.08)}
.topbar .row{display:flex;align-items:center;justify-content:space-between;padding:24px 0}

/* ============ HEADER / NAV (index / full / masterclasses / zapys) ============ */
header{position:sticky;top:0;z-index:50;background:rgba(14,14,14,.7);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
nav{display:flex;align-items:center;justify-content:space-between;height:70px}
.brand{font-family:'Poppins',sans-serif;font-weight:800;font-size:20px;letter-spacing:0;color:var(--text);text-transform:lowercase}
.brand span{color:var(--accent)}
.nav-links{display:flex;align-items:center;gap:6px;position:relative}
.nav-links a{position:relative;z-index:1;font-family:'Oswald',sans-serif;text-transform:uppercase;letter-spacing:.14em;font-size:13px;color:var(--muted);transition:color .2s;padding:11px 16px;border-radius:20px}
.nav-links a:hover{color:var(--text)}
.nav-links a.active{color:var(--text);background:var(--accent-soft);border:1px solid rgba(194,65,12,.55);box-shadow:0 0 16px rgba(194,65,12,.3)}
.nav-ind{position:absolute;top:50%;left:0;width:0;height:36px;transform:translateY(-50%);border-radius:20px;background:var(--accent-soft);border:1px solid rgba(194,65,12,.55);box-shadow:0 0 16px rgba(194,65,12,.3);opacity:0;pointer-events:none;z-index:0;transition:left .38s cubic-bezier(.4,0,.2,1),width .38s cubic-bezier(.4,0,.2,1),opacity .3s}
.burger{display:none;background:none;border:0;color:var(--text);font-size:26px;cursor:pointer}

/* ============ SCROLL REVEAL ============ */
.reveal{opacity:0;transform:translateY(40px);transition:opacity .7s ease,transform .7s ease}
.reveal.in{opacity:1;transform:none}

/* ============ FOOTER (shared base — text-align set per page) ============ */
footer{border-top:1px solid var(--line);padding:40px 0}
footer .brand,footer .logo{margin-bottom:10px;display:inline-block}
footer p{color:var(--muted);font-size:13px;margin-top:10px}

/* ============ ACCESSIBILITY ============ */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{
  outline:2px solid var(--accent);outline-offset:3px;border-radius:inherit;
}

@media(prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  .btn-primary,.btn-primary::before,.btn-fire::before,.bg-fx i,.page-bg i{animation:none}
}

@media(max-width:900px){
  .nav-links,.nav-cta{display:none}
  .nav-ind{display:none}
  .burger{display:block}
  .nav-links.open{display:flex;position:absolute;top:70px;left:0;right:0;flex-direction:column;gap:0;background:var(--bg2);border-bottom:1px solid var(--line);padding:10px 24px 20px}
  .nav-links.open a{padding:14px 0;border-bottom:1px solid var(--line);font-size:15px}
}

@media(max-width:640px){
  .bg-fx i{filter:blur(40px)}
  .page-bg i{filter:blur(44px)}
  .wrap,.wrap-wide{padding:0 28px}
}
