:root{--sand:#ede8df;--ink:#2a2724;--primary:#1e6e64;--paper:var(--sand);--paper-2:color-mix(in srgb, var(--sand) 90%, var(--ink));--text:var(--ink);--muted:color-mix(in srgb, var(--ink) 62%, var(--sand));--accent:var(--primary);--accent-dk:color-mix(in srgb, var(--primary) 70%, var(--ink));--rule:color-mix(in srgb, var(--sand) 80%, var(--ink));--highlight:color-mix(in srgb, var(--sand) 82%, var(--primary));--on-accent:var(--sand);--shadow:color-mix(in srgb, var(--ink) 30%, transparent);--font-display:"Geist", system-ui, sans-serif;--font-body:"Recursive", ui-monospace, "SF Mono", Menlo, monospace;--font-mono:var(--font-body);--gutter:clamp(1.25rem, 5vw, 5rem);color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:color-mix(in srgb, var(--ink) 88%, black);--paper-2:color-mix(in srgb, var(--ink) 70%, black);--text:var(--sand);--muted:color-mix(in srgb, var(--sand) 60%, var(--ink));--accent:color-mix(in srgb, var(--primary) 65%, var(--sand));--accent-dk:color-mix(in srgb, var(--primary) 45%, var(--sand));--rule:color-mix(in srgb, var(--ink) 75%, var(--sand));--highlight:color-mix(in srgb, var(--ink) 70%, var(--primary));--on-accent:color-mix(in srgb, var(--ink) 85%, black);--shadow:#0009;color-scheme:dark}}:root[data-theme=dark]{--paper:color-mix(in srgb, var(--ink) 88%, black);--paper-2:color-mix(in srgb, var(--ink) 70%, black);--text:var(--sand);--muted:color-mix(in srgb, var(--sand) 60%, var(--ink));--accent:color-mix(in srgb, var(--primary) 65%, var(--sand));--accent-dk:color-mix(in srgb, var(--primary) 45%, var(--sand));--rule:color-mix(in srgb, var(--ink) 75%, var(--sand));--highlight:color-mix(in srgb, var(--ink) 70%, var(--primary));--on-accent:color-mix(in srgb, var(--ink) 85%, black);--shadow:#0009;color-scheme:dark}html{scroll-snap-type:y proximity;scroll-behavior:smooth}body{background:var(--paper-2);color:var(--text);font-family:var(--font-body);font-variation-settings:"MONO" 1, "CASL" .6;-webkit-font-smoothing:antialiased;margin:0;font-size:clamp(1rem,.95rem + .25vw,1.125rem);line-height:1.55}::selection{background:var(--highlight)}.track{z-index:0;position:relative}.track>div{scroll-snap-align:start;height:100dvh}.stage{perspective:3600px;perspective-origin:50% 35%;pointer-events:none;position:fixed;inset:0}.stack{transform-style:preserve-3d;position:absolute;inset:0}.page{transform-style:preserve-3d;z-index:calc(20 - var(--i));pointer-events:auto;--t:0;--under:0;--segs:5;--lift:calc(1 - (var(--t) - .5) * (var(--t) - .5) * 4);position:absolute;inset:0}.seg{height:calc(100dvh / var(--segs));transform-style:preserve-3d;transform-origin:50% 0;transform:rotateX(calc(var(--a,0) * 1deg));will-change:transform;position:absolute;left:0;right:0}.seg.k0{top:0}.seg:not(.k0){top:100%}.face{background:var(--paper);-webkit-backface-visibility:hidden;backface-visibility:hidden;height:calc(100% + 1px);position:absolute;top:0;left:0;right:0;overflow:hidden}.face.back{background:var(--paper-2);transform:rotateX(180deg)}.sheet{left:0;right:0;top:calc(var(--k) * -100%);box-sizing:border-box;height:100dvh;padding:clamp(1.25rem, 3vh, 2.5rem) var(--gutter);padding-top:calc(clamp(1.25rem, 3vh, 2.5rem) + env(safe-area-inset-top,0px));padding-right:calc(var(--gutter) + 3rem);background:var(--paper);grid-template-rows:auto 1fr auto;gap:1rem;display:grid;position:absolute}.sheet:after{content:"";pointer-events:none;background:linear-gradient(to top, color-mix(in srgb, var(--ink) 55%, transparent), transparent 55%);opacity:calc(var(--t) * .8);position:absolute;inset:0}.sheet:before{content:"";pointer-events:none;z-index:1;background:linear-gradient(to bottom, color-mix(in srgb, var(--ink) 45%, transparent), transparent 40%);opacity:var(--under,0);position:absolute;inset:0}.page .pageno{color:var(--muted);font-family:var(--font-mono);font-size:.75rem;position:absolute;bottom:1rem;right:1.25rem}.page-shadow{pointer-events:none;z-index:-1;box-shadow:0 calc(var(--lift) * 24px) calc(var(--lift) * 40px) var(--shadow);position:absolute;inset:0;transform:translateZ(-1px)}.body{align-self:center;width:100%;max-width:62ch}.sheet.centred{text-align:center;grid-template-rows:1fr;place-items:center}.sheet.centred .body{max-width:none}.sheet.centred h2{margin-bottom:.5em}.sheet.mosaic{background:var(--paper-2)}.mosaic-canvas{width:100%;height:100%;image-rendering:pixelated;display:block;position:absolute;inset:0}.sheet.mosaic .body{z-index:2;position:relative}.sheet.mosaic h2{color:var(--sand)}.sheet.mosaic:after{display:none}h2{font-family:var(--font-display);text-wrap:balance;font-variation-settings:normal;letter-spacing:-.04em;margin:0 0 .35em;font-size:clamp(2rem,1.5rem + 2.5vw,3.4rem);font-weight:300;line-height:1}h2 em{color:var(--accent);font-style:normal}p{margin:0 0 1em}a{color:var(--accent);text-underline-offset:.18em;text-decoration-thickness:1px}a:hover{color:var(--accent-dk)}.tabs{z-index:50;flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex;position:fixed;top:50%;right:0;translate:0 -50%}.tabs a{background:var(--paper-2);color:var(--muted);border:1px solid var(--rule);font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;box-shadow:-1px 1px 3px var(--shadow);border-right:0;border-radius:6px 0 0 6px;align-items:center;gap:.6rem;padding:.55rem .75rem .55rem .85rem;font-size:.72rem;text-decoration:none;transition:translate .22s cubic-bezier(.2,.7,.2,1),background .18s,color .18s;display:flex;translate:.5rem}.tabs a .n{color:var(--accent);font-variant-numeric:tabular-nums}.tabs a:hover,.tabs a:focus-visible{background:var(--highlight);color:var(--text);outline:none;translate:0}.tabs a:focus-visible{box-shadow:0 0 0 2px var(--accent)}.tabs a[aria-current=page]{background:var(--accent);color:var(--on-accent);border-color:var(--accent);translate:-.35rem}.tabs a[aria-current=page] .n{color:var(--on-accent)}@media (width<=560px){.sheet{padding-right:calc(var(--gutter) + 2.25rem)}.tabs a{gap:0;padding:.45rem .5rem .45rem .6rem}.tabs a .label{display:none}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.seg{transform:none!important}.page{opacity:calc(1 - var(--t))}.face.back{display:none}.tabs a{transition:none}}
