@font-face{font-family:Bradford Trial;src:url(/fonts/BradfordLLTrialWeb-Book.woff2)format("woff2");font-style:normal;font-weight:300;font-display:swap}@font-face{font-family:Bradford Trial;src:url(/fonts/BradfordLLTrialWeb-BookItalic.woff2)format("woff2");font-style:italic;font-weight:300;font-display:swap}@font-face{font-family:Bradford Trial;src:url(/fonts/BradfordLLTrialWeb-Regular.woff2)format("woff2");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:Bradford Trial;src:url(/fonts/BradfordLLTrialWeb-Italic.woff2)format("woff2");font-style:italic;font-weight:400;font-display:swap}:root{--v3-color-text:#111;--v3-color-text-muted:#0006;--v3-color-bg:#fff;--v3-color-border:#f2f2f2;--v3-color-border-strong:#ededed;--v3-color-link-underline:#d9d9d9;--v3-color-link-underline-hover:#666;--v3-color-accent:#fb64b6;--v3-color-accent-border:#fb64b666;--v3-font-family:inherit;--v3-font-family-display:inherit;--v3-font-size-title:1.125rem;--v3-font-size-base:.9375rem;--v3-font-size-sm:.8125rem;--v3-font-weight-normal:460;--v3-font-weight-medium:500;--v3-line-height-base:1.25rem;--v3-tracking-base:0;--v3-tracking-sm:0;--v3-space-paragraph:1rem;--v3-space-section:3rem;--v3-space-header-gap:.25rem;--v3-space-post-row-y:.735rem;--v3-space-post-indent:6.75rem;--v3-max-width:36.375rem;--v3-padding-x:1rem;--v3-padding-top:5rem;--v3-padding-bottom:2.5rem;--v3-toc-width:9rem;--v3-toc-gap:3rem;--v3-divider-width:3.125rem;--v3-divider-spacing:2.375rem;--v3-duration-fast:.15s;--v3-duration-base:.2s;--v3-duration-stagger-step:50ms;--v3-duration-entrance:.5s;--v3-entrance-offset:8px;--v3-ease-default:ease;--v3-ease-out:cubic-bezier(.19,1,.22,1);--v3-focus-color:#007aff80}@supports (color:lab(0% 0 0)){:root{--v3-color-accent:lab(64.5597% 64.3615 -12.7988);--v3-color-accent-border:lab(64.5597% 64.3615 -12.7988/.4)}}.portfolio-fonts{--v3-font-family:var(--font-circular-std),Arial,sans-serif;--v3-font-family-display:"Bradford Trial",Georgia,serif;--v3-font-weight-normal:400;font-family:var(--v3-font-family)}@media screen and (max-width:640px){:root{--v3-padding-x:1.5rem;--v3-padding-top:2rem;--v3-space-post-indent:3rem}}.dark{--v3-color-text:#e8e8e8;--v3-color-text-muted:#e8e8e873;--v3-color-bg:#0d0d0d;--v3-color-border:#1f1f1f;--v3-color-border-strong:#2e2e2e;--v3-color-link-underline:#3d3d3d;--v3-color-link-underline-hover:#a4a4a4;--v3-color-accent:#fb7cbd;--v3-color-accent-border:#fb7cbd73;--v3-focus-color:#4ea9ffb3}@supports (color:lab(0% 0 0)){.dark{--v3-color-text:lab(91.88% .0000298023 -.0000119209);--v3-color-text-muted:lab(91.88% .0000298023 -.0000119209/.45);--v3-color-bg:lab(3.6999% 0 0);--v3-color-border:lab(11.84% 0 0);--v3-color-border-strong:lab(18.8% 0 0);--v3-color-link-underline:lab(25.76% -.0000149012 0);--v3-color-link-underline-hover:lab(67.52% -.0000298023 0);--v3-color-accent:lab(68.711% 54.5814 -10.8031);--v3-color-accent-border:lab(68.711% 54.5814 -10.8031/.45);--v3-focus-color:lab(66.8198% -6.42365 -53.9665/.7)}}
@keyframes v3-stagger-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.v3-page{max-width:var(--v3-max-width);padding:var(--v3-padding-top)var(--v3-padding-x)var(--v3-padding-bottom);font-family:var(--v3-font-family);font-size:var(--v3-font-size-base);font-weight:var(--v3-font-weight-normal);line-height:var(--v3-line-height-base);letter-spacing:var(--v3-tracking-base);color:var(--v3-color-text);margin:0 auto}.v3-page h1,.v3-page h2,.v3-page h3{font-family:var(--v3-font-family-display)}.v3-page:before{content:"";pointer-events:none;z-index:9;background:linear-gradient(180deg,var(--v3-color-bg)0%,#ffffffbc 19%,#ffffff8a 34%,#ffffff61 47%,#ffffff47 56.5%,#ffffff31 65%,#ffffff20 73%,#ffffff13 80.2%,#ffffff0b 86.1%,#ffffff05 91%,#ffffff02 95.2%,#ffffff01 98.2%,#fff0 100%);height:8rem;position:fixed;top:0;left:0;right:0}@media screen and (max-width:640px){.v3-page:before{height:2.5rem}}.v3-page>.v3-article>*{animation:v3-stagger-in var(--v3-duration-entrance)var(--v3-ease-default)both}.v3-page>.v3-article>:first-child{animation-delay:0s}.v3-page>.v3-article>:nth-child(2){animation-delay:calc(var(--v3-duration-stagger-step)*1)}.v3-page>.v3-article>:nth-child(3){animation-delay:calc(var(--v3-duration-stagger-step)*2)}.v3-page>.v3-article>:nth-child(4){animation-delay:calc(var(--v3-duration-stagger-step)*3)}.v3-page>.v3-article>:nth-child(5){animation-delay:calc(var(--v3-duration-stagger-step)*4)}.v3-page>.v3-article>:nth-child(6){animation-delay:calc(var(--v3-duration-stagger-step)*5)}.v3-page>.v3-article>:nth-child(7){animation-delay:calc(var(--v3-duration-stagger-step)*6)}.v3-page>.v3-article>:nth-child(8){animation-delay:calc(var(--v3-duration-stagger-step)*7)}.v3-page>.v3-article>:nth-child(n+9){animation-delay:calc(var(--v3-duration-stagger-step)*8)}.v3-page>.v3-header,.v3-page>.v3-post-toc{animation:v3-stagger-in var(--v3-duration-entrance)var(--v3-ease-default)both;animation-delay:0s}.v3-page>section,.v3-page>.v3-post-nav{animation:v3-stagger-in var(--v3-duration-entrance)var(--v3-ease-default)both;animation-delay:calc(var(--v3-duration-stagger-step)*9)}.v3-page>section:nth-of-type(2){animation-delay:calc(var(--v3-duration-stagger-step)*10)}.v3-page>footer{animation:v3-stagger-in var(--v3-duration-entrance)var(--v3-ease-default)both;animation-delay:calc(var(--v3-duration-stagger-step)*11)}
.v3-font-switcher{pointer-events:none;z-index:99999;-webkit-user-select:none;user-select:none;position:fixed;bottom:1.25rem;left:1.25rem}.v3-font-switcher-inner{pointer-events:auto;position:relative}.v3-font-switcher-button{color:#ffffffd9;cursor:grab;width:2.75rem;height:2.75rem;transition:background-color var(--v3-duration-fast)var(--v3-ease-out),color var(--v3-duration-fast)var(--v3-ease-out),transform var(--v3-duration-fast)var(--v3-ease-out);background:#1a1a1a;border:none;border-radius:1.375rem;justify-content:center;align-items:center;display:inline-flex;position:relative;box-shadow:0 2px 8px #0003,0 4px 16px #0000001a}.v3-font-switcher-button:hover{color:#fff;background:#2a2a2a}.v3-font-switcher-button:active{transform:scale(.95)}.v3-font-switcher-button--dragging{cursor:grabbing}.v3-font-switcher-icon{width:1.25rem;height:1.25rem}.v3-font-switcher-tooltip{white-space:nowrap;font-size:.75rem;font-weight:var(--v3-font-weight-medium);color:#fff;opacity:0;pointer-events:none;transition:opacity var(--v3-duration-fast)var(--v3-ease-out);background:#1a1a1a;border-radius:.5rem;padding:.375rem .625rem;position:absolute;top:50%;left:calc(100% + .625rem);transform:translateY(-50%)}.v3-font-switcher-inner:hover .v3-font-switcher-tooltip{opacity:1}.v3-font-switcher-tooltip-value{color:#fff9}.v3-inline-link{color:inherit;font-weight:inherit;line-height:inherit;transition:all var(--v3-duration-base)var(--v3-ease-default);display:inline;position:relative}.v3-inline-link:before{pointer-events:none;content:"";background:var(--v3-color-link-underline);opacity:1;border-radius:2px;height:1px;transition:inherit;position:absolute;bottom:0;left:0;right:0}.v3-inline-link:hover:before{background:var(--v3-color-link-underline-hover)}.v3-inline-link:focus-visible{outline:2px solid var(--v3-focus-color);border-radius:2px;margin:0 -2px;padding:0 2px;transition:none}.v3-header{gap:var(--v3-space-header-gap);flex-direction:column;padding-bottom:.5rem;display:flex}.v3-header-title{font-size:var(--v3-font-size-title);font-weight:var(--v3-font-weight-medium);line-height:var(--v3-line-height-base);letter-spacing:var(--v3-tracking-base);color:var(--v3-color-text)}.v3-header-time{font-size:var(--v3-font-size-base);font-weight:var(--v3-font-weight-normal);line-height:var(--v3-line-height-base);letter-spacing:var(--v3-tracking-base);color:var(--v3-color-text-muted)}.v3-article>p{padding-top:var(--v3-space-paragraph)}.v3-post-list{padding-top:var(--v3-space-section)}.v3-post-list-title{font-size:var(--v3-font-size-base);font-weight:var(--v3-font-weight-normal);letter-spacing:var(--v3-tracking-base);color:var(--v3-color-text-muted);border-bottom:1px solid var(--v3-color-border);padding-bottom:.5rem}.v3-post-list-items{flex-direction:column;list-style:none;display:flex}.v3-post-year-group{border-bottom:1px solid var(--v3-color-border)}.v3-post-year-group:last-child{border-bottom:none}.v3-post-year-group-items{flex-direction:column;list-style:none;display:flex}.v3-post-row{padding:var(--v3-space-post-row-y)0 var(--v3-space-post-row-y)var(--v3-space-post-indent);justify-content:space-between;align-items:center;gap:1rem;display:flex;position:relative}.v3-post-row-year{color:var(--v3-color-text-muted);font-size:var(--v3-font-size-base);font-weight:var(--v3-font-weight-normal);letter-spacing:var(--v3-tracking-base);font-variant-numeric:tabular-nums;position:absolute;left:0}.v3-post-row-title{color:var(--v3-color-text);font-size:var(--v3-font-size-base);font-weight:var(--v3-font-weight-normal);letter-spacing:var(--v3-tracking-base);transition:opacity var(--v3-duration-fast)var(--v3-ease-default);align-items:center;gap:.625rem;display:inline-flex}.v3-post-row-date{color:var(--v3-color-text-muted);font-size:var(--v3-font-size-base);font-weight:var(--v3-font-weight-normal);letter-spacing:var(--v3-tracking-base);font-variant-numeric:tabular-nums;flex-shrink:0}@media (hover:hover){.v3-post-list-items:hover .v3-post-row-title,.v3-post-list-items:hover .v3-post-row-date{opacity:.3}.v3-post-row:hover .v3-post-row-title,.v3-post-row:hover .v3-post-row-date{opacity:1}}.v3-badge{font-variant-numeric:normal;align-items:center;line-height:1;display:inline-flex}.v3-badge--new{font-size:var(--v3-font-size-sm);color:var(--v3-color-accent);border:1px solid var(--v3-color-accent-border);border-radius:9999px;padding:.125rem .375rem}.v3-info-icon{color:#00000040;cursor:default;flex-shrink:0;justify-content:center;align-items:center;width:12px;height:12px;font-size:10px;display:inline-flex;position:relative}.v3-info-icon:hover{color:#0009}.v3-info-tooltip{color:#ffffffd9;white-space:pre;opacity:0;pointer-events:none;z-index:1000;background:#1a1a1a;border-radius:6px;min-width:220px;padding:10px 12px;font-family:ui-monospace,monospace;font-size:10px;line-height:1.7;transition:opacity .15s;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}.v3-info-icon:hover .v3-info-tooltip{opacity:1;pointer-events:auto}.v3-post-toc{display:none}@media (min-width:1100px){.v3-post-toc{top:var(--v3-padding-top);left:calc(50% - var(--v3-max-width)/2 - var(--v3-toc-gap) - var(--v3-toc-width));width:var(--v3-toc-width);display:block;position:fixed}}.v3-post-toc-list{flex-direction:column;gap:.375rem;list-style:none;display:flex}.v3-post-toc-link{font-size:var(--v3-font-size-sm);color:var(--v3-color-text-muted);font-weight:var(--v3-font-weight-normal);transition:color var(--v3-duration-base)var(--v3-ease-default);line-height:1.4;text-decoration:none;display:block}.v3-post-toc-link:hover,.v3-post-toc-link--active{color:var(--v3-color-text)}.v3-post-nav{padding-top:var(--v3-space-section);border-top:1px solid var(--v3-color-border)}.v3-post-nav-inner{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.v3-post-nav-link{color:inherit;transition:opacity var(--v3-duration-fast)var(--v3-ease-default);flex-direction:column;gap:.25rem;text-decoration:none;display:flex}.v3-post-nav-link--next{text-align:right}.v3-post-nav-link:hover{opacity:.5}.v3-post-nav-direction{font-size:var(--v3-font-size-sm);color:var(--v3-color-text-muted);font-weight:var(--v3-font-weight-normal)}.v3-post-nav-title{font-size:var(--v3-font-size-base);font-weight:var(--v3-font-weight-normal)}.v3-post-back{margin-bottom:.5rem}.v3-post-back-link{font-size:var(--v3-font-size-sm);color:var(--v3-color-text-muted);transition:color var(--v3-duration-base)var(--v3-ease-default);text-decoration:none}.v3-post-back-link:hover{color:var(--v3-color-text)}.v3-post-header{margin-bottom:var(--v3-space-section)}.v3-post-title{font-size:var(--v3-font-size-title);font-weight:var(--v3-font-weight-medium);line-height:var(--v3-line-height-base);margin-bottom:var(--v3-space-header-gap)}.v3-post-meta{font-size:var(--v3-font-size-sm);color:var(--v3-color-text-muted);font-weight:var(--v3-font-weight-normal);display:block}.v3-post-h2{font-size:var(--v3-font-size-base);font-weight:var(--v3-font-weight-medium);border-top:1px solid var(--v3-color-border);margin-top:var(--v3-space-section);margin-bottom:var(--v3-space-paragraph);padding-top:1.5rem}.v3-post-h3{font-size:var(--v3-font-size-sm);font-weight:var(--v3-font-weight-medium);margin-top:var(--v3-space-paragraph);margin-bottom:0}.v3-post-blockquote{border-left:2px solid var(--v3-color-border-strong);color:var(--v3-color-text-muted);margin-top:var(--v3-space-paragraph);margin-bottom:var(--v3-space-paragraph);padding-left:1rem}.v3-post-code-inline{background:var(--v3-color-border);border-radius:3px;padding:.1em .3em;font-family:ui-monospace,monospace;font-size:.875em}.v3-post-callout{border-left:2px solid var(--v3-color-accent-border);margin-top:var(--v3-space-paragraph);margin-bottom:var(--v3-space-paragraph);background:color-mix(in oklch,var(--v3-color-accent)4%,transparent);border-radius:0 4px 4px 0;padding:.75rem 1rem}.v3-post-callout[data-tone=warning]{background:#d273000a;background:lab(58.529% 39.7815 97.1755/.04);border-left-color:#d2730099;border-left-color:lab(58.529% 39.7815 97.1755/.6)}.v3-post-callout[data-tone=tip]{background:#31aa400a;background:lab(61.5358% -50.6384 43.17/.04);border-left-color:#31aa4099;border-left-color:lab(61.5358% -50.6384 43.17/.6)}.v3-post-interactive{margin-top:var(--v3-space-section);margin-bottom:var(--v3-space-section)}.v3-post-interactive-caption{font-size:var(--v3-font-size-sm);color:var(--v3-color-text-muted);margin-top:.5rem;display:block}.v3-post-block-missing{border:1px dashed var(--v3-color-accent-border);font-size:var(--v3-font-size-sm);color:var(--v3-color-accent);margin-top:var(--v3-space-paragraph);border-radius:4px;padding:1rem}.v3-post-code-block{margin-top:var(--v3-space-paragraph);margin-bottom:var(--v3-space-paragraph);border:1px solid var(--v3-color-border);border-radius:6px;overflow:hidden}.v3-post-code-filename{font-family:ui-monospace,monospace;font-size:var(--v3-font-size-sm);color:var(--v3-color-text-muted);border-bottom:1px solid var(--v3-color-border);background:var(--v3-color-border);padding:.5rem 1rem;display:block}.v3-post-code-block pre{margin:0;padding:1rem;font-family:ui-monospace,monospace;font-size:.8125rem;line-height:1.65;overflow-x:auto}.v3-post-code-block .shiki,.v3-post-code-block .shiki span{color:var(--shiki-light);background-color:var(--shiki-light-bg)}.dark .v3-post-code-block .shiki,.dark .v3-post-code-block .shiki span{color:var(--shiki-dark);background-color:var(--shiki-dark-bg)}.v3-footer{padding-top:var(--v3-space-section);padding-bottom:var(--v3-padding-bottom)}.v3-footer-divider{width:var(--v3-divider-width);background:var(--v3-color-border-strong);height:1px;margin-bottom:var(--v3-divider-spacing)}.v3-footer-text{color:var(--v3-color-text-muted);font-size:var(--v3-font-size-sm);font-weight:var(--v3-font-weight-normal);letter-spacing:var(--v3-tracking-sm)}
.wc-root{--wc-header-height:80px;--sky-night-share:0%;--sky-surface-night-share:0%;--sky-metadata-night-share:0%;--sun-rim-angle:0deg;--sun-rim-opacity:0;--sun-cast-share:0%;--sun-card-cast-x:0px;--sun-card-cast-y:0px;--sun-button-cast-x:0px;--sun-button-cast-y:0px;--sun-button-cast-blur:8px;--sun-cast-softness:1;--sun-card-ambient-factor:1;--sun-ambient-glint-share:100%;--artifact-grid-base:#f2f2f2;--artifact-grid-hover:#ebebeb;--artifact-grid-active:#e6e6e6;--artifact-grid-interaction:var(--artifact-grid-hover);isolation:isolate;min-height:100dvh;position:relative}@supports (color:light-dark(white, black)){.wc-root{--artifact-grid-base:light-dark(#f2f2f2,#1a1a1a);--artifact-grid-hover:light-dark(#ebebeb,#1f1f1f);--artifact-grid-active:light-dark(#e6e6e6,#292929)}}@supports not (color:light-dark(white, black)){:root[data-portfolio-atmosphere=dark] .wc-root{--artifact-grid-base:#1a1a1a;--artifact-grid-hover:#1f1f1f;--artifact-grid-active:#292929}}.portfolio-sky{--sky-top:#7e9ebe;--sky-haze:#ccd8e5;--sky-horizon:#f5efde;--sky-floor:#fff;z-index:-1;pointer-events:none;background:var(--sky-gradient,linear-gradient(180deg,var(--sky-top)0%,var(--sky-haze)33%,var(--sky-horizon)65%,var(--sky-floor)100%));position:fixed;inset:0;overflow:hidden}.portfolio-sky__canvas{width:100%;height:100%;display:block}:root[data-portfolio-atmosphere=light],:root[data-portfolio-atmosphere=weather]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-portfolio-atmosphere=dark],:root[data-portfolio-atmosphere=weather][data-portfolio-sky-scheme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-portfolio-atmosphere=light] [data-artifact-mockup],:root[data-portfolio-atmosphere=weather] [data-artifact-mockup]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-portfolio-atmosphere=dark] [data-artifact-mockup]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@supports not (color:light-dark(white, black)){:root[data-portfolio-atmosphere=dark] [data-artifact-mockup]{background:#171b22}:root[data-portfolio-atmosphere=dark] [data-artifact-frame=surface] [data-artifact-surface]{box-shadow:inset 0 .12cqi 0 #ffffff21,0 calc(1cqi*var(--sun-card-ambient-factor,1))1.8cqi -.5cqi #00000073,calc(var(--sun-card-cast-x,0px)*.35)calc(var(--sun-card-cast-y,0px)*.35)2cqi -.5cqi color-mix(in srgb,#00000073 var(--sun-cast-share,0%),transparent);background:linear-gradient(145deg,#303742,#171b22);border-color:#cdd7e733}}.portfolio-sky[data-sky-renderer=css]:after{content:"";background:radial-gradient(ellipse 22% 5vw at 34% 6%,var(--sky-cloud-color)5%,transparent 100%),radial-gradient(ellipse 20% 4.375vw at 69% 8%,var(--sky-cloud-color)5%,transparent 100%),radial-gradient(ellipse 18% 5vw at 20% 31%,var(--sky-cloud-color)5%,transparent 100%),radial-gradient(ellipse 22% 5vw at 78% 55%,var(--sky-cloud-color)5%,transparent 100%);opacity:var(--sky-cloud-opacity,0);position:absolute;inset:0}.portfolio-sky{--sky-cloud-color:color-mix(in srgb,#d7def7,#fcc4cc var(--sky-cloud-warmth,0%))}.portfolio-dapple-shade,.portfolio-dapple-layer,.portfolio-weather-layer{pointer-events:none;position:fixed;inset:0;overflow:hidden}.portfolio-dapple-shade{z-index:48;opacity:0;transition:opacity .65s}.portfolio-dapple-shade__leaves{filter:blur(6px);background:#1f2c2430;width:100vw;height:80vh;position:absolute;bottom:0;right:-200px;-webkit-mask:url(/sky-dapple-canopy.svg) 50%/cover no-repeat;mask:url(/sky-dapple-canopy.svg) 50%/cover no-repeat}@property --portfolio-ambience-sun-angle{syntax:"<angle>";inherits:true;initial-value:60deg}@property --portfolio-ambience-blinds-opacity{syntax:"<number>";inherits:true;initial-value:.9}.portfolio-dapple-layer{--portfolio-blind-perspective:.0008;z-index:49;opacity:0;mix-blend-mode:plus-lighter;transition:opacity .65s;animation:linear both portfolio-ambience-scroll-shift;animation-timeline:scroll(root);animation-range:0% 100%}:root[data-portfolio-weather-touch-paused="1"] .portfolio-dapple-layer{animation-play-state:paused}.portfolio-dapple-layer__canopy{opacity:.07;filter:url(#portfolio-leaf-wind)blur(9px);background:url(/sky-dapple-canopy.svg) 50%/cover no-repeat;width:100vw;height:80vh;position:absolute;bottom:0;right:-200px}.portfolio-dapple-layer__filter{width:0;height:0;position:absolute}.portfolio-dapple-layer__blinds{width:100vw;height:130vh;opacity:var(--portfolio-ambience-blinds-opacity);filter:blur(9px);-webkit-mask:linear-gradient(to top right,#000000b3 0%,#0000 100%) no-repeat;-webkit-mask:linear-gradient(to top right,#000 0%,#0000 100%) no-repeat;mask:linear-gradient(to top right,#000 0%,#0000 100%) no-repeat;transform:matrix3d(.75,-.0625,0,var(--portfolio-blind-perspective),0,1,0,0,0,0,1,0,0,0,0,1);transform-origin:100% 0;transform-style:preserve-3d;position:absolute;top:-30vh;right:0;-webkit-mask-size:100% 100%;mask-size:100% 100%}.portfolio-dapple-layer__shutters{background:repeating-linear-gradient(calc(var(--portfolio-ambience-sun-angle,80deg) + 120deg),transparent,transparent 89px,#505050a8 89px,#75757599 167px);width:110%;position:absolute;inset:0;-webkit-mask-image:linear-gradient(to bottom right,#0000,#fff);mask-image:linear-gradient(to bottom right,#0000,#fff)}@keyframes portfolio-ambience-scroll-shift{0%{--portfolio-ambience-sun-angle:60deg;--portfolio-ambience-blinds-opacity:.9}to{--portfolio-ambience-sun-angle:80deg;--portfolio-ambience-blinds-opacity:.3}}@keyframes portfolio-ambience-sway{0%,to{transform:matrix3d(1.35,-.0625,0,var(--portfolio-blind-perspective),0,1,0,0,0,1,0,0,0,0,1)}33%{transform:matrix3d(1.45,-.0625,0,var(--portfolio-blind-perspective),0,1,0,0,0,0,1,0,.002,0,1)translateX(-15px)translateY(8px)}66%{transform:matrix3d(1.45,-.0625,0,var(--portfolio-blind-perspective),0,1,0,0,0,0,1,0,0,-.001,0,1)translateX(12px)translateY(-5px)}}@media (min-width:769px){.portfolio-dapple-layer{--portfolio-blind-perspective:.00028}}@media (min-width:2400px){.portfolio-dapple-layer{--portfolio-blind-perspective:.00014}}@media (min-width:4000px){.portfolio-dapple-layer{--portfolio-blind-perspective:.00008}}@media (prefers-reduced-motion:no-preference){.portfolio-dapple-layer__blinds{animation:11s ease-in-out infinite portfolio-ambience-sway}.portfolio-dapple-layer[data-weather-dapple="0.00"] .portfolio-dapple-layer__blinds{animation-play-state:paused}}@media (max-width:768px){.portfolio-dapple-layer__canopy{opacity:.03}.portfolio-dapple-shade__leaves{background:#1f2c2426}}@-moz-document url-prefix(){.portfolio-dapple-layer__canopy{filter:blur(9px)}}.portfolio-weather-layer{z-index:50}:root[data-portfolio-weather-touch-paused="1"] .portfolio-dapple-shade,:root[data-portfolio-weather-touch-paused="1"] .portfolio-dapple-layer,:root[data-portfolio-weather-touch-paused="1"] .portfolio-weather-layer,:root:not([data-portfolio-atmosphere=weather]) .portfolio-sky,:root:not([data-portfolio-atmosphere=weather]) .portfolio-dapple-shade,:root:not([data-portfolio-atmosphere=weather]) .portfolio-dapple-layer,:root:not([data-portfolio-atmosphere=weather]) .portfolio-weather-layer{visibility:hidden}.portfolio-weather-layer__frame{pointer-events:none;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background:0 0;border:0;width:100%;height:100%;display:block}@media (prefers-reduced-motion:reduce){.portfolio-dapple-shade,.portfolio-dapple-layer,.portfolio-weather-layer{transition:none}.portfolio-dapple-layer,.portfolio-dapple-layer__blinds{animation:none!important}.portfolio-dapple-layer__canopy{filter:blur(9px)}}@media (prefers-contrast:more),(forced-colors:active){.portfolio-dapple-shade,.portfolio-dapple-layer,.portfolio-weather-layer{display:none}}body{overscroll-behavior-x:none;overscroll-behavior-y:auto}.wc-root{--wc-field:var(--v3-color-bg);--portfolio-content-inline-inset:clamp(20px,4vw,64px);--portfolio-control-inline-inset:clamp(20px,4vw,64px)}.wc-root[data-depth="1"]{--wc-cast:1.15;--wc-cast-alpha:.24;--wc-field:#f4f4f4}@supports (color:lab(0% 0 0)){.wc-root[data-depth="1"]{--wc-field:lab(96.056% 0 -.0000119209)}}.wc-root[data-depth="2"]{--wc-cast:1.32;--wc-cast-alpha:.29;--wc-field:#e6e6e6}@supports (color:lab(0% 0 0)){.wc-root[data-depth="2"]{--wc-field:lab(91.416% 0 0)}}.wc-root[data-depth="3"]{--wc-cast:1.52;--wc-cast-alpha:.34;--wc-field:#d7d7d7}@supports (color:lab(0% 0 0)){.wc-root[data-depth="3"]{--wc-field:lab(85.964% -.0000298023 .0000119209)}}.wc-root[data-depth="4"]{--wc-cast:1.74;--wc-cast-alpha:.39;--wc-field:#c5c5c5}@supports (color:lab(0% 0 0)){.wc-root[data-depth="4"]{--wc-field:lab(79.584% -.0000596046 .0000119209)}}:root.dark .wc-root[data-depth="1"]{--wc-cast-alpha:.6;--wc-field:#090909}@supports (color:lab(0% 0 0)){:root.dark .wc-root[data-depth="1"]{--wc-field:lab(2.5864% 0 0)}}:root.dark .wc-root[data-depth="2"]{--wc-cast-alpha:.66;--wc-field:#060606}@supports (color:lab(0% 0 0)){:root.dark .wc-root[data-depth="2"]{--wc-field:lab(1.72225% 0 0)}}:root.dark .wc-root[data-depth="3"]{--wc-cast-alpha:.72;--wc-field:#040404}@supports (color:lab(0% 0 0)){:root.dark .wc-root[data-depth="3"]{--wc-field:lab(1.01609% 0 .00000298023)}}:root.dark .wc-root[data-depth="4"]{--wc-cast-alpha:.79;--wc-field:#020202}@supports (color:lab(0% 0 0)){:root.dark .wc-root[data-depth="4"]{--wc-field:lab(.498049% 0 0)}}.wc-plane{inset:var(--wc-header-height)0 0;z-index:0;overscroll-behavior-x:none;overscroll-behavior-y:auto;background:var(--wc-field,var(--v3-color-bg));transition:background-color .76s cubic-bezier(.16,1,.3,1);position:fixed;overflow:hidden}@media (pointer:coarse){.wc-plane{overflow:hidden auto}.wc-refresh-shim{z-index:0;pointer-events:none;height:101dvh;position:fixed;inset:0}}.wc-plane__grid{position:absolute;inset:0;overflow:hidden}.wc-plane .work-grid-item{pointer-events:none}.wc-card{pointer-events:auto}.wc-plane .work-grid-container{overscroll-behavior-x:none;overscroll-behavior-y:none;touch-action:none;cursor:grab}.wc-plane .work-grid-container.dragging{cursor:grabbing}.wc-hud,.wc-hud *{touch-action:pan-y}.wc-cover{z-index:2;background:color-mix(in oklch,var(--v3-color-bg)74%,transparent);-webkit-backdrop-filter:blur(8px)saturate(1.08);backdrop-filter:blur(8px)saturate(1.08);flex-direction:column;min-height:100dvh;display:flex;position:relative}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.wc-cover{background:var(--v3-color-bg)}}.wc-cover__inner{flex-direction:column;flex:1;min-height:100dvh;display:flex}.wc-root[data-phase=canvas] .wc-cover{pointer-events:none}.wc-scroll-hint{padding-bottom:var(--v3-padding-bottom);font-size:var(--v3-font-size-sm);color:var(--v3-color-text-muted);background:0 0;border:0;flex-direction:column;align-items:center;gap:.25rem;margin-top:auto;display:flex}.wc-scroll-hint--ambient{padding-top:clamp(.875rem,1.8vh,1.5rem)}.wc-scroll-hint--flush{padding-top:0}.wc-scroll-hint--inline{font-size:inherit;line-height:inherit;flex-direction:row;align-items:center;gap:.3125rem;margin:0;padding:0}.wc-scroll-hint--button{cursor:pointer;transition:color var(--v3-duration-base)var(--v3-ease-default)}.wc-scroll-hint--button:hover{color:var(--v3-color-text)}.wc-scroll-hint--button:focus-visible{outline:2px solid var(--v3-focus-color);outline-offset:4px;border-radius:4px}.wc-scroll-hint__label{font-weight:var(--v3-font-weight-medium)}.wc-scroll-hint__chevron{opacity:.5;display:block}.wc-hud{z-index:3;padding:1rem var(--v3-padding-x)1.125rem;pointer-events:none;flex-direction:column;gap:.625rem;display:flex;position:fixed;inset:0 0 auto}.wc-hud:before{z-index:-1;pointer-events:none;content:"";background:var(--v3-color-bg);position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000 calc(100% - 1.75rem),#0000 100%);mask-image:linear-gradient(#000 calc(100% - 1.75rem),#0000 100%)}.wc-hud button,.wc-hud kbd{pointer-events:auto}.wc-hud__row{justify-content:space-between;align-items:center;gap:1rem;display:flex}.wc-hud__back{font-size:var(--v3-font-size-sm);color:var(--v3-color-text-muted);cursor:pointer;transition:color var(--v3-duration-base)var(--v3-ease-default);background:0 0;border:0;align-items:center;gap:.5rem;padding:0;display:inline-flex}.wc-hud__back:hover{color:var(--v3-color-text)}.wc-hud__kbd{border:1px solid var(--v3-color-border-strong);border-radius:4px;padding:.0625rem .3125rem;font-family:ui-monospace,monospace;font-size:.6875rem}.wc-facet{align-items:center;gap:.5rem;min-width:0;display:flex}.wc-facet__label{color:var(--v3-color-text-muted);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;font-size:.6875rem}.wc-facet__options{flex-wrap:wrap;gap:.25rem;display:flex}.wc-hud__count{font-size:var(--v3-font-size-sm);color:var(--v3-color-text-muted)}.wc-segmented{background:var(--v3-color-bg);border:1px solid var(--v3-color-border-strong);border-radius:999px;gap:2px;min-inline-size:0;margin:0;padding:2px;display:inline-flex}.wc-visually-hidden{white-space:nowrap;clip-path:inset(50%);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.wc-segmented__item{font-size:var(--v3-font-size-sm);color:var(--v3-color-text-muted);white-space:nowrap;background:0 0;border:0;border-radius:999px;padding:.1875rem .625rem}.wc-segmented--live .wc-segmented__item{cursor:pointer}.wc-segmented__item--on{color:var(--v3-color-bg);background:var(--v3-color-text)}.wc-controls{z-index:4;pointer-events:none;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;gap:.625rem;display:flex;position:fixed;inset:auto 0 1.25rem}.wc-modes,.wc-theme{pointer-events:none;display:flex}.wc-modes__inner{pointer-events:auto;position:relative}.wc-modes__button{color:#ffffffd9;cursor:pointer;width:2.75rem;height:2.75rem;transition:background-color var(--v3-duration-fast)var(--v3-ease-out),color var(--v3-duration-fast)var(--v3-ease-out),transform var(--v3-duration-fast)var(--v3-ease-out);background:#1a1a1a;border:none;border-radius:1.375rem;justify-content:center;align-items:center;display:inline-flex;position:relative;box-shadow:0 2px 8px #0003,0 4px 16px #0000001a}.wc-modes__button:hover{color:#fff;background:#2a2a2a}.dark .wc-modes__button{color:#0d0d0d;color:lab(3.6999% 0 0);background:#e8e8e8;background:lab(91.88% .0000298023 -.0000119209)}.dark .wc-modes__button:hover{background:#fff}.wc-modes__button:active{transform:scale(.95)}.wc-modes__button[aria-pressed=true]{color:#fff;background:var(--v3-color-accent)}.wc-modes__icon{width:1.125rem;height:1.125rem}.wc-modes__tooltip{font-size:var(--v3-font-size-sm);color:#ffffffb3;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity var(--v3-duration-fast)var(--v3-ease-out);background:#1a1a1a;border-radius:6px;padding:.25rem .5rem;position:absolute;bottom:calc(100% + .5rem);left:50%;transform:translate(-50%)}.dark .wc-modes__tooltip{color:#0d0d0db3;color:lab(3.6999% 0 0/.7);background:#e8e8e8;background:lab(91.88% .0000298023 -.0000119209)}.wc-modes__inner:hover .wc-modes__tooltip,.wc-modes__button:focus-visible+.wc-modes__tooltip{opacity:1}.wc-modes__value{color:#fff}.dark .wc-modes__value{color:#0d0d0d;color:lab(3.6999% 0 0)}.wc-card__blank{background:color-mix(in oklch,var(--v3-color-border)45%,transparent);position:absolute;inset:0}.wc-card{background:var(--v3-color-bg);border:1px solid var(--v3-color-border-strong);border-radius:10px;flex-direction:column;flex:none;display:flex;position:relative;overflow:hidden}.wc-card__stage{flex:1;min-height:0;position:relative;overflow:hidden}.wc-card__face{justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.wc-card__face--eng{text-align:left;background:var(--v3-color-bg);flex-direction:column;justify-content:center;align-items:flex-start;gap:.375rem;padding:.75rem}.wc-card__note{font-size:var(--v3-font-size-sm);color:var(--v3-color-text);margin:0;line-height:1.35}.wc-card__snippet{word-break:break-word;white-space:pre-wrap;background:color-mix(in oklch,var(--v3-color-border)55%,transparent);border-radius:6px;max-width:100%;margin:0;padding:.375rem .5rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.6875rem;line-height:1.4;overflow:hidden}.wc-meta{color:var(--v3-color-text-muted);font-size:.6875rem;line-height:1.2}.wc-card__intrinsic{justify-content:center;align-items:center;width:100%;height:100%;display:flex;container-type:inline-size}.wc-frame{justify-content:center;align-items:center;width:100%;height:100%;display:flex}.wc-frame__inner{background:var(--v3-color-bg);border:1px solid var(--v3-color-border-strong);transform-origin:50%;border-radius:8px;flex-direction:column;flex:none;gap:16px;padding:24px;display:flex;overflow:hidden}.wc-card[data-moving] .wc-card__face{transition:none}.wc-card{transform:translate(var(--wc-offset-x,0px),var(--wc-offset-y,0px))}.wc-card[data-hovered]{z-index:1;transform:translate(var(--wc-offset-x,0px),calc(var(--wc-offset-y,0px) - 4px))scale(1.04)}.wc-card{--sm-l:248px;transition:transform .26s cubic-bezier(.19,1,.22,1),box-shadow .5s cubic-bezier(.37,0,.63,1)}.wc-card,.project-reader__mass-surface{box-shadow:0 clamp(8px,calc(var(--sm-l)*.018*var(--wc-cast,1)),30px)clamp(16px,calc(var(--sm-l)*.035*var(--wc-cast,1)),60px)-16px oklch(0 0 0/var(--wc-cast-alpha,.2))}@media (pointer:fine){.wc-card[data-hovered]{box-shadow:0 clamp(12px,calc(var(--sm-l)*.026),28px)clamp(22px,calc(var(--sm-l)*.05),56px)-16px #00000047}@supports (color:lab(0% 0 0)){.wc-card[data-hovered]{box-shadow:0 clamp(12px,calc(var(--sm-l)*.026),28px)clamp(22px,calc(var(--sm-l)*.05),56px)-16px lab(0% 0 0/.28)}}}.dark .wc-card{box-shadow:0 clamp(8px,calc(var(--sm-l)*.018*var(--wc-cast,1)),30px)clamp(16px,calc(var(--sm-l)*.035*var(--wc-cast,1)),60px)-16px oklch(0 0 0/var(--wc-cast-alpha,.55))}@media (pointer:fine){.dark .wc-card[data-hovered]{box-shadow:0 clamp(12px,calc(var(--sm-l)*.026),28px)clamp(22px,calc(var(--sm-l)*.05),56px)-16px #000000b3}@supports (color:lab(0% 0 0)){.dark .wc-card[data-hovered]{box-shadow:0 clamp(12px,calc(var(--sm-l)*.026),28px)clamp(22px,calc(var(--sm-l)*.05),56px)-16px lab(0% 0 0/.7)}}}@media (prefers-contrast:more){.wc-card,.wc-card[data-hovered],.project-reader__mass-surface{box-shadow:0 0 0 1px var(--v3-color-border-strong)}}@media (forced-colors:active){.wc-card,.wc-card[data-hovered],.project-reader__mass-surface{box-shadow:0 0 0 1px canvastext}}@media (prefers-reduced-motion:reduce){.wc-card{transition:none}}.wc-detail__panel{box-shadow:0 clamp(16px,calc(var(--sm-l,720px)*.03),36px)clamp(30px,calc(var(--sm-l,720px)*.055),72px)-28px #00000057}@supports (color:lab(0% 0 0)){.wc-detail__panel{box-shadow:0 clamp(16px,calc(var(--sm-l,720px)*.03),36px)clamp(30px,calc(var(--sm-l,720px)*.055),72px)-28px lab(0% 0 0/.34)}}.wc-card__hit{z-index:2;border-radius:inherit;corner-shape:inherit;cursor:pointer;appearance:none;background:0 0;border:0;padding:0;position:absolute;inset:0}.wc-detail{z-index:5;padding:var(--v3-padding-x);flex-direction:column;justify-content:center;align-items:center;gap:.75rem;display:flex;position:fixed;inset:0}.wc-detail__switch{z-index:1;flex:none;position:relative}.wc-detail__backdrop{cursor:default;background:color-mix(in oklch,var(--v3-color-bg)62%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:0;padding:0;position:absolute;inset:0}.wc-detail__panel{background:var(--v3-color-bg);border:1px solid var(--v3-color-border-strong);border-radius:14px;flex-direction:column;gap:1.25rem;width:80dvw;height:80dvh;padding:1.5rem;display:flex;position:relative;overflow-y:auto}.dark .wc-detail__panel{box-shadow:0 clamp(16px,calc(var(--sm-l,720px)*.03),36px)clamp(30px,calc(var(--sm-l,720px)*.055),72px)-28px #000000a6}@supports (color:lab(0% 0 0)){.dark .wc-detail__panel{box-shadow:0 clamp(16px,calc(var(--sm-l,720px)*.03),36px)clamp(30px,calc(var(--sm-l,720px)*.055),72px)-28px lab(0% 0 0/.65)}}.wc-detail__head{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.wc-detail__title{font-family:var(--v3-font-family-display);font-size:var(--v3-font-size-title);font-weight:var(--v3-font-weight-medium);margin:0}.wc-detail__caption{font-size:var(--v3-font-size-sm);color:var(--v3-color-text-muted);margin:.125rem 0 0}.wc-detail__close{font-size:var(--v3-font-size-sm);color:var(--v3-color-text-muted);cursor:pointer;background:var(--v3-color-bg);border:1px solid var(--v3-color-border-strong);border-radius:999px;flex:none;align-items:center;gap:.5rem;padding:.25rem .625rem;display:inline-flex}.wc-detail__close:hover{color:var(--v3-color-text)}.wc-detail__body{flex-direction:column;flex:1;gap:1.25rem;min-height:0;display:flex}.wc-detail__face{flex-direction:column;flex:1;align-items:flex-start;gap:.75rem;min-width:0;min-height:0;display:flex}.wc-detail__label{color:var(--v3-color-text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:.6875rem}.wc-detail__stage{background:color-mix(in oklch,var(--v3-color-border)40%,transparent);border:1px solid var(--v3-color-border);border-radius:10px;flex:1;justify-content:center;align-items:center;width:100%;min-height:14rem;padding:1.25rem;display:flex;overflow:auto}.wc-detail__note{text-wrap:pretty;max-width:62ch;margin:0;font-size:clamp(1rem,1.15vw,1.375rem);line-height:1.55}.wc-detail__snippet{word-break:break-word;white-space:pre-wrap;background:color-mix(in oklch,var(--v3-color-border)55%,transparent);border-radius:8px;width:100%;margin:0;padding:.625rem .75rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.75rem;line-height:1.5}.wc-detail__foot{border-top:1px solid var(--v3-color-border);flex-wrap:wrap;gap:.625rem 1.25rem;padding-top:1rem;display:flex}@media screen and (max-width:640px){.wc-detail__body{grid-template-columns:1fr}}.wc-tag{color:var(--v3-color-text-muted);white-space:nowrap;border:1px solid var(--v3-color-border-strong);border-radius:999px;padding:3px 7px;font-size:10px}.wc-tag--on{color:var(--v3-color-text);border-color:var(--v3-color-accent-border)}.wc-s{--wc-line:color-mix(in oklab,var(--v3-color-text)22%,transparent);--wc-line-soft:color-mix(in oklab,var(--v3-color-text)12%,transparent);--wc-fill:color-mix(in oklab,var(--v3-color-text)9%,transparent);--wc-fill-strong:color-mix(in oklab,var(--v3-color-text)18%,transparent);box-sizing:border-box;font-variant-numeric:tabular-nums;color:var(--v3-color-text)}.wc-s *,.wc-s :before,.wc-s :after{box-sizing:border-box}.wc-s-frame{flex-direction:column;width:100%;min-width:375px;height:100%;display:flex;container:wcs/inline-size}.wc-s-frame--center{justify-content:center}.wc-s-button{font-size:44px;font-weight:var(--v3-font-weight-medium);color:var(--v3-color-bg);letter-spacing:-.01em;white-space:nowrap;background:var(--v3-color-text);border-radius:24px;justify-content:center;align-items:center;padding:44px 64px;line-height:1;display:inline-flex}.wc-s-ramp{border-radius:32px;width:960px;height:540px;display:flex;overflow:hidden}.wc-s-ramp__step{flex:1}.wc-s-type{font-size:440px;font-weight:var(--v3-font-weight-medium);letter-spacing:normal;line-height:1.14}.wc-s-focus{border:10px solid var(--v3-focus-color);border-radius:38px;padding:14px;display:inline-flex}.wc-s-focus__control{font-size:42px;font-weight:var(--v3-font-weight-medium);white-space:nowrap;background:var(--v3-color-bg);border:3px solid var(--wc-line);border-radius:20px;justify-content:center;align-items:center;padding:40px 60px;line-height:1;display:inline-flex}.wc-s-radius{background:var(--wc-fill);border:3px solid var(--wc-line);border-radius:96px;width:900px;height:600px;padding:60px}.wc-s-radius__inner{background:var(--v3-color-text);border-radius:36px;width:100%;height:100%}.wc-s-curve{background:var(--wc-fill);border:3px solid var(--wc-line);border-radius:44px;width:720px;height:720px;padding:84px}.wc-s-curve__svg{width:100%;height:100%;display:block;overflow:visible}.wc-s-curve__path{fill:none;stroke:var(--v3-color-accent);stroke-width:3.5px;stroke-linecap:round}.wc-s-curve__dot{fill:var(--v3-color-accent)}.wc-s-field{flex-direction:column;gap:3.6cqw;width:100%;display:flex}.wc-s-field__label{color:var(--v3-color-text-muted);font-size:6cqw;line-height:1.2}.wc-s-field__input{background:var(--v3-color-bg);border:.8cqw solid var(--wc-line);border-radius:4.5cqw;align-items:center;padding:10cqw 6cqw;font-size:7cqw;line-height:1;display:flex}.wc-s-segment{background:var(--wc-fill);border:3px solid var(--wc-line);border-radius:26px;gap:6px;padding:8px;display:inline-flex}.wc-s-segment__item{color:var(--v3-color-text-muted);white-space:nowrap;border-radius:19px;padding:30px 46px;font-size:40px;line-height:1}.wc-s-segment__item--on{font-weight:var(--v3-font-weight-medium);color:var(--v3-color-text);background:var(--v3-color-bg);box-shadow:0 2px 8px color-mix(in oklab,var(--v3-color-text)10%,transparent)}.wc-s-stat{aspect-ratio:16/9;background:var(--wc-fill);border:.4cqw solid var(--wc-line);border-radius:4cqw;flex-direction:column;justify-content:center;gap:1.5cqw;width:100%;height:100%;padding:7cqw;display:flex}.wc-s-stat__value{font-size:24cqw;font-weight:var(--v3-font-weight-medium);letter-spacing:-.03em;line-height:.9}.wc-s-stat__label{color:var(--v3-color-text-muted);font-size:5.4cqw;line-height:1.2}.wc-s-tags{flex-wrap:wrap;justify-content:center;gap:22px;width:620px;display:flex}.wc-s-tags__tag{white-space:nowrap;border:3px solid var(--wc-line);border-radius:999px;padding:18px 32px;font-size:38px;line-height:1}.wc-s-table{aspect-ratio:16/10;background:var(--v3-color-bg);border:.25cqw solid var(--wc-line);border-radius:1.6cqw;grid-template-rows:auto repeat(8,1fr);width:100%;height:100%;font-size:2.1cqw;display:grid;overflow:hidden}.wc-s-table__row{border-bottom:.15cqw solid var(--wc-line-soft);grid-template-columns:1.5fr 1fr .8fr 1fr 1.1fr;align-items:center;gap:2cqw;padding:0 2.6cqw;display:grid}.wc-s-table__row:last-child{border-bottom:0}.wc-s-table__row--head{font-size:1.7cqw;font-weight:var(--v3-font-weight-medium);color:var(--v3-color-text-muted);text-transform:uppercase;letter-spacing:.08em;background:var(--wc-fill);border-bottom-color:var(--wc-line);padding-top:1.8cqw;padding-bottom:1.8cqw}.wc-s-table__status{border:.15cqw solid var(--wc-line);border-radius:999px;justify-self:start;padding:.7cqw 1.6cqw;font-size:1.7cqw}@container wcs not (min-width:640px){.wc-s-table{aspect-ratio:9/16;font-size:5cqw}.wc-s-table__row{grid-template-columns:1.4fr .7fr 1fr;gap:3cqw;padding:0 5cqw}.wc-s-table__row--head{padding-top:4cqw;padding-bottom:4cqw;font-size:3.6cqw}.wc-s-table__row>:nth-child(2),.wc-s-table__row>:nth-child(4){display:none}.wc-s-table__status{border-width:.3cqw;padding:1.6cqw 3cqw;font-size:3.6cqw}}.wc-s-empty{aspect-ratio:4/3;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:2.6cqw;width:100%;height:100%;padding:6cqw;display:flex}.wc-s-empty__mark{border:.7cqw dashed var(--wc-line);border-radius:5cqw;width:26cqw;height:26cqw;margin-bottom:2cqw}.wc-s-empty__title{font-size:6.4cqw;font-weight:var(--v3-font-weight-medium);line-height:1.15}.wc-s-empty__body{max-width:19em;color:var(--v3-color-text-muted);text-wrap:balance;font-size:4cqw;line-height:1.4}.wc-s-empty__action{font-size:4.2cqw;font-weight:var(--v3-font-weight-medium);background:var(--v3-color-bg);border:.4cqw solid var(--wc-line);border-radius:3cqw;margin-top:2.4cqw;padding:3.2cqw 5cqw;line-height:1}@container wcs not (min-width:640px){.wc-s-empty{aspect-ratio:3/4}}.wc-s-filter{background:var(--wc-fill);border:.25cqw solid var(--wc-line);border-radius:2.4cqw;flex-direction:column;gap:2.2cqw;width:100%;padding:2.4cqw;display:flex}.wc-s-filter__top{align-items:center;gap:2cqw;display:flex}.wc-s-filter__search{color:var(--v3-color-text-muted);background:var(--v3-color-bg);border:.25cqw solid var(--wc-line);border-radius:1.8cqw;flex:1;align-items:center;padding:2.6cqw;font-size:2.6cqw;line-height:1;display:flex}.wc-s-filter__count{color:var(--v3-color-text-muted);white-space:nowrap;font-size:2.2cqw}.wc-s-filter__chips{gap:1.4cqw;display:flex}.wc-s-filter__chip{color:var(--v3-color-text-muted);background:var(--v3-color-bg);border:.25cqw solid var(--wc-line);border-radius:999px;padding:1.7cqw 3cqw;font-size:2.2cqw;line-height:1}.wc-s-filter__chip--on{font-weight:var(--v3-font-weight-medium);color:var(--v3-color-text);border-color:var(--v3-color-accent-border)}.wc-s-toast{background:var(--v3-color-bg);border:3px solid var(--wc-line);width:100%;max-width:540px;box-shadow:0 18px 44px color-mix(in oklab,var(--v3-color-text)12%,transparent);border-radius:34px;flex-direction:column;align-items:flex-start;margin-inline:auto;padding:44px;display:flex}.wc-s-toast__mark{background:var(--v3-color-accent);border-radius:22px;width:76px;height:76px;margin-bottom:34px}.wc-s-toast__title{font-size:42px;font-weight:var(--v3-font-weight-medium);line-height:1.1}.wc-s-toast__body{color:var(--v3-color-text-muted);margin-top:16px;font-size:28px;line-height:1.45}.wc-s-toast__action{font-size:28px;font-weight:var(--v3-font-weight-medium);color:var(--v3-color-bg);background:var(--v3-color-text);border-radius:18px;margin-top:36px;padding:22px 34px;line-height:1}.wc-s-shell{aspect-ratio:16/9;background:var(--wc-fill);border:.25cqw solid var(--wc-line);border-radius:1.6cqw;gap:2.2cqw;width:100%;height:100%;padding:2.2cqw;display:flex}.wc-s-shell__rail{background:var(--v3-color-bg);border-radius:1.2cqw;flex-direction:column;gap:1.4cqw;width:15%;padding:1.6cqw;display:flex}.wc-s-shell__brand{background:var(--wc-fill-strong);border-radius:1cqw;width:3.4cqw;height:3.4cqw;margin-bottom:1.6cqw}.wc-s-shell__nav{background:var(--wc-fill);border-radius:.6cqw;height:2.4cqw}.wc-s-shell__nav:first-of-type{background:var(--wc-fill-strong)}.wc-s-shell__body{flex-direction:column;flex:1;gap:2.2cqw;display:flex}.wc-s-shell__bar{background:var(--v3-color-bg);border-radius:1.2cqw;justify-content:space-between;align-items:center;height:8%;min-height:4cqw;padding:0 1.8cqw;display:flex}.wc-s-shell__search{background:var(--wc-fill);border-radius:.6cqw;width:30%;height:2.2cqw}.wc-s-shell__avatar{background:var(--wc-fill-strong);border-radius:999px;width:2.6cqw;height:2.6cqw}.wc-s-shell__grid{flex:1;grid-template-columns:repeat(3,1fr);grid-auto-rows:1fr;gap:2.2cqw;display:grid}.wc-s-shell__block{background:var(--v3-color-bg);border-radius:1.2cqw;padding:1.8cqw}.wc-s-shell__blockbar{background:var(--wc-fill-strong);border-radius:.5cqw;width:42%;height:1.8cqw;display:block}.wc-s-shell__block--tall{grid-row:span 2}.wc-s-shell__block--wide{grid-column:span 2}@container wcs not (min-width:900px){.wc-s-shell{aspect-ratio:4/3;flex-direction:column;gap:2.8cqw;padding:2.8cqw}.wc-s-shell__rail{flex-direction:row;align-items:center;width:100%;padding:2cqw 2.4cqw}.wc-s-shell__brand{width:4.4cqw;height:4.4cqw;margin-bottom:0;margin-right:auto}.wc-s-shell__nav{width:8%;height:3cqw}.wc-s-shell__body{gap:2.8cqw}.wc-s-shell__bar{min-height:6cqw}.wc-s-shell__grid{grid-template-columns:repeat(2,1fr);gap:2.8cqw}.wc-s-shell__block--wide{grid-column:span 2}}.wc-s-doc{aspect-ratio:1;background:var(--v3-color-bg);border:.25cqw solid var(--wc-line);border-radius:1.6cqw;gap:5cqw;width:100%;height:100%;padding:5cqw;display:flex}.wc-s-doc__toc{flex-direction:column;gap:2.4cqw;width:22%;padding-top:6cqw;display:flex}.wc-s-doc__toc span{background:var(--wc-fill);border-radius:.4cqw;height:1.2cqw}.wc-s-doc__toc span:first-child{background:var(--wc-fill-strong)}.wc-s-doc__body{flex-direction:column;flex:1;gap:4cqw;display:flex}.wc-s-doc__title{background:var(--wc-fill-strong);border-radius:.8cqw;width:62%;height:4cqw}.wc-s-doc__para{flex-direction:column;gap:1.8cqw;display:flex}.wc-s-doc__para span{background:var(--wc-fill);border-radius:.4cqw;height:1.4cqw}.wc-s-doc__figure{background:var(--wc-fill);border-radius:1.2cqw;flex:1;min-height:14cqw}.wc-s-itin{aspect-ratio:16/10;background:var(--v3-color-bg);border:.25cqw solid var(--wc-line);border-radius:1.6cqw;flex-direction:column;gap:2.4cqw;width:100%;height:100%;padding:2.6cqw;display:flex}.wc-s-itin__hero{background:var(--wc-fill-strong);border-radius:1.4cqw;height:34%}.wc-s-itin__meta{gap:1.6cqw;display:flex}.wc-s-itin__meta span{background:var(--wc-fill);border-radius:.5cqw;width:9cqw;height:1.6cqw}.wc-s-itin__days{flex:1;grid-template-columns:repeat(3,1fr);gap:2.4cqw;display:grid}.wc-s-itin__day{flex-direction:column;gap:1.4cqw;display:flex}.wc-s-itin__daybar{background:var(--wc-fill-strong);border-radius:.5cqw;width:46%;height:1.6cqw}.wc-s-itin__card{background:var(--wc-fill);border-radius:1.2cqw;flex:1}.wc-s-phone{aspect-ratio:9/16;background:var(--v3-color-bg);border:.5cqw solid var(--wc-line);border-radius:8cqw;flex-direction:column;gap:4cqw;width:100%;height:100%;padding:5cqw;display:flex}.wc-s-phone__status{justify-content:space-between;align-items:center;display:flex}.wc-s-phone__status span{background:var(--wc-fill);border-radius:.8cqw;height:2.6cqw}.wc-s-phone__status span:first-child{width:16%}.wc-s-phone__status span:last-child{width:22%}.wc-s-phone__hero{background:var(--wc-fill-strong);border-radius:4cqw;height:30%}.wc-s-phone__rows{flex-direction:column;flex:1;gap:3.4cqw;display:flex}.wc-s-phone__row{background:var(--wc-fill);border-radius:3.4cqw;flex:1;align-items:center;gap:3.4cqw;padding:3.4cqw;display:flex}.wc-s-phone__thumb{background:var(--wc-fill-strong);border-radius:2.6cqw;width:14cqw;height:14cqw}.wc-s-phone__line{background:var(--wc-fill-strong);border-radius:.8cqw;flex:1;height:2.6cqw}.wc-s-phone__dock{background:var(--wc-fill);border-radius:4cqw;justify-content:space-around;align-items:center;height:14%;display:flex}.wc-s-phone__dock span{background:var(--wc-fill-strong);border-radius:1cqw;width:9cqw;height:3cqw}@media (prefers-reduced-motion:reduce){.wc-card,.wc-scroll-hint--button,.wc-slot__window,.wc-slot__stack,.wc-slot__caret{transition:none}}@media screen and (max-width:640px){.wc-hud{gap:.5rem;padding-bottom:.875rem}.wc-sentence__line{row-gap:.15rem}}.wc-shot{object-fit:contain;-webkit-user-drag:none;-webkit-user-select:none;user-select:none;background:#fff;width:100%;height:100%;display:block}@supports (color:light-dark(white, black)){.wc-shot{background:light-dark(#fff,#000)}}.wc-capture{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}.wc-capture[data-capture-tone=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@supports not (color:light-dark(white, black)){.wc-capture[data-capture-tone=dark] .wc-shot{background:#000}}.wc-root[data-depth-dir=up] .wc-plane{transition-duration:.52s}@media (prefers-reduced-motion:reduce){.wc-plane{transition-duration:0s}}.wc-detail__specimen{transform-origin:50%;flex:none}.wc-detail__specimen:has([data-capture-fill]){width:100%;height:100%}.wc-sentence{--wc-slot-line:2.75rem;max-width:100%;display:block}.wc-sentence__line{color:var(--v3-color-text);letter-spacing:-.02em;flex-wrap:wrap;align-items:center;column-gap:.4em;font-size:clamp(1.375rem,3.2vw,2.25rem);line-height:1.2;display:flex}@media (max-width:640px){.wc-sentence{--wc-slot-line:2rem}}.wc-slot{align-items:center;gap:.4em;display:inline-flex;position:relative}.wc-slot__lead{color:var(--v3-color-text-muted);white-space:nowrap}.wc-slot__button{font:inherit;color:inherit;letter-spacing:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:.3em;padding:0;display:inline-flex}.wc-slot__window{height:var(--wc-slot-line);transition:width .42s cubic-bezier(.22,1,.36,1);display:block;overflow:hidden}.wc-slot__stack{flex-direction:column;align-items:flex-start;display:flex}.wc-slot__row{height:var(--wc-slot-line);white-space:nowrap;text-decoration:underline;text-decoration-thickness:1px;-webkit-text-decoration-color:var(--v3-color-border-strong);text-decoration-color:var(--v3-color-border-strong);text-underline-offset:.18em;flex-shrink:0;align-items:center;display:flex}.wc-slot__button:hover .wc-slot__row{text-decoration-color:currentColor}.wc-slot__caret{color:var(--v3-color-text-muted);flex:none}.wc-slot__list{top:calc(var(--wc-slot-line) + .35rem);z-index:20;background:var(--v3-color-bg);border:1px solid var(--v3-color-border-strong);border-radius:12px;max-height:min(22rem,50dvh);margin:0;padding:.35rem;position:absolute;left:0;overflow-y:auto;box-shadow:0 18px 40px -22px #0006;box-shadow:0 18px 40px -22px lab(0% 0 0/.4)}.wc-slot__option{width:100%;color:var(--v3-color-text);text-align:left;letter-spacing:0;white-space:nowrap;cursor:pointer;background:0 0;border:0;border-radius:8px;padding:.4rem .75rem;font-family:inherit;font-size:.875rem;line-height:1.4;display:block}.wc-slot__option:hover{background:color-mix(in oklch,var(--v3-color-border)45%,transparent)}.wc-slot__option--on{background:color-mix(in oklch,var(--v3-color-border)65%,transparent);font-weight:500}.portfolio-header{--portfolio-header-font-size:24px;z-index:4;height:var(--wc-header-height);padding-right:max(var(--portfolio-content-inline-inset),env(safe-area-inset-right));padding-left:max(var(--portfolio-content-inline-inset),env(safe-area-inset-left));font-family:var(--v3-font-family);font-size:var(--portfolio-header-font-size);color:var(--v3-color-text);background:0 0;border-bottom:none;justify-content:space-between;align-items:center;display:flex;position:fixed;inset:0 0 auto}.portfolio-header__greeting{font-family:var(--v3-font-family-display);font-size:inherit;letter-spacing:var(--v3-tracking-base);margin:0;font-weight:300}.portfolio-header__about{font:inherit;color:inherit;letter-spacing:inherit;touch-action:manipulation;cursor:pointer;background:0 0;border:0;align-items:center;padding:0;display:inline-flex}.portfolio-header__about *{cursor:inherit}.portfolio-header__about:focus-visible{outline:2px solid var(--v3-focus-color);outline-offset:6px;border-radius:4px}.portfolio-header__nav{align-items:center;gap:10px;transition:opacity .18s;display:flex}.portfolio-header__nav a{color:inherit;text-underline-offset:4px;text-decoration:none}.portfolio-header__nav a:hover{text-decoration:none}.portfolio-header__nav a:focus-visible{outline-offset:6px;outline:2px solid}@media (max-width:700px){.wc-root{--wc-header-height:80px;--portfolio-control-inline-inset:16px}.portfolio-header{grid-template-rows:1fr;grid-template-columns:minmax(0,1fr) minmax(104px,max-content);align-content:center;column-gap:32px;display:grid}.portfolio-header__greeting{justify-self:start}.portfolio-header__actions{justify-content:flex-end;justify-self:end;width:max-content}.portfolio-header__nav{gap:8px}}.portfolio-header__greeting{align-items:baseline;display:flex}.portfolio-work{padding-top:calc(var(--wc-header-height) + 24px);padding-right:max(var(--portfolio-content-inline-inset),env(safe-area-inset-right));padding-bottom:96px;padding-left:max(var(--portfolio-content-inline-inset),env(safe-area-inset-left));font-family:var(--v3-font-family);color:var(--v3-color-text)}.work-grid-static{--work-grid-columns:3;--work-grid-column-gap:28px;--work-grid-row-gap:var(--work-grid-column-gap);grid-template-columns:repeat(var(--work-grid-columns),minmax(0,1fr));gap:0 var(--work-grid-column-gap);width:100%;margin:0;padding:0;list-style:none;display:grid}@container work-collection (min-width:1684px){.work-grid-static{--work-grid-columns:4}}@container work-collection (min-width:2112px){.wc-root[data-wide-grid-five=true] .work-grid-static{--work-grid-columns:5}}.work-grid-static__item{align-self:start;min-width:0}.work-grid-static[data-masonry-ready=true]{grid-auto-rows:1px}.work-grid-static__content{min-width:0;padding-bottom:var(--work-grid-row-gap);flex-direction:column;align-items:center;display:flex;position:relative}.work-grid-static .wc-card:before{top:calc(var(--work-grid-row-gap)/-2);right:calc(var(--work-grid-column-gap)/-2);bottom:calc(var(--work-grid-row-gap)/-2);left:calc(var(--work-grid-column-gap)/-2);pointer-events:inherit;content:"";position:absolute}.portfolio-work__dot{bottom:calc(var(--work-grid-row-gap)/2 - 9px);background:var(--artifact-grid-indicator,var(--v3-color-text));border-radius:50%;width:18px;height:18px;position:absolute;left:calc(50% - 9px)}.portfolio-work__label{font-family:var(--v3-font-family-display);text-align:center;margin:0;font-size:clamp(18px,7cqi,32px);font-weight:300;line-height:1.3;display:block}.portfolio-work__date{white-space:nowrap;font-size:clamp(11px,3cqi,14px)}.portfolio-work__metadata{z-index:2;pointer-events:none;background:color-mix(in srgb,var(--artifact-accent)20%,transparent);opacity:0;place-items:center;transition:opacity .18s;display:grid;position:absolute;inset:0}.work-grid-static .wc-card__stage{filter:blur();transition:filter .18s}.portfolio-work__metadata-copy{color:var(--artifact-ink,#fff);text-align:center;flex-direction:column;align-items:center;gap:8px;padding:14px;display:flex}@supports (color:contrast-color(red)){.portfolio-work__metadata-copy{color:contrast-color(var(--artifact-accent))}}@media (prefers-reduced-motion:reduce){.work-grid-static .wc-card,.work-grid-static .wc-card__stage,.portfolio-work__metadata,.portfolio-work__metadata-copy{transition:none}}@media (forced-colors:active){.portfolio-work__metadata-copy,.dark .portfolio-work__metadata-copy{color:canvastext;background:canvas}}.work-grid-static .wc-card{--sky-card-direct-ink:#00000040;--sky-card-direct-shadow:var(--sun-card-cast-x)var(--sun-card-cast-y)calc(clamp(20px,calc(var(--sm-l,420px)*.065),56px)*var(--sun-cast-softness))-18px color-mix(in srgb,var(--sky-card-direct-ink)var(--sun-cast-share),transparent);--sky-card-glass-shadow:0 clamp(6px,calc(var(--sm-l,420px)*.02),16px)clamp(16px,calc(var(--sm-l,420px)*.065),32px)-14px color-mix(in srgb,var(--header-glass-shadow)var(--sky-night-share),transparent);cursor:pointer;box-shadow:var(--sky-card-glass-shadow),var(--sky-card-direct-shadow),0 calc(clamp(12px,calc(var(--sm-l,420px)*.024),28px)*var(--sun-card-ambient-factor))clamp(24px,calc(var(--sm-l,420px)*.045),56px)-22px #00000047;container:portfolio-card/inline-size}@supports (color:lab(0% 0 0)){.work-grid-static .wc-card{--sky-card-direct-ink:lab(0% 0 0/.25);box-shadow:var(--sky-card-glass-shadow),var(--sky-card-direct-shadow),0 calc(clamp(12px,calc(var(--sm-l,420px)*.024),28px)*var(--sun-card-ambient-factor))clamp(24px,calc(var(--sm-l,420px)*.045),56px)-22px lab(0% 0 0/.28)}}.dark .work-grid-static .wc-card{--sky-card-direct-ink:#0000006b;box-shadow:var(--sky-card-glass-shadow),var(--sky-card-direct-shadow),0 calc(clamp(12px,calc(var(--sm-l,420px)*.024),28px)*var(--sun-card-ambient-factor))clamp(24px,calc(var(--sm-l,420px)*.045),56px)-22px #0009}@supports (color:lab(0% 0 0)){.dark .work-grid-static .wc-card{--sky-card-direct-ink:lab(0% 0 0/.42);box-shadow:var(--sky-card-glass-shadow),var(--sky-card-direct-shadow),0 calc(clamp(12px,calc(var(--sm-l,420px)*.024),28px)*var(--sun-card-ambient-factor))clamp(24px,calc(var(--sm-l,420px)*.045),56px)-22px lab(0% 0 0/.6)}}@media (hover:hover) and (pointer:fine){.work-grid-static .wc-card:has(>.wc-card__hit:hover){--sky-card-direct-ink:#00000052;z-index:1;box-shadow:var(--sky-card-glass-shadow),var(--sky-card-direct-shadow),0 calc(clamp(16px,calc(var(--sm-l,420px)*.034),40px)*var(--sun-card-ambient-factor))clamp(32px,calc(var(--sm-l,420px)*.062),76px)-22px #00000061}@supports (color:lab(0% 0 0)){.work-grid-static .wc-card:has(>.wc-card__hit:hover){--sky-card-direct-ink:lab(0% 0 0/.32);box-shadow:var(--sky-card-glass-shadow),var(--sky-card-direct-shadow),0 calc(clamp(16px,calc(var(--sm-l,420px)*.034),40px)*var(--sun-card-ambient-factor))clamp(32px,calc(var(--sm-l,420px)*.062),76px)-22px lab(0% 0 0/.38)}}.dark .work-grid-static .wc-card:has(>.wc-card__hit:hover){--sky-card-direct-ink:#00000080;box-shadow:var(--sky-card-glass-shadow),var(--sky-card-direct-shadow),0 calc(clamp(16px,calc(var(--sm-l,420px)*.034),40px)*var(--sun-card-ambient-factor))clamp(32px,calc(var(--sm-l,420px)*.062),76px)-22px #000000b8}@supports (color:lab(0% 0 0)){.dark .work-grid-static .wc-card:has(>.wc-card__hit:hover){--sky-card-direct-ink:lab(0% 0 0/.5);box-shadow:var(--sky-card-glass-shadow),var(--sky-card-direct-shadow),0 calc(clamp(16px,calc(var(--sm-l,420px)*.034),40px)*var(--sun-card-ambient-factor))clamp(32px,calc(var(--sm-l,420px)*.062),76px)-22px lab(0% 0 0/.72)}}}.work-grid-static .wc-card *{cursor:inherit}.work-grid-static .wc-card:has(.wc-card__hit:focus-visible){outline:2px solid var(--v3-focus-color);outline-offset:4px}html[data-keyboard-focus=true] .work-grid-static .wc-card:has(.wc-card__hit:focus-visible){--sky-card-direct-ink:#00000052;z-index:1;box-shadow:var(--sky-card-glass-shadow),var(--sky-card-direct-shadow),0 calc(clamp(16px,calc(var(--sm-l,420px)*.034),40px)*var(--sun-card-ambient-factor))clamp(32px,calc(var(--sm-l,420px)*.062),76px)-22px #00000061}@supports (color:lab(0% 0 0)){html[data-keyboard-focus=true] .work-grid-static .wc-card:has(.wc-card__hit:focus-visible){--sky-card-direct-ink:lab(0% 0 0/.32);box-shadow:var(--sky-card-glass-shadow),var(--sky-card-direct-shadow),0 calc(clamp(16px,calc(var(--sm-l,420px)*.034),40px)*var(--sun-card-ambient-factor))clamp(32px,calc(var(--sm-l,420px)*.062),76px)-22px lab(0% 0 0/.38)}}html.dark[data-keyboard-focus=true] .work-grid-static .wc-card:has(.wc-card__hit:focus-visible){--sky-card-direct-ink:#00000080;box-shadow:var(--sky-card-glass-shadow),var(--sky-card-direct-shadow),0 calc(clamp(16px,calc(var(--sm-l,420px)*.034),40px)*var(--sun-card-ambient-factor))clamp(32px,calc(var(--sm-l,420px)*.062),76px)-22px #000000b8}@supports (color:lab(0% 0 0)){html.dark[data-keyboard-focus=true] .work-grid-static .wc-card:has(.wc-card__hit:focus-visible){--sky-card-direct-ink:lab(0% 0 0/.5);box-shadow:var(--sky-card-glass-shadow),var(--sky-card-direct-shadow),0 calc(clamp(16px,calc(var(--sm-l,420px)*.034),40px)*var(--sun-card-ambient-factor))clamp(32px,calc(var(--sm-l,420px)*.062),76px)-22px lab(0% 0 0/.72)}}@media (prefers-contrast:more){.work-grid-static .wc-card,.dark .work-grid-static .wc-card{box-shadow:0 0 0 1px var(--v3-color-border-strong)}.work-grid-static .wc-card:has(>.wc-card__hit:hover){box-shadow:0 0 0 1px var(--v3-color-border-strong)}.dark .work-grid-static .wc-card:has(>.wc-card__hit:hover){box-shadow:0 0 0 1px var(--v3-color-border-strong)}html[data-keyboard-focus=true] .work-grid-static .wc-card:has(.wc-card__hit:focus-visible){box-shadow:0 0 0 1px var(--v3-color-border-strong)}html.dark[data-keyboard-focus=true] .work-grid-static .wc-card:has(.wc-card__hit:focus-visible){box-shadow:0 0 0 1px var(--v3-color-border-strong)}}@media (forced-colors:active){.work-grid-static .wc-card,.dark .work-grid-static .wc-card{box-shadow:0 0 0 1px canvastext}.work-grid-static .wc-card:has(>.wc-card__hit:hover){box-shadow:0 0 0 1px canvastext}.dark .work-grid-static .wc-card:has(>.wc-card__hit:hover){box-shadow:0 0 0 1px canvastext}html[data-keyboard-focus=true] .work-grid-static .wc-card:has(.wc-card__hit:focus-visible){box-shadow:0 0 0 1px canvastext}html.dark[data-keyboard-focus=true] .work-grid-static .wc-card:has(.wc-card__hit:focus-visible){box-shadow:0 0 0 1px canvastext}}.wc-root:is([data-entrance-stage="5"],[data-entrance-state=settled],[data-entrance-state=skipped],[data-entrance-state=cancelled]) .work-grid-static [data-card-surface]{background-color:var(--artifact-grid-surface,color-mix(in srgb,var(--artifact-grid-base),var(--header-glass-fill)var(--sky-night-share)));border-color:var(--artifact-grid-border,color-mix(in srgb,var(--artifact-grid-outline,var(--v3-color-border-strong)),transparent var(--sky-night-share)));isolation:isolate;transition:background-color .22s,border-color .22s}.wc-root:is([data-entrance-stage="5"],[data-entrance-state=settled],[data-entrance-state=skipped],[data-entrance-state=cancelled]) .work-grid-static [data-card-surface]:before{content:"";border-radius:inherit;corner-shape:inherit;pointer-events:none;z-index:1;background:var(--portfolio-glass-glint-layer);opacity:var(--sky-card-glass-layer-opacity,var(--sky-night-share));transition:opacity .22s;position:absolute;inset:0}.portfolio-card-glass-contour{z-index:4;pointer-events:none;opacity:0;width:100%;height:100%;transition:opacity .22s;position:absolute;inset:0;overflow:visible}.portfolio-card-glass-contour path{fill:none;stroke-width:1px;vector-effect:non-scaling-stroke}.portfolio-card-glass-contour [data-artifact-glass-rim]{stroke:var(--header-glass-rim)}.portfolio-card-glass-contour__top{stop-color:var(--header-glass-highlight)}.portfolio-card-glass-contour__clear{stop-color:transparent}.portfolio-card-glass-contour__bottom{stop-color:#ffffff2e}.portfolio-card-solar-soft-rim,.portfolio-card-solar-contour{pointer-events:none;opacity:0;-webkit-mask-image:linear-gradient(var(--sun-rim-angle),transparent 10%,#0000001f 37%,#000 85%);-webkit-mask-image:linear-gradient(var(--sun-rim-angle),transparent 10%,#0000001f 37%,#000 85%);mask-image:linear-gradient(var(--sun-rim-angle),transparent 10%,#0000001f 37%,#000 85%);transition:opacity .22s;position:absolute;inset:0}.portfolio-card-solar-soft-rim{z-index:4;border-radius:var(--artifact-solar-inner-radius,24px);corner-shape:superellipse(2);clip-path:var(--artifact-solar-clip,none);box-shadow:inset 0 0 0 1px #ffffffb3,inset 0 0 7px #456b9e29}.portfolio-card-solar-contour{z-index:5;width:100%;height:100%;overflow:visible}.portfolio-card-solar-contour path{fill:none;stroke:#ffffffe0;stroke-width:1.25px;vector-effect:non-scaling-stroke}.wc-root:is([data-entrance-stage="5"],[data-entrance-state=settled],[data-entrance-state=skipped],[data-entrance-state=cancelled]) .work-grid-static :is(.portfolio-card-solar-soft-rim,.portfolio-card-solar-contour){opacity:var(--sun-rim-opacity)}.wc-root:is([data-entrance-stage="5"],[data-entrance-state=settled],[data-entrance-state=skipped],[data-entrance-state=cancelled]) .work-grid-static .portfolio-card-glass-contour{opacity:var(--sky-card-glass-layer-opacity,var(--sky-night-share))}.wc-root:is([data-entrance-stage="5"],[data-entrance-state=settled],[data-entrance-state=skipped],[data-entrance-state=cancelled]) .work-grid-static [data-card-surface] .wc-card__stage{z-index:2}.wc-root .work-grid-static .portfolio-work__metadata{background-color:color-mix(in srgb,color-mix(in srgb,var(--artifact-accent)20%,transparent),#fffffff0 var(--sky-metadata-night-share))}.wc-root:is([data-entrance-stage="5"],[data-entrance-state=settled],[data-entrance-state=skipped],[data-entrance-state=cancelled]) .work-grid-static [data-card-surface] .portfolio-work__metadata{z-index:3}.wc-root[data-sky-metadata-dark] .work-grid-static .portfolio-work__metadata-copy{color:#1d2430}@supports (color:contrast-color(red)){.wc-root .work-grid-static .portfolio-work__metadata-copy{color:contrast-color(color-mix(in srgb,var(--artifact-accent),#fff var(--sky-metadata-night-share)))}}:root[data-portfolio-atmosphere=weather] .wc-root .work-grid-static .portfolio-work__metadata{background-color:color-mix(in oklab,color-mix(in oklab,var(--artifact-grid-interaction)80%,var(--artifact-accent)),var(--artifact-grid-interaction)var(--sky-surface-night-share))}.work-grid-static .wc-card:has(>.wc-card__hit:hover) .portfolio-work__metadata{opacity:1}html[data-keyboard-focus=true] .wc-card:has(.wc-card__hit:focus-visible) .portfolio-work__metadata{opacity:1}@media (hover:none),(pointer:coarse){.work-grid-static .wc-card .portfolio-work__metadata{display:none}}:root[data-portfolio-atmosphere=weather] .wc-root .work-grid-static .portfolio-work__metadata-copy{color:#000}:root[data-portfolio-atmosphere=weather] .wc-root[data-sky-label-dark] .work-grid-static .portfolio-work__metadata-copy{color:#fff}.wc-root[data-sky-playing=true] .work-grid-static [data-card-surface],.wc-root[data-sky-playing=true] .work-grid-static .wc-card,.wc-root[data-sky-playing=true] .work-grid-static [data-artifact-mockup],.wc-root[data-sky-playing=true] .work-grid-static [data-card-surface]:before,.wc-root[data-sky-playing=true] .work-grid-static .portfolio-card-glass-contour{transition:none}.wc-root[data-sky-glass-active]:is([data-entrance-stage="5"],[data-entrance-state=settled],[data-entrance-state=skipped],[data-entrance-state=cancelled]) .work-grid-static .wc-card[data-glass-visible] [data-card-surface]{-webkit-backdrop-filter:blur(16px)saturate(150%);backdrop-filter:blur(16px)saturate(150%)}@media (hover:hover) and (pointer:fine){:is(.wc-root:is([data-entrance-stage="5"],[data-entrance-state=settled],[data-entrance-state=skipped],[data-entrance-state=cancelled]) .work-grid-static .wc-card:has(>.wc-card__hit:hover) [data-card-surface],.wc-root:is([data-entrance-stage="5"],[data-entrance-state=settled],[data-entrance-state=skipped],[data-entrance-state=cancelled]) .work-grid-static .wc-card:has(>.wc-card__hit:hover) [data-artifact-mockup]){--sky-card-glass-layer-opacity:0%;--sun-rim-opacity:0;background-color:var(--artifact-grid-interaction);-webkit-backdrop-filter:none;backdrop-filter:none}}.wc-root:is([data-entrance-stage="5"],[data-entrance-state=settled],[data-entrance-state=skipped],[data-entrance-state=cancelled]) .work-grid-static .wc-card:is(:has(>.wc-card__hit:is(:active,[data-pressing=true])),html[data-keyboard-focus=true] :has(>.wc-card__hit:focus-visible)) [data-card-surface]:before,.wc-root:is([data-entrance-stage="5"],[data-entrance-state=settled],[data-entrance-state=skipped],[data-entrance-state=cancelled]) .work-grid-static .wc-card:is(:has(>.wc-card__hit:is(:active,[data-pressing=true])),html[data-keyboard-focus=true] :has(>.wc-card__hit:focus-visible)) .portfolio-card-glass-contour,.wc-root[data-sky-playing=true] .work-grid-static :is(.portfolio-card-solar-soft-rim,.portfolio-card-solar-contour),.wc-root:is([data-entrance-stage="5"],[data-entrance-state=settled],[data-entrance-state=skipped],[data-entrance-state=cancelled]) .work-grid-static .wc-card:is(:has(>.wc-card__hit:is(:active,[data-pressing=true])),html[data-keyboard-focus=true] :has(>.wc-card__hit:focus-visible)) :is(.portfolio-card-solar-soft-rim,.portfolio-card-solar-contour){transition:none}@media (prefers-reduced-motion:reduce){.wc-root:is([data-entrance-stage="5"],[data-entrance-state=settled],[data-entrance-state=skipped],[data-entrance-state=cancelled]) .work-grid-static [data-card-surface],.wc-root:is([data-entrance-stage="5"],[data-entrance-state=settled],[data-entrance-state=skipped],[data-entrance-state=cancelled]) .work-grid-static [data-artifact-mockup],.wc-root:is([data-entrance-stage="5"],[data-entrance-state=settled],[data-entrance-state=skipped],[data-entrance-state=cancelled]) .work-grid-static [data-card-surface]:before,.wc-root:is([data-entrance-stage="5"],[data-entrance-state=settled],[data-entrance-state=skipped],[data-entrance-state=cancelled]) .work-grid-static .portfolio-card-glass-contour,.wc-root .work-grid-static :is(.portfolio-card-solar-soft-rim,.portfolio-card-solar-contour){transition:none}}@media (prefers-contrast:more),(forced-colors:active){.portfolio-card-solar-soft-rim,.portfolio-card-solar-contour{display:none}}.portfolio-about{--portfolio-about-inset:clamp(20px,4vw,64px);--portfolio-about-layer-project:1;--portfolio-about-layer-viewport-effects:2;--portfolio-about-layer-corner-controls:3;--portfolio-about-layer-setup:4;--portfolio-about-layer-header:5;z-index:4;width:100%;max-width:none;height:100dvh;max-height:none;font-family:var(--v3-font-family);color:var(--v3-color-text);letter-spacing:var(--v3-tracking-base);pointer-events:none;background:0 0;border:0;margin:0;padding:0;position:fixed;inset:0;overflow:hidden}:root[data-portfolio-atmosphere=weather] .wc-root .portfolio-about{--v3-color-bg:color-mix(in oklab,#fff,#0d0d0d var(--sky-surface-night-share));--v3-color-text:#000;--v3-color-text-muted:#000;--v3-color-border:color-mix(in oklab,#f2f2f2,#1f1f1f var(--sky-surface-night-share));--v3-color-border-strong:color-mix(in oklab,#ededed,#2e2e2e var(--sky-surface-night-share))}@supports (color:lab(0% 0 0)){:root[data-portfolio-atmosphere=weather] .wc-root .portfolio-about{--v3-color-bg:color-mix(in oklab,#fff,lab(3.6999% 0 0) var(--sky-surface-night-share));--v3-color-border:color-mix(in oklab,#f2f2f2,lab(11.84% 0 0) var(--sky-surface-night-share));--v3-color-border-strong:color-mix(in oklab,#ededed,lab(18.8% 0 0) var(--sky-surface-night-share))}}:root[data-portfolio-atmosphere=weather] .wc-root[data-sky-surface-dark] .portfolio-about{--v3-color-text:#fff;--v3-color-text-muted:#fff;--v3-focus-color:#4ea9ffb3;--v3-color-link-underline:#3d3d3d;--v3-color-link-underline-hover:#a4a4a4}@supports (color:lab(0% 0 0)){:root[data-portfolio-atmosphere=weather] .wc-root[data-sky-surface-dark] .portfolio-about{--v3-focus-color:lab(66.8198% -6.42365 -53.9665/.7);--v3-color-link-underline:lab(25.76% -.0000149012 0);--v3-color-link-underline-hover:lab(67.52% -.0000298023 0)}}.portfolio-about[open]{display:block}.portfolio-about:modal{pointer-events:auto}.portfolio-about::backdrop{background:0 0}.portfolio-about__surface{pointer-events:auto;background:var(--v3-color-bg);position:absolute;inset:0}.portfolio-about__close{top:calc((var(--wc-header-height) - 44px)/2);right:var(--portfolio-about-inset);width:44px;height:44px;color:inherit;pointer-events:auto;touch-action:manipulation;cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;margin-right:-11px;padding:0;transition:background .15s;display:grid;position:absolute}.portfolio-about__close svg{cursor:inherit}.portfolio-about__close:hover{background:color-mix(in srgb,var(--v3-color-text)6%,transparent)}.portfolio-about__close:focus-visible,.portfolio-about__scroller:focus-visible{outline:2px solid var(--v3-focus-color);outline-offset:-4px}.portfolio-about__scroller{overscroll-behavior:contain;touch-action:pan-y pinch-zoom;scrollbar-width:thin;height:100%;min-height:0;overflow-y:auto}.portfolio-about__article{width:100%;padding:calc((var(--wc-header-height) + 24px)/2 + clamp(24px,6vh,72px))var(--portfolio-about-inset)80px;margin:0;font-size:clamp(18px,2vw,25px);line-height:1.55}@media (max-width:480px){.portfolio-about{--portfolio-about-inset:16px}.portfolio-about__article{padding-bottom:48px}}@media (max-width:760px){.work-grid-static{--work-grid-columns:1;--work-grid-column-gap:20px}}@media (max-width:380px){.work-grid-static{--work-grid-columns:1}}.portfolio-work__collection{width:100%;position:relative;container:work-collection/inline-size}.portfolio-work__dot{visibility:hidden}.portfolio-work__indicator{z-index:1;pointer-events:none;border-radius:50%;width:18px;height:18px;position:absolute;top:0;left:0}.portfolio-work__indicator-shape{background:var(--v3-color-text);border-radius:inherit;width:100%;height:100%;display:block}.metallic-name{flex:none;justify-content:center;align-items:center;width:196px;height:40px;display:inline-flex;position:relative}.metallic-name__fallback{pointer-events:none;position:absolute;inset:0}.metallic-name__foil{object-fit:contain;filter:drop-shadow(0 1px 1px #3029234d);max-width:none;position:absolute}.metallic-name__canvas{inset:calc(-1*var(--balloon-padding));width:calc(100% + var(--balloon-padding)*2);height:calc(100% + var(--balloon-padding)*2);pointer-events:none;opacity:0;position:absolute}.metallic-name[data-ready=true] .metallic-name__canvas{opacity:1}.metallic-name[data-ready=true] .metallic-name__fallback{opacity:0}.portfolio-header__greeting{align-items:center}@font-face{font-family:Portfolio Balloon;src:url(/fonts/dynapuff-name.woff2)format("woff2");font-style:normal;font-weight:800;font-display:swap}.portfolio-work{transition:opacity .28s}.wc-root[data-project-present=true][data-project-closing=false] .portfolio-work{pointer-events:none;opacity:0}.portfolio-header__about:disabled{cursor:default}.project-reader{z-index:var(--portfolio-about-layer-project);pointer-events:auto;position:absolute;inset:0}.project-reader[data-setup-present=true]{filter:blur(8px)}.project-reader__corner-controls{z-index:var(--portfolio-about-layer-corner-controls);pointer-events:none;position:absolute;inset:0}.project-reader__corner-controls:has([data-open=true]){z-index:calc(var(--portfolio-about-layer-header) + 1)}.project-reader__corner-controls[data-setup-present=true]{filter:blur(8px)}.project-reader__surface{background:var(--v3-color-bg);position:absolute;inset:0}.project-reader__scroller{overscroll-behavior:contain;touch-action:pan-y pinch-zoom;scroll-padding-top:var(--wc-header-height);scrollbar-width:thin;position:absolute;inset:0;overflow-y:auto}.project-reader[data-phase=preparing] .project-reader__scroller,.project-reader[data-phase=opening] .project-reader__scroller,.project-reader[data-phase=closing] .project-reader__scroller{overflow:hidden}.project-reader__scroller:focus-visible{outline:2px solid var(--v3-focus-color);outline-offset:-4px}.project-reader__content{box-sizing:border-box;min-height:100%;padding-inline:var(--portfolio-about-inset);padding-top:var(--wc-header-height)}.project-reader__overview{z-index:3;text-align:left;transform-origin:0 0;gap:10px;transition:opacity .28s;display:grid;position:fixed;top:0;left:0}.project-reader__overview[data-ready=false],.project-reader:not([data-phase=settled]) .project-reader__overview{pointer-events:none;opacity:0}.project-reader__overview-slot{height:var(--project-overview-slot-height,max(calc(320px/var(--project-cover-aspect,1.5)),460px));margin-bottom:48px}@media (max-width:1099px){.project-reader__overview{position:relative}.project-reader__overview-slot{height:auto;margin-bottom:24px}}@media (min-width:800px) and (max-width:1099px){.project-reader__overview{grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;column-gap:48px}.project-reader__overview .project-reader__overview-image{grid-column:1;justify-self:center;margin-bottom:0}.project-reader__overview-copy-anchor{grid-column:2;min-width:0}}.project-reader__rail{top:calc(var(--wc-header-height) + 24px);left:var(--portfolio-about-inset);pointer-events:none;width:168px;height:1px;position:absolute}.project-reader__overview-image{aspect-ratio:3/2;width:100%;height:auto;margin-bottom:8px;position:relative;overflow:visible}.project-reader__overview-media,.project-reader__visual-media{position:absolute;inset:0;overflow:hidden}.project-reader__overview-media{pointer-events:none}.project-reader__mass-surface{--sm-l:720px;--project-reader-shadow-y:clamp(16px,calc(var(--sm-l,720px)*.03),36px);--project-reader-shadow-blur:clamp(30px,calc(var(--sm-l,720px)*.055),72px);--project-reader-shadow-alpha:.34;--project-reader-shadow-raised-alpha:.46;--project-reader-sun-ink:#00000042;box-shadow:var(--sun-card-cast-x)var(--sun-card-cast-y)calc(var(--project-reader-shadow-blur)*var(--sun-cast-softness))-28px color-mix(in srgb,var(--project-reader-sun-ink)var(--sun-cast-share),transparent),0 calc(var(--project-reader-shadow-y)*var(--sun-card-ambient-factor))var(--project-reader-shadow-blur)-28px oklch(0 0 0/var(--project-reader-shadow-alpha));transition:box-shadow .5s cubic-bezier(.37,0,.63,1)}@supports (color:lab(0% 0 0)){.project-reader__mass-surface{--project-reader-sun-ink:lab(0% 0 0/.26)}}.dark .project-reader__mass-surface{box-shadow:0 clamp(8px,calc(var(--sm-l)*.018*var(--wc-cast,1)),30px)clamp(16px,calc(var(--sm-l)*.035*var(--wc-cast,1)),60px)-16px oklch(0 0 0/var(--wc-cast-alpha,.55));--project-reader-shadow-alpha:.65;--project-reader-shadow-raised-alpha:.8;--project-reader-sun-ink:#00000070}@supports (color:lab(0% 0 0)){.dark .project-reader__mass-surface{--project-reader-sun-ink:lab(0% 0 0/.44)}}@media (hover:hover) and (pointer:fine){.project-reader[data-phase=settled]:not([data-setup-present]) .project-reader__overview[data-ready=true][data-copy-visible=true] .project-reader__overview-image:hover,.project-reader[data-phase=settled]:not([data-setup-present]) .project-reader__asset[data-scroll-reveal="2"] .project-reader__visual:hover{--project-reader-shadow-y:clamp(22px,calc(var(--sm-l,720px)*.0425),52px);--project-reader-shadow-blur:clamp(40px,calc(var(--sm-l,720px)*.075),96px);--project-reader-shadow-alpha:var(--project-reader-shadow-raised-alpha)}}.wc-root[data-sky-playing=true] .project-reader__mass-surface{transition:none}@media (prefers-contrast:more){.project-reader__mass-surface{box-shadow:0 0 0 1px var(--v3-color-border-strong)}}@media (forced-colors:active){.project-reader__mass-surface{box-shadow:0 0 0 1px canvastext}}.project-reader:not([data-phase=settled]) .project-reader__mass-surface,.project-reader[data-setup-present] .project-reader__mass-surface,.project-reader__overview[data-copy-visible=false] .project-reader__overview-image{transition:none}@media (prefers-reduced-motion:reduce){.project-reader__mass-surface{transition:none}}@media (max-width:1099px){.project-reader__overview-image{width:min(100%,var(--project-overview-image-width,100%));margin-inline:auto}}.project-reader__overview-copy{gap:10px;display:grid}@media (min-width:1100px){.project-reader__overview-copy-anchor{position:absolute;top:0;left:0}}.project-reader__overview[data-copy-visible=false] .project-reader__overview-copy{pointer-events:none}.project-reader__overview h2{font-family:var(--v3-font-family-display);margin:0;font-weight:300;line-height:1.05}.portfolio-about__article .v3-article>h2{font-family:var(--v3-font-family-display);letter-spacing:-.02em;text-wrap:balance;margin:0;font-size:clamp(27px,3.2vw,42px);font-weight:300;line-height:1.2}.project-reader__overview-copy[data-mode=opening] h2{font-size:56px}.project-reader__overview-copy[data-mode=docked] h2{font-size:32px}.project-reader__website{font-family:var(--v3-font-family-display);color:var(--v3-focus-color);overflow-wrap:anywhere;justify-self:start;font-size:26px;font-style:italic;text-decoration:none}.project-reader__website:hover{text-decoration:underline}.project-reader__presentation{justify-self:start;align-items:center;gap:12px;margin-block:4px;font-size:14px;display:flex}.project-reader__details{gap:28px;margin:26px 0 0;display:grid}.project-reader__details dt{font-family:var(--v3-font-family-display);text-transform:uppercase;margin-bottom:12px;font-size:16px;font-style:italic;font-weight:600}.project-reader__details dd{font-family:var(--v3-font-family-display);margin:0;font-size:26px;font-weight:300;line-height:1.3}.project-reader__overview-copy[data-mode=docked] .project-reader__website{font-size:20px}.project-reader__overview-copy[data-mode=docked] .project-reader__details{gap:18px;margin-top:14px}.project-reader__overview-copy[data-mode=docked] .project-reader__details dt{margin-bottom:6px;font-size:12px}.project-reader__overview-copy[data-mode=docked] .project-reader__details dd{font-size:17px}.project-reader__story{max-width:1160px;margin-inline:auto;padding:64px 0 120px}.project-reader__intro{max-width:760px;margin:0 auto 96px}.project-reader__intro--rich{gap:24px;display:grid}.project-reader__summary{font-family:var(--v3-font-family-display);text-wrap:pretty;font-size:clamp(25px,3vw,36px);font-weight:300;line-height:1.3}.project-reader__intro--rich .project-reader__summary{margin:0 0 12px}.project-reader__asset{--project-asset-max-height:max(0px,min(80dvh,calc(100dvh - var(--wc-header-height) - 48px - env(safe-area-inset-bottom))));--project-asset-width:min(100%,760px,calc(var(--project-asset-max-height)*var(--project-asset-aspect,1.5)));margin:0 0 112px}.project-reader__asset:last-child{padding-bottom:max(0px,calc(100dvh - var(--wc-header-height) - 400px));margin-bottom:0}.project-reader__story-section{--project-story-copy-width:760px;margin:0 0 112px}.project-reader__story-section:last-of-type{margin-bottom:112px}.project-reader__asset--story{margin-bottom:36px}.project-reader__story-copy{width:min(100%,var(--project-story-copy-width,650px));gap:20px;margin-inline:auto;display:grid}.project-reader__story-heading{font-family:var(--v3-font-family-display);text-wrap:pretty;margin:0 0 4px;font-size:clamp(30px,4vw,44px);font-weight:300;line-height:1.2}.project-reader__story-paragraph{color:var(--v3-color-text);text-wrap:pretty;margin:0;font-size:18px;line-height:1.72}.project-reader__credit{border-top:1px solid var(--v3-color-border);margin-top:16px;padding-top:32px}.project-reader__credit p{margin:0}.portfolio-about__article .v3-article>p{text-wrap:pretty;margin:0;padding-top:1.4em}.project-reader__credit-studio{font-family:var(--v3-font-family-display);font-size:22px;font-weight:300;line-height:1.3}.project-reader__credit-line{color:var(--v3-color-text-muted);font-size:15px;line-height:1.55}.project-reader__visual{width:var(--project-asset-width);aspect-ratio:var(--project-asset-aspect,1.5);margin-inline:auto;position:relative;overflow:visible}.project-reader__comparison{--project-comparison-gap:clamp(16px,2.5vw,32px);--project-comparison-stage-height:min(var(--project-asset-max-height),calc((100cqi - var(--project-comparison-gap))*1.65/2.65));gap:var(--project-comparison-gap);justify-content:center;align-items:flex-start;width:min(100%,1160px);margin-inline:auto;display:flex;container-type:inline-size}.project-reader__comparison-panel{min-width:0;max-width:var(--project-asset-max-height);flex:1.65 1 0;align-content:start;gap:10px;display:grid}.project-reader__comparison-panel[data-comparison-view=companion]{max-width:min(var(--project-asset-max-height),460px);flex-grow:1;justify-items:center}.project-reader__comparison-panel .project-reader__visual{width:100%}.project-reader__comparison-panel[data-comparison-view=companion] .project-reader__visual{--artifact-phone-inline:76cqi;--artifact-phone-block:156.757cqi;width:min(100%,calc(var(--project-comparison-stage-height)*3/5));aspect-ratio:3/5;height:auto;max-height:none}.project-reader__comparison-panel[data-comparison-view=companion] .project-reader__visual [data-artifact-mockup]{aspect-ratio:auto;height:100%}.wc-root:is([data-entrance-stage="5"],[data-entrance-state=settled],[data-entrance-state=skipped],[data-entrance-state=cancelled]) .work-grid-static [data-card-surface] [data-artifact-mockup]{background-color:var(--artifact-grid-mockup,color-mix(in srgb,var(--artifact-grid-base),transparent var(--sky-night-share)));transition:background-color .22s}.wc-root:is([data-entrance-stage="5"],[data-entrance-state=settled],[data-entrance-state=skipped],[data-entrance-state=cancelled]) .work-grid-static .wc-card:is(:has(>.wc-card__hit:is(:active,[data-pressing=true])),html[data-keyboard-focus=true] :has(>.wc-card__hit:focus-visible)) [data-card-surface],.wc-root:is([data-entrance-stage="5"],[data-entrance-state=settled],[data-entrance-state=skipped],[data-entrance-state=cancelled]) .work-grid-static .wc-card:is(:has(>.wc-card__hit:is(:active,[data-pressing=true])),html[data-keyboard-focus=true] :has(>.wc-card__hit:focus-visible)) [data-artifact-mockup]{--artifact-grid-interaction:var(--artifact-grid-active);--sky-card-glass-layer-opacity:0%;--sun-rim-opacity:0;background-color:var(--artifact-grid-active);-webkit-backdrop-filter:none;backdrop-filter:none;transition:none}:root[data-portfolio-atmosphere=weather] .wc-root .work-grid-static .wc-card:is(:has(>.wc-card__hit:is(:active,[data-pressing=true])),html[data-keyboard-focus=true] :has(>.wc-card__hit:focus-visible)) [data-card-surface]{border-color:color-mix(in oklab,#777,#bbb var(--sky-surface-night-share))}.project-reader__comparison-label{font-family:var(--v3-font-family-display);color:var(--v3-color-text-muted);font-size:13px;font-style:italic;line-height:1.3}.project-reader__comparison-panel[data-comparison-view=companion] .project-reader__comparison-label{justify-self:stretch}.project-reader__device-choices{border:0;flex-wrap:wrap;justify-self:start;align-items:center;gap:6px;margin:4px 0 8px;padding:0;display:flex}.project-reader__device-choices button{min-height:36px;font:inherit;color:var(--v3-color-text);cursor:pointer;background:var(--v3-color-bg);border:1px solid var(--v3-color-border);border-radius:999px;padding:5px 12px;font-size:13px;transition:background-color .18s,color .18s,border-color .18s}.project-reader__device-choices button[aria-pressed=true]{color:var(--v3-color-bg);background:var(--v3-color-text);border-color:var(--v3-color-text)}.project-reader__device-choices button:focus-visible{outline:2px solid var(--v3-focus-color);outline-offset:2px}@media (prefers-reduced-motion:reduce){.project-reader__device-choices button{transition:none}}.project-reader__copy{transition:opacity .36s,transform .5s cubic-bezier(.22,1,.36,1)}.project-reader__asset figcaption{gap:18px;width:100%;margin:20px auto 0;display:grid}.project-reader__asset--story figcaption{width:var(--project-asset-width)}.project-reader__asset[data-comparison] figcaption{width:min(100%,760px)}.project-reader__caption{max-width:38rem;font-family:var(--v3-font-family-display);color:var(--v3-color-text);text-wrap:pretty;margin:0 0 14px;font-size:clamp(20px,2.2vw,24px);font-style:italic;font-weight:300;line-height:1.45}.project-reader__asset-heading{justify-content:space-between;align-items:baseline;gap:24px;display:flex}.project-reader__asset-heading h3{font-family:var(--v3-font-family-display);margin:0;font-size:clamp(30px,4vw,44px);font-weight:300;line-height:1.2}.project-reader__asset-heading time{color:var(--v3-color-text-muted);white-space:nowrap;font-size:12px}.project-reader__note{max-width:650px;color:var(--v3-color-text-muted);text-wrap:pretty;margin:0;font-size:16px;line-height:1.65}.project-reader[data-phase=preparing] .project-reader__copy,.project-reader[data-phase=opening] .project-reader__copy,.project-reader[data-phase=closing] .project-reader__copy{opacity:0;transform:translateY(10px)}.project-reader__flight{z-index:3;pointer-events:none;transform-origin:0 0;will-change:transform;position:fixed;top:0;left:0}.project-reader__flight[data-visible=false]{visibility:hidden}.project-reader[data-phase=closing] .project-reader__visual{opacity:0}@media (max-width:480px){.project-reader__story{padding-top:32px;padding-bottom:64px}.project-reader__intro,.project-reader__asset{margin-bottom:64px}.project-reader__story-section,.project-reader__story-section:last-of-type{margin-bottom:72px}.project-reader__asset--story{margin-bottom:28px}}@media (max-width:799px){.project-reader__comparison{--project-comparison-stage-height:var(--project-asset-max-height);grid-template-columns:minmax(0,1fr);justify-content:stretch;gap:28px;width:min(100%,760px);display:grid}.project-reader__comparison-panel,.project-reader__comparison-panel[data-comparison-view=companion]{width:min(100%,var(--project-asset-max-height));max-width:none;margin-inline:auto}.project-reader__overview-copy[data-mode=opening] h2,.project-reader__overview-copy[data-mode=docked] h2{font-size:54px;line-height:1.06}.project-reader__website,.project-reader__overview-copy[data-mode=docked] .project-reader__website{font-size:16px;line-height:1}.project-reader__details dt,.project-reader__overview-copy[data-mode=docked] .project-reader__details dt{letter-spacing:.08em;margin-bottom:8px;font-size:14px;font-weight:700;line-height:1.35}.project-reader__details dd,.project-reader__overview-copy[data-mode=docked] .project-reader__details dd{font-size:16px;font-weight:400;line-height:1.4}.project-reader__summary{font-size:18px;font-weight:400;line-height:1.65}.project-reader__caption{font-size:14px;font-weight:400;line-height:1.35}.project-reader__asset-heading h3{font-size:30px;line-height:1.2}.project-reader__note{font-size:16px;line-height:1.65}.project-reader__story-heading{font-size:30px}.project-reader__story-paragraph{font-size:16px;line-height:1.7}}@media (prefers-reduced-motion:reduce){.portfolio-work,.project-reader__copy,.project-reader__overview{transition:none}}@media (min-width:1100px){.project-reader__story{width:min(1160px,100% - 252px);margin-left:max(228px,50% - 580px);margin-right:auto}}html:has(.wc-root--static){scrollbar-gutter:stable}.wc-root[data-project-present=true] .wc-card[data-reader-selected=true] .wc-card__stage{visibility:hidden}.work-grid-static .wc-card:has(>.wc-card__hit:hover) .wc-card__stage{filter:blur(8px)}html[data-keyboard-focus=true] .work-grid-static .wc-card:has(.wc-card__hit:focus-visible) .wc-card__stage{filter:blur(8px)}[data-presentation-header],.wc-root,.portfolio-header{--portfolio-glass-glint-layer:linear-gradient(var(--sun-rim-angle),transparent 18%,color-mix(in srgb,var(--header-solar-glint)var(--sun-cast-share),transparent)88%),linear-gradient(165deg,color-mix(in srgb,var(--header-glass-glint)var(--sun-ambient-glint-share),transparent),transparent 48%);--portfolio-glass-inset-rest:inset 0 1px 0 var(--header-glass-highlight),inset 0 -1px 0 #ffffff2e}.portfolio-header,[data-presentation-header],.wc-root{--header-glass-glint:#ffffff47;--header-glass-fill:#e0e9f861;--header-glass-hover:#dce6f79e;--header-glass-pressed:#d1def4b8;--header-glass-rim:#9bafcd38;--header-glass-highlight:#ffffffe6;--header-glass-shadow:#2331490e;--header-solar-glint:#ffffff59;--header-solar-cast:#2331492b}.portfolio-about .portfolio-header{pointer-events:auto}.dark .portfolio-header,.dark [data-presentation-header],.dark .wc-root{--header-glass-glint:#ffffff14;--header-glass-fill:#6377972e;--header-glass-hover:#748bae45;--header-glass-pressed:#7e97bc57;--header-glass-rim:#b4c7e333;--header-glass-highlight:#e1ecff33;--header-glass-shadow:#00000038;--header-solar-glint:#e1ecff29;--header-solar-cast:#0000004d}:root.dark .wc-root{--wc-cast-alpha:.55}:root[data-portfolio-atmosphere=weather] .wc-root{--artifact-grid-base:color-mix(in oklab,#f2f2f2,#1a1a1a var(--sky-surface-night-share));--artifact-grid-hover:color-mix(in oklab,#ebebeb,#1f1f1f var(--sky-surface-night-share));--artifact-grid-active:color-mix(in oklab,#e6e6e6,#292929 var(--sky-surface-night-share));--artifact-grid-outline:color-mix(in oklab,#ededed,#2e2e2e var(--sky-surface-night-share));--artifact-grid-surface:var(--artifact-grid-base);--artifact-grid-mockup:var(--artifact-grid-base);--artifact-grid-border:var(--artifact-grid-outline);--artifact-grid-indicator:color-mix(in oklab,#111,#e8e8e8 var(--sky-surface-night-share))}@supports (color:lab(0% 0 0)){:root[data-portfolio-atmosphere=weather] .wc-root{--artifact-grid-outline:color-mix(in oklab,#ededed,lab(18.8% 0 0) var(--sky-surface-night-share));--artifact-grid-indicator:color-mix(in oklab,#111,lab(91.88% .0000298023 -.0000119209) var(--sky-surface-night-share))}}.portfolio-glass-button{z-index:0;box-shadow:0 2px 8px var(--header-glass-shadow),var(--sun-button-cast-x)var(--sun-button-cast-y)var(--sun-button-cast-blur)-2px color-mix(in srgb,var(--header-solar-cast)var(--sun-cast-share),transparent);-webkit-tap-highlight-color:transparent;border-radius:999px;transition:box-shadow .16s;position:relative}.portfolio-action__clip:before{inset:var(--glass-inset-block,0)var(--glass-inset-inline,0);z-index:1;pointer-events:none;content:"";background:var(--portfolio-glass-glint-layer),var(--header-glass-fill);border:1px solid var(--header-glass-rim);border-radius:inherit;box-shadow:var(--portfolio-glass-inset-rest);transition:background-color .16s,box-shadow .16s;position:absolute}.portfolio-glass-button:hover{box-shadow:0 3px 12px var(--header-glass-shadow),var(--sun-button-cast-x)var(--sun-button-cast-y)var(--sun-button-cast-blur)-2px color-mix(in srgb,var(--header-solar-cast)var(--sun-cast-share),transparent)}.portfolio-glass-button:hover .portfolio-action__clip:before{background-color:var(--header-glass-hover);box-shadow:inset 0 1px 0 var(--header-glass-highlight),inset 0 -1px 0 #ffffff38}.portfolio-glass-button:active{box-shadow:none}.portfolio-glass-button:active .portfolio-action__clip:before{background-color:var(--header-glass-pressed);box-shadow:inset 0 1px 3px var(--header-glass-shadow)}@property --portfolio-button-reveal-radius{syntax:"<length-percentage>";inherits:false;initial-value:150%}@property --portfolio-button-tint{syntax:"<color>";inherits:false;initial-value:#0000}.portfolio-action__clip:after{--portfolio-button-reveal-radius:150%;--portfolio-button-tint:color-mix(in srgb,var(--header-project-color)50%,transparent);--portfolio-glass-radial-x:var(--button-reveal-origin-inline,50%);--portfolio-glass-radial-y:50%;--portfolio-glass-radial-tint:var(--portfolio-button-tint);--portfolio-glass-radial-radius:var(--portfolio-button-reveal-radius);inset:var(--glass-inset-block,0)var(--glass-inset-inline,0);z-index:0;pointer-events:none;content:"";border-radius:inherit;opacity:0;background:radial-gradient(circle at var(--portfolio-glass-radial-x)var(--portfolio-glass-radial-y),var(--portfolio-glass-radial-tint)0 var(--portfolio-glass-radial-radius),transparent var(--portfolio-glass-radial-radius));transition:--portfolio-button-tint .16s;position:absolute}.dark .portfolio-action__clip:after{--portfolio-button-tint:color-mix(in srgb,var(--header-project-color)30%,transparent)}.portfolio-glass-button[data-dot-filled=true] .portfolio-action__clip:after{opacity:1;animation:.28s cubic-bezier(.22,1,.36,1) portfolio-button-color-reveal}@keyframes portfolio-button-color-reveal{0%{--portfolio-button-reveal-radius:9px}to{--portfolio-button-reveal-radius:150%}}@media (prefers-reduced-motion:reduce){.portfolio-glass-button[data-dot-filled=true] .portfolio-action__clip:after{transition:none;animation:none}}.portfolio-glass-button:focus-visible{outline:2px solid var(--v3-focus-color);outline-offset:4px;border-radius:999px}.portfolio-header__nav .portfolio-glass-button{min-height:42px;font-size:inherit;white-space:nowrap;touch-action:manipulation;justify-content:center;align-items:center;padding:0 18px;font-weight:500;display:inline-flex}.portfolio-header__about.portfolio-glass-button{--glass-inset-block:-6px;--glass-inset-inline:-12px}.portfolio-about__close.portfolio-glass-button{background:0 0;margin-right:0}@media (max-width:700px){.portfolio-header__nav .portfolio-glass-button{min-height:44px;padding-inline:8px}.portfolio-header__about.portfolio-glass-button{--glass-inset-inline:-8px}}@media (prefers-reduced-motion:reduce){.portfolio-glass-button,.portfolio-action__clip:before{transition:none}}.portfolio-header__dot-host{z-index:0;pointer-events:none;position:absolute;inset:0}.portfolio-header__greeting,.portfolio-header__nav,.portfolio-about__close{z-index:1;position:relative}.portfolio-header[data-reading=true] .portfolio-header__nav{pointer-events:none;opacity:0;display:none}.portfolio-about__close{position:absolute}.portfolio-header__about.portfolio-glass-button .portfolio-action__clip:before{opacity:0;transition:opacity .16s,background-color .16s,box-shadow .16s}.portfolio-header__about.portfolio-glass-button:disabled .portfolio-action__clip:before{--header-current-fill:var(--header-glass-fill)}.portfolio-glass-button[data-dot-filled=true]:hover .portfolio-action__clip:before{background-color:var(--header-glass-fill)}.portfolio-glass-button[data-dot-filled=true]:active .portfolio-action__clip:before{background-color:var(--header-glass-pressed)}.portfolio-header__about.portfolio-glass-button:hover .portfolio-action__clip:before,html[data-keyboard-focus=true] .portfolio-header__about.portfolio-glass-button:focus-visible .portfolio-action__clip:before{opacity:1}@media (prefers-reduced-motion:reduce){.portfolio-header__about.portfolio-glass-button .portfolio-action__clip:before{transition:none}}.portfolio-glass-surface{inset:var(--glass-inset-block,0)var(--glass-inset-inline,0);z-index:2;pointer-events:none;border-radius:inherit;position:absolute}.portfolio-glass-surface:before{content:"";border:1px solid var(--header-solar-glint);border-radius:inherit;box-shadow:inset 0 0 4px var(--header-solar-glint);opacity:var(--sun-rim-opacity);-webkit-mask-image:linear-gradient(var(--sun-rim-angle),transparent 10%,#000 85%);-webkit-mask-image:linear-gradient(var(--sun-rim-angle),transparent 10%,#000 85%);mask-image:linear-gradient(var(--sun-rim-angle),transparent 10%,#000 85%);transition:opacity .16s;position:absolute;inset:0}.portfolio-glass-button:is(:hover,:active,:focus-visible) .portfolio-glass-surface:before{opacity:0}.wc-root[data-sky-playing=true] .portfolio-glass-button,.wc-root[data-sky-playing=true] .portfolio-glass-surface:before{transition:none}@media (prefers-reduced-motion:reduce),(prefers-contrast:more),(forced-colors:active){.portfolio-glass-surface:before{transition:none}}@media (prefers-contrast:more),(forced-colors:active){.portfolio-glass-surface:before{display:none}}.portfolio-header__actions{z-index:1;align-items:center;gap:10px;display:flex;position:relative}.portfolio-theme-control{z-index:2;flex:none;position:relative}.portfolio-header__presentation{width:48px}.portfolio-header__action{--button-reveal-origin-inline:calc(100% - 24px);min-width:48px;height:48px;font-family:var(--v3-font-family);font-size:inherit;color:inherit;touch-action:manipulation;cursor:pointer;background:0 0;border:0;flex:none;justify-content:flex-end;align-items:center;padding:0;font-weight:500;display:inline-flex}.portfolio-header__nav .portfolio-header__recall{--button-reveal-origin-inline:calc(100% - 24px);flex:none;justify-content:flex-end;min-width:48px;height:48px;min-height:48px;padding:0}html[data-keyboard-focus=true] .portfolio-header__recall:focus-visible{outline:2px solid var(--v3-focus-color);outline-offset:3px}.portfolio-action__clip{border-radius:inherit;-webkit-backdrop-filter:blur(16px)saturate(150%);backdrop-filter:blur(16px)saturate(150%);clip-path:inset(0 round 999px);justify-content:flex-end;width:100%;height:100%;display:flex;position:relative;overflow:hidden}.portfolio-action__measure{z-index:2;vertical-align:top;flex-shrink:0;width:max-content;height:48px;display:inline-flex;position:relative}.portfolio-action__content{white-space:nowrap;flex:none;justify-content:center;align-items:center;gap:9px;height:48px;padding-inline:13px;display:inline-flex}.portfolio-action__content[data-state=close]{gap:0}.portfolio-action__icon{flex:none;width:22px;height:22px}.portfolio-action__label{line-height:1;display:inline-block}@media (max-width:700px){.portfolio-header__actions{gap:8px}}.portfolio-name__dot-target{pointer-events:none;width:18px;height:18px;position:absolute;top:50%;left:calc(100% + 12px);transform:translateY(-50%)}.portfolio-header__greeting{flex:none;width:196px;height:40px}.portfolio-header__about{will-change:transform}.portfolio-about .portfolio-header{z-index:auto;position:absolute;overflow-x:clip}.portfolio-about .portfolio-header__dot-host,.portfolio-about .portfolio-header__actions,.portfolio-about .portfolio-header__greeting{z-index:var(--portfolio-about-layer-header)}.portfolio-about[data-balloon-stage-ready=true] .portfolio-header__greeting{visibility:hidden}.portfolio-about__article{padding-top:calc(var(--wc-header-height) + clamp(32px,5vh,64px))}.portfolio-about__scroller[data-biography-ready=false]{overflow-y:hidden}@media (max-width:700px){.portfolio-header .portfolio-header__greeting{aspect-ratio:196/40;width:min(196px,100%);min-width:0;height:auto;container-type:inline-size}.portfolio-header__greeting .portfolio-header__about,.portfolio-header__greeting .metallic-name{width:100%;height:100%}.portfolio-header__greeting .metallic-name__fallback{font-size:min(24px,12.2449cqw)}}.wc-capture{width:100%;height:100%;position:relative}.wc-capture>.wc-shot{position:absolute;inset:0}.wc-capture__reel{pointer-events:none}:root[data-portfolio-atmosphere=dark] [data-surface-comparison]{gap:8px;display:grid}.wc-root[data-project-present=true] [data-surface-comparison]{display:none}:root[data-surface-comparison-enabled=true][data-portfolio-atmosphere=dark][data-portfolio-surface-palette=wealthsimple] .portfolio-fonts{--v3-color-bg:#09090a;--v3-color-text:#fcfcfc}:root[data-surface-comparison-enabled=true][data-portfolio-atmosphere=dark][data-portfolio-surface-palette=wealthsimple] .wc-root{--artifact-grid-base:#32302ff2;--artifact-grid-hover:#32302ff2;--artifact-grid-active:#32302ff2;--artifact-grid-outline:#94908d}
.project-reader__lock{color:var(--v3-color-text-muted);flex-wrap:wrap;align-items:center;gap:12px;margin-top:32px;font-size:14px;display:flex}.project-reader__lock button{border:1px solid var(--v3-color-border);color:var(--v3-color-text);cursor:pointer;background:0 0;border-radius:8px;padding:10px 14px}.project-reader__lock button:focus-visible{outline:2px solid var(--v3-focus-color);outline-offset:3px}
.portfolio-header{--portfolio-action-optical-size:22px;--portfolio-name-optical-width:calc(var(--portfolio-action-optical-size)*7.53);--portfolio-name-optical-height:calc(var(--portfolio-name-optical-width)*40/196)}.portfolio-header .portfolio-header__greeting{width:var(--portfolio-name-optical-width);height:var(--portfolio-name-optical-height);flex:none}.portfolio-header__greeting .portfolio-header__about,.portfolio-header__greeting .metallic-name{width:100%;height:100%}.portfolio-header .portfolio-action__icon{width:var(--portfolio-action-optical-size);height:var(--portfolio-action-optical-size)}@media (max-width:700px){.portfolio-header{--portfolio-header-usable-width:calc(100vw - max(var(--portfolio-content-inline-inset),env(safe-area-inset-left)) - max(var(--portfolio-content-inline-inset),env(safe-area-inset-right)));--portfolio-action-control-size:clamp(44px,calc(44px + (100vw - 390px)*(4/40)),48px);--portfolio-action-gap:clamp(2px,calc(2px + (100vw - 320px)*(6/120)),8px);--portfolio-action-optical-size:clamp(10px,calc(( var(--portfolio-header-usable-width) - 4*var(--portfolio-action-control-size) - 3*var(--portfolio-action-gap) - 8px )/7.53),23px);--portfolio-action-inline-padding:calc(( var(--portfolio-action-control-size) - var(--portfolio-action-optical-size))/2);--portfolio-action-control-half:calc(var(--portfolio-action-control-size)/2);--portfolio-action-recall-end-padding:var(--portfolio-action-inline-padding);grid-template-columns:minmax(0,1fr) max-content;column-gap:8px}.portfolio-header__actions{gap:var(--portfolio-action-gap)}.portfolio-header__actions .portfolio-header__action,.portfolio-header__actions .portfolio-header__recall{--portfolio-button-hit-inline:calc(var(--portfolio-action-gap)/-2);--button-reveal-origin-inline:calc(100% - var(--portfolio-action-control-half));min-width:var(--portfolio-action-control-size);max-width:var(--portfolio-action-control-size);height:var(--portfolio-action-control-size);min-height:var(--portfolio-action-control-size)}.portfolio-header__presentation,.portfolio-header__actions .portfolio-theme-control{width:var(--portfolio-action-control-size)}.portfolio-action__measure,.portfolio-action__content{height:var(--portfolio-action-control-size)}.portfolio-action__content{gap:calc(var(--portfolio-action-optical-size)*.4);min-width:var(--portfolio-action-control-size);padding-inline:var(--portfolio-action-inline-padding)}.portfolio-header__recall .portfolio-action__content,.portfolio-header__action[data-action-mode=contact] .portfolio-action__content{padding-right:var(--portfolio-action-recall-end-padding)}.portfolio-action__label{font-size:var(--portfolio-action-optical-size)}}
@media (max-width:700px){.portfolio-header[data-writing-action-visible=false]{--portfolio-action-optical-size:clamp(10px,calc(( var(--portfolio-header-usable-width) - 3*var(--portfolio-action-control-size) - 2*var(--portfolio-action-gap) - 8px )/7.53),23px)}}
.project-reader[data-type-scale=studio]{--reader-body-size:19px;--reader-body-line:1.62;--reader-summary-size:clamp(27px,3vw,38px);--reader-summary-line:1.3;--reader-heading-size:clamp(32px,4vw,46px);--reader-caption-size:clamp(21px,2.2vw,25px);--reader-caption-line:1.4;--reader-note-size:17px;--reader-evidence-size:17px}.project-reader[data-type-scale=story]{--reader-body-size:21px;--reader-body-line:1.5;--reader-summary-size:clamp(30px,3.5vw,42px);--reader-summary-line:1.25;--reader-heading-size:clamp(34px,4.4vw,48px);--reader-caption-size:clamp(22px,2.5vw,27px);--reader-caption-line:1.4;--reader-note-size:19px;--reader-evidence-size:19px}.project-reader:is([data-type-scale=studio],[data-type-scale=story]) .project-reader__story-paragraph{font-size:var(--reader-body-size);line-height:var(--reader-body-line)}.project-reader:is([data-type-scale=studio],[data-type-scale=story]) .project-reader__summary{font-size:var(--reader-summary-size);line-height:var(--reader-summary-line)}.project-reader:is([data-type-scale=studio],[data-type-scale=story]) :is(.project-reader__story-heading,.project-reader__asset-heading h3){font-size:var(--reader-heading-size);line-height:1.18}.project-reader:is([data-type-scale=studio],[data-type-scale=story]) .project-reader__caption{font-size:var(--reader-caption-size);line-height:var(--reader-caption-line)}.project-reader:is([data-type-scale=studio],[data-type-scale=story]) .project-reader__note{font-size:var(--reader-note-size);line-height:1.55}.project-reader:is([data-type-scale=studio],[data-type-scale=story]) [data-project-evidence]{font-size:var(--reader-evidence-size);line-height:1.55}@media (max-width:799px){.project-reader[data-type-scale=studio]{--reader-body-size:18px;--reader-body-line:1.65;--reader-summary-size:22px;--reader-summary-line:1.45;--reader-heading-size:34px;--reader-caption-size:16px;--reader-caption-line:1.45;--reader-note-size:17px;--reader-evidence-size:18px;--reader-meta-size:18px;--reader-label-size:14px;--reader-small-size:16px}.project-reader[data-type-scale=story]{--reader-body-size:20px;--reader-body-line:1.5;--reader-summary-size:26px;--reader-summary-line:1.4;--reader-heading-size:36px;--reader-caption-size:18px;--reader-caption-line:1.45;--reader-note-size:19px;--reader-evidence-size:20px;--reader-meta-size:20px;--reader-label-size:16px;--reader-small-size:18px}.project-reader:is([data-type-scale=studio],[data-type-scale=story]) .project-reader__website{font-size:var(--reader-meta-size);line-height:1.25}.project-reader:is([data-type-scale=studio],[data-type-scale=story]) .project-reader__details dt{font-size:var(--reader-label-size);font-weight:400}.project-reader:is([data-type-scale=studio],[data-type-scale=story]) .project-reader__details dd{font-size:var(--reader-meta-size);line-height:1.4}.project-reader:is([data-type-scale=studio],[data-type-scale=story]) :is(.project-reader__comparison-label,.project-reader__asset-heading time){font-size:var(--reader-label-size)}.project-reader:is([data-type-scale=studio],[data-type-scale=story]) details>summary{font-size:var(--reader-small-size)}.project-reader:is([data-type-scale=studio],[data-type-scale=story]) [data-project-evidence] dt{font-size:var(--reader-label-size)}}
.writing-reader{background:var(--v3-color-bg);pointer-events:auto;position:absolute;inset:0}.writing-reader__scroller{inset:var(--wc-header-height)0 0;overscroll-behavior:contain;touch-action:pan-y pinch-zoom;scrollbar-width:thin;position:absolute;overflow-y:auto}html[data-keyboard-focus=true] .writing-reader__scroller:focus-visible{outline:2px solid var(--v3-focus-color);outline-offset:-4px}.writing-shell{background:var(--v3-color-bg);min-height:100%;color:var(--v3-color-text);font-family:var(--v3-font-family);-webkit-font-smoothing:antialiased;overflow-x:clip}.portfolio-header[data-writing=true] .portfolio-header__about,.portfolio-header[data-writing=true] .portfolio-header__action{min-height:44px}.writing-index{width:min(100%,64rem);min-height:calc(100dvh - var(--wc-header-height) - 10rem);margin:0 auto;padding:clamp(4.5rem,10vw,8rem) clamp(1.25rem,5vw,4.5rem) clamp(5rem,10vw,8rem)}.writing-index__header{margin-bottom:clamp(3.5rem,8vw,6.5rem)}.writing-index__header h1{max-width:12ch;color:var(--v3-color-text);font-family:var(--v3-font-family-display);letter-spacing:-.055em;text-wrap:balance;margin:0;font-size:clamp(4.5rem,13vw,8.75rem);font-weight:300;line-height:.88}.writing-list{border-bottom:1px solid var(--v3-color-border);margin:0;padding:0;list-style:none}.writing-list__item{border-top:1px solid var(--v3-color-border)}.writing-list__item:first-child{border-top:0}.writing-list__link{min-height:76px;color:inherit;touch-action:manipulation;grid-template-columns:5.5rem minmax(0,1fr) auto;align-items:baseline;gap:clamp(1rem,3vw,2.25rem);padding:1rem 0;text-decoration:none;display:grid}.writing-list__year,.writing-list__date{color:var(--v3-color-text-muted);font-variant-numeric:tabular-nums;letter-spacing:.015em;white-space:nowrap;font-size:.75rem;line-height:1.5}.writing-list__title{min-width:0;font-family:var(--v3-font-family-display);letter-spacing:-.018em;overflow-wrap:anywhere;text-wrap:pretty;margin:0;font-size:clamp(1.4rem,3vw,1.8rem);font-weight:350;line-height:1.12}.writing-index__empty{color:var(--v3-color-text-muted);margin:0;font-size:.875rem}.writing-article-page{width:100%;min-height:calc(100dvh - var(--wc-header-height) - 10rem);padding:clamp(3.5rem,8vw,6.5rem) clamp(1.25rem,5vw,4.5rem) clamp(5rem,10vw,8rem)}.writing-article{width:min(100%,45rem);margin:0 auto}.writing-article__header{margin-bottom:clamp(3.75rem,8vw,6.5rem)}.writing-article__back{min-height:44px;color:var(--v3-color-text-muted);letter-spacing:.015em;touch-action:manipulation;align-items:center;gap:.45rem;margin:-.75rem 0 clamp(2rem,6vw,4.5rem);font-size:.75rem;text-decoration:none;display:inline-flex}.writing-article__title{max-width:13ch;font-family:var(--v3-font-family-display);letter-spacing:-.05em;overflow-wrap:anywhere;text-wrap:balance;margin:0;font-size:clamp(3.25rem,9vw,6rem);font-weight:300;line-height:.94}.writing-article__date{color:var(--v3-color-text-muted);font-variant-numeric:tabular-nums;letter-spacing:.015em;margin-top:clamp(1.75rem,4vw,2.5rem);font-size:.75rem;display:block}.writing-article__body{color:color-mix(in srgb,var(--v3-color-text)86%,transparent);font-size:clamp(1rem,1.7vw,1.125rem);line-height:1.75}.writing-article__body>p{text-wrap:pretty;margin:0 0 1.5em}.writing-article__body>ul,.writing-article__body>ol{margin:0 0 1.5em;padding-left:1.4em}.writing-article__body li+li{margin-top:.45em}.writing-article__body strong{color:var(--v3-color-text);font-weight:650}.writing-article__body .v3-inline-link{-webkit-text-decoration-color:var(--v3-color-link-underline);text-decoration-color:var(--v3-color-link-underline);text-underline-offset:.2em;text-decoration-line:underline;text-decoration-thickness:1px}.writing-article__body .v3-inline-link:before{display:none}.writing-article__body .v3-post-h2{color:var(--v3-color-text);font-family:var(--v3-font-family-display);letter-spacing:-.03em;text-wrap:balance;border:0;margin:clamp(4rem,10vw,6rem) 0 1.1em;padding:0;scroll-margin-top:24px;font-size:clamp(2rem,5vw,2.75rem);font-weight:350;line-height:1.05}.writing-article__body .v3-post-h3{color:var(--v3-color-text);font-family:var(--v3-font-family-display);text-wrap:balance;margin:2.75rem 0 .75rem;font-size:clamp(1.4rem,3vw,1.75rem);font-weight:400;line-height:1.15}.writing-article__body .v3-post-blockquote{border-left:1px solid var(--v3-color-border-strong);color:var(--v3-color-text);font-family:var(--v3-font-family-display);margin:clamp(2.25rem,5vw,3.5rem) 0;padding:0 0 0 clamp(1rem,3vw,1.75rem);font-size:clamp(1.4rem,3vw,1.8rem);font-style:italic;line-height:1.35}.writing-article__body .v3-post-callout{margin:2.25rem 0;padding:1rem 1.25rem;font-size:.9375rem;line-height:1.65}.writing-article__body .v3-post-callout p{margin:0}.writing-article__body .v3-post-interactive,.writing-article__body .v3-post-code-block{max-width:100%}.writing-article__body .v3-post-interactive{overflow-x:auto}.writing-article__body .v3-post-code-block{border-color:var(--v3-color-border);border-radius:.75rem;margin:2.25rem 0}.writing-article-page>.v3-post-nav{border-top-color:var(--v3-color-border);width:min(100%,45rem);margin:clamp(4.5rem,10vw,7rem) auto 0;padding-top:0}.writing-article-page .v3-post-nav-inner{gap:clamp(1rem,4vw,3rem)}.writing-article-page .v3-post-nav-link{overflow-wrap:anywhere;touch-action:manipulation;justify-content:center;min-height:92px;padding:1rem 0}.writing-article-page .v3-post-nav-direction{font-size:.75rem}.writing-article-page .v3-post-nav-title{font-family:var(--v3-font-family-display);font-size:clamp(1.1rem,2.5vw,1.35rem);font-weight:350;line-height:1.2}.writing-article-page>.v3-post-toc{display:none}.writing-footer{width:min(100%,64rem);padding:0 clamp(1.25rem,5vw,4.5rem)max(2rem,env(safe-area-inset-bottom));margin:0 auto}.writing-footer__nav{border-top:1px solid var(--v3-color-border);justify-content:space-between;align-items:center;display:flex}.writing-footer__nav :is(a,button){min-height:52px;color:var(--v3-color-text-muted);touch-action:manipulation;cursor:pointer;background:0 0;border:0;align-items:center;padding:0;font-family:inherit;font-size:.75rem;text-decoration:none;display:inline-flex}html[data-keyboard-focus=true] .writing-list__link:focus-visible,html[data-keyboard-focus=true] .writing-article__back:focus-visible,html[data-keyboard-focus=true] .writing-article-page .v3-post-nav-link:focus-visible,html[data-keyboard-focus=true] .writing-article-page .v3-post-toc-link:focus-visible,html[data-keyboard-focus=true] .writing-footer__nav :is(a,button):focus-visible{outline:2px solid var(--v3-color-text);outline-offset:4px;border-radius:3px}@media (hover:hover) and (pointer:fine){.writing-list__link .writing-list__title,.writing-article__back,.writing-article-page .v3-post-nav-link,.writing-footer__nav :is(a,button){transition:opacity .15s}.writing-list__link:hover .writing-list__title,.writing-article__back:hover,.writing-article-page .v3-post-nav-link:hover,.writing-footer__nav :is(a,button):hover{opacity:.52}}@media (min-width:74rem){.writing-article-page>.v3-post-toc{top:calc(var(--wc-header-height) + 4rem);width:8.5rem;display:block;position:fixed;left:calc(50% - 36rem)}.writing-article-page .v3-post-toc-list{gap:.125rem}.writing-article-page .v3-post-toc-link{align-items:center;min-height:32px;font-size:.6875rem;line-height:1.35;display:flex}}@media (max-width:40rem){.writing-list__link{grid-template-columns:minmax(0,1fr) auto;gap:.25rem 1rem;min-height:88px}.writing-list__year{grid-area:1/1}.writing-list__date{grid-area:1/2}.writing-list__title{grid-area:2/1/auto/-1}.writing-article-page .v3-post-nav-inner{gap:1rem}}@keyframes writing-heading-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:no-preference){.writing-index__header,.writing-article__header{animation:.28s cubic-bezier(.22,1,.36,1) both writing-heading-enter}}
.portfolio-fonts :where(a[href],button:not(:disabled)){cursor:pointer}.portfolio-fonts :where(a[href],button:not(:disabled))>*,.portfolio-fonts :where(a[href],button:not(:disabled)) :where(svg,svg *){cursor:inherit}.portfolio-fonts button:disabled,.portfolio-fonts button:disabled>*{cursor:default}
html.lenis,html.lenis body{height:auto}.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}.lenis [data-lenis-prevent],.lenis [data-lenis-prevent-wheel],.lenis [data-lenis-prevent-touch],.lenis [data-lenis-prevent-vertical],.lenis [data-lenis-prevent-horizontal]{overscroll-behavior:contain}.lenis.lenis-smooth iframe{pointer-events:none}.lenis.lenis-autoToggle{transition-behavior:allow-discrete;transition-property:overflow;transition-duration:1ms}
