@font-face{font-family:Newsreader;font-style:italic;font-weight:200 800;font-display:swap;src:url(../media/79e9e0e3b9220e46-s.15s2gb72mvmw9.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Newsreader;font-style:italic;font-weight:200 800;font-display:swap;src:url(../media/e62850744c7f266e-s.43_ypb-kqawuo.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Newsreader;font-style:italic;font-weight:200 800;font-display:swap;src:url(../media/9433d1a810498265-s.p.3z77xcxvtx9_e.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Newsreader;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/150f724d70372c02-s.2ym9msm88vm4r.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Newsreader;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/750c737482d9de2f-s.08jxdyhjmo52g.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Newsreader;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/5f402bd2d8eef81a-s.p.23oeb0afa3wba.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Newsreader Fallback;src:local(Times New Roman);ascent-override:69.68%;descent-override:25.12%;line-gap-override:0.0%;size-adjust:105.48%}.newsreader_4cc107e7-module__Uly1va__className{font-family:Newsreader,Newsreader Fallback}.newsreader_4cc107e7-module__Uly1va__variable{--font-serif:"Newsreader", "Newsreader Fallback"}
@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/13bf9871fe164e7f-s.3bz3aq452sydg.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/cc545e633e20c56d-s.2sb9jzhmrh7ny.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/71b036adf157cdcf-s.343obqi851wr5.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/89b21bb081cb7469-s.40kcwrf1wub16.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/3fe682a82f50d426-s.200l3jur7oygh.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/70bc3e132a0a741e-s.p.269kn9uafm0ti.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Fallback;src:local(Arial);ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.0%;size-adjust:134.59%}.jetbrains_mono_8be3b53a-module__CxiPNW__className{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.jetbrains_mono_8be3b53a-module__CxiPNW__variable{--font-mono:"JetBrains Mono", "JetBrains Mono Fallback"}
:root{--bg:#f5f3ee;--ink:#1b1a17;--muted:#6b675f;--rule:#dcd7cc;--accent:#c2410c;--tint-1000ft:#edf2f6;--tint-100ft:#f1eee7;--tint-ground:#ebe4d6;--serif:var(--font-serif), Georgia, "Times New Roman", serif;--mono:var(--font-mono), ui-monospace, "SF Mono", Menlo, monospace;--ease:cubic-bezier(.2, .7, .2, 1);--mark:color-mix(in srgb, var(--accent) 24%, transparent);--gutter:1.25rem;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#131311;--ink:#ebe7de;--muted:#9b968b;--rule:#2e2c28;--accent:#fb7a3c;--tint-1000ft:#151b21;--tint-100ft:#1a1917;--tint-ground:#221d16;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*,:before,:after{box-sizing:border-box}html,body{overscroll-behavior:none}body{background:var(--bg);color:var(--ink);font-family:var(--serif);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:1.125rem;line-height:1.6}a{color:inherit;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:.2em}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}.page{max-width:44rem;padding:5rem var(--gutter) 8rem;margin:0 auto}.masthead{flex-wrap:wrap;align-items:baseline;gap:.25rem 1rem;margin-bottom:5rem;display:flex}.name{letter-spacing:-.02em;flex-basis:100%;margin:0;font-size:clamp(2.5rem,7vw,3.5rem);font-weight:500;line-height:1.05}.role,.cv-link,.section-label,.project-number,.depth-bar,.level-end{font-family:var(--mono);font-size:.8rem}.role{color:var(--muted);margin:0}.cv-link{color:var(--accent);text-decoration:none}.cv-link:hover{text-decoration:underline}.section-label{border-bottom:1px solid var(--ink);color:var(--muted);text-transform:uppercase;letter-spacing:.14em;margin:0;padding-bottom:.75rem;font-weight:400}.project{--tint:transparent;--contours:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-300 -300 600 600'><g fill='none' stroke='black' stroke-width='1.3' vector-effect='non-scaling-stroke'><path id='c' vector-effect='non-scaling-stroke' d='M0,-260 C150,-270 280,-160 270,-20 C260,120 170,250 20,265 C-130,280 -250,180 -265,10 C-280,-160 -150,-250 0,-260 Z'/><use href='%23c' transform='rotate(9) scale(.82)'/><use href='%23c' transform='rotate(18) scale(.64)'/><use href='%23c' transform='rotate(27) scale(.47)'/><use href='%23c' transform='rotate(36) scale(.3)'/><use href='%23c' transform='rotate(45) scale(.14)'/></g></svg>");isolation:isolate;margin-inline:calc(-1 * var(--gutter));padding:2.25rem var(--gutter);border-bottom:1px solid var(--rule);background:var(--tint);transition:background-color .6s var(--ease);position:relative}.project[data-open]{--tint:var(--tint-100ft);z-index:1}.project[data-open][data-altitude="1000ft"]{--tint:var(--tint-1000ft)}.project[data-open][data-altitude=ground]{--tint:var(--tint-ground)}.project-head{grid-template-columns:2.5rem 1fr;column-gap:.5rem;display:grid}.project-number{color:var(--accent);padding-top:.55rem}.project-title{letter-spacing:-.01em;margin:0;font-size:clamp(1.45rem,4vw,2rem);font-weight:500;line-height:1.15;position:relative}.project-title a{text-decoration:none}.project:not([data-open]){cursor:pointer}.project:not([data-open]) .project-title a:after{content:"";z-index:1;position:absolute;inset:0}.project:not([data-open]) .project-title{position:static}.project:not([data-open]) .depths{z-index:2;position:relative}.project-title-text{display:inline-block;position:relative}@property --sweep{syntax:"<angle>";inherits:false;initial-value:0deg}.scribble{fill:none;width:calc(100% + 2.4em);height:calc(100% + 1.6em);stroke:var(--accent);stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;opacity:0;pointer-events:none;-webkit-mask-image:conic-gradient(from var(--from,0deg), #000 var(--sweep), transparent 0);mask-image:conic-gradient(from var(--from,0deg), #000 var(--sweep), transparent 0);transition:--sweep .25s ease-in,opacity .25s;position:absolute;inset:-.8em -1.2em;overflow:visible}.project-list:not(:has(.project[data-open])) .project:is(:hover,:focus-within) .scribble{--sweep:360deg;opacity:.85;transition:--sweep .75s cubic-bezier(.3,.6,.2,1),opacity .1s}.project-hook{color:var(--muted);grid-column:2;margin:.6rem 0 0;font-style:italic}.depth-bar{flex-wrap:wrap;align-items:center;gap:.6rem 1rem;margin-top:.5rem;padding:.75rem 0 .75rem 3rem;display:flex;position:relative}.project[data-open] .depth-bar{z-index:1;margin-inline:calc(-1 * var(--gutter));padding-inline:calc(var(--gutter) + 3rem) var(--gutter);background:var(--tint);border-bottom:1px solid var(--rule);transition:background-color .6s var(--ease);position:sticky;top:0}.depth-prompt,.altimeter{min-width:9rem;color:var(--muted)}.altimeter{color:var(--accent);font-variant-numeric:tabular-nums;align-items:center;gap:.45em;display:inline-flex}.gauge{fill:none;width:1.2rem;height:1.2rem;stroke:var(--muted);stroke-width:1px}.gauge .needle{stroke:var(--accent);stroke-width:1.6px;stroke-linecap:round}.altimeter-label{color:var(--muted);margin-right:.5em}.depths{flex-wrap:wrap;gap:.4rem;display:flex}.depth{border:1px solid var(--rule);border-radius:999px;gap:.5em;padding:.3rem .75rem;text-decoration:none;transition:border-color .2s,background-color .2s,color .2s;display:inline-flex}.depth:hover{border-color:var(--ink)}.depth[aria-current]{border-color:var(--ink);background:var(--ink);color:var(--bg)}.depth-time{opacity:.6}.pull-up{color:var(--muted);margin-left:auto;text-decoration:none}.pull-up:hover{color:var(--ink)}.progress{background:var(--accent);transform-origin:0;height:2px;position:absolute;bottom:-1px;left:0;right:0;transform:scaleX(0)}.project{view-transition-class:card}.project-title{view-transition-class:title}::view-transition-group(*){animation-duration:.65s;animation-timing-function:var(--ease)}::view-transition-group(.card){overflow:clip}::view-transition-old(.card){object-fit:none;object-position:top left;width:100%;height:100%}::view-transition-new(.card){object-fit:none;object-position:top left;width:100%;height:100%}.clouds{--cloud:#ecf3fae6;z-index:5;pointer-events:none;background:radial-gradient(ellipse 38% 16% at 18% 28%, var(--cloud) 0 35%, transparent 70%), radial-gradient(ellipse 30% 13% at 78% 48%, var(--cloud) 0 35%, transparent 70%), radial-gradient(ellipse 46% 18% at 42% 72%, var(--cloud) 0 35%, transparent 70%), radial-gradient(ellipse 26% 11% at 88% 88%, var(--cloud) 0 35%, transparent 70%);filter:blur(14px);animation:clouds 1.1s var(--ease) forwards;position:fixed;inset:-25vh 0}@media (prefers-color-scheme:dark){.clouds{--cloud:#becddc24}}@keyframes clouds{0%{opacity:0;transform:translateY(55%)}30%{opacity:1}to{opacity:0;transform:translateY(-55%)}}.project:before{content:"";z-index:-1;background:var(--accent);-webkit-mask-image:var(--contours), var(--contours);mask-image:var(--contours), var(--contours);opacity:0;transition:opacity .9s var(--ease);pointer-events:none;position:absolute;inset:0;-webkit-mask-position:right -9rem top -7rem,left -11rem bottom -9rem;mask-position:right -9rem top -7rem,left -11rem bottom -9rem;-webkit-mask-size:38rem,30rem;mask-size:38rem,30rem;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.project[data-open][data-altitude=ground]:before{opacity:.16}.level{padding:2rem 0 0 3rem}.project[data-open] .level-down{animation:descend .55s var(--ease) both}.project[data-open] .level-up{animation:ascend .55s var(--ease) both}@keyframes descend{0%{opacity:0;transform:translateY(1.75rem)}}@keyframes ascend{0%{opacity:0;transform:translateY(-1.75rem)}}@keyframes fade{0%{opacity:0}}.level p,.level ul{margin:0 0 1.1em}.project[data-altitude="1000ft"] .level{font-size:clamp(1.3rem,3vw,1.6rem);line-height:1.45}.project[data-altitude="100ft"] .level{font-size:1.2rem;line-height:1.6}.project[data-altitude=ground] .level{font-size:1.05rem;line-height:1.6}.level h4{color:var(--accent);font-family:var(--mono);text-transform:uppercase;letter-spacing:.14em;margin:2.25rem 0 .6rem;font-size:.75rem;font-weight:500}.level section:first-child h4{margin-top:0}.level ul{padding-left:1.1rem}.level li{margin-bottom:.5em}.level li::marker{color:var(--accent)}.level code{background:color-mix(in srgb, var(--ink) 8%, transparent);font-family:var(--mono);overflow-wrap:anywhere;border-radius:4px;padding:.1em .35em;font-size:.82em}.level-end{border-top:1px dashed var(--rule);flex-direction:column;align-items:flex-start;gap:1.25rem;margin-top:2.5rem;padding:1.5rem 0 .5rem;display:flex}.descend{color:var(--accent);text-decoration:none}.descend:hover{text-decoration:underline}.next-project{border:1px solid var(--rule);width:100%;transform:translateY(calc(var(--pull,0) * -.75rem));transition:transform .35s var(--ease), border-color .2s;border-radius:12px;flex-direction:column;gap:.35rem;padding:1.25rem 1.25rem 1.75rem;text-decoration:none;display:flex;position:relative}html[data-pulling] .next-project{border-color:var(--accent);transition-duration:.18s;transition-timing-function:linear}.next-label{color:var(--muted)}.next-label:after{content:"↓";color:var(--accent);margin-left:.5em;animation:1.6s ease-in-out infinite nudge;display:inline-block}@keyframes nudge{50%{transform:translateY(3px)}}.pull-meter{background:var(--rule);border-radius:2px;height:2px;position:absolute;bottom:.8rem;left:1.25rem;right:1.25rem;overflow:hidden}.pull-meter span{background:var(--accent);height:100%;transform:scaleX(var(--pull,0));transform-origin:0;transition:transform .35s var(--ease);display:block}html[data-pulling] .pull-meter span{transition-duration:.18s;transition-timing-function:linear}.read-it{color:var(--accent)}.impact-quote{display:none}.depth-settings{min-width:0;font-family:var(--mono);border:0;flex-basis:100%;margin:1.75rem 0 0;padding:0;font-size:.8rem}.depth-settings legend{color:var(--muted);margin-bottom:.6rem;padding:0}.depth-settings .depth{cursor:pointer;-webkit-user-select:none;user-select:none;position:relative}.depth-settings .depth[data-on]{border-color:var(--ink);background:var(--ink);color:var(--bg)}.depth-settings .depth:has(input:disabled){cursor:not-allowed}.depth-settings .depth:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:3px}.depth-settings input{opacity:0;pointer-events:none;position:absolute;inset:0}.next-title{font-family:var(--serif);font-size:1.35rem;line-height:1.2}.next-project:hover .next-title{text-decoration:underline;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-decoration-thickness:1px}.gate-hud{--reveal:0;z-index:10;padding:.9rem var(--gutter) 1.5rem;background:var(--bg);color:var(--muted);font-family:var(--mono);text-align:center;pointer-events:none;transition:clip-path .35s var(--ease);font-size:.8rem;position:fixed;left:0;right:0}.gate-hud-back{--reveal:min(1, calc(var(--pull-back,0) * 6));padding-top:calc(.9rem + env(safe-area-inset-top,0px));border-bottom:1px solid var(--accent);clip-path:inset(0 0 calc((1 - var(--reveal)) * 100%) 0);top:0}.gate-hud-start{--reveal:min(1, calc(var(--pull,0) * 6));padding-bottom:calc(1.5rem + env(safe-area-inset-bottom,0px));border-top:1px solid var(--accent);clip-path:inset(calc((1 - var(--reveal)) * 100%) 0 0 0);bottom:0}html:is([data-pulling],[data-pulling-back]) .gate-hud{transition-duration:.18s;transition-timing-function:linear}.gate-hud-back .gate-hud-label:before{content:"↑ ";color:var(--accent)}.gate-hud-start .gate-hud-label:after{content:" ↓";color:var(--accent)}.gate-hud .pull-meter{right:var(--gutter);left:var(--gutter)}.gate-hud-back .pull-meter span{transform:scaleX(var(--pull-back,0));transform-origin:100%}html[data-pulling-back] .gate-hud-back .pull-meter span{transition-duration:.18s;transition-timing-function:linear}.cv-gate{--size:11rem;width:var(--size);height:var(--size);text-align:center;place-items:center;margin:1rem auto .5rem;text-decoration:none;display:grid;position:relative}.cv-ring{fill:none;stroke:var(--rule);stroke-width:3px;position:absolute;inset:0;transform:rotate(-90deg)}.cv-ring-fill{stroke:var(--accent);stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--pull,0));transition:stroke-dashoffset .35s var(--ease)}html[data-leaving] .cv-ring-fill{stroke-dashoffset:0;transition-duration:.3s}html[data-leaving] .cv-gate{animation:cv-go .5s var(--ease) both}@keyframes cv-go{50%{transform:scale(1.06)}}html[data-pulling] .cv-ring-fill{transition-duration:.18s;transition-timing-function:linear}.cv-gate-text{max-width:8rem;font-family:var(--mono);flex-direction:column;gap:.35rem;font-size:.75rem;line-height:1.35;display:flex}.cv-gate-kicker{color:var(--muted)}.cv-gate strong{color:var(--accent);font-weight:500}.cv-opening,html:is([data-pulling-far],[data-leaving]) .cv-idle{display:none}html:is([data-pulling-far],[data-leaving]) .cv-opening{display:inline}.level mark{background:linear-gradient(var(--mark), var(--mark)) no-repeat 0 88% / 100% .5em;color:inherit;padding-inline:.05em}@supports (animation-timeline:view()){.level mark{animation:linear both mark-in;animation-timeline:view();animation-range:entry 10%}}@keyframes mark-in{0%{background-size:0% .5em}}.site-footer{color:var(--muted);font-family:var(--mono);view-transition-name:site-footer;margin-top:4rem;font-size:.8rem}.project-head{scroll-margin-top:2.25rem}.level-end{scroll-margin-bottom:1.5rem}.runway{display:none}@media (pointer:coarse){.gate-hud,.next-project .pull-meter{display:none}.next-project{transform:none}.runway{padding:2.5rem var(--gutter) 0;color:var(--muted);font-family:var(--mono);text-align:center;flex-direction:column;align-items:center;gap:.8rem;font-size:.8rem;display:flex}.runway-start{height:65svh}.runway-next{height:80svh}.runway-cv{height:95svh}.runway-back{height:80svh;padding:0 var(--gutter) 2.5rem;justify-content:flex-end}.runway .pull-meter{width:min(16rem,70%);height:3px;position:static}.runway-back .pull-meter span{transform:scaleX(var(--pull-back,0));transform-origin:100%}.runway-pull:after{content:" ↓";color:var(--accent)}.runway-back .runway-pull:after{content:none}.runway-back .runway-pull:before{content:"↑ ";color:var(--accent)}.runway-release,.runway[data-ready] .runway-pull{display:none}.runway[data-ready] .runway-release{color:var(--accent);font-weight:500;display:inline}.clouds{filter:none;opacity:.75}::view-transition-group(*){animation-duration:.38s}.project-title{view-transition-name:none!important}.project[data-open] :is(.level-down,.level-up){animation-duration:.38s}}@media (max-width:34rem){.page{padding-top:2rem}.masthead{row-gap:.15rem;margin-bottom:2.25rem}.name{font-size:2.3rem}.depth-settings{margin-top:1rem}.depth-settings legend{margin-bottom:.4rem}.depth-settings .depth{padding:.2rem .6rem}.project{padding-block:1.5rem}.project-head{grid-template-columns:1fr;scroll-margin-top:1.5rem}.project-number{padding-top:0}.project-title{font-size:1.35rem}.project-hook{grid-column:1;margin-top:.4rem;font-size:1rem}.depth-bar{gap:.5rem .75rem;margin-top:.25rem}.depth-bar,.level{padding-left:0}.depth-prompt{display:none}.depth{padding:.25rem .6rem}.project[data-open] .depth-bar{padding:calc(.5rem + env(safe-area-inset-top,0px)) var(--gutter) .5rem;transition:transform .25s var(--ease), background-color .6s var(--ease);flex-wrap:nowrap;gap:.5rem}html[data-scroll=down] .project[data-open] .depth-bar{transform:translateY(-110%)}.project[data-open] :is(.altimeter-label,.depth-time,.pull-up-text){display:none}.project[data-open] .altimeter{min-width:0}.project[data-open] .depths{flex-wrap:nowrap;gap:.3rem}.pull-up{padding:.25rem .4rem}.level{padding-top:1.25rem}.project[data-altitude="1000ft"] .level{font-size:1.2rem}.project[data-altitude="100ft"] .level{font-size:1.08rem;line-height:1.55}.project[data-altitude=ground] .level{font-size:1rem;line-height:1.55}.level h4{margin-top:1.75rem}.level code{font-size:.78em}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.project,.project:before,.project[data-open] .depth-bar{transition:none}.project[data-open] .level-down,.project[data-open] .level-up{animation:.2s both fade}.next-label:after,.level mark{animation:none}}.scroll-cue{left:50%;bottom:calc(1.5rem + env(safe-area-inset-bottom,0px));z-index:9;background:var(--ink);color:var(--bg);font-family:var(--mono);opacity:0;pointer-events:none;transition:opacity .4s var(--ease), transform .4s var(--ease);border-radius:999px;align-items:center;gap:.6rem;padding:.55rem 1rem .55rem .75rem;font-size:.8rem;display:flex;position:fixed;transform:translate(-50%,1rem);box-shadow:0 10px 30px #0000002e}.scroll-cue[data-shown]{opacity:1;transform:translate(-50%)}.cue-verb:before{content:"Scroll"}.cue-arrow:before{content:" ↓";color:var(--accent)}.cue-mouse{border:1.5px solid;border-radius:.5rem;width:.85rem;height:1.25rem;position:relative}.cue-mouse span{background:var(--accent);border-radius:1px;width:2px;height:.3rem;margin-left:-1px;animation:1.6s ease-in-out infinite cue-wheel;position:absolute;top:.2rem;left:50%}@keyframes cue-wheel{0%{opacity:0;transform:translateY(0)}30%{opacity:1}80%,to{opacity:0;transform:translateY(.45rem)}}@media (pointer:coarse){.cue-mouse{display:none}.cue-verb:before{content:"Swipe up"}}@media (prefers-reduced-motion:reduce){.cue-mouse span{animation:none}}
@media (min-width:75rem) and (orientation:landscape) and (min-height:38rem){.page{grid-template-rows:1fr auto;grid-template-columns:16rem 1fr;column-gap:3rem;max-width:none;height:100dvh;padding:2.5rem 2.5rem 2rem;display:grid;overflow:hidden}.masthead{grid-area:1/1;align-content:start;margin:0}.site-footer{grid-area:2/1;margin:0}.projects-section{flex-direction:column;grid-area:1/2/-1;min-height:0;display:flex}.project-list{flex:1;min-height:0;display:flex}.project{border-bottom:0;border-right:1px solid var(--rule);min-width:0;transition:background-color .6s var(--ease), flex-basis 0s;flex-direction:column;flex:1 1 0;margin:0;padding:2rem 1.75rem 1.75rem;display:flex}.project:last-child{border-right:0}.project:not([data-open]):hover{--tint:var(--tint-1000ft)}.project-head{grid-template-columns:1fr;row-gap:.75rem}.project-number{padding-top:0}.project-hook{grid-column:1}.depth-bar{margin-top:auto;padding:1.5rem 0 0}.impact-quote{letter-spacing:-.01em;margin:auto 0;padding-block:2rem;font-size:clamp(1.45rem,1.9vw,2.1rem);line-height:1.3;display:block}.impact-quote:before{content:"“";height:.55em;color:var(--accent);font-size:3.2em;line-height:1;display:block}.impact-quote mark{background:linear-gradient(var(--mark), var(--mark)) no-repeat 0 88% / 100% .45em;color:inherit;padding-inline:.05em}.impact-quote+.depth-bar{margin-top:0}.project-list:has(.project[data-open]) .project:not([data-open]){flex:0 0 4.25rem;padding:2rem .9rem}.project-list:has(.project[data-open]) .project:not([data-open]) .project-title{writing-mode:vertical-rl;justify-self:center;max-height:100%;font-size:1.05rem;line-height:1.2}.project-list:has(.project[data-open]) .project:not([data-open]) .project-title a{text-decoration:none;transition:color .2s}.project-list:has(.project[data-open]) .project:not([data-open]):hover .project-title a{color:var(--accent)}.project-list:has(.project[data-open]) .project:not([data-open]) :is(.project-hook,.impact-quote,.depth-bar){display:none}.project[data-open]{flex:auto;grid-template-rows:auto 1fr;grid-template-columns:19rem 1fr;column-gap:3.5rem;padding:2rem 0 1.75rem 2rem;display:grid}.project[data-open] .project-head{grid-area:1/1}.project[data-open] .depth-bar{border-bottom:1px solid var(--rule);background:0 0;flex-direction:column;grid-area:2/1;align-items:flex-start;gap:1rem;margin:1.75rem 0 0;padding:0 0 1.25rem;position:relative}.project[data-open] .depths{flex-direction:column;align-items:flex-start}.project[data-open] .pull-up{margin:auto 0 0}.project[data-open] .level{column-width:21rem;column-fill:auto;column-rule:1px solid var(--rule);scrollbar-width:thin;overscroll-behavior-x:contain;orphans:3;widows:3;grid-area:1/2/-1;column-gap:3.5rem;height:100%;min-height:0;padding:0 2rem 0 0;overflow:auto hidden}.level h4{break-after:avoid}.level li{break-inside:avoid}.project-title{view-transition-name:none!important}.level-end{break-before:column;border-top:0;margin-top:0}.level mark{animation-timeline:view(inline)}.next-project{transform:translateX(calc(var(--pull,0) * -.75rem))}.next-label:after{content:"→";animation-name:nudge-sideways}@keyframes nudge-sideways{50%{transform:translate(3px)}}.project-list:has(.project[data-open])~.scroll-cue .cue-arrow:before{content:" →"}}
.diagram{width:100%;height:100%;position:relative}.diagram svg{width:100%;height:100%;display:block;overflow:visible}.dg-node,.dg-edge{cursor:help;transition:opacity .45s var(--ease);outline:none}.dg-node[data-state=idle],.dg-edge[data-state=idle]{opacity:.32}.dg-node[data-state=trail],.dg-edge[data-state=trail]{opacity:.62}.diagram:not([data-live]) :is(.dg-node,.dg-edge){opacity:.55}.dg-label{fill:var(--ink);font-family:var(--mono);text-anchor:middle;font-size:12px}.dg-sub{fill:var(--muted);font-family:var(--mono);text-anchor:middle;font-size:10px}.dg-box{fill:var(--bg);stroke:var(--rule);stroke-width:1.2px;transition:stroke .3s,fill .3s}.dg-ring{fill:none;stroke:var(--accent);stroke-width:2px;opacity:0;transition:opacity .3s}.dg-node[data-state=active] .dg-ring{opacity:1}.dg-node[data-state=active] .dg-box{fill:color-mix(in srgb, var(--accent) 10%, var(--bg));stroke:var(--accent)}.dg-node:is(:hover,:focus-visible) .dg-ring{opacity:.6}.dg-node:is(:hover,:focus-visible) .dg-box{stroke:var(--accent)}.dg-badge rect{fill:var(--accent)}.dg-badge text{fill:var(--bg);font-family:var(--mono);letter-spacing:.06em;text-anchor:middle;font-size:10px;font-weight:600}.dg-badge{animation:dg-pop .35s var(--ease)}@keyframes dg-pop{0%{opacity:0;transform:translateY(4px)scale(.85)}}.dg-line{fill:none;stroke:var(--muted);stroke-width:1.4px;transition:stroke .3s}.dg-edge[data-assumed] .dg-line{stroke-dasharray:5 4}.dg-edge[data-state=active] .dg-line{stroke:var(--accent);stroke-width:2px}.dg-edge:is(:hover,:focus-visible) .dg-line{stroke:var(--accent)}.dg-hit{fill:none;stroke:#0000;stroke-width:16px}.dg-arrowhead path{fill:var(--muted)}.dg-arrowhead-on path,.dg-packet{fill:var(--accent)}.dg-edge-label{fill:var(--accent);font-family:var(--mono);paint-order:stroke;stroke:var(--bg);stroke-width:4px;stroke-linejoin:round;font-size:10.5px}.dg-tip{z-index:5;background:var(--ink);width:max-content;max-width:15rem;color:var(--bg);font-family:var(--serif);pointer-events:none;animation:dg-tip-in .16s var(--ease);border-radius:8px;flex-direction:column;gap:.25rem;padding:.6rem .75rem;font-size:.85rem;line-height:1.4;display:flex;position:absolute;transform:translate(-50%,calc(-100% - 12px));box-shadow:0 8px 24px #0000002e}.dg-tip strong{font-family:var(--mono);letter-spacing:.02em;opacity:.75;font-size:.72rem;font-weight:500}@keyframes dg-tip-in{0%{opacity:0;transform:translate(-50%,calc(-100% - 6px))}}.dg-count{color:var(--accent)}.dg-hint{color:var(--muted);letter-spacing:.04em;text-transform:none;opacity:.85;margin-left:.9em;font-size:.92em}.dg-hint:before{content:"· "}.walkthrough-figure{z-index:1;margin:1.5rem calc(-1 * var(--gutter)) 1rem;padding:.5rem var(--gutter) .75rem;background:var(--tint);border-bottom:1px solid var(--rule);position:sticky;top:3.9rem}.walkthrough-figure figcaption{color:var(--muted);font-family:var(--mono);text-transform:uppercase;letter-spacing:.12em;justify-content:space-between;align-items:baseline;margin-bottom:.25rem;font-size:.72rem;display:flex}.walkthrough-figure .diagram{height:min(42vh,26rem);transition:height .3s var(--ease), opacity .3s}.walkthrough-figure[data-collapsed] .diagram{opacity:0;height:0}.dg-toggle{border:1px solid var(--rule);color:var(--muted);font:inherit;letter-spacing:0;text-transform:none;cursor:pointer;background:0 0;border-radius:999px;padding:.2rem .5rem;display:none}.diagram-overlay{display:none}@media (max-width:34rem){.dg-hint{margin:.15rem 0 0;display:block}.dg-hint:before{content:none}.walkthrough-figure{top:calc(3.2rem + env(safe-area-inset-top,0px));transition:top .25s var(--ease)}html[data-scroll=down] .walkthrough-figure{top:env(safe-area-inset-top,0px)}.walkthrough-figure .diagram{height:34svh}.dg-toggle{display:inline-block}}@media (min-width:75rem) and (orientation:landscape) and (min-height:38rem){.walkthrough-figure{display:none}.diagram-overlay{top:var(--dg-top,5.5rem);bottom:var(--dg-bottom,2rem);left:2.5rem;right:var(--dg-right,50vw);z-index:4;border-right:1px solid var(--rule);background:var(--tint);opacity:0;clip-path:inset(0 0 0 100%);pointer-events:none;transition:clip-path .6s var(--ease), opacity .3s;flex-direction:column;gap:.75rem;padding:2rem 1.75rem 1.75rem 2rem;display:flex;position:fixed}.diagram-overlay[data-visible]{opacity:1;clip-path:inset(0);pointer-events:auto}.masthead,.site-footer{transition:opacity .3s var(--ease)}html[data-walkthrough] :is(.masthead,.site-footer){opacity:0;visibility:hidden}.dg-overlay-head{justify-content:space-between;align-items:baseline;gap:.5rem 1.5rem;display:flex}.project[data-open] .diagram-overlay .depths{font-family:var(--mono);flex-direction:row;flex-shrink:0;font-size:.75rem}.dg-overlay-caption{color:var(--muted);font-family:var(--mono);text-transform:uppercase;letter-spacing:.12em;margin:0;font-size:.72rem}.diagram-overlay .dg-hint{text-transform:none;letter-spacing:0;margin:.35rem 0 0;display:block}.diagram-overlay .dg-hint:before{content:none}.diagram-overlay .diagram{flex:1;min-height:0}}@media (prefers-reduced-motion:reduce){.diagram-overlay,.walkthrough-figure .diagram,.dg-badge,.dg-tip{transition:none;animation:none}}
