/* AFS Paper Airplanes — website
   Flight Manual aesthetic, carried over from the PaperPilot app stylesheet. */

/* ---------- Fonts ---------- */
@font-face{font-family:'Geist';font-style:normal;font-weight:100 900;font-display:swap;src:url('fonts/geist-variable.woff2') format('woff2');}
@font-face{font-family:'Geist Mono';font-style:normal;font-weight:100 900;font-display:swap;src:url('fonts/geist-mono-variable.woff2') format('woff2');}
@font-face{font-family:'Newsreader';font-style:normal;font-weight:200 800;font-display:swap;src:url('fonts/newsreader-latin-normal.woff2') format('woff2');}
@font-face{font-family:'Newsreader';font-style:italic;font-weight:200 800;font-display:swap;src:url('fonts/newsreader-latin-italic.woff2') format('woff2');}

/* ---------- Tokens ---------- */
:root{
  --paper:oklch(96.2% 0.012 85);
  --paper-2:oklch(94% 0.014 84);
  --paper-3:oklch(91% 0.016 82);
  --ink:oklch(22% 0.035 248);
  --ink-2:oklch(38% 0.03 248);
  --ink-3:oklch(56% 0.025 248);
  --rule:oklch(82% 0.018 80);
  --rule-soft:oklch(88% 0.014 80);
  --accent:oklch(58% 0.17 32);
  --accent-2:oklch(48% 0.16 32);
  --navy:oklch(24% 0.045 250);
  --amber:oklch(76% 0.12 80);
  --keel:oklch(82% 0.08 350);
  --tape:oklch(86% 0.10 95);

  --shadow-card:0 1px 0 rgba(20,30,55,.04),0 1px 3px rgba(20,30,55,.06),0 8px 24px -12px rgba(20,30,55,.18);
  --radius:14px;

  --font-display:'Newsreader','Iowan Old Style',Palatino,serif;
  --font-sans:'Geist',system-ui,-apple-system,'Segoe UI',sans-serif;
  --font-mono:'Geist Mono',ui-monospace,'SF Mono',Menlo,monospace;

  --maxw:1080px;
}

*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--font-sans);
  font-size:17px;
  line-height:1.6;
  color:var(--ink);
  background-color:var(--paper);
  background-image:
    linear-gradient(to right,color-mix(in oklab,var(--rule-soft) 45%,transparent) 1px,transparent 1px),
    linear-gradient(to bottom,color-mix(in oklab,var(--rule-soft) 45%,transparent) 1px,transparent 1px);
  background-size:24px 24px;
  font-feature-settings:"ss01","cv11";
}
body::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
  background-image:radial-gradient(rgba(46,40,28,.025) 1px,transparent 1px);
  background-size:7px 7px;background-position:1px 2px;opacity:.6;
}
.wrap{position:relative;z-index:1;max-width:var(--maxw);margin:0 auto;padding:0 24px;}

img{max-width:100%;height:auto;display:block;}
a{color:var(--accent-2);}

/* ---------- Header ---------- */
.site-head{
  position:sticky;top:0;z-index:30;
  background:color-mix(in oklab,var(--paper) 88%,transparent);
  backdrop-filter:saturate(140%) blur(10px);
  -webkit-backdrop-filter:saturate(140%) blur(10px);
  border-bottom:1px solid var(--rule-soft);
}
.site-head .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;height:64px;}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--ink);}
.brand img{width:30px;height:30px;border-radius:7px;}
.brand .bt{font:600 13px/1 var(--font-sans);letter-spacing:.09em;text-transform:uppercase;}
.brand .bs{display:block;font:500 9.5px/1.4 var(--font-mono);letter-spacing:.13em;color:var(--ink-3);margin-top:3px;text-transform:uppercase;}
.nav{display:flex;gap:26px;align-items:center;}
.nav a{
  font:500 11.5px/1 var(--font-mono);letter-spacing:.13em;text-transform:uppercase;
  color:var(--ink-2);text-decoration:none;padding:6px 0;border-bottom:1.5px solid transparent;
}
.nav a:hover{color:var(--accent-2);}
.nav a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--accent);}
@media (max-width:720px){
  .site-head .wrap{height:auto;flex-direction:column;align-items:flex-start;padding-top:12px;padding-bottom:10px;gap:10px;}
  .nav{gap:16px;flex-wrap:wrap;}
}

