/* Primary brand palette: navy and gold, with white and pale gold surfaces. */
:root {
  --paper:#ffffff; --paper-deep:#fff8e6; --ink:#29315f;
  --ink-soft:#465577; --ink-muted:#596685;
  --error:#ad1c2a; --brand-gold-hover:#f2ac14;
  --brand-navy:#29315f; --brand-gold:#ffbf2f;
  --line:rgba(41,49,95,.22); --line-dark:rgba(255,255,255,.3);
  --serif:'Merriweather',Georgia,serif; --sans:'Space Grotesk',Arial,sans-serif;
  --mono:'JetBrains Mono',monospace; --max:1240px; --ease:cubic-bezier(.22,.61,.36,1);
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:24px; scroll-padding-bottom:100px; }
body { margin:0; background:var(--paper); color:var(--ink); font:16px/1.65 var(--sans); }
a { color:inherit; text-decoration:none; }
button,input,select,textarea { font:inherit; }
button,summary { cursor:pointer; }
img { display:block; max-width:100%; }
[hidden] { display:none !important; }
:focus-visible { outline:3px solid var(--brand-navy); outline-offset:4px; }
.order-copy :focus-visible,.site-footer :focus-visible,.floating-order :focus-visible { outline-color:var(--paper); }
.container { width:min(calc(100% - 48px),var(--max)); margin-inline:auto; }
.section-pad { padding:56px 0; position:relative; }
.hero-grid>*,.section-intro>*,.gift-heading>*,.author-grid>*,.order-grid>*,.proof-layout>*,.faq-grid>* { min-width:0; }
.grain { position:fixed; inset:0; pointer-events:none; z-index:10; opacity:.025; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
.site-header { position:relative; z-index:5; background:var(--paper); border-bottom:1px solid var(--line); }
.header-inner { min-height:80px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.brand { display:inline-flex; align-items:center; gap:10px; flex-shrink:0; }
.brand-mark { width:43px; height:43px; border:1px solid var(--ink); border-radius:50%; overflow:hidden; }
.brand-mark img { width:100%; height:100%; object-fit:cover; }
.brand-copy { display:flex; flex-direction:column; font:600 14px/1.4 var(--sans); letter-spacing:.03em; }
.brand-copy strong { font-size:11px; letter-spacing:.14em; }
.brand-copy span { color:var(--brand-navy); font-size:22px; font-weight:800; line-height:1.35; letter-spacing:.015em; white-space:nowrap; }
.site-header .brand-copy span { background:linear-gradient(transparent 72%,var(--brand-gold) 72%,var(--brand-gold) 94%,transparent 94%); }
.site-nav { display:flex; align-items:center; gap:24px; font-size:14px; }
.site-nav a:not(.nav-cta) { color:var(--ink-soft); }
.site-nav a:hover { color:var(--brand-navy); }
.nav-cta { padding:12px 16px; background:var(--brand-gold); color:var(--brand-navy); }
.site-nav .nav-cta:hover { background:var(--brand-gold-hover); color:var(--brand-navy); }
.menu-toggle { display:none; border:1px solid var(--line); background:transparent; color:var(--ink); padding:10px 12px; min-height:44px; }
.menu-toggle span { display:none; }
.menu-toggle b { font-weight:600; }
.hero { padding:40px 0; }
.hero-grid { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); align-items:center; gap:48px; }
.eyebrow,.overline,.section-kicker { font:600 14px/1.5 var(--sans); letter-spacing:.025em; }
.eyebrow { color:var(--brand-navy); margin-bottom:12px; letter-spacing:0; }
.eyebrow-line,.kicker-line { width:28px; height:1px; background:currentColor; display:inline-block; flex-shrink:0; }
.eyebrow,.section-kicker { display:flex; align-items:center; gap:10px; }
.section-kicker>span:first-child { display:none; }
.section-kicker { color:var(--brand-navy); }
.overline { color:var(--brand-navy); margin:0 0 12px; text-transform:none; }
h1,h2,h3 { font-family:var(--serif); font-weight:400; }
.hero-title { font-size:clamp(38px,3.9vw,56px); line-height:1.22; letter-spacing:-.03em; margin:0 0 16px; max-width:19ch; text-wrap:pretty; }
.reveal-line { display:block; }
.hero-title em { color:var(--brand-navy); white-space:nowrap; }
.hero-deck { font-size:17px; max-width:48ch; color:var(--ink-soft); margin:0 0 20px; }
.hero-deck strong { color:var(--ink); }
.hero-offer { margin:0 0 12px; font-size:15px; color:var(--ink-soft); }
.hero-offer strong,.hero-offer span { display:block; }
.hero-offer strong { color:var(--brand-navy); font-size:22px; line-height:1.45; }
.hero-offer strong span { display:inline; font-size:15px; font-weight:500; color:var(--ink); }
.hero-actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px 20px; margin-bottom:24px; }
.btn { display:inline-flex; align-items:center; justify-content:center; gap:12px; min-height:48px; border:1px solid transparent; padding:12px 18px; font:600 15px/1.5 var(--sans); text-align:center; transition:background .18s,color .18s; }
.btn-primary { background:var(--brand-gold); color:var(--brand-navy); }
.btn-primary:hover { background:var(--brand-gold-hover); }
.btn-outline { border-color:var(--ink); color:var(--ink); background:transparent; }
.btn-outline:hover { background:var(--ink); color:var(--paper); }
.text-link,.arrow-link { font-size:15px; text-decoration:underline; text-underline-offset:5px; min-height:44px; display:inline-flex; align-items:center; gap:8px; padding-block:8px; }
.arrow-link { color:var(--brand-navy); display:inline-block; margin-top:22px; }
.trust-row { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.trust-row div { padding-left:0; }
.trust-row strong { display:block; font:600 23px/1.4 var(--sans); }
.trust-row strong span { color:var(--brand-navy); }
.trust-row div>span { display:block; font-size:14px; color:var(--ink-soft); }
.hero-stage { position:relative; display:flex; justify-content:center; align-items:center; }
.stage-caption { display:none; }
.stage-caption span,.stage-caption strong { display:block; }
.stage-note,.stage-seal,.hero-orbit,.math-ghost,.author-ghost,.solution-stamp,.item-symbol { display:none; }
/* Warm light ornaments punctuate the moving brand ribbon. */
.marquee-band {
  position:relative; overflow:hidden; padding:20px 0; color:var(--paper);
  background-color:var(--brand-navy);
  background-image:linear-gradient(110deg,transparent,rgba(255,191,47,.08),transparent);
  border-block:1px solid rgba(173,28,42,.2);
}
.slogan-track { display:flex; width:max-content; animation:slogan-drift 24s ease-in-out infinite alternate; }
.slogan-group { display:flex; flex-shrink:0; align-items:center; justify-content:space-between; min-width:max(660px,50vw); gap:38px; padding-inline:32px; }
.slogan-copy { margin:0; white-space:nowrap; font:700 25px/1.4 var(--serif); letter-spacing:-.025em; }
.slogan-copy em { position:relative; display:inline-block; font-weight:400; font-style:italic; color:var(--brand-gold); }
.slogan-copy em::after { content:""; position:absolute; left:0; right:0; bottom:-5px; height:6px; border-top:1px solid #ffbf2f80; border-radius:50%; transform:rotate(-2deg); }
.slogan-connector { display:inline-block; margin-inline:9px; font-weight:400; color:#ffffff70; }
.slogan-ornament { position:relative; display:block; width:106px; height:40px; flex-shrink:0; }
.slogan-ornament::before,.slogan-ornament::after { content:""; position:absolute; width:36px; height:14px; border-top:1px solid #ffbf2f70; border-radius:50%; }
.slogan-ornament::before { left:0; top:22px; transform:rotate(-12deg); }
.slogan-ornament::after { right:0; top:12px; transform:rotate(-12deg); }
.slogan-spark { position:absolute; left:40px; top:6px; width:26px; height:28px; background:var(--brand-gold); clip-path:polygon(50% 0,60% 36%,100% 50%,60% 62%,50% 100%,40% 62%,0 50%,40% 36%); transform:rotate(12deg); }
.slogan-spark-small { left:72px; top:28px; width:9px; height:11px; opacity:.65; transform:rotate(-8deg); }
@keyframes slogan-drift {
  from { transform:translateX(0); }
  to { transform:translateX(-25%); }
}
@media (max-width:560px) {
  .marquee-band { padding-block:17px; }
  .slogan-group { min-width:520px; gap:26px; padding-inline:22px; }
  .slogan-copy { font-size:20px; }
  .slogan-connector { margin-inline:6px; }
  .slogan-ornament { width:86px; }
  .slogan-spark { left:30px; }
  .slogan-spark-small { left:60px; }
}
@media (prefers-reduced-motion:reduce) {
  .slogan-track { width:100%; animation:none; transform:none; }
  .slogan-group { min-width:0; width:100%; justify-content:center; padding-inline:16px; }
  .slogan-group:not(:first-child),.slogan-ornament { display:none; }
  .slogan-copy { white-space:normal; text-align:center; }
}

.section-intro,.gift-heading { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); gap:16px 48px; align-items:end; }
.section-intro>.section-kicker,.gift-heading>.section-kicker { grid-column:1/-1; }
h2 { font-size:clamp(30px,3vw,42px); line-height:1.28; letter-spacing:-.025em; margin:0; max-width:24ch; text-wrap:pretty; }
h2 em { font-style:normal; color:inherit; }
.section-subtitle { font-size:17px; line-height:1.55; color:var(--ink-soft); margin:10px 0 0; max-width:48ch; }
.author-section .section-subtitle { color:#e4ecf8; margin:0 0 16px; }
.order-section .section-subtitle { color:#e4ecf8; margin:0 0 16px; }
.intro-note { font-size:16px; color:var(--ink-soft); max-width:46ch; margin:0; }
.friction,.gift-section { background:var(--paper-deep); }
.friction .section-intro { align-items:center; }
.learning-route { margin-top:32px; background:var(--paper); border:1px solid var(--line); }
.route-labels { display:grid; grid-template-columns:1fr 1fr; gap:32px; padding:16px 28px; background:var(--brand-gold); color:var(--brand-navy); font-size:12px; font-weight:700; letter-spacing:.045em; }
.route-labels span:last-child { padding-left:46px; }
.route-row { display:grid; grid-template-columns:1fr 1fr; gap:32px; padding:24px 28px; }
.route-row+.route-row { border-top:1px solid var(--line); }
.route-problem,.route-answer { display:grid; grid-template-columns:34px minmax(0,1fr); gap:12px; align-items:start; }
.route-number { font-size:13px; font-weight:700; color:var(--ink-muted); padding-top:3px; }
.route-problem h3 { font-size:21px; line-height:1.4; margin:0 0 6px; }
.route-row p { font-size:14px; line-height:1.65; margin:0; color:var(--ink-soft); max-width:48ch; }
.route-direction { display:grid; place-items:center; width:32px; height:32px; background:var(--paper-deep); color:var(--brand-navy); font-size:21px; }
.route-answer h4 { font:700 16px/1.5 var(--sans); margin:0 0 6px; }
.route-footer { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:24px 28px; background:var(--brand-navy); color:var(--paper); }
.route-footer p { margin:0; font:400 24px/1.45 var(--serif); }
.route-footer em { color:var(--brand-gold); }
@media (max-width:700px) {
  .route-labels { display:none; }
  .route-row { grid-template-columns:1fr; gap:16px; padding:22px 18px; }
  .route-problem { grid-template-columns:26px minmax(0,1fr); }
  .route-problem h3 { font-size:20px; }
  .route-answer { margin-left:38px; grid-template-columns:24px minmax(0,1fr); gap:10px; padding:14px; background:var(--paper-deep); }
  .route-direction { width:24px; height:24px; font-size:18px; }
  .route-footer { align-items:stretch; flex-direction:column; gap:18px; padding:22px 18px; }
  .route-footer p { font-size:22px; }
}
.friction-grid { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); gap:48px; margin-top:36px; }
.friction-list { border-top:0; }
.friction-item { display:grid; grid-template-columns:28px minmax(0,1fr); gap:14px; padding:20px 0; border-bottom:1px solid var(--line); }
.item-no,.gift-no { color:var(--brand-navy); font-size:14px; }
.friction-item h3 { font-size:21px; line-height:1.4; margin:0 0 6px; }
.friction-item p { margin:0; color:var(--ink-soft); }
.solution-note { background:var(--paper); border:1px solid var(--line); padding:26px; align-self:start; }
.solution-note h3 { font-size:27px; line-height:1.35; margin:0 0 20px; }
h3 em { font-style:normal; }
.solution-note ul { list-style:none; margin:0; padding:0; }
.solution-note li { display:grid; grid-template-columns:24px minmax(0,1fr); gap:4px 10px; padding:12px 0; }
.solution-note li span { grid-row:span 2; color:var(--brand-navy); font-size:14px; }
.solution-note small { color:var(--ink-soft); font-size:14px; }
.author-section { background:var(--ink); color:var(--paper); }
.author-grid { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:64px; align-items:center; }
.author-portrait { min-width:0; }
.portrait-caption { margin-top:20px; display:flex; flex-direction:column; align-items:flex-start; gap:6px; padding-left:18px; border-left:4px solid var(--brand-gold); }
.portrait-caption>span { font-size:15px; color:#d0ddf0; }
.portrait-caption>strong { font:700 clamp(30px,3vw,40px)/1.3 var(--serif); color:var(--brand-gold); letter-spacing:-.025em; }
.author-section .section-kicker { color:var(--brand-gold); margin-bottom:14px; }
.author-section .overline { color:var(--brand-gold); }
.author-copy h2 { margin-bottom:24px; }
.author-lead { color:#e4ecf8; font-size:18px; line-height:1.8; }
.author-channel { display:flex; flex-wrap:wrap; gap:8px; font-size:15px; color:#d0ddf0; }
.author-section .section-subtitle { font-size:20px; }
.author-section .overline { font-size:16px; }
.credentials { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; border-block:1px solid var(--line-dark); padding:20px 0; }
.credentials>div { display:flex; gap:10px; }
.credential-mark { font-size:14px; color:var(--brand-gold); }
.credentials strong,.credentials small { display:block; }
.credentials strong { font-size:18px; }
.credentials small { font-size:16px; line-height:1.65; color:#d0ddf0; }
.author-quote { font:italic 22px/1.65 var(--serif); margin:24px 0 0; }
.author-quote cite { display:block; font:600 16px/1.6 var(--sans); margin-top:12px; color:var(--brand-gold); }
.catalog-facts { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; margin-top:24px; padding:16px 20px; background:var(--paper-deep); }
.catalog-facts div { padding-left:0; }
.catalog-facts div:first-child { border-left:0; padding-left:0; }
.catalog-facts strong { display:block; font:700 18px/1.5 var(--serif); }
.catalog-facts span { font-size:14px; color:var(--ink-soft); }
.book-catalog { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; margin:32px 0; }
.book-card { min-width:0; }
.product-cover { aspect-ratio: .74; display:flex; align-items:center; justify-content:center; background:var(--paper); }
.product-cover img { width:100%; height:100%; object-fit:contain; }
.product-price { display:block; margin-bottom:12px; color:var(--brand-navy); font-size:22px; }
.book-selection { border:1px solid var(--line); padding:14px; min-width:0; }
.book-selection legend { padding:0 6px; font-weight:600; }
.order-form .book-option { display:grid; grid-template-columns:minmax(0,1fr) 76px; align-items:center; gap:12px; padding:10px 0; border-bottom:1px solid var(--line); }
.order-form .book-option input { padding:8px; }
.book-selection[hidden] { display:none; }
.btn:disabled { opacity:.6; cursor:wait; }
.book-meta { display:flex; flex-wrap:wrap; justify-content:space-between; gap:6px; font-size:14px; color:var(--ink-soft); margin-bottom:14px; }
.book-card-copy { padding-top:22px; }
.book-card-copy h3 { font-size:23px; line-height:1.4; margin:0 0 10px; }
.book-card-copy p { margin:0 0 16px; color:var(--ink-soft); }
.book-tag { display:inline-flex; gap:10px; align-items:center; font-size:14px; color:var(--ink-soft); border:1px solid var(--line); padding:6px 10px; }
.book-tag i { color:var(--brand-navy); font-style:normal; }
.catalog-foot { display:grid; gap:12px; padding:20px 24px; background:var(--paper-deep); }
.catalog-note { max-width:90ch; font-size:15px; color:var(--ink-soft); margin:0; }
.catalog-note strong { color:var(--ink); }
.catalog-actions { display:flex; flex-wrap:wrap; align-items:center; gap:8px 24px; }
.catalog-consult { max-width:100%; color:var(--brand-navy); }
.catalog-sample { margin-left:auto; color:var(--ink-soft); }
.collection-intro>div:not(.section-kicker) { grid-column:1/-1; }
.gift-price { justify-self:end; text-align:right; border-left:1px solid var(--line); padding-left:24px; }
.gift-price>span { font-size:14px; color:var(--brand-navy); }
.gift-price strong { display:block; font:600 38px/1.3 var(--sans); color:var(--brand-navy); }
.gift-price small { font-size:18px; }
.gift-price del { font-size:14px; color:var(--ink-soft); }
.gift-list { margin-top:32px; }
.gift-item { display:grid; grid-template-columns:150px minmax(0,1fr); align-items:center; gap:24px; padding:18px 0; }
.gift-item+.gift-item { border-top:1px solid var(--line); }
.gift-no { display:inline-block; vertical-align:middle; margin-right:6px; font:500 14px/1.5 var(--sans); }
.gift-item h3 { font-size:24px; line-height:1.4; margin:0 0 6px; }
.gift-item p { color:var(--ink-soft); max-width:60ch; margin:0; }
.proof-layout { display:grid; grid-template-columns:1.1fr 1fr; gap:48px; margin-top:36px; }
.score-wall { background:var(--ink); color:var(--paper); padding:24px; }
.score-wall-head,.score-wall-foot { display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; font-size:14px; color:#d0ddf0; }
.score-wall-head { padding-bottom:16px; border-bottom:1px solid var(--line-dark); }
.score-wall-foot { padding-top:16px; }
.score-row { display:grid; grid-template-columns:110px minmax(0,1fr) 20px; align-items:center; gap:16px; padding:22px 0; border-bottom:1px solid var(--line-dark); }
.score-row strong { font:400 44px/1.2 var(--serif); }
.score-row strong span { font-size:24px; color:var(--brand-gold); }
.score-row b { display:block; font-size:16px; }
.score-row small { font-size:14px; color:#d0ddf0; }
.score-star { color:var(--brand-gold); }
.testimonial-stack { display:grid; gap:24px; align-content:start; }
.testimonial { border-top:1px solid var(--line); padding:22px 0 0 26px; position:relative; }
.quote-mark { position:absolute; top:14px; left:0; color:var(--brand-navy); font:40px var(--serif); }
.testimonial p { font:400 20px/1.65 var(--serif); margin:0 0 18px; }
.testimonial footer { display:flex; flex-direction:column; gap:6px; font-size:14px; }
.testimonial footer span { color:var(--ink-soft); }
.order-section { background:var(--brand-navy); color:var(--paper); }
.order-grid { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:48px; align-items:start; }
.order-copy .section-kicker { color:var(--paper); margin-bottom:14px; }
.order-copy h2 { margin-bottom:24px; }
.order-copy h2 em { color:var(--paper); font-style:italic; }
.order-lead,.promise-list p,.order-contact small { color:#e4ecf8; }
.order-lead { font-size:17px; max-width:48ch; }
.promise-list { border-top:1px solid var(--line-dark); margin-top:24px; padding-top:12px; }
.promise-list p { font-size:15px; margin:10px 0; }
.promise-list span { margin-right:8px; }
.order-contact { display:flex; flex-wrap:wrap; align-items:center; gap:8px 20px; border-top:1px solid var(--line-dark); margin-top:24px; padding-top:18px; }
.order-contact span { width:100%; font-size:14px; }
.order-contact a { font:400 24px/1.4 var(--serif); }
.order-contact small { font-size:14px; overflow-wrap:anywhere; }
.order-panel { padding:28px; background:var(--paper); color:var(--ink); scroll-margin-top:20px; }
.order-panel:focus { outline:none; }
.order-panel:focus-visible { outline:3px solid var(--paper); outline-offset:6px; }
.deal-head { display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 12px; }
.deal-head strong { font:600 15px/1.5 var(--sans); }
.offer-validity { font-size:14px; color:var(--ink-soft); }
.deal-price { display:flex; flex-wrap:wrap; align-items:baseline; gap:10px; padding:6px 0 0; }
.deal-price del { color:var(--ink-soft); font-size:14px; }
.deal-price strong { font:700 28px/1.3 var(--sans); color:var(--brand-navy); }
.deal-price small { font-size:17px; }
.deal-price>span { font-size:14px; color:var(--brand-navy); background:var(--paper-deep); padding:3px 6px; }
.order-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.order-form label { display:flex; flex-direction:column; gap:6px; font-size:14px; font-weight:600; }
.form-mode,.form-intro,.offer-details,.field-wide,.btn-full,.form-status,.form-privacy { grid-column:1/-1; }
.form-mode { border:0; padding:0; margin:0 0 4px; min-width:0; }
.form-mode legend { font-size:14px; font-weight:600; margin-bottom:8px; }
.mode-options { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.mode-options label { flex-direction:row; align-items:center; padding:10px 12px; min-height:48px; border:1px solid var(--line); cursor:pointer; }
.mode-options label:has(:checked) { border-color:var(--brand-navy); background:var(--paper-deep); color:var(--brand-navy); }
.mode-options input { accent-color:var(--brand-navy); width:18px; height:18px; flex-shrink:0; margin:0; }
.order-form input:not([type=radio]),.order-form select,.order-form textarea { width:100%; min-width:0; background:transparent; color:var(--ink); border:1px solid #89939c; border-radius:0; padding:12px; font:16px/1.5 var(--sans); }
.order-form textarea { resize:vertical; }
.order-form input::placeholder,.order-form textarea::placeholder { color:#626d78; opacity:1; }
.form-status { margin:0; font-size:15px; color:var(--brand-navy); }
.form-status:empty { display:none; }
.form-intro h3 { font-size:24px; line-height:1.4; margin:0 0 4px; }
.form-intro p { font-size:15px; color:var(--ink-soft); margin:0; max-width:55ch; }
.offer-details { border:0; padding:12px 14px; margin:0; background:var(--paper-deep); }
.offer-details>summary { display:none; }
.order-panel.is-consult .offer-details>summary { display:flex; min-height:44px; font:600 14px/1.5 var(--sans); }
.offer-details .deal-price { padding-bottom:0; }
.order-panel.is-consult .offer-details[open] .deal-head { margin-top:8px; }
.field-error { font:400 14px/1.5 var(--sans); color:var(--error); }
.order-form [aria-invalid="true"] { border:2px solid var(--error) !important; background:#fff0f1 !important; }
.order-form input,.order-form select { scroll-margin-block:80px; }
.form-privacy { color:var(--ink-soft); font-size:14px; line-height:1.6; }
.faq-section { border-top:0; }
.faq-grid { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:64px; }
.faq-grid .section-kicker { margin-bottom:14px; }
.faq-aside { font-size:15px; color:var(--ink-soft); max-width:40ch; margin-top:24px; }
.faq-aside a { color:var(--brand-navy); text-decoration:underline; }
.faq-list { border-top:1px solid var(--ink); }
details { border-bottom:1px solid var(--line); padding:20px 0; }
summary { display:flex; align-items:center; justify-content:space-between; gap:16px; list-style:none; font:400 20px/1.5 var(--serif); }
summary::-webkit-details-marker { display:none; }
summary span { flex-shrink:0; color:var(--brand-navy); font:26px var(--sans); }
details[open] summary span { transform:rotate(45deg); }
details p { font-size:16px; color:var(--ink-soft); margin:16px 0 0; }
.site-footer { background:var(--ink); color:var(--paper); padding:48px 0 24px; border-top:4px solid var(--brand-gold); }
.footer-top { display:flex; justify-content:space-between; gap:36px; padding-bottom:36px; }
.footer-brand .brand-copy span,.footer-brand p { color:var(--brand-gold); }
.footer-brand p { font:italic 17px/1.6 var(--serif); }
.footer-brand .brand-mark { border-color:var(--paper); }
.footer-links { display:flex; gap:32px; }
.footer-links>div { display:flex; flex-direction:column; gap:8px; }
.footer-links>div>span { color:var(--brand-gold); font-size:14px; margin-bottom:8px; }
.footer-links a,.footer-links p { font-size:14px; color:#e4ecf8; margin:0; overflow-wrap:anywhere; }
.footer-legal { border-top:1px solid var(--line-dark); display:flex; gap:28px; padding-block:20px; font-size:14px; color:#d0ddf0; }
.footer-legal p { margin:0; flex:1; }
.footer-bottom { border-top:1px solid var(--line-dark); display:flex; flex-wrap:wrap; justify-content:space-between; gap:16px; padding-top:20px; font-size:14px; color:#d0ddf0; }
.footer-bottom div { display:flex; flex-wrap:wrap; gap:16px; }
/* The reader can collapse the purchase bar without losing the purchase entry. */
.floating-order { position:fixed; z-index:8; left:50%; bottom:calc(10px + env(safe-area-inset-bottom,0px)); transform:translateX(-50%); width:min(calc(100% - 32px),650px); padding:8px 12px; background:var(--ink); color:var(--paper); display:flex; align-items:center; gap:12px; box-shadow:0 8px 24px #29315f33; }
.floating-body { display:flex; flex:1; min-width:0; justify-content:space-between; align-items:center; gap:16px; }
.floating-price>span { display:block; color:#d0ddf0; font-size:14px; }
.floating-price strong { color:var(--brand-gold); font-size:19px; white-space:nowrap; }
.floating-order .btn { flex-shrink:0; min-height:44px; padding:9px 16px; }
.floating-toggle { display:grid; place-items:center; flex-shrink:0; min-width:44px; height:44px; padding:8px 12px; border:1px solid #ffffff65; background:transparent; color:var(--paper); font:600 18px/1.4 var(--sans); cursor:pointer; }
.floating-toggle:hover { background:#ffffff18; }
.floating-order.is-collapsed { left:auto; right:calc(12px + env(safe-area-inset-right,0px)); width:auto; transform:none; padding:0; border-radius:4px; }
.floating-order.is-collapsed .floating-toggle { font-size:14px; border:0; padding:10px 16px; }
/* Content stays readable without JavaScript; motion is limited to feedback. */
.reveal { opacity:1; }

/* Existing artwork and book covers, preserved. */
.stage-frame{width:min(100%,550px);aspect-ratio:1470/1070;position:relative;background:transparent;}
.stage-frame:before,.stage-frame:after,.stage-rule{display:none}
.hero-art-image{display:block;width:100%;height:100%;object-fit:contain;object-position:center;position:relative;z-index:1;}
.stage-fallback{position:absolute;inset:0;display:grid;z-index:0}
.fallback-book{position:absolute;font:600 14px/1.1 var(--mono);letter-spacing:.05em;display:grid;place-items:center;text-align:center;border:1px solid var(--ink);padding:20px}
.book-a{background:#fff4d6;width:38%;height:58%;right:16%;top:20%;transform:rotate(14deg);z-index:1}
.book-b{background:var(--brand-navy);color:var(--paper);width:41%;height:60%;left:19%;top:18%;transform:rotate(-9deg);z-index:2}
.book-c{background:var(--ink);color:var(--paper);width:35%;height:53%;left:33%;bottom:10%;transform:rotate(3deg);z-index:3}
.portrait-window{min-height:505px;position:relative;background:linear-gradient(146deg,#d3c6ae 0%,#f0e6d4 39%,#9a7761 40%,#be8d70 68%,#eee2cf 69%);border:1px solid rgba(255,255,255,.55);overflow:hidden;display:grid;place-items:center}
.portrait-window:before{content:"";position:absolute;inset:17px;border:1px solid rgba(41,49,95,.45);transform:rotate(4deg)}
.portrait-window:after{content:"";position:absolute;width:155px;height:235px;background:#d7b08f;border-radius:50% 50% 38% 38%;top:24%;left:37%;box-shadow:0 110px 0 56px #27434a}
.portrait-note{position:absolute;top:32px;left:30px;font:9px/1.35 var(--mono);text-transform:uppercase;letter-spacing:.1em;color:var(--ink);z-index:2}
.portrait-scribble{position:absolute;bottom:31px;right:25px;color:var(--paper);font:italic 19px/1 var(--serif);transform:rotate(-8deg);z-index:2}
.author-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 38%;z-index:1;filter:saturate(.82) contrast(.96);}
.book-cover{aspect-ratio:.74;position:relative;border:1px solid var(--ink);padding:22px 20px 16px;overflow:hidden;box-shadow:12px 15px 0 -12px var(--paper),16px 19px 0 -15px var(--ink);transition:transform .4s var(--ease),box-shadow .4s ease}
.cover-cream{background:#fff4d6}
.cover-terracotta{background:var(--brand-navy);color:var(--paper)}
.cover-ink{background:var(--ink);color:var(--paper)}
.cover-rule{height:1px;background:currentColor;opacity:.75;margin-bottom:22px}
.cover-small{font:500 9px var(--mono);letter-spacing:.1em}
.book-cover strong{display:block;font:600 clamp(30px,3.1vw,53px)/.89 var(--serif);letter-spacing:-.08em;margin-top:27px}
.book-cover strong em{font-style:italic;font-weight:500}
.cover-diagram{position:absolute;right:17px;bottom:42px;font:500 73px/.7 var(--serif);opacity:.62;text-align:right}
.cover-diagram small{font:500 10px var(--mono);letter-spacing:.1em}
.cover-foot{position:absolute;bottom:16px;left:20px;right:20px;border-top:1px solid currentColor;padding-top:8px;font:500 8px var(--mono);letter-spacing:.08em}
.gift-illustration{width:150px;height:99px;position:relative;border:1px solid var(--ink);display:grid;place-items:center;overflow:hidden}
.gift-illustration:before{content:"";position:absolute;inset:11px;border:1px solid rgba(41,49,95,.5)}
.gift-illustration span{position:relative;font:600 35px var(--serif);z-index:1}
.gift-illustration i{position:absolute;font:60px var(--serif);opacity:.2;right:7px;bottom:-17px;font-style:normal}
.video-illus{background:var(--paper-deep)}
.video-illus span{width:31px;height:31px;border-radius:50%;background:var(--brand-navy);color:var(--paper);display:grid;place-items:center;font-size:12px;padding-left:2px}
.zalo-illus{background:var(--brand-gold)}
.zalo-illus span{font:700 50px var(--serif);color:var(--brand-navy)}
.zalo-illus i{color:var(--brand-navy)}
.test-illus{background:#29315f;color:var(--paper)}
.test-illus span{color:var(--brand-gold)}

/* Match the existing image fitting and portrait treatment. */
.portrait-window .portrait-note,.portrait-window .portrait-scribble { z-index:2; }
@media (max-width:1100px) {
  .site-nav { gap:14px; }
  .hero-grid,.author-grid,.order-grid,.proof-layout { gap:32px; }
  .hero-title { font-size:44px; }
  .credentials { grid-template-columns:1fr; }
  .footer-top { flex-direction:column; }
  .footer-links { justify-content:space-between; }
}
@media (max-width:900px) {
  .menu-toggle { display:block; }
  .header-inner { min-height:72px; }
  .site-nav { display:none; position:absolute; top:100%; left:0; right:0; flex-direction:column; align-items:stretch; gap:0; background:var(--paper); border-bottom:1px solid var(--line); padding:12px 24px; box-shadow:0 12px 20px #29315f14; }
  .site-nav.is-open { display:flex; }
  .site-nav a { padding:12px; min-height:48px; }
  .hero-grid { grid-template-columns:1fr; }
  .hero-title { font-size:clamp(34px,5.8vw,46px); }
  .hero-stage { max-width:520px; width:100%; margin:12px auto 0; }
  .section-intro,.gift-heading { grid-template-columns:1fr; gap:14px; }
  .intro-note { max-width:60ch; }
  .friction-grid,.author-grid,.proof-layout,.order-grid,.faq-grid { grid-template-columns:1fr; gap:32px; }
  .author-portrait { max-width:480px; width:100%; }
  .author-photo { object-position:center 35%; }
  .credentials { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .catalog-facts { grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px 20px; }
  .catalog-facts div:nth-child(3) { border-left:0; padding-left:0; }
  .book-catalog { grid-template-columns:repeat(4,minmax(0,1fr)); gap:28px 24px; }
  .book-card { grid-column:span 2; }
  .book-card:last-child { grid-column:span 2; }
  .book-cover strong { font-size:clamp(28px,5vw,45px); }
  .gift-price { justify-self:start; text-align:left; border-left:0; padding:0; }
  .gift-price strong { display:inline-block; margin-right:12px; }
  .gift-price>span { display:block; }
  .order-panel { grid-row:1; }
  .order-copy { grid-row:2; }
  .order-panel { max-width:680px; width:100%; margin-inline:auto; }
  .order-copy h2 { font-size:30px; }
  .faq-aside { margin-top:16px; }
  .section-pad { padding:44px 0; }
  .hero { padding:28px 0; }
}
@media (max-width:560px) {
  body { font-size:15px; }
  .container { width:calc(100% - 32px); }
  .brand-copy { font-size:14px; }
  .hero-title { font-size:clamp(30px,8.4vw,34px); max-width:20ch; margin-bottom:12px; }
  .hero-deck { font-size:16px; }
  .hero-offer { font-size:15px; }
  .hero-actions { flex-direction:column; align-items:stretch; gap:4px; margin-bottom:20px; }
  .hero-actions .text-link { align-self:flex-start; padding-block:8px; }
  .trust-row { gap:8px; }
  .trust-row div { padding-left:0; }
  .trust-row div>span { font-size:14px; }
  h2 { font-size:30px; }
  .section-pad { padding:36px 0; }
  .hero { padding-top:24px; }
  .section-intro,.gift-heading { gap:12px; }
  .intro-note { font-size:15px; }
  .friction-grid,.proof-layout { margin-top:28px; }
  .friction-item { grid-template-columns:24px minmax(0,1fr); gap:10px; padding:18px 0; }
  .friction-item h3 { font-size:19px; }
  .solution-note { padding:22px 18px; }
  .solution-note h3 { font-size:24px; }
  .portrait-window { min-height:420px; }
  .credentials { grid-template-columns:1fr; }
  .author-quote { font-size:20px; }
  .catalog-facts { gap:18px 14px; }
  .catalog-facts { padding:14px; }
  .catalog-facts div { padding-left:0; }
  .catalog-facts strong { font-size:17px; }
  .book-catalog { grid-template-columns:1fr; gap:32px; }
  .book-card,.book-card:last-child { width:100%; grid-column:auto; }
  .book-cover { max-height:420px; }
  .book-card-copy h3 { font-size:22px; }
  .catalog-foot { padding:18px 16px; }
  .catalog-note { font-size:14px; }
  .catalog-actions { display:grid; grid-template-columns:1fr; gap:2px; }
  .catalog-actions .text-link { justify-self:start; }
  .catalog-sample { margin-left:0; }
  .gift-item { grid-template-columns:72px minmax(0,1fr); align-items:start; gap:14px; }
  .gift-illustration { width:72px; height:75px; }
  .gift-item h3 { font-size:19px; }
  .gift-item p { font-size:14px; line-height:1.65; }
  .score-wall { padding:20px 16px; }
  .score-row { grid-template-columns:80px minmax(0,1fr); gap:12px; }
  .score-row strong { font-size:34px; }
  .score-star { display:none; }
  .testimonial p { font-size:18px; }
  .order-panel { padding:22px 18px; }
  .deal-head { gap:4px; }
  .deal-price { gap:6px; }
  .deal-price strong { font-size:24px; }
  .deal-price del { font-size:13px; }
  .deal-price>span { font-size:12px; padding:2px 4px; }
  .order-form { grid-template-columns:1fr; }
  .order-contact { flex-direction:column; align-items:flex-start; }
  .footer-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 16px; }
  .footer-links>div:last-child { grid-column:1/-1; }
  .footer-legal { flex-direction:column; gap:16px; }
  .floating-order { gap:8px; padding:6px 8px 6px 12px; width:calc(100% - 24px - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px)); }
  .floating-body { gap:10px; }
  .floating-price>span { display:none; }
  .floating-order .btn { padding:9px 12px; font-size:14px; }
  .form-intro h3 { font-size:22px; }
  summary { font-size:18px; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation:none !important; transition:none !important; }
}

/* A compact book-order ticket: two books per group, then delivery details. */
.order-section { padding-block:64px; }
.order-grid { grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:clamp(32px,5vw,72px); align-items:center; }
.order-copy h2 { font-size:clamp(30px,3.1vw,43px); line-height:1.4; margin-bottom:12px; }
.order-copy h2 em { color:var(--brand-gold); }
.order-copy .section-subtitle { font-size:16px; margin-bottom:12px; }
.order-lead { font-size:15px; max-width:38ch; margin-block:0; }
.order-book-display { display:flex; justify-content:center; align-items:center; padding:24px 20px 18px; min-height:190px; max-width:360px; }
.order-book-display img { width:125px; height:174px; object-fit:contain; filter:drop-shadow(6px 10px 8px #29315f45); }
.order-book-display img:first-child { transform:rotate(-9deg); }
.order-book-display img:last-child { transform:rotate(8deg) translateX(-12px); }
.order-copy .promise-list { margin-top:8px; padding-top:10px; }
.order-copy .promise-list p { font-size:14px; margin-block:8px; }
.order-copy .order-contact { margin-top:16px; padding-top:14px; }
.order-panel { position:relative; padding:22px 28px; border-top:4px solid var(--brand-gold); box-shadow:0 18px 45px #29315f30; }
.order-form { gap:12px; }
.order-form .form-mode { margin:0; }
.form-mode legend { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.mode-options { gap:0; border-bottom:1px solid var(--line); }
.mode-options label { justify-content:center; border:0; padding:8px; min-height:42px; font-size:14px; }
.mode-options label:has(:checked) { color:var(--brand-navy); background:var(--paper-deep); border-bottom:2px solid var(--brand-navy); }
.mode-options input { accent-color:var(--brand-navy); width:16px; height:16px; }
.order-form .form-intro h3 { font-size:24px; line-height:1.35; margin-bottom:4px; }
.order-form .form-intro p { font-size:14px; }
.order-steps { display:flex; align-items:center; gap:12px; padding:0 0 4px; }
.order-steps button { display:flex; align-items:center; gap:8px; border:0; padding:2px 0; background:transparent; color:var(--ink-soft); font-size:13px; min-height:32px; }
.order-steps button>span { font:500 12px var(--mono); border:1px solid var(--line); padding:5px; }
.order-steps [aria-current="step"] { color:var(--brand-navy); font-weight:600; }
.order-steps [aria-current="step"]>span { background:var(--brand-navy); border-color:var(--brand-navy); color:white; }
.step-connector { height:1px; flex:1; background:var(--line); max-width:70px; }
.order-form .book-selection { border:0; padding:0; margin:0; }
.book-selection legend { padding:0; font-size:14px; margin-bottom:10px; }
.book-grade-filters { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)) minmax(0,1.3fr); border:1px solid var(--line); margin-bottom:10px; }
.book-grade-filters button { background:transparent; color:var(--ink-soft); border:0; border-right:1px solid var(--line); min-height:42px; padding:8px 4px; font-size:13px; white-space:nowrap; }
.book-grade-filters button:last-child { border-right:0; }
.book-grade-filters button[aria-pressed="true"] { background:var(--brand-gold); color:var(--brand-navy); font-weight:600; }
.order-form .book-option { display:grid; grid-template-columns:44px minmax(0,1fr) auto; gap:12px; align-items:center; min-height:82px; padding:8px 0; border-bottom:1px solid var(--line); }
.book-option>img { width:44px; height:60px; object-fit:contain; }
.book-option-info h4 { font:500 14px/1.5 var(--sans); margin:0 0 4px; overflow-wrap:anywhere; }
.book-option-info>span { font:600 14px/1.4 var(--sans); color:var(--brand-navy); }
.book-quantity { display:flex; align-items:center; border:1px solid var(--line); }
.book-quantity button { width:36px; height:42px; border:0; background:transparent; color:var(--brand-navy); font-size:20px; padding:0; }
.book-quantity button:hover:enabled { background:var(--paper-deep); }
.book-quantity button:disabled { color:#929a9b; cursor:default; }
.order-form .book-quantity input { width:32px; min-height:42px; padding:4px 0; border:0; text-align:center; font:500 14px var(--sans); appearance:textfield; -moz-appearance:textfield; }
.book-quantity input::-webkit-inner-spin-button,.book-quantity input::-webkit-outer-spin-button { -webkit-appearance:none; margin:0; }
.book-option.is-selected .book-quantity { border-color:var(--brand-navy); background:var(--paper-deep); }
.book-picker-hint { font-size:12px; color:var(--ink-soft); margin:10px 0 0; }
.order-receipt { background:var(--paper-deep); padding:12px 16px; border-top:1px dashed #929a9b; }
.receipt-heading { display:flex; justify-content:space-between; gap:12px; font:500 12px/1.5 var(--sans); color:var(--ink-soft); margin-bottom:8px; }
.receipt-heading>span:first-child { color:var(--ink); font-weight:600; }
.receipt-empty { font-size:13px; color:var(--ink-soft); margin:4px 0 12px; }
.receipt-item { display:grid; grid-template-columns:minmax(0,1fr) auto 28px; gap:8px; align-items:center; font-size:12px; line-height:1.5; padding:3px 0; }
.receipt-item strong { font-weight:500; white-space:nowrap; }
.receipt-remove { border:0; background:transparent; color:var(--ink-soft); padding:0; width:28px; height:28px; font-size:20px; }
.receipt-remove:hover { color:var(--brand-navy); }
.receipt-total { display:flex; justify-content:space-between; align-items:center; gap:12px; padding-top:12px; margin-top:8px; border-top:1px solid var(--line); }
.receipt-total>span { font-size:13px; }
.receipt-total small { display:block; margin-top:2px; font-size:11px; color:var(--brand-navy); }
.receipt-total>strong { font:600 clamp(22px,2.5vw,28px)/1.3 var(--sans); color:var(--brand-navy); white-space:nowrap; }
.order-contact-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.order-note { padding:0; border:0; }
.order-note summary { font:400 13px/1.5 var(--sans); color:var(--ink-soft); min-height:36px; }
.order-note summary>span { font-size:18px; color:var(--brand-navy); }
.order-note label { padding-top:8px; }
.order-submit-actions { display:flex; gap:12px; justify-content:space-between; align-items:center; }
.order-back { border:0; background:transparent; color:var(--ink-soft); padding:8px 0; min-height:44px; font-size:13px; }
.order-submit-actions .btn { flex:1; font-size:14px; padding-inline:12px; }
.order-panel.is-consult .order-submit-actions .btn { width:100%; }
.order-panel .form-privacy { font-size:12px; line-height:1.6; text-align:center; }
.order-panel .btn-primary { background:var(--brand-gold); color:var(--brand-navy); }
.order-panel .btn-primary:hover { background:var(--brand-gold-hover); }
.order-panel :focus-visible { outline-color:var(--brand-navy); }
.order-panel .form-status { font-size:14px; overflow-wrap:anywhere; }
@media (max-width:900px) {
  .order-section { padding-block:40px; }
  .order-grid { grid-template-columns:1fr; gap:28px; }
  .order-copy { max-width:680px; width:100%; margin-inline:auto; }
  .order-book-display { display:none; }
  .order-copy h2 { font-size:28px; }
}
@media (max-width:560px) {
  .order-panel { padding:20px 16px; }
  .order-form { gap:14px; }
  .order-form .book-option { grid-template-columns:36px minmax(0,1fr) auto; gap:8px; }
  .book-option>img { width:36px; height:54px; }
  .book-option-info h4 { font-size:12px; }
  .book-option-info>span { font-size:13px; }
  .book-quantity button { width:30px; min-height:44px; }
  .order-form .book-quantity input { width:28px; min-height:44px; }
  .order-contact-fields { grid-template-columns:1fr; }
  .order-submit-actions { flex-wrap:wrap; gap:6px; }
  .order-submit-actions .btn { flex-basis:100%; }
  .receipt-item { grid-template-columns:minmax(0,1fr) auto 24px; gap:4px; }
  .receipt-remove { width:24px; }
}
