/* Grig Lien — A1 "Classic editorial". Static mockup. */
:root{
  --navy:#131c2e;        /* first screen, footer — the shirt, deepened */
  --navy-2:#223050;      /* lines and hovers on navy */
  --mist:#c1cbda;        /* text on navy  (11.0:1) */
  --mist-2:#8e9ab0;      /* quiet text on navy (6.1:1) */
  --paper:#ffffff;
  --paper-2:#f2f4f7;     /* cool panel */
  --ink:#11141a;
  --ink-2:#444c5a;       /* 8.6:1 on white */
  --ink-3:#586275;       /* small labels: 6.1:1 on white, 5.6:1 on --paper-2 */
  --hair:#dde1e8;
  --display:"Bodoni Moda","Didot","Bodoni 72",Georgia,serif;
  --text:"Newsreader",Georgia,"Times New Roman",serif;
  --gut:clamp(16px,5.6vw,88px);
  --max:1264px;
  --ease:cubic-bezier(.2,.7,.1,1);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:400 18px/1.6 var(--text);
  font-optical-sizing:auto;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:.22em}
:focus-visible{outline:2px solid currentColor;outline-offset:3px}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gut)}
.label{font:500 12px/1.3 var(--text);letter-spacing:.2em;text-transform:uppercase;color:var(--ink-3)}
.label--on-dark{color:var(--mist-2)}
.skip{position:absolute;left:12px;top:-60px;z-index:60;background:#fff;color:var(--ink);padding:12px 16px;font:500 14px/1 var(--text);text-decoration:none;border:1px solid var(--ink)}
.skip:focus{top:12px}
.mockup{position:fixed;right:12px;bottom:12px;z-index:50;font:500 10px/1 var(--text);letter-spacing:.2em;
  text-transform:uppercase;color:var(--ink-2);background:rgba(255,255,255,.92);border:1px solid var(--hair);padding:6px 8px;pointer-events:none}
.ph{border-bottom:1px dashed currentColor;font-style:normal}
.source{font-size:15.5px;color:var(--ink-3);font-style:italic}
.fine{font-size:14.5px;color:var(--ink-3);line-height:1.55}
.fine a{color:var(--ink-2)}
.more{display:inline-flex;align-items:center;min-height:44px;font:500 12.5px/1 var(--text);letter-spacing:.2em;text-transform:uppercase;text-decoration:none;
  border-bottom:1px solid currentColor;padding:14px 0 6px;transition:opacity .3s}
.more:hover{opacity:.66}

/* ---------- first screen ---------- */
.hero{position:relative;background:var(--navy);color:#fff;min-height:620px;height:min(100vh,940px);overflow:hidden;isolation:isolate}
.hero__nav{position:absolute;z-index:3;top:22px;left:var(--gut);display:flex;gap:30px;
  font:500 12.5px/1 var(--text);letter-spacing:.2em;text-transform:uppercase}
.hero__nav a,.bar nav a{display:inline-flex;align-items:center;min-height:44px;text-decoration:none;border-bottom:1px solid transparent;transition:color .3s,border-color .3s}
.hero__nav a{color:var(--mist)}
.hero__nav a:hover{color:#fff;border-color:rgba(255,255,255,.5)}
.hero__text{position:absolute;z-index:2;left:var(--gut);bottom:clamp(48px,9vh,104px);right:48%}
.name{margin:0;font-family:var(--display);font-weight:400;font-variation-settings:"opsz" 96;
  font-size:clamp(84px,13.6vw,216px);line-height:.84;letter-spacing:-.012em;color:#fff}
.name .w{display:block;white-space:nowrap}
.name .w + .w{padding-left:.42em}
.name .ch{display:inline-block}
.who{margin:clamp(28px,4.4vh,44px) 0 0;max-width:23em;font:italic 300 clamp(19px,1.5vw,23px)/1.45 var(--text);color:var(--mist)}
.cue{display:inline-flex;align-items:center;gap:14px;margin-top:clamp(26px,4vh,40px);min-height:44px;color:var(--mist);text-decoration:none;
  font:500 12px/1 var(--text);letter-spacing:.22em;text-transform:uppercase;transition:color .3s}
.cue:hover{color:#fff}
.cue__line{position:relative;display:block;width:56px;height:1px;background:var(--mist-2);overflow:hidden}
.cue__line::after{content:"";position:absolute;top:0;left:-100%;width:100%;height:1px;background:#fff;animation:cue 3s var(--ease) 2.4s infinite}
@keyframes cue{0%{left:-100%}60%,100%{left:100%}}
.hero__photo{position:absolute;z-index:1;top:0;right:0;bottom:0;width:min(44vw,680px);margin:0;overflow:hidden;background:#243149}
/* head-and-shoulders crop: show the top ~70% of the portrait, the phone stays out of frame */
.hero__photo img{position:absolute;left:50%;top:-3%;height:146%;width:auto;max-width:none;
  transform:translate3d(-50%,var(--py,0px),0);will-change:transform}

.js.motion .name .ch{opacity:0;transform:translateY(.32em);filter:blur(8px)}
.js.motion .ready .name .ch{opacity:1;transform:none;filter:none;
  transition:opacity 1.1s var(--ease),transform 1.4s var(--ease),filter 1.1s var(--ease);transition-delay:calc(var(--i) * 70ms + 120ms)}
.js.motion .who,.js.motion .cue,.js.motion .hero__nav{opacity:0;transform:translateY(8px)}
.js.motion .ready .who,.js.motion .ready .cue,.js.motion .ready .hero__nav{opacity:1;transform:none;transition:opacity 1.2s var(--ease) .95s,transform 1.2s var(--ease) .95s}
.js.motion .ready .cue{transition-delay:1.35s}
.js.motion .ready .hero__nav{transition-delay:.3s}
.js.motion .hero__photo{clip-path:inset(0 0 100% 0)}
.js.motion .ready .hero__photo{clip-path:inset(0 0 0 0);transition:clip-path 1.6s cubic-bezier(.7,0,.2,1) .05s}

/* ---------- library ---------- */
.library{padding:clamp(72px,10vw,136px) 0 clamp(72px,9vw,120px)}
.lib-head{display:grid;grid-template-columns:1fr minmax(260px,380px);gap:24px 64px;align-items:end}
.lib-head h2{margin:0;font:400 clamp(48px,5vw,72px)/1 var(--display);letter-spacing:-.01em}
.lib-head p{margin:18px 0 0;color:var(--ink-2);max-width:34em}
.finder{position:relative}
.finder input{width:100%;font:italic 400 21px/1.2 var(--text);color:var(--ink);background:transparent;border:0;border-bottom:1px solid var(--ink);
  padding:12px 72px 12px 0;border-radius:0;-webkit-appearance:none;appearance:none;min-height:50px}
.finder input::placeholder{color:var(--ink-3)}
.finder input:focus{outline:none;border-bottom-width:2px;padding-bottom:11px}
.finder input::-webkit-search-cancel-button{-webkit-appearance:none;display:none}
.finder .glass{position:absolute;right:2px;top:50%;transform:translateY(-50%);width:18px;height:18px;stroke:var(--ink-2);fill:none;stroke-width:1.4;pointer-events:none}
.finder .clear{position:absolute;right:26px;top:50%;transform:translateY(-50%);width:44px;height:44px;border:0;background:none;cursor:pointer;padding:0;display:grid;place-items:center}
.finder .clear svg{width:14px;height:14px;stroke:var(--ink-2);stroke-width:1.3;fill:none}
.finder .clear[hidden]{display:none}
.az{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin:48px 0 0;padding:6px 0;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.az a{display:inline-grid;place-items:center;min-width:44px;height:44px;padding:0 6px;position:relative;text-decoration:none;cursor:pointer;
  font:400 20px/1 var(--text);color:var(--ink-2);transition:color .2s}
.az a:hover{color:var(--ink)}
.az a[aria-pressed="true"]{color:var(--ink)}
.az a[aria-pressed="true"]::after{content:"";position:absolute;left:50%;bottom:6px;width:4px;height:4px;border-radius:50%;background:var(--ink);transform:translateX(-50%)}
.az .all{font:500 12px/1 var(--text);letter-spacing:.18em;text-transform:uppercase;padding:0 14px 0 0;margin-right:6px;border-right:1px solid var(--hair)}
.shelf{list-style:none;margin:56px 0 0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:56px clamp(20px,2.6vw,40px)}
.book a{display:block;text-decoration:none;color:inherit}
.cover{position:relative;aspect-ratio:562/900;background:var(--paper-2);box-shadow:0 1px 1px rgba(17,20,26,.08),0 10px 24px -14px rgba(17,20,26,.45);
  transition:transform .6s var(--ease),box-shadow .6s var(--ease)}
.cover img{width:100%;height:100%;object-fit:cover}
.cover::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(90deg,rgba(0,0,0,.22) 0,rgba(255,255,255,.14) 1.6%,rgba(0,0,0,0) 4%,rgba(0,0,0,0) 100%)}
.book a:hover .cover{transform:translateY(-6px);box-shadow:0 1px 1px rgba(17,20,26,.08),0 22px 36px -18px rgba(17,20,26,.5)}
.book .country{display:block;margin-top:20px;font:400 28px/1.1 var(--text);letter-spacing:-.005em}
.book .eds{display:block;margin-top:8px;font:500 11.5px/1.4 var(--text);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3)}
.book[hidden]{display:none}
.js.motion .shelf .book,.js.motion .series-row .book{opacity:0;transform:translateY(22px)}
.js.motion .shelf .book.in,.js.motion .series-row .book.in{opacity:1;transform:none;transition:opacity 1s var(--ease),transform 1.1s var(--ease);transition-delay:calc(var(--k,0) * 90ms)}
.empty{margin:48px 0 0;display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 28px}
.empty p{margin:0;font:italic 400 21px/1.5 var(--text);color:var(--ink-2);max-width:34em}
.empty q{font-style:normal;color:var(--ink)}
.empty[hidden]{display:none}
.reset{font:500 12.5px/1 var(--text);letter-spacing:.2em;text-transform:uppercase;background:none;border:0;border-bottom:1px solid currentColor;padding:14px 0 6px;min-height:44px;cursor:pointer;color:var(--ink)}
.lib-foot{margin:72px 0 0;padding-top:22px;border-top:1px solid var(--hair);color:var(--ink-2);font-size:16px}

/* ---------- author note on home ---------- */
.note{background:var(--paper-2);padding:clamp(72px,9vw,128px) 0}
.note__grid{display:grid;grid-template-columns:220px 1fr;gap:40px 64px}
.note .label{margin:10px 0 0}
.note blockquote{margin:0;font:300 clamp(25px,2.5vw,36px)/1.36 var(--text);font-variation-settings:"opsz" 60;letter-spacing:-.01em;max-width:25em}
.note blockquote em{font-style:italic;font-weight:400}
.note blockquote::before{content:"\201C";display:block;font:400 2.4em/.6 var(--display);height:.4em;color:var(--ink-3)}
.note .sig{margin:28px 0 0;font:italic 400 18px/1.4 var(--text);color:var(--ink-2)}
.letters-strip{padding:clamp(64px,8vw,104px) 0;border-top:1px solid var(--hair)}
.letters-strip .wrap{display:grid;grid-template-columns:220px 1fr auto;gap:24px 64px;align-items:baseline}
.letters-strip h2{margin:0;font:400 clamp(27px,2.5vw,36px)/1.2 var(--text);letter-spacing:-.01em}
.letters-strip p{margin:10px 0 0;color:var(--ink-2);max-width:36em}

/* ---------- inner pages: header bar ---------- */
.bar{border-bottom:1px solid var(--hair);background:var(--paper)}
.bar .wrap{display:flex;justify-content:space-between;align-items:center;min-height:84px;gap:20px}
/* small wordmark in the text serif — the Didone stays for the large name only */
.wordmark{display:inline-flex;align-items:center;min-height:44px;font:500 17px/1 var(--text);letter-spacing:.3em;text-transform:uppercase;text-decoration:none;color:var(--ink)}
.bar nav{display:flex;gap:28px;font:500 12.5px/1 var(--text);letter-spacing:.2em;text-transform:uppercase}
.bar nav a{color:var(--ink-2)}
.bar nav a:hover,.bar nav a[aria-current]{color:var(--ink);border-color:var(--ink)}
.bar--dark{background:var(--navy);border-color:var(--navy-2)}
.bar--dark .wordmark{color:#fff}
.bar--dark nav a{color:var(--mist)}
.bar--dark nav a:hover,.bar--dark nav a[aria-current]{color:#fff;border-color:rgba(255,255,255,.6)}

/* ---------- shared sections ---------- */
.prose{max-width:38em}
.prose p{margin:0 0 1.05em}
.sec{padding:clamp(40px,5vw,64px) 0;border-top:1px solid var(--hair)}
.sec--bleed{padding:0;border:0}
.sec--bleed > .wrap{padding-top:clamp(40px,5vw,64px);padding-bottom:clamp(40px,5vw,64px);
  background:linear-gradient(var(--hair),var(--hair)) center top/calc(100% - 2 * var(--gut)) 1px no-repeat}
.sec__grid{display:grid;grid-template-columns:220px 1fr;gap:20px 64px}
.sec h2{margin:0}
.sec h2.label{padding-top:8px}
.sec h3{margin:0 0 6px;font:400 23px/1.25 var(--text)}
.list{margin:0;padding:0;list-style:none}
.list li{padding:14px 0 14px 34px;border-bottom:1px solid var(--hair);position:relative}
.list li::before{content:"—";position:absolute;left:0;color:var(--ink-3)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:32px 56px}
.lede-prose p:first-child{font-size:21px;line-height:1.5}

/* ---------- book page ---------- */
.book-top{display:grid;grid-template-columns:minmax(260px,400px) 1fr;gap:40px clamp(40px,6vw,104px);padding:clamp(40px,6vw,88px) 0 clamp(48px,6vw,80px);align-items:start}
.book-top__cover .cover{max-width:400px}
.crumb{font:500 12px/1.4 var(--text);letter-spacing:.2em;text-transform:uppercase;color:var(--ink-3)}
.crumb a{text-decoration:none;display:inline-block;padding:12px 0}.crumb a:hover{color:var(--ink);text-decoration:underline}
.series{margin:8px 0 0;font:italic 400 17px/1.4 var(--text);color:var(--ink-2)}
.book-top h1{margin:10px 0 0;font:400 clamp(44px,5.4vw,82px)/1 var(--display);letter-spacing:-.012em;max-width:11em}
.subtitle{margin:18px 0 0;font:italic 300 clamp(21px,1.8vw,26px)/1.4 var(--text);color:var(--ink-2)}
.meta{margin:24px 0 0;font:500 12px/1.7 var(--text);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3)}
.buybox{margin:36px 0 0;padding:26px 0 0;border-top:1px solid var(--ink);display:grid;gap:18px}
.pick{margin:0;padding:0;border:0;display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.pick legend,.pick--one span{float:left;margin-right:14px;font:500 12px/44px var(--text);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3)}
.pick--one{font-size:17px;color:var(--ink)}
.pick label{position:relative;cursor:pointer}
.pick input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.pick label span{display:inline-flex;align-items:center;min-height:44px;padding:0 18px;border:1px solid var(--hair);font:400 17px/1 var(--text);color:var(--ink-2);transition:border-color .25s,color .25s,background .25s}
.pick input:checked + span{border-color:var(--ink);color:var(--ink);background:var(--paper-2)}
.pick input:focus-visible + span{outline:2px solid var(--ink);outline-offset:2px}
.buybox__main{display:flex;flex-wrap:wrap;align-items:center;gap:12px 22px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4em;min-height:54px;padding:0 30px;background:var(--navy);color:#fff;text-decoration:none;border:0;
  font:500 13px/1.2 var(--text);letter-spacing:.16em;text-transform:uppercase;cursor:pointer;border-radius:0;transition:background .3s}
.btn:hover{background:#27365a}
.btn:disabled{background:#8e97a8;cursor:not-allowed}
.btn .ph{letter-spacing:.06em}
.btn--sm{min-height:46px;padding:0 20px;font-size:12px}
.same{margin:0;font:italic 400 16.5px/1.4 var(--text);color:var(--ink-2)}
.alt{display:flex;flex-wrap:wrap;gap:4px 30px;font-size:17px}
.alt a{display:inline-flex;align-items:center;min-height:44px}
.amz .store{margin-left:.6em;font:500 11px/1 var(--text);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
.toc details{border-top:1px solid var(--hair);margin-top:24px}
.toc summary{cursor:pointer;padding:0;min-height:52px;display:flex;align-items:center;font:500 12.5px/1.2 var(--text);letter-spacing:.2em;text-transform:uppercase;list-style:none}
.toc summary::-webkit-details-marker{display:none}
.toc summary::after{content:"+";margin-left:.6em;font-size:16px}
.toc details[open] summary::after{content:"−"}
.contents{margin:0;padding:0;list-style:none;columns:2;column-gap:48px;font-size:16px}
.contents li{break-inside:avoid;padding:7px 0;color:var(--ink-2);display:grid;grid-template-columns:3.2em 1fr}
.contents li b{font-weight:500;color:var(--ink)}
.contents li.part{display:block;font:500 11.5px/1.4 var(--text);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);padding:18px 0 6px;break-after:avoid}
.contents li.part:first-child{padding-top:0}
.contents--open{font-size:16.5px}
.parts p{margin:0 0 1em}
.parts b{font-weight:500}
.figs{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
.fig{border-top:1px solid var(--ink);padding-top:18px}
.fig .n{font:300 clamp(40px,4vw,60px)/1.02 var(--text);letter-spacing:-.02em;font-feature-settings:"lnum"}
.fig p{margin:12px 0 0;font-size:16px;color:var(--ink-2)}
.figsrc{margin:28px 0 0}
.editions{margin:0;padding:0;list-style:none}
.editions li{display:grid;grid-template-columns:140px 1fr;gap:16px;padding:14px 0;border-bottom:1px solid var(--hair)}
.editions li > span:first-child{font:500 12px/1.9 var(--text);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3)}
.editions small{color:var(--ink-2);font-size:15.5px}
.buyfull{background:var(--paper-2);padding:clamp(56px,7vw,96px) 0;margin-top:clamp(24px,3vw,40px)}
.buyfull .cols{display:grid;grid-template-columns:1.25fr 1fr;gap:48px 88px}
.buyfull h2{margin:12px 0 14px;font:300 clamp(34px,3.4vw,48px)/1.1 var(--text);letter-spacing:-.015em}
.extras{margin:18px 0 30px;padding:0;list-style:none}
.extras li{padding:12px 0;border-bottom:1px solid var(--hair)}
.edrows{margin:0 0 22px;padding:0;list-style:none;display:grid;gap:14px}
.edrow{background:#fff;padding:18px 20px;display:grid;gap:12px;box-shadow:0 1px 0 var(--hair)}
.edrow__t{display:flex;flex-wrap:wrap;gap:4px 14px;align-items:baseline}
.edrow__t .lang{font:500 12px/1.4 var(--text);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);min-width:6.5em}
.edrow__b{display:flex;flex-wrap:wrap;gap:8px 26px;align-items:center}
.edrow .amz{display:inline-flex;align-items:center;min-height:44px}
.side{padding-bottom:36px;margin-bottom:36px;border-bottom:1px solid var(--hair)}
.side:last-child{border:0;margin:0;padding:0}
.side p{margin:14px 0 8px}
.dl{display:flex;flex-direction:column;align-items:flex-start;gap:0}
.dl .more{flex-wrap:wrap;gap:2px 12px;line-height:1.3}
.dl .fmt{color:var(--ink-3);letter-spacing:.12em}
.others{padding:clamp(56px,7vw,96px) var(--gut) clamp(64px,8vw,112px)}
.series-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px;list-style:none;margin:32px 0 0;padding:0}
.series-row .country{font-size:23px}

/* checkout (placeholder for the store's overlay) */
.checkout{border:0;padding:0;max-width:min(520px,calc(100vw - 32px));width:100%;background:#fff;color:var(--ink);box-shadow:0 40px 90px -30px rgba(10,16,30,.6)}
.checkout::backdrop{background:rgba(19,28,46,.62)}
.co{padding:clamp(24px,4vw,40px);display:grid;gap:16px}
.co h2{margin:0;font:400 30px/1.1 var(--text)}
.co__store{margin:0;font:500 11.5px/1.4 var(--text);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3)}
.ph-note{margin-left:.6em;padding:2px 6px;border:1px dashed var(--ink-3)}
.co__item{display:flex;justify-content:space-between;gap:16px;padding:14px 0;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);font-size:17px}
.co__price{font-weight:500;white-space:nowrap}
.co__tax{margin:0;font-size:15px;color:var(--ink-2)}
.co__f{display:grid;gap:6px;font-size:15px;color:var(--ink-2)}
.co__f span{color:var(--ink-3)}
.co__f input{font:400 18px/1.4 var(--text);border:0;border-bottom:1px solid var(--ink);padding:10px 0;border-radius:0}
.co__consent{display:grid;grid-template-columns:22px 1fr;gap:12px;align-items:start;font-size:16px;line-height:1.45;padding:14px;background:var(--paper-2);cursor:pointer}
.co__consent input{width:20px;height:20px;margin:2px 0 0;accent-color:var(--navy)}
.co__actions{display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.co__close{background:none;border:0;min-height:44px;font:500 12.5px/1 var(--text);letter-spacing:.18em;text-transform:uppercase;cursor:pointer;color:var(--ink-2);text-decoration:underline;text-underline-offset:.3em}
.co .fine{margin:0}

/* ---------- about ---------- */
.about-hero{background:var(--navy);color:#fff;overflow:hidden}
.about-hero__grid{display:grid;grid-template-columns:minmax(0,440px) 1fr;gap:40px clamp(48px,7vw,120px);align-items:end;padding-top:clamp(32px,4vw,56px)}
/* the whole frame this time: café table, street behind — served under 480 CSS px so it stays crisp */
.about-hero__photo{margin:0;position:relative;aspect-ratio:3/4;overflow:hidden;background:#243149}
.about-hero__photo img{width:100%;height:100%;object-fit:cover;object-position:50% 50%}
.about-hero__text{padding-bottom:clamp(40px,6vw,88px)}
.about-hero h1{margin:18px 0 0;font:400 clamp(72px,10vw,150px)/.9 var(--display);letter-spacing:-.015em}
.about-hero h1 em{font-style:italic}
.about-hero .sub{margin:26px 0 0;font:italic 300 clamp(19px,1.6vw,23px)/1.45 var(--text);color:var(--mist);max-width:28em}
.story{padding:clamp(64px,8vw,120px) 0 clamp(40px,5vw,64px)}
.willband + .sec--bleed > .wrap{background:none}
.story__grid{display:grid;grid-template-columns:minmax(0,38em) 1fr;gap:40px clamp(48px,6vw,104px);align-items:center}
.story__text p{margin:0 0 1.05em}
.dropcap::first-letter{float:left;font:400 5.2em/.8 var(--display);font-variation-settings:"opsz" 96;margin:.06em .1em 0 0}
.pull{margin:0;padding:0 0 0 clamp(24px,3vw,44px);border-left:1px solid var(--ink)}
.pull p{margin:0;font:italic 400 clamp(46px,4.8vw,72px)/1.02 var(--display);letter-spacing:-.01em}
.lead{font-size:20px;line-height:1.55;margin:0 0 36px}
.principles{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:0 48px;counter-reset:p}
.principles li{padding:24px 0 26px;border-top:1px solid var(--hair)}
.principles .num{display:block;font:italic 300 26px/1 var(--text);color:var(--ink-3);margin-bottom:12px}
.principles h3{margin:0 0 8px}
.principles p{margin:0;color:var(--ink-2);font-size:17px}
.mine{margin:28px 0 0;font:italic 400 21px/1.5 var(--text)}
.willband{background:var(--navy);color:#fff;padding:clamp(64px,8vw,112px) 0;margin:clamp(24px,3vw,40px) 0}
.will{display:grid;grid-template-columns:1fr 1fr;gap:48px clamp(48px,7vw,120px)}
.will h3{font-optical-sizing:auto;margin:0 0 20px;font:italic 400 clamp(40px,4.4vw,64px)/1 var(--display);font-variation-settings:"opsz" 72}
.will ul{margin:0;padding:0;list-style:none}
.will li{padding:14px 0;border-top:1px solid var(--navy-2);color:var(--mist);font-size:18px}
.write .prose a{color:var(--ink)}

/* ---------- letters ---------- */
.desk{background:var(--paper-2);padding:clamp(48px,7vw,104px) 0 clamp(64px,8vw,120px)}
.desk__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,600px);gap:48px clamp(48px,6vw,104px);align-items:start}
.desk__intro{position:sticky;top:32px}
.desk h1{margin:14px 0 0;font:400 clamp(44px,4.8vw,68px)/1.02 var(--display);letter-spacing:-.012em}
.desk .sub{margin:22px 0 0;font:italic 300 clamp(19px,1.6vw,23px)/1.45 var(--text);color:var(--ink-2)}
.kinds{margin:30px 0 20px;padding:0;list-style:none;font-size:16.5px;color:var(--ink-2)}
.kinds li{padding:10px 0;border-top:1px solid var(--hair)}
.kinds b{color:var(--ink);font-weight:500}
.letter{position:relative;background:#fffefb;padding:clamp(28px,4.4vw,60px) clamp(22px,4.4vw,60px) clamp(28px,4vw,48px);
  box-shadow:0 1px 1px rgba(17,20,26,.06),0 40px 70px -40px rgba(17,20,26,.45);font-size:17.5px;line-height:1.62}
.letter > *{max-width:33em}
.letter__tag{position:absolute;top:-13px;right:24px;margin:0;background:var(--navy);color:#fff;padding:6px 10px;font:500 11px/1 var(--text);letter-spacing:.18em;text-transform:uppercase}
.letter__hdr{border-bottom:1px solid var(--hair);padding-bottom:14px;margin-bottom:24px;font-size:15.5px}
.letter__hdr p{margin:0;display:grid;grid-template-columns:5.2em 1fr}
.letter__hdr span{color:var(--ink-3);font-style:italic}
.letter__hdr b{font-weight:500}
.letter__hello{margin:0 0 .4em;font-style:italic}
.items{list-style:none;margin:22px 0 26px;padding:0}
.items li{padding:16px 0;border-top:1px solid var(--hair);display:grid;grid-template-columns:7.2em 1fr;gap:0 16px}
.items .c{grid-row:span 3;font:400 20px/1.25 var(--text)}
.items .k{font:500 11px/1.8 var(--text);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3)}
.items p{margin:2px 0 0}
.items .source{font-size:14.5px;margin-top:4px}
.letter__sign{margin:26px 0 0;font:italic 400 40px/1 var(--display);font-variation-settings:"opsz" 48;color:#1c2a4a}
.letter__foot{margin:28px 0 0;padding-top:14px;border-top:1px solid var(--hair);font-size:14.5px;color:var(--ink-3)}
.letter__note{margin:18px 0 0;font:italic 400 14.5px/1.5 var(--text);color:var(--ink-3)}
.form{display:grid;gap:22px;max-width:34em}
.form label,.form legend{display:block;font:500 12px/1.4 var(--text);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);margin-bottom:8px;padding:0}
.form input[type=email],.form input[type=text],.form textarea,.form select{width:100%;font:400 19px/1.4 var(--text);color:var(--ink);background:transparent;border:0;border-bottom:1px solid var(--ink);padding:10px 0;border-radius:0;min-height:48px}
.form select{-webkit-appearance:none;appearance:none;background:linear-gradient(45deg,transparent 50%,var(--ink) 50%) right 8px center/6px 6px no-repeat,linear-gradient(-45deg,transparent 50%,var(--ink) 50%) right 2px center/6px 6px no-repeat}
.form textarea{min-height:120px;border:1px solid var(--hair);padding:12px;background:#fff}
.form input:focus,.form textarea:focus,.form select:focus{outline:none;border-color:var(--navy);box-shadow:0 1px 0 var(--navy)}
.checks{border:0;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px 26px;font-size:17px}
.checks legend{margin-bottom:8px}
.checks label{font:inherit;letter-spacing:0;text-transform:none;color:var(--ink);display:flex;gap:10px;align-items:center;margin:0;min-height:44px;cursor:pointer}
.checks input{width:18px;height:18px;accent-color:var(--navy)}
.ok{margin:0;font:italic 400 18px/1.4 var(--text);color:var(--ink)}

/* ---------- corrections ---------- */
.corr-head{padding:clamp(56px,8vw,112px) 0 clamp(36px,5vw,56px);border-bottom:1px solid var(--ink)}
.corr-head h1{margin:10px 0 0;font:italic 400 clamp(72px,11vw,168px)/.9 var(--display);font-variation-settings:"opsz" 96;letter-spacing:-.02em}
.corr-head .sub{margin:22px 0 0;font:italic 300 clamp(19px,1.6vw,23px)/1.45 var(--text);color:var(--ink-2);max-width:32em}
.corr-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,420px);gap:48px clamp(48px,6vw,104px);padding:clamp(48px,6vw,80px) 0 clamp(64px,8vw,112px)}
.slip{margin:22px 0 0;background:var(--paper-2);padding:clamp(22px,3vw,36px);border-left:3px solid var(--navy)}
.slip header{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 24px;align-items:baseline;padding-bottom:14px;border-bottom:1px solid var(--hair)}
.slip__book{font:400 30px/1.1 var(--text)}
.slip__where{font:500 12px/1.4 var(--text);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3)}
.slip dl{margin:0;display:grid}
.slip dl > div{display:grid;grid-template-columns:9em 1fr;gap:4px 24px;padding:14px 0;border-bottom:1px solid var(--hair)}
.slip dl > div:last-child{border:0;padding-bottom:0}
.slip dt{font-style:italic;color:var(--ink-2)}
.slip dd{margin:0}
.slip .was{text-decoration:line-through;text-decoration-thickness:1px;text-decoration-color:rgba(17,20,26,.55);color:var(--ink-2)}
.why{margin-top:56px}
.why .label{margin:0 0 14px}
.quiet{font:italic 400 20px/1.5 var(--text)}
.report{border-top:1px solid var(--ink);padding-top:22px;align-self:start;position:sticky;top:24px}
.report h2{margin:0;font:400 34px/1.1 var(--text);letter-spacing:-.01em}
.report > p{color:var(--ink-2);margin:12px 0 22px}

/* ---------- legal ---------- */
.legal-grid{display:grid;grid-template-columns:260px minmax(0,40em);gap:40px clamp(48px,7vw,120px);padding:clamp(48px,7vw,104px) var(--gut) clamp(64px,8vw,112px)}
.legal-index{position:sticky;top:28px;align-self:start}
.legal-index h1{margin:12px 0 18px;font:400 clamp(44px,3.6vw,52px)/1.02 var(--display)}
.legal-index nav{display:grid;border-top:1px solid var(--hair)}
.legal-index nav a{display:flex;align-items:center;min-height:46px;border-bottom:1px solid var(--hair);text-decoration:none;font-size:16.5px}
.legal-index nav a:hover{text-decoration:underline}
.legal{font-size:15.5px;line-height:1.62;color:var(--ink-2)}
.legal section{padding:0 0 36px;margin:0 0 36px;border-bottom:1px solid var(--hair)}
.legal h2{font:400 28px/1.2 var(--text);color:var(--ink);margin:0 0 18px;scroll-margin-top:24px}
.legal b{color:var(--ink);font-weight:500}
.legal p{margin:0 0 .9em}
.ident{margin:0 0 20px;display:grid;font-size:14.5px}
.ident > div{display:grid;grid-template-columns:7em 1fr;padding:8px 0;border-bottom:1px solid var(--hair)}
.ident dt{color:var(--ink-3);font-style:italic}
.ident dd{margin:0;color:var(--ink)}

/* ---------- footer ---------- */
.foot{background:var(--navy);color:var(--mist);padding:clamp(56px,7vw,96px) 0 40px;font-size:15.5px}
.foot__grid{display:grid;grid-template-columns:1.2fr 1fr;gap:40px 80px}
.foot .fname{font:400 30px/1 var(--text);letter-spacing:.3em;color:#fff;text-transform:uppercase}
.foot .fline{font-style:italic;font-size:18px}
.foot p{margin:14px 0 0;max-width:30em}
.foot nav{display:flex;flex-wrap:wrap;gap:0 26px;font:500 12px/1.6 var(--text);letter-spacing:.18em;text-transform:uppercase}
.foot nav a{display:inline-flex;align-items:center;min-height:44px;text-decoration:none;color:#fff}
.foot nav a:hover{text-decoration:underline}
.foot .small{margin-top:56px;padding-top:22px;border-top:1px solid var(--navy-2);color:var(--mist-2);font-size:13.5px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}

.js.motion .reveal{opacity:0;transform:translateY(18px)}
.js.motion .reveal.in{opacity:1;transform:none;transition:opacity 1s var(--ease),transform 1.1s var(--ease)}

/* ---------- responsive ---------- */
@media (max-width:1100px){
  .shelf{grid-template-columns:repeat(3,minmax(0,1fr))}
  .series-row{grid-template-columns:repeat(2,minmax(0,1fr))}
  .desk__grid{grid-template-columns:1fr}
  .desk__intro{position:static;max-width:40em}
  .principles{grid-template-columns:1fr}
}
@media (max-width:860px){
  body{font-size:17px}
  .hero{height:auto;min-height:0;display:flex;flex-direction:column}
  .hero__nav{position:relative;top:auto;left:auto;padding:8px var(--gut) 0;gap:0 14px;flex-wrap:wrap;font-size:11px;letter-spacing:.1em}
  .hero__text{position:relative;left:auto;right:auto;bottom:auto;padding:26px var(--gut) 30px}
  .name{font-size:clamp(76px,24vw,150px)}
  .name .w + .w{padding-left:.3em}
  .who{margin-top:22px;font-size:19px}
  .cue{margin-top:14px}
  .hero__photo{position:relative;width:100%;height:min(112vw,540px)}
  .lib-head{grid-template-columns:1fr}
  .az{margin-top:32px}
  .shelf{grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 18px;margin-top:36px}
  .book .country{font-size:23px;margin-top:14px}
  .about-hero__grid,.note__grid,.sec__grid,.letters-strip .wrap,.foot__grid,.two,.buyfull .cols,.will,.story__grid,.corr-grid,.legal-grid{grid-template-columns:1fr}
  .book-top{grid-template-columns:1fr}
  .book-top__cover .cover{max-width:230px}
  .btn{width:100%}
  .btn--sm{width:auto}
  .figs{grid-template-columns:1fr;gap:24px}
  .contents{columns:1}
  .bar .wrap{flex-direction:column;align-items:flex-start;justify-content:center;padding-top:8px;padding-bottom:6px;gap:0;min-height:0}
  .bar nav{gap:0 14px;flex-wrap:wrap;font-size:11px;letter-spacing:.1em}
  .wordmark{font-size:15px}
  .editions li{grid-template-columns:1fr;gap:2px}
  .about-hero__grid{padding-top:24px}
  .about-hero__photo{max-width:420px;width:100%}
  .about-hero__text{padding-bottom:48px}
  .pull{border-left:0;border-top:1px solid var(--ink);padding:24px 0 0}
  .report,.legal-index{position:static}
  .slip dl > div{grid-template-columns:1fr}
  .items li{grid-template-columns:1fr}
  .items .c{grid-row:auto}
  .letter{transform:none}
  .letter__tag{transform:none}
  .foot .fname{font-size:24px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}

/* ---------- round 2 ---------- */
.ledger__head{margin:22px 0 0;display:grid;grid-template-columns:1.1fr 1fr 1fr .8fr;gap:16px;padding:12px 0;border-top:1px solid var(--ink);border-bottom:1px solid var(--hair);
  font:500 11.5px/1.4 var(--text);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3)}
.ledger__rule{margin:22px 0 0;max-width:36em;color:var(--ink-2)}
.ledger__rule:first-of-type{font:italic 400 20px/1.5 var(--text);color:var(--ink)}
.co__cur{border:0;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.co__cur legend{font:500 11.5px/1.4 var(--text);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);margin-bottom:8px;padding:0}
.co__cur label{position:relative;cursor:pointer}
.co__cur input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.co__cur span{display:inline-flex;align-items:center;min-height:44px;padding:0 14px;border:1px solid var(--hair);font-size:15.5px;color:var(--ink-2)}
.co__cur input:checked + span{border-color:var(--ink);color:var(--ink);background:var(--paper-2)}
.co__cur input:focus-visible + span{outline:2px solid var(--ink);outline-offset:2px}
@media (max-width:860px){
  .ledger__head{display:none}
  /* book page: small cover beside the title, so the price and Buy sit in the first screen */
  .book-top{grid-template-columns:96px minmax(0,1fr);gap:0 18px;padding:20px 0 36px}
  .book-top__cover{grid-column:1;grid-row:1/span 4;align-self:start;margin-top:12px}
  .book-top__cover .cover{max-width:none;width:96px}
  .book-top__text{display:contents}
  .book-top__text > *{grid-column:2}
  .book-top__text > .meta,.book-top__text > .buybox{grid-column:1/-1}
  .crumb a{padding:10px 0}
  .series{font-size:15px;margin-top:0}
  .book-top h1{font-size:30px;line-height:1.05;margin-top:6px}
  .subtitle{font-size:17px;margin-top:10px}
  .meta{margin-top:18px;font-size:11px}
  .buybox{margin-top:16px;padding-top:16px;gap:12px}
}

/* Подсказка под галочками стран: пустой выбор = все страны (правка 22.09 по находке САЙТА). */
.checks .hint{margin:8px 0 0;font-size:.82rem;color:var(--ink-3)}

/* Кнопки покупки (22.09.2026, вопрос фаундера «где кнопки купить»).
   Шаг 1: покупка только на Amazon — кнопка на странице книги и ссылка у каждой обложки. */
.btn--buy{display:inline-flex;align-items:center;gap:.6em}
.btn--buy .store{color:inherit;opacity:.72}
.card__buy{display:inline-flex;align-items:center;min-height:44px;margin-top:6px;font:500 12.5px/1.2 var(--text);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);border-bottom:1px solid var(--hair)}
.card__buy:hover{color:var(--ink)}
