@font-face{font-family:"Fraunces";src:url(../fonts/fraunces-latin-full-normal.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:"Fraunces";src:url(../fonts/fraunces-latin-full-italic.woff2) format("woff2");font-weight:100 900;font-style:italic;font-display:swap}
@font-face{font-family:"Instrument Sans";src:url(../fonts/instrument-sans-latin-wght-normal.woff2) format("woff2");font-weight:400 700;font-display:swap}

:root{
  --desk:#c8b48f; --desk2:#b9a37a; --paper:#f0e7d2; --paper2:#e8dcc0; --ink:#25201b; --muted:#5c5246;
  --blue:#2c3f8f; --cloth:#55201c; --cloth2:#3e1512; --foil:#c9a24b;
  --serif:"Fraunces",Georgia,serif; --sans:"Instrument Sans",system-ui,sans-serif;
  --w:600; --soft:50; --wonk:0; --opsz:48;
  --book:min(1180px,94vw);
}
*{box-sizing:border-box;margin:0}
html{background:var(--desk);-webkit-text-size-adjust:100%}
body{font:400 clamp(1rem,.96rem + .18vw,1.08rem)/1.62 var(--sans);color:var(--ink);overflow-x:hidden;
  background:
    radial-gradient(120% 80% at 50% 30%,#d6c4a2 0,transparent 70%),
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .35  0 0 0 0 .27  0 0 0 0 .15  0 0 0 .35 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>"),
    var(--desk);
}
.defs{position:absolute}
img{display:block;max-width:100%;height:auto}
a{color:var(--blue);text-underline-offset:3px}
em,i{font-style:italic}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.skip{position:fixed;left:12px;top:-60px;background:var(--ink);color:var(--paper);padding:10px 14px;z-index:99;border-radius:4px}.skip:focus{top:12px}
:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
.vf{font-family:var(--serif);font-variation-settings:"wght" var(--w),"SOFT" var(--soft),"WONK" var(--wonk),"opsz" var(--opsz);font-weight:normal}
.ink{filter:url(#ink)}
h1,h2,h3{line-height:1;font-weight:normal}

/* header */
.top{position:fixed;inset:0 0 auto 0;z-index:50;display:flex;justify-content:space-between;align-items:center;padding:14px clamp(16px,3vw,44px);pointer-events:none}
.top>*{pointer-events:auto}
.mark{font:500 1.2rem/1 var(--serif);font-variation-settings:"opsz" 24,"SOFT" 100,"WONK" 1;text-decoration:none;color:var(--ink);background:var(--paper);padding:9px 16px;border-radius:99px;box-shadow:0 2px 0 #00000014,0 8px 22px #3a2a1030}
.mark span{font-style:italic;color:var(--blue)}
.top nav{display:flex;gap:clamp(12px,2vw,26px);align-items:center;font-size:.88rem;background:var(--paper);padding:8px 8px 8px 20px;border-radius:99px;box-shadow:0 2px 0 #00000014,0 8px 22px #3a2a1030}
.top nav a{color:var(--ink);text-decoration:none}
.top nav a:hover{color:var(--blue)}
.top nav .pill{background:var(--blue);color:#fff;padding:8px 16px;border-radius:99px}
.top nav .pill:hover{background:var(--ink);color:#fff}
.ribbon{position:fixed;top:0;right:clamp(70px,8vw,130px);width:22px;z-index:49;height:calc(54px + var(--rp,0)*60px);background:var(--blue);clip-path:polygon(0 0,100% 0,100% 100%,50% calc(100% - 9px),0 100%);box-shadow:inset -3px 0 0 #00000022;pointer-events:none}

/* buttons */
.btn{display:inline-block;padding:12px 22px;border-radius:2px;background:var(--ink);color:var(--paper);text-decoration:none;font:500 .92rem/1 var(--sans);border:1.5px solid var(--ink);cursor:pointer;transition:transform .2s,background .2s,color .2s;box-shadow:3px 3px 0 var(--blue)}
.btn:hover{transform:translate(-1px,-1px);box-shadow:5px 5px 0 var(--blue)}
.btn.ghost{background:transparent;color:var(--ink)}

/* opening / cover */
.opening{height:300vh;position:relative}
.stick{position:sticky;top:0;height:100svh;display:grid;place-items:center;perspective:2600px;overflow:hidden}
.book3d{position:relative;width:var(--book);height:min(760px,82svh);transform-style:preserve-3d;transform:translateX(calc((1 - var(--open,1))*-25%)) rotateX(calc((1 - var(--open,1))*4deg));will-change:transform}
.titlepage{container-type:inline-size;position:absolute;left:50%;top:0;width:50%;height:100%;background:var(--paper);padding:clamp(28px,4vw,56px);display:flex;flex-direction:column;
  box-shadow:inset 20px 0 30px -20px #3a2a1066,0 30px 60px -20px #3a2a1099,6px 6px 0 #e6dcc3,7px 7px 0 #d6c9aa,12px 12px 0 #e2d7bb,13px 13px 0 #cfc29f}
.runhead{font:500 .7rem/1.3 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.titlepage h1{font-size:min(14.5cqw,8rem);white-space:nowrap;line-height:.9;letter-spacing:-.025em;margin:clamp(14px,3vh,34px) 0 14px;color:var(--ink);text-shadow:0 1px 0 #ffffff99,0 -1px 0 #00000014}
.titlepage h1 .w1,.titlepage h1 .w2{display:block}
.titlepage h1 .w2{font-style:italic;color:var(--blue);--wonk:1}
.sub{font:italic 500 1.5rem/1.1 var(--serif);font-variation-settings:"opsz" 36,"SOFT" 100,"WONK" 1}
.where{color:var(--muted);font-size:.9rem;margin-top:4px}
.rule{border:0;border-top:1px solid #25201b55;border-bottom:1px solid #25201b55;height:4px;margin:20px 0;width:5rem}
.lead{max-width:30rem}
.cta{display:flex;gap:14px;flex-wrap:wrap;margin-top:22px}
.folio{position:absolute;bottom:22px;left:0;right:0;text-align:center;font:italic 500 .95rem var(--serif);color:var(--muted)}
.curl{position:absolute;overflow:visible;pointer-events:none}
.curl path{fill:none;stroke:var(--ink);stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}
.curl path.b{stroke:var(--blue);stroke-width:1}
.curl path.h{stroke-width:.8;opacity:.7}
.c-hero{right:18px;bottom:44px;width:46%;height:96px}
.cover{position:absolute;left:50%;top:0;width:50%;height:100%;transform-origin:0 50%;transform-style:preserve-3d;transform:rotateY(calc(var(--r,0)*-1deg));will-change:transform}
.face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:2px 8px 8px 2px}
.face.front{background:
  url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='c'><feTurbulence type='fractalNoise' baseFrequency='1.4 .2' numOctaves='2'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 .38 0'/></filter><rect width='100%' height='100%' filter='url(%23c)'/></svg>"),
  linear-gradient(90deg,#3e1512,#5a2420 6%,#55201c 40%,#4a1b17);
  box-shadow:inset 8px 0 14px -6px #00000088,0 40px 70px -20px #2b190c,0 0 0 1px #2a0e0c;display:grid;place-items:center;padding:clamp(18px,3vw,40px)}
.foilframe{width:100%;height:100%;border:1.5px solid var(--foil);outline:1px solid var(--foil);outline-offset:-8px;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:clamp(22px,4vw,48px) 16px;text-align:center}
.foil{color:var(--foil);font-family:var(--serif);text-shadow:0 1px 0 #00000066,0 0 1px #ffe9a8}
.foil.small{font:500 .78rem/1.5 var(--sans);letter-spacing:.24em;text-transform:uppercase}
.foil.big{font-size:clamp(3rem,6vw,6rem);line-height:.9;font-variation-settings:"opsz" 144,"SOFT" 100,"WONK" 1,"wght" 500}
.foil.big i{font-size:.6em;display:block;line-height:1.1;margin:.12em 0}
.foilrule{width:120px;fill:none;stroke:var(--foil);stroke-width:1.2}
.face.back{transform:rotateY(180deg);background:var(--paper2);box-shadow:inset -20px 0 30px -20px #3a2a1066;display:grid;place-items:center;padding:clamp(24px,4vw,56px)}
.plate-in{position:relative;width:100%;height:100%;border:1px solid #25201b55;outline:1px solid #25201b33;outline-offset:6px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:14px;padding:20px}
.belongs{font:italic 500 clamp(1.6rem,3vw,2.6rem)/1.05 var(--serif);font-variation-settings:"opsz" 72,"SOFT" 100,"WONK" 1}
.belongs.small{font-size:1rem;color:var(--muted)}
.c-toc{left:26px;bottom:46px;width:min(72%,340px);height:96px}.c-entry{right:26px;top:18px;width:min(46%,220px);height:64px}.c-week{left:26px;bottom:54px;width:min(80%,380px);height:130px}
.c-back{position:relative;width:80%;height:130px;margin:10px 0}
.turn{position:absolute;bottom:20px;left:0;right:0;text-align:center;font:500 .72rem var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--ink);opacity:calc(1 - var(--open,1)*2)}

/* spreads */
.spread{width:var(--book);margin:clamp(36px,8vh,90px) auto;display:grid;grid-template-columns:1fr 1fr;position:relative;background:var(--paper);min-height:min(740px,86svh);
  box-shadow:0 30px 60px -22px #3a2a10aa,0 2px 0 #00000012,5px 5px 0 #e6dcc3,6px 6px 0 #d6c9aa,10px 10px 0 #e2d7bb,11px 11px 0 #cfc29f,15px 15px 0 #dccfae,16px 16px 0 #c2b48f;border-radius:2px}
.spread::before{content:"";position:absolute;inset:0;pointer-events:none;z-index:3;background:linear-gradient(90deg,transparent 42%,#3a2a1018 48%,#3a2a1055 50%,#3a2a1018 52%,transparent 58%)}
.spread::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:3;opacity:.5;mix-blend-mode:multiply;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='300' height='300'><filter id='p'><feTurbulence type='fractalNoise' baseFrequency='.04 .5' numOctaves='3' seed='2'/><feColorMatrix values='0 0 0 0 .5  0 0 0 0 .4  0 0 0 0 .25  0 0 0 .22 0'/></filter><rect width='100%' height='100%' filter='url(%23p)'/></svg>")}
.page{position:relative;padding:clamp(28px,4.4vw,64px) clamp(26px,4vw,60px) 70px;min-width:0}
.page .runhead{margin-bottom:18px}
.spread h2{font-size:clamp(2.6rem,5vw,4.8rem);line-height:.95;letter-spacing:-.025em;margin-bottom:26px;text-shadow:0 1px 0 #ffffff88}
.spread h2 em{color:var(--blue);--wonk:1;display:inline-block}
.spread h3{font-family:var(--serif);font-variation-settings:"opsz" 36,"SOFT" 60,"WONK" 1,"wght" 600;font-size:1.5rem;letter-spacing:-.01em}
.prose p+p{margin-top:1em}
.dc{float:left;font:700 4.9rem/.76 var(--serif);font-variation-settings:"opsz" 144,"SOFT" 100,"WONK" 1,"wght" 700;color:var(--blue);padding:.07em .1em 0 0;filter:url(#ink)}
.margin{font:italic 500 1.05rem/1.35 var(--serif);font-variation-settings:"opsz" 18,"SOFT" 100,"WONK" 1;color:var(--blue);border-left:2px solid var(--blue);padding-left:14px;margin:1.3em 0 1.3em 1.4rem !important;max-width:22rem;transform:rotate(-.8deg)}
.sig{margin-top:1.4em;font:italic 500 1.8rem var(--serif);font-variation-settings:"opsz" 72,"SOFT" 100,"WONK" 1;color:var(--blue);transform:rotate(-2deg)}
.note{font-size:.98rem;max-width:30rem;margin-top:34px}
.lead2{font:italic 400 1.35rem/1.35 var(--serif);font-variation-settings:"opsz" 30,"SOFT" 100,"WONK" 1;max-width:24rem}

/* toc */
.toc{list-style:none;padding:0;margin:0 0 10px}
.toc a{display:flex;align-items:baseline;gap:8px;text-decoration:none;color:var(--ink);padding:9px 0;font:500 1.15rem/1.2 var(--serif);font-variation-settings:"opsz" 24,"SOFT" 100,"WONK" 0;transition:font-variation-settings .35s,color .25s}
.toc i{flex:1;border-bottom:2px dotted #25201b88;transform:translateY(-4px);min-width:20px}
.toc .p{font-style:italic;color:var(--blue)}
.toc a:hover{font-variation-settings:"opsz" 24,"SOFT" 100,"WONK" 1,"wght" 800;color:var(--blue)}

/* plates */
.plate{position:relative;background:#fbf7ea;padding:10px;box-shadow:0 1px 0 #00000014,0 14px 30px -10px #3a2a1099,0 3px 6px #3a2a1033;max-width:520px;margin:6px auto 18px;transform-origin:50% 0}
.plate.tilt-l{transform:rotate(-1.6deg)}.plate.tilt-r{transform:rotate(1.4deg)}
.plate.small{max-width:300px;margin-top:20px;margin-left:0}
.plate img{width:100%;max-height:60svh;object-fit:cover;filter:sepia(.18) saturate(.92) contrast(1.03)}
.plate .c{position:absolute;width:34px;height:34px;background:#d8c9a4;box-shadow:0 1px 3px #0003}
.plate .tl{left:-4px;top:-4px;clip-path:polygon(0 0,100% 0,0 100%)}
.plate .tr{right:-4px;top:-4px;clip-path:polygon(0 0,100% 0,100% 100%)}
.plate .bl{left:-4px;bottom:-4px;clip-path:polygon(0 0,0 100%,100% 100%)}
.plate .br{right:-4px;bottom:-4px;clip-path:polygon(100% 0,100% 100%,0 100%)}
.cap{font:italic 400 .98rem/1.45 var(--serif);font-variation-settings:"opsz" 14,"SOFT" 100,"WONK" 1;max-width:30rem;margin:0 auto;color:var(--muted)}
.cap b{font-style:normal;font-variation-settings:"opsz" 14,"wght" 700;color:var(--ink)}
.cap a{color:var(--blue)}

/* makes */
.makes{list-style:none;padding:0;display:grid;gap:22px;counter-reset:m}
.makes li{display:grid;grid-template-columns:54px 1fr;gap:4px 14px;border-top:1px solid #25201b44;padding-top:16px}
.makes .stamp{grid-row:span 2;font:700 1.6rem/1 var(--serif);font-variation-settings:"opsz" 72,"SOFT" 0,"WONK" 1,"wght" 800;color:var(--blue);border:2px solid var(--blue);border-radius:50%;width:48px;height:48px;display:grid;place-items:center;transform:rotate(-8deg);opacity:.92;filter:url(#ink);font-size:1.05rem}
.makes p{color:var(--muted);font-size:.98rem;max-width:26rem}

/* wide plate */
.spread.wide{display:block;padding:clamp(10px,1.4vw,18px);min-height:0;background:#fbf7ea}
.plate-wide{position:relative;margin:0}
.plate-wide img{width:100%;height:min(74svh,680px);object-fit:cover;filter:sepia(.14) saturate(.92)}
.plate-wide figcaption{position:absolute;left:clamp(16px,3vw,40px);bottom:clamp(16px,3vw,36px);background:var(--paper);padding:16px 20px;max-width:21rem;font:italic 400 1.1rem/1.35 var(--serif);font-variation-settings:"opsz" 18,"SOFT" 100,"WONK" 1;box-shadow:0 14px 30px -10px #0006;z-index:4}
.plate-wide figcaption b{font-style:normal;display:block;font-variation-settings:"opsz" 24,"wght" 700;margin-top:4px}
.plate-wide .runhead{display:block;font-family:var(--sans)}

/* diary */
.page.ruled{background:repeating-linear-gradient(transparent 0 33px,#2c3f8f26 33px 34px);background-position:0 20px}
.diary{list-style:none;padding:0;display:grid;gap:0}
.diary li{display:grid;grid-template-columns:96px 1fr;gap:0 16px;padding:14px 0 18px;border-bottom:1px solid #2c3f8f33}
.diary time{font:italic 500 1rem var(--serif);font-variation-settings:"opsz" 18,"SOFT" 100,"WONK" 1;color:var(--blue);grid-row:span 2;padding-top:6px}
.diary h3{font-size:1.4rem}
.diary p{color:var(--muted);font-size:.97rem;max-width:26rem}

/* contact */
address{font-style:normal;display:grid;gap:12px;font-size:1rem}
address p{display:grid;grid-template-columns:92px 1fr;gap:14px;border-top:1px solid #25201b33;padding-top:10px}
address span{font:500 .68rem/1.8 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.letter .runhead{font:italic 500 1.5rem/1.1 var(--serif);text-transform:none;letter-spacing:0;color:var(--ink);font-variation-settings:"opsz" 48,"SOFT" 100,"WONK" 1;margin-bottom:22px}
.form{display:grid;gap:18px}
.form label{display:grid;gap:2px;font:italic 400 1.02rem var(--serif);font-variation-settings:"opsz" 18,"SOFT" 100,"WONK" 1;color:var(--muted)}
.form input,.form select,.form textarea{font:400 1.05rem var(--sans);color:var(--ink);background:transparent;border:0;border-bottom:1.5px solid #25201b88;padding:8px 2px;border-radius:0;width:100%}
.form textarea{background:repeating-linear-gradient(transparent 0 29px,#25201b44 29px 30px);line-height:30px;border:0;padding:0 2px;resize:vertical}
.form input:focus,.form select:focus{outline:none;border-bottom-color:var(--blue);box-shadow:0 1.5px 0 var(--blue)}
.form textarea:focus{outline:none;background-color:#2c3f8f0d}
.form .btn{justify-self:start}
.status{min-height:1.6em;color:var(--blue);font-style:italic}

.colophon{width:var(--book);margin:70px auto 60px;text-align:center;padding:0 10px}
.colophon .set{font:italic 400 1.1rem var(--serif);margin:8px 0 14px;color:var(--ink)}
.colophon .credit{font-size:.85rem;color:#3a3228;max-width:44rem;margin:0 auto}
.colophon .runhead{color:#4a4034}

/* entry page */
.entry-head{width:var(--book);margin:clamp(90px,14vh,140px) auto 0;text-align:left}

/* reveals */
.js .plate,.js .makes li,.js .diary li,.js .toc li{opacity:0}
html.rm .plate,html.rm .makes li,html.rm .diary li,html.rm .toc li{opacity:1}

@media (max-width:900px){
  .curl.c-toc,.curl.c-entry,.curl.c-week{position:relative;left:auto;right:auto;top:auto;bottom:auto;width:72%;height:84px;margin:18px 0 0 auto;display:block}
  address a{overflow-wrap:anywhere}

  .top nav a:not(.pill){display:none}.top nav{padding:6px}
  .mark{font-size:1.02rem;padding:8px 13px}
  .ribbon{right:20px}
  .book3d{--book:min(430px,92vw);width:var(--book);transform:none}
  .titlepage{left:0;width:100%}
  .cover{left:0;width:100%}
  .c-hero{width:58%;height:84px;bottom:40px;right:10px}
  .spread{grid-template-columns:1fr;width:min(560px,94vw);margin:34px auto;box-shadow:0 24px 40px -22px #3a2a10aa,4px 4px 0 #e6dcc3,5px 5px 0 #cfc29f,8px 8px 0 #dccfae,9px 9px 0 #c2b48f}
  .spread::before{display:none}
  .page+.page{border-top:1px dashed #25201b44}
  .page{padding:34px 26px 56px}
  .dc{font-size:4.2rem}
  .margin{margin-left:0 !important}
  .diary li{grid-template-columns:78px 1fr}
  .plate-wide img{height:56svh}
  .plate-wide figcaption{position:static;max-width:none;box-shadow:none;padding:14px 8px 4px;background:none}
  .colophon{width:min(560px,92vw)}
}
@media (max-width:420px){.page h2{font-size:2.5rem}}
@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important}}