/* ---------- Type ---------- */
.kicker{
  display:block;font:500 10.5px/1 var(--font-mono);letter-spacing:.15em;
  text-transform:uppercase;color:var(--ink-3);margin-bottom:14px;
}
h1,h2,h3{font-family:var(--font-display);font-weight:500;letter-spacing:-.01em;margin:0;}
h1{font-size:clamp(38px,6vw,60px);line-height:1.06;}
h2{font-size:clamp(26px,3.4vw,36px);line-height:1.15;}
h3{font-size:21px;line-height:1.25;}
h1 em,h2 em{font-style:italic;color:var(--accent-2);}
.lede{font-size:19px;line-height:1.6;color:var(--ink-2);max-width:62ch;}
.dim{color:var(--ink-3);}
section{padding:56px 0;}
.divider{height:1px;background:var(--rule);margin:0;}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  padding:13px 20px;border-radius:11px;text-decoration:none;
  font:600 13.5px/1 var(--font-sans);letter-spacing:.01em;
  border:1px solid transparent;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease;
}
.btn:hover{transform:translateY(-1px);}
.btn--accent{background:var(--accent);color:#fff;box-shadow:0 6px 18px -8px oklch(58% 0.17 32 / .8);}
.btn--accent:hover{background:var(--accent-2);}
.btn--ghost{background:transparent;color:var(--ink);border-color:var(--rule);}
.btn--ghost:hover{border-color:var(--ink-3);}
.btn svg{width:16px;height:16px;}

/* ---------- Hero ---------- */
.hero{
  background:var(--navy);color:var(--paper);
  border-radius:22px;padding:44px;margin-top:8px;
  box-shadow:0 30px 60px -34px rgba(10,20,40,.6);
  position:relative;overflow:hidden;
}
.hero::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:
    linear-gradient(to right,rgba(255,255,255,.045) 1px,transparent 1px),
    linear-gradient(to bottom,rgba(255,255,255,.045) 1px,transparent 1px);
  background-size:26px 26px;
}
.hero > *{position:relative;z-index:1;}
.hero .kicker{color:rgba(255,255,255,.62);}
.hero h1{color:var(--paper);}
.hero h1 em{color:var(--amber);}
.hero .lede{color:rgba(255,255,255,.78);}
.hero .btn--ghost{color:var(--paper);border-color:rgba(255,255,255,.28);}
.hero .btn--ghost:hover{border-color:rgba(255,255,255,.6);}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px;}
@media (max-width:620px){.hero{padding:28px 22px;border-radius:18px;}}

/* ---------- Stats ---------- */
.stats{display:flex;gap:34px;flex-wrap:wrap;margin-top:26px;}
.stat .v{display:block;font:400 27px/1 var(--font-display);color:var(--paper);}
.stat .k{display:block;font:500 9.5px/1 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.55);margin-top:7px;}

/* ---------- Plane grid ---------- */
.plane-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px;margin-top:28px;}
.plane-card{
  display:flex;flex-direction:column;position:relative;overflow:hidden;text-decoration:none;color:inherit;
  background:var(--paper-2);border:1px solid var(--rule);border-radius:var(--radius);
  box-shadow:var(--shadow-card);transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease;
}
.plane-card:hover{transform:translateY(-3px);border-color:var(--ink-3);box-shadow:0 1px 0 rgba(20,30,55,.04),0 16px 34px -18px rgba(20,30,55,.35);}
.pc-photo{
  display:flex;align-items:center;justify-content:center;
  padding:22px 20px 18px;border-bottom:1px solid var(--rule-soft);
  background:
    radial-gradient(120% 80% at 50% 22%, color-mix(in oklab,var(--paper) 92%,transparent), transparent 70%),
    var(--paper-3);
}
.pc-photo img{
  width:100%;height:150px;object-fit:contain;
  filter:drop-shadow(0 10px 14px rgba(20,30,55,.20));
  transition:transform .2s ease;
}
.plane-card:hover .pc-photo img{transform:translateY(-2px) scale(1.03);}
.pc-body{display:block;padding:18px 20px 21px;}
.plane-card .tagline{display:block;margin-bottom:13px;}
.plane-card .id{display:block;font:500 10px/1.4 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);}
.plane-card .name{display:block;font-family:var(--font-display);font-size:29px;line-height:1.1;margin-top:7px;}
.plane-card .desc{display:block;font-size:14.5px;line-height:1.5;color:var(--ink-2);margin-top:9px;}

/* Plane photo on the detail page */
.plane-hero{
  display:flex;align-items:center;justify-content:center;
  background:
    radial-gradient(120% 80% at 50% 20%, color-mix(in oklab,var(--paper) 94%,transparent), transparent 70%),
    var(--paper-2);
  border:1px solid var(--rule);border-radius:var(--radius);
  padding:26px;box-shadow:var(--shadow-card);
}
.plane-hero img{width:100%;max-height:260px;object-fit:contain;filter:drop-shadow(0 14px 20px rgba(20,30,55,.22));}
.badge{
  display:inline-block;font:500 9.5px/1 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;
  padding:5px 9px;border-radius:4px;background:var(--paper-3);color:var(--ink-2);border:1px solid var(--rule);
}
.badge--accent{background:var(--accent);color:#fff;border-color:transparent;}

/* ---------- Cards / meta ---------- */
.card{background:var(--paper-2);border:1px solid var(--rule);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow-card);}
.meta-row{
  display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--rule-soft);
  border:1px solid var(--rule);border-radius:12px;overflow:hidden;margin-top:22px;
}
.meta-row .cell{background:var(--paper-2);padding:15px 16px;}
.meta-row .lbl{font:500 9.5px/1 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);}
.meta-row .val{font:400 21px/1.1 var(--font-display);margin-top:7px;}
@media (max-width:640px){.meta-row{grid-template-columns:repeat(2,1fr);}}

