/* Wise Falcon Books — site.css */

/* ---------- Fonts (self-hosted, no third-party requests) ---------- */
@font-face{font-family:"Literata";font-style:normal;font-display:swap;font-weight:200 900;
  src:url(/assets/fonts/literata-latin-opsz-normal.woff2) format("woff2-variations");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Literata";font-style:normal;font-display:swap;font-weight:200 900;
  src:url(/assets/fonts/literata-latin-ext-opsz-normal.woff2) format("woff2-variations");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Literata";font-style:italic;font-display:swap;font-weight:200 900;
  src:url(/assets/fonts/literata-latin-opsz-italic.woff2) format("woff2-variations");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2212,U+FEFF,U+FFFD}
@font-face{font-family:"Archivo";font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;
  src:url(/assets/fonts/archivo-latin-wdth-normal.woff2) format("woff2-variations");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Archivo";font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;
  src:url(/assets/fonts/archivo-latin-ext-wdth-normal.woff2) format("woff2-variations");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

/* ---------- Tokens ---------- */
:root{
  --ink:#1b2430;        /* series ink */
  --ink-soft:#2d3a4a;
  --gold:#e0a526;       /* series gold */
  --gold-text:#8a5d00;  /* gold that passes contrast on paper */
  --paper:#fafaf8;
  --surface:#ffffff;
  --text:#1b2430;
  --muted:#556270;
  --line:#dde2e6;
  --green:#3d6a4a;      /* children */
  --green-tint:#e6efe7;
  --plum:#6b3a5c;       /* fiction */
  --plum-tint:#f1e6ee;
  --sci-tint:#eceff2;
  --focus:#1f6fd1;
  --shadow:0 1px 2px rgba(27,36,48,.08),0 8px 24px -12px rgba(27,36,48,.28);

  --serif:"Literata",Georgia,"Times New Roman",serif;
  --sans:"Archivo","Helvetica Neue",Arial,system-ui,sans-serif;

  --step--1:.875rem; --step-0:1rem; --step-1:1.125rem; --step-2:1.375rem;
  --step-3:1.75rem;  --step-4:2.25rem; --step-5:clamp(2.1rem,5.2vw,3.5rem);

  --wrap:72rem; --gutter:clamp(1rem,4vw,2.5rem);
  color-scheme:light dark;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --paper:#11161c; --surface:#18202a; --text:#e7ebef; --muted:#a3adb8; --line:#2b3642;
    --gold-text:#f0bd4f; --green:#8fc39c; --green-tint:#1b2a20; --plum:#d9a2c7; --plum-tint:#2a1c26;
    --sci-tint:#1d2630; --focus:#7cb4ff; --shadow:0 1px 2px rgba(0,0,0,.4),0 10px 26px -12px rgba(0,0,0,.7);
  }
}
:root[data-theme="dark"]{
  --paper:#11161c; --surface:#18202a; --text:#e7ebef; --muted:#a3adb8; --line:#2b3642;
  --gold-text:#f0bd4f; --green:#8fc39c; --green-tint:#1b2a20; --plum:#d9a2c7; --plum-tint:#2a1c26;
  --sci-tint:#1d2630; --focus:#7cb4ff; --shadow:0 1px 2px rgba(0,0,0,.4),0 10px 26px -12px rgba(0,0,0,.7);
}

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:border-box}
:root{padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
html{scroll-padding-top:calc(env(safe-area-inset-top,0px) + 5rem);-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--text);font-family:var(--serif);
  font-size:var(--step-1);line-height:1.65;font-optical-sizing:auto;text-rendering:optimizeLegibility}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-underline-offset:.18em;text-decoration-thickness:1px}
a:hover{text-decoration-thickness:2px}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:2px}
h1,h2,h3{font-family:var(--serif);font-weight:620;line-height:1.15;letter-spacing:-.01em;margin:0}
p{margin:0 0 1em}
.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gutter)}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:0;background:var(--ink);color:#fff;padding:.6rem 1rem;z-index:50;font-family:var(--sans)}
.skip:focus{left:.5rem;top:.5rem}

