:root{
  --cream:#F9F4ED; --paper:#F4ECE0; --ink:#1D1D1D; --ink-2:#4A4540; --muted:#6E655C;
  --brown:#9E5F3A; --orange:#F2B05E; --yellow:#F2E1AC; --blue:#D5EAF0;
  --navy:#16213A; --navy-2:#0F182B; --hair:rgba(29,29,29,.14);
  --gold-1:#F6E7B4; --gold-2:#D9B46A; --gold-3:#A97B37; --gold-4:#F2DDA0;
  --display:"Cormorant Garamond", "Cormorant", Garamond, "Times New Roman", serif;
  --serif:"Source Serif 4", Georgia, "Times New Roman", serif;
  --sans:"Jost", "Helvetica Neue", Arial, sans-serif;
  --wrap:1200px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--serif);font-size:18px;line-height:1.7;font-optical-sizing:auto;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img{max-width:100%;display:block}
a{color:inherit}
.skip{position:absolute;left:-999px;top:0;background:var(--ink);color:var(--cream);padding:.6rem 1rem;z-index:100}
.skip:focus{left:1rem;top:1rem}
:focus-visible{outline:2px solid var(--brown);outline-offset:3px}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 clamp(22px,5vw,56px)}
.kicker{font-family:var(--sans);font-size:12px;letter-spacing:.32em;text-transform:uppercase;color:var(--brown);margin:0 0 1.4rem;font-weight:500}
h1,h2,h3{font-family:var(--display);font-weight:500;line-height:1.08;margin:0;letter-spacing:-.005em}
h2{font-size:clamp(34px,4.4vw,58px)}
h3{font-size:clamp(24px,2.2vw,30px)}
p{margin:0 0 1.1em}
.rule{height:1px;background:var(--hair);border:0;margin:0}

/* header */
.site-header{position:absolute;top:0;left:0;right:0;z-index:10}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;height:84px}
.brand{font-family:var(--display);font-size:21px;letter-spacing:.02em;text-decoration:none;font-weight:500}
.brand em{font-style:italic;color:var(--brown)}
.nav{display:flex;gap:clamp(18px,2.6vw,36px);font-family:var(--sans);font-size:12px;letter-spacing:.22em;text-transform:uppercase}
.nav a{text-decoration:none;color:var(--ink-2);padding:6px 0;border-bottom:1px solid transparent;transition:border-color .3s,color .3s}
.nav a:hover{color:var(--ink);border-color:var(--brown)}
.nav .nav-order{color:var(--brown)}
@media (max-width:820px){.nav a:not(.nav-order){display:none}}

