

:root{--paper:#efeee8;--ink:#242520;--rule:#999a90;--blue:#0a84ff;--display:'Instrument Serif',Georgia,serif;--text:'Newsreader',Georgia,serif;--mono:'DM Mono',monospace}
*{box-sizing:border-box}html{scrollbar-width:none}html::-webkit-scrollbar{display:none}body{margin:0;background:var(--paper);color:var(--ink);font:400 21px/1.4 var(--text)}a{color:inherit}a{text-decoration:none;background:linear-gradient(var(--blue),var(--blue)) 0 100%/0 1px no-repeat;transition:background-size .3s cubic-bezier(.2,.7,.2,1)}a:hover,a:focus-visible{background-size:100% 1px}p a,li a,.answer a,dd a{background-image:linear-gradient(var(--blue),var(--blue)),linear-gradient(var(--rule),var(--rule));background-size:0 1px,100% 1px;background-position:0 100%,0 100%;background-repeat:no-repeat}p a:hover,li a:hover,.answer a:hover,dd a:hover,p a:focus-visible,li a:focus-visible,.answer a:focus-visible,dd a:focus-visible{background-size:100% 1px,100% 1px}x-none{background-image:linear-gradient(var(--ink),var(--ink));background-size:100% 1px}.cta,.brand,.skip,.docket,a.cta:hover,a.docket:hover{background:none}button{color:inherit;font:inherit}::selection{background:var(--ink);color:var(--paper)}:focus,:focus-visible{outline:none}summary:focus-visible,button:focus-visible{text-decoration:underline;text-decoration-color:var(--blue);text-decoration-thickness:2px;text-underline-offset:6px}.mono{font:11px/1.5 var(--mono);letter-spacing:.025em}.skip{position:fixed;left:24px;top:-80px;z-index:30;padding:16px;background:var(--paper)}.skip:focus{top:16px}
.journey{height:600svh;position:relative}.snap{position:absolute;left:0;width:1px;height:100svh;pointer-events:none}@media (pointer:coarse) and (prefers-reduced-motion:no-preference){html{scroll-snap-type:y mandatory}.snap{scroll-snap-align:start;scroll-snap-stop:always}.notes{scroll-snap-align:start}}.plate{position:sticky;top:0;height:100svh;overflow:hidden}.mast{position:absolute;left:24px;right:24px;top:0;height:64px;border-bottom:1px solid var(--ink);display:flex;align-items:center;justify-content:space-between;z-index:12;background:var(--paper)}.mast .middle{position:absolute;left:50%;transform:translateX(-50%);display:flex;gap:24px}.mast a{padding:8px 0}.waitlist-link span,.cta span{color:var(--blue)}
.wordmark{position:absolute;left:24px;top:80px;font:400 28.1vw/.83 var(--display);letter-spacing:-.055em;margin:0;z-index:11;transform-origin:left top;pointer-events:none;will-change:transform}.word-clip{position:absolute;inset:0;z-index:11;pointer-events:none}.word-clip .wordmark{color:var(--paper)}.edition{position:absolute;right:32px;top:112px;z-index:6;text-align:right}.edition em{display:block;font:italic 32px/1.2 var(--display);margin-bottom:8px}
.art-window{position:absolute;overflow:hidden;background:var(--paper)}.art{position:absolute;transform-origin:0 0;will-change:transform}.art img{display:block;width:100%;height:100%;mix-blend-mode:multiply}.art .tone{opacity:0;transition:opacity 240ms linear}.art .tone.ready{opacity:1}.ink-pass{position:absolute;inset:0;width:100%;height:100%;mix-blend-mode:multiply}
.hero-caption{position:absolute;left:48px;bottom:80px;z-index:4;background:var(--paper);padding:16px 24px;max-width:440px}.hero-caption p{font:400 32px/1.08 var(--text);margin:8px 0 0;max-width:340px}
.caption{position:absolute;right:48px;bottom:56px;top:160px;width:clamp(296px,25vw,408px);display:flex;align-items:center;z-index:7;visibility:hidden}.caption-inner{width:100%}.chapter{display:flex;justify-content:space-between;gap:16px}.caption h2{font:400 clamp(40px,3.5vw,64px)/1.02 var(--text);letter-spacing:-.035em;margin:24px 0}.caption p{margin:0;font-size:clamp(19px,1.5vw,24px);line-height:1.35}.caption .sub{font-size:clamp(16px,1.2vw,20px);line-height:1.4;margin-top:24px}.literary{display:none}
.plate-caption{position:absolute;left:24px;bottom:16px;margin:0}
.closing{position:absolute;inset:0;z-index:8;visibility:hidden;pointer-events:none}.title-block{position:absolute;left:24px;right:24px;text-align:center}.title-block h2{font:400 24px/1.2 var(--text);font-variant:small-caps;letter-spacing:.08em;margin:8px 0}.credit{font:italic 15px/1.5 var(--text)}.closing-copy{position:absolute;left:50%;width:min(760px,80%);transform:translateX(-50%);text-align:center}.closing-copy p{font:400 clamp(28px,2.25vw,40px)/1.1 var(--text);margin:0 auto 24px}.cta{display:flex;justify-content:space-between;gap:24px;border-bottom:1px solid var(--ink);font:400 28px/1.2 var(--display);padding:8px 0;width:320px;max-width:100%;margin:auto;text-align:left}
.notes{padding:64px 48px 0;min-height:100svh}.notes-grid{display:grid;grid-template-columns:1fr 2fr;gap:64px;padding:32px 0 64px;border-top:1px solid var(--ink)}.notes h2{font:400 40px/1 var(--display);margin:0}.notes details{margin-bottom:24px}.notes summary{cursor:pointer;list-style:none;padding:8px 0;display:flex;justify-content:space-between;gap:24px;font:400 22px/1.3 var(--text)}.notes summary:after{content:'+';font:20px var(--mono)}.notes details[open] summary:after{content:'−'}.notes summary::-webkit-details-marker{display:none}.notes details p{font-size:19px;max-width:64ch;margin:16px 0 24px}.footer{padding:0 0 24px;display:flex;justify-content:space-between;gap:24px}.nojs{padding:24px;max-width:65ch}.static-figures{display:none}
@media(max-width:1023px){body{font-size:19px}.mast{left:16px;right:16px;height:56px}.mast a{display:flex;align-items:center;min-height:44px}.mast .waitlist-link,.edition{display:none}.mast>a:first-child{display:none}.mast .middle{position:static;transform:none;gap:16px}.mast:after{content:none}.wordmark{top:144px;left:16px;font-size:36.5vw}.hero-caption{left:16px;right:16px;bottom:64px;padding:16px 0 0;max-width:none}.hero-caption p{font:400 clamp(30px,8.2vw,48px)/1.02 var(--text);max-width:none}.caption{left:16px;right:16px;bottom:48px;width:auto}.caption h2{font-size:clamp(32px,9.4vw,48px);line-height:1;margin:16px 0}.caption h2 br{display:none}.caption p{font-size:18px;line-height:1.3}.caption .sub{font-size:15px;line-height:1.3;margin-top:16px}.chapter{font-size:10px}.plate-caption{left:16px;font-size:10px}.title-block{left:16px;right:16px}.title-block h2{font-size:22px}.credit{font-size:14px}.closing-copy{width:calc(100% - 32px);text-align:left}.closing-copy p{font-size:clamp(28px,8vw,40px);line-height:1.05}.closing-copy .cta{width:100%;min-height:56px;padding:16px 0}.notes{padding:48px 16px 0}.notes-grid{grid-template-columns:1fr;gap:24px;padding:32px 0 48px}.notes summary{font-size:22px;padding:16px 0;min-height:48px}.notes details p{font-size:18px}.footer{flex-wrap:wrap;gap:16px}.footer a{min-height:44px;display:flex;align-items:center}.footer span:last-child{width:100%}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.journey{height:auto}.plate{position:relative}.art,.wordmark{will-change:auto}.ink-pass{display:none}.art .tone{opacity:1}.static-figures{display:block}.static-figure{margin:0;padding:48px 24px}.static-figure img{display:block;width:100%;height:auto}.static-figure figcaption{max-width:640px;margin:24px auto 0}.static-figure h2{font:40px/1 var(--text);margin:16px 0}.static-figure p{font-size:20px}.static-ending{padding:48px 24px;max-width:800px;margin:auto}.static-ending p{font:36px/1.1 var(--text)}.static-ending .cta{margin:0}}

@media (max-width:700px){.closing-copy p{font-size:clamp(22px,3.9svh,30px)}.closing-copy .cta{font-size:clamp(22px,3.4svh,28px)}}

.snap:nth-child(1){top:0svh}.snap:nth-child(2){top:100svh}.snap:nth-child(3){top:200svh}.snap:nth-child(4){top:300svh}.snap:nth-child(5){top:400svh}.snap:nth-child(6){top:500svh}
.site-nav{display:flex;flex-wrap:wrap;gap:16px 24px;padding:0 0 32px;font:11px/1.5 var(--mono)}.site-nav a{padding:8px 0}

@media (max-width:700px){.footer{display:grid;grid-template-columns:1fr;gap:0;justify-items:start}.footer>*{min-height:44px;display:flex;align-items:center}.footer span:last-child{width:auto}}

/* Link underline matched to alexpriest.com (Alex, 2026-10-31): draws in left to right in the accent,
   0.3s cubic-bezier(.22,1,.36,1), 1px, and on mouse-out retracts toward the right. */
a{transition:background-size .3s cubic-bezier(.22,1,.36,1);padding-bottom:1px}
a:not(:hover):not(:focus-visible){background-position:100% 100%}
p a:not(:hover):not(:focus-visible),li a:not(:hover):not(:focus-visible),.answer a:not(:hover):not(:focus-visible),dd a:not(:hover):not(:focus-visible){background-position:100% 100%,0 100%}

/* Mono is for labels, keys and code only (Alex, 2026-10-31). The footer lines read in the text face. */
.footer.mono,.footer.mono *{font:400 15px/1.5 var(--text);letter-spacing:0}