/* ---------- Header band (ink | gold, diagonal join — from the series covers) ---------- */
.band{position:relative;background:var(--ink);color:#fff;overflow:hidden;isolation:isolate}
.band__in{display:flex;align-items:stretch;justify-content:space-between;gap:1rem;min-height:5rem}
.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;color:#fff;align-self:center;padding-block:.6rem}
.brand img{height:4rem;width:auto;filter:drop-shadow(0 1px 2px rgba(0,0,0,.35))}
.brand__word{font-family:var(--sans);font-weight:820;font-stretch:72%;font-size:1.65rem;line-height:1;letter-spacing:.005em}
.band__right{position:relative;display:flex;align-items:center;padding-left:clamp(2.2rem,4vw,3.4rem)}
.band__right::before{content:"";position:absolute;top:0;bottom:0;left:0;right:-100vw;background:var(--gold);
  clip-path:polygon(1.6rem 0,100% 0,100% 100%,0 100%);z-index:-1}
.nav{display:flex;gap:clamp(.8rem,2vw,1.8rem);font-family:var(--sans);font-size:var(--step-0);font-weight:600;color:var(--ink)}
.nav a{text-decoration:none;padding:.4rem 0;border-bottom:2px solid transparent}
.nav a:hover,.nav a[aria-current="page"]{border-bottom-color:var(--ink)}
.menu-btn{display:none;font:inherit;font-family:var(--sans);font-weight:700;background:var(--ink);color:#fff;
  border:0;border-radius:6px;padding:.55rem .95rem;cursor:pointer;min-height:44px}
@media (prefers-reduced-motion:no-preference){
  .band__right::before{animation:wedge .9s cubic-bezier(.2,.7,.2,1) both}
  @keyframes wedge{from{transform:translateX(60%)}to{transform:none}}
}
@media (max-width:52rem){
  .band{overflow-x:clip;overflow-y:visible}
  .band::after{content:"";position:absolute;top:0;bottom:0;right:0;width:calc(var(--gutter) + 7.4rem);
    background:var(--gold);clip-path:polygon(1.6rem 0,100% 0,100% 100%,0 100%);z-index:-1}
  .band__right{position:static;padding-left:0}
  .band__right::before{display:none}
  .brand__word{font-size:1.35rem}
  .brand img{height:3.3rem}
  .menu-btn{display:inline-block}
  .nav{display:none;position:absolute;left:0;right:0;top:100%;flex-direction:column;gap:0;
    background:var(--gold);padding:.25rem var(--gutter) 1rem;z-index:30;box-shadow:var(--shadow)}
  .nav a{padding:.85rem 0;border-bottom:1px solid rgba(27,36,48,.2);font-size:var(--step-1)}
  .band--open .nav{display:flex}
}

/* ---------- News ---------- */
.news{padding:clamp(2rem,6vw,4.5rem) 0 clamp(2rem,5vw,3.5rem);border-bottom:1px solid var(--line)}
.news__label{font-family:var(--sans);font-weight:700;font-size:var(--step--1);color:var(--gold-text);margin:0 0 1rem}
.lead{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,.75fr);gap:clamp(1.5rem,5vw,4rem);align-items:center}
.lead__date{font-family:var(--sans);font-size:var(--step--1);color:var(--muted);margin:0 0 .6rem}
.lead h1{font-size:var(--step-5);font-weight:640;max-width:16ch;margin-bottom:1.1rem}
.lead__body{max-width:36rem;font-size:var(--step-1)}
.lead__cover{max-width:19rem;justify-self:end;width:100%}
@media (max-width:46rem){
  .lead{grid-template-columns:1fr}
  .lead__cover{justify-self:start;max-width:10rem;order:-1}
}
.actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.5rem}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.65rem 1.2rem;
  border-radius:6px;font-family:var(--sans);font-weight:650;font-size:var(--step-0);text-decoration:none;
  border:2px solid var(--ink);cursor:pointer;line-height:1.2}
.btn--solid{background:var(--ink);color:#fff}
.btn--solid:hover{background:var(--ink-soft);border-color:var(--ink-soft)}
.btn--line{background:transparent;color:var(--text);border-color:currentColor}
.btn--gold{background:var(--gold);color:var(--ink);border-color:var(--gold)}
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]) .btn--solid{background:var(--gold);color:var(--ink);border-color:var(--gold)} }

