.resume-page{padding:40px var(--gutter) 72px}.resume-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 24px;width:100%;max-width:860px;margin:0 auto 36px;font-weight:500;display:flex}.resume-actions .download{border:1.5px solid var(--ink);border-radius:255px 15px 225px/15px 225px 15px 255px;padding:6px 18px}.resume-actions .download:hover{color:var(--accent);border-color:var(--accent)}.resume-actions .download .scrib{display:none}.resume-sheet{--ink:var(--note-ink);--muted:#5a554a;--accent:var(--pen-red);background-blend-mode:multiply;width:100%;max-width:860px;color:var(--ink);background:#fdfbf3 url(data:image/webp;base64,UklGRsYFAABXRUJQVlA4WAoAAAAgAAAA/wAA/wAASUNDUMgBAAAAAAHIAAAAAAQwAABtbnRyUkdCIFhZWiAH4AABAAEAAAAAAABhY3NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA9tYAAQAAAADTLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlkZXNjAAAA8AAAACRyWFlaAAABFAAAABRnWFlaAAABKAAAABRiWFlaAAABPAAAABR3dHB0AAABUAAAABRyVFJDAAABZAAAAChnVFJDAAABZAAAAChiVFJDAAABZAAAAChjcHJ0AAABjAAAADxtbHVjAAAAAAAAAAEAAAAMZW5VUwAAAAgAAAAcAHMAUgBHAEJYWVogAAAAAAAAb6IAADj1AAADkFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9YWVogAAAAAAAA9tYAAQAAAADTLXBhcmEAAAAAAAQAAAACZmYAAPKnAAANWQAAE9AAAApbAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAACAAAAAcAEcAbwBvAGcAbABlACAASQBuAGMALgAgADIAMAAxADZWUDgg2AMAABAgAJ0BKgABAAE+bTaVSaQipKQgKWCQDYlpbpN20Bsemw2hM/5I1A1wY8Rge5AnD2wTI32f3rg9/9cD+sATzgsRufkZlPhgRFgfohRCk9B10bHyEAlC9EjIH3hlm9enBQXnw8OxXl79XbyPIkwJ5q5XJxGfsVAtK0VVXlsir8Mga0zlBDB9ILScof7MFjKpAjyMYq2bq5YgALx8KYfbAsqkSnsG24v5dFGHOouH+G2vff8yCLmjbIX16YEAnK+s9lBuFt4FmMuJJtLhtagtNp+wA0fdSfnfliJkBipWGjUpDqvLR8wzWgpAXEJiw2TKAIYWfFsFxDu+RGF1w1U2482AOUEUMLry+AAA/vqD+j0RBjuB8hQZykh0EK3XTbUeA2CNJiN+EqJmcA9eKvomuV21Yu9kqSlIOzb+LTKQuZrWp3+rNEqVuAZIYpjmvLDwXxlWgyXho1lhyheobs89Ns5bjDU9LkV53ZyfsLIH1ZxjxEhdqaOeovRYsNy2nJJRtRx8A9Y3rbbyyAJmYvlP7K8pmXZ66o53KIN5E6N8mS3OjcEXJek4y0U9DJCmlbiVbsrYqf0c5MHQGBemkeR+yR8iXjqPCRzqrQu7a4eoa1hH23ld6ECKtat0u2bQkVluSBbyObxb2msSGdisd+ASUTA0bke0k1yqJL4O+TU5EoGxJ0dyIr9FJjHE9+zLWKQ/eJwu3DaveQlVwiBW5isrUjpHseNxwd2Z7aUwKLRixqDJ2rxzZHiYoobjh3TXo1KAsGUB50B/g5Fr9tuzxLtGBmFRMZUZW51fj6pcb7s7Nlbg+57YeNmp9+RE+Ur8WoT45web1dAUm8qkHtRLfsw8PDy9SgL0E7uZAUsIUMrcepJR+3Qa4+Fvc4FUvSxVDXUGHlkbxKtS76ckYMHccO/pnvjFuG+psVMY/pHAyMfUOEBLVprHbV+B+V+B0hkW6fztFCnwQ+QyGPYPVR6NQ4g7FUzkMi9QmQQrMaEmuERdFAxNHuENw3IIlKLr0Ga3Zb4BGYI15QPDUX0Qs9Inl8OO3kbDMlT7usrdRAbq0oa0b4g3VZgQXiM6IyfRZrWWdn0Adt+6e/VDOL9O+0G39pfX07gMekabzUjNhtpfRhLQsuMOkOepFqtNGWyNNaVv15yS+6FTTCPTeqaEzCjlsi7hV6FgkUczbpReeq9KyCMQistrUh+9xcoWDHzFuTjltNUC86ZxOzYqmSmEJJAh8JMYv5ZF9JXX7u+R2OO+C8a+a3/AEQNUf6GJhiP47ZmNLGWEBpWgWb6E00zd1kiZZ2zPPcf4puxk5YAAAA==);margin:0 auto;padding:56px 60px 52px;font-size:.95rem;line-height:1.5;position:relative;box-shadow:0 10px 24px #00000029}.resume-sheet:before{content:"";background:#fff9;width:110px;height:26px;position:absolute;top:-13px;left:50%;transform:translate(-50%)rotate(-2deg);box-shadow:0 1px 3px #00000014}.resume-sheet p,.resume-sheet ul,.resume-sheet dl,.resume-sheet dd{margin:0}.resume-head{text-align:center}.resume-head h1{color:var(--accent);margin:0;font-size:clamp(2.4rem,6vw,3.4rem);font-weight:400;line-height:1}.resume-sheet .contact{flex-wrap:wrap;justify-content:center;gap:4px 0;margin-top:12px;display:flex}.contact li+li:before{content:"·";color:var(--muted);margin:0 10px}.resume-sheet h2{color:var(--accent);margin:30px 0 14px;font-size:1.6rem;font-weight:400;line-height:1}.resume-sheet h2:after{content:"";background:var(--accent);opacity:.55;height:10px;-webkit-mask:var(--squiggle) repeat-x left center;-webkit-mask:var(--squiggle) repeat-x left center;mask:var(--squiggle) repeat-x left center;margin-top:4px;display:block}.entry+.entry{margin-top:18px}.entry-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:0 20px;display:flex}.resume-sheet h3{margin:0;font-size:1rem;font-weight:700;line-height:1.4}.entry-date{white-space:nowrap;font-weight:500}.entry-sub{color:var(--muted);font-style:italic}.entry ul{margin-top:6px;padding-left:20px;list-style:outside}.entry li+li{margin-top:3px}.skills{gap:4px;display:grid}.skills div{flex-wrap:wrap;gap:0 8px;display:flex}.skills dt{font-weight:700}.skills dt:after{content:":"}@media (width<=600px){.resume-page{padding-top:28px}.resume-sheet{padding:40px 22px 36px}}@media print{@page{margin:.5in}body{background:#fff;min-height:0;font-size:9.5pt;display:block}body:before,.site-header,.site-footer,.resume-actions,.resume-sheet:before,.resume-sheet:after,.scrib{display:none!important}.resume-page{padding:0}.resume-sheet{--ink:#000;--muted:#333;max-width:none;box-shadow:none;background:0 0;padding:0;font-size:9.5pt;line-height:1.35}.resume-head h1{font-size:24pt}.resume-sheet .contact{margin-top:6pt}.resume-sheet h2{margin:10pt 0 5pt;font-size:13pt}.resume-sheet h2:after{height:6px;margin-top:1pt}.resume-sheet h3{font-size:10pt}.entry{break-inside:avoid}.entry+.entry{margin-top:7pt}.entry ul{margin-top:2pt}.entry li+li{margin-top:1pt}}body{font-family:Hanken Grotesk,system-ui,sans-serif}h1,h2{font-family:Instrument Serif,serif}a{color:inherit;text-decoration:none}.note{width:220px;color:var(--note-ink,#1f1d18);transform:rotate(var(--r,0));animation:note-place .75s ease-out calc(.25s + var(--i,0) * .55s) backwards;padding:20px;font-family:Caveat,cursive;font-size:1.4rem;transition:transform .3s ease-out;display:block;position:relative;box-shadow:0 8px 15px #00000026}.note:before,.sketch:before,.snapshot:before{content:"";top:-12px;left:var(--tape-x,20%);width:80px;height:24px;transform:translateX(-50%) rotate(var(--tape-r,3deg));background:#fff9;animation:.35s ease-out backwards tape-stick;position:absolute}.note:before{animation-duration:.25s;animation-delay:calc(.47s + var(--i,0) * .55s)}.note:hover{transform:rotate(0)translateY(-6px)}.note-title,.note-meta{display:block}.note-title{font-size:1.6rem;line-height:1.1}.note-meta{opacity:.75;margin-top:8px;font-size:1.2rem}.scrib-link{text-decoration:none;position:relative}.scrib{width:100%;height:8px;position:absolute;bottom:-4px;left:0;overflow:visible}.scrib path{fill:none;stroke:var(--accent,#a2440a);stroke-width:2px;stroke-linecap:round;stroke-dasharray:101;stroke-dashoffset:101px;transition:stroke-dashoffset .4s ease-out}.scrib-link:hover .scrib path{stroke-dashoffset:0}.note .scrib{display:none}@keyframes tape-stick{0%{opacity:0;transform:translateX(-50%) translateY(-26px) rotate(var(--tape-r,3deg)) scale(1.4)}to{opacity:1;transform:translateX(-50%) rotate(var(--tape-r,3deg))}}@keyframes note-place{0%{opacity:0;transform:translateY(12px)rotate(0)}30%{opacity:1;transform:translateY(0)rotate(0)}62%{animation-timing-function:cubic-bezier(.34,1.56,.64,1);transform:translateY(0)rotate(0)}to{transform:translateY(0) rotate(var(--r,0deg))}}:root{--bg:#f4f1e6;--ink:#1f1d18;--muted:#625d50;--border:#1f1d182e;--accent:#a2440a;--photo-frame:#fff;--note-ink:#1f1d18;--paper-straw:#d9d0a0;--paper-sage:#bccdc8;--paper-peach:#e3c2a4;--pen-red:#8a2f00;--max:1080px;--gutter:max(24px, calc((100% - var(--max)) / 2));--header-h:70px;--squiggle:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='10' viewBox='0 0 300 10'%3E%3Cpath d='M0 5 C 22 2 44 8 72 5 S 122 2.5 150 6 S 204 8 232 4 S 278 8 300 5' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E");--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;scroll-behavior:smooth}:root[data-theme=dark]{--bg:#1b1915;--ink:#efeadb;--muted:#aaa392;--border:#efeadb2e;--accent:#e08a4f;--photo-frame:#efeadb;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}body{min-height:100vh;color:var(--ink);flex-direction:column;margin:0;font-size:17px;line-height:1.6;display:flex}body,.site-header{background-color:var(--bg);background-blend-mode:multiply;background-image:url(data:image/webp;base64,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)}.note,.sketch{background-color:var(--paper,#b0aa82);background-blend-mode:multiply;background-image:url(data:image/webp;base64,UklGRsYFAABXRUJQVlA4WAoAAAAgAAAA/wAA/wAASUNDUMgBAAAAAAHIAAAAAAQwAABtbnRyUkdCIFhZWiAH4AABAAEAAAAAAABhY3NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA9tYAAQAAAADTLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlkZXNjAAAA8AAAACRyWFlaAAABFAAAABRnWFlaAAABKAAAABRiWFlaAAABPAAAABR3dHB0AAABUAAAABRyVFJDAAABZAAAAChnVFJDAAABZAAAAChiVFJDAAABZAAAAChjcHJ0AAABjAAAADxtbHVjAAAAAAAAAAEAAAAMZW5VUwAAAAgAAAAcAHMAUgBHAEJYWVogAAAAAAAAb6IAADj1AAADkFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9YWVogAAAAAAAA9tYAAQAAAADTLXBhcmEAAAAAAAQAAAACZmYAAPKnAAANWQAAE9AAAApbAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAACAAAAAcAEcAbwBvAGcAbABlACAASQBuAGMALgAgADIAMAAxADZWUDgg2AMAABAgAJ0BKgABAAE+bTaVSaQipKQgKWCQDYlpbpN20Bsemw2hM/5I1A1wY8Rge5AnD2wTI32f3rg9/9cD+sATzgsRufkZlPhgRFgfohRCk9B10bHyEAlC9EjIH3hlm9enBQXnw8OxXl79XbyPIkwJ5q5XJxGfsVAtK0VVXlsir8Mga0zlBDB9ILScof7MFjKpAjyMYq2bq5YgALx8KYfbAsqkSnsG24v5dFGHOouH+G2vff8yCLmjbIX16YEAnK+s9lBuFt4FmMuJJtLhtagtNp+wA0fdSfnfliJkBipWGjUpDqvLR8wzWgpAXEJiw2TKAIYWfFsFxDu+RGF1w1U2482AOUEUMLry+AAA/vqD+j0RBjuB8hQZykh0EK3XTbUeA2CNJiN+EqJmcA9eKvomuV21Yu9kqSlIOzb+LTKQuZrWp3+rNEqVuAZIYpjmvLDwXxlWgyXho1lhyheobs89Ns5bjDU9LkV53ZyfsLIH1ZxjxEhdqaOeovRYsNy2nJJRtRx8A9Y3rbbyyAJmYvlP7K8pmXZ66o53KIN5E6N8mS3OjcEXJek4y0U9DJCmlbiVbsrYqf0c5MHQGBemkeR+yR8iXjqPCRzqrQu7a4eoa1hH23ld6ECKtat0u2bQkVluSBbyObxb2msSGdisd+ASUTA0bke0k1yqJL4O+TU5EoGxJ0dyIr9FJjHE9+zLWKQ/eJwu3DaveQlVwiBW5isrUjpHseNxwd2Z7aUwKLRixqDJ2rxzZHiYoobjh3TXo1KAsGUB50B/g5Fr9tuzxLtGBmFRMZUZW51fj6pcb7s7Nlbg+57YeNmp9+RE+Ur8WoT45web1dAUm8qkHtRLfsw8PDy9SgL0E7uZAUsIUMrcepJR+3Qa4+Fvc4FUvSxVDXUGHlkbxKtS76ckYMHccO/pnvjFuG+psVMY/pHAyMfUOEBLVprHbV+B+V+B0hkW6fztFCnwQ+QyGPYPVR6NQ4g7FUzkMi9QmQQrMaEmuERdFAxNHuENw3IIlKLr0Ga3Zb4BGYI15QPDUX0Qs9Inl8OO3kbDMlT7usrdRAbq0oa0b4g3VZgQXiM6IyfRZrWWdn0Adt+6e/VDOL9O+0G39pfX07gMekabzUjNhtpfRhLQsuMOkOepFqtNGWyNNaVv15yS+6FTTCPTeqaEzCjlsi7hV6FgkUczbpReeq9KyCMQistrUh+9xcoWDHzFuTjltNUC86ZxOzYqmSmEJJAh8JMYv5ZF9JXX7u+R2OO+C8a+a3/AEQNUf6GJhiP47ZmNLGWEBpWgWb6E00zd1kiZZ2zPPcf4puxk5YAAAA==)}main{flex-direction:column;flex:1;display:flex}.svg-defs{width:0;height:0;color:var(--note-ink);position:absolute}img{max-width:100%;display:block}ul{margin:0;padding:0;list-style:none}[hidden]{display:none!important}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}.site-header{padding:14px var(--gutter);z-index:10;flex-wrap:wrap;align-items:center;gap:10px 28px;display:flex;position:sticky;top:0}.site-header:after,.hero h1:after,.projects>h2:after,.project-group+.project-group:before,.site-footer:before{content:"";background:var(--ink);height:10px;-webkit-mask:var(--squiggle) repeat-x left center;-webkit-mask:var(--squiggle) repeat-x left center;mask:var(--squiggle) repeat-x left center}.site-header:after{opacity:.6;position:absolute;top:calc(100% - 5px);left:0;right:0}.brand{font-family:Instrument Serif,serif;font-size:1.5rem;line-height:1}.site-header nav{margin-left:auto}.site-header nav ul{gap:24px;font-weight:500;display:flex}.header-actions{align-items:center;gap:4px;display:flex}.icon-link{border-radius:50%;place-items:center;width:40px;height:40px;display:grid}.icon-link:hover{color:var(--accent)}.icon-link .scrib{display:none}.site-header nav a{color:var(--muted)}.site-header nav a:hover{color:var(--ink)}.theme-btn{width:40px;height:40px;color:var(--ink);cursor:pointer;background:0 0;border:none;border-radius:50%;place-items:center;padding:0;display:grid}.theme-btn:hover{color:var(--accent)}.hero{min-height:calc(100vh - var(--header-h));padding:64px var(--gutter);grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:56px;display:grid}.me{flex-direction:column;align-items:flex-start;gap:20px;display:flex}.hero .snapshot{width:172px}.hero h1{margin:0;font-size:clamp(3rem,7vw,5rem);font-weight:400;line-height:1}.hero h1:after{background:var(--accent);width:calc(100% + 16px);margin:8px 0 0 -8px;display:block}.intro{max-width:44ch;color:var(--muted);margin:0}.board{flex-wrap:wrap;justify-content:center;gap:36px 28px;display:flex}.board .note:nth-of-type(2){margin-top:24px}.projects{padding:72px var(--gutter) 40px;scroll-margin-top:var(--header-h)}.projects>h2:after{background:var(--accent);width:130px;margin-top:8px;display:block}.projects>h2{margin:0 0 16px;font-size:clamp(2.2rem,4.5vw,3rem);font-weight:400;line-height:1}.sketch{color:var(--note-ink);transform:rotate(var(--r,0));margin:0;padding:22px 18px 12px;font-family:Caveat,cursive;position:relative;box-shadow:0 8px 15px #00000026}.sketch svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:100%;height:auto;display:block}.sketch text{fill:currentColor;stroke:none;font-size:19px}.sketch .dot{fill:currentColor}.sketch .dashed{stroke-dasharray:6 7}.sketch .mark{stroke:var(--pen-red)}.sketch text.mark{fill:var(--pen-red);stroke:none}.sketch figcaption{text-align:center;opacity:.75;margin-top:6px;font-size:1.2rem;line-height:1.2}.snapshot{background:var(--photo-frame);color:var(--note-ink);transform:rotate(var(--r,0));margin:0;padding:10px 10px 8px;font-family:Caveat,cursive;position:relative;box-shadow:0 8px 15px #00000026}.snapshot img{width:100%;height:auto}.snapshot.square img{aspect-ratio:1;object-fit:cover}.snapshot figcaption{text-align:center;opacity:.75;margin-top:6px;font-size:1.2rem;line-height:1.2}.site-footer{padding:48px var(--gutter) 40px;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px 48px;margin-top:32px;display:flex;position:relative}.site-footer:before{opacity:.6;position:absolute;top:-5px;left:0;right:0}.site-footer p{margin:0}.footer-name{font-family:Instrument Serif,serif;font-size:1.9rem;line-height:1.1}.footer-note{color:var(--muted);font-size:.9rem}.footer-links{flex-wrap:wrap;gap:12px 26px;font-weight:500;display:flex}@media (width<=800px){.hero{grid-template-columns:1fr;gap:48px;padding-block:40px 56px}.board .note:nth-of-type(2){margin-top:0}.projects{padding-top:48px}}@media (width<=600px){:root{--header-h:106px}body{font-size:16px}.header-actions{margin-left:auto}.site-header nav{flex-basis:100%;order:3;margin-left:0}.hero .snapshot{width:140px}}@media (prefers-reduced-motion:reduce){:root{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}.hand-link{color:var(--accent);align-self:flex-start;font-family:Caveat,cursive;font-size:1.35rem;line-height:1.2}.meta-line{color:var(--accent);margin:0;font-family:Caveat,cursive;font-size:1.35rem;line-height:1.2}.sketch.small{padding:12px 10px 6px}.sketch.small:before{width:56px;height:18px;top:-9px}.sketch.small figcaption,.sketch.phone figcaption{font-size:1.05rem}.sketch.phone{padding:8px 8px 4px}.sketch.phone:before{z-index:2;width:56px;height:18px;top:-9px}.sketch.phone img,.sketch.phone .phone-placeholder{z-index:1;position:relative}.sketch.phone img,.phone-placeholder{aspect-ratio:1206/2622;object-fit:cover;width:100%;display:block}.phone-placeholder{opacity:.8;background:repeating-linear-gradient(135deg,#ece8dc 0 6px,#f6f3ea 6px 12px);place-items:center;font-size:1.1rem;display:grid}.graph-paper{background-color:#fbfaf3;background-image:linear-gradient(#3c6e8c24 1px,#0000 1px),linear-gradient(90deg,#3c6e8c24 1px,#0000 1px);background-size:14px 14px;padding:10px}.phone-row{justify-content:center;align-items:flex-start;gap:28px;padding:12px 0;display:flex}.phone-row .phone{flex:0 190px}.phone-row .phone:nth-child(2){margin-top:24px}.project-group{padding:32px 0;position:relative}.project-group+.project-group{margin-top:24px;padding-top:56px}.project-group+.project-group:before{opacity:.45;width:min(260px,60%);position:absolute;top:-5px;left:50%;transform:translate(-50%)}.group-label{color:var(--muted);margin:0 0 24px;font-family:Caveat,cursive;font-size:1.35rem}.featured{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:16px 32px;margin-top:36px;display:grid}.featured p:last-child{max-width:60ch;margin:10px 0 0}.project-group h3{margin:0 0 2px;font-family:Instrument Serif,serif;font-size:2rem;font-weight:400;line-height:1.1}.before-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:44px;display:grid}.past-project{flex-direction:column;gap:4px;display:flex}.past-project .sketch{margin-bottom:20px}.past-project h3{font-size:1.5rem}.project-page{width:100%;max-width:calc(720px + 2 * var(--gutter));padding:36px var(--gutter) 72px;flex-direction:column;gap:40px;margin:0 auto;display:flex}.project-title{margin-top:-20px}.project-title h1{margin:0 0 6px;font-size:clamp(2.4rem,5vw,3.4rem);font-weight:400;line-height:1.05}.facts{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:0;padding:18px 4px;display:grid;position:relative}.facts:before,.facts:after{content:"";background:var(--ink);opacity:.45;height:10px;-webkit-mask:var(--squiggle) repeat-x left center;-webkit-mask:var(--squiggle) repeat-x left center;mask:var(--squiggle) repeat-x left center;position:absolute;left:0;right:0}.facts:before{top:-5px}.facts:after{bottom:-5px}.facts dt{color:var(--muted);font-family:Caveat,cursive;font-size:1.1rem;line-height:1.2}.facts dd{margin:0;font-size:.95rem;line-height:1.35}.question h2{color:var(--ink);margin:0 0 14px;font-family:Caveat,cursive;font-size:1.9rem;font-weight:500;line-height:1}.question p{max-width:60ch;margin:0 0 1em}.question>.sketch,.question>.phone-row{margin-top:28px}.feature-rows{gap:32px;margin-top:28px;display:grid}.feature-row{grid-template-columns:200px minmax(0,1fr);align-items:center;gap:24px;display:grid}.feature-row strong{margin-bottom:4px;display:block}.feature-row p{margin:0}.todo{border:1.5px dashed var(--accent);color:var(--muted);border-radius:6px;padding:10px 14px;font-size:.95rem}.next-row{justify-content:flex-end;margin-top:8px;display:flex}.next-row .note-meta{margin:0 0 4px}.not-found{padding:72px var(--gutter) 56px;text-align:center;place-content:center;justify-items:center;gap:20px;display:grid}.not-found h1{margin:0;font-size:clamp(2.6rem,6vw,4rem);font-weight:400;line-height:1}.not-found h1:after{content:"";background:var(--accent);width:calc(100% + 16px);height:10px;-webkit-mask:var(--squiggle) repeat-x left center;-webkit-mask:var(--squiggle) repeat-x left center;mask:var(--squiggle) repeat-x left center;margin:10px 0 0 -8px;display:block}.not-found .board{margin-top:28px}.not-found .note{text-align:left}.empty-spot{border:2px dashed var(--border);border-radius:2px;place-items:center;width:220px;height:140px;margin-bottom:16px;display:grid;position:relative;transform:rotate(-2deg)}.empty-spot .tape{background:#fff9;width:80px;height:24px;animation:.35s ease-out backwards tape-stick;position:absolute;top:-12px;box-shadow:0 1px 3px #0000001f}.empty-spot .tape-left{--tape-r:-6deg;transform:translateX(-50%) rotate(var(--tape-r));left:22%}.empty-spot .tape-right{--tape-r:8deg;transform:translateX(-50%) rotate(var(--tape-r));width:46px;animation-delay:.1s;left:78%}.crumpled-note{filter:drop-shadow(0 6px 6px #0000002e);justify-self:end;width:130px;margin:4px 6% 0 0;animation:.7s cubic-bezier(.3,.7,.4,1) 1.9s backwards note-fall;transform:rotate(-12deg)}@keyframes note-fall{0%{opacity:0;transform:translate(-30px,-70px)rotate(24deg)}40%{opacity:1}to{transform:rotate(-12deg)}}.empty-code{color:var(--muted);opacity:.6;font-family:Caveat,cursive;font-size:3.4rem;line-height:1;transform:rotate(3deg)}@media (width<=800px){.before-grid{grid-template-columns:1fr}.phone-row{gap:14px}.phone-row .phone{flex:0 30%}.featured{grid-template-columns:1fr}}@media (width<=600px){.facts{gap:10px}.feature-row{grid-template-columns:110px minmax(0,1fr);gap:16px}}
