:root{--paper: #f7f2e9;--paper-deep: #efe7d8;--ink: #2a2520;--ink-soft: #6b6056;--line: #ddd2c1;--accent: #b5532e;--tape: rgba(222, 205, 160, .75);--photo: #fffdf8;--shadow: rgba(60, 40, 20, .14);--serif: "Newsreader", Georgia, "Times New Roman", serif;--hand: "Caveat", "Bradley Hand", cursive;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--paper: #1c1916;--paper-deep: #26221d;--ink: #ece4d6;--ink-soft: #a79b8c;--line: #3a342c;--accent: #e0875f;--tape: rgba(120, 105, 75, .6);--photo: #2c2722;--shadow: rgba(0, 0, 0, .4);color-scheme:dark}}:root[data-theme=dark]{--paper: #1c1916;--paper-deep: #26221d;--ink: #ece4d6;--ink-soft: #a79b8c;--line: #3a342c;--accent: #e0875f;--tape: rgba(120, 105, 75, .6);--photo: #2c2722;--shadow: rgba(0, 0, 0, .4);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--serif);font-size:1.2rem;line-height:1.7;font-optical-sizing:auto;-webkit-font-smoothing:antialiased}::selection{background:var(--accent);color:var(--paper)}.page{max-width:38rem;margin:0 auto;padding:0 16px}a{color:inherit;text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:1px;text-underline-offset:.2em;transition:color .2s ease,text-decoration-thickness .2s ease}a:hover{color:var(--accent);text-decoration-thickness:2px}a:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}.site-header{display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between;align-items:baseline;padding:32px 0 8px;font-size:1rem}.site-name{font-weight:500;text-decoration:none}.site-header nav{display:flex;gap:20px}.site-header nav a{color:var(--ink-soft);text-decoration:none}.site-header nav a:hover,.site-header nav a.active{color:var(--ink)}.site-header nav a.active{text-decoration:underline;text-decoration-color:var(--accent)}.site-footer{margin-top:96px;padding:24px 0 48px;border-top:1px solid var(--line);color:var(--ink-soft);font-size:1rem}.site-footer p{margin:0;display:flex;flex-wrap:wrap;gap:10px}h1,h2,h3{font-weight:500;line-height:1.2;letter-spacing:-.01em}h1{font-size:clamp(2.4rem,7vw,3.2rem);margin:0 0 16px}h2{font-size:1.5rem;margin:0 0 12px}h3{font-size:1.2rem}p{margin:0 0 1em}.lead{font-size:1.35rem;color:var(--ink-soft);font-style:italic}main>section{margin-top:72px}main>h1{margin-top:56px}main>section.hello{display:flex;align-items:center;gap:32px;margin-top:56px}.hello-text{flex:1;min-width:0}.hello h1,.hello .lead{opacity:0;animation:rise .9s ease forwards}.hello .lead{animation-delay:.25s}.name{position:relative;white-space:nowrap}.scribble{position:absolute;left:-2%;bottom:-.18em;width:104%;height:.35em;overflow:visible}.scribble path{fill:none;stroke:var(--accent);stroke-width:3;stroke-linecap:round;stroke-dasharray:220;stroke-dashoffset:220;animation:draw 1.1s ease-out .7s forwards}.polaroid{flex:none;position:relative;margin:0;padding:10px 10px 6px;width:190px;background:var(--photo);box-shadow:0 8px 24px var(--shadow);transform:rotate(3deg);opacity:0;animation:drop 1s cubic-bezier(.2,.8,.3,1.2) .4s forwards;transition:transform .4s ease}.polaroid:hover{transform:rotate(-1deg) scale(1.02)}.polaroid:before{content:"";position:absolute;top:-12px;left:50%;width:72px;height:22px;background:var(--tape);transform:translate(-50%) rotate(-4deg)}.polaroid img{display:block;width:100%;height:auto;aspect-ratio:4 / 5;object-fit:cover}.polaroid figcaption{font-family:var(--hand);font-size:1.35rem;text-align:center;color:var(--ink-soft);padding-top:4px}.timeline{list-style:none;margin:0;padding:0;position:relative}.timeline:before{content:"";position:absolute;top:12px;bottom:12px;left:5px;border-left:2px dotted var(--line)}.timeline li{position:relative;padding-left:32px;margin-bottom:20px}.timeline li:before{content:"";position:absolute;left:0;top:.55em;width:12px;height:12px;border-radius:50%;background:var(--paper);border:2px solid var(--accent)}.timeline li:last-child:before{background:var(--accent)}.timeline .when{display:block;font-family:var(--hand);font-size:1.4rem;line-height:1.3;color:var(--accent)}.timeline p{margin:0}.things{list-style:none;margin:0;padding:0}.things li{padding:16px 0;border-bottom:1px solid var(--line)}.things li:first-child{padding-top:0}.things a{font-size:1.3rem;font-weight:500}.things p{margin:4px 0 0;color:var(--ink-soft)}.videos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.video{display:block;text-decoration:none;font-size:1rem}.video img{display:block;width:100%;height:auto;aspect-ratio:16 / 9;object-fit:cover;border-radius:4px;background:var(--paper-deep);box-shadow:0 4px 14px var(--shadow);transition:transform .3s ease}.video:nth-child(odd) img{transform:rotate(-1deg)}.video:nth-child(2n) img{transform:rotate(1deg)}.video:hover img{transform:rotate(0) translateY(-3px)}.video span{display:block;margin-top:8px}.signoff{text-align:right}.signoff p{margin:0;color:var(--ink-soft);font-style:italic}.signature{font-family:var(--hand);font-style:normal!important;font-size:2.6rem;color:var(--accent)!important;display:inline-block}.reveal-ready .signoff .signature{clip-path:inset(-30% 100% -30% -10%)}.reveal-ready .signoff.shown .signature{animation:write 1.4s ease-out .3s forwards}.reveal-ready [data-reveal]{opacity:0;transform:translateY(14px);transition:opacity .8s ease,transform .8s ease}.reveal-ready [data-reveal].shown{opacity:1;transform:none}.note-list{list-style:none;margin:32px 0 0;padding:0}.note-list li{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 16px;padding:14px 0;border-bottom:1px solid var(--line)}.date{color:var(--ink-soft);font-size:1rem}.note{margin-top:56px}.note>.date{margin-bottom:40px}.back{margin-top:56px}.markdown h2{margin-top:2em}.markdown h3{margin-top:1.6em}.markdown ul,.markdown ol{padding-left:1.3em}.markdown li{margin-bottom:.3em}.markdown blockquote{margin:1.5em 0;padding:4px 0 4px 20px;border-left:3px solid var(--accent);font-style:italic;color:var(--ink-soft)}.markdown hr{border:0;text-align:center;margin:2.5em 0}.markdown hr:after{content:"* * *";color:var(--ink-soft);letter-spacing:.5em}.markdown img{max-width:100%;height:auto}.markdown table{display:block;overflow-x:auto;border-collapse:collapse;font-size:1rem;margin:1.5em 0}.markdown th,.markdown td{border-bottom:1px solid var(--line);padding:8px 12px;text-align:left}.markdown code{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.85em;background:var(--paper-deep);padding:.1em .35em;border-radius:3px}.markdown pre{overflow-x:auto;padding:16px;background:var(--paper-deep);border-radius:6px;line-height:1.5}.markdown pre code{padding:0;background:none}.markdown pre code span{color:var(--shiki-light)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .markdown pre code span{color:var(--shiki-dark)}}:root[data-theme=dark] .markdown pre code span{color:var(--shiki-dark)}.markdown .mermaid{margin:1.5em 0;overflow-x:auto;text-align:center}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes draw{to{stroke-dashoffset:0}}@keyframes drop{0%{opacity:0;transform:translateY(-24px) rotate(-6deg)}to{opacity:1;transform:rotate(3deg)}}@keyframes write{to{clip-path:inset(-30% -10% -30% -10%)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-delay:0ms!important;transition-duration:.01ms!important}}@media(max-width:600px){body{font-size:1.1rem}main>section.hello{flex-direction:column-reverse;align-items:flex-start;gap:36px}.polaroid{width:160px;margin-left:8px}.videos{grid-template-columns:1fr}}
