/* ============================================================
   Diskflight.no — shared design system (extracted from the app)
   Dark-first tokens, fonts, nav, footer, buttons, flight visuals.
   ============================================================ */
@import url("https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=Inter:wght@400;500;600&family=JetBrains+Mono:wght@400;500;600&display=swap");

:root{
  --bg-base:#0a0c10;--bg-app:#0f1115;--bg-panel:#1619228c;--bg-panel-solid:#14161d;
  --bg-panel-raised:#1a1d26;--bg-input:#ffffff0a;
  --line-faint:#ffffff0f;--line-soft:#ffffff1a;--line-strong:#ffffff2e;
  --text-primary:#f3f4f7;--text-secondary:#aab0bd;--text-tertiary:#6b7280;
  --accent-blue:#4d9fff;--accent-purple:#a35cff;--accent-purple-deep:#7b3fd6;
  --accent-gradient:linear-gradient(135deg,#4d9fff 0%,#a35cff 100%);
  --cad-gradient:linear-gradient(135deg,#a35cff 0%,#7b3fd6 100%);
  --level-beginner:#5eeaa0;--level-intermediate:#c8e85e;--level-advanced:#4d9fff;--level-pro:#c77dff;
  --stat-speed:#4d9fff;--stat-glide:#5eeaa0;--stat-turn:#ffb454;--stat-fade:#c77dff;
  --radius-sm:8px;--radius-md:14px;--radius-lg:22px;--radius-pill:999px;
  --font-display:"Plus Jakarta Sans","Inter",sans-serif;
  --font-body:"Inter",sans-serif;
  --font-mono:"JetBrains Mono",monospace;
  --maxw:1240px;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--bg-app);color:var(--text-primary);font-family:var(--font-body);-webkit-font-smoothing:antialiased}
body{background-image:radial-gradient(1200px 600px at 82% -12%,#4d9fff14,#0000),radial-gradient(900px 560px at -5% 12%,#a35cff10,#0000);min-height:100vh}
a{color:inherit;text-decoration:none}
button{cursor:pointer;color:inherit;background:none;border:none;font-family:inherit}
img{max-width:100%;display:block}
::selection{background:#4d9fff44}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-thumb{background:var(--line-soft);border-radius:99px}
::-webkit-scrollbar-thumb:hover{background:var(--line-strong)}
:focus-visible{outline:2px solid var(--accent-blue);outline-offset:2px;border-radius:4px}
@media (prefers-reduced-motion:reduce){*,::before,::after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px}
@media (width<=720px){.wrap{padding:0 18px}}

/* ---------- top nav ---------- */
.top-nav{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:40px;padding:16px 32px;
  border-bottom:1px solid var(--line-faint);background:#0a0c10cc;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}
.top-nav-inner{max-width:var(--maxw);margin:0 auto;width:100%;display:flex;align-items:center;gap:40px}
.top-nav-logo{display:flex;align-items:center;gap:10px;font-family:var(--font-display);font-weight:700;font-size:19px;letter-spacing:-.01em;flex-shrink:0}
.top-nav-logo svg{color:var(--accent-blue)}
.top-nav-tabs{display:flex;gap:30px;flex:1}
.top-nav-tab{font-size:14px;font-weight:600;color:var(--text-secondary);transition:color .15s}
.top-nav-tab:hover{color:var(--text-primary)}
.top-nav-tab.caddy{display:flex;align-items:center;gap:6px;background:var(--accent-gradient);-webkit-background-clip:text;background-clip:text;color:transparent;font-weight:700}
.top-nav-tab.caddy svg{color:var(--accent-purple)}
.top-nav-actions{display:flex;align-items:center;gap:14px;flex-shrink:0}
.login-btn{border-radius:var(--radius-pill);background:var(--bg-panel-raised);border:1px solid var(--line-soft);padding:9px 18px;font-size:13.5px;font-weight:600;transition:.15s}
.login-btn:hover{background:var(--bg-panel-solid);border-color:var(--line-strong)}
/* mobile hamburger (injected by brand.js) */
.nav-toggle{display:none;flex-shrink:0;width:42px;height:42px;border-radius:12px;align-items:center;justify-content:center;color:var(--text-secondary);background:var(--bg-panel-raised);border:1px solid var(--line-soft);cursor:pointer;margin-left:auto}
.nav-toggle:hover{color:var(--text-primary);border-color:var(--line-strong)}
.nav-toggle .ic-close{display:none}
.top-nav.open .nav-toggle .ic-open{display:none}
.top-nav.open .nav-toggle .ic-close{display:inline-flex}
@media (width<=820px){
  .top-nav{gap:14px;padding:12px 18px;flex-wrap:wrap}
  .nav-toggle{display:inline-flex}
  .top-nav-actions{display:none}
  .top-nav-tabs{display:none}
  .top-nav.open .top-nav-tabs{display:flex;flex-direction:column;gap:2px;flex-basis:100%;order:3;margin-top:8px;padding-top:12px;border-top:1px solid var(--line-faint)}
  .top-nav.open .top-nav-tabs .top-nav-tab{padding:12px 4px;font-size:16px;border-bottom:1px solid var(--line-faint)}
  .top-nav.open .top-nav-actions{display:flex;flex-basis:100%;order:4;gap:10px;margin-top:10px}
  .top-nav.open .top-nav-actions .login-btn,.top-nav.open .top-nav-actions .btn-primary{flex:1;text-align:center;justify-content:center;padding:12px 16px}
}

/* ---------- buttons ---------- */
.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:9px;border-radius:var(--radius-pill);
  background:var(--accent-gradient);color:#fff;padding:14px 26px;font-size:14.5px;font-weight:700;transition:transform .2s,box-shadow .2s;box-shadow:0 10px 30px -10px #4d9fffaa}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 16px 40px -10px #a35cffaa}
.btn-ghost{display:inline-flex;align-items:center;justify-content:center;gap:9px;border-radius:var(--radius-pill);
  background:var(--bg-panel-raised);border:1px solid var(--line-soft);color:var(--text-secondary);padding:14px 24px;font-size:14.5px;font-weight:600;transition:.15s}
.btn-ghost:hover{color:var(--text-primary);border-color:var(--line-strong);background:var(--bg-panel-solid)}
.btn-text{display:inline-flex;align-items:center;gap:7px;color:var(--accent-blue);font-weight:700;font-size:14px;transition:gap .2s}
.btn-text:hover{gap:11px}

.eyebrow{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent-purple);font-size:12px;font-weight:600;margin:0}

/* ---------- stat chips (flight numbers) ---------- */
.flight-chips{display:flex;gap:6px}
.flight-chip{font-family:var(--font-mono);font-size:12px;font-weight:600;border-radius:8px;padding:5px 0;width:38px;text-align:center;border:1px solid var(--line-soft);background:var(--bg-input)}
.flight-chip.speed{color:var(--stat-speed)}
.flight-chip.glide{color:var(--stat-glide)}
.flight-chip.turn{color:var(--stat-turn)}
.flight-chip.fade{color:var(--stat-fade)}

/* level pill */
.level-pill{display:inline-flex;align-items:center;gap:7px;border-radius:var(--radius-pill);font-size:11.5px;font-weight:700;padding:5px 12px;border:1px solid}
.level-pill::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.level-pill.beginner{color:var(--level-beginner);border-color:#5eeaa044;background:#5eeaa014}
.level-pill.advanced{color:var(--level-advanced);border-color:#4d9fff44;background:#4d9fff14}
.level-pill.pro{color:var(--level-pro);border-color:#c77dff44;background:#c77dff14}

/* ---------- footer ---------- */
.site-footer{border-top:1px solid var(--line-faint);margin-top:96px}
.site-footer-inner{max-width:var(--maxw);margin:0 auto;padding:56px 32px 40px;display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:40px}
.site-footer-brand .top-nav-logo{margin-bottom:14px}
.site-footer-brand p{color:var(--text-tertiary);font-size:13.5px;line-height:1.6;max-width:300px;margin:0}
.footer-col h4{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-tertiary);margin:0 0 16px;font-weight:700}
.footer-col a{display:block;color:var(--text-secondary);font-size:14px;margin-bottom:11px;transition:color .15s}
.footer-col a:hover{color:var(--text-primary)}
.site-footer-base{max-width:var(--maxw);margin:0 auto;padding:22px 32px 40px;border-top:1px solid var(--line-faint);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:center;color:var(--text-tertiary);font-size:12.5px}
.foot-share{display:inline-flex;align-items:center;gap:8px;font-family:inherit;font-size:12.5px;font-weight:600;color:var(--text-secondary);background:var(--bg-panel-raised);border:1px solid var(--line-soft);border-radius:var(--radius-pill);padding:8px 15px;cursor:pointer;transition:.15s}
.foot-share:hover{color:#fff;border-color:transparent;background:var(--cad-gradient)}
.foot-share svg{flex-shrink:0}
@media (width<=820px){.site-footer-inner{grid-template-columns:1fr 1fr;gap:32px;padding:48px 18px 32px}.site-footer-base{padding:22px 18px 40px}}

/* brand logo (injected by brand.js into .dc-logo) */
.top-nav-logo.dc-logo{padding:0;gap:0}
.top-nav-logo.dc-logo svg{height:30px;width:auto;display:block}
.site-footer-brand .dc-logo{display:block;margin-bottom:14px}
.site-footer-brand .dc-logo svg{height:30px;width:auto;display:block}
/* legal disclaimer */
.site-disclaimer{max-width:var(--maxw);margin:0 auto;padding:22px 32px 0;color:var(--text-tertiary);font-size:12px;line-height:1.6}
.site-disclaimer b{color:var(--text-secondary);font-weight:600}
@media (width<=720px){.site-disclaimer{padding:22px 18px 0}}

/* subpage hero header band (data-herobg on <body>) — featured like the front page */
body[data-herobg]{position:relative}
body[data-herobg]::before{content:"";position:absolute;top:0;left:0;right:0;height:460px;z-index:0;pointer-events:none;
  background:linear-gradient(96deg,rgba(11,13,18,.96) 0%,rgba(11,13,18,.9) 32%,rgba(11,13,18,.55) 64%,rgba(11,13,18,.3) 100%),linear-gradient(0deg,var(--bg-app) 3%,transparent 44%),url('assets/hero-discs.jpg') center 30%/cover no-repeat}
body[data-herobg] main,body[data-herobg] .site-footer{position:relative;z-index:1}

/* reveal-on-scroll helper — hidden state ONLY applies when JS opts in
   (html.js) and motion is allowed, so any no-JS / no-observer path
   shows content normally instead of trapping it at opacity:0. */
@media (prefers-reduced-motion:no-preference){
  html.js .reveal{opacity:0;transform:translateY(22px);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1)}
}
html.js .reveal.in{opacity:1;transform:none}