.rating{display:inline-flex;gap:3px;vertical-align:middle;margin-left:2px;}
.rating i{width:7px;height:7px;border-radius:50%;background:var(--rule);display:block;}
.rating i.on{background:var(--accent);}

/* ---------- Legend ---------- */
.legend{display:flex;flex-wrap:wrap;gap:26px;align-items:center;padding:17px 20px;background:var(--paper-2);border:1px solid var(--rule);border-radius:var(--radius);margin-top:18px;}
.legend .item{display:flex;align-items:center;gap:10px;font:600 12.5px var(--font-sans);}
.legend .line{height:0;width:56px;border-top-width:2px;}
.legend .line.m{border-top-style:solid;border-top-color:var(--ink);}
.legend .line.v{border-top-style:dotted;border-top-color:var(--ink);border-top-width:4px;}
.legend .line.c{border-top-style:dashed;border-top-color:var(--ink);}

/* ---------- Template frame ---------- */
.sheet-frame{
  position:relative;background:#fff;border:1px solid var(--rule);border-radius:12px;
  padding:20px;box-shadow:var(--shadow-card);
}
.sheet-frame img{width:100%;}
.corner{position:absolute;width:14px;height:14px;border:1px solid var(--ink-3);pointer-events:none;}
.corner.tl{top:-1px;left:-1px;border-right:0;border-bottom:0;}
.corner.tr{top:-1px;right:-1px;border-left:0;border-bottom:0;}
.corner.bl{bottom:-1px;left:-1px;border-right:0;border-top:0;}
.corner.br{bottom:-1px;right:-1px;border-left:0;border-top:0;}

.cols{display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:start;}
@media (max-width:860px){.cols{grid-template-columns:1fr;gap:28px;}}

/* ---------- Lists ---------- */
.list{padding-left:20px;margin:14px 0 0;}
.list li{margin-bottom:9px;}
.steps{counter-reset:s;list-style:none;padding:0;margin:16px 0 0;}
.steps li{counter-increment:s;position:relative;padding-left:38px;margin-bottom:13px;}
.steps li::before{
  content:counter(s,decimal-leading-zero);position:absolute;left:0;top:2px;
  font:500 10.5px/1 var(--font-mono);letter-spacing:.1em;color:var(--accent);
  border:1px solid var(--rule);border-radius:5px;padding:5px 6px;background:var(--paper-2);
}

/* ---------- Video ---------- */
.video-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:22px;margin-top:26px;}
.video{background:var(--paper-2);border:1px solid var(--rule);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-card);}
.video .frame{aspect-ratio:16/9;background:var(--navy);}
.video iframe{width:100%;height:100%;border:0;display:block;}
.video .cap{padding:15px 18px;}
.video .cap .t{font-family:var(--font-display);font-size:19px;line-height:1.25;}
.video .cap .k{font:500 9.5px/1 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin-top:8px;display:block;}

/* ---------- Store links ---------- */
.stores{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;margin-top:26px;}
.store{
  display:flex;align-items:center;justify-content:space-between;gap:14px;text-decoration:none;color:inherit;
  background:var(--paper-2);border:1px solid var(--rule);border-radius:12px;padding:17px 19px;
  transition:border-color .15s ease,transform .15s ease;
}
.store:hover{border-color:var(--ink-3);transform:translateY(-2px);}
.store .n{font:600 15px/1 var(--font-sans);}
.store .a{font:500 9.5px/1 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin-top:7px;display:block;}
.store svg{width:16px;height:16px;color:var(--ink-3);flex:none;}

/* ---------- Prose ---------- */
.prose{max-width:70ch;}
.prose p{margin:0 0 16px;}
.prose h2{margin:34px 0 12px;}

/* ---------- Footer ---------- */
.site-foot{border-top:1px solid var(--rule);margin-top:20px;padding:34px 0 46px;position:relative;z-index:1;}
.site-foot .wrap{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;align-items:flex-start;}
.site-foot a{color:var(--ink-2);text-decoration:none;}
.site-foot a:hover{color:var(--accent-2);}
.foot-links{display:flex;gap:22px;flex-wrap:wrap;font:500 11px/1 var(--font-mono);letter-spacing:.13em;text-transform:uppercase;}
.foot-note{font-size:12.5px;color:var(--ink-3);max-width:46ch;}

/* ---------- Print: template only, exact size ---------- */
#printRoot{display:none;}
@media print{
  @page{size:letter portrait;margin:0;}
  html,body{margin:0!important;padding:0!important;background:#fff!important;}
  body::before{display:none!important;}
  body *{visibility:hidden!important;}
  #printRoot,#printRoot *{visibility:visible!important;}
  #printRoot{
    display:block!important;position:fixed!important;top:0!important;left:0!important;
    width:8.5in!important;height:11in!important;margin:0!important;padding:0!important;background:#fff!important;
  }
  #printRoot img{width:8.5in!important;height:11in!important;display:block!important;}
  .no-print{display:none!important;}
}