.earlier{margin-top:clamp(2rem,5vw,3rem);max-width:44rem}
.earlier h2{font-family:var(--sans);font-size:var(--step-0);font-weight:700;margin-bottom:.4rem;color:var(--muted)}
.earlier ol{list-style:none;margin:0;padding:0}
.earlier li{padding:1rem 0;border-top:1px solid var(--line)}
.earlier time{font-family:var(--sans);font-size:var(--step--1);color:var(--muted);display:block}
.earlier h3{font-size:var(--step-2);margin:.2rem 0 .4rem}
.earlier p{margin:0 0 .4rem;color:var(--muted);font-size:var(--step-0)}

/* ---------- Shelf bar (tabs + search) ---------- */
.shelfbar{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--paper) 92%,transparent);
  backdrop-filter:saturate(1.2) blur(8px);-webkit-backdrop-filter:saturate(1.2) blur(8px);border-bottom:1px solid var(--line);
  padding-top:env(safe-area-inset-top,0px)}
.shelfbar__in{display:flex;align-items:center;gap:1rem;justify-content:space-between;padding-block:.6rem;flex-wrap:wrap}
.tabs{display:flex;gap:.25rem;overflow-x:auto;scrollbar-width:none;font-family:var(--sans)}
.tabs::-webkit-scrollbar{display:none}
.tab{font:inherit;font-weight:650;font-size:var(--step-0);background:none;border:0;color:var(--muted);
  padding:.55rem .85rem;border-radius:6px;cursor:pointer;white-space:nowrap;min-height:44px}
.tab[aria-pressed="true"]{background:var(--ink);color:#fff}
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]) .tab[aria-pressed="true"]{background:var(--gold);color:var(--ink)} }
.tab .n{font-weight:500;opacity:.75;margin-left:.3rem}
.search{position:relative;flex:1 1 14rem;max-width:22rem}
.search input{width:100%;font:inherit;font-family:var(--sans);font-size:var(--step-0);padding:.6rem .8rem .6rem 2.3rem;
  border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--text);min-height:44px}
.search svg{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);width:1rem;height:1rem;color:var(--muted)}
@media (max-width:46rem){
  .search{max-width:none;flex-basis:100%}
  .shelfbar{position:static;backdrop-filter:none;-webkit-backdrop-filter:none;background:var(--paper)}
  .tab{padding:.55rem .7rem}
}
@media (max-width:26rem){.tab .n{display:none}}

/* ---------- Shelves ---------- */
.shelf{padding:clamp(2.5rem,6vw,4.5rem) 0 1rem}
.shelf[hidden]{display:none}
.shelf__head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:1rem 3rem;align-items:start;margin-bottom:2rem}
.shelf__head h2{font-size:var(--step-4)}
.shelf__head p{margin:.35rem 0 0;color:var(--muted);max-width:38rem}
@media (max-width:46rem){.shelf__head{grid-template-columns:1fr}}
.shelf--science h2{box-shadow:inset 0 -.35em 0 color-mix(in srgb,var(--gold) 45%,transparent)}
.shelf--children h2{box-shadow:inset 0 -.35em 0 color-mix(in srgb,var(--green) 30%,transparent)}
.shelf--fiction h2{box-shadow:inset 0 -.35em 0 color-mix(in srgb,var(--plum) 30%,transparent)}
.shelf__head h2{justify-self:start}

.series{margin:0 0 3rem;padding-top:1.5rem;border-top:1px solid var(--line)}
.series[hidden]{display:none}
.series__top{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.5rem 1.5rem;margin-bottom:1rem}
.series h3{font-size:var(--step-3)}
.series h3 a{text-decoration:none}
.series__count{font-family:var(--sans);font-size:var(--step--1);color:var(--muted);margin:0}
.series__about{max-width:44rem;color:var(--muted);font-size:var(--step-0);margin-bottom:1.25rem}

.chips{display:flex;flex-wrap:wrap;gap:.4rem;margin:0 0 1.5rem;font-family:var(--sans)}
.chip{font:inherit;font-size:var(--step--1);font-weight:600;padding:.45rem .8rem;border-radius:999px;
  border:1px solid var(--line);background:var(--surface);color:var(--text);cursor:pointer;min-height:36px}
