/* Kingdom Culture — shared design system (extracted from index.html)
   Palette: Midnight Black #0A0F1A, royal cobalt family, icy blues.
   Radius system: buttons/pills = full, cards/media = 24px, chips = 12px. */

:root{
  --ink:       #070B14;
  --ink-soft:  #0A0F1A;
  --royal:     #1D407A;
  --cobalt:    #2E6BDB;
  --cobalt-hi: #4A83EE;
  --ice:       #C9D7F1;
  --frost:     #EEF3FE;
  --dim:       #8CA3CF;
  --glass:     rgba(201,215,241,.045);
  --glass-hi:  rgba(201,215,241,.09);
  --stroke:    rgba(201,215,241,.12);
  --stroke-hi: rgba(201,215,241,.28);
  --font-display: "Schibsted Grotesk", "Suisse Int'l", "Helvetica Neue", sans-serif;
  --font-body:    "Hanken Grotesk",   "Suisse Int'l", "Helvetica Neue", sans-serif;
}

*{ margin:0; padding:0; box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  background:var(--ink);
  color:var(--ice);
  font-family:var(--font-body);
  font-size:17px; line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
::selection{ background:var(--cobalt); color:#fff; }
img{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }

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

h1,h2,h3{ font-family:var(--font-display); color:var(--frost); font-weight:800; letter-spacing:-0.035em; line-height:1.06; }
h1{ font-size:clamp(38px,5.6vw,64px); }
h2{ font-size:clamp(30px,4vw,44px); }
h3{ font-size:20px; letter-spacing:-0.015em; line-height:1.25; }
.sub{ color:var(--dim); max-width:60ch; font-size:18px; }

/* Atmosphere */
.aurora{
  position:fixed; inset:0; z-index:-2; pointer-events:none;
  background:
    radial-gradient(42% 34% at 78% 6%,  rgba(46,107,219,.20), transparent 68%),
    radial-gradient(36% 30% at 8% 32%,  rgba(29,64,122,.34),  transparent 70%),
    radial-gradient(50% 42% at 52% 108%,rgba(20,77,154,.22),  transparent 72%);
}
.grain{
  position:fixed; inset:0; z-index:60; pointer-events:none; opacity:.05;
  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='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* Floating glass nav */
.navbar{ position:fixed; top:18px; left:0; right:0; z-index:50; display:flex; justify-content:center; padding:0 20px; }
.nav-pill{
  width:100%; max-width:920px;
  display:flex; align-items:center; justify-content:space-between;
  padding:10px 12px 10px 24px;
  border-radius:999px;
  background:rgba(10,15,26,.55);
  border:1px solid var(--stroke);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06), 0 20px 60px rgba(3,6,14,.6);
  backdrop-filter:blur(20px) saturate(160%);
  -webkit-backdrop-filter:blur(20px) saturate(160%);
}
.logo{
  font-family:var(--font-display);
  font-weight:800; letter-spacing:.16em; font-size:13px; color:var(--frost);
  text-transform:uppercase; display:flex; align-items:center; gap:10px;
}
.logo img{ height:38px; width:auto; }
.logo span{ color:#7FA4E4; font-weight:600; }

/* Buttons */
.btn{
  position:relative; overflow:hidden;
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  border-radius:999px; border:0; cursor:pointer;
  font-family:var(--font-body); font-weight:700; font-size:16px;
  padding:16px 34px; white-space:nowrap;
  transition:transform .18s cubic-bezier(.16,1,.3,1), box-shadow .18s ease, background .18s ease, border-color .18s ease, opacity .18s ease;
}
.btn:active{ transform:translateY(1px) scale(.98); }
.btn[disabled]{ opacity:.55; cursor:not-allowed; }
.btn-primary{
  background:linear-gradient(180deg, var(--cobalt-hi), var(--cobalt));
  color:#fff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.28), 0 14px 40px rgba(46,107,219,.38);
}
.btn-primary::after{
  content:""; position:absolute; top:0; bottom:0; left:-70%; width:44%;
  background:linear-gradient(100deg, transparent, rgba(255,255,255,.35), transparent);
  transform:skewX(-18deg);
  transition:left .5s ease;
}
.btn-primary:hover{ transform:translateY(-2px); box-shadow:inset 0 1px 0 rgba(255,255,255,.28), 0 20px 54px rgba(46,107,219,.5); }
.btn-primary:hover::after{ left:130%; }
.btn-glass{
  background:var(--glass);
  color:var(--frost);
  border:1px solid var(--stroke);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}
.btn-glass:hover{ border-color:var(--stroke-hi); background:var(--glass-hi); transform:translateY(-2px); }
.nav-pill .btn{ padding:11px 22px; font-size:14px; }

/* Glass card */
.card{
  background:var(--glass);
  border:1px solid var(--stroke);
  border-radius:24px;
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05);
}

/* Badge chip */
.badge{
  display:inline-flex; align-items:center; gap:9px;
  padding:8px 18px; border-radius:999px;
  background:var(--glass); border:1px solid var(--stroke);
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  font-size:12.5px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:#A8C1EE;
}
.badge i{
  width:7px; height:7px; border-radius:50%; background:var(--cobalt-hi);
  box-shadow:0 0 12px rgba(74,131,238,.9);
}

/* Forms */
.field{ display:grid; gap:8px; text-align:left; }
.field label{ font-size:13px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:#8FB0EA; }
.field input{
  width:100%;
  background:rgba(10,15,26,.6);
  border:1px solid var(--stroke);
  border-radius:12px;
  padding:15px 18px;
  color:var(--frost);
  font-family:var(--font-body);
  font-size:16px;
  outline:none;
  transition:border-color .2s ease, box-shadow .2s ease;
}
.field input::placeholder{ color:#5E729A; }
.field input:focus{ border-color:var(--cobalt-hi); box-shadow:0 0 0 3px rgba(46,107,219,.22); }

.notice{
  border-radius:12px; padding:13px 16px; font-size:14.5px; line-height:1.5; text-align:left;
  background:rgba(46,107,219,.12); border:1px solid rgba(127,164,228,.3); color:var(--ice);
}
.notice.err{ background:rgba(219,70,70,.1); border-color:rgba(240,120,120,.35); color:#F3C8C8; }
.notice.ok{ background:rgba(58,178,115,.1); border-color:rgba(110,208,155,.35); color:#C8EBD8; }

/* Checklist */
.includes{ list-style:none; text-align:left; display:grid; gap:14px; }
.includes li{ display:flex; gap:13px; align-items:flex-start; font-size:15.5px; color:var(--ice); }
.includes li::before{
  content:""; flex:none; width:19px; height:19px; margin-top:3px; border-radius:50%;
  background:linear-gradient(180deg, var(--cobalt-hi), var(--cobalt));
  -webkit-mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="black" d="M9.55 17.05 4.9 12.4l1.6-1.6 3.05 3.05 7.9-7.9 1.6 1.6z"/></svg>') center/contain no-repeat;
          mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="black" d="M9.55 17.05 4.9 12.4l1.6-1.6 3.05 3.05 7.9-7.9 1.6 1.6z"/></svg>') center/contain no-repeat;
}

footer.site{ border-top:1px solid var(--stroke); padding:36px 0; }
.foot{
  display:flex; justify-content:space-between; align-items:center; gap:20px; flex-wrap:wrap;
  font-size:13.5px; color:#66799E;
}
.foot a:hover{ color:var(--ice); }

/* Reveal motion */
.rv{
  opacity:0; transform:translateY(30px); filter:blur(6px);
  transition:opacity .8s cubic-bezier(.16,1,.3,1), transform .8s cubic-bezier(.16,1,.3,1), filter .8s cubic-bezier(.16,1,.3,1);
}
.rv.in{ opacity:1; transform:none; filter:none; }
.rv.d1{ transition-delay:.09s; } .rv.d2{ transition-delay:.18s; } .rv.d3{ transition-delay:.27s; }

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  .rv{ opacity:1; transform:none; filter:none; transition:none; }
  .btn, .btn:hover{ transition:none; transform:none; }
  .btn-primary::after{ display:none; }
}
