:root{color-scheme:dark;--bg:#080d12;--surface:#101923;--gold:#d0b17d;--ivory:#edeae1;--muted:#9ba8b3;--line:rgba(224,226,227,.18);font-synthesis:none}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ivory);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}a:focus-visible{outline:2px solid var(--gold);outline-offset:6px}.topline{height:3px;background:linear-gradient(90deg,#2e5268 0%,#ad8b52 54%,#2a546a 100%)}.masthead{max-width:1232px;padding:30px 48px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:30px}.wordmark{display:inline-flex;align-items:center;gap:14px;text-decoration:none!important}.mark{font-family:Georgia,serif;font-size:22px;color:var(--gold);letter-spacing:-.07em;border-right:1px solid var(--line);padding-right:15px}.name{font-size:11px;font-weight:600;letter-spacing:.2em;white-space:nowrap}.masthead nav{display:flex;gap:28px;color:#a9b4bc;font-size:12px}.hero{max-width:1232px;margin:0 auto;display:grid;grid-template-columns:minmax(310px, .85fr) minmax(360px,1fr);min-height:710px;gap:clamp(55px,8vw,125px);align-items:center;padding:34px 48px 102px}.cover-zone{min-width:0;display:flex;align-items:center;justify-content:center}.cover-frame{width:min(100%,480px);aspect-ratio:1103/1426;display:flex;align-items:center;justify-content:center;background:#0b121b;box-shadow:0 28px 85px rgba(0,0,0,.5),0 0 0 1px rgba(220,194,144,.14);overflow:hidden}.cover-frame img{display:block;width:100%;height:100%;object-fit:contain}.eyebrow,.section-no{font-size:11px;text-transform:uppercase;letter-spacing:.24em;color:var(--gold);font-weight:600}.intro h1{margin:24px 0 24px;line-height:.94;letter-spacing:-.046em;font:400 clamp(49px,5.8vw,88px)/.99 Georgia,"Times New Roman",serif}.intro h1 span,.intro h1 em{display:block}.intro h1 em{font-style:normal;color:var(--gold);margin-top:9px}.subtitle{font-size:clamp(14px,1.4vw,19px);line-height:1.55;color:#c8d0d3;max-width:480px}.lead{font-size:15.5px;line-height:1.9;max-width:490px;color:#bac5cb;margin:37px 0 30px}.meta{display:flex;flex-wrap:wrap;gap:12px 23px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#b8aa91;padding-top:25px;border-top:1px solid var(--line)}.text-link{display:inline-flex;margin-top:34px;gap:16px;align-items:center;color:var(--gold);font-size:13px;font-weight:600;letter-spacing:.045em}.rule{height:1px;background:var(--line);max-width:1136px;margin:0 auto}.story,.method{max-width:1136px;margin:0 auto;display:grid;grid-template-columns:220px minmax(0,1fr);gap:40px;padding:115px 0}.story h2,.method h2,.section-head h2{margin:0 0 30px;font:400 clamp(30px,3.3vw,51px)/1.15 Georgia,"Times New Roman",serif;letter-spacing:-.025em;max-width:760px}.story p:not(.section-no),.method p:not(.section-no){font-size:15.5px;color:#b8c1c7;line-height:1.9;max-width:710px;margin-bottom:19px}.contents{max-width:1136px;margin:0 auto;padding:108px 0 112px}.section-head{display:grid;grid-template-columns:220px minmax(0,1fr);gap:40px;padding-bottom:45px}.contents ol{margin:0;padding:0;list-style:none}.contents li{display:grid;grid-template-columns:80px minmax(0,1fr) 115px;gap:22px;align-items:baseline;padding:26px 0;border-top:1px solid var(--line)}.contents li:last-child{border-bottom:1px solid var(--line)}.part-n{color:var(--gold);font:italic 31px Georgia,serif}.contents strong{display:block;font:400 24px/1.2 Georgia,serif;letter-spacing:-.01em}.contents small{display:block;font:400 13px/1.65 ui-sans-serif,system-ui,sans-serif;color:#97a4ad;margin-top:7px}.chapters{font:11px ui-sans-serif,system-ui,sans-serif;color:#ad9a7a;letter-spacing:.09em;text-transform:uppercase;text-align:right;white-space:nowrap}footer{border-top:1px solid var(--line);max-width:1136px;margin:auto;padding:35px 0 55px;display:flex;justify-content:space-between;gap:25px;flex-wrap:wrap;font-size:12px;color:#a3aab1}footer a{color:var(--gold)}
@media(max-width:1232px){.story,.method,.contents,footer{margin-left:48px;margin-right:48px}}
@media(max-width:880px){.masthead{padding:25px 28px}.hero{padding:45px 28px 75px;gap:35px;grid-template-columns:minmax(245px,.9fr) minmax(0,1fr);min-height:0}.intro h1{font-size:clamp(38px,6vw,65px)}.cover-frame{max-width:400px}.story,.method,.contents,footer{margin-left:28px;margin-right:28px}.story,.method,.section-head{grid-template-columns:155px minmax(0,1fr);gap:25px}.masthead nav{gap:14px}}
@media(max-width:680px){.masthead{padding:20px 20px;gap:12px}.name{font-size:10px}.masthead nav{display:none}.hero{grid-template-columns:1fr;padding:24px 20px 66px;gap:49px}.cover-frame{width:min(100%,390px)}.intro h1{font-size:clamp(46px,11vw,76px);margin-top:17px}.intro h1 em{margin-top:6px}.lead{margin-top:28px}.story,.method,.contents,footer{margin:0 20px}.story,.method{display:block;padding:68px 0}.section-head{display:block;padding-bottom:30px}.section-no{margin-bottom:30px}.contents{padding:70px 0}.contents li{grid-template-columns:37px minmax(0,1fr);gap:11px;padding:23px 0}.contents strong{font-size:20px}.contents .chapters{grid-column:2;text-align:left;margin-top:-7px}.part-n{font-size:24px}.story h2,.method h2,.section-head h2{font-size:34px}footer{padding:30px 0 45px}.meta{gap:13px 19px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.sample-link{display:inline-flex;align-items:center;gap:12px;padding:13px 17px;margin-top:26px;border:1px solid var(--gold);color:var(--ivory);font-size:13px;font-weight:600;letter-spacing:.025em;max-width:100%}.sample-link:hover{background:rgba(208,177,125,.12);text-decoration:none}.availability{color:var(--muted);font-size:13px;line-height:1.7;margin:14px 0 0;max-width:420px}@media(max-width:680px){.sample-link{justify-content:center;min-height:46px}}

.delivery-note,.policy-link{font-size:12px;line-height:1.7;max-width:440px;color:var(--muted);margin:10px 0 0}.policy-link a{color:var(--gold);text-decoration:underline;text-underline-offset:3px}

.buy-link{display:inline-flex;align-items:center;justify-content:center;gap:12px;background:var(--gold);color:#080d12;padding:14px 22px;margin-top:16px;font-size:14px;font-weight:700;min-height:46px}.buy-link:hover{background:#e4c999;text-decoration:none}@media(max-width:680px){.buy-link{width:100%;max-width:390px}}


/* Shared bookstore header. Generative Music's editorial styling remains below. */
.bookstore-rail{background:var(--bg);color:var(--ivory);font-family:inherit}
.bookstore-header,.bookstore-edition-strip{max-width:1136px;margin:0 auto}
.bookstore-header{min-height:76px;padding:12px 20px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line)}
.bookstore-back{display:inline-flex;align-items:center;gap:13px;min-width:0;text-decoration:none!important}
.bookstore-arrow{font-size:29px;line-height:1}
.bookstore-copy{display:flex;flex-direction:column;gap:2px;line-height:1.3;letter-spacing:.06em}
.bookstore-copy small{font-size:10px;font-weight:500;color:var(--muted)}
.bookstore-copy strong{font-size:13px;font-weight:700}
.bookstore-header-buy{display:inline-flex;align-items:center;justify-content:center;min-height:44px;border:1px solid var(--gold);background:var(--gold);color:var(--bg);border-radius:2px;padding:10px 14px;white-space:nowrap;font-size:12px;letter-spacing:.03em;text-decoration:none!important}
.bookstore-edition-strip{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:5px 18px;padding:11px 20px;color:var(--muted);font-size:12px;line-height:1.4;border-bottom:1px solid var(--line)}
.bookstore-edition-strip a{text-decoration:underline;text-underline-offset:3px}
.book-section-nav{display:flex;justify-content:center;gap:28px;flex-wrap:wrap;max-width:1232px;margin:auto;padding:17px 20px;color:var(--muted);font-size:12px}
#purchase,#delivery-details{scroll-margin-top:24px}
@media(max-width:420px){.bookstore-header{gap:10px}.bookstore-back{gap:8px}.bookstore-copy strong{font-size:11px}.bookstore-arrow{font-size:24px}.bookstore-header-buy{padding:8px;font-size:11px}.book-section-nav{gap:14px}}
