/* Owlkey's palette on the web: royal-blue brand, orange owl used as a single accent,
   cool paper canvas. Mobile-first; nothing smaller than 16px. */
:root{
  color-scheme:light dark;
  --canvas:#F4F6FB;
  --surface:#FFFFFF;
  --raised:#ECF0F8;
  --hairline:#DFE4EE;
  --text:#0E1526;
  --muted:#4F5970;
  --accent:#0A63E6;
  --heading:#012A8F;
  --brand-bright:#0065E9;
  --brand-deep:#012A8F;
  --owl:#F7862F;
  --on-brand:#FFFFFF;
}
@media (prefers-color-scheme: dark){
  :root{
    --canvas:#0A0F1E;
    --surface:#141B2D;
    --raised:#1C2540;
    --hairline:#27314C;
    --text:#F2F5FF;
    --muted:#A9B3CC;
    --accent:#4A8DFF;
    --heading:#F2F5FF;
  }
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{
  margin:0;
  background:var(--canvas);
  color:var(--text);
  font-family:"Nunito",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  font-size:17px;
  line-height:1.6;
  overflow-wrap:break-word;
}
.wrap{max-width:720px;margin:0 auto;padding:28px 16px 56px}

header{text-align:center;margin-bottom:20px}
.icon{
  display:block;width:80px;height:80px;margin:0 auto 16px;
  border-radius:18px;
  box-shadow:0 8px 24px color-mix(in srgb, var(--brand-deep) 28%, transparent);
}
h1{font-size:30px;line-height:1.2;margin:0;font-weight:800;letter-spacing:-0.01em}
header h1::after{
  content:"";display:block;width:40px;height:4px;border-radius:2px;
  background:var(--owl);margin:12px auto 10px;
}
.sub{color:var(--muted);font-size:17px;margin:0}
.updated{color:var(--muted);font-size:16px;text-align:center;margin:0 0 20px}

.card{
  background:var(--surface);
  border:1px solid var(--hairline);
  border-radius:20px;
  padding:20px 20px 8px;
  margin-bottom:16px;
}
h2{font-size:20px;line-height:1.3;margin:28px 0 8px;font-weight:800;color:var(--heading)}
.card > h2:first-child{margin-top:4px}
h3{font-size:18px;line-height:1.35;margin:20px 0 6px;font-weight:700}
p,li{font-size:17px}
p{margin:0 0 14px}
ul,ol{padding-left:22px;margin:0 0 14px}
li{margin-bottom:8px}
li::marker{color:var(--muted)}
strong{font-weight:700}
a{color:var(--accent);text-decoration-thickness:1px;text-underline-offset:3px}
a:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:6px}

.summary{
  background:var(--raised);
  border-radius:16px;
  padding:16px 16px 4px;
  margin:0 0 16px;
}
.summary h2{margin-top:0}
.summary ul{margin-bottom:12px}

.path{font-weight:700}

.hero{
  background:linear-gradient(180deg, var(--brand-bright), var(--brand-deep));
  color:var(--on-brand);
  border-radius:24px;
  padding:32px 20px 28px;
  text-align:center;
  margin-bottom:16px;
}
.hero .icon{width:96px;height:96px;border-radius:22px;box-shadow:0 10px 28px rgba(0,0,0,.28)}
.hero p{font-size:18px;margin:0 auto;max-width:34ch}

.nav{display:flex;flex-direction:column;gap:12px;margin:0 0 8px}
.nav a{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  min-height:64px;
  background:var(--surface);border:1px solid var(--hairline);border-radius:18px;
  padding:14px 18px;text-decoration:none;color:var(--text);
}
.nav a span{display:flex;flex-direction:column}
.nav a b{font-size:18px;font-weight:800}
.nav a small{font-size:16px;color:var(--muted)}
.nav a::after{content:"›";font-size:28px;line-height:1;color:var(--accent)}

footer{
  display:flex;flex-wrap:wrap;justify-content:center;gap:4px 18px;
  margin-top:24px;font-size:16px;color:var(--muted);text-align:center;
}
footer a{text-decoration:none;font-weight:600;padding:10px 0}

@media (min-width:640px){
  .wrap{padding:48px 24px 80px}
  .card{padding:28px 32px 12px}
  .hero{padding:44px 32px 36px}
  h1{font-size:34px}
}