/* hero */
.hero{position:relative;overflow:hidden;padding:clamp(120px,14vw,170px) 0 clamp(80px,9vw,130px);
  background:
   radial-gradient(1200px 520px at 78% 108%, rgba(242,176,94,.30), transparent 62%),
   radial-gradient(900px 500px at 10% -10%, rgba(213,234,240,.85), transparent 60%),
   linear-gradient(180deg,#F3F1EA 0%, var(--cream) 55%, #F7ECDD 100%);}
.hero .wrap{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(40px,6vw,96px);align-items:center}
.hero-copy .kicker{margin-bottom:1.6rem}
.hero h1{font-size:clamp(56px,7.6vw,112px);line-height:.98;font-weight:400;letter-spacing:-.012em}
.hero h1 .the{display:block;font-style:italic;font-size:.5em;color:var(--brown);letter-spacing:.01em;margin-bottom:.12em}
.byline{font-family:var(--sans);font-size:13px;letter-spacing:.34em;text-transform:uppercase;color:var(--ink-2);margin:1.8rem 0 2.2rem}
.hero-quote{font-family:var(--display);font-size:clamp(21px,1.9vw,25px);line-height:1.45;color:var(--ink-2);max-width:34em;margin:0 0 .6rem;font-style:italic}
.hero-quote-src{font-family:var(--sans);font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:var(--muted);margin-bottom:2.4rem}
.actions{display:flex;flex-wrap:wrap;gap:14px 26px;align-items:center}
.btn{display:inline-flex;align-items:center;gap:.7em;font-family:var(--sans);font-size:12.5px;letter-spacing:.24em;text-transform:uppercase;text-decoration:none;padding:17px 30px;border:1px solid var(--navy);background:var(--navy);color:var(--gold-1);transition:background .3s,color .3s,transform .3s}
.btn:hover{background:var(--navy-2);transform:translateY(-1px)}
.btn .arrow{transition:transform .3s}
.btn:hover .arrow{transform:translateX(3px)}
.link{font-family:var(--sans);font-size:12.5px;letter-spacing:.24em;text-transform:uppercase;text-decoration:none;color:var(--ink-2);border-bottom:1px solid var(--hair);padding-bottom:4px}
.link:hover{border-color:var(--brown);color:var(--ink)}
.price-note{font-family:var(--sans);font-size:13px;color:var(--muted);margin-top:1.4rem;letter-spacing:.02em}

/* the book object */
.book-stage{display:flex;justify-content:center;perspective:1800px}
.book{position:relative;width:min(400px,80vw);aspect-ratio:3/4.05;transform:rotateY(-20deg) rotateX(4deg);transform-style:preserve-3d;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.book:hover{transform:rotateY(-12deg) rotateX(2deg)}
.book::after{content:"";position:absolute;left:4%;right:-6%;bottom:-7%;height:9%;background:radial-gradient(closest-side,rgba(40,25,10,.38),transparent);filter:blur(10px);transform:translateZ(-60px) rotateX(80deg);pointer-events:none}
.cover{position:absolute;inset:0;border-radius:3px 6px 6px 3px;overflow:hidden;
  background:
   radial-gradient(120% 90% at 30% 20%, rgba(255,255,255,.07), transparent 55%),
   radial-gradient(120% 120% at 70% 110%, rgba(0,0,0,.35), transparent 60%),
   var(--navy);
  box-shadow:inset 6px 0 10px -4px rgba(0,0,0,.55), inset 14px 0 0 -12px rgba(255,255,255,.08), 0 30px 60px -20px rgba(22,33,58,.55), 0 12px 24px -12px rgba(0,0,0,.35);
  display:flex;flex-direction:column;align-items:center;text-align:center;padding:15% 10% 11%}
.cover::before{content:"";position:absolute;inset:0;opacity:.55;mix-blend-mode:overlay;pointer-events:none;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='1.15' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.5  0 0 0 0 0.5  0 0 0 0 0.5  0 0 0 1.1 -0.2'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");}
.cover::after{content:"";position:absolute;top:0;bottom:0;left:5.5%;width:1px;background:linear-gradient(180deg,transparent,rgba(0,0,0,.45) 10%,rgba(0,0,0,.45) 90%,transparent);box-shadow:1px 0 0 rgba(255,255,255,.06)}
.foil{background:linear-gradient(115deg,var(--gold-3) 0%,var(--gold-1) 22%,var(--gold-2) 40%,var(--gold-4) 58%,var(--gold-3) 78%,var(--gold-1) 100%);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 1px 0 rgba(0,0,0,.35))}
.cover-rise{font-family:var(--display);font-weight:600;font-size:clamp(17px,2.3vw,26px);letter-spacing:.18em;margin:0}
.cover-title{font-family:var(--display);font-weight:600;font-size:clamp(38px,5.6vw,64px);letter-spacing:.14em;margin:.08em 0 0;padding-left:.14em;line-height:1}
.emblem{width:40%;aspect-ratio:1;margin:14% 0 auto;
  -webkit-mask:url(assets/emblem.png) center/contain no-repeat;mask:url(assets/emblem.png) center/contain no-repeat;
  background:linear-gradient(125deg,var(--gold-3),var(--gold-1) 30%,var(--gold-2) 55%,var(--gold-4) 75%,var(--gold-3));filter:drop-shadow(0 1px 0 rgba(0,0,0,.4))}
.cover-author{font-family:var(--display);font-weight:600;font-size:clamp(12px,1.45vw,16px);letter-spacing:.32em;margin:0;padding-left:.32em}
.pages{position:absolute;top:1.4%;bottom:1.4%;right:-20px;width:22px;border-radius:0 4px 4px 0;
  background:linear-gradient(90deg,rgba(0,0,0,.18),transparent 30%),repeating-linear-gradient(180deg,#f6efe2 0 1px,#e2d7c3 1px 2px);
  box-shadow:inset -2px 0 3px rgba(0,0,0,.12),0 20px 40px -18px rgba(0,0,0,.4)}

/* sections */
section{position:relative}
.section{padding:clamp(90px,11vw,150px) 0}
.lead-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(40px,7vw,110px);align-items:start}
.lead-grid h2{max-width:13em}
.prose{font-size:clamp(18px,1.4vw,20px);color:var(--ink-2);max-width:36em}
.prose .first{font-family:var(--display);font-size:clamp(25px,2.3vw,31px);line-height:1.38;color:var(--ink);margin-bottom:1.2em}
blockquote{margin:0}
.pull{border-left:1px solid var(--brown);padding:.2em 0 .2em 1.6em;margin:2.2em 0;font-family:var(--display);font-size:clamp(21px,1.8vw,25px);line-height:1.45;color:var(--ink);font-style:italic}
.pull cite{display:block;margin-top:.9em;font-style:normal;font-family:var(--sans);font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:var(--muted)}
.figures{display:grid;grid-template-columns:repeat(3,1fr);margin-top:clamp(60px,7vw,90px);border-top:1px solid var(--hair)}
.figure{padding:28px 24px 0 0}
.figure + .figure{padding-left:24px;border-left:1px solid var(--hair)}
.figure b{display:block;font-family:var(--display);font-weight:400;font-size:clamp(40px,4.4vw,62px);line-height:1;color:var(--ink)}
.figure span{display:block;font-family:var(--sans);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-top:12px}

/* superpuzzle */
.puzzle{background:linear-gradient(180deg,var(--cream) 0%,var(--blue) 18%,#E3EEEE 55%,var(--cream) 100%)}
.puzzle-head{max-width:46em;margin:0 auto;text-align:center}
.puzzle-head .prose{margin:1.6em auto 0;text-align:center}
.pieces{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:clamp(56px,7vw,90px);border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.piece{padding:clamp(30px,3.4vw,48px) clamp(22px,2.6vw,40px) clamp(34px,3.6vw,52px)}
.piece + .piece{border-left:1px solid var(--hair)}
.numeral{font-family:var(--display);font-style:italic;color:var(--brown);font-size:22px;margin-bottom:1.6rem;display:block}
.piece h3{margin-bottom:.35em}
.piece .claim{font-family:var(--display);font-size:clamp(20px,1.7vw,23px);line-height:1.4;color:var(--ink);margin:0 0 1em;font-style:italic}
.piece p:last-child{color:var(--ink-2);font-size:17px;margin:0}
.converge{text-align:center;max-width:40em;margin:clamp(56px,7vw,90px) auto 0;font-family:var(--display);font-size:clamp(26px,2.6vw,36px);line-height:1.35}
.converge cite{display:block;margin-top:1.1rem;font-style:normal;font-family:var(--sans);font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:var(--muted)}

/* dawn band */
.dawn{position:relative;min-height:clamp(440px,52vw,720px);display:flex;align-items:flex-start;justify-content:center;text-align:center;overflow:hidden;color:var(--ink)}
.dawn picture,.dawn img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.dawn-copy{position:relative;padding:clamp(70px,9vw,130px) 24px 0;max-width:900px}
.dawn-copy p{font-family:var(--display);font-weight:400;font-size:clamp(32px,4.6vw,64px);line-height:1.12;margin:0;color:#2a2420}
.dawn-copy span{display:block;margin-top:1.4rem;font-family:var(--sans);font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:rgba(42,36,32,.72)}

/* contents */
.contents-head{display:flex;justify-content:space-between;align-items:end;gap:40px;flex-wrap:wrap;margin-bottom:clamp(50px,6vw,80px)}
.contents-head > p{max-width:30em;color:var(--ink-2);margin:0}
.parts{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,2.4vw,34px)}
.part{background:#FFFDF9;border:1px solid var(--hair);padding:clamp(28px,3vw,44px) clamp(24px,2.6vw,38px);display:flex;flex-direction:column}
.part .pn{font-family:var(--sans);font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--muted)}
.part h3{font-size:clamp(34px,3.3vw,46px);margin:.5em 0 .1em;font-weight:400}
.part .gloss{font-family:var(--display);font-style:italic;font-size:21px;color:var(--brown);margin-bottom:1.6em}
.part ol{list-style:none;margin:0;padding:0;border-top:1px solid var(--hair)}
.part li{padding:.72em 0;border-bottom:1px solid var(--hair);font-size:16.5px;color:var(--ink-2);line-height:1.4}
.frame-list{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,2.4vw,34px);margin-top:clamp(20px,2.4vw,34px)}
.frame{border-top:1px solid var(--ink);padding-top:18px}
.frame .pn{font-family:var(--sans);font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--muted)}
.frame p{font-family:var(--display);font-size:24px;margin:.35em 0 0;line-height:1.25}
.fineprint{font-family:var(--sans);font-size:12.5px;color:var(--muted);margin-top:2.2rem;letter-spacing:.02em}

/* excerpt */
.excerpt{background:var(--navy);color:#EDE6D8;overflow:hidden}
.excerpt::before{content:"";position:absolute;right:-8%;top:50%;width:min(620px,70vw);aspect-ratio:1;transform:translateY(-50%);opacity:.07;
  -webkit-mask:url(assets/emblem.png) center/contain no-repeat;mask:url(assets/emblem.png) center/contain no-repeat;background:var(--gold-2)}
.excerpt .kicker{color:var(--gold-2)}
.excerpt blockquote{position:relative;max-width:30em;font-family:var(--display);font-size:clamp(28px,3.3vw,46px);line-height:1.3;font-weight:400}
.excerpt blockquote p{margin:0 0 .7em}
.excerpt blockquote p:last-of-type{margin:0}
.excerpt .em{color:var(--gold-1);font-style:italic}
.excerpt cite{display:block;margin-top:2.2rem;font-style:normal;font-family:var(--sans);font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:rgba(237,230,216,.6)}

/* author */
.author-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(40px,7vw,110px);align-items:start}
.portrait{position:relative;margin:0}
.portrait img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;filter:saturate(.92) contrast(1.02)}
.portrait figcaption{font-family:var(--sans);font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:var(--muted);margin-top:14px}
.author-grid h2{margin-bottom:.6em;color:var(--ink)}
.author-quote{font-family:var(--display);font-style:italic;font-size:clamp(22px,2vw,27px);line-height:1.42;color:var(--ink);border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);padding:1.1em 0;margin:1.8em 0}
.author-quote cite{display:block;margin-top:.8em;font-style:normal;font-family:var(--sans);font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:var(--muted)}

/* order */
.order{background:linear-gradient(180deg,var(--cream),#F3E6D2)}
.order-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(40px,6vw,90px);align-items:center;background:#FFFDF9;border:1px solid var(--hair);padding:clamp(34px,5vw,72px)}
.order-card h2{margin-bottom:.45em}
.price{font-family:var(--display);font-size:clamp(46px,5vw,64px);line-height:1;margin:.3em 0 .2em}
.price small{font-family:var(--sans);font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-left:.6em;vertical-align:middle}
.specs{margin:0;display:grid;grid-template-columns:auto 1fr;border-top:1px solid var(--hair)}
.specs dt,.specs dd{margin:0;padding:.85em 0;border-bottom:1px solid var(--hair);font-size:16.5px}
.specs dt{font-family:var(--sans);font-size:11.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);padding-right:2em;padding-top:1.05em}
.specs dd{color:var(--ink)}
.order-note{font-size:15px;color:var(--muted);margin-top:1.4rem}

/* footer */
.site-footer{background:var(--navy-2);color:#CFC6B6;padding:70px 0 46px;font-size:15px}
.footer-top{display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap;align-items:flex-start;padding-bottom:40px;border-bottom:1px solid rgba(255,255,255,.12)}
.footer-title{font-family:var(--display);font-size:30px;color:#F3EBDD;margin:0}
.footer-title + p{margin:.3em 0 0;font-family:var(--sans);font-size:11.5px;letter-spacing:.26em;text-transform:uppercase;color:rgba(207,198,182,.7)}
.footer-links{display:flex;gap:28px;flex-wrap:wrap;font-family:var(--sans);font-size:12px;letter-spacing:.2em;text-transform:uppercase}
.footer-links a{text-decoration:none;color:#E7DCC8;border-bottom:1px solid rgba(255,255,255,.18);padding-bottom:3px}
.footer-links a:hover{border-color:var(--gold-2)}
.footer-bottom{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;padding-top:26px;font-size:13px;color:rgba(207,198,182,.62)}

/* reveal */
.reveal{opacity:0;transform:translateY(14px);transition:opacity 1s ease,transform 1s ease}
.reveal.in{opacity:1;transform:none}
.no-js .reveal{opacity:1;transform:none}

/* responsive */
@media (max-width:980px){
  .hero .wrap{grid-template-columns:1fr}
  .book-stage{order:-1;margin-bottom:10px}
  .book{width:min(300px,66vw)}
  .lead-grid,.author-grid,.order-card{grid-template-columns:1fr}
  .pieces,.parts,.frame-list{grid-template-columns:1fr}
  .piece + .piece{border-left:0;border-top:1px solid var(--hair)}
  .portrait{max-width:420px}
}
@media (max-width:560px){
  body{font-size:17px}
  .hero{padding-top:104px}
  .hero h1{font-size:clamp(50px,15vw,70px)}
  .figures{grid-template-columns:1fr}
  .figure,.figure + .figure{padding:22px 0 18px;border-left:0}
  .figure + .figure{border-top:1px solid var(--hair)}
  .btn{width:100%;justify-content:center}
  .specs{grid-template-columns:1fr}
  .specs dt{padding-bottom:0;border-bottom:0}
  .specs dd{padding-top:.25em}
  .dawn{min-height:560px}
}
