@font-face{font-family:'Bodoni Moda';font-style:normal;font-weight:400;font-display:swap;src:url('/assets/fonts/bodoni-moda-latin-400-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Bodoni Moda';font-style:normal;font-weight:400;font-display:swap;src:url('/assets/fonts/bodoni-moda-latin-ext-400-normal.woff2') format('woff2');unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,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:'Crimson Text';font-style:normal;font-weight:400;font-display:swap;src:url('/assets/fonts/crimson-text-latin-400-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Crimson Text';font-style:normal;font-weight:400;font-display:swap;src:url('/assets/fonts/crimson-text-latin-ext-400-normal.woff2') format('woff2');unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,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:'Crimson Text';font-style:italic;font-weight:400;font-display:swap;src:url('/assets/fonts/crimson-text-latin-400-italic.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Crimson Text';font-style:normal;font-weight:600;font-display:swap;src:url('/assets/fonts/crimson-text-latin-600-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}

  :root{
    --ink:#080A0F;
    --ground:#0F131B;
    --surface:#161B25;
    --surface-2:#1D2430;
    --rule:#2A3242;
    --bone:#EAE4D5;
    --bone-dim:#A29B8B;
    --bone-faint:#6E6A60;
    --heather:#B392D6;
    --heather-deep:#7C5FA6;
    --brass:#BE9F5A;
    --brass-dim:#7A6738;
    --measure:36rem;
    --step--1:0.82rem;
    --step-0:1.0625rem;
    --step-1:1.35rem;
    --step-2:1.85rem;
    --step-3:clamp(2rem,4vw,2.9rem);
    --step-4:clamp(2.7rem,7vw,4.6rem);
  }

  *,*::before,*::after{box-sizing:border-box;}
  [hidden]{display:none !important;}

  body{
    margin:0;
    background:var(--ground);
    color:var(--bone);
    font-family:"Crimson Text",Georgia,"Times New Roman",serif;
    font-size:var(--step-0);
    line-height:1.72;
    -webkit-font-smoothing:antialiased;
  }

  h1,h2,h3{
    font-family:"Bodoni Moda",Didot,"Bodoni MT",Georgia,serif;
    font-weight:400;
    text-wrap:balance;
    margin:0;
    line-height:1.12;
  }

  a{color:var(--heather);text-decoration-color:var(--heather-deep);text-underline-offset:.18em;}
  a:hover{color:var(--bone);text-decoration-color:var(--brass);}
  a:focus-visible,button:focus-visible,input:focus-visible{
    outline:2px solid var(--brass);outline-offset:3px;border-radius:2px;
  }

  p{margin:0;}

  .wrap{width:min(100% - 2.5rem,64rem);margin-inline:auto;}
  .measure{max-width:var(--measure);}

  .eyebrow{
    font-size:var(--step--1);
    letter-spacing:.22em;
    text-transform:uppercase;
    color:var(--brass);
    margin:0;
  }

  /* ---------- top bar ---------- */
  .topbar{
    position:sticky;top:0;z-index:40;
    background:color-mix(in srgb,var(--ink) 88%,transparent);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--rule);
  }
  .topbar-inner{
    display:flex;align-items:center;gap:1.5rem;
    padding:.7rem 0;
    width:min(100% - 2.5rem,64rem);margin-inline:auto;
  }
  .brand{
    font-family:"Bodoni Moda",Didot,Georgia,serif;
    font-size:1.02rem;letter-spacing:.09em;text-transform:uppercase;
    color:var(--bone);text-decoration:none;white-space:nowrap;
  }
  .navlinks{display:flex;gap:1.15rem;margin-left:auto;flex-wrap:wrap;}
  .navlinks a{
    color:var(--bone-dim);text-decoration:none;
    font-size:.95rem;letter-spacing:.06em;
  }
  .navlinks a:hover{color:var(--bone);}
  .langtoggle{display:flex;align-items:center;gap:.4rem;margin-left:1.1rem;}
  .langtoggle button{
    background:none;border:1px solid transparent;color:var(--bone-faint);
    font-family:inherit;font-size:.9rem;letter-spacing:.12em;
    padding:.15rem .45rem;cursor:pointer;border-radius:2px;
  }
  .langtoggle button[aria-pressed="true"]{color:var(--brass);border-color:var(--brass-dim);}
  .langtoggle button:hover{color:var(--bone);}
  .langtoggle span{color:var(--rule);}
  @media (max-width:760px){
    .navlinks{display:none;}
  }

  /* ---------- hero ---------- */
  .hero{
    position:relative;
    min-height:min(92vh,48rem);
    display:grid;place-items:center;
    text-align:center;
    padding:5rem 0 12rem;
    background:
      radial-gradient(ellipse 55% 40% at 50% 30%,rgba(124,95,166,.20),transparent 70%),
      radial-gradient(ellipse 80% 45% at 50% 74%,rgba(190,159,90,.10),transparent 70%),
      linear-gradient(180deg,#05070B 0%,#0B0F17 45%,#141A26 78%,#1B2231 100%);
    overflow:hidden;
    isolation:isolate;
  }
  .hero .wrap{position:relative;z-index:2;}
  .hero::after{
    content:"";position:absolute;inset:auto 0 0 0;height:1px;z-index:3;
    background:linear-gradient(90deg,transparent,var(--brass-dim),transparent);
  }
  .ridges{
    position:absolute;inset:auto 0 -1px 0;z-index:1;
    width:100%;height:min(58%,26rem);
    display:block;pointer-events:none;
  }
  .mist{
    position:absolute;inset:auto 0 0 0;z-index:1;height:45%;
    background:linear-gradient(180deg,transparent,rgba(163,180,205,.055) 55%,transparent);
    pointer-events:none;
  }
  .crest{width:clamp(148px,20vw,212px);height:auto;display:block;margin:0 auto 1.9rem;
    filter:drop-shadow(0 14px 30px rgba(0,0,0,.7));
    background:radial-gradient(circle at 50% 42%,rgba(139,110,182,.30),rgba(139,110,182,.10) 45%,transparent 66%);}
  .crest-sm{width:118px;height:auto;display:block;margin:0 auto 1.3rem;}
  .cover.has-art{padding:0;background:none;border:none;box-shadow:0 26px 52px -24px rgba(0,0,0,.95);}
  .cover.has-art::before{display:none;}
  .cover.has-art img{display:block;width:100%;height:100%;object-fit:cover;border:1px solid var(--rule);}
  .plate.has-art{background:var(--ink);padding:1rem;}
  .plate.has-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
  .plate.has-art::before{z-index:2;border-color:rgba(234,228,213,.18);}
  .plate figcaption{
    position:relative;z-index:3;font-size:.92rem;color:var(--bone);font-style:italic;
    text-shadow:0 2px 10px rgba(0,0,0,.95);
  }
  .band{position:relative;height:min(46vh,21rem);overflow:hidden;}
  .band img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.82) brightness(.6);}
  .band::after{
    content:"";position:absolute;inset:0;
    background:linear-gradient(180deg,var(--ground),rgba(15,19,27,.15) 32%,rgba(15,19,27,.15) 62%,var(--ground));
  }
  .hero h1{
    font-size:var(--step-4);
    letter-spacing:.01em;
    margin:0 0 1.1rem;
  }
  .hero .tagline{
    font-size:var(--step-1);
    font-style:italic;
    color:var(--bone-dim);
    max-width:30rem;margin:0 auto;
  }
  .hero .motto{
    margin-top:2.4rem;
    font-size:var(--step--1);
    letter-spacing:.3em;text-transform:uppercase;
    color:var(--brass);
  }
  .hero .eyebrow{margin-bottom:1.4rem;}

  /* ---------- sections ---------- */
  section{padding:5.5rem 0;border-top:1px solid var(--rule);}
  section:first-of-type{border-top:none;}
  .section-head{display:flex;flex-direction:column;gap:.7rem;margin-bottom:3rem;}
  .section-head h2{font-size:var(--step-3);}
  .lede{color:var(--bone-dim);font-size:var(--step-1);font-style:italic;}

  /* ---------- books ---------- */
  .book{
    display:grid;
    grid-template-columns:minmax(0,15rem) minmax(0,1fr);
    gap:2.75rem;
    align-items:start;
  }
  .book + .book{margin-top:4.5rem;padding-top:4.5rem;border-top:1px solid var(--rule);}
  @media (max-width:720px){
    .book{grid-template-columns:1fr;gap:1.75rem;}
    .cover{max-width:15rem;}
  }
  .cover{
    aspect-ratio:2/3;
    background:linear-gradient(160deg,var(--surface-2),var(--ink));
    border:1px solid var(--rule);
    box-shadow:0 18px 40px -22px rgba(0,0,0,.9);
    display:flex;flex-direction:column;justify-content:center;align-items:center;
    gap:.9rem;padding:1.6rem;text-align:center;
    position:relative;
  }
  .cover::before{
    content:"";position:absolute;inset:.5rem;border:1px solid var(--brass-dim);opacity:.5;
  }
  .cr-nope{display:none !important;}
  .cover .cover-series{
    font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--brass);
  }
  .cover .cover-title{
    font-family:"Bodoni Moda",Didot,Georgia,serif;
    font-size:1.5rem;line-height:1.2;color:var(--bone);
  }
  .cover .cover-author{
    font-size:var(--step--1);letter-spacing:.18em;text-transform:uppercase;color:var(--brass);
  }
  .book h3{font-size:var(--step-2);margin-bottom:.55rem;}
  .cover-note{
    position:absolute;bottom:1.1rem;left:0;right:0;
    font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;color:var(--bone-faint);
  }
  .cta-row{display:flex;align-items:center;gap:1.2rem;flex-wrap:wrap;margin-top:1.8rem;}
  .btn{
    display:inline-block;background:var(--brass);color:var(--ink);text-decoration:none;
    font-weight:600;font-size:.95rem;letter-spacing:.1em;text-transform:uppercase;
    padding:.7rem 1.4rem;border-radius:2px;
  }
  .btn:hover{background:var(--bone);color:var(--ink);}
  .cta-side{font-size:.92rem;color:var(--bone-faint);font-style:italic;}
  .status{
    display:inline-block;
    font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;
    color:var(--bone-dim);
    border:1px solid var(--rule);
    padding:.22rem .6rem;border-radius:2px;
    margin-bottom:1.2rem;
  }
  .status.live{color:var(--brass);border-color:var(--brass-dim);}
  .book p + p{margin-top:1.1rem;}
  .disclaimer{
    margin-top:1.4rem;font-size:.9rem;color:var(--bone-faint);
    border-left:2px solid var(--rule);padding-left:1rem;
  }

  /* ---------- author ---------- */
  .author-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,17rem);gap:3.5rem;align-items:start;}
  @media (max-width:820px){.author-grid{grid-template-columns:1fr;gap:2.5rem;}}
  .author-grid p + p{margin-top:1.2rem;}
  .crest-card{
    background:var(--surface);border:1px solid var(--rule);
    padding:2rem 1.5rem;text-align:center;
  }
  
  .crest-card dl{margin:0;display:grid;gap:.85rem;text-align:left;}
  .crest-card dt{
    font-size:.76rem;letter-spacing:.18em;text-transform:uppercase;color:var(--brass);
  }
  .crest-card dd{margin:.15rem 0 0;color:var(--bone-dim);font-size:.98rem;line-height:1.5;}

  /* ---------- news ---------- */
  .news{display:grid;gap:0;}
  .news-item{
    display:grid;grid-template-columns:9rem minmax(0,1fr);gap:2rem;
    padding:1.8rem 0;border-top:1px solid var(--rule);
  }
  .news-item:last-child{border-bottom:1px solid var(--rule);}
  @media (max-width:640px){.news-item{grid-template-columns:1fr;gap:.5rem;}}
  .news-date{
    font-size:.86rem;letter-spacing:.12em;text-transform:uppercase;
    color:var(--brass);padding-top:.35rem;font-variant-numeric:tabular-nums;
  }
  .news-item h3{font-size:var(--step-1);margin-bottom:.5rem;}
  .news-item p{color:var(--bone-dim);}

  /* ---------- gallery ---------- */
  .gallery{
    display:grid;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:1.5rem;
  }
  .plate{
    aspect-ratio:4/5;
    background:
      repeating-linear-gradient(135deg,rgba(255,255,255,.014) 0 8px,transparent 8px 16px),
      var(--surface);
    border:1px solid var(--rule);
    display:flex;flex-direction:column;justify-content:flex-end;
    padding:1.1rem;
    position:relative;
  }
  .plate::before{content:"";position:absolute;inset:.55rem;border:1px solid rgba(190,159,90,.22);}
  .plate span{
    position:relative;font-size:.9rem;color:var(--bone-faint);font-style:italic;
  }

  .chip{
    display:inline-block;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;
    color:var(--ink);background:var(--brass);padding:.12rem .45rem;border-radius:2px;
    font-family:"Crimson Text",serif;font-weight:600;
    vertical-align:.14em;margin-left:.5rem;
  }

  /* ---------- newsletter ---------- */
  .newsletter{
    background:
      radial-gradient(ellipse 60% 100% at 50% 0%,rgba(124,95,166,.14),transparent 70%),
      var(--surface);
    border:1px solid var(--rule);
    padding:3.25rem 2.25rem;
    text-align:center;
  }
  .newsletter h2{font-size:var(--step-2);margin-bottom:.9rem;}
  .newsletter p{color:var(--bone-dim);max-width:32rem;margin-inline:auto;}
  form.signup{
    display:flex;gap:.6rem;flex-wrap:wrap;justify-content:center;
    margin:2rem auto 1rem;max-width:30rem;
  }
  form.signup input{
    flex:1 1 15rem;
    background:var(--ink);border:1px solid var(--rule);color:var(--bone);
    font-family:inherit;font-size:1rem;padding:.72rem .9rem;border-radius:2px;
  }
  form.signup input::placeholder{color:var(--bone-faint);}
  form.signup button{
    background:var(--brass);color:var(--ink);border:none;
    font-family:"Crimson Text",serif;font-weight:600;
    font-size:.95rem;letter-spacing:.14em;text-transform:uppercase;
    padding:.72rem 1.5rem;border-radius:2px;cursor:pointer;
  }
  form.signup button:hover{background:var(--bone);}
  .fineprint{font-size:.85rem;color:var(--bone-faint);max-width:30rem;margin-inline:auto;}

  /* ---------- contact / footer ---------- */
  .contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:2.5rem;}
  .contact-grid h3{font-size:var(--step-1);margin-bottom:.7rem;}
  .contact-grid p{color:var(--bone-dim);}
  footer{
    border-top:1px solid var(--rule);
    padding:2.5rem 0 3.5rem;
    color:var(--bone-faint);font-size:.9rem;
    display:flex;gap:1.5rem;flex-wrap:wrap;align-items:center;
  }
  footer .glyph{width:22px;height:22px;opacity:.55;}
  footer a{color:var(--bone-dim);}

  .note{
    background:var(--surface-2);
    border-left:2px solid var(--brass);
    padding:1rem 1.25rem;margin-top:1.5rem;
    font-size:.92rem;color:var(--bone-dim);
  }


  /* ---------- legal overlays ---------- */
  .legal{
    position:fixed;inset:0;z-index:60;overflow-y:auto;
    background:var(--ground);
    padding:4.5rem 0 6rem;
  }
  .legal-inner{width:min(100% - 2.5rem,44rem);margin-inline:auto;}
  .legal h2{font-size:var(--step-3);margin-bottom:.4rem;}
  .legal h3{
    font-family:"Crimson Text",serif;font-weight:600;
    font-size:.82rem;letter-spacing:.18em;text-transform:uppercase;color:var(--brass);
    margin:2.4rem 0 .7rem;
  }
  .legal p,.legal ul{color:var(--bone-dim);}
  .legal p + p{margin-top:.9rem;}
  .legal ul{margin:.4rem 0 0;padding-left:1.1rem;}
  .legal li{margin-bottom:.35rem;}
  .legal address{font-style:normal;color:var(--bone);line-height:1.65;}
  .legal-close{
    position:sticky;top:0;float:right;
    background:var(--surface);border:1px solid var(--rule);color:var(--bone);
    font-family:inherit;font-size:.9rem;letter-spacing:.1em;text-transform:uppercase;
    padding:.5rem 1rem;border-radius:2px;cursor:pointer;
  }
  .legal-close:hover{border-color:var(--brass);color:var(--brass);}
  .legal .updated{margin-top:2.5rem;font-size:.86rem;color:var(--bone-faint);}

  /* ---------- motion ---------- */
  .reveal{opacity:0;transform:translateY(14px);transition:opacity .7s ease,transform .7s ease;}
  .reveal.seen{opacity:1;transform:none;}
  @media (prefers-reduced-motion:reduce){
    .reveal{opacity:1;transform:none;transition:none;}
    html{scroll-behavior:auto;}
  }
  html{scroll-behavior:smooth;}

  .langtoggle .lang-current{color:var(--brass);border:1px solid var(--brass-dim);padding:.15rem .45rem;border-radius:2px;font-size:.9rem;letter-spacing:.12em;}
  .langtoggle .lang-other{color:var(--bone-faint);text-decoration:none;padding:.15rem .45rem;font-size:.9rem;letter-spacing:.12em;}
  .langtoggle .lang-other:hover{color:var(--bone);}
  .legal{position:static;padding:7rem 0 6rem;min-height:60vh;}
  .legal-close{position:static;float:none;display:inline-block;margin-bottom:2rem;text-decoration:none;}
