/* STEVEN MORDEN | First website build
   Modify colors and dimensions here, without changing the book image files. */
:root{
  --stage:#0a0708;--burgundy:#650d19;--burgundy-dark:#420811;--gold:#bd9350;
  --cream:#fefdfb;--ink:#292225;--muted:#62545a;
  --title-font:Georgia,'Times New Roman',serif;
  --curtain-width:clamp(70px, 13.5vw, 225px);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:95px}
body{margin:0;min-height:100vh;background:radial-gradient(ellipse at 50% 10%,#201314 0,#0c090a 38%,var(--stage) 100%);font-family:Georgia,'Times New Roman',serif;color:var(--ink);line-height:1.55}
button,a{font:inherit}a{color:inherit}button{cursor:pointer}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #f6c865;outline-offset:4px}
.stage-curtain{position:fixed;z-index:0;top:0;bottom:0;width:var(--curtain-width);background-repeat:no-repeat;background-size:100% 100%;pointer-events:none;filter:saturate(1.18)}
.stage-curtain--left{left:0;background-image:url('assets/curtain-left.png')}
.stage-curtain--right{right:0;background-image:url('assets/curtain-right.png')}
.skip-link{position:absolute;top:-80px;left:14px;padding:10px 18px;background:#fff;z-index:20}
.skip-link:focus{top:12px}
.site-header,.site-nav,.site-main,/* Contact: full-width form within the same white, gold-framed stage panel. */
.panel--contact{display:block;min-height:auto}
.contact-intro{display:grid;grid-template-columns:minmax(145px,200px) 1fr;align-items:center;gap:clamp(22px,3.9vw,46px)}
.contact-email{font-weight:700;color:var(--burgundy);text-underline-offset:3px;overflow-wrap:anywhere}
.contact-email:hover{color:#9d1f2f}
.contact-form{margin-top:28px;border-top:1px solid #d6ba8a;padding-top:25px}
.contact-form h3{font-family:var(--title-font);font-weight:500;font-size:clamp(1.25rem,2vw,1.6rem);color:var(--burgundy);margin:0 0 18px}
.contact-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 22px}
.form-field{display:flex;flex-direction:column;gap:6px;min-width:0}
.form-field--full{grid-column:1/-1}
.form-field label{font-size:.93rem;font-weight:700;color:#4b3134}
.form-field label span{color:var(--burgundy)}
.form-field input,.form-field textarea{width:100%;border:1px solid #bba89a;border-radius:3px;background:#fff;padding:11px 12px;color:var(--ink);font:1rem Georgia,'Times New Roman',serif;line-height:1.4;box-shadow:inset 0 1px 3px #0001}
.form-field input:hover,.form-field textarea:hover{border-color:#8e6c52}
.form-field textarea{resize:vertical;min-height:140px}
.contact-form-actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:18px}
.contact-privacy-note{font-size:.8rem;color:var(--muted);line-height:1.45;margin:0;flex:1 1 270px}
.contact-honeypot{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
@media(max-width:690px){.contact-intro{display:flex;flex-direction:column;gap:17px}.contact-form{margin-top:23px;padding-top:20px}.contact-form-grid{grid-template-columns:1fr;gap:15px}.contact-form-actions{align-items:stretch}.contact-form-actions .btn{width:100%}}
.site-footer{position:relative;z-index:1}
.site-header{text-align:center;padding:23px 20px 11px}
.site-title{text-decoration:none;color:#eed6a3;display:inline-block;line-height:1.1;font-size:clamp(2.1rem,4.1vw,4.05rem);letter-spacing:.135em;text-transform:uppercase;text-shadow:0 2px 0 #5c390b,0 3px 15px #000}
.site-title span{border-bottom:1px solid rgba(202,158,84,.55)}
.site-subtitle{margin:4px 0 0;color:#d6bc96;font-size:.76rem;letter-spacing:.21em;text-transform:uppercase}
.site-nav{position:sticky;top:0;z-index:10;padding:0 max(10px,calc((100% - 1110px)/2));background:rgba(10,7,8,.93);border-bottom:1px solid #a67b3e;box-shadow:0 6px 12px #0005}
.nav-items{display:flex;justify-content:center;align-items:center;gap:clamp(12px,1.9vw,28px);overflow-x:auto;scrollbar-width:thin;white-space:nowrap;padding:11px 12px}
.nav-items a{color:#f9eddf;text-decoration:none;font-family:var(--title-font);font-size:clamp(.79rem,.93vw,.98rem);transition:color .15s;border-bottom:2px solid transparent;padding:4px 0}
.nav-items a:hover,.nav-items a[aria-current]{color:#f6cb78;border-bottom-color:#b88235}
.site-main{width:min(1040px,calc(100% - (var(--curtain-width) * 1.8)));margin:20px auto 44px;display:grid;gap:22px}
.panel{background:linear-gradient(135deg,#fff 0%,#fbf8f4 100%);border:3px solid #c7a06a;outline:1px solid rgba(255,255,255,.55);outline-offset:-8px;box-shadow:0 10px 30px #000b,0 0 0 6px #0005;padding:clamp(20px,3.2vw,45px);display:grid;grid-template-columns:minmax(155px,235px) minmax(0,1fr);align-items:center;gap:clamp(22px,3.9vw,46px);scroll-margin-top:90px;min-height:320px}
.panel--hero{grid-template-columns:minmax(175px,300px) minmax(0,1fr);min-height:430px;padding:clamp(24px,3vw,46px)}
.book-cover{position:relative;display:block;justify-self:center;width:min(100%,205px);padding:0;border:0;background:none;transform:perspective(700px) rotateY(-3deg);transform-origin:left center;transition:transform .25s ease,filter .25s ease;filter:drop-shadow(5px 7px 7px #0005)}
.book-cover--hero{width:min(100%,290px)}
.book-cover img{display:block;width:100%;height:auto;aspect-ratio:2/3;object-fit:cover;box-shadow:3px 4px 8px #0005}
.book-cover:hover,.book-cover:focus-visible{transform:perspective(700px) rotateY(-8deg) translateY(-5px) scale(1.025);filter:drop-shadow(7px 11px 10px #0006)}
.cover-hint{position:absolute;left:0;right:0;bottom:0;padding:9px 8px;background:linear-gradient(transparent,#160e0df0);color:#fff9ed;font:italic .8rem Georgia,serif;text-align:center;opacity:0;transition:opacity .2s}
.book-cover:hover .cover-hint,.book-cover:focus-visible .cover-hint{opacity:1}
.eyebrow{text-transform:uppercase;letter-spacing:.19em;font-size:.76rem;color:#815d34;margin:0 0 11px;font-weight:700}
.diamond{color:var(--gold);font-size:.65em;margin:0 8px}
h1,h2{font-family:var(--title-font);color:var(--burgundy);font-weight:500;text-transform:uppercase;line-height:1.08;letter-spacing:-.014em;margin:0 0 11px}
h1{font-size:clamp(2rem,3.7vw,3.5rem)}h2{font-size:clamp(1.8rem,3vw,2.9rem)}
.section-kicker{font-style:italic;font-size:1.19rem;color:#3e292c;margin:0 0 18px;padding-top:11px;border-top:1px solid #d3b47b}
.section-copy>p:not(.eyebrow):not(.section-kicker){font-size:1.04rem;margin-top:0;margin-bottom:16px}
.section-copy .lead{font-size:1.12rem!important}
.button-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;border:1px solid #d5ad69;border-radius:4px;padding:10px 19px;text-decoration:none;font-size:.87rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700;line-height:1.25;box-shadow:0 3px 8px #0004;transition:transform .17s ease,filter .17s ease}
.btn:hover{transform:translateY(-2px);filter:brightness(1.1)}
.btn--red{background:linear-gradient(#7a1522,#4a0610);color:#fffaf6}
.btn--gold{background:linear-gradient(#d3ac69,#946426);color:#fff}
.subnote{font-size:.77rem!important;color:#806f74;line-height:1.35;margin:13px 0 0!important;max-width:40rem}
.feature-section{grid-template-columns:minmax(145px,200px) minmax(0,1fr);min-height:245px}
.feature-art{width:min(100%,185px);aspect-ratio:1/1;display:grid;place-items:center;justify-self:center;background:linear-gradient(125deg,#35030a,#870c22 56%,#290209);color:#d9ae54;border:2px solid #c89b53;box-shadow:5px 7px 11px #0005}
.feature-art svg{width:70%;height:70%}
.project-target{color:#5d3d22}
.site-footer{width:min(1040px,90%);margin:0 auto 30px;text-align:center;color:#efdbc2;font-size:.84rem}
.site-footer a{color:#e8c585}
.details-dialog{width:min(790px,calc(100vw - 30px));max-height:min(84vh,950px);border:3px solid #c69b59;padding:0;overflow:auto;color:var(--ink);background:#fffdf9;box-shadow:0 30px 120px #000;}
.details-dialog::backdrop{background:#070305dd;backdrop-filter:blur(3px)}
.dialog-close{position:sticky;float:right;top:9px;margin:9px 10px 0 0;z-index:3;background:#650d19;color:white;border:1px solid #cda45f;border-radius:50%;width:34px;height:34px;line-height:1;font-size:1.55rem}
.dialog-interior{padding:clamp(20px,4vw,42px)}
.dialog-interior h2{font-size:clamp(1.8rem,3vw,2.7rem)}
.book-open-stage{display:grid;grid-template-columns: minmax(130px,34%) 1fr;gap:clamp(15px,3vw,32px);align-items:center;perspective:1200px}
.book-open-image{width:100%;filter:drop-shadow(6px 7px 10px #0006);transform-origin:left center;animation:unfold-cover .65s both cubic-bezier(.2,.7,.3,1)}
.book-open-image img{width:100%;display:block;aspect-ratio:2/3;object-fit:cover}
.book-open-body{animation:unfold-text .65s .12s both ease-out}
.book-open-body .section-kicker{margin-bottom:14px}
.dialog-interior p{line-height:1.65}
/* Chapter sample in the opened Diary of Eli: distinct from the larger book title. */
.chapter-preview{grid-column:1/-1;border-top:1px solid #d5b991;margin-top:2px;padding-top:22px;max-width:100%}
.chapter-preview h3{font-family:Georgia,'Times New Roman',serif;font-size:clamp(1.2rem,1.7vw,1.4rem);line-height:1.35;font-weight:700;text-transform:none;letter-spacing:0;color:var(--burgundy);margin:0 0 12px}
.chapter-preview p{max-width:64ch;font-family:Georgia,'Times New Roman',serif;font-size:1.03rem;line-height:1.75;margin:0}
@keyframes unfold-cover{from{opacity:.6;transform:translateX(70px) scale(.55) rotateY(0deg)}to{opacity:1;transform:translateX(0) scale(1) rotateY(-13deg)}}
@keyframes unfold-text{from{opacity:0;transform:translateX(-16px)}to{opacity:1;transform:translateX(0)}}
.toast{position:fixed;z-index:30;bottom:20px;left:50%;transform:translateX(-50%);max-width:min(400px,calc(100% - 32px));background:#fdf8f1;color:#3e1216;border:1px solid #cfa25c;padding:14px 20px;box-shadow:0 10px 28px #0006}
@media(min-width:1400px){.site-main{width:1060px}}
@media(max-width:1050px){.site-main{width:calc(100% - 80px)}.stage-curtain{width:60px;opacity:.85}.panel{gap:25px}}
@media(max-width:690px){
 html{scroll-padding-top:75px}
 .site-header{padding:25px 15px 10px}.site-title{font-size:clamp(1.75rem,7vw,3rem);letter-spacing:.08em}
 .site-subtitle{font-size:.65rem}.site-main{width:calc(100% - 24px);margin-top:14px;gap:15px}
 .stage-curtain{width:18px;opacity:.66}.nav-items{justify-content:flex-start;gap:20px;padding:12px 10px}
 .panel,.panel--hero,.feature-section{display:flex;flex-direction:column;gap:17px;min-height:auto;padding:22px 17px}
 .panel--hero{padding-top:26px}
 .book-cover{width:min(190px,55vw)}.book-cover--hero{width:min(240px,65vw)}
 .feature-art{width:100px}.feature-art svg{width:72%;height:72%}
 h1{font-size:2.3rem}h2{font-size:2rem}
 .section-copy{width:100%}
 .section-copy .lead{font-size:1.02rem!important}
 .book-open-stage{grid-template-columns:1fr;justify-items:center}.book-open-image{max-width:190px}
 .dialog-interior{padding:20px}.details-dialog{max-height:90vh}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important}}
