:root {
  color-scheme: light;
  --paper: #fff;
  --ink: #161616;
  --muted: #676767;
  --line: #e4e4e4;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 16px;
  font-synthesis: none;
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--paper); color: var(--ink); -webkit-font-smoothing: antialiased; -webkit-text-size-adjust: 100%; }
body.modal-open { overflow: hidden; }
button, a, summary { -webkit-tap-highlight-color: transparent; touch-action: manipulation; }
button { font: inherit; color: inherit; cursor: pointer; }
a { color: inherit; text-decoration-color: #bcbcbc; text-underline-offset: .35em; text-decoration-thickness: 1px; }
a:hover { text-decoration-color: var(--ink); }
a:focus-visible, button:focus-visible, summary:focus-visible { outline: 2px solid var(--ink); outline-offset: 5px; }
.page { width: min(100% - 6rem, 1040px); min-height: 100vh; min-height: 100svh; margin-inline: auto; display: flex; flex-direction: column; }
main { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: clamp(2.5rem, 6vh, 4rem) 0 2.25rem; text-align: center; }
.identity { display: flex; flex-direction: column; align-items: center; width: 100%; }
.brand { width: min(560px, 100%); aspect-ratio: 4.15; overflow: hidden; padding: 0; margin: 0; }
.brand img { display: block; width: 180%; height: auto; max-width: none; transform: translate(-22.2222%, -32%); }
.tagline { font-family: Georgia, "Times New Roman", serif; font-weight: 400; font-size: clamp(1.25rem, 2vw, 1.5rem); letter-spacing: -.015em; line-height: 1.5; margin: 2.75rem 0 1.75rem; max-width: 100%; text-wrap: balance; }
.contact-links { width: 100%; max-width: 100%; margin-top: 2rem; font-size: .875rem; line-height: 1.5; color: var(--muted); }
.social-links { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: .25rem 2rem; }
.social-links > a { display: inline-flex; flex: none; white-space: nowrap; min-height: 44px; align-items: center; text-decoration: underline; text-decoration-color: #bcbcbc; text-underline-offset: .35em; text-decoration-thickness: 1px; }
.social-links > a:hover { text-decoration-color: var(--ink); }
.donation-link { display: inline-flex; align-items: center; min-height: 44px; margin-top: 2rem; font-size: .875rem; line-height: 1.5; color: var(--muted); }
.venture-links { display: flex; width: 100%; flex-wrap: wrap; justify-content: center; align-items: center; gap: .25rem 1.5rem; margin-top: 0; font-size: 1rem; line-height: 1.5; color: var(--ink); }
.venture-links a { display: inline-flex; align-items: center; min-height: 44px; }
.donation-header { padding-top: 2rem; font-size: .875rem; }
.donation-header a { display: inline-flex; align-items: center; min-height: 44px; }
.donation-main { width: min(100%, 36rem); margin-inline: auto; align-items: flex-start; text-align: left; padding-block: 3rem; }
.donation-main h1 { margin: 0 0 1.5rem; font: 400 clamp(2rem, 5vw, 2.75rem)/1.2 Georgia, serif; letter-spacing: -.025em; }
.donation-main p { margin: 0 0 1.25rem; font-size: 1rem; line-height: 1.75; color: #555; }
.donation-main .partnership-link { display: inline-flex; align-items: center; min-height: 44px; }
.giving-actions { display: flex; flex-direction: column; align-items: center; gap: .6rem; margin-top: 1.25rem; }
.donation-main .giving-actions { align-items: flex-start; }
.donate-button { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; max-width: 100%; padding: .75rem 1.5rem; border: 1px solid var(--ink); background: var(--ink); color: #fff; font: 400 .9375rem/1.4 "Helvetica Neue", Helvetica, Arial, sans-serif; text-align: center; text-decoration-color: #888; }
.donate-button:hover { text-decoration-color: #fff; }
.giving-actions small { font-size: .875rem; line-height: 1.5; color: var(--muted); }
.community-gallery { width: 100%; margin: 2.5rem 0 0; }
.community-images { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.community-images img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; filter: grayscale(1); }
.community-gallery figcaption { margin-top: .75rem; color: var(--muted); font-size: .8125rem; line-height: 1.5; }
.site-footer { display: flex; flex-direction: column; justify-content: center; align-items: center; gap: .5rem; padding: 1.25rem 0 1.75rem; }
.site-footer > small { color: var(--muted); font-size: .8125rem; font-weight: 400; line-height: 1.6; }
.inner-page { min-height:100vh;min-height:100svh;display:flex;flex-direction:column; }
.inner-page > .page, .inner-page > .shop-page { flex:1;min-height:0; }
.inner-page > .site-footer { flex:none;width:100%;margin-top:1rem;padding:1.5rem 1.5rem max(1.5rem,env(safe-area-inset-bottom));background:#000;color:#fff; }
.inner-page > .site-footer small { color:#d0d0d0; }
.inner-page > .site-footer a, .inner-page > .site-footer #inquiry-inbox-link { color:#fff; }
.inner-page > .site-footer a:focus-visible { outline-color:#fff; }
.inner-page > .site-footer a:hover { text-decoration-color:#fff; }
.book-disclosure { max-width: 100%; }
.book-disclosure:not([open]) { display: none; }
.book-disclosure summary { list-style: none; cursor: pointer; }
.book-disclosure summary::-webkit-details-marker { display: none; }
.book-close-label { display: none; }
.book-disclosure:not([open]) .book-panel { display: none; }
.book-disclosure[open] summary { position: fixed; right: 1.25rem; top: max(1.25rem, env(safe-area-inset-top)); z-index: 1000; cursor: pointer; }
.book-disclosure[open] summary::before { content: ""; position: fixed; inset: 0; z-index: -1; background: rgb(0 0 0 / 45%); cursor: default; }
.book-disclosure[open] .book-close-label { display: inline-flex; align-items: center; justify-content: center; gap: .75rem; min-height: 48px; padding: .65rem 1rem; border: 1px solid var(--line); background: white; cursor: pointer; font-size: .9375rem; }
.book-close-label > span { font-size: 1.5rem; line-height: 1; }
.book-disclosure[open] summary:focus-visible { outline: none; }
.book-disclosure[open] summary:focus-visible .book-close-label { outline: 2px solid black; outline-offset: 4px; }
.book-panel { position: fixed; z-index: 1001; left: 50%; top: 50%; transform: translate(-50%, -50%); display: grid; grid-template-columns: 1fr 1fr; width: min(760px, calc(100% - 2rem)); max-height: calc(100vh - 9rem); max-height: calc(100svh - 9rem); overflow: auto; overscroll-behavior: contain; background: white; border: 1px solid var(--line); text-align: left; }
body:has(.book-disclosure[open]) { overflow: hidden; }
.book-art { display: flex; align-items: center; justify-content: center; background: #ece9e2; min-width: 0; }
.book-art img { display: block; width: 100%; height: auto; }
.book-copy { min-width: 0; padding: 4rem 2.5rem; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; }
.book-copy h2 { margin: 0; max-width: 100%; overflow-wrap: anywhere; font-family: Georgia, "Times New Roman", serif; font-size: 2.25rem; font-weight: 400; line-height: 1.15; letter-spacing: -.025em; text-wrap: balance; }
.book-release { margin: 1.75rem 0 0; font-size: 1rem; line-height: 1.6; color: var(--muted); }
@media (max-width: 700px) {
  .page { width: calc(100% - 3rem); }
  main { padding-block: 2rem; }
  .brand { width: min(420px, 100%); }
  .tagline { margin: 2rem 0 1.5rem; max-width: 19rem; }
  .social-links { column-gap: 1.3rem; }
  .site-footer { padding: 1rem 0 max(1.25rem, env(safe-area-inset-bottom)); }
  .book-panel { grid-template-columns: minmax(0, 1fr); }
  .book-art { height: clamp(200px, 39svh, 320px); }
  .book-art img { height: 100%; width: auto; max-width: 100%; object-fit: contain; }
  .book-copy { padding: 2rem 1.75rem 2.5rem; }
  .book-copy h2 { font-size: 2rem; }
  .book-release { margin-top: 1.25rem; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; } }
@media (max-width: 480px) { .community-images { grid-template-columns: minmax(0, 1fr); } }

body.contact-open { overflow: hidden; }
.contact-dialog { position: fixed; width: min(440px, calc(100% - 2rem)); max-height: calc(100svh - 3rem); margin: auto; padding: 2rem; color: var(--ink); background: #fff; border: 1px solid var(--line); overflow: auto; }
.contact-dialog::backdrop { background: rgb(0 0 0 / 45%); }
.contact-dialog:not([open]) { display: none; }
.contact-close { display: flex; align-items: center; justify-content: center; gap: .75rem; min-height: 44px; margin: -.5rem -.5rem 1rem auto; padding: .5rem; background: none; border: 0; font-size: .9375rem; text-decoration: underline; text-underline-offset: .3em; }
.contact-close span { font-size: 1.4rem; }
.contact-dialog h2 { margin: 0 0 .75rem; font: 400 2rem/1.2 Georgia, serif; letter-spacing: -.02em; }
.contact-recipient { margin: 0 0 2rem; color: var(--muted); font-size: 1rem; }
.contact-dialog label { display: block; margin-bottom: .65rem; font-size: .9375rem; }
.contact-dialog textarea { width: 100%; min-height: 7.5rem; resize: vertical; padding: .8rem; border: 1px solid #9a9a9a; border-radius: 0; font: inherit; font-size: 1rem; line-height: 1.5; background: #fff; color: var(--ink); }
.contact-dialog textarea:focus-visible { outline: 2px solid var(--ink); outline-offset: 3px; }
#contact-note { margin: 1rem 0 1.25rem; color: var(--muted); font-size: .875rem; line-height: 1.5; }
.message-action { display: flex; align-items: center; justify-content: center; min-height: 48px; padding: .75rem 1rem; background: var(--ink); color: #fff; font-size: 1rem; text-decoration-color: #888; }
.message-action:hover { text-decoration-color: #fff; }

.contact-close { min-width:44px;min-height:44px;text-decoration:none; }
.contact-close span { font-size:1.75rem;font-weight:300;line-height:1; }
body.book-open { overflow:hidden; }
.book-dialog { position:fixed;width:min(760px,calc(100% - 2rem));max-height:calc(100svh - 3rem);margin:auto;padding:0;border:1px solid var(--line);background:#fff;color:var(--ink);overflow:auto; }
.book-dialog[open] { display:grid;grid-template-columns:1fr 1fr; }
.book-dialog::backdrop { background:rgb(0 0 0 / 45%); }
.book-dialog .book-close { position:absolute;right:.5rem;top:.5rem;margin:0;background:#fff;z-index:1; }
.book-announcement-copy { font:italic 1.1rem/1.6 Georgia,serif;color:var(--muted);margin:1.5rem 0 0; }
.book-dialog .book-release { margin-top:1rem; }
@media(max-width:700px) { .book-dialog[open] { grid-template-columns:minmax(0,1fr); }.book-dialog .book-copy { padding:1.5rem; } }
