.barestate-terminal{background:0 0;border:0;border-radius:8px;width:100%;padding:0;display:block;position:relative;container-type:inline-size}.barestate-terminal>img{width:100%;height:auto;display:block}.barestate-terminal__screen{transform-origin:0 0;color:#e5efdc;text-align:left;background:#192024;border:0;border-radius:3%;width:55%;height:36%;padding:2.4% 4%;font:500 clamp(8px,3cqw,11px)/1.25 ui-monospace,SFMono-Regular,Menlo,monospace;position:absolute;top:36.6%;left:29%;overflow:hidden;transform:skewY(-4.8deg)}.barestate-terminal__screen>span{gap:1px;display:grid}.barestate-terminal__screen strong{font-weight:600}.terminal-preview-clock{color:#b8c8c6;font-variant-numeric:tabular-nums}.terminal-preview-state{color:#adc793}.terminal-preview-prompt{white-space:nowrap}.terminal-cursor{vertical-align:-.12em;background:#e5efdc;width:.55em;height:.95em;display:inline-block}@media (prefers-reduced-motion:no-preference){.terminal-cursor{animation:1s step-end 3 terminal-cursor}}@keyframes terminal-cursor{0%,to{opacity:1}50%{opacity:.2}}.desk__personal-props>img{width:100%;height:auto;display:block}.drink-cold-wisp{pointer-events:none;opacity:0;inset-inline-start:45%;transform-origin:50%;background:radial-gradient(#e0f7f7f0,#e7f9f98c 35%,#0000 72%);border-radius:50%;width:36%;height:18%;display:block;position:absolute;top:26%;transform:translate(0)scale(.96)}.drink-cold-wisp--two{inset-inline-start:62%;width:30%;height:17%;top:24%}.drink-glass-hover{inset-inline-start:45%;pointer-events:none;clip-path:polygon(10% 0,90% 0,100% 15%,96% 88%,80% 100%,24% 100%,20% 66%,4% 60%,0 15%);width:44%;height:68%;position:absolute;top:12%}.pouch-can-lid{clip-path:ellipse(16.5% 8.4% at 35.6% 67.7%);transform-origin:35.6% 67.7%;pointer-events:none;position:absolute;inset:0}.pouch-can-interior{inset-inline-start:19.2%;opacity:0;pointer-events:none;background:radial-gradient(at 50% 65%,#777b79,#a6aaa8 55%,#d7d9d5 72%);border:2px solid #deded9;border-radius:50%;width:32.8%;height:16.7%;position:absolute;top:59.4%}.pouch-can-pouch{inset-inline-start:30%;opacity:0;pointer-events:none;background:linear-gradient(135deg,#fff 10%,#e8e7e1 64%,#f9f8f5);border:1px solid #ceccc6;border-radius:22%;width:11%;height:13%;position:absolute;top:56%;transform:translateY(90%)rotate(-7deg);box-shadow:inset 0 0 0 1px #ffffffb3,0 1px 2px #14191840}.pouch-can-button{inset-inline-start:12%;cursor:pointer;pointer-events:auto;touch-action:manipulation;background:0 0;border:0;border-radius:50%;width:46%;min-width:44px;height:34%;min-height:44px;padding:0;position:absolute;top:54%}.pouch-can-button:focus-visible{outline-offset:2px;outline:2px solid}.desk__personal-props[data-can-open] .pouch-can-interior{opacity:1}.desk__personal-props[data-can-open] .pouch-can-lid{transform:translateY(-8%)rotate(-7deg)}.desk__personal-props[data-can-open] .pouch-can-pouch{opacity:1;transform:translateY(-50%)rotate(-7deg)}@media (hover:hover) and (pointer:fine){.drink-glass-hover{pointer-events:auto}}@media (prefers-reduced-motion:reduce){.drink-cold-wisp{transform:none}}.content-page{--reading-red:#a3342c;max-width:760px}.content-page .page-title{font-size:clamp(34px,4.5vw,50px);line-height:1.15}.content-page .content-page__intro{max-width:55ch;font-family:var(--sans);font-size:clamp(18px,2vw,20px);font-weight:400;line-height:1.6}.content-page__key{max-width:46ch;color:var(--muted);margin:20px 0 0;font-size:14px;line-height:1.6}.reading-list{margin:32px 0 0;padding:0;list-style:none}.reading-list__item{border-top:1px solid var(--rule);padding:20px 0 24px}.reading-list__title{font-family:var(--serif);align-items:baseline;gap:10px;margin:0 0 6px;font-size:clamp(22px,2.5vw,25px);font-weight:500;line-height:1.2;display:flex}.reading-list__title .text-link{font:inherit;line-height:inherit;text-underline-offset:5px;min-height:36px;-webkit-text-decoration-color:var(--rule);text-decoration-color:var(--rule);align-items:baseline}.reading-list__item--return .text-link,.reading-list__return{color:var(--reading-red)}.reading-list__return{font-family:var(--sans);flex:none;font-size:16px}.reading-list__details{color:var(--muted);margin:0;font-size:13px;line-height:1.6}.reading-list__note{max-width:51ch;color:var(--ink-soft);margin:12px 0 0;font-size:16px;line-height:1.7}.reading-list__title .text-link:focus-visible{text-decoration-color:currentColor}@media (hover:hover) and (pointer:fine){.reading-list__title .text-link:hover{text-decoration-color:currentColor}}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/cormorant-garamond-latin-500-normal.woff2)format("woff2")}@font-face{font-family:DM Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/dm-sans-latin-400-normal.woff2)format("woff2")}@font-face{font-family:DM Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/dm-sans-latin-500-normal.woff2)format("woff2")}@font-face{font-family:Caveat;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/caveat-latin-500-normal.woff2)format("woff2")}:root{--paper:#f5f0e6;--drink-cold-light:#f0f9f7bd;--drink-ice-light:#fff9e9;--desk-material-wash:#fbf8f161;--desk-wood-back:#e9d9bd;--desk-wood-light:#efdfc3;--desk-wood-front:#e4cba5;--desk-back-edge:#d8c2a2;--desk-edge-top:#ceb084;--desk-edge-light:#d8bd95;--desk-edge-bottom:#c6a77c;--desk-edge-line:#b99b70;--desk-caption:#665442;--desk-surface-shine:#ffffff80;--desk-grain-ink:#7e532309;--desk-edge-shadow:#4a2d1066;--paper-raised:#fbf8f1;--ink:#201c16;--ink-soft:#3d372e;--muted:#6b6356;--accent:#aa4b13;--rule:#201c1629;--shadow-warm:58 38 18;--serif:"Cormorant Garamond", "Iowan Old Style", Georgia, serif;--sans:"DM Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--hand:"Caveat", "Bradley Hand", "Segoe Print", cursive;--ease-out:cubic-bezier(.23, 1, .32, 1);--ease-icon:cubic-bezier(.2, 0, 0, 1);--hover-duration:.2s;--gutter:clamp(20px, 6vw, 88px);--frame-max:1600px;--grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='g' x='0' y='0' width='100%25' height='100%25'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E");--selection:#aa4b132e;--desk-light:#fffbf2b3;--desk-clear-top:#fffcf600;--desk-light-soft:#fffcf68c;--desk-light-bottom:#faf5eb59;--desk-clear-bottom:#f5f0e600;--desk-edge:#201c1609;--screen-glow:#ffeed633;--screen-glow-soft:#ffeed60f;--screen-glow-faint:#ffeed605;--screen-text:#ece6dcdb;--screen-input:#ece6dc61;--note-ink:#2c2a30;--note-grid:#42587617;--control-shadow:oklch(0% 0 0/.06);--control-shadow-soft:oklch(0% 0 0/.04);--control-shadow-hover:oklch(0% 0 0/.08);--dialog-shadow:#201c1629;--backdrop:#201c163d;--error-ink:#963d25;--selected-fill:#e8e2d5;--success-ink:#536b58;--hover-fill:#201c1606;--control-border:var(--muted);--disabled-fill:#e8e2d5;--disabled-ink:#6b6356}*,:before,:after{box-sizing:border-box}html{background-color:var(--paper);color:var(--ink);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;overflow-x:clip}body{min-height:100vh;font-family:var(--sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-size:1.0625rem;line-height:1.55;overflow-x:clip}img{max-width:100%;height:auto;display:block}a{color:inherit}h1,h2,h3,p,ul,dl,dd,figure{margin:0}ul[role=list]{padding:0;list-style:none}button{font:inherit;color:inherit}::selection{background:var(--selection)}:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:2px}.accent{color:var(--accent)}.nowrap{white-space:nowrap}img[data-failed]{visibility:hidden}:is(.project__object,.scenery,.project-page__art):has(img[data-failed]) :is(.project__shadow,.scenery__shadow,.project-page__shadow,.project__screen,.project__screen-text){display:none}main:focus{outline:none}.muted{color:var(--muted)}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{left:var(--gutter);z-index:20;background:var(--ink);color:var(--paper);border-radius:6px;padding:10px 14px;text-decoration:none;position:absolute;top:8px;transform:translateY(-160%)}.skip-link:focus-visible{transform:none}.site{isolation:isolate;position:relative;overflow-x:clip}.site:after{content:"";z-index:30;background-image:var(--grain);opacity:.07;mix-blend-mode:multiply;pointer-events:none;background-size:200px 200px;position:absolute;inset:0}.frame{max-width:var(--frame-max);min-height:100vh;padding-inline:var(--gutter);flex-direction:column;margin:0 auto;display:flex;position:relative}.route{flex-direction:column;flex:1;display:flex}.route>main{flex:1}.site-header{justify-content:space-between;align-items:center;gap:24px;padding-top:clamp(14px,1.6vw,26px);display:flex}.wordmark{min-height:44px;font-family:var(--serif);letter-spacing:-.01em;align-items:center;font-size:clamp(26px,1.2vw + 14px,32px);font-weight:500;line-height:1;text-decoration:none;display:inline-flex}.site-nav{gap:clamp(8px,3.2vw,48px);margin-inline-end:-12px;display:flex}.site-nav__link{min-height:44px;color:var(--ink-soft);align-items:center;padding-inline:12px;font-size:15px;text-decoration:none;display:inline-flex;position:relative}.site-nav__link:after{content:"";background:var(--accent);opacity:0;height:1.5px;position:absolute;bottom:9px;left:12px;right:12px}.site-nav__link[aria-current=page]{color:var(--ink)}.site-nav__link[aria-current=page]:after{opacity:1}@media (hover:hover) and (pointer:fine){.site-nav__link:hover{color:var(--accent)}}.text-link{min-height:44px;color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--rule);text-decoration-color:var(--rule);text-underline-offset:7px;align-items:center;gap:.3em;font-size:16px;text-decoration-thickness:1px;display:inline-flex}.text-link--accent{-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.arrow-icon{transition:transform .16s var(--ease-out);flex:none}@media (hover:hover) and (pointer:fine){.text-link:hover{color:var(--accent);text-decoration-color:currentColor}.text-link:hover .arrow-icon[data-direction=up-right]{transform:translate(1.5px,-1.5px)}}.back-link{min-height:44px;color:var(--muted);align-items:center;gap:.45em;font-size:15px;text-decoration:none;display:inline-flex}@media (hover:hover) and (pointer:fine){.back-link:hover{color:var(--ink)}.back-link:hover .arrow-icon{transform:translate(-2px)}}.hero{z-index:3;pointer-events:none;padding-top:clamp(24px,3vw,48px);position:relative}.hero>*{pointer-events:auto;width:fit-content}.hero__title{font-family:var(--serif);letter-spacing:-.018em;text-wrap:balance;font-size:clamp(46px,4.7vw + 22px,98px);font-weight:500;line-height:.98}.hero__lede{max-width:42rem;color:var(--ink-soft);text-wrap:pretty;margin-top:clamp(14px,1.2vw,20px);font-size:clamp(17px,.45vw + 14px,20px)}.hero .text-link{margin-top:clamp(8px,.8vw,14px)}.desk{margin-inline:calc(-1 * var(--gutter));margin-top:clamp(-64px,-3.6vw,-12px);position:relative}.desk__stage{aspect-ratio:1024/320;position:relative}.desk__surface{background:radial-gradient(60% 70% at 30% 0%, var(--desk-light), transparent 70%), linear-gradient(to bottom, var(--desk-clear-top) 0%, var(--desk-light-soft) 10%, var(--desk-light-bottom) 55%, var(--desk-clear-bottom) 100%);border-top:1px solid var(--desk-edge);pointer-events:none;position:absolute;inset:22% -20% -30%}.desk__projects{position:absolute;inset:0}.project{color:inherit;-webkit-tap-highlight-color:transparent;text-decoration:none;display:block}.project__object{display:block;position:relative}.project__lift{transform-origin:50% 92%;transition:transform var(--hover-duration) var(--ease-out);display:block;position:relative}.project__lift img{width:100%}.project__shadow,.scenery__shadow,.project-page__shadow{pointer-events:none;background:radial-gradient(closest-side, rgb(var(--shadow-warm) / .34), rgb(var(--shadow-warm) / .14) 55%, transparent), radial-gradient(closest-side, rgb(var(--shadow-warm) / .12), transparent);transform-origin:50%;transition:opacity var(--hover-duration) var(--ease-out), transform var(--hover-duration) var(--ease-out);background-position:50% 30%,70% 60%;background-repeat:no-repeat;background-size:100% 46%,112% 100%;position:absolute}.project--computer .project__shadow{height:18%;bottom:-2%;left:9%;right:3%}.project--notebook .project__shadow{height:22%;bottom:2%;left:5%;right:0%}.project--tray .project__shadow{height:22%;bottom:2%;left:4%;right:0%}.project__screen{background:radial-gradient(110% 90% at 38% 28%, var(--screen-glow), var(--screen-glow-soft) 60%, var(--screen-glow-faint));mix-blend-mode:screen;opacity:0;transition:opacity var(--hover-duration) ease;pointer-events:none;position:absolute;inset:0;-webkit-mask:url(/art/computer-screen-mask.png) 50%/100% 100% no-repeat;mask:url(/art/computer-screen-mask.png) 50%/100% 100% no-repeat}.project--computer .project__lift{container-type:inline-size}.project__screen-text{letter-spacing:-.01em;width:36%;color:var(--screen-text);transform-origin:0 0;pointer-events:none;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:2.5cqi;line-height:1.45;position:absolute;top:46%;left:39%;transform:rotate(-5.4deg)}.project__screen-text--input{color:var(--screen-input);font-size:2cqi;top:67%;left:39%}.project__caret{vertical-align:-.15em;background:currentColor;width:.09em;height:1.05em;margin-left:.15em;display:inline-block}.project__label{grid-template-columns:minmax(0,1fr);justify-content:start;align-items:center;column-gap:12px;display:grid}.project__dot{background:var(--accent);border-radius:50%;width:6px;height:6px;transform:translateY(1px)}.project__title{font-family:var(--serif);font-size:clamp(19px,.5vw + 14px,22px);font-weight:500;line-height:1.1}.project__subtitle{color:var(--muted);grid-column:1;margin-top:3px;font-size:clamp(13px,.2vw + 11px,14.5px)}.project__rule{background:var(--rule);grid-column:1;width:100%;min-width:7.5em;height:1px;margin-top:8px;position:relative}.project__rule:after{content:"";background:var(--accent);transform-origin:0;transition:transform .22s var(--ease-out);position:absolute;inset:0 0 -.5px;transform:scaleX(0)}.project:focus-visible{outline:none}.project:focus-visible .project__label{outline:2px solid var(--accent);outline-offset:6px;border-radius:3px}.project:focus-visible .project__rule:after,.project:active .project__rule:after{transform:scaleX(1)}.project:focus-visible .project__screen{opacity:1}.project:focus-visible .project__title{color:var(--accent)}@media (hover:hover) and (pointer:fine){.project:hover .project__rule:after{transform:scaleX(1)}.project:hover .project__title{color:var(--accent)}.project:hover .project__screen{opacity:1}}@media (prefers-reduced-motion:no-preference){.project--computer:focus-visible .project__lift,.project--tray:focus-visible .project__lift{transform:translateY(-3px)}.project--notebook:focus-visible .project__lift{transform:translateY(-4px)rotate(-.8deg)}.project:focus-visible .project__shadow{opacity:.78;transform:scale(.97)}}@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.project--computer:hover .project__lift,.project--tray:hover .project__lift{transform:translateY(-3px)}.project--notebook:hover .project__lift{transform:translateY(-4px)rotate(-.8deg)}.project:hover .project__shadow{opacity:.78;transform:scale(.97)}}.scenery{pointer-events:none;-webkit-user-select:none;user-select:none;position:absolute}.scenery img{width:100%}.scenery--plant{z-index:0;transform-origin:62% 84%}.scenery--plant .scenery__shadow{height:12%;bottom:9%;left:30%;right:6%}.scenery--books{z-index:1}.scenery--books .scenery__shadow{height:22%;bottom:-1%;left:2%;right:-10%}.desk__projects{z-index:2}.desk-note{z-index:3;font-family:var(--hand);color:var(--note-ink);background-color:var(--paper-raised);background-image:linear-gradient(var(--note-grid) 1px, transparent 1px), linear-gradient(90deg, var(--note-grid) 1px, transparent 1px);box-shadow:0 0 0 1px rgb(var(--shadow-warm) / .04), 0 1px 2px rgb(var(--shadow-warm) / .08), 0 10px 18px -10px rgb(var(--shadow-warm) / .32);transform:rotate(var(--note-r,-4deg));background-size:11px 11px;border-radius:2px;padding:.9em 1em .75em 1.1em;font-size:clamp(17px,1.25vw + 4px,25px);font-weight:500;line-height:1.05;display:block;position:relative}.desk-note__text{max-width:10em;display:block}.desk-note__mark{fill:none;width:70%;height:auto;stroke:var(--accent);stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;margin-top:.15em;display:block}.desk{margin:clamp(150px, 18vh, 230px) calc(-1 * var(--gutter)) 0;padding-bottom:0;container-type:inline-size}.desk__stage{aspect-ratio:auto;max-width:1440px;min-height:420px;padding:0 var(--gutter) 94px;margin-inline:auto;position:relative}.desk__surface{border:0;border-top:1px solid var(--desk-back-edge);background:linear-gradient(var(--desk-material-wash), var(--desk-material-wash)), url(/art/oak-desktop.webp) center / cover;box-shadow:inset 0 2px 3px var(--desk-surface-shine);position:absolute;inset:36px -10% 48px}.desk__surface:after{content:none}.desk__front{inset-inline:-10%;background:linear-gradient(var(--desk-edge-top), var(--desk-edge-light) 36%, var(--desk-edge-bottom));border-top:1px solid var(--desk-edge-line);height:28px;box-shadow:0 16px 22px -15px var(--desk-edge-shadow);position:absolute;bottom:20px}.desk__projects{grid-template-columns:minmax(0,1.12fr) minmax(0,1.04fr) minmax(0,.9fr) minmax(0,.94fr);gap:12px;max-width:1120px;margin-inline:auto;display:grid;position:relative}.desk__projects>li{min-width:0}.project{grid-template-columns:minmax(0,1fr);justify-items:center;gap:2px;width:auto;height:auto;display:grid;position:relative}.project__object{justify-content:center;align-items:end;width:100%;max-width:255px;height:190px;display:flex;position:relative}.project__lift{flex:none;width:100%;margin:0;position:relative}.project--computer .project__lift{width:112%}.project--notebook{padding-top:36px}.project--notebook .project__lift{width:106%}.project--tray{padding-top:24px}.project--tray .project__lift{width:78%}.project--books{padding-top:18px}.project__label{text-align:center;width:fit-content;min-width:0;max-width:100%;padding:3px 10px;position:relative;inset:auto;transform:rotate(-2deg)}.project--notebook .project__label{transform:rotate(1deg)}.project--books .project__label{transform:rotate(2deg)}.project__title{font:500 23px/1.15 var(--serif)}.project__subtitle{color:var(--desk-caption);font-size:.8125rem;line-height:1.45}.project:hover .project__title,.project:focus-visible .project__title{text-underline-offset:4px;text-decoration:underline}.project__shadow{opacity:.8}.project--books .project__shadow{height:13%;bottom:3%;left:10%;right:2%}.desk-note{--note-r:-6deg;width:fit-content;max-width:15em;margin:10px 3% -54px auto;font-size:19px;position:relative;top:auto;left:auto;right:auto}@container (width<=850px){.desk__stage{min-height:380px}.desk__projects{gap:4px}.project__object{height:150px}.project__title{font-size:22px}.project__subtitle{font-size:.8125rem}.desk-note{margin-top:24px;font-size:18px}}@container (width<=600px){.desk__stage{padding-inline:20px;min-height:0;padding-bottom:86px}.desk__surface{top:28px}.desk__projects{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 12px}.project__object{max-width:190px;height:136px}.project--notebook{padding-top:30px}.project--tray{padding-top:0}.project--books{padding-top:16px}.project__title{font-size:23px}.project__subtitle{font-size:.8125rem}.desk-note{margin-top:28px;margin-bottom:-32px;font-size:18px}}@media (width<=600px){.desk{margin-top:100px}}.site-footer{justify-content:space-between;align-items:center;gap:24px;padding-block:clamp(28px,3vw,44px) clamp(20px,2vw,32px);display:flex}.page{padding-top:clamp(32px,5vw,72px);padding-bottom:clamp(24px,4vw,56px)}.page-title{font-family:var(--serif);letter-spacing:-.018em;text-wrap:balance;font-size:clamp(48px,4vw + 28px,96px);font-weight:500;line-height:.98}.page-lede{max-width:30ch;font-family:var(--serif);color:var(--ink-soft);text-wrap:pretty;margin-top:clamp(16px,1.6vw,24px);font-size:clamp(24px,1vw + 18px,32px);font-weight:500;line-height:1.4}.notes-page .muted{max-width:40ch;margin-top:18px}.kicker{color:var(--muted);align-items:center;gap:10px;margin-bottom:14px;font-size:15px;display:flex}.kicker:before{content:"";background:var(--accent);border-radius:50%;width:6px;height:6px}.draft-note{border-left:2px solid var(--accent);max-width:44ch;color:var(--muted);margin-top:20px;padding-left:14px;font-size:14px}.project-page .back-link{margin-left:-2px}.project-page__header{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:center;gap:clamp(32px,5vw,96px);margin-top:clamp(12px,2vw,28px);display:grid}.project-page__art{justify-self:center;width:100%;max-width:520px;position:relative}.project-page__art--notebook{max-width:420px}.project-page__art--tray{max-width:400px}.project-page__art img{width:100%;position:relative}.project-page__shadow{height:20%;bottom:0;left:8%;right:2%}.prose{gap:clamp(36px,4vw,56px);max-width:64rem;margin-top:clamp(48px,6vw,96px);display:grid}.prose section,.experiment{grid-template-columns:minmax(160px,1fr) minmax(0,2.2fr);gap:16px clamp(24px,4vw,64px);display:grid}.prose h2{font-family:var(--serif);font-size:clamp(24px,.8vw + 18px,30px);font-weight:500;line-height:1.15}.prose p,.experiment__body p{max-width:62ch;color:var(--ink-soft);text-wrap:pretty}.prose p+p,.experiment__body p+p{margin-top:.9em}.experiments{max-width:64rem;margin-top:clamp(40px,5vw,80px)}.experiment{border-top:1px solid var(--rule);padding-block:clamp(28px,3vw,40px)}.experiment:last-child{border-bottom:1px solid var(--rule)}.experiment__name{font-family:var(--serif);font-size:clamp(30px,1.2vw + 22px,40px);font-weight:500;line-height:1}.experiment__kind{color:var(--muted);margin-top:8px;font-size:15px}.experiment__body .experiment__summary{color:var(--ink);font-size:18px}.experiment__body .experiment__stack{color:var(--muted);margin-top:1.1em;font-size:14px}.link-row{flex-wrap:wrap;gap:0 28px;margin-top:6px;display:flex}.facts{max-width:64rem;margin-top:clamp(48px,6vw,88px)}.facts__row{border-top:1px solid var(--rule);grid-template-columns:minmax(160px,1fr) minmax(0,2.2fr);gap:4px clamp(24px,4vw,64px);padding-block:14px;display:grid}.facts__row:last-child{border-bottom:1px solid var(--rule)}.facts dt{color:var(--muted);font-size:15px}.project-page__next{margin-top:clamp(40px,5vw,72px)}.about-page__section{max-width:64rem;margin-top:clamp(48px,6vw,88px)}.section-label{color:var(--muted);margin-bottom:14px;font-size:15px;font-weight:400}.threads__item{border-top:1px solid var(--rule);grid-template-columns:minmax(160px,1fr) minmax(0,2.2fr);gap:4px clamp(24px,4vw,64px);padding-block:16px;display:grid}.threads__item:last-child{border-bottom:1px solid var(--rule)}.threads__name{font-family:var(--serif);font-size:24px;font-weight:500;line-height:1.2}.threads__text{color:var(--ink-soft)}.contact{gap:2px;display:grid}.contact__book{cursor:pointer;background:0 0;border:0;padding:0}.contact__email{flex-wrap:wrap;align-items:center;gap:8px 20px;display:flex}.copy-email{flex-wrap:wrap;align-items:center;gap:12px;display:inline-flex}.copy-email__button{background:var(--paper-raised);cursor:pointer;min-height:44px;box-shadow:0 0 0 1px var(--control-shadow), 0 1px 2px -1px var(--control-shadow), 0 2px 4px 0 var(--control-shadow-soft);border:0;border-radius:8px;align-items:center;gap:8px;padding:0 14px 0 12px;font-size:14px;transition-property:scale,box-shadow;transition-duration:.15s;transition-timing-function:ease-out;display:inline-flex}@media (hover:hover) and (pointer:fine){.copy-email__button:hover{box-shadow:0 0 0 1px var(--control-shadow-hover), 0 1px 2px -1px var(--control-shadow-hover), 0 2px 4px 0 var(--control-shadow)}}.copy-email__button:active{scale:.96}.copy-email__icons{width:16px;height:16px;display:inline-grid;position:relative}.copy-email__icon{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px;transition-property:opacity,filter,scale;transition-duration:.3s;transition-timing-function:var(--ease-icon);grid-area:1/1}.copy-email__icon[data-shown=false]{opacity:0;filter:blur(4px);scale:.25}.copy-email__icon--check{stroke:var(--accent)}.copy-email__status{color:var(--muted);font-size:14px}@media (width<=899.98px){.project-page__header{grid-template-columns:1fr}.project-page__art{justify-self:start;max-width:440px}}@media (width<=699.98px){.prose section,.experiment,.facts__row,.threads__item{grid-template-columns:1fr}.site-nav{gap:0}.site-nav__link{padding-inline:10px}.site-nav__link:after{left:10px;right:10px}.site-footer{flex-wrap:wrap}}@media (width<=359.98px){.site-nav__link{padding-inline:8px;font-size:14px}.site-nav__link:after{left:8px;right:8px}}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}@keyframes rise-desk{0%{opacity:0;transform:translateY(10px)}}@keyframes fade-in{0%{opacity:0}}.intro{animation:rise .36s var(--ease-out) both;animation-delay:calc(var(--i,0) * 60ms)}.intro--desk{animation-name:rise-desk;animation-duration:.42s;animation-delay:.24s}[data-intro-done] .intro{animation:none}.route--enter{animation:rise .22s var(--ease-out) both}@media (prefers-reduced-motion:reduce){.intro,.route--enter{animation-name:fade-in;animation-duration:.16s;animation-delay:0s}[data-intro-done] .intro{animation:none}.arrow-icon,.project__rule:after,.project__shadow{transition:none}.text-link:hover .arrow-icon,.back-link:hover .arrow-icon{transform:none}.copy-email__button:active{scale:none}.copy-email__icon{transition-property:opacity;transition-duration:.12s}.copy-email__icon[data-shown=false]{filter:none;scale:1}}.header-actions{align-items:center;gap:clamp(18px,3vw,42px);display:flex}.guides-trigger{cursor:pointer;background:0 0;border:0;align-items:center;min-height:44px;padding:0 4px;display:flex}.agent-face{flex:none;width:42px;height:42px;display:block}.guides-trigger .agent-face{width:35px;height:35px;transition:transform .16s var(--ease-out);margin-left:-5px}.guides-trigger .agent-face:first-child{margin-left:0}.guides-trigger .agent-face:nth-child(2){transform:translateY(2px)}.guides-dialog{width:min(520px,100% - 32px);max-height:min(760px,100dvh - 32px);color:var(--ink);background:var(--paper-raised);box-shadow:0 12px 48px var(--dialog-shadow);border:1px solid #0000;border-radius:14px;padding:0;overflow:hidden}.guides-dialog::backdrop{background:var(--backdrop)}.guides-dialog[data-motion]{opacity:0;transition:opacity .2s var(--ease-out), transform .2s var(--ease-out), display .2s allow-discrete, overlay .2s allow-discrete;transform:translateY(6px)scale(.97)}.guides-dialog[data-motion][open]{opacity:1;transform:none}@starting-style{.guides-dialog[data-motion][open]{opacity:0;transform:translateY(6px)scale(.97)}}.guides-panel{padding:20px 24px 24px}.guides-heading{justify-content:space-between;align-items:center;gap:12px;min-height:48px;display:flex}.guides-heading h2{font:500 28px/1.15 var(--serif);letter-spacing:-.02em;margin:0}.guides-heading p{color:var(--muted);margin:2px 0 0;font-size:.8125rem}.guide-identity{align-items:center;gap:10px;display:flex}.guide-identity h2{font:500 1rem/1.25 var(--sans);letter-spacing:-.02em}.guides-close,.guides-back{cursor:pointer;background:0 0;border:0;flex:none;place-items:center;width:44px;height:44px;font-size:26px;display:grid}.guides-back{width:44px;margin-left:-10px;font-size:20px}.guides-close{color:var(--muted);margin-right:-12px}.guides-picker{margin:20px -8px 0;display:grid}.guide-choice{border:0;border-top:1px solid var(--rule);text-align:left;cursor:pointer;background:0 0;align-items:center;gap:16px;width:100%;min-height:82px;padding:12px 8px;display:flex}.guide-choice .agent-face{width:46px;height:46px;transition:transform .16s var(--ease-out)}.guide-choice>span:first-of-type{gap:3px;display:grid}.guide-choice strong{font-size:1rem;font-weight:500}.guide-choice>span:first-of-type>span{color:var(--muted);font-size:.875rem}.guide-choice>span:last-child{color:var(--muted);margin-left:auto;padding:8px}.guide-answer{font-size:.9375rem;line-height:1.55}.agent-transcript{overscroll-behavior:contain;scrollbar-width:thin;min-height:150px;max-height:min(510px,100dvh - 218px);padding:24px 4px 12px 0;overflow-y:auto}.agent-greeting{max-width:43ch}.agent-message{margin-top:22px}.agent-message p{white-space:pre-wrap;overflow-wrap:anywhere}.agent-message .text-link{margin-top:4px;font-size:.875rem}.agent-message--user{border-left:2px solid var(--rule);color:var(--muted);margin-left:32px;padding-left:14px}.agent-compose{border:1px solid var(--rule);background:var(--paper-raised);border-radius:10px;align-items:center;gap:8px;margin-top:12px;padding:5px 5px 5px 12px;display:flex}.agent-compose:focus-within{outline:2px solid var(--accent);outline-offset:2px}.agent-compose input{width:100%;min-width:0;min-height:40px;color:var(--ink);font:inherit;background:0 0;border:0;outline:none;padding:0}.agent-compose input::placeholder{color:var(--muted)}.agent-send{background:var(--ink);width:40px;height:40px;color:var(--paper-raised);cursor:pointer;border:0;border-radius:7px;flex:none;place-items:center;font-size:24px;display:grid}.agent-send:disabled{background:var(--disabled-fill);color:var(--disabled-ink);cursor:not-allowed}.agent-error{color:var(--error-ink);margin-top:12px;font-size:.875rem}.booking-panel{margin-top:22px}.booking-text-button{min-height:44px;color:var(--accent);text-underline-offset:4px;cursor:pointer;background:0 0;border:0;padding:8px 0;text-decoration:underline}.booking-controls{gap:12px;display:flex}.booking-controls label{min-width:0;color:var(--muted);flex:1;font-size:.8125rem}.booking-controls input,.booking-controls select,.booking-review input{border:1px solid var(--rule);width:100%;min-height:44px;font:inherit;color:var(--ink);background:var(--paper-raised);border-radius:6px;margin-top:6px;padding:8px 10px;display:block}.booking-zone{color:var(--muted);margin-top:10px;font-size:.8125rem}.booking-days{scrollbar-width:thin;gap:4px;margin:14px 0 8px;display:flex;overflow-x:auto}.booking-days button{cursor:pointer;background:0 0;border:0;border-radius:6px;flex:none;min-height:44px;padding:8px;font-size:.8125rem}.booking-days button[aria-pressed=true]{background:var(--selected-fill)}.booking-slots{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;max-height:192px;padding:4px;display:grid;overflow-y:auto}.booking-slots button{border:1px solid var(--rule);cursor:pointer;font-variant-numeric:tabular-nums;background:0 0;border-radius:6px;min-height:44px;padding:8px 4px;font-size:.875rem}.booking-review{padding-top:4px}.booking-selected{font-weight:500}.booking-selected span{color:var(--muted);font-size:.8125rem;font-weight:400}.booking-review label{margin-top:12px;font-size:.8125rem;display:block}.agent-button{background:var(--ink);min-height:44px;color:var(--paper-raised);cursor:pointer;border:0;border-radius:6px;padding:10px 16px}.booking-confirm{width:100%;margin-top:18px}.agent-button:disabled{background:var(--disabled-fill);color:var(--disabled-ink);cursor:not-allowed}.booking-success{padding-top:24px}.booking-success svg{width:28px;height:28px;stroke:var(--success-ink);stroke-width:2px;fill:none;stroke-linecap:round;stroke-linejoin:round;margin-bottom:12px}.booking-success h3{font:500 28px/1.2 var(--serif)}.booking-success p{margin-top:10px}.opensource-mark{vertical-align:middle;width:26px;height:26px;color:var(--accent);margin-right:10px}.experiment{scroll-margin-top:32px}.hero__title{font-size:clamp(54px,6vw,88px);line-height:1.02}.hero__lede{max-width:35ch}.page-title{letter-spacing:-.025em}.prose{max-width:62ch;margin-top:48px}.prose section{display:block}.prose p+p{margin-top:1.3em}.project-links{margin-top:24px}.about-heading{font:500 28px/1.2 var(--serif);margin:0 0 24px}.about-page__intro{max-width:43ch}@media (hover:hover) and (pointer:fine){.guides-trigger:hover .agent-face:first-child{transform:translateY(-2px)rotate(-5deg)}.guides-trigger:hover .agent-face:nth-child(2){transform:translateY(-3px)}.guides-trigger:hover .agent-face:nth-child(3){transform:translateY(-2px)rotate(5deg)}.guide-choice:hover .agent-face{transform:translateY(-2px)}.guide-choice:hover{background:var(--hover-fill)}.booking-slots button:hover{border-color:var(--accent)}}@media (width<=700px){.site-header{gap:12px}.header-actions{gap:10px}.site-nav__link{padding-inline:7px;font-size:.875rem}.site-nav__link:after{left:7px;right:7px}.guides-trigger .agent-face{width:28px;height:30px;margin-left:-6px}.hero__title{font-size:clamp(48px,10vw,68px)}.guides-panel{padding:16px 20px 20px}.project-page__art{max-width:340px}}@media (width<=359px){.site-header{flex-wrap:wrap}.header-actions{justify-content:space-between;width:100%}}@media (prefers-reduced-motion:reduce){.guides-dialog[data-motion],.guides-dialog[data-motion][open]{transition-property:opacity,display,overlay;transition-duration:.12s;transform:none}@starting-style{.guides-dialog[data-motion][open]{transform:none}}.guides-trigger .agent-face,.guide-choice .agent-face{transition:none}.guides-trigger:hover .agent-face,.guides-trigger .agent-face:nth-child(2),.guide-choice:hover .agent-face{transform:none}}.barestate-mark{vertical-align:.02em;width:.65em;height:auto;margin-right:.22em;display:inline-block}@media (width<=700px){.agent-compose input,.booking-review input,.booking-controls input,.booking-controls select{font-size:1rem}}.hero__title{min-width:0;max-width:100%;font-family:var(--sans);letter-spacing:-.02em;overflow-wrap:break-word;font-size:clamp(2rem,2.6vw,2.25rem);font-weight:500;line-height:1.2}.hero__lede{max-width:62ch;font-size:18px;line-height:1.65}.agent-compose,.booking-controls input,.booking-controls select,.booking-review input,.booking-slots button{border-color:var(--control-border)}button:disabled{cursor:not-allowed}h1,h2,h3{overflow-wrap:break-word;min-width:0}@media (width<=699.98px){.hero__title{font-size:2rem}}.desk__personal-props{z-index:1;inset-inline-start:8%;pointer-events:none;-webkit-user-select:none;user-select:none;width:145px;height:auto;position:absolute;bottom:48px}@container (width<=600px){.desk__personal-props{inset-inline-start:20px;width:94px;bottom:49px}.desk-note{max-width:calc(100% - 112px)}}.desk-reading{z-index:3;width:156px;max-width:44%;color:var(--ink);justify-items:center;margin:12px 5% -46px auto;text-decoration:none;display:grid;position:relative}.desk-reading img{width:100%;height:auto;transition:transform var(--hover-duration) var(--ease-out);transform:rotate(3deg)}.desk-reading span{font:500 22px/1.2 var(--hand);text-decoration:underline;-webkit-text-decoration-color:var(--rule);text-decoration-color:var(--rule);text-underline-offset:4px;padding:7px 6px}.desk-reading:focus-visible span{color:var(--accent)}@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.desk-reading:hover img{transform:translateY(-2px)rotate(2deg)}}@media (prefers-reduced-motion:reduce){.desk-reading img{transition:none}}@container (width<=600px){.desk-reading{width:128px;margin-top:22px;margin-bottom:-28px;margin-right:0}.desk-reading span{font-size:21px}}.project--computer .project__lift{width:112%;padding-bottom:0}.project--computer>.project__label{color:inherit;text-decoration:none}.project--computer:hover .project__lift{transform:none}.project--computer>.project__label:hover .project__title{color:var(--accent);text-underline-offset:4px;text-decoration:underline}.project--books .project__lift{width:98%}.project--books .project__shadow{display:none}.project--books img{filter:drop-shadow(1px 2px 1px rgb(var(--shadow-warm) / .3)) drop-shadow(5px 8px 5px rgb(var(--shadow-warm) / .19))}:root{--agent-pip-body:#718277;--agent-pip-detail:#536b58;--agent-folio-cover:#c9a676;--agent-folio-page:#f0d9b1;--agent-folio-detail:#967951;--agent-tick-body:#b56e4f;--agent-tick-face:#f4dbc1;--agent-tick-detail:#9b583d;--agent-eyes:#2e302a}.agent-status{min-height:44px;color:var(--muted);justify-content:space-between;align-items:center;gap:16px;display:flex}.agent-status-label{font-size:.75rem}.companion-working{flex:none;width:42px;height:42px;display:block;position:relative}.companion-working .agent-face{z-index:1;transform-origin:50% 90%;position:relative}.agent-status[data-motion] .companion-working .agent-face{animation:companion-working-hop .9s var(--ease-out) 3}.agent-status[data-motion] .companion-working .companion-shadow{animation:companion-working-shadow .9s var(--ease-out) 3}@keyframes companion-working-hop{0%,to{transform:none}12%{transform:translateY(2px)scale(1.09,.9)}35%{transform:translateY(-10px)rotate(-5deg)scale(.96,1.04)}52%{transform:translateY(-11px)rotate(4deg)}70%{transform:translateY(1px)scale(1.1,.9)}85%{transform:translateY(-2px)scale(.99,1.02)}}@keyframes companion-working-shadow{0%,to{opacity:.16;transform:scaleX(1)}35%,52%{opacity:.08;transform:scaleX(.7)}70%{opacity:.2;transform:scaleX(1.12)}}@media (prefers-reduced-motion:reduce){.agent-status[data-motion] .companion-working .agent-face{animation:.16s companion-acknowledge}.agent-status[data-motion] .companion-working .companion-shadow{animation:none}}@keyframes companion-acknowledge{0%{opacity:.55}to{opacity:1}}.guides-trigger.companion-dock{min-height:44px;color:var(--ink);background:0 0;border:0;flex:none;align-items:center;padding:0 4px;display:flex;position:static}.companion-roster{align-items:end;display:flex}.companion-stage{width:38px;height:42px;display:block;position:relative}.companion-dock .companion-stage .agent-face{z-index:1;transform-origin:50% 90%;width:42px;height:42px;transition:transform .16s var(--ease-out);margin:0;position:relative;transform:none}.companion-shadow{background:var(--ink);opacity:.16;border-radius:50%;width:56%;height:3px;position:absolute;bottom:0;left:22%}html:not([data-intro-done]) .companion-stage{animation:companion-arrival .8s var(--ease-out) both}html:not([data-intro-done]) .companion-stage--folio{animation-delay:60ms}html:not([data-intro-done]) .companion-stage--tick{animation-delay:.12s}@keyframes companion-arrival{0%,to{transform:none}15%{transform:translateY(2px)scale(1.07,.93)}40%{transform:translateY(-12px)rotate(-5deg)}58%{transform:translateY(-8px)rotate(3deg)}75%{transform:translateY(1px)scale(1.08,.92)}90%{transform:translateY(-1px)}}@media (hover:hover) and (pointer:fine){.companion-dock:hover .companion-stage--pip .agent-face{transform:translateY(-4px)rotate(-7deg)}.companion-dock:hover .companion-stage--folio .agent-face{transform:translateY(-6px)rotate(3deg)}.companion-dock:hover .companion-stage--tick .agent-face{transform:translateY(-3px)rotate(6deg)}}@media (width<=700px){.guides-trigger.companion-dock{min-height:44px;padding:0 2px}.companion-stage{width:28px;height:34px}.companion-dock .companion-stage .agent-face{width:34px;height:34px}.agent-transcript{max-height:min(510px,100dvh - 270px)}}@media (prefers-reduced-motion:reduce){html:not([data-intro-done]) .companion-stage{animation:.16s companion-acknowledge}.companion-dock .companion-stage .agent-face,.companion-dock:hover .companion-stage .agent-face{transition:none;transform:none}}html:not([data-intro-done]) .desk__projects .project__lift img{animation:desk-object-settle .42s var(--ease-out) both;transform-origin:50% 90%}html:not([data-intro-done]) .desk__projects>li:nth-child(2) .project__lift img{animation-delay:60ms}html:not([data-intro-done]) .desk__projects>li:nth-child(3) .project__lift img{animation-delay:.12s}html:not([data-intro-done]) .desk__projects>li:nth-child(4) .project__lift img{animation-delay:.18s}@keyframes desk-object-settle{0%{opacity:.5;transform:translateY(-10px)rotate(-1deg)}70%{opacity:1;transform:translateY(1px)rotate(.2deg)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){html:not([data-intro-done]) .desk__projects .project__lift img{animation:.16s companion-acknowledge}}.site-header.intro{animation-name:fade-in}@media (width<=540px){.site-header{flex-wrap:wrap;row-gap:2px}.header-actions{justify-content:space-between;width:100%}.header-actions .site-nav{margin-inline-end:0}}.guides-dialog{overscroll-behavior:contain;scroll-padding-block:16px;overflow:hidden auto}.booking-controls{flex-wrap:wrap}.booking-controls label{flex:11rem}.fosscu-page__mark{vertical-align:-.02em;width:.8em;height:.8em;margin-right:.24em;display:inline-block}
