@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_next/static/media/space-grotesk-vietnamese-wght-normal.D0rl6rjA.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_next/static/media/space-grotesk-latin-ext-wght-normal.D9tNdqV9.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_next/static/media/space-grotesk-latin-wght-normal.BhU9QXUp.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@property --mo-track-x{syntax:"<number>";inherits:true;initial-value:0}@property --mo-track-y{syntax:"<number>";inherits:true;initial-value:0}@property --mo-track-travel{syntax:"<length>";inherits:true;initial-value:0}@property --mo-track-hold{syntax:"<number>";inherits:true;initial-value:0}.mo-root .mo-eye{--mo-gz-dx:calc(var(--mo-gz-dx1,0) + (var(--mo-gz-dx2,0) - var(--mo-gz-dx1,0))*var(--mo-sel));--mo-gz-dy:calc(var(--mo-gz-dy1,0) + (var(--mo-gz-dy2,0) - var(--mo-gz-dy1,0))*var(--mo-sel));--mo-gz-sx:calc(var(--mo-gz-sx1,1) + (var(--mo-gz-sx2,1) - var(--mo-gz-sx1,1))*var(--mo-sel));--mo-gz-sy:calc(var(--mo-gz-sy1,1) + (var(--mo-gz-sy2,1) - var(--mo-gz-sy1,1))*var(--mo-sel));--mo-gz-t:calc(var(--mo-gz-t1,0) + (var(--mo-gz-t2,0) - var(--mo-gz-t1,0))*var(--mo-sel));translate:calc((var(--mo-edx)*var(--mo-wrap,1) + var(--mo-gz-dx))*1px)calc((var(--mo-edy) + var(--mo-edy2)*var(--mo-ph) + var(--mo-gz-dy))*1px);rotate:calc(( var(--mo-t)*var(--mo-wrap,1) - var(--mo-lean,0)*var(--mo-lock) + var(--mo-gz-t))*1deg);transform:rotate(calc(var(--mo-lean,0)*1deg))scaleX(calc(var(--mo-x)*var(--mo-gz-sx)))scaleY(calc(var(--mo-y)*var(--mo-gz-sy)))rotate(calc(var(--mo-lean,0)*-1deg))}svg:has(>.mo-root){--mo-look-seed-x:var(--mo-look-x,1.4);--mo-look-seed-y:var(--mo-look-y,1.1);--mo-look-seed-mx:var(--mo-look-mx,1.4);--mo-look-seed-my:var(--mo-look-my,1.1)}.mo-root{--mo-look-x:calc(var(--mo-look-seed-x,1.4)*(1 - var(--mo-track-hold)));--mo-look-y:calc(var(--mo-look-seed-y,1.1)*(1 - var(--mo-track-hold)));--mo-look-mx:calc(var(--mo-look-seed-mx,1.4)*(1 - var(--mo-track-hold)));--mo-look-my:calc(var(--mo-look-seed-my,1.1)*(1 - var(--mo-track-hold)))}@property --mo-amp{syntax:"<number>";inherits:true;initial-value:0}@property --mo-esx{syntax:"<number>";inherits:true;initial-value:1}@property --mo-esy{syntax:"<number>";inherits:true;initial-value:1}@property --mo-tilt{syntax:"<number>";inherits:true;initial-value:0}@property --mo-edy{syntax:"<number>";inherits:true;initial-value:0}@property --mo-edx{syntax:"<number>";inherits:true;initial-value:0}@property --mo-esx2{syntax:"<number>";inherits:true;initial-value:0}@property --mo-esy2{syntax:"<number>";inherits:true;initial-value:0}@property --mo-tilt2{syntax:"<number>";inherits:true;initial-value:0}@property --mo-edy2{syntax:"<number>";inherits:true;initial-value:0}@property --mo-lock{syntax:"<number>";inherits:true;initial-value:0}@property --mo-shake{syntax:"<number>";inherits:true;initial-value:0}@property --mo-rock{syntax:"<number>";inherits:true;initial-value:0}@property --mo-rockp{syntax:"<number>";inherits:true;initial-value:1}@property --mo-bdy{syntax:"<number>";inherits:true;initial-value:0}.mo-root,.mo-breathe,.mo-bob{transform-box:view-box;transform-origin:50%}.mo-root{--mo-amp:0;--mo-morph:calc(.4s*var(--mo-rate,1));--mo-morph-ease:ease-in-out;--mo-tp:--mo-esx,--mo-esy,--mo-tilt,--mo-edy,--mo-edx,--mo-esx2,--mo-esy2,--mo-tilt2,--mo-edy2,--mo-lock,--mo-shake,--mo-rock,--mo-bdy;--mo-md:var(--mo-morph),var(--mo-morph),var(--mo-morph),var(--mo-morph),var(--mo-morph),var(--mo-morph),var(--mo-morph),var(--mo-morph),var(--mo-morph),var(--mo-morph),var(--mo-morph),var(--mo-morph),var(--mo-morph);--mo-me:var(--mo-morph-ease),var(--mo-morph-ease),var(--mo-morph-ease),var(--mo-morph-ease),var(--mo-morph-ease),var(--mo-morph-ease),var(--mo-morph-ease),var(--mo-morph-ease),var(--mo-morph-ease),var(--mo-morph-ease),var(--mo-morph-ease),var(--mo-morph-ease),var(--mo-morph-ease);transition-property:--mo-amp,transform,var(--mo-tp);transition-duration:calc(.4s*var(--mo-rate,1)),calc(.16s*var(--mo-rate,1)),var(--mo-md);transition-timing-function:ease-out,cubic-bezier(.23,1,.32,1),var(--mo-me);animation:mo-shake calc(.112s*var(--mo-rate,1))linear infinite}.mo-bob>g:not(.mo-eyes){fill:var(--mo-head);transition:fill var(--mo-morph)var(--mo-morph-ease)}.mo-eyes{fill:var(--mo-eye);transition:fill var(--mo-morph)var(--mo-morph-ease)}@keyframes mo-shake{0%,to{translate:calc(.62px*var(--mo-shake))calc(-.34px*var(--mo-shake))}25%{translate:calc(-.7px*var(--mo-shake))calc(.22px*var(--mo-shake))}50%{translate:calc(.38px*var(--mo-shake))calc(.66px*var(--mo-shake))}75%{translate:calc(-.44px*var(--mo-shake))calc(-.6px*var(--mo-shake))}}.mo-root.mo-expr{--mo-morph:calc(.3s*var(--mo-rate,1));--mo-morph-ease:cubic-bezier(.45,.05,.5,1)}.mo-root:hover{--mo-amp:1;transition-duration:calc(.4s*var(--mo-rate,1)),calc(.22s*var(--mo-rate,1)),var(--mo-md);transform:translateY(-1.5px)scale(1.04)}.mo-root.mo-always{--mo-amp:1}.mo-breathe{animation-name:mo-breathe;animation-duration:calc(2.8s*var(--mo-rate,1));animation-delay:calc(var(--mo-phase,0s)*var(--mo-rate,1));animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate}@keyframes mo-breathe{to{transform:scaleX(calc(1 + .022*var(--mo-amp)))scaleY(calc(1 - .018*var(--mo-amp)))}}.mo-bob{translate:0 calc(var(--mo-bdy)*1px);animation-name:mo-bob;animation-duration:calc(3.4s*var(--mo-rate,1));animation-delay:calc(var(--mo-bob-phase,0s)*var(--mo-rate,1));animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate}@keyframes mo-bob{0%{transform:translateY(0)}to{transform:translateY(calc(-1.1px*var(--mo-amp)))}}.mo-eye{transform-box:view-box;--mo-sel:calc((var(--mo-wrap,1) + 1)/2);--mo-x:calc(var(--mo-esx) + var(--mo-esx2)*var(--mo-sel));--mo-y:calc(var(--mo-esy) + var(--mo-esy2)*var(--mo-sel));--mo-t:calc(var(--mo-tilt) + var(--mo-tilt2)*var(--mo-sel));--mo-ph:calc(var(--mo-sel)*(1 - var(--mo-rock)) + var(--mo-rock)*((1 + var(--mo-wrap,1)*var(--mo-rockp))/2));translate:calc(var(--mo-edx)*var(--mo-wrap,1)*1px)calc((var(--mo-edy) + var(--mo-edy2)*var(--mo-ph))*1px);rotate:calc((var(--mo-t)*var(--mo-wrap,1) - var(--mo-lean,0)*var(--mo-lock))*1deg);transform:rotate(calc(var(--mo-lean,0)*1deg))scaleX(var(--mo-x))scaleY(var(--mo-y))rotate(calc(var(--mo-lean,0)*-1deg));animation-name:mo-rock;animation-duration:calc(.9s*var(--mo-rate,1));animation-timing-function:ease-in-out;animation-iteration-count:infinite}@container style(--mo-rock:0){.mo-eye{animation-name:none}}@keyframes mo-rock{0%,to{--mo-rockp:1}50%{--mo-rockp:-1}}.mo-eye>*{transform-box:fill-box;transform-origin:50%;animation-name:mo-blink,mo-wrap;animation-duration:calc(var(--mo-blink,4.8s)*var(--mo-rate,1)),calc(var(--mo-saccade,5.6s)*var(--mo-rate,1));animation-delay:calc(var(--mo-blink-phase,0s)*var(--mo-rate,1)),calc(var(--mo-saccade-phase,0s)*var(--mo-rate,1));animation-timing-function:linear;animation-iteration-count:infinite}@keyframes mo-blink{0%,97.2%{transform:rotate(calc(var(--mo-lean,0)*1deg))scaleY(1)rotate(calc(var(--mo-lean,0)*-1deg));animation-timing-function:ease-in}98.6%{transform:rotate(calc(var(--mo-lean,0)*1deg))scaleY(calc(1 - .92*var(--mo-amp)))rotate(calc(var(--mo-lean,0)*-1deg));animation-timing-function:ease-out}to{transform:rotate(calc(var(--mo-lean,0)*1deg))scaleY(1)rotate(calc(var(--mo-lean,0)*-1deg))}}.mo-eyes{animation-name:mo-saccade;animation-duration:calc(var(--mo-saccade,5.6s)*var(--mo-rate,1));animation-delay:calc(var(--mo-saccade-phase,0s)*var(--mo-rate,1));animation-timing-function:linear;animation-iteration-count:infinite}@keyframes mo-saccade{0%,15%{translate:0}16.5%,31%{translate:calc(-.8px*var(--mo-look-x,1.4)*var(--mo-amp))calc(-.9px*var(--mo-look-y,1.1)*var(--mo-amp))}32.5%,47%{translate:calc(1px*var(--mo-look-x,1.4)*var(--mo-amp))calc(.1px*var(--mo-look-y,1.1)*var(--mo-amp))}48.5%,63%{translate:calc(-.15px*var(--mo-look-x,1.4)*var(--mo-amp))calc(.85px*var(--mo-look-y,1.1)*var(--mo-amp))}64.5%,79%{translate:calc(.75px*var(--mo-look-x,1.4)*var(--mo-amp))calc(-.8px*var(--mo-look-y,1.1)*var(--mo-amp))}80.5%,98.5%{translate:calc(-1px*var(--mo-look-x,1.4)*var(--mo-amp))calc(-.15px*var(--mo-look-y,1.1)*var(--mo-amp))}to{translate:0}}@keyframes mo-wrap{0%,15%{rotate:none;scale:1}16.5%,31%{scale:calc(1 - .0176*var(--mo-look-mx,1.4)*var(--mo-amp) + .008*var(--mo-look-x,1.4)*var(--mo-wrap,1)*var(--mo-amp))calc(1 - .027*var(--mo-look-my,1.1)*var(--mo-amp));rotate:calc(.648deg*var(--mo-look-x,1.4)*var(--mo-look-y,1.1)*var(--mo-wrap,1)*var(--mo-amp))}32.5%,47%{scale:calc(1 - .022*var(--mo-look-mx,1.4)*var(--mo-amp) - .01*var(--mo-look-x,1.4)*var(--mo-wrap,1)*var(--mo-amp))calc(1 - .003*var(--mo-look-my,1.1)*var(--mo-amp));rotate:calc(.09deg*var(--mo-look-x,1.4)*var(--mo-look-y,1.1)*var(--mo-wrap,1)*var(--mo-amp))}48.5%,63%{scale:calc(1 - .0033*var(--mo-look-mx,1.4)*var(--mo-amp) + .0015*var(--mo-look-x,1.4)*var(--mo-wrap,1)*var(--mo-amp))calc(1 - .0255*var(--mo-look-my,1.1)*var(--mo-amp));rotate:calc(-.115deg*var(--mo-look-x,1.4)*var(--mo-look-y,1.1)*var(--mo-wrap,1)*var(--mo-amp))}64.5%,79%{scale:calc(1 - .0165*var(--mo-look-mx,1.4)*var(--mo-amp) - .0075*var(--mo-look-x,1.4)*var(--mo-wrap,1)*var(--mo-amp))calc(1 - .024*var(--mo-look-my,1.1)*var(--mo-amp));rotate:calc(-.54deg*var(--mo-look-x,1.4)*var(--mo-look-y,1.1)*var(--mo-wrap,1)*var(--mo-amp))}80.5%,98.5%{scale:calc(1 - .022*var(--mo-look-mx,1.4)*var(--mo-amp) + .01*var(--mo-look-x,1.4)*var(--mo-wrap,1)*var(--mo-amp))calc(1 - .0045*var(--mo-look-my,1.1)*var(--mo-amp));rotate:calc(.135deg*var(--mo-look-x,1.4)*var(--mo-look-y,1.1)*var(--mo-wrap,1)*var(--mo-amp))}to{rotate:none;scale:1}}@media not ((hover:hover) and (pointer:fine)){.mo-root:hover{--mo-amp:0;transform:none}.mo-root.mo-always{--mo-amp:1}.mo-root:not(.mo-always),.mo-root:not(.mo-always) *{animation-play-state:paused}.mo-root.mo-expr:not(.mo-always) .mo-eye{animation-play-state:running}}.mo-slow{--mo-rate:5}@media (prefers-reduced-motion:reduce){.mo-root,.mo-breathe,.mo-bob,.mo-eyes,.mo-eye,.mo-eye>*{transition:none;animation:none}.mo-bob>g:not(.mo-eyes){transition:none}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--background:#fcfcfa;--text-primary:#191918;--text-secondary:#6f6b65;--text-tertiary:#77736e;--border:#e7e7e2;--color-accent:#9b5a3c;--color-accent-hover:#7d432c;--color-accent-subtle:#9b5a3c24;--font-sans:"IBM Plex Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--container:720px;--article:640px;--design-intro-body-width:584px;--design-body-size:16px;--design-body-leading:1.6;--design-intro-headline-size:28px;--design-intro-headline-leading:1.27;--design-intro-body-size:16px;--design-intro-body-leading:1.58;--design-section-label-size:14px;--design-section-label-tracking:.08em;--design-entry-title-size:16px;--design-description-size:15px;--design-description-leading:1.5;--design-header-intro-gap:52px;--design-headline-body-gap:14px;--design-heading-content-gap:12px;--design-list-gap:14px;--design-entry-internal-gap:4px;--design-metadata-link-gap:12px;--shell-inline-padding:24px;--shell-block-padding:56px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:40px;--space-8:52px;--space-9:64px;--section-gap:40px;--motion-preference:no-preference}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}*{box-sizing:border-box;box-shadow:none;border-radius:0}html{background:var(--background);color:var(--text-primary);scroll-behavior:auto}body{--font-sans:var(--design-lab-primary-font,"IBM Plex Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);--font-mono:var(--design-lab-mono-font,"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace);background:var(--background);min-height:100%;color:var(--text-primary);font-family:var(--font-sans);font-size:var(--design-body-size);line-height:var(--design-body-leading);overflow-wrap:anywhere;margin:0}.preview-banner{justify-content:center;align-items:center;gap:var(--space-4);padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--border);font-family:var(--font-mono);font-size:13px;display:flex}.preview-banner form{margin:0}.preview-banner button{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;border-bottom:1px solid;padding:0}.preview-banner button:focus-visible{outline:2px solid var(--color-accent);outline-offset:4px}a{color:inherit;text-underline-offset:.18em;text-decoration-color:#0000;text-decoration-thickness:1px;transition:color .15s,text-decoration-color .15s}a:hover{-webkit-text-decoration-color:var(--color-accent);text-decoration-color:var(--color-accent)}a:focus-visible{outline:2px solid var(--color-accent);outline-offset:4px}ul,ol,dl,p,h1,h2,h3{margin-block:0}ul,ol{padding:0}.site-shell,.detail-page{width:100%;max-width:var(--container);padding:var(--shell-block-padding) var(--shell-inline-padding);margin-inline:auto}.design-lab-preview{--font-mono:var(--design-lab-mono-font,"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace);font-family:var(--design-lab-primary-font,var(--font-sans));font-size:var(--design-body-size);line-height:var(--design-body-leading)}.design-lab-primary-space-grotesk{--design-lab-primary-font:"Space Grotesk Variable", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}.design-lab-mono-system{--design-lab-mono-font:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace}.skip-link{top:var(--space-4);left:var(--space-4);z-index:10;padding:var(--space-2) var(--space-3);background:var(--text-primary);color:var(--background);position:fixed;transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}.site-header{justify-content:space-between;align-items:baseline;gap:var(--space-5);display:flex}.site-wordmark{align-items:baseline;gap:var(--space-4);min-width:0;display:flex}.site-title{flex:none;font-size:15px;font-weight:600;line-height:1.3;text-decoration:none}.rotating-phrase{width:174px;color:var(--text-tertiary);opacity:1;font-size:13px;line-height:1.5;transition:opacity .21s,transform .21s;display:none;transform:translateY(0)}.rotating-phrase[data-visible=false]{opacity:0;transform:translateY(4px)}.page-transition{animation:.19s ease-out backwards page-enter}@keyframes page-enter{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.header-links,.footer-links{gap:var(--space-4);flex-wrap:wrap;list-style:none;display:flex}.header-links{font-size:14px;line-height:1.5}.introduction{margin-top:var(--design-header-intro-gap)}.liveness-rail{--home-entity-size:clamp(88px, 7vw, 112px);top:calc(var(--shell-block-padding) + var(--space-9) + var(--space-6));width:100%;max-width:var(--container);pointer-events:none;position:fixed;left:50%;transform:translate(-50%)}.liveness-rail-content{left:calc(100% - var(--shell-inline-padding) + clamp(32px, 4vw, 56px));width:var(--home-entity-size);align-items:center;gap:var(--space-6);flex-direction:column;display:flex;position:absolute}.home-entity{width:var(--home-entity-size);height:var(--home-entity-size);pointer-events:auto;display:block}.introduction h1{max-width:var(--article);font-size:var(--design-intro-headline-size);font-weight:500;line-height:var(--design-intro-headline-leading);letter-spacing:-.02em}.detail-header h1{max-width:var(--article);letter-spacing:-.02em;font-size:30px;font-weight:500;line-height:1.28}.introduction-body{max-width:var(--design-intro-body-width);margin-top:var(--design-headline-body-gap);color:var(--text-secondary);font-size:var(--design-intro-body-size);line-height:var(--design-intro-body-leading)}.introduction-body>*+*,.section-description+.now-list{margin-top:var(--space-4)}.section-description,.section-prose{color:var(--text-secondary)}.content-section,.now-section{margin-top:var(--section-gap)}.section-heading{font-family:var(--font-mono);font-size:var(--design-section-label-size);letter-spacing:var(--design-section-label-tracking);text-transform:uppercase;font-weight:600;line-height:1.4}.section-body,.footer-body{margin-top:var(--design-heading-content-gap)}.now-list{gap:var(--space-2);display:grid}.now-row{align-items:baseline;gap:var(--space-4);grid-template-columns:112px minmax(0,1fr);display:grid}.now-row dt,.section-meta,.item-meta,.dated-list time,.notes-list time,.detail-meta,.eyebrow{color:var(--text-tertiary);font-family:var(--font-mono);font-size:13px;line-height:1.5}.now-row dd{margin:0}.section-meta{margin-top:var(--design-metadata-link-gap)}.project-list,.research-list,.dated-list,.notes-list,.related ul{gap:var(--design-list-gap);list-style:none;display:grid}.project-list li,.research-list li{gap:var(--design-entry-internal-gap);display:grid}.item-heading{align-items:baseline;gap:var(--space-5);grid-template-columns:minmax(0,1fr) auto;min-width:0;text-decoration:none;display:grid}:is(.item-heading:hover .item-title,.item-heading:focus-visible .item-title){text-decoration:underline;-webkit-text-decoration-color:var(--color-accent);text-decoration-color:var(--color-accent);text-underline-offset:.18em;text-decoration-thickness:1px}.row-arrow{color:var(--text-tertiary);transition:color .15s,transform .15s}:is(.item-heading:hover .row-arrow,.item-heading:focus-visible .row-arrow){color:var(--color-accent);transform:translate(2px)}.project-meta{gap:var(--space-2);flex-wrap:wrap;display:flex}.project-status.is-ongoing{color:var(--color-accent)}.project-meta a{text-decoration-color:currentColor}.item-title{color:var(--text-primary);font-size:var(--design-entry-title-size);font-weight:600;line-height:1.45}.item-summary{color:var(--text-secondary);font-size:var(--design-description-size);font-weight:400;line-height:var(--design-description-leading)}.item-meta{margin-top:0}.more-link{margin-top:var(--design-metadata-link-gap);display:inline-block}.dated-list a{align-items:baseline;gap:var(--space-5);grid-template-columns:minmax(0,1fr) auto;text-decoration:none;display:grid}.dated-list a:hover .item-title,.notes-list a:hover span{text-decoration:underline;-webkit-text-decoration-color:var(--color-accent);text-decoration-color:var(--color-accent);text-underline-offset:.18em}.dated-list a:focus-visible .item-title{text-decoration:underline;-webkit-text-decoration-color:var(--color-accent);text-decoration-color:var(--color-accent);text-underline-offset:.18em}.notes-list a:focus-visible span{text-decoration:underline;-webkit-text-decoration-color:var(--color-accent);text-decoration-color:var(--color-accent);text-underline-offset:.18em}.notes-list{gap:var(--space-2)}.notes-list a{align-items:baseline;gap:var(--space-4);grid-template-columns:112px minmax(0,1fr);text-decoration:none;display:grid}.prose{max-width:var(--article)}.prose>*+*{margin-top:16px}.prose ul,.prose ol{padding-left:var(--space-5)}.prose blockquote{padding-left:var(--space-4);border-left:1px solid var(--border);color:var(--text-secondary);margin-inline:0}.prose figure{margin-inline:0}.prose figcaption,.prose caption{color:var(--text-tertiary);font-family:var(--font-mono);text-align:left;font-size:13px;line-height:1.5}.prose img{width:auto;height:auto;display:block}.code-block pre{margin:var(--space-2) 0 0;padding:var(--space-4) 0;border-block:1px solid var(--border);white-space:pre}.table-scroll{max-width:100%;overflow-x:auto}.prose table{width:100%}.prose th,.prose td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border);text-align:left;vertical-align:top}.empty-state h1{font-size:21px;line-height:1.3}.empty-state p{margin-top:var(--space-5);color:var(--text-secondary)}.error-actions{gap:var(--space-5);margin-top:var(--space-5);display:flex}.error-actions button{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;border-bottom:1px solid;padding:0}.error-actions button:focus-visible{outline:2px solid var(--color-accent);outline-offset:4px}.site-footer{margin-top:var(--section-gap);font-size:14px;line-height:1.5}.footer-body{gap:20px;display:grid}.back-link{font-size:14px}.detail-header{max-width:var(--article);margin-top:var(--section-gap)}.detail-header h1{margin-top:var(--space-2)}.detail-meta{margin-top:var(--space-4)}.article-prose{margin-top:40px}.article-prose h2{margin-top:40px;font-size:19px;line-height:1.3}.article-prose h3{margin-top:var(--space-6);font-size:17px;line-height:1.45}.article-prose pre,.article-prose code{font-family:var(--font-mono)}.article-prose pre{max-width:100%;overflow-x:auto}.article-prose img,.article-prose table{max-width:100%}.article-prose table{border-collapse:collapse;display:block;overflow-x:auto}.related{margin-top:var(--section-gap)}.related ul{margin-top:var(--space-5);gap:var(--space-3)}.detail-back{margin-top:var(--section-gap);display:inline-block}.standfirst{color:var(--text-secondary);font-size:18px;line-height:1.6}.project-links{gap:var(--space-4);flex-wrap:wrap;display:flex}.source-list,.change-log{padding-left:var(--space-5)}.change-log li{padding-left:var(--space-2)}.change-log time{color:var(--text-tertiary);font-family:var(--font-mono);font-size:13px;display:block}.archive-page{width:100%;max-width:var(--container);padding:var(--shell-block-padding) var(--shell-inline-padding);margin-inline:auto}.archive-header{margin-top:var(--section-gap)}.archive-header h1{padding-bottom:var(--space-2);border-bottom:1px solid var(--border);letter-spacing:-.02em;font-size:30px;font-weight:500;line-height:1.28}.archive-header p{margin-top:var(--space-4);color:var(--text-secondary)}.archive-list{gap:24px;margin-top:40px;list-style:none;display:grid}.archive-list a{gap:var(--space-5);grid-template-columns:minmax(0,1fr) auto;text-decoration:none;display:grid}.archive-list a>span:first-child{display:grid}.archive-list a>span:first-child>span{color:var(--text-secondary)}.archive-list strong{font-size:17px;font-weight:600}:is(.archive-list a:hover strong,.archive-list a:focus-visible strong){text-underline-offset:.18em;text-decoration:underline}.archive-meta{color:var(--text-tertiary);font-family:var(--font-mono);text-align:right;font-size:13px;line-height:1.5}.archive-notes,.empty-message{margin-top:40px}.about-work{max-width:var(--article);margin-top:var(--section-gap)}.about-work h2{padding-bottom:var(--space-2);border-bottom:1px solid var(--border);font-size:19px;font-weight:600;line-height:1.3}.about-work-list{gap:17px;margin-top:16px;list-style:none;display:grid}.about-work-list a{gap:var(--space-1);text-decoration:none;display:grid}:is(.about-work-list a:hover .item-title,.about-work-list a:focus-visible .item-title){text-decoration:underline;-webkit-text-decoration-color:var(--color-accent);text-decoration-color:var(--color-accent);text-underline-offset:.18em}.about-work-heading{justify-content:space-between;align-items:baseline;gap:var(--space-5);display:flex}@media (prefers-color-scheme:dark){:root{--background:#161615;--text-primary:#ecece8;--text-secondary:#a6a39d;--text-tertiary:#85817b;--border:#343431;--color-accent:#d08a68;--color-accent-hover:#e19a77;--color-accent-subtle:#d08a6829}}@media (min-width:760px){.rotating-phrase{display:inline-block}}@media (max-width:1100px){.liveness-rail{display:none}}@media (max-width:640px){body{font-size:17px}.design-lab-preview{font-size:17px;line-height:1.6}.site-shell,.detail-page,.archive-page{padding:var(--space-7) 20px}.site-header{align-items:flex-start;gap:var(--space-4);flex-direction:column}.introduction{margin-top:48px}.introduction-body{margin-top:var(--space-4);font-size:17px;line-height:1.6}.introduction h1,.detail-header h1{font-size:28px;line-height:1.28}.content-section,.site-footer,.now-section{margin-top:44px}.section-body,.footer-body{margin-top:14px}.now-list{gap:var(--space-4)}.now-row,.dated-list a,.notes-list a{gap:var(--space-1);grid-template-columns:minmax(0,1fr)}.notes-list,.project-list,.research-list,.dated-list{gap:var(--space-4)}.project-list li,.research-list li{gap:5px}.item-title{font-size:17px}.section-meta,.more-link{margin-top:14px}.notes-list a span{grid-row:1}.notes-list a time{grid-row:2}.about-work-heading{align-items:start;gap:var(--space-1);flex-direction:column}.archive-list a{gap:var(--space-2);grid-template-columns:minmax(0,1fr)}.archive-meta{text-align:left}}@media (prefers-reduced-motion:reduce){:root{--motion-preference:reduce}a{transition:none}.page-transition{animation:none}.rotating-phrase,.row-arrow{transition:none}}