.chip[aria-pressed="true"]{border-color:var(--ink);background:var(--ink);color:#fff}
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]) .chip[aria-pressed="true"]{background:var(--gold);color:var(--ink);border-color:var(--gold)} }

.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(9.5rem,1fr));gap:2rem 1.25rem;list-style:none;margin:0;padding:0}
@media (max-width:30rem){.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem .9rem}}
.grid li[hidden]{display:none}
.book{display:flex;flex-direction:column;gap:.6rem;text-decoration:none;color:inherit;height:100%}
.book__title{font-weight:620;font-size:var(--step-0);line-height:1.3}
.book:hover .book__title{text-decoration:underline;text-underline-offset:.18em}
.book__meta{font-family:var(--sans);font-size:.8125rem;color:var(--muted);line-height:1.35;display:flex;flex-wrap:wrap;gap:.25rem .5rem;align-items:center}
.pill{display:inline-block;font-family:var(--sans);font-weight:700;font-size:.75rem;padding:.15rem .5rem;border-radius:4px;background:var(--gold);color:var(--ink)}
.pill--avail{background:var(--green);color:#fff}
.empty-note{font-family:var(--sans);color:var(--muted);padding:2rem 0}
.empty-note button{font:inherit;background:none;border:0;color:var(--text);text-decoration:underline;cursor:pointer;padding:0}

/* ---------- Covers ---------- */
.cover{position:relative;container-type:inline-size;aspect-ratio:var(--ratio,2/3);border-radius:3px;overflow:hidden;box-shadow:var(--shadow);background:var(--sci-tint)}
.cover img{width:100%;height:100%;object-fit:cover}
.book:hover .cover{box-shadow:0 1px 2px rgba(27,36,48,.1),0 14px 30px -12px rgba(27,36,48,.4)}
/* empty panels: no artwork, only the series signature and number */
.cover--empty{border:1px solid var(--line);box-shadow:none}
.cover--tsss{background:var(--sci-tint)}
.cover--tsss::before{content:"";position:absolute;inset:0 0 auto 0;height:15%;
  background:linear-gradient(102deg,var(--ink) 0 57%,var(--gold) 57.2% 100%)}
.cover--avfm{background:var(--green-tint)}
.cover--fiction{background:var(--plum-tint)}
.cover--children{background:var(--green-tint)}
.cover__no{position:absolute;font-family:var(--sans);font-weight:800;font-stretch:70%;line-height:1;
  color:transparent;-webkit-text-stroke:1.2px color-mix(in srgb,var(--text) 38%,transparent)}
.cover--tsss .cover__no{top:3.2cqw;left:5cqw;font-size:12cqw;color:#fff;-webkit-text-stroke:0}
.cover--avfm .cover__no,.cover--fiction .cover__no,.cover--children .cover__no{bottom:4cqw;left:6cqw;font-size:30cqw}
.cover__note{position:absolute;inset:auto .6rem .6rem auto;font-family:var(--sans);font-size:.6875rem;color:var(--muted)}

/* ---------- About / contact ---------- */
.about{padding:clamp(3rem,7vw,5rem) 0;border-top:1px solid var(--line);margin-top:2rem}
.about__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:1.5rem 3rem}
.about h2{font-size:var(--step-4)}
.about__mark{display:flex;flex-direction:column;gap:1.25rem;align-items:flex-start}
.about__mark img{width:9rem;height:auto}
@media (max-width:46rem){.about__mark{flex-direction:row;align-items:center}.about__mark img{width:5.5rem}}
.about__text{max-width:40rem}
.lists{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem;margin-top:2rem}
.lists div{border-top:3px solid var(--gold);padding-top:.8rem}
.lists div:nth-child(2){border-color:var(--green)}
.lists div:nth-child(3){border-color:var(--plum)}
.lists h3{font-size:var(--step-1);margin-bottom:.35rem}
.lists p{font-size:var(--step-0);color:var(--muted);margin:0}
@media (max-width:46rem){.about__grid,.lists{grid-template-columns:1fr}}
.contact{background:var(--ink);color:#fff;padding:clamp(2.5rem,6vw,4rem) 0}
.contact__in{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1.5rem 3rem;align-items:center}
.contact h2{font-size:var(--step-4);margin-bottom:.6rem}
.contact p{margin:0;max-width:38rem;color:#d5dbe1}
.contact .mail{font-family:var(--sans);font-weight:700;font-size:clamp(1.1rem,3vw,1.5rem);color:var(--gold);text-decoration:none;word-break:break-all}
.contact .mail:hover{text-decoration:underline}
@media (max-width:46rem){.contact__in{grid-template-columns:1fr}}

/* ---------- Footer ---------- */
.foot{background:var(--ink);color:#c4ccd4;border-top:1px solid rgba(255,255,255,.12);font-family:var(--sans);font-size:var(--step--1)}
.foot__in{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem 2rem;padding-block:1.5rem}
.foot a{color:#fff}
.foot p{margin:0}
.foot__brand{display:flex;align-items:center;gap:.7rem}
.foot__brand img{height:2.5rem;width:auto}

/* ---------- Book page ---------- */
.crumbs{font-family:var(--sans);font-size:var(--step--1);color:var(--muted);padding-top:1.5rem}
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:.3rem;margin:0;padding:0}
.crumbs li+li::before{content:"/";margin-right:.3rem;opacity:.6}
.bookpage{display:grid;grid-template-columns:minmax(0,19rem) minmax(0,1fr);gap:clamp(1.5rem,5vw,4rem);padding:2rem 0 3rem;align-items:start}
.bookpage__cover{position:sticky;top:5.5rem}
@media (max-width:46rem){.bookpage{grid-template-columns:minmax(0,1fr)}.bookpage__cover{position:static;max-width:13rem}}
.bookpage h1{font-size:var(--step-5);margin-bottom:.4rem}
.bookpage__sub{font-style:italic;font-size:var(--step-2);color:var(--muted);margin:0 0 1rem;line-height:1.35}
.bookpage__series{font-family:var(--sans);font-size:var(--step-0);margin:0 0 1.2rem;color:var(--muted)}
.bookpage__status{margin:-.4rem 0 1.2rem}
.bookpage__status .pill{font-size:.8125rem;padding:.25rem .6rem}
.bookpage__series a{color:var(--text)}
.bookpage__desc{max-width:38rem;font-size:var(--step-1)}
.details{display:grid;grid-template-columns:max-content 1fr;gap:.45rem 1.5rem;margin:1.8rem 0 0;padding:1.2rem 0 0;border-top:1px solid var(--line);font-family:var(--sans);font-size:var(--step-0);max-width:38rem}
.details dt{color:var(--muted)}
.details dd{margin:0}
.note{font-family:var(--sans);font-size:var(--step--1);color:var(--muted);margin-top:1rem;max-width:38rem}
.more{padding:2.5rem 0 4rem;border-top:1px solid var(--line)}
.more h2{font-size:var(--step-3);margin-bottom:1.5rem}
.strip{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(8.5rem,9.5rem);gap:1.25rem;overflow-x:auto;
  list-style:none;margin:0;padding:0 0 1rem;scroll-snap-type:x proximity}
.strip li{scroll-snap-align:start}
.book[aria-current="page"] .book__title{text-decoration:underline}

/* 404 */
.lost{padding:clamp(3rem,10vw,7rem) 0;max-width:36rem}
.lost h1{font-size:var(--step-5);margin-bottom:1rem}

@media print{.band,.shelfbar,.contact,.foot{display:none}}

/* reading order */
.seq{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:.75rem;margin-top:1.8rem;max-width:38rem;font-family:var(--sans)}
.seq__link{display:flex;flex-direction:column;gap:.15rem;padding:.8rem 1rem;border:1px solid var(--line);border-radius:6px;text-decoration:none;background:var(--surface);font-weight:650;line-height:1.3}
.seq__link span{font-size:var(--step--1);font-weight:500;color:var(--muted)}
.seq__link:hover{border-color:var(--text)}
.seq__next{text-align:right}
.seq__next:only-child{grid-column:1/-1}
.shelf__note{font-family:var(--sans);font-size:var(--step--1);color:var(--muted);max-width:40rem;margin:-1rem 0 2rem}
/* text pages */
.prose{max-width:40rem;padding:2rem 0 4rem}
.prose h1{font-size:var(--step-5);margin-bottom:1.5rem}
.prose h2{font-size:var(--step-2);margin:2rem 0 .5rem}
