:root {
  color-scheme:light;
  --paper:#F3EFE6;
  --ink:#1B2420;
  --green:#1F4A38;
  --quiet:#56605A;
  --line:rgba(27,36,32,.09)
}
* {
  box-sizing:border-box
}
body {
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font:400 16px/1.5 'Instrument Sans',system-ui,sans-serif
}
a {
  color:var(--green);
  text-underline-offset:3px
}
a:hover {
  color:#12301F
}
button,input,textarea {
  font:inherit
}
button,a,summary {
  touch-action:manipulation
}
a:focus-visible,summary:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible {
  outline:3px solid #C4471C;
  outline-offset:4px
}
header,footer {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:16px max(24px,calc((100vw - 1152px)/2));
  border-bottom:1px solid var(--line);
  min-height:76px
}
header nav,footer nav {
  display:flex;
  align-items:center;
  gap:28px
}
nav a {
  text-decoration:none
}
.brand {
  display:inline-flex;
  align-items:baseline;
  gap:7px;
  font:400 28px/1 Newsreader,Georgia,serif;
  letter-spacing:-.02em;
  text-decoration:none
}
.brand svg {
  align-self:center
}
main {
  max-width:1280px;
  margin:auto;
  padding:64px;
  min-height:calc(100vh - 150px)
}
footer {
  border-bottom:0;
  border-top:1px solid var(--line);
  font-size:14px;
  color:var(--quiet)
}
h1,h2,h3 {
  font-family:Newsreader,Georgia,serif;
  font-weight:400;
  margin:0;
  line-height:1.12
}
h1 {
  font-size:52px;
  letter-spacing:-.02em
}
h2 {
  font-size:28px
}
h3 {
  font-size:24px
}
p {
  color:var(--quiet);
  margin:8px 0 20px
}
.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:10px 18px;
  border-radius:14px;
  border:0;
  background:var(--green);
  color:var(--paper);
  font-size:15px;
  font-weight:600;
  text-decoration:none;
  cursor:pointer
}
.button:hover {
  color:var(--paper);
  background:#12301F
}
.hero {
  display:flex;
  align-items:center;
  gap:48px;
  margin:8px 0 88px
}
.hero>div {
  flex:1;
  min-width:0
}
.hero h1 {
  font-size:72px;
  line-height:1.03
}
.hero p {
  font-size:19px;
  line-height:28px;
  max-width:480px;
  margin:22px 0
}
.hero-covers {
  display:flex;
  justify-content:center;
  gap:6px;
  padding:26px 0 60px
}
.cover {
  background:#EDE4D3;
  color:#8C2F3D;
  font:400 18px/1.15 Newsreader,Georgia,serif;
  border-radius:5px;
  position:relative;
  box-shadow:inset 4px 0 5px #0002,3px 3px 0 #fff8,0 8px 16px #1B242029;
  aspect-ratio:132/192;
  overflow:hidden
}
.cover:after {
  content:'';
  position:absolute;
  inset:0 auto 0 3px;
  width:2px;
  background:#0001;
  pointer-events:none
}
.hero .cover {
  width:132px;
  flex-shrink:1;
  padding:14px 12px
}
.cover-0 {
  transform:rotate(-6deg) translateY(30px)
}
.cover-1 {
  background:#0F3B3A;
  color:#D8B86A;
  transform:rotate(-2deg)
}
.cover-2 {
  background:#1F2D45;
  color:#F2EEE4;
  transform:rotate(3deg) translateY(16px)
}
.cover-3 {
  background:#4C6B3C;
  color:#F3EDE0;
  transform:rotate(7deg) translateY(44px)
}
.features {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:40px;
  margin-bottom:72px
}
.features h2 {
  font-size:26px
}
.features p {
  font-size:15px;
  line-height:22px
}
.cta {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  background:#fff;
  border-radius:28px;
  padding:40px 48px;
  margin:44px 0
}
.cta h2 {
  font-size:34px
}
.cta p {
  margin-bottom:0
}
.cta .button {
  flex-shrink:0
}
.profile-heading {
  display:flex;
  align-items:center;
  gap:24px;
  margin:0 0 44px
}
.profile-heading h1 {
  font-size:44px
}
.profile-heading p {
  margin-bottom:0
}
.avatar {
  width:72px;
  height:72px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:#E3EADF;
  color:var(--green);
  font:400 44px Newsreader,Georgia,serif
}
.collections {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px
}
.collection-card {
  background:#fff;
  border-radius:24px;
  padding:24px;
  text-decoration:none;
  box-shadow:0 8px 14px #1B24200a
}
.collection-card h2 {
  font-size:28px;
  margin-top:18px
}
.collection-card p {
  margin-bottom:0
}
.mini-shelf {
  display:flex;
  align-items:flex-end;
  gap:5px;
  height:100px
}
.mini-shelf i {
  display:block;
  background:#1F2D45;
  width:70px;
  height:100px;
  border-radius:3px;
  box-shadow:2px 3px 6px #0002
}
.mini-shelf i:nth-child(2) {
  background:#B5583A;
  height:94px
}
.mini-shelf i:nth-child(3) {
  background:#4C6B3C;
  height:86px
}
.mini-shelf i:nth-child(4) {
  background:#EDE4D3;
  height:90px
}
.collection-heading {
  margin-bottom:40px
}
.collection-heading h1 {
  margin-top:12px
}
.collection-heading>p {
  margin:12px 0 20px
}
.books {
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:32px 40px
}
.book .cover {
  width:100%;
  max-width:150px;
  margin-bottom:16px;
  display:flex;
  padding:18px
}
.book .cover:has(img) {
  padding:0
}
.book .cover img {
  width:100%;
  height:100%;
  object-fit:cover
}
.book h2 {
  font-size:18px;
  line-height:24px
}
.book p {
  font-size:14px;
  line-height:21px;
  margin:6px 0
}
.buy summary,.music summary,.report summary {
  min-height:44px;
  cursor:pointer;
  color:var(--green);
  font-weight:600;
  display:flex;
  align-items:center;
  gap:8px
}
.buy a {
  display:inline-flex;
  min-height:44px;
  align-items:center;
  margin-right:18px
}
.music {
  background:#E3EADF;
  border-radius:16px;
  padding:4px 16px;
  max-width:640px
}
.tracks {
  display:grid;
  gap:12px;
  margin:12px 0
}
.tracks>div {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:10px
}
.tracks a {
  min-height:44px;
  display:inline-flex;
  align-items:center
}
.tracks span {
  color:var(--quiet)
}
.report {
  margin-top:28px;
  max-width:520px
}
.report form {
  display:grid;
  gap:12px
}
.report textarea {
  width:100%;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
  padding:12px
}
.report .button {
  justify-self:start
}
.disclosure {
  font-size:13px;
  margin:28px 0 0
}
.document {
  max-width:760px;
  margin:auto
}
.document section {
  margin-top:32px
}
.document h3 {
  margin-top:24px
}
.document p {
  white-space:pre-line;
  line-height:1.7
}
.document h1 {
  margin-bottom:28px
}
@media(max-width:900px) {
  main {
    padding:40px 28px
  }
  .hero {
    gap:24px
  }
  .hero h1 {
    font-size:52px
  }
  .hero-covers {
    gap:3px
  }
  .features {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:28px
  }
  .books {
    grid-template-columns:repeat(3,minmax(0,1fr))
  }
  .collections {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
}
@media(max-width:600px) {
  header {
    padding:16px 22px;
    min-height:72px
  }
  .brand {
    font-size:25px
  }
  header nav {
    gap:12px
  }
  .desktop {
    display:none
  }
  main {
    padding:32px 22px
  }
  .hero {
    flex-direction:column;
    align-items:stretch;
    margin:0 0 36px
  }
  .hero h1 {
    font-size:46px
  }
  .hero p {
    font-size:17px
  }
  .hero-covers {
    margin:10px 0
  }
  .features {
    grid-template-columns:1fr;
    gap:22px;
    margin-bottom:32px
  }
  .features p {
    margin-bottom:0
  }
  .cta {
    padding:24px;
    flex-direction:column;
    align-items:flex-start
  }
  .cta h2 {
    font-size:28px
  }
  h1 {
    font-size:38px
  }
  .profile-heading {
    gap:16px;
    margin-bottom:28px
  }
  .profile-heading h1 {
    font-size:34px
  }
  .avatar {
    width:64px;
    height:64px;
    font-size:34px;
    flex-shrink:0
  }
  .collections {
    grid-template-columns:1fr
  }
  .books {
    display:flex;
    flex-direction:column;
    gap:0;
    background:#fff;
    border-radius:20px;
    padding:4px 16px;
    box-shadow:0 8px 14px #1B24200a
  }
  .book {
    display:flex;
    gap:12px;
    align-items:center;
    padding:12px 0;
    border-bottom:1px solid var(--line)
  }
  .book:last-child {
    border-bottom:0
  }
  .book .cover {
    width:44px;
    flex:none;
    margin:0;
    padding:8px;
    font-size:12px
  }
  .book-info {
    flex:1;
    min-width:0;
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    column-gap:8px
  }
  .book h2 {
    font:500 15px/21px 'Instrument Sans',system-ui,sans-serif;
    grid-column:1
  }
  .book p {
    font-size:13px;
    grid-column:1
  }
  .book .buy {
    grid-column:2;
    grid-row:1/3;
    align-self:center;
    max-width:100px
  }
  .book .buy a {
    font-size:13px;
    margin-right:0
  }
  .book .buy summary {
    white-space:normal
  }
  .collection-heading {
    margin-bottom:28px
  }
  .book .buy summary {
    font-size:14px
  }
  .collection-heading h1 {
    font-size:38px
  }
  footer {
    padding:22px;
    flex-wrap:wrap;
    gap:12px;
    font-size:13px
  }
  footer nav {
    gap:18px
  }
  .document h1 {
    font-size:36px
  }
  .document h2 {
    font-size:28px
  }
}
@media(prefers-reduced-motion:reduce) {
  * {
    scroll-behavior:auto!important
  }
}

.jacket-0 { background:#1F2D45; color:#F2EEE4; }
.jacket-1 { background:#B5583A; color:#F6E9D8; }
.jacket-2 { background:#4C6B3C; color:#F3EDE0; }
.jacket-3 { background:#0F3B3A; color:#D8B86A; }
.jacket-4 { background:#EDE4D3; color:#8C2F3D; }
.jacket-5 { background:#E7C8C2; color:#5E242B; }
.jacket-6 { background:#702638; color:#F3EDE0; }
.jacket-7 { background:#D8A82E; color:#352A18; }
.shelf-1 i:nth-child(1) { background:#702638; }
.shelf-1 i:nth-child(2) { background:#D8A82E; }
.shelf-1 i:nth-child(3) { background:#EDE4D3; }
.shelf-2 i:nth-child(1) { background:#0F3B3A; }
.shelf-2 i:nth-child(2) { background:#E7C8C2; }
.shelf-2 i:nth-child(3) { background:#EDE4D3; }
@media (max-width:600px) {
  header { min-height:60px; padding:12px 20px; }
  header .brand { font-size:20px; }
  header .brand svg { width:22px; height:20px; }
  header .button { color:var(--green); background:transparent; padding:0; text-decoration:underline; }
  main { padding:24px 20px; }
  .collection-heading { margin-bottom:20px; }
  .books ~ .cta { display:none; }
}
