:root{
  --page-ivory:#fffaf0;
  --page-blue:#18355f;
  --page-gold:#b68f3b;
  --page-rose:#9a4056;
  --page-ink:#24212a;
  --page-muted:#746f78;
}

*{box-sizing:border-box}
body.app-page{
  min-height:100svh;
  margin:0;
  color:var(--page-ink);
  background:
    radial-gradient(circle at 50% -10%,rgba(221,197,124,.2),transparent 30rem),
    linear-gradient(180deg,#fffdf8,#f8efdd);
}
.slim-page-header{
  position:sticky;
  z-index:40;
  top:0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  min-height:58px;
  padding:max(12px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) 12px max(18px,env(safe-area-inset-left));
  border-bottom:1px solid rgba(24,53,95,.1);
  background:rgba(255,253,248,.9);
  backdrop-filter:blur(14px);
}
.slim-home{
  color:var(--page-blue);
  font:700 .9rem Georgia,serif;
  text-decoration:none;
  white-space:nowrap;
}
.slim-page-nav{display:flex;align-items:center;gap:15px}
.slim-page-nav a{
  color:var(--page-blue);
  font-size:.64rem;
  font-weight:800;
  letter-spacing:.11em;
  text-decoration:none;
  text-transform:uppercase;
  border-bottom:1px solid transparent;
  padding:7px 0;
}
.slim-page-nav a:hover,
.slim-page-nav a.active{color:var(--page-rose);border-bottom-color:var(--page-gold)}

.app-page-shell{
  width:min(1160px,100%);
  margin:auto;
  padding:clamp(30px,6vw,72px) 20px 72px;
}
.page-intro{text-align:center;max-width:760px;margin:0 auto 44px}
.page-intro>span,.page-kicker{
  color:var(--page-rose);
  font-size:.62rem;
  font-weight:900;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.page-intro h1{
  margin:7px 0 11px;
  color:var(--page-blue);
  font:700 clamp(2.65rem,7vw,5.5rem)/.92 Georgia,serif;
  letter-spacing:-.055em;
}
.page-intro p{margin:0;color:var(--page-muted);line-height:1.6}
.page-note{color:var(--page-muted);line-height:1.5}

.portal-corner-nav{
  position:absolute;
  z-index:12;
  top:max(19px,env(safe-area-inset-top));
  right:max(22px,env(safe-area-inset-right));
  display:flex;
  align-items:center;
  gap:15px;
}
.portal-corner-nav a{
  min-height:38px;
  display:grid;
  place-items:center;
  color:var(--portal-blue-deep);
  border-bottom:1px solid rgba(24,53,95,.3);
  font:700 .63rem/1 Georgia,serif;
  letter-spacing:.12em;
  text-decoration:none;
  text-transform:uppercase;
}
.portal-corner-nav a:hover,
.portal-corner-nav a:focus-visible{
  color:var(--portal-rose);
  border-bottom-color:var(--portal-gold);
  outline:none;
}

/* A-Z */
.az-browser{max-width:1040px;margin:auto}
.page-az{justify-content:center;margin-bottom:20px}
.page-search-row{
  display:grid;
  grid-template-columns:1fr auto;
  gap:9px;
  max-width:720px;
  margin:0 auto 14px;
}
.page-search-row input{
  width:100%;
  border:1px solid rgba(24,53,95,.22);
  border-radius:999px;
  padding:13px 17px;
  background:#fff;
  color:var(--page-ink);
}
.page-search-row button,.plain-back{
  border:1px solid rgba(182,143,59,.55);
  border-radius:999px;
  background:transparent;
  color:var(--page-blue);
  padding:10px 16px;
  font-weight:800;
}
.az-entry-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin-top:18px;
}
.az-entry-button{
  display:flex;
  flex-direction:column;
  gap:5px;
  min-height:82px;
  padding:14px;
  text-align:left;
  border:1px solid rgba(24,53,95,.12);
  border-radius:14px;
  background:rgba(255,255,255,.76);
  color:var(--page-blue);
}
.az-entry-button:hover{border-color:var(--page-gold);transform:translateY(-1px)}
.az-entry-button span{color:var(--page-muted);font-size:.68rem}
.az-definition{
  margin:42px auto 0;
  max-width:900px;
  padding:26px;
  border:1px solid rgba(182,143,59,.45);
  border-radius:22px;
  background:#fffdf8;
  box-shadow:0 20px 60px rgba(24,53,95,.1);
}
.az-entry-article h2{color:var(--page-blue);font:700 clamp(2rem,5vw,3.6rem)/1 Georgia,serif;margin:8px 0 25px}
.az-entry-article section{border-top:1px solid rgba(24,53,95,.1);padding:22px 0 0;margin-top:22px;line-height:1.7}
.az-entry-article h3{color:var(--page-rose);font-size:.68rem;letter-spacing:.15em;text-transform:uppercase}
.az-alchemy{background:rgba(154,64,86,.035);padding:22px!important;border-radius:14px}

/* Books */
.book-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px}
.book-card{
  display:grid;
  grid-template-columns:minmax(150px,230px) 1fr;
  gap:24px;
  padding:24px;
  border:1px solid rgba(24,53,95,.12);
  border-radius:24px;
  background:rgba(255,255,255,.78);
  box-shadow:0 18px 48px rgba(24,53,95,.08);
}
.book-card img{width:100%;border-radius:12px;box-shadow:0 16px 34px rgba(0,0,0,.18)}
.book-card-copy{align-self:center}
.book-card h2{margin:8px 0 12px;color:var(--page-blue);font:700 clamp(1.45rem,3vw,2.3rem)/1.05 Georgia,serif}
.book-card p{color:var(--page-muted);line-height:1.5}
.amazon-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:46px;
  padding:12px 18px;
  border:1px solid var(--page-blue);
  border-radius:999px;
  background:var(--page-blue);
  color:#fff8e1;
  font-size:.7rem;
  font-weight:900;
  letter-spacing:.08em;
  text-decoration:none;
  text-transform:uppercase;
}
.amazon-button:hover{background:#102746}
.amazon-button:disabled{opacity:.62;cursor:wait}
.publisher-contact{
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:36px;
  margin-top:34px;
  padding:clamp(24px,5vw,44px);
  border:1px solid rgba(182,143,59,.42);
  border-radius:24px;
  background:linear-gradient(135deg,rgba(255,255,255,.82),rgba(248,239,221,.94));
}
.publisher-details h2{margin:8px 0 14px;color:var(--page-blue);font:700 2.2rem Georgia,serif}
.publisher-details p{color:var(--page-muted);line-height:1.6}
.publisher-details a{color:var(--page-blue)}
.publisher-form{display:grid;gap:14px}
.publisher-form label{display:grid;gap:7px;color:var(--page-blue);font-size:.68rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase}
.publisher-form input,.publisher-form textarea{
  width:100%;
  border:1px solid rgba(24,53,95,.2);
  border-radius:13px;
  background:#fff;
  color:var(--page-ink);
  padding:12px 14px;
  font:400 .94rem/1.45 Arial,sans-serif;
  resize:vertical;
}

/* Gallery */
.gallery-notice{
  max-width:720px;
  margin:0 auto 30px;
  padding:20px;
  border:1px solid rgba(182,143,59,.45);
  border-radius:18px;
  background:rgba(255,255,255,.78);
  text-align:center;
}
.gallery-notice p{color:var(--page-muted);line-height:1.55}
.gallery-notice button{
  border:1px solid var(--page-blue);
  border-radius:999px;
  padding:11px 18px;
  background:var(--page-blue);
  color:#fff;
  font-weight:800;
}
.gallery-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:15px;
}
.gallery-card{
  overflow:hidden;
  padding:0;
  border:1px solid rgba(24,53,95,.12);
  border-radius:16px;
  background:#fff;
  color:var(--page-blue);
  text-align:left;
}
.gallery-card img{
  display:block;
  width:100%;
  aspect-ratio:4/5;
  object-fit:contain;
  background:#f2eadb;
  transition:filter .28s ease,transform .28s ease;
}
.gallery-card span{display:flex;flex-direction:column;gap:4px;padding:12px}
.gallery-card b{font-family:Georgia,serif}
.gallery-card small{color:var(--page-muted)}
.gallery-card:hover img{transform:scale(1.012)}
.gallery-locked .gallery-grid{pointer-events:none}
.gallery-locked .gallery-card img{filter:blur(16px)}
.gallery-lightbox{
  position:fixed;
  z-index:100;
  inset:0;
  display:grid;
  place-items:center;
  padding:62px 18px 20px;
  background:rgba(10,18,32,.92);
  backdrop-filter:blur(12px);
}
.gallery-lightbox figure{margin:0;max-width:min(1100px,96vw);max-height:88vh;text-align:center}
.gallery-lightbox img{max-width:100%;max-height:80vh;object-fit:contain;background:#fff}
.gallery-lightbox figcaption{margin-top:10px;color:#f8edd8;font-size:.76rem}
.gallery-close{
  position:absolute;
  top:max(14px,env(safe-area-inset-top));
  right:max(18px,env(safe-area-inset-right));
  border:1px solid rgba(255,255,255,.5);
  border-radius:999px;
  background:transparent;
  color:#fff;
  padding:9px 14px;
}
.lightbox-open{overflow:hidden}

@media(max-width:900px){
  .az-entry-grid,.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .book-grid{grid-template-columns:1fr}
  .publisher-contact{grid-template-columns:1fr}
}
@media(max-width:620px){
  .slim-page-header{align-items:flex-start}
  .slim-home{font-size:.75rem;padding-top:7px}
  .slim-page-nav{gap:10px}
  .slim-page-nav a{font-size:.56rem}
  .app-page-shell{padding:34px 13px 52px}
  .portal-corner-nav{
    top:max(13px,env(safe-area-inset-top));
    right:max(12px,env(safe-area-inset-right));
    gap:10px;
  }
  .portal-corner-nav a{font-size:.55rem}
  .az-entry-grid,.gallery-grid{grid-template-columns:1fr}
  .book-card{grid-template-columns:118px 1fr;gap:15px;padding:15px}
  .book-card h2{font-size:1.35rem}
  .amazon-button{font-size:.61rem;padding:10px 13px}
}
@media(max-width:420px){
  .slim-home{max-width:118px;white-space:normal;line-height:1.05}
  .book-card{grid-template-columns:1fr}
  .book-card img{max-width:210px;margin:auto}
}
