@layer settings{:root{--font-sans:"Fragment Sans", sans-serif;--step-0:clamp(.875rem, .84rem + .12vw, .9375rem);--step-1:clamp(1rem, .96rem + .18vw, 1.125rem);--step-2:clamp(1.25rem, 1.16rem + .38vw, 1.5rem);--step-3:clamp(1.625rem, 1.45rem + .7vw, 2rem);--step-4:clamp(2rem, 1.7rem + 1.2vw, 2.75rem);--space-base:var(--step-1);--space-3xs:calc(var(--space-base) * .25);--space-2xs:calc(var(--space-base) * .5);--space-xs:calc(var(--space-base) * .75);--space-s:var(--space-base);--space-m:calc(var(--space-base) * 1.5);--space-l:calc(var(--space-base) * 2);--space-xl:calc(var(--space-base) * 3);--space-2xl:calc(var(--space-base) * 4);--space-3xl:calc(var(--space-base) * 6);--border-width:1px;--border-style:solid;--border-color:currentcolor;--radius-s:.25rem;--gutter:clamp(1.25rem, 4vw, 4rem);--measure:70ch;--container:88rem;--content:55rem;--narrow:30rem;color-scheme:light dark;--paper:light-dark(#fff7fb,#181420);--ink:light-dark(#5c4b75,#e6e0f0);--muted:light-dark(#755981,#bbaac6);--surface:light-dark(#fadcf1,#3a2f44);--line:light-dark(#dab8d2,#5e4f6b);--accent:light-dark(#ff66c4,#ffa8d4);--accent-ink:light-dark(#893468,#ffa8d4);--tint-1:light-dark(oklch(from var(--paper) calc(l - .028) .03 277),oklch(from var(--paper) calc(l + .032) .045 277));--tint-2:light-dark(oklch(from var(--paper) calc(l - .032) .034 316),oklch(from var(--paper) calc(l + .035) .05 316));--tint-3:light-dark(oklch(from var(--paper) calc(l - .034) .04 346),oklch(from var(--paper) calc(l + .038) .058 346));--wave-paint:radial-gradient(ellipse at 40% 40%, #b2bdec, transparent 65%), radial-gradient(ellipse at 100% 80%, #7883d9, transparent 60%), #8d99e4;--wave-ink:#181d3b;--wave-line:#20264b38;--frame:clamp(8px, .9vw, 16px);--header-height:68px;--header-reveal:96px;--radius-plate:clamp(16px, 1.7vw, 26px);--radius-card:10px;--focus-color:var(--ink);--ease:cubic-bezier(.22, 1, .36, 1)}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{color-scheme:dark}@media (width<=650px){:root{--header-height:96px;--header-reveal:72px}}}@layer reset{*,:before,:after{box-sizing:border-box}*{margin:0}html{text-size-adjust:100%}body{min-block-size:100dvh}img,picture,video,canvas,svg{max-width:100%;display:block}button,input,select,textarea{font:inherit}button,label,select,summary,[role=button]{cursor:pointer}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}p{text-wrap:pretty}h1,h2,h3,h4,h5,h6{text-wrap:balance}ul[role=list],ol[role=list]{padding:0;list-style:none}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}}@layer base{html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-height) + 1.5rem);scrollbar-gutter:stable;scrollbar-color:var(--line) var(--paper)}body{background:var(--paper);color:var(--ink);font-family:var(--font-sans);font-size:var(--step-1);-webkit-font-smoothing:antialiased;line-height:1.55}h1,h2,h3{font-weight:400;line-height:1.12}h2{font-size:clamp(1.65rem,2.8vw,2.5rem)}h3{font-size:1.4rem}a{color:inherit;text-underline-offset:.22em;text-decoration-thickness:1px}button{color:inherit}::selection{color:#442746;background:#f5a6d9}:focus-visible{outline:2px solid var(--focus-color);outline-offset:5px}[hidden]{display:none!important}}@layer compositions{.container{width:min(calc(100% - (2 * var(--gutter))), var(--container));margin-inline:auto}.container[data-width=content]{--container:var(--content)}.container[data-width=narrow]{--container:var(--narrow)}.box{padding:var(--box-space,var(--space-s))}.box[data-border]{border:var(--box-border-width,var(--border-width)) var(--box-border-style,var(--border-style)) var(--box-border-color,var(--border-color))}.box[data-space=none]{--box-space:0}.flow>*+*{margin-block-start:var(--flow-space,var(--space-s))}.flow>*+:is(h2,h3){margin-block-start:var(--heading-space,var(--space-l))}.flow[data-space=none]{--flow-space:0;--heading-space:0}.stack{gap:var(--stack-space,var(--space-s));flex-direction:column;display:flex}.stack[data-space=none]{--stack-space:0}.cluster{align-items:center;gap:var(--cluster-space,var(--space-s));flex-wrap:wrap;display:flex}.cluster[data-space=none]{--cluster-space:0}.cluster[data-justify=between]{justify-content:space-between}.cluster[data-justify=center]{justify-content:center}.cluster[data-justify=end]{justify-content:flex-end}.grid{grid-template-columns:repeat(auto-fit, minmax(min(var(--grid-min,16rem), 100%), 1fr));gap:var(--grid-space,var(--space-s));display:grid}.grid[data-space=none]{--grid-space:0}.switcher{gap:var(--switcher-space,var(--space-s));flex-wrap:wrap;display:flex}.switcher[data-space=none]{--switcher-space:0}.switcher>*{flex-basis:calc((var(--switcher-threshold,42rem) - 100%) * 999);flex-grow:1;min-inline-size:0}}@layer components{.skip-link{z-index:10;background:var(--ink);color:var(--paper);padding:.6rem 1rem;position:fixed;top:1rem;left:1rem;transform:translateY(-200%)}.skip-link:focus{transform:none}.site-header{--cluster-space:1rem;--header-ink:var(--ink);--header-line:var(--line);--header-hover:var(--accent-ink);--header-surface:var(--surface);z-index:5;width:100%;min-height:68px;padding-inline:var(--gutter);background:var(--paper);border-bottom:1px solid color-mix(in srgb, var(--header-line) calc(var(--scrolled) * 100%), transparent);position:sticky;top:0}@supports (animation-timeline:scroll()){.site-header{animation:linear both header-scrolled scroll();animation-range:0px var(--header-reveal)}}@keyframes header-scrolled{0%{--scrolled:0}to{--scrolled:1}}.wordmark{font-size:1.15rem}.site-header nav{--cluster-space:clamp(1.1rem, 2.2vw, 2.1rem);font-size:.94rem}.site-header nav a{min-height:44px;color:color-mix(in oklab, var(--header-ink), var(--header-hover) calc(var(--nav-hover) * 100%));transition:--nav-hover .28s var(--ease);align-items:center;text-decoration:none;display:inline-flex;position:relative}.site-header nav a:after{content:"";inset-inline:0 var(--underline-inset,0px);transform-origin:100%;height:1px;transition:transform .34s var(--ease);background:currentColor;position:absolute;bottom:calc(50% - .78em);transform:scaleX(0)}.site-header nav a:focus-visible{--nav-hover:1}.site-header nav a:hover:after,.site-header nav a:focus-visible:after{transform-origin:0;transition-duration:.42s;transform:scaleX(1)}.nav-garden{--underline-inset:calc(13px + .35rem);align-items:center;gap:.35rem;display:inline-flex}.nav-garden svg{width:13px;height:13px;transition:transform .42s var(--ease)}.nav-garden:hover svg{transform:translate(2px,-2px)}.theme-toggle{border:1px solid var(--header-line);width:40px;height:40px;transition:background-color .3s var(--ease);background:0 0;border-radius:50%;place-content:center;display:grid}.theme-toggle svg{transition:transform .52s var(--ease)}.theme-toggle:hover svg{transform:rotate(-20deg)}.theme-toggle>span{grid-area:1/1}.moon{color:light-dark(currentColor,#0000)}.sun{color:light-dark(#0000,currentColor)}@media (width<=650px){.site-header{--cluster-space:.35rem;min-height:92px;padding-block:.6rem}.wordmark{font-size:1.05rem}.site-header nav{--cluster-space:.5rem;justify-content:space-between;width:100%;font-size:.82rem}.theme-toggle{top:10px;right:var(--gutter);position:absolute}}@media (hover:hover) and (pointer:fine){.site-header nav a:hover{--nav-hover:1}.theme-toggle:hover{background:var(--header-surface)}}.hero{--ink:var(--wave-ink);--muted:var(--ink);--accent-ink:var(--ink);--focus-color:var(--ink);--line:rgb(from var(--wave-line) r g b / .28);isolation:isolate;min-height:clamp(620px, calc(94svh - var(--header-height) - 2 * var(--frame)), 880px);margin:var(--frame);color:var(--ink);border-radius:var(--radius-plate);background:var(--wave-paint);padding-top:24px;display:flex;position:relative;overflow:clip}.hero-inner{z-index:1;text-align:center;flex-direction:column;justify-content:center;align-items:center;padding-block:3rem 7rem;display:flex;position:relative}.hero h1{z-index:2;text-wrap:wrap;font-size:clamp(3rem,6.5vw,6rem);line-height:1.04;position:relative}.hero-dot{color:var(--accent-ink)}.hero-lead{max-width:35rem;margin-block:2rem 1rem;font-size:clamp(1.3rem,1.8vw,1.6rem);line-height:1.32}@media (width<=950px){.hero h1{font-size:clamp(2.8rem,7.5vw,4.5rem)}}@media (width<=650px){.hero{min-height:max(700px, calc(94svh - var(--header-height) - 2 * var(--frame)))}.hero-inner{padding-block:2rem 5.5rem}.hero h1{font-size:clamp(2.8rem,11vw,4.4rem)}.hero-lead{margin-top:1.8rem;max-width:27ch;margin-inline:auto;font-size:1.3rem}}.name-portrait{--portrait-size:96px;white-space:nowrap;display:inline-block;position:relative}.portrait-trigger{color:inherit;font:inherit;line-height:inherit;background:0 0;border:0;padding:0;text-decoration:none}button.portrait-trigger{text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:.1em;text-decoration-thickness:1px}.portrait-position{z-index:5;width:var(--portrait-size);height:var(--portrait-size);pointer-events:none;position:absolute;top:0;left:0;transform:translateY(44px)}.portrait-image{width:var(--portrait-size);height:var(--portrait-size);object-fit:cover;opacity:0;visibility:hidden;transition:opacity .14s ease-out, transform .22s var(--ease), visibility 0s .22s;border-radius:50%;transform:scale(.75)rotate(-8deg);box-shadow:0 8px 20px #21162a2e}.name-portrait[data-open=true]{z-index:6}.name-portrait[data-open=true] .portrait-image{opacity:1;visibility:visible;transition-delay:0s;transform:scale(1)rotate(-4deg)}.name-portrait[data-keyboard=true] .portrait-position,.name-portrait[data-keyboard=true] .portrait-image{transition:none}@media (prefers-reduced-motion:no-preference){body[data-soft-hero]{--intro-delay:1s;--intro-stagger:.12s;--intro-duration:.6s;--intro-controls-delay:calc(var(--intro-delay) + var(--intro-stagger) + var(--intro-stagger) + var(--intro-duration));--intro-nav-delay:calc(var(--intro-controls-delay) + 90ms);--intro-nav-stagger:70ms;--intro-nav-hold:.13s;--intro-ease:cubic-bezier(.25, .4, .25, 1)}.hero h1,.hero-lead{animation:intro-enter var(--intro-duration) var(--intro-delay) var(--intro-ease) backwards}.hero .hero-lead{animation-delay:calc(var(--intro-delay) + var(--intro-stagger))}body[data-soft-hero] :is(.wordmark,.site-header nav>*){animation:header-enter .56s var(--intro-controls-delay) var(--intro-ease) backwards}body[data-soft-hero] .site-header nav>*{animation-delay:calc(var(--intro-nav-delay) + var(--nav-step,0) * var(--intro-nav-stagger))}body[data-soft-hero] .site-header nav>:nth-child(2){--nav-step:1}body[data-soft-hero] .site-header nav>:nth-child(3){--nav-step:2}body[data-soft-hero] .site-header nav>:nth-child(4){--nav-step:3}body[data-soft-hero] .site-header .theme-toggle{animation-delay:calc(var(--intro-nav-delay) + 3 * var(--intro-nav-stagger) + var(--intro-nav-hold))}.soft-controls>*{animation:controls-enter .5s var(--intro-controls-delay) var(--intro-ease) backwards}:is(body[data-intro-skip],body:has(.skip-link:focus)) :is(.wordmark,.site-header nav>*,.hero h1,.hero-lead,.soft-controls>*){animation:none}}@keyframes intro-enter{0%{opacity:0;visibility:hidden;filter:blur(8px);transform:translateY(20px)}to{opacity:1;visibility:visible;filter:blur();transform:none}}@keyframes header-enter{0%{opacity:0;visibility:hidden;filter:blur(6px);transform:translateY(-14px)}to{opacity:1;visibility:visible;filter:blur();transform:none}}@keyframes controls-enter{0%{opacity:0;visibility:hidden;transform:translateY(60px)}to{opacity:1;visibility:visible;transform:none}}.soft-colors{pointer-events:none;position:absolute;inset:0}.soft-canvas{width:100%;height:100%;position:absolute;inset:0}.soft-controls{right:var(--gutter);bottom:1rem;left:var(--gutter);z-index:4;align-items:center;display:flex;position:absolute}.soft-controls>*{pointer-events:auto}.soft-pause{margin-left:auto}.soft-set{display:flex}.soft-swatch,.soft-pause{cursor:pointer;border-radius:4px;place-items:center;height:44px;display:grid;position:relative}.soft-swatch{width:24px}.soft-pause{border:1px solid var(--line);width:44px;color:var(--ink);background:0 0;border-radius:5px;padding:0}.soft-pause span{display:flex}.soft-pause .soft-play-icon,.soft-colors[data-paused=true] .soft-pause-icon{display:none}.soft-colors[data-paused=true] .soft-play-icon{display:flex}.soft-swatch input{appearance:none;opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.soft-swatch:before,.soft-swatch:after{content:"";transition:opacity .2s var(--ease), border-color .2s var(--ease);border-radius:50%}.soft-swatch:before{background:linear-gradient(145deg, var(--c1), var(--c3));opacity:.72;width:11px;height:11px}.soft-swatch:after{border:1px solid #0000;width:17px;height:17px;position:absolute;inset:50% auto auto 50%;translate:-50% -50%}.soft-swatch:has(:checked):after{border-color:rgb(from var(--ink) r g b / .5)}.soft-swatch:has(:checked):before{opacity:1}.soft-swatch:has(:focus-visible):before{outline:2px solid var(--focus-color);outline-offset:5px}@media (hover:hover) and (pointer:fine){.soft-pause:hover{background:#ffffff38}.soft-swatch:hover:before{opacity:1}}.section-heading{margin-bottom:1.5rem}.section-heading p{color:var(--muted);margin-top:.75rem;font-size:1rem}@media (width<=650px){.section-heading h2{font-size:1.6rem}.section-heading p{font-size:.9rem}}.projects-section{--section-ground:var(--scroll-ground,transparent);--section-shade:var(--scroll-shade,transparent);--coat-strength:var(--scroll-strength,0);--section-ink:var(--ink);isolation:isolate;color:var(--section-ink);background:linear-gradient(to bottom in oklab, var(--tint-1) 50%, var(--tint-2));transition:color .46s var(--ease), --coat-strength .46s var(--ease), --section-ground .46s var(--ease), --section-shade .46s var(--ease);padding-top:2rem;padding-bottom:clamp(1rem,2vw,2rem);position:relative}.projects-section:before{content:"";z-index:-1;background:linear-gradient(to bottom in oklab, var(--section-ground), color-mix(in oklab, var(--section-ground), var(--section-shade) 14%)) fixed;opacity:var(--coat-strength);pointer-events:none;position:absolute;inset:0}.project-grid{grid-template-columns:repeat(12,minmax(0,1fr));align-items:start;gap:clamp(2rem,3.4vw,3.25rem) clamp(1rem,1.8vw,1.75rem);display:grid}.project-plate{grid-column:var(--plate-column,auto);margin-top:var(--plate-drop,0);--plate-tilt:.55deg;transition:--picked .46s var(--ease);position:relative}.project-plate:nth-child(2n){--plate-tilt:-.55deg}.project-plate[data-plate="0"]{--plate-column:1 / span 7}.project-plate[data-plate="1"]{--plate-column:9 / span 4;--plate-drop:clamp(2rem, 4vw, 4.5rem)}.project-plate[data-plate="2"]{--plate-column:1 / span 5}.project-plate[data-plate="3"]{--plate-column:7 / span 6;--plate-drop:clamp(2.5rem, 5vw, 5.5rem)}.project-plate[data-plate="4"]{--plate-column:1 / span 4}.project-plate[data-plate="5"]{--plate-column:6 / span 7;--plate-drop:clamp(2rem, 3.6vw, 4rem)}.project-plate[data-plate="6"]{--plate-column:1 / span 8}.project-plate[data-plate="7"]{--plate-column:6 / span 7}.project-plate[data-scale=l]{--title-size:clamp(1.9rem, 2.9vw, 2.5rem);--note-size:.95rem;--plate-ratio:1.62}.project-plate[data-scale=m]{--title-size:clamp(1.6rem, 2.2vw, 1.95rem);--note-size:.88rem;--plate-ratio:1.4}.project-plate[data-scale=s]{--title-size:clamp(1.25rem, 1.6vw, 1.5rem);--note-size:.82rem;--plate-ratio:1.18}.plate-link{flex-direction:column-reverse;gap:clamp(.55rem,.8vw,.85rem);text-decoration:none;display:flex}.plate-ground{color:var(--project-ink);background:var(--project-bg);border-radius:var(--radius-card);transform:translateY(calc(var(--picked) * -6px)) rotate(calc(var(--picked) * var(--plate-tilt)));box-shadow:0 calc(var(--picked) * 0px) calc(var(--picked) * 16px) calc(var(--picked) * -8px) light-dark(rgb(from var(--ink) r g b / .3),#00000080);padding:3.2%}.plate-frame{border-radius:2px;overflow:hidden}.plate-frame img{width:100%;height:auto;aspect-ratio:var(--plate-ratio);object-fit:cover;object-position:center;transform:translateY(calc(var(--picked) * -4px));display:block}.plate-note{font-size:var(--note-size);align-items:center;gap:.8rem;margin-top:.85em;line-height:1.3;display:flex}.plate-note:after{content:"";height:1px;opacity:calc(var(--picked) * .45);transform:scaleX(var(--picked));transform-origin:0;background:currentColor;flex:1;order:1}.plate-year{font-variant-numeric:tabular-nums;order:2}.plate-bar{gap:3px;margin-top:.7em;display:flex}.plate-bar span{--patch-phase:clamp(0, (var(--picked) - var(--patch-index) * .125) * 2.4, 1);background:var(--patch);width:clamp(14px,2.2vw,22px);height:5px;opacity:calc(.32 + var(--patch-phase) * .68);transform:scaleY(calc(1 + var(--patch-phase) * .9));transform-origin:bottom}.plate-summary{-webkit-line-clamp:2;height:2.8em;font-size:calc(var(--note-size) * .95);opacity:var(--picked);transform:translateY(calc((1 - var(--picked)) * 5px));-webkit-box-orient:vertical;margin-top:.75em;line-height:1.4;display:-webkit-box;overflow:hidden}.plate-title{font-size:var(--title-size);color:inherit;line-height:1.08}.plate-title svg{vertical-align:baseline;width:.52em;height:.52em;transform:translate(calc(var(--picked) * .16em), calc(var(--picked) * -.16em));margin-left:.28em;display:inline-block}.project-plate:has(.plate-link:focus-visible){--picked:1}@keyframes plate-arrival{0%{opacity:0;translate:0 30px}to{opacity:1;translate:0}}@media (prefers-reduced-motion:no-preference){@supports (animation-timeline:view()){.plate-link{animation:linear both plate-arrival view();animation-range:entry 40px entry 340px}}}@media (width<=950px){.project-grid{grid-template-columns:repeat(6,minmax(0,1fr));row-gap:clamp(2rem,4vw,3rem)}.project-grid .project-plate[data-plate]{--title-size:clamp(1.3rem, 2.6vw, 1.7rem);--note-size:.85rem;--plate-ratio:1.3;--plate-drop:0}.project-grid .project-plate:is([data-plate="0"],[data-plate="3"],[data-plate="6"],[data-plate="7"]){--title-size:clamp(1.7rem, 3.4vw, 2.2rem);--plate-ratio:1.75;--plate-column:1 / span 6}.project-grid .project-plate:is([data-plate="1"],[data-plate="4"]){--plate-column:1 / span 3}.project-grid .project-plate:is([data-plate="2"],[data-plate="5"]){--plate-column:4 / span 3;--plate-drop:2rem}}@media (width<=650px){.projects-section{padding-top:1.5rem}.project-grid{grid-template-columns:1fr;row-gap:2.25rem}.project-grid .project-plate[data-plate]{--title-size:1.45rem;--note-size:.82rem;--plate-ratio:1.45;--plate-column:auto;--plate-drop:0}.plate-ground{padding:3.5%}.plate-summary{-webkit-line-clamp:3;height:auto}}@media (hover:hover) and (pointer:fine){.project-plate:hover{--picked:1}}@media (hover:none),(pointer:coarse){.plate-summary{opacity:1;transform:none}}.practice-section{background:linear-gradient(to bottom in oklab, var(--tint-2) 45%, var(--tint-3));padding-block:clamp(3.5rem,7vw,6rem)}.practice-section h2{margin-bottom:clamp(1.75rem,3vw,2.5rem)}.practice-grid{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:baseline;column-gap:clamp(2rem,6vw,6rem);display:grid}.practice-lead{text-wrap:pretty;max-width:22ch;font-size:clamp(1.4rem,2vw,1.8rem);line-height:1.2}.practice-body{--flow-space:1.25rem;max-width:58ch;color:var(--ink)}@media (width<=650px){.practice-section{padding-block:4rem}.practice-grid{grid-template-columns:1fr;row-gap:1.5rem}.practice-body{max-width:45ch}}.ongoing-section{background:linear-gradient(to bottom in oklab, var(--tint-2), var(--tint-3));padding-top:clamp(3rem,6vw,5rem)}.ongoing-list{grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:clamp(1.25rem,2vw,2rem) clamp(1rem,1.6vw,1.5rem);max-width:64rem;padding:.5rem;display:grid}@media (width<=650px){.ongoing-list{grid-template-columns:1fr}}.elsewhere-section{background:linear-gradient(to bottom in oklab, var(--tint-3) 55%, var(--paper));padding-top:clamp(3.5rem,7vw,6rem);padding-bottom:3rem}.sidequest-table{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:start;gap:clamp(2rem,4vw,4rem);display:grid}.sidequest-hand{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1.25rem,2vw,2rem) clamp(1rem,1.6vw,1.5rem);padding:.5rem;display:grid}.sidequest-card{transition:--picked .46s var(--ease);position:relative}.sidequest-card:hover,.sidequest-card:has(:focus-visible){z-index:1}.sidequest-link{color:var(--card-ink);background:var(--card-bg);border:1px solid color-mix(in oklab, var(--card-ink) 35%, var(--card-bg));border-radius:var(--radius-card);transform:rotate(calc(var(--card-tilt) * (1 - var(--picked)))) translateY(calc(var(--picked) * -10px)) scale(calc(1 + var(--picked) * .035));box-shadow:0 calc(var(--picked) * 14px) calc(var(--picked) * 28px) calc(var(--picked) * -10px) light-dark(rgb(from var(--ink) r g b / .35),#0000008c);flex-direction:column;gap:.55rem;padding:.55rem .55rem .85rem;text-decoration:none;display:flex}.sidequest-link>*{padding-inline:.25rem}.sidequest-preview{aspect-ratio:8/5;border-radius:calc(var(--radius-card) - 4px);object-fit:cover;width:100%;height:auto;padding:0;display:block}.sidequest-link h3{justify-content:space-between;align-items:flex-start;gap:.5rem;font-size:clamp(1.1rem,1.4vw,1.3rem);line-height:1.15;display:flex}.sidequest-link svg{width:.8em;height:.8em;transform:translate(calc(var(--picked) * .16em), calc(var(--picked) * -.16em));flex:none}.sidequest-link p{color:color-mix(in oklab, var(--card-ink) 82%, var(--card-bg));font-size:.92rem;line-height:1.45}.sidequest-link>span{text-underline-offset:.25em;font-size:.9rem;text-decoration:underline}.sidequest-stage{top:calc(var(--header-height) + 1.5rem);display:grid;position:sticky}.stage-figure{opacity:0;transition:opacity .46s var(--ease), display .46s allow-discrete;grid-area:1/1;display:none}.stage-figure[data-live]{opacity:1;display:block;@starting-style{opacity:0}}.stage-window{aspect-ratio:16/10;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);overflow:hidden;container-type:size}.stage-window iframe{transform-origin:0 0;border:0;width:200cqw;height:200cqh;display:block;scale:.5}.stage-window img{object-fit:cover;width:100%;height:100%;display:block}.stage-figure figcaption{max-width:60ch;color:var(--muted);margin-top:.8rem;font-size:.96rem;line-height:1.45}.stage-domain{color:var(--ink);margin-top:.25rem;display:block}@keyframes card-deal{0%{opacity:0;translate:0 36px;rotate:4deg}to{opacity:1;translate:0;rotate:0deg}}@media (prefers-reduced-motion:no-preference){@supports (animation-timeline:view()){.sidequest-card{animation:linear both card-deal view();animation-range:entry 20px entry 260px}}}@media (width>=951px) and (hover:hover) and (pointer:fine){.sidequest-hand .sidequest-link :is(p,span){clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}@media (width<=950px),(hover:none),(pointer:coarse){.sidequest-table{grid-template-columns:1fr}.sidequest-hand{grid-template-columns:repeat(auto-fill,minmax(15rem,1fr))}.sidequest-stage{display:none}}@media (width<=650px){.elsewhere-section{padding-bottom:2.5rem}.sidequest-hand{grid-template-columns:1fr;row-gap:1.25rem}.sidequest-link{transform:rotate(calc(var(--card-tilt) * .5 * (1 - var(--picked)))) translateY(calc(var(--picked) * -10px));grid-template-rows:auto auto 1fr;grid-template-columns:5.5rem minmax(0,1fr);align-items:start;gap:.3rem .8rem;padding:.6rem;display:grid}.sidequest-preview{grid-row:1/4}.sidequest-link p{font-size:.88rem}}@media (hover:hover) and (pointer:fine){.sidequest-card:hover{--picked:1}}.sidequest-card:has(.sidequest-link:focus-visible){--picked:1}.friends-section{padding-block:1rem clamp(3rem,6vw,5rem)}.friends-list{grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));gap:.5rem 2rem;display:grid}.friends-list li{flex-wrap:wrap;align-items:baseline;gap:0 .6rem;display:flex}.friends-list span{color:var(--muted)}.site-footer{--ink:var(--wave-ink);--muted:rgb(from var(--wave-ink) r g b / .72);--accent-ink:var(--ink);--focus-color:var(--ink);--line:rgb(from var(--wave-line) r g b / .35);min-height:clamp(360px,46svh,520px);margin:var(--frame);color:var(--ink);border-radius:var(--radius-plate);background:var(--wave-paint);flex-direction:column;justify-content:flex-end;padding-block:clamp(2.5rem,4vw,4rem) clamp(1.25rem,2vw,1.75rem);font-size:.9rem;display:flex}.footer-inner{gap:clamp(3rem,7vw,7rem);display:grid}.footer-contact{gap:.6rem;display:grid}.footer-contact h2{font-size:1.15rem}.footer-email{overflow-wrap:anywhere;text-underline-offset:.14em;text-decoration-color:rgb(from var(--ink) r g b / .35);transition:text-decoration-color .3s var(--ease);justify-self:start;font-size:clamp(2rem,8.5vw,5.2rem);line-height:1.05}.footer-meta{--cluster-space:1rem 2rem;color:var(--muted);padding-top:1rem}.footer-meta .cluster{--cluster-space:1.25rem}.footer-meta a{text-decoration:none}@media (width<=650px){.site-footer{min-height:0}.footer-inner{gap:3rem}.footer-meta{flex-direction:column;align-items:flex-start}}@media (hover:hover) and (pointer:fine){.footer-email:hover{text-decoration-color:currentColor}.footer-meta a:hover{color:var(--ink)}}.project-page{padding-bottom:clamp(3rem,6vw,5rem)}.project-opening{--cover-lift:clamp(2.5rem, 5vw, 5.5rem)}.project-hero{--accent-ink:currentColor;--focus-color:var(--project-ink);padding-top:clamp(1.5rem,3vw,2.5rem);padding-bottom:calc(var(--cover-lift) + clamp(1.25rem, 2.5vw, 2.25rem));color:var(--project-ink);background:var(--project-bg)}.project-hero-inner{grid-template-columns:1fr 1fr;align-items:end;gap:clamp(1.75rem,3vw,2.75rem) clamp(1.5rem,3vw,3rem);display:grid}.back-link{grid-column:1/-1;width:fit-content;font-size:.95rem}.project-hero h1{font-size:clamp(2.5rem,5vw,5rem)}.project-hero-aside{flex-direction:column;align-items:start;gap:.9rem;padding-bottom:.4rem;display:flex}.project-lead{max-width:32ch;font-size:clamp(1.2rem,1.8vw,1.6rem);line-height:1.3}.project-hero .project-meta{color:inherit;opacity:.7}.project-strip{grid-column:1/-1;gap:4px;display:flex}.project-strip span{background:var(--patch);flex:1;max-width:96px;height:8px}.project-cover{width:100%;max-height:80vh;margin-top:calc(var(--cover-lift) * -1);object-fit:cover;border-radius:var(--radius-card);display:block}.project-story{grid-template-columns:1.5fr 1fr;gap:10%;margin-top:clamp(2.5rem,5vw,4rem);display:grid}.project-story .flow{--flow-space:1.25rem;max-width:65ch}.project-story h2{font-size:1.7rem}.project-story dl{margin-top:1.5rem}.project-story dt{color:var(--muted);margin-top:1.2rem;font-size:.85rem}.project-rail{border-top:1px solid var(--line);margin-top:clamp(3rem,6vw,5rem);padding-top:1.25rem}.project-rail h2{color:var(--muted);font-size:.9rem}.project-rail ul{overscroll-behavior-inline:contain;scroll-snap-type:x proximity;grid-auto-columns:minmax(190px,1fr);grid-auto-flow:column;gap:clamp(.75rem,1.4vw,1.25rem);margin-top:1.25rem;padding-bottom:.75rem;display:grid;overflow-x:auto}.project-rail li{scroll-snap-align:start}.project-rail a{flex-direction:column-reverse;gap:.5rem;text-decoration:none;display:flex}.rail-ground{color:var(--project-ink);background:var(--project-bg);transition:transform .32s var(--ease);border-radius:6px;padding:6%}.rail-frame{border-radius:2px;overflow:hidden}.rail-frame img{aspect-ratio:1.5;object-fit:cover;width:100%;height:auto;display:block}.rail-note{margin-top:.55em;font-size:.72rem;line-height:1.25}.rail-bar{gap:2px;margin-top:.55em;display:flex}.rail-bar span{background:var(--patch);width:12px;height:4px}.rail-title{align-items:center;gap:.3rem;font-size:1.05rem;display:flex}.rail-title svg{width:.58em;height:.58em;transition:transform .32s var(--ease)}@media (width<=650px){.project-hero-inner{grid-template-columns:1fr;row-gap:1.25rem}.project-story{grid-template-columns:1fr;gap:2rem}}@media (hover:hover) and (pointer:fine){.back-link,.project-hero .text-link{transition:opacity .28s var(--ease)}.back-link:hover,.project-hero .text-link:hover{opacity:.68}.project-rail a:hover .rail-ground{transform:translateY(-5px)}.project-rail a:hover .rail-title svg{transform:translate(2px,-2px)}}.error-page{min-height:65vh;padding-block:6rem}.error-page h1{margin-bottom:1rem;font-size:clamp(2.5rem,6vw,5rem)}.error-page .text-link{margin-top:2rem}.text-link{border-bottom:1px solid;align-items:center;gap:.8rem;width:fit-content;padding-block:.3rem;text-decoration:none;display:inline-flex}@media (hover:hover) and (pointer:fine){.text-link:hover{color:var(--accent-ink)}}.project-meta{color:var(--muted);font-size:.85rem}@supports (color:oklch(from red l calc(c * 1.12) h)){@media (color-gamut:p3){:root{--accent:light-dark(oklch(73.0591% .234912 345.677),oklch(82.9307% .129109 348.2));--wave-paint:radial-gradient(ellipse at 40% 40%, oklch(80.5939% .0798371 274.509), transparent 65%), radial-gradient(ellipse at 100% 80%, oklch(63.8762% .15221 276.582), transparent 60%), oklch(70.3372% .130581 276.225)}.plate-ground,.project-hero,.rail-ground{background:oklch(from var(--project-bg) l calc(c * 1.12) h)}.plate-bar span,.project-strip span,.rail-bar span{background:oklch(from var(--patch) l calc(c * 1.12) h)}.projects-section:before{background:linear-gradient(to bottom in oklab, oklch(from var(--section-ground) l calc(c * 1.12) h), color-mix(in oklab, oklch(from var(--section-ground) l calc(c * 1.12) h), oklch(from var(--section-shade) l calc(c * 1.12) h) 14%)) fixed}.soft-swatch:before{background:linear-gradient(145deg, oklch(from var(--c1) l calc(c * 1.18) h), oklch(from var(--c3) l calc(c * 1.18) h))}}}}@layer utilities{.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.measure{max-width:var(--measure)}.text-end{text-align:end}}@font-face{font-family:Fragment Sans;src:url(/fonts/ppfragment-sansregular-webfont.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@property --scrolled{syntax:"<number>";inherits:true;initial-value:1}@property --nav-hover{syntax:"<number>";inherits:false;initial-value:0}@property --picked{syntax:"<number>";inherits:true;initial-value:0}@property --section-ground{syntax:"<color>";inherits:true;initial-value:#0000}@property --section-shade{syntax:"<color>";inherits:true;initial-value:#0000}@property --coat-strength{syntax:"<number>";inherits:true;initial-value:0}@view-transition{navigation:auto}::view-transition-group(plate-ground),::view-transition-group(plate-print),::view-transition-group(plate-title),::view-transition-group(plate-note),::view-transition-group(plate-summary),::view-transition-group(plate-bar){animation-duration:.46s;animation-timing-function:var(--ease)}::view-transition-old(root),::view-transition-new(root){animation-duration:.26s}::view-transition-old(plate-print),::view-transition-new(plate-print){object-fit:cover;width:100%;height:100%}@media (prefers-reduced-motion:reduce){@view-transition{navigation:none}}
