:root{--rule: 28px;--margin: 88px;--head: calc(var(--rule) * 3);--pad-l: calc(var(--margin) + 28px);--pad-r: 56px;--paper: #fbf9f2;--paper-back: #f3efe3;--line: #bdd0e4;--margin-red: #e2a19c;--ink: #1f2740;--ink-soft: #586079;--pen: #25479b;--red-pen: #b8352a;--gold-hi: #f5e2a4;--gold: #c99b48;--gold-lo: #86602a;--desk: #ddd6c8;--display: "Cormorant Garamond", "Iowan Old Style", "Palatino Linotype", Georgia, serif;--serif: "Newsreader", "Iowan Old Style", Georgia, serif;--hand: "Caveat", "Bradley Hand", "Segoe Print", cursive;--book-w: min(880px, calc(100vw - 132px) );--book-h: min( calc(100dvh - 64px) , 1060px)}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;color:var(--ink);font-family:var(--serif);font-size:17px;line-height:var(--rule);overflow:hidden;background:radial-gradient(ellipse at 50% 40%,rgba(255,252,244,.65),transparent 65%),radial-gradient(ellipse at 50% 120%,rgba(60,45,30,.22),transparent 60%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .35 0 0 0 0 .3 0 0 0 0 .25 0 0 0 .08 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"),var(--desk);-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit}.desk{min-height:100%;display:grid;place-items:center;padding:32px 76px 32px 56px}.book{position:relative;width:var(--book-w);height:var(--book-h);perspective:2600px}.pages{position:absolute;inset:0;z-index:10;border-radius:2px 5px 5px 2px;background:var(--paper);box-shadow:1px 1px #f1ede2,2px 2px #d9d2c2,3px 3px #f1ede2,4px 4px #d6cfbe,5px 5px #efeadf,6px 6px #cfc7b5,14px 22px 40px #37281947,2px 4px 10px #3728192e}.page-scroll{position:absolute;inset:0;overflow-y:auto;overflow-x:hidden;border-radius:inherit;outline:none;padding:var(--rule) var(--pad-r) calc(var(--rule) * 2) var(--pad-l);background-color:var(--paper);background-image:linear-gradient(to right,transparent calc(var(--margin) - 1px),var(--margin-red) calc(var(--margin) - 1px),var(--margin-red) calc(var(--margin) + 1px),transparent calc(var(--margin) + 1px)),linear-gradient(var(--paper),var(--paper)),repeating-linear-gradient(to bottom,transparent 0,transparent calc(var(--rule) - 1px),var(--line) calc(var(--rule) - 1px),var(--line) var(--rule));background-size:100% 100%,100% calc(var(--head) - 4px),100% 100%;background-repeat:no-repeat,no-repeat,repeat;background-position:0 0,0 0,0 -4px;background-attachment:local;scrollbar-width:thin;scrollbar-color:rgba(31,39,64,.25) transparent}.page-scroll[hidden]{display:none}.page-scroll.blank{overflow:hidden}.running-head{position:sticky;top:calc(-1 * var(--rule));z-index:3;height:var(--head);margin:calc(-1 * var(--rule)) calc(-1 * var(--pad-r)) 0 calc(-1 * var(--pad-l));padding:var(--rule) var(--pad-r) 0 var(--pad-l);gap:16px;background:linear-gradient(to right,transparent calc(var(--margin) - 1px),var(--margin-red) calc(var(--margin) - 1px),var(--margin-red) calc(var(--margin) + 1px),transparent calc(var(--margin) + 1px)),var(--paper);display:flex;justify-content:space-between;align-items:center;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft)}.running-head:after{content:"";position:absolute;left:calc(var(--margin) + 1px);right:0;top:100%;height:12px;pointer-events:none;background:linear-gradient(var(--paper),transparent)}.running-head>span:first-child{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.running-head .brand{color:color-mix(in srgb,var(--ink-soft) 70%,transparent)}.head-cta{color:var(--ink);text-decoration:none;padding:0 14px;height:var(--rule);line-height:calc(var(--rule) - 3px);border:1.5px solid var(--ink);border-radius:999px;letter-spacing:.12em;white-space:nowrap;transition:background .15s ease,color .15s ease}.head-cta:hover{background:var(--ink);color:var(--paper)}.running-head em{font-family:var(--hand);font-size:20px;letter-spacing:0;text-transform:none;font-style:normal;color:var(--pen)}.page-content{max-width:680px}.holes{position:absolute;top:0;bottom:0;left:0;width:36px;z-index:25;pointer-events:none;background-image:radial-gradient(circle at 18px 14px,#b9b2a3 0,#cfc8b8 4px,rgba(0,0,0,.18) 5px,transparent 5.5px);background-size:36px var(--rule);background-position:0 6px;background-repeat:repeat-y}.spiral{position:absolute;top:0;bottom:0;left:-20px;width:44px;z-index:40;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='44' height='28'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='%23fafafa'/%3E%3Cstop offset='.45' stop-color='%23a8a8a8'/%3E%3Cstop offset='1' stop-color='%23505050'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M7 22 C 3 12, 10 7, 22 8 S 39 13, 38 20' fill='none' stroke='rgba(0,0,0,.28)' stroke-width='3.4' stroke-linecap='round' transform='translate(1 2)'/%3E%3Cpath d='M7 22 C 3 12, 10 7, 22 8 S 39 13, 38 20' fill='none' stroke='url(%23g)' stroke-width='3.2' stroke-linecap='round'/%3E%3C/svg%3E");background-size:44px var(--rule);background-position:0 0;background-repeat:repeat-y}.page-content p,.page-content ul,.page-content ol,.page-content dl,.page-content figure{margin:0 0 var(--rule)}.kicker{font-size:12.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft)}.page-content>.kicker:first-child{margin-bottom:0}h1,h2{font-family:var(--display);font-weight:600;line-height:calc(var(--rule) * 2);margin:0;color:#161c30;letter-spacing:-.005em}h1{font-size:clamp(32px,4.2vw,44px);margin-bottom:var(--rule)}h2{font-size:30px;margin-top:var(--rule);position:relative}h2:before{content:"";position:absolute;left:-50px;top:50%;width:10px;height:10px;border-radius:50%;background:var(--accent);transform:translateY(-2px)}h3{font-family:var(--serif);font-size:17px;font-weight:600;line-height:var(--rule);margin:0}mark{color:inherit;background:linear-gradient(to bottom,transparent 52%,color-mix(in srgb,var(--accent) 32%,transparent) 52%,color-mix(in srgb,var(--accent) 32%,transparent) 86%,transparent 86%);-webkit-box-decoration-break:clone;box-decoration-break:clone}.lede{font-size:19px}.muted{color:var(--ink-soft)}strong{font-weight:600}a{color:var(--ink)}.ink-link{color:var(--pen);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}.ink-link:hover{text-decoration-thickness:2px}.stars{color:var(--gold);letter-spacing:.08em}.sep{margin:0 12px;color:var(--accent)}.dash-list{list-style:none;padding:0}.dash-list li{position:relative;padding-left:22px}.dash-list li:before{content:"–";position:absolute;left:0;color:var(--accent)}.ledger-dl{display:grid;gap:0}.ledger-dl>div{display:grid;grid-template-columns:9.5em 1fr;column-gap:20px}.ledger-dl dt{font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}.ledger-dl dd{margin:0}.points section p{margin-bottom:var(--rule)}.names-big{font-family:var(--display);font-size:30px;font-weight:600;line-height:calc(var(--rule) * 2);margin-bottom:0!important}.two-col,.subjects{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:40px}.two-col section ul,.subject ul{margin-bottom:var(--rule)}.level{font-style:italic;color:var(--ink-soft);margin-bottom:0!important}.subject h3,.page-content>h3{font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:color-mix(in srgb,var(--accent) 70%,#1a1a1a);position:relative}.page-content>h3{margin-top:var(--rule)}.scribble{font-family:var(--hand);font-size:23px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--red-pen);display:inline-block;position:absolute;line-height:1;margin-left:14px;transform:rotate(-4deg) translateY(-2px)}.worked{margin-left:0;margin-right:0}.worked figcaption{margin-bottom:var(--rule)}.hand{font-family:var(--hand);font-size:25px;font-weight:500;color:var(--pen);line-height:var(--rule)}.hand sub{font-size:.7em;line-height:0}.equation{display:flex;flex-wrap:wrap;align-items:flex-end;column-gap:10px;margin-top:var(--rule);overflow-x:auto}.equation .term,.equation .op{height:calc(var(--rule) * 2);display:inline-flex;align-items:center;white-space:nowrap}.equation .answer{padding:0 8px;border:1.5px solid var(--pen);border-radius:40% 50% 45% 55%/60% 40% 60% 45%;height:40px;margin-bottom:8px}.frac{display:inline-flex;flex-direction:column;align-items:center;white-space:nowrap}.frac>span:first-child{border-bottom:1.5px solid var(--pen);padding:0 4px;line-height:26.5px}.cancel{text-decoration:line-through;text-decoration-color:var(--red-pen);text-decoration-thickness:2px}.margin-note{font-family:var(--hand);font-size:22px;color:var(--red-pen);margin-top:var(--rule)!important}.rating{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:14px}.rating-score{font-family:var(--display);font-weight:600;font-size:30px}.review blockquote{margin:0;font-family:var(--display);font-size:23px;font-style:italic;font-weight:500;line-height:var(--rule);color:#161c30;text-indent:-.4em}.review .cite{margin:0!important;font-size:15px;color:var(--ink-soft)}.review .cite strong{color:var(--ink)}details{margin-bottom:var(--rule)}summary{cursor:pointer;list-style:none;color:var(--pen);width:fit-content}summary::-webkit-details-marker{display:none}summary:before{content:"+";display:inline-block;width:18px;font-family:var(--hand);font-size:22px;line-height:var(--rule);height:var(--rule);vertical-align:top;transition:transform .2s ease}details[open]>summary:before{transform:rotate(45deg)}details>p{margin:0!important;padding-left:18px}details[open]>p:last-child{margin-bottom:0!important}.faq{margin-bottom:var(--rule)}.faq details{margin-bottom:0}.faq summary{color:var(--ink);font-weight:600}.faq details[open]>p{margin-bottom:var(--rule)!important;color:var(--ink)}.contact-card{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:40px;margin-bottom:var(--rule)}.contact-card p{margin:0!important}.label{font-size:12.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft)}.phone{font-family:var(--display);font-size:32px;font-weight:600;line-height:calc(var(--rule) * 2)}.phone.email{font-size:24px;overflow-wrap:anywhere}.phone a{text-decoration:none}.phone a:hover{color:var(--pen)}.actions{display:flex;gap:10px}.ink-button{display:inline-block;height:var(--rule);line-height:calc(var(--rule) - 3px);padding:0 16px;border:1.5px solid var(--ink);border-radius:999px;font-size:14px;letter-spacing:.08em;text-decoration:none;transition:background .15s ease,color .15s ease}.ink-button:hover,.ink-button.solid{background:var(--ink);color:var(--paper)}.ink-button.solid:hover{background:var(--pen);border-color:var(--pen)}.steps{list-style:none;padding:0}.steps li{display:grid;grid-template-columns:52px 1fr}.steps p{margin-bottom:var(--rule)}.step-num{font-family:var(--hand);font-size:26px;font-weight:600;color:var(--accent)}.page-foot{max-width:680px;margin-top:calc(var(--rule) * 2);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px}.page-foot>span:last-child{text-align:right}.text-button{background:none;border:0;padding:0;cursor:pointer;color:var(--pen);font-family:var(--hand);font-size:23px;line-height:var(--rule)}.text-button:hover{text-decoration:underline;text-underline-offset:4px}.text-button.quiet{font-family:var(--serif);font-size:12.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft)}.tabs{position:absolute;top:calc(var(--rule) * 3);right:-46px;z-index:5;display:flex;flex-direction:column;gap:12px}.tab{width:60px;height:clamp(64px,calc((var(--book-h) - var(--rule) * 4 - 60px) / 6),140px);padding:0 0 0 14px;border:0;border-radius:0 10px 10px 0;cursor:pointer;writing-mode:vertical-rl;display:flex;align-items:center;justify-content:center;text-align:center;line-height:15px;font-family:var(--serif);font-size:12.5px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--tab-ink);background:linear-gradient(to right,rgba(0,0,0,.12),transparent 30%),linear-gradient(to bottom,rgba(255,255,255,.18),transparent 40%,rgba(0,0,0,.08)),var(--tab);box-shadow:2px 2px 3px #281e1438,inset -1px 0 #0000001f;transform:translate(-4px);transition:transform .25s cubic-bezier(.3,.7,.4,1),filter .25s ease;filter:saturate(.85) brightness(.97)}.tab:hover{transform:translate(0);filter:none}.tab.is-active{transform:translate(6px);filter:none;box-shadow:4px 3px 8px #281e144d,inset -1px 0 #0000001f}.tab:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.cover{position:absolute;inset:-5px -9px -5px -2px;z-index:30;padding:0;border:0;background:none;cursor:pointer;transform-origin:2px 50%;transform-style:preserve-3d;transition:transform .5s cubic-bezier(.3,.7,.4,1)}.cover.is-closed:hover{transform:rotateY(-7deg)}.cover.is-closed:focus-visible{outline:none}.cover.is-closed:focus-visible .cover-frame{border-color:var(--gold-hi)}.cover.is-opening{animation:cover-open 1.35s cubic-bezier(.55,.05,.3,1) forwards}.cover.is-closing{animation:cover-close 1.1s cubic-bezier(.5,0,.35,1) forwards}@keyframes cover-open{0%{transform:rotateY(-7deg)}to{transform:rotateY(-178deg)}}@keyframes cover-close{0%{transform:rotateY(-178deg)}to{transform:rotateY(0)}}.cover.is-opening>span{animation:face-out 1.35s linear both}.cover.is-closing>span{animation:face-in 1.1s linear both}@keyframes face-out{0%,84%{opacity:1}to{opacity:0}}@keyframes face-in{0%{opacity:0}16%,to{opacity:1}}.cover-front,.cover-back{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:3px 12px 12px 3px}.cover-front{display:flex;flex-direction:column;align-items:center;padding:30px 30px 30px 44px;overflow:hidden;background:radial-gradient(ellipse at 30% 20%,rgba(255,255,255,.07),transparent 55%),radial-gradient(ellipse at 80% 110%,rgba(0,0,0,.6),transparent 60%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='l'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .09 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23l)'/%3E%3C/svg%3E"),linear-gradient(160deg,#1d1c1b,#0c0c0c 60%,#141312);box-shadow:inset 0 0 0 1px #ffffff0d,inset 10px 0 18px -8px #000000e6,inset 0 0 80px #000000b3,18px 26px 46px #1e140a66,3px 4px 10px #1e140a4d}.cover-frame{position:absolute;inset:30px 30px 30px 44px;border:1px solid rgba(201,155,72,.55);border-radius:2px;box-shadow:inset 0 0 0 5px transparent,inset 0 0 0 6px #c99b4847,0 1px #ffffff0a;transition:border-color .3s ease}.cover-inner{position:relative;flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding-left:14px;filter:drop-shadow(-1px -1px 0 rgba(255,238,190,.22)) drop-shadow(1px 2px 1px rgba(0,0,0,.95))}.cover-ornament,.cover-title,.cover-sub,.cover-foot,.cover-cta,.cover-hint{background:linear-gradient(172deg,var(--gold-hi) 0%,var(--gold) 30%,var(--gold-lo) 52%,#e6c67a 70%,#9d7232 100%);-webkit-background-clip:text;background-clip:text;color:transparent}.cover-ornament{font-size:18px;margin-bottom:min(26px,2.6vh)}.cover-title{font-family:var(--display);font-weight:600;font-size:clamp(44px,min(9vw,11.5vh),104px);line-height:.92;letter-spacing:.01em}.cover-rule{width:120px;height:1px;margin:min(34px,3.4vh) 0 min(22px,2.2vh);background:linear-gradient(to right,transparent,var(--gold),transparent)}.cover-sub,.cover-foot{font-family:var(--display);font-size:clamp(12px,1.5vw,15px);letter-spacing:.32em;text-transform:uppercase;font-weight:600}.cover-foot{margin-top:10px;font-style:italic;text-transform:none;letter-spacing:.12em;font-size:clamp(14px,1.6vw,17px)}.cover-cta{margin-top:min(40px,4vh);font-family:var(--display);font-size:clamp(13px,1.5vw,15px);font-weight:600;letter-spacing:.22em;text-transform:uppercase;line-height:2}.cover-hint{flex:none;margin-bottom:clamp(6px,2.4vh,22px);padding-left:14px;font-family:var(--display);font-style:italic;font-size:17px;letter-spacing:.06em;opacity:.75;text-align:center;animation:hint 3.2s ease-in-out infinite}@keyframes hint{0%,to{opacity:.45}50%{opacity:.9}}.cover-back{transform:rotateY(180deg) translateZ(1px);background:#121110;padding:10px}.cover-back:before{content:"";position:absolute;inset:10px 10px 10px 12px;border-radius:2px 8px 8px 2px;background:linear-gradient(to left,rgba(0,0,0,.08),transparent 12%),#f1ebdc}.endpaper-note{position:absolute;top:70px;left:0;right:0;text-align:center;font-family:var(--hand);font-size:26px;line-height:1.3;color:var(--pen);transform:rotate(-2deg)}.flip-stack{position:absolute;inset:0;z-index:20;perspective:3000px;pointer-events:none}.leaf{position:absolute;inset:0;transform-origin:0 50%;transform-style:preserve-3d;animation-duration:var(--dur);animation-delay:var(--delay);animation-fill-mode:both;animation-timing-function:cubic-bezier(.45,.05,.3,1)}.leaf.is-forward{animation-name:leaf-forward}.leaf.is-backward{animation-name:leaf-backward}@keyframes leaf-forward{0%{transform:rotateY(0)}to{transform:rotateY(-176deg)}}@keyframes leaf-backward{0%{transform:rotateY(-176deg)}to{transform:rotateY(0)}}.leaf.is-forward>.leaf-face{animation:face-out var(--dur) var(--delay) linear both}.leaf.is-backward>.leaf-face{animation:face-in var(--dur) var(--delay) linear both}.leaf-face{position:absolute;inset:0;overflow:hidden;border-radius:2px 5px 5px 2px;backface-visibility:hidden;-webkit-backface-visibility:hidden}.leaf-front{box-shadow:1px 0 2px #00000014}.leaf-front .page-scroll{overflow:hidden}.leaf-face:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(to right,#281e1405,#281e1438);opacity:0;animation:leaf-shade var(--dur) var(--delay) both cubic-bezier(.45,.05,.3,1)}@keyframes leaf-shade{0%,to{opacity:0}50%{opacity:1}}.leaf-back{transform:rotateY(180deg) translateZ(1px);background-color:var(--paper-back);background-image:linear-gradient(to left,transparent calc(var(--margin) - 1px),rgba(226,161,156,.4) calc(var(--margin) - 1px),rgba(226,161,156,.4) calc(var(--margin) + 1px),transparent calc(var(--margin) + 1px)),repeating-linear-gradient(to bottom,transparent 0,transparent calc(var(--rule) - 1px),rgba(189,208,228,.7) calc(var(--rule) - 1px),rgba(189,208,228,.7) var(--rule));background-position:0 0,0 calc(var(--head) - 4px);background-size:100% 100%,100% 100%;background-repeat:no-repeat,repeat}@media(min-width:721px)and (max-height:860px){.tabs{top:var(--rule);gap:8px}.tab{height:calc((var(--book-h) - var(--rule) * 2 - 40px) / 6);font-size:11px;letter-spacing:.1em;line-height:14px}}@media(max-width:720px){:root{--margin: 40px;--tab-out: 50px;--book-w: calc(100vw - 24px) ;--book-h: calc(100dvh - 24px - var(--tab-out) - env(safe-area-inset-bottom, 0px))}.desk{padding:12px 12px calc(var(--tab-out) + 12px + env(safe-area-inset-bottom,0px))}.spiral,.holes{display:none}.pages{border-radius:5px}:root{--pad-l: calc(var(--margin) + 14px);--pad-r: 18px}.running-head .brand{display:none}.head-cta{padding:0 10px;letter-spacing:.04em}.running-head{letter-spacing:.1em}.running-head em{display:none}.phone.email{font-size:19px;line-height:var(--rule);margin-block:14px!important}.tabs{top:auto;right:6px;left:6px;bottom:calc(-1 * var(--tab-out));flex-direction:row;gap:4px}.tab,.tab:hover{flex:1 1 0;min-width:0;width:auto;height:calc(var(--tab-out) + 14px);padding:14px 0 0;writing-mode:horizontal-tb;display:grid;place-items:center;border-radius:0 0 10px 10px;font-size:10.5px;line-height:13px;letter-spacing:0;text-transform:none;filter:none;opacity:.86;background:linear-gradient(to bottom,rgba(0,0,0,.14),transparent 35%),linear-gradient(to right,rgba(255,255,255,.14),transparent 40%,rgba(0,0,0,.06)),var(--tab);transform:translateY(-5px);-webkit-tap-highlight-color:transparent}.tab.is-active{transform:translateY(2px);opacity:1}.two-col,.subjects,.contact-card{grid-template-columns:1fr}.contact-card{row-gap:var(--rule)}.ledger-dl>div{grid-template-columns:1fr}h2:before{display:none}h1{font-size:30px}h2{font-size:26px}.cover-frame{inset:16px}.cover-front{padding-left:30px}.cover-inner,.cover-hint{padding-left:0}.cover-sub{max-width:15em;letter-spacing:.2em;line-height:1.9}.page-foot{grid-template-columns:1fr 1fr}.cover-cta{margin-top:28px;letter-spacing:.14em}.page-foot .quiet{grid-column:1 / -1;grid-row:2;justify-self:center}}@media(prefers-reduced-motion:reduce){.cover,.tab,.cover-hint{transition:none;animation:none}}
