@layer settings,reset,base,compositions,components,utilities;@layer settings{:root{--font-sans: ui-sans-serif, system-ui, -apple-system, blinkmacsystemfont, "Segoe UI", 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(1rem, 4vw, 1.5rem);--measure: 70ch;--container: 75rem;--content: 55rem;--narrow: 30rem}}@layer reset{*,*:before,*:after{box-sizing:border-box}*{margin:0}html{text-size-adjust:100%}body{min-block-size:100vh;min-block-size:100dvh}img,picture,video,canvas,svg{display:block;max-width:100%}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;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!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)}}@layer compositions{.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}}@layer compositions{.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}}@layer compositions{.stack{display:flex;flex-direction:column;gap:var(--stack-space, var(--space-s))}.stack[data-space=none]{--stack-space: 0}}@layer compositions{.cluster{display:flex;flex-wrap:wrap;align-items:center;gap:var(--cluster-space, var(--space-s))}.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}}@layer compositions{.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(var(--grid-min, 16rem),100%),1fr));gap:var(--grid-space, var(--space-s))}.grid[data-space=none]{--grid-space: 0}}@layer compositions{.switcher{display:flex;flex-wrap:wrap;gap:var(--switcher-space, var(--space-s))}.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 utilities{.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.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: transparent;}@property --section-shade{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --coat-strength{syntax: "<number>"; inherits: true; initial-value: 0;}@layer settings{:root{color-scheme:light dark;--font-sans: "Fragment Sans", sans-serif;--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: rgb(32 38 75 / .22);--container: 88rem;--gutter: clamp(1.25rem, 4vw, 4rem);--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(max-width:650px){:root{--header-height: 96px;--header-reveal: 72px}}}@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);line-height:1.55;-webkit-font-smoothing:antialiased}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-decoration-thickness:1px;text-underline-offset:.22em}button{color:inherit}::selection{color:#442746;background:#f5a6d9}:focus-visible{outline:2px solid var(--focus-color);outline-offset:5px}[hidden]{display:none!important}}@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){width:100%;height:100%;object-fit:cover}@media(prefers-reduced-motion:reduce){@view-transition{navigation:none}}@layer components;@layer components{.skip-link{position:fixed;top:1rem;left:1rem;z-index:10;padding:.6rem 1rem;background:var(--ink);color:var(--paper);transform:translateY(-200%)}.skip-link:focus{transform:none}}@layer components{.site-header{--cluster-space: 1rem;--header-ink: var(--ink);--header-line: var(--line);--header-hover: var(--accent-ink);--header-surface: var(--surface);position:sticky;top:0;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)}@supports (animation-timeline: scroll()){.site-header{animation:header-scrolled linear both;animation-timeline: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{position:relative;display:inline-flex;align-items:center;min-height:44px;color:color-mix(in oklab,var(--header-ink),var(--header-hover) calc(var(--nav-hover) * 100%));text-decoration:none;transition:--nav-hover .28s var(--ease)}.site-header nav a:after{content:"";position:absolute;inset-inline:0 var(--underline-inset, 0px);bottom:calc(50% - .78em);height:1px;background:currentColor;transform:scaleX(0);transform-origin:100% 50%;transition:transform .34s var(--ease)}.site-header nav a:focus-visible{--nav-hover: 1}.site-header nav a:hover:after,.site-header nav a:focus-visible:after{transform:scaleX(1);transform-origin:0 50%;transition-duration:.42s}.nav-garden{--underline-inset: calc(13px + .35rem) ;display:inline-flex;align-items:center;gap:.35rem}.nav-garden svg{width:13px;height:13px;transition:transform .42s var(--ease)}.nav-garden:hover svg{transform:translate(2px,-2px)}.theme-toggle{display:grid;place-content:center;width:40px;height:40px;background:transparent;border:1px solid var(--header-line);border-radius:50%;transition:background-color .3s var(--ease)}.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,transparent)}.sun{color:light-dark(transparent,currentColor)}@media(max-width:650px){.site-header{--cluster-space: .35rem;min-height:92px;padding-block:.6rem}.wordmark{font-size:1.05rem}.site-header nav{--cluster-space: .8rem;width:100%;justify-content:space-between;font-size:.82rem}.theme-toggle{position:absolute;top:10px;right:var(--gutter)}}@media(hover:hover)and (pointer:fine){.site-header nav a:hover{--nav-hover: 1}.theme-toggle:hover{background:var(--header-surface)}}}@layer components{.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);position:relative;isolation:isolate;display:flex;min-height:clamp(620px,calc(94svh - var(--header-height) - 2 * var(--frame)),880px);margin:var(--frame);padding-top:24px;overflow:clip;color:var(--ink);border-radius:var(--radius-plate);background:var(--wave-paint)}.hero-inner{position:relative;z-index:1;display:flex;flex-direction:column}.hero-intro{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding-block:3rem 7rem;text-align:center}.hero h1{position:relative;z-index:2;font-size:clamp(3rem,6.5vw,6rem);line-height:1.04;text-wrap:wrap}.intro-line{display:block}.hero-dot{color:var(--accent-ink)}.hero-copy{max-width:35rem;margin-top:2rem}.hero-lead{margin-bottom:1rem;font-size:clamp(1.3rem,1.8vw,1.6rem);line-height:1.32}@media(max-width:950px){.hero h1{font-size:clamp(2.8rem,7.5vw,4.5rem)}}@media(max-width:650px){.hero{min-height:max(700px,calc(94svh - var(--header-height) - 2 * var(--frame)))}.hero-intro{padding-block:2rem 5.5rem}.hero h1{font-size:clamp(2.8rem,11vw,4.4rem)}.hero-copy{margin-top:1.8rem}.hero-lead{max-width:27ch;margin-inline:auto;font-size:1.3rem}}}@layer components{.name-portrait{--portrait-size: 96px;position:relative;display:inline-block;white-space:nowrap}.portrait-trigger{padding:0;background:none;border:0;color:inherit;font:inherit;line-height:inherit;text-decoration:none}button.portrait-trigger{text-decoration:underline;text-decoration-color:var(--line);text-decoration-thickness:1px;text-underline-offset:.1em}.portrait-position{position:absolute;top:0;left:0;z-index:5;width:var(--portrait-size);height:var(--portrait-size);transform:translate3d(0,44px,0);pointer-events:none}.portrait-image{width:var(--portrait-size);height:var(--portrait-size);border-radius:50%;object-fit:cover;opacity:0;visibility:hidden;transform:scale(.75) rotate(-8deg);box-shadow:0 8px 20px #21162a2e;transition:opacity .14s ease-out,transform .22s var(--ease),visibility 0s .22s}.name-portrait[data-open=true]{z-index:6}.name-portrait[data-open=true] .portrait-image{opacity:1;visibility:visible;transform:scale(1) rotate(-4deg);transition-delay:0s}.name-portrait[data-keyboard=true] .portrait-position,.name-portrait[data-keyboard=true] .portrait-image{transition:none}}@layer components{@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-copy>p{animation:intro-enter var(--intro-duration) var(--intro-delay) var(--intro-ease) backwards}.hero-copy>.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-copy>p,.soft-controls>*){animation:none}}@keyframes intro-enter{0%{opacity:0;visibility:hidden;transform:translateY(20px);filter:blur(8px)}to{opacity:1;visibility:visible;transform:none;filter:blur(0)}}@keyframes header-enter{0%{opacity:0;visibility:hidden;transform:translateY(-14px);filter:blur(6px)}to{opacity:1;visibility:visible;transform:none;filter:blur(0)}}@keyframes controls-enter{0%{opacity:0;visibility:hidden;transform:translateY(60px)}to{opacity:1;visibility:visible;transform:none}}}@layer components{.soft-colors{position:absolute;inset:0;pointer-events:none}.soft-canvas{position:absolute;inset:0;width:100%;height:100%}.soft-controls{position:absolute;right:var(--gutter);bottom:1rem;left:var(--gutter);z-index:4;display:flex;align-items:center}.soft-controls>*{pointer-events:auto}.soft-pause{margin-left:auto}.soft-set{display:flex}.soft-swatch,.soft-pause{position:relative;display:grid;place-items:center;height:44px;border-radius:4px;cursor:pointer}.soft-swatch{width:24px}.soft-pause{width:44px;padding:0;background:none;border:1px solid var(--line);border-radius:5px;color:var(--ink)}.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{position:absolute;inset:0;margin:0;appearance:none;opacity:0;cursor:pointer}.soft-swatch:before,.soft-swatch:after{content:"";border-radius:50%;transition:opacity .2s var(--ease),border-color .2s var(--ease)}.soft-swatch:before{width:11px;height:11px;background:linear-gradient(145deg,var(--c1),var(--c3));opacity:.72}.soft-swatch:after{position:absolute;inset:50% auto auto 50%;width:17px;height:17px;border:1px solid transparent;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}}}@layer components{.section-heading{margin-bottom:1.5rem}.section-heading p{margin-top:.75rem;color:var(--muted);font-size:1rem}@media(max-width:650px){.section-heading h2{font-size:1.6rem}.section-heading p{font-size:.9rem}}}@layer components{.projects-section{--section-ground: var(--scroll-ground, transparent);--section-shade: var(--scroll-shade, transparent);--coat-strength: var(--scroll-strength, 0);--section-ink: var(--ink);position:relative;isolation:isolate;padding-top:2rem;padding-bottom:clamp(1rem,2vw,2rem);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)}.projects-section:before{content:"";position:absolute;z-index:-1;inset:0;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}.project-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));align-items:start;column-gap:clamp(1rem,1.8vw,1.75rem);row-gap:clamp(2rem,3.4vw,3.25rem)}.project-plate{position:relative;grid-column:var(--plate-column, auto);margin-top:var(--plate-drop, 0);--plate-tilt: .55deg;transition:--picked .46s var(--ease)}.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-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{display:flex;flex-direction:column-reverse;gap:clamp(.55rem,.8vw,.85rem);text-decoration:none}.plate-ground{padding:3.2%;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),rgb(0 0 0 / .5))}.plate-frame{overflow:hidden;border-radius:2px}.plate-frame img{display:block;width:100%;height:auto;aspect-ratio:var(--plate-ratio);object-fit:cover;object-position:center;transform:translateY(calc(var(--picked) * -4px))}.plate-note{display:flex;align-items:center;gap:.8rem;margin-top:.85em;font-size:var(--note-size);line-height:1.3}.plate-note:after{content:"";order:1;flex:1;height:1px;background:currentColor;opacity:calc(var(--picked) * .45);transform:scaleX(var(--picked));transform-origin:left}.plate-year{order:2;font-variant-numeric:tabular-nums}.plate-bar{display:flex;gap:3px;margin-top:.7em}.plate-bar span{--patch-phase: clamp( 0, (var(--picked) - var(--patch-index) * .125) * 2.4, 1 );width:clamp(14px,2.2vw,22px);height:5px;background:var(--patch);opacity:calc(.32 + var(--patch-phase) * .68);transform:scaleY(calc(1 + var(--patch-phase) * .9));transform-origin:bottom}.plate-summary{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;height:2.8em;margin-top:.75em;overflow:hidden;font-size:calc(var(--note-size) * .95);line-height:1.4;opacity:var(--picked);transform:translateY(calc((1 - var(--picked)) * 5px))}.plate-title{font-size:var(--title-size);line-height:1.08;color:inherit}.plate-title svg{display:inline-block;width:.52em;height:.52em;margin-left:.28em;vertical-align:baseline;transform:translate(calc(var(--picked) * .16em),calc(var(--picked) * -.16em))}.project-plate:has(.plate-link:focus-visible){--picked: 1}@keyframes plate-arrival{0%{opacity:0;translate:0 30px}to{opacity:1;translate:0 0}}@media(prefers-reduced-motion:no-preference){@supports (animation-timeline: view()){.plate-link{animation:plate-arrival linear both;animation-timeline:view();animation-range:entry 40px entry 340px}}}@media(max-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"]){--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(max-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}}}@layer components{.practice-section{padding-block:clamp(3.5rem,7vw,6rem);background:linear-gradient(to bottom in oklab,var(--tint-2) 45%,var(--tint-3))}.practice-section h2{margin-bottom:clamp(1.75rem,3vw,2.5rem)}.practice-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:clamp(2rem,6vw,6rem);align-items:first baseline}.practice-lead{max-width:22ch;font-size:clamp(1.4rem,2vw,1.8rem);line-height:1.2;text-wrap:pretty}.practice-body{--flow-space: 1.25rem;max-width:46ch;color:var(--muted)}@keyframes about-arrival{0%{opacity:0;translate:0 14px}to{opacity:1;translate:0 0}}@media(prefers-reduced-motion:no-preference){@supports (animation-timeline: view()){.practice-lead,.practice-body>p{animation:about-arrival linear both;animation-timeline:view();animation-range:entry 20px entry 220px}.practice-body>p{animation-range:entry 60px entry 260px}}}@media(max-width:650px){.practice-section{padding-block:4rem}.practice-grid{grid-template-columns:1fr;row-gap:1.5rem}.practice-body{max-width:45ch}}}@layer components{.elsewhere-section{padding-bottom:3rem;background:linear-gradient(to bottom in oklab,var(--tint-3) 55%,var(--paper))}.sidequest-table{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(2rem,4vw,4rem);align-items:start}.sidequest-hand{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1.25rem,2vw,2rem) clamp(1rem,1.6vw,1.5rem);padding:.5rem}.sidequest-card{position:relative;transition:--picked .46s var(--ease)}.sidequest-card:hover,.sidequest-card:has(:focus-visible){z-index:1}.sidequest-link{display:flex;flex-direction:column;gap:.55rem;padding:.55rem .55rem .85rem;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);text-decoration:none;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),rgb(0 0 0 / .55))}.sidequest-link>*{padding-inline:.25rem}.sidequest-preview{display:block;width:100%;height:auto;padding:0;aspect-ratio:8 / 5;border-radius:calc(var(--radius-card) - 4px);object-fit:cover}.sidequest-link .cluster{--cluster-space: .5rem;flex-wrap:nowrap;align-items:flex-start}.sidequest-link h3{font-size:clamp(1.1rem,1.4vw,1.3rem);line-height:1.15}.sidequest-link svg{flex:none;width:.9em;height:.9em;transform:translate(calc(var(--picked) * .16em),calc(var(--picked) * -.16em))}.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{font-size:.9rem;text-decoration:underline;text-underline-offset:.25em}.sidequest-stage{position:sticky;top:calc(var(--header-height) + 1.5rem);display:grid}.stage-figure{grid-area:1 / 1;display:none;opacity:0;transition:opacity .46s var(--ease),display .46s allow-discrete}.stage-figure[data-live]{display:block;opacity:1;@starting-style{opacity:0}}.stage-window{container-type:size;aspect-ratio:16 / 10;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface)}.stage-window iframe{display:block;width:200cqw;height:200cqh;border:0;scale:.5;transform-origin:0 0}.stage-window img{display:block;width:100%;height:100%;object-fit:cover}.stage-figure figcaption{max-width:60ch;margin-top:.8rem;color:var(--muted);font-size:.96rem;line-height:1.45}.stage-domain{display:block;margin-top:.25rem;color:var(--ink)}@keyframes card-deal{0%{opacity:0;translate:0 36px;rotate:4deg}to{opacity:1;translate:0 0;rotate:0deg}}@media(prefers-reduced-motion:no-preference){@supports (animation-timeline: view()){.sidequest-card{animation:card-deal linear both;animation-timeline:view();animation-range:entry 20px entry 260px}}}@media(min-width:951px)and (hover:hover)and (pointer:fine){.sidequest-link :is(p,span){position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}}@media(max-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(max-width:650px){.elsewhere-section{padding-bottom:2.5rem}.sidequest-hand{grid-template-columns:1fr;row-gap:1.25rem}.sidequest-link{display:grid;grid-template-columns:5.5rem minmax(0,1fr);grid-template-rows:auto auto 1fr;gap:.3rem .8rem;align-items:start;padding:.6rem;transform:rotate(calc(var(--card-tilt) * .5 * (1 - var(--picked)))) translateY(calc(var(--picked) * -10px))}.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}}@layer components{.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);display:flex;flex-direction:column;justify-content:flex-end;min-height:clamp(360px,46svh,520px);margin:var(--frame);padding-block:clamp(2.5rem,4vw,4rem) clamp(1.25rem,2vw,1.75rem);color:var(--ink);font-size:.9rem;border-radius:var(--radius-plate);background:var(--wave-paint)}.footer-inner{display:grid;gap:clamp(3rem,7vw,7rem)}.footer-contact{display:grid;gap:.6rem}.footer-contact h2{font-size:1.15rem}.footer-email{justify-self:start;font-size:clamp(2rem,8.5vw,5.2rem);line-height:1.05;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)}.footer-meta{--cluster-space: 1rem 2rem;padding-top:1rem;color:var(--muted);border-top:1px solid var(--line)}.footer-meta .cluster{--cluster-space: 1.25rem}.footer-meta a{text-decoration:none}@media(max-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)}}}@layer components{.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{display:grid;grid-template-columns:1fr 1fr;align-items:end;column-gap:clamp(1.5rem,3vw,3rem);row-gap:clamp(1.75rem,3vw,2.75rem)}.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{display:flex;flex-direction:column;align-items:start;gap:.9rem;padding-bottom:.4rem}.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;display:flex;gap:4px}.project-strip span{flex:1;max-width:96px;height:8px;background:var(--patch)}.project-cover{display:block;width:100%;max-height:80vh;margin-top:calc(var(--cover-lift) * -1);object-fit:cover;border-radius:var(--radius-card)}.project-story{display:grid;grid-template-columns:1.5fr 1fr;gap:10%;margin-top:clamp(2.5rem,5vw,4rem)}.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{margin-top:1.2rem;color:var(--muted);font-size:.85rem}.project-rail{margin-top:clamp(3rem,6vw,5rem);padding-top:1.25rem;border-top:1px solid var(--line)}.project-rail h2{color:var(--muted);font-size:.9rem}.project-rail ul{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(190px,1fr);gap:clamp(.75rem,1.4vw,1.25rem);margin-top:1.25rem;padding-bottom:.75rem;overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:x proximity}.project-rail li{scroll-snap-align:start}.project-rail a{display:flex;flex-direction:column-reverse;gap:.5rem;text-decoration:none}.rail-ground{padding:6%;color:var(--project-ink);background:var(--project-bg);border-radius:6px;transition:transform .32s var(--ease)}.rail-frame{overflow:hidden;border-radius:2px}.rail-frame img{display:block;width:100%;height:auto;aspect-ratio:1.5;object-fit:cover}.rail-note{margin-top:.55em;font-size:.72rem;line-height:1.25}.rail-bar{display:flex;gap:2px;margin-top:.55em}.rail-bar span{width:12px;height:4px;background:var(--patch)}.rail-title{display:flex;align-items:center;gap:.3rem;font-size:1.05rem}.rail-title svg{width:.58em;height:.58em;transition:transform .32s var(--ease)}@media(max-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)}}}@layer components{.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}}@layer components{.text-link{display:inline-flex;align-items:center;gap:.8rem;width:fit-content;padding-block:.3rem;border-bottom:1px solid currentColor;text-decoration:none}@media(hover:hover)and (pointer:fine){.text-link:hover{color:var(--accent-ink)}}}@layer components{.project-meta{color:var(--muted);font-size:.85rem}}
