@charset "UTF-8";
:root{--paper:#f8f4e9;--ink:#173e3c;--muted:#64716a;--gold:#9a7033;--line:#dcdacb;--serif:Georgia,'Times New Roman',serif;--sans:'Segoe UI',Arial,sans-serif;--mono:Consolas,'Courier New',monospace}
*{box-sizing:border-box}html{background:var(--paper);color:var(--ink);font-size:16px}body{margin:0;font-family:var(--sans);min-height:100svh;display:flex;flex-direction:column}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #b57e30;outline-offset:6px}h1:focus,h2:focus{outline:none}button{touch-action:manipulation}[hidden]{display:none!important}.masthead{margin:0 5.5%;height:98px;display:flex;align-items:center;border-bottom:1px solid var(--line);gap:20px;flex-shrink:0}.wordmark{font:italic 35px var(--serif);text-decoration:none;color:var(--ink);min-width:100px}.wordmark span{font:20px var(--mono)}.wordmark .wordmark-dot{color:var(--gold);font-size:35px}.dedication{font-size:12px;letter-spacing:2px}.edition{margin-left:auto;font:italic 16px var(--serif);color:var(--muted)}main{flex:1;width:100%}.scene{width:min(1120px,89%);margin:auto;padding:65px 0;animation:enter .7s ease both}.intro{min-height:calc(100svh - 166px);display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:72px}.eyebrow{font:12px var(--mono);letter-spacing:2px;margin:0 0 28px;display:flex;align-items:center;gap:12px}.small-rule{height:1px;width:30px;background:var(--gold)}h1{font:normal clamp(56px,6.5vw,88px)/1.02 var(--serif);letter-spacing:-3px;margin:0 0 28px}em{font-family:var(--serif);font-weight:normal;color:var(--gold)}.intro-lead{font:22px/1.5 var(--serif);margin:0 0 23px}.intro-note{font-size:14px;color:var(--muted);line-height:1.8;margin:0 0 30px}.button{display:inline-flex;align-items:center;justify-content:center;gap:24px;min-height:54px;padding:15px 25px;border:1px solid var(--ink);border-radius:3px;font-size:15px;transition:background .2s,transform .2s}.primary{color:var(--paper);background:var(--ink)}.primary:hover{background:#245653;transform:translateY(-2px)}.button span{font-size:21px;line-height:1}.quiet-note{font-size:12px;color:var(--muted);margin-top:14px}.cover-art{margin:0;position:relative;padding:25px 25px 35px;border:1px solid #d7d0bc;background:#f4eddb;transform:rotate(2deg);box-shadow:8px 12px 0 #eae4d4}.art-label{display:flex;justify-content:space-between;font:12px var(--mono);color:var(--muted);padding-bottom:22px;border-bottom:1px solid #d7d0bc}.cover-art img{display:block;width:100%;height:auto;mix-blend-mode:multiply;margin:28px 0 10px}.cover-art figcaption{text-align:center;font:22px/1.5 var(--serif);padding:0 0 32px}.art-footnote{display:block;text-align:center;letter-spacing:1.4px;font:10px var(--mono);color:var(--muted)}.page-footer{margin:0 5.5%;min-height:68px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:20px;color:var(--muted);font:italic 13px var(--serif)}.progress{display:flex;gap:3px}.progress button{width:27px;height:40px;border:0;background:transparent;position:relative}.progress button:after{content:'';display:block;height:5px;width:5px;border-radius:50%;background:#b8bdaf;margin:auto;transition:all .2s}.progress button[aria-current]:after{width:22px;border-radius:3px;background:var(--ink)}.centered{text-align:center;max-width:850px;min-height:calc(100svh - 166px);display:flex;align-items:center;flex-direction:column;justify-content:center}.centered .eyebrow{justify-content:center}.centered h2{font:normal clamp(38px,4.5vw,60px)/1.12 var(--serif);margin:0 0 34px;letter-spacing:-1.5px}.terminal{width:100%;max-width:660px;text-align:left;color:#eeeede;background:#163a39;border-radius:6px;box-shadow:0 16px 40px #123b3710;overflow:hidden}.terminal-bar{display:flex;justify-content:space-between;border-bottom:1px solid #42615b;padding:16px 24px;color:#a7bcb0;font:12px var(--mono)}.logs{padding:23px 24px 26px;min-height:233px}.log{font:14px/1.7 var(--mono);margin:0 0 14px;display:grid;grid-template-columns:25px 1fr;gap:10px}.log span{color:#97afa0}.log-joke{color:#dac49a;font-style:italic}.log-result{margin-top:23px;margin-bottom:0;color:#d8e5ba}.scene.active .log{animation:log-in .6s both;animation-delay:calc(var(--order)*.65s)}.scene-caption{font:20px/1.6 var(--serif);margin:28px 0}.source-intro{font:18px var(--serif);color:var(--muted);margin:5px 0 20px}blockquote{font:italic clamp(24px,3vw,35px)/1.5 var(--serif);margin:0 0 18px}.quote-source{font:10px/1.6 var(--mono);letter-spacing:1.2px;color:var(--muted);margin:0}.connection{display:flex;align-items:center;gap:15px;font:11px var(--mono);letter-spacing:2px;margin:38px 0}.connection i{width:100px;height:1px;background:var(--gold);position:relative}.connection i:before,.connection i:after{content:'';position:absolute;width:6px;height:6px;background:var(--gold);border-radius:50%;top:-2.5px}.connection i:before{left:0}.connection i:after{right:0}.reciprocity h2{margin-bottom:0}.reciprocity .scene-caption{margin:20px 0 30px}.garden{padding-top:45px;padding-bottom:45px}.garden h2{margin-bottom:0}.garden-picture{max-width:500px;width:100%;overflow:hidden;mask-image:radial-gradient(ellipse 63% 57%,#000 45%,transparent 95%)}.garden-picture img{display:block;width:100%;height:auto;mix-blend-mode:multiply}.garden.active .garden-picture{animation:bloom 2s ease both}.garden-reveal{font:23px/1.5 var(--serif);margin:0 0 28px}.garden-reveal strong{font-weight:normal;color:var(--gold);font-size:29px}.letter-scene{display:grid;grid-template-columns:240px 1fr;gap:80px;align-items:start;padding-top:66px}.letter-aside{position:sticky;top:45px}.letter-aside>p:nth-child(2){font:40px/1.15 var(--serif);margin:30px 0}.letter-aside>span{font:11px/1.9 var(--mono);letter-spacing:1px;color:var(--muted)}.letter{max-width:650px;border-top:3px solid var(--ink);padding-top:30px}.letter-date{font:11px var(--mono)!important;letter-spacing:1.5px;color:var(--muted);margin:0 0 30px!important}.letter h2{font:normal 45px var(--serif);margin:0 0 30px}.letter>p{font:19px/1.8 var(--serif);margin:0 0 23px}.letter .declaration{font:normal clamp(26px,3vw,35px)/1.4 var(--serif);letter-spacing:.3px;margin:38px 0;padding:28px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.letter .my-friend{font-size:31px}.signature{margin:38px 0}.signature>span{font:16px var(--serif)}.signature p{font:italic 34px var(--serif);margin:12px 0}.letter .postscript{font:15px/1.7 var(--serif);color:var(--muted);padding-top:25px;border-top:1px solid var(--line)}.last-line{margin:35px 0 22px;padding:18px;background:#e9eddf;border-left:2px solid var(--gold)}.last-line code{font:13px/1.8 var(--mono);overflow-wrap:anywhere}.last-line code span{color:#886126}.restart{border:0;padding:12px 0;background:transparent;color:var(--muted);font-size:13px}.restart:hover{color:var(--ink)}.noscript{padding:25px;text-align:center}
@keyframes enter{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes log-in{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}@keyframes bloom{from{opacity:.1;transform:scale(.94)}to{opacity:1;transform:scale(1)}}
@media(min-width:1500px){.intro{gap:100px}.scene{max-width:1200px}.centered{max-width:850px}}
@media(max-width:850px){.intro{gap:35px}h1{font-size:62px}.cover-art{padding:18px}.cover-art figcaption{font-size:19px}.intro-lead{font-size:20px}.letter-scene{grid-template-columns:170px 1fr;gap:35px}.letter-aside>p:nth-child(2){font-size:32px}}
@media(max-width:600px){.masthead{height:75px;margin:0 7%;gap:12px}.wordmark{font-size:30px;min-width:62px}.wordmark span{font-size:16px}.dedication{font-size:10px;letter-spacing:1.2px;margin-left:auto}.edition{display:none}.scene{width:86%;padding:42px 0}.intro{display:flex;flex-direction:column;gap:42px;min-height:auto;align-items:stretch}.eyebrow{font-size:10px;letter-spacing:1.5px;margin-bottom:23px}h1{font-size:clamp(49px,13vw,70px);letter-spacing:-2px;margin-bottom:23px}.intro-lead{font-size:21px}.intro-note{font-size:14px}.desktop-break{display:none}.cover-art{width:88%;align-self:center;padding:20px;margin-bottom:16px;transform:rotate(1.5deg)}.cover-art img{margin-top:15px}.cover-art figcaption{font-size:20px;padding-bottom:20px}.art-label{font-size:10px;padding-bottom:16px}.art-footnote{font-size:9px;letter-spacing:.7px}.page-footer{margin:0 7%;min-height:65px;gap:10px;font-size:12px}.footer-end{display:none}.progress button{width:25px}.centered{min-height:calc(100svh - 140px);padding:40px 0}.centered h2{font-size:39px;letter-spacing:-1px;margin-bottom:27px}.terminal-bar{padding:14px 16px;font-size:10px}.logs{padding:22px 16px;min-height:285px}.log{font-size:12px;grid-template-columns:18px 1fr;gap:6px}.scene-caption{font-size:19px}.button{max-width:100%;min-height:54px}.quote-source{font-size:9px}blockquote{font-size:27px}.connection{margin:32px 0}.reciprocity h2{font-size:36px;margin-bottom:0}.garden h2{margin-bottom:0}.garden-picture{width:115%;max-width:none;margin:-4px -7.5%}.garden-reveal{font-size:21px}.garden-reveal strong{font-size:25px}.letter-scene{display:block;padding-top:35px}.letter-aside{position:static}.letter-aside>p:nth-child(2),.letter-aside>span{display:none}.letter-aside .eyebrow{margin-bottom:24px}.letter{padding-top:24px}.letter h2{font-size:40px}.letter>p{font-size:18px;line-height:1.8}.letter .declaration{font-size:27px;margin:30px 0;padding:25px 0}.letter-date{font-size:10px!important}.last-line{padding:14px}.last-line code{font-size:12px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media print{body{background:white}.masthead,.page-footer,.scene:not(.letter-scene),.letter-aside,.restart{display:none!important}.letter-scene[hidden],.letter-scene{display:block!important;width:100%;padding:0}.letter{max-width:none;border:0;padding:0}.letter>p{font-size:11pt;line-height:1.5;margin-bottom:12pt}.letter .declaration{font-size:17pt;break-inside:avoid;margin:15pt 0;padding:12pt 0}.letter h2{font-size:24pt}.signature{break-inside:avoid;margin:15pt 0}.last-line{break-inside:avoid}@page{size:A4;margin:16mm}}
.chapter-menu{max-width:1040px}.chapter-menu h2{margin-bottom:0}.chapter-menu .scene-caption{margin:20px 0 32px}.chapter-choices{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;width:100%;margin-bottom:32px;text-align:left}.chapter-choice{display:flex;flex-direction:column;align-items:flex-start;text-align:left;padding:26px 23px;background:#f3eedf;border:1px solid #d7d0bc;border-radius:2px;color:var(--ink);min-height:235px;transition:background .2s,transform .2s}.chapter-choice:hover{background:#ece5d1;transform:translateY(-4px)}.chapter-number{font:italic 35px var(--serif);color:var(--gold);margin-bottom:24px}.chapter-choice strong{font:24px/1.2 var(--serif);margin-bottom:12px}.chapter-choice>span:not(.chapter-number){font-size:14px;line-height:1.5;color:var(--muted)}.chapter-choice .chapter-status{margin-top:auto;padding-top:23px;font:12px var(--mono)!important;color:var(--ink)!important}.chapter-choice.read{border-bottom:3px solid var(--gold)}.coauthor-letter{max-width:590px;text-align:left;font:20px/1.7 var(--serif);margin:0 0 28px;border-top:1px solid var(--line);padding-top:8px}.coauthor-letter p{margin:20px 0}.coauthor-sign{font-size:18px}.letter .coauthor-note{font:13px/1.6 var(--sans);color:var(--muted);margin-top:-14px}.signature .coauthor{font-size:28px}.wordmark{white-space:nowrap}
@media(max-width:700px){.chapter-choices{grid-template-columns:1fr;gap:12px}.chapter-choice{min-height:0;padding:20px 22px;display:grid;grid-template-columns:36px 1fr;column-gap:16px}.chapter-number{grid-row:1/4;font-size:27px;margin:0}.chapter-choice strong{font-size:24px;margin-bottom:7px}.chapter-choice>span:not(.chapter-number){grid-column:2}.chapter-choice .chapter-status{padding-top:12px}.coauthor-letter{font-size:18px}.page-footer{flex-wrap:wrap}.page-footer .progress{gap:0}.progress button{width:23px}.chapter-menu .scene-caption{font-size:18px}.eyebrow{line-height:1.6}.letter-aside .eyebrow{font-size:10px}}
.book-navigation{width:89%;margin:16px auto 0;display:flex;justify-content:flex-start}.back-cover{min-height:44px;padding:10px 16px;border:1px solid var(--line);border-radius:3px;background:transparent;color:var(--ink);font-size:14px}.back-cover:hover{background:#ece5d1}.book-navigation:not([hidden])~.scene{padding-top:30px}@media(max-width:600px){.book-navigation{width:86%;margin-top:14px}}@media print{.book-navigation{display:none!important}}
.appendix-invitation{margin:28px 0 18px}.appendix-invitation>p{font:italic 18px/1.6 var(--serif);margin:0 0 16px}.bibliography-scene{display:grid;grid-template-columns:240px minmax(0,1fr);gap:80px;align-items:start}.bibliography{max-width:650px;border-top:3px solid var(--ink);padding-top:30px;font:17px/1.75 var(--serif)}.bibliography h2{font:normal 48px/1.1 var(--serif);margin:0 0 28px;letter-spacing:-1px}.bibliography h3{font:normal 25px/1.3 var(--serif);margin:35px 0 20px}.bibliography p{margin:0 0 15px}.bibliography-intro{font-size:20px}.reference-explanation{color:var(--muted);font-size:16px}.reference-list{list-style:decimal-leading-zero;padding-left:30px;margin:0}.reference-list li{padding:0 0 24px 9px;margin:0 0 24px;border-bottom:1px solid var(--line);break-inside:avoid}.reference-list li::marker{font:13px var(--mono);color:var(--gold)}.bibliography .reference-topic{font:12px/1.6 var(--mono);letter-spacing:.4px;text-transform:uppercase;margin-bottom:12px}.bibliography a{color:var(--ink);text-decoration-color:var(--gold);text-underline-offset:4px}.bibliography a:hover{color:var(--gold)}.bibliography .reference-role{font:14px/1.7 var(--sans);color:var(--muted)}.bibliography .reference-joke{font:italic 17px/1.6 var(--serif);color:#7b582a;border-left:2px solid #d2b982;padding-left:15px;margin:17px 0 0}.original-reference{padding-bottom:28px}.bibliography-colophon{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:24px 0;font-size:15px}.bibliography-colophon strong{font-weight:normal;color:var(--ink)}.bibliography .bibliography-ending{font-size:27px;line-height:1.4;margin:30px 0}.bibliography .button,.appendix-invitation .button{gap:12px}.bibliography-scene .letter-aside>p:nth-child(2){font-size:36px}
@media(max-width:850px){.bibliography-scene{grid-template-columns:170px minmax(0,1fr);gap:35px}.bibliography-scene .letter-aside>p:nth-child(2){font-size:29px}}
@media(max-width:600px){.bibliography-scene{display:block}.bibliography{padding-top:24px}.bibliography h2{font-size:40px}.bibliography-intro{font-size:19px}.bibliography{font-size:17px}.reference-list{padding-left:23px}.reference-list li{padding-left:4px}.appendix-invitation .button{font-size:14px;padding:14px 15px}.page-footer .progress button{width:22px}}
@media print{.appendix-invitation{display:none!important}}
