@font-face{font-family:ReveUI;font-weight:100 900;font-display:swap;src:url(../media/ReveUI.shifted-variable.0nfd50j~gm_c3.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:ReveDisplay;font-weight:500 900;font-display:swap;src:url(../media/ReveDisplay-medium.0qxnuvb458tfc.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:ReveDisplay;font-weight:100 400;font-display:swap;src:url(../media/ReveDisplay-regular.0qf5hh3881ogs.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:ReveSansMono;font-weight:100 900;font-display:swap;src:url(../media/ReveSansMono-variable.0dil5neex7.~1.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--rv-rhythm:8px;--rv-color-gray-50:var(--lightningcss-light,#fafafa)var(--lightningcss-dark,#1a1a1a);--rv-color-gray-100:var(--lightningcss-light,#f0f0f0)var(--lightningcss-dark,#2e2e2e);--rv-color-gray-200:var(--lightningcss-light,#e6e6e6)var(--lightningcss-dark,#383838);--rv-color-gray-300:var(--lightningcss-light,#d6d6d6)var(--lightningcss-dark,#474747);--rv-color-gray-400:var(--lightningcss-light,#a6a6a6)var(--lightningcss-dark,#595959);--rv-color-gray-500:var(--lightningcss-light,#757575)var(--lightningcss-dark,#707070);--rv-color-gray-600:var(--lightningcss-light,#575757)var(--lightningcss-dark,#949494);--rv-color-gray-700:var(--lightningcss-light,#424242)var(--lightningcss-dark,#bababa);--rv-color-gray-800:var(--lightningcss-light,#292929)var(--lightningcss-dark,#d6d6d6);--rv-color-gray-900:var(--lightningcss-light,#1a1a1a)var(--lightningcss-dark,#ebebeb);--rv-color-gray-950:var(--lightningcss-light,#141414)var(--lightningcss-dark,#f2f2f2);--rv-color-red-50:var(--lightningcss-light,#fef1f1)var(--lightningcss-dark,#5f1b1b);--rv-color-red-100:var(--lightningcss-light,#fee1e1)var(--lightningcss-dark,#8b2423);--rv-color-red-200:var(--lightningcss-light,#fec8c8)var(--lightningcss-dark,#9e211f);--rv-color-red-300:var(--lightningcss-light,#fca6a6)var(--lightningcss-dark,#c02321);--rv-color-red-400:var(--lightningcss-light,#f87272)var(--lightningcss-dark,#e22f2c);--rv-color-red-500:var(--lightningcss-light,#ef4343)var(--lightningcss-dark,#f4322f);--rv-color-red-600:var(--lightningcss-light,#dc2828)var(--lightningcss-dark,#fe5d5d);--rv-color-red-700:var(--lightningcss-light,#ba1c1c)var(--lightningcss-dark,#ff7575);--rv-color-red-800:var(--lightningcss-light,#981b1b)var(--lightningcss-dark,#ffb8b8);--rv-color-red-900:var(--lightningcss-light,#811d1d)var(--lightningcss-dark,#fcc);--rv-color-red-950:var(--lightningcss-light,#521414)var(--lightningcss-dark,#ffebeb);--rv-color-blue-50:var(--lightningcss-light,#f0f6ff)var(--lightningcss-dark,#151c32);--rv-color-blue-100:var(--lightningcss-light,#dcebfe)var(--lightningcss-dark,#1d2a58);--rv-color-blue-200:var(--lightningcss-light,#bedbfe)var(--lightningcss-dark,#2744b4);--rv-color-blue-300:var(--lightningcss-light,#91c3fd)var(--lightningcss-dark,#2751dd);--rv-color-blue-400:var(--lightningcss-light,#61a6fa)var(--lightningcss-dark,#2d65f0);--rv-color-blue-500:var(--lightningcss-light,#3c83f6)var(--lightningcss-dark,#2879fb);--rv-color-blue-600:var(--lightningcss-light,#2463eb)var(--lightningcss-dark,#4c9dff);--rv-color-blue-700:var(--lightningcss-light,#1d4fd7)var(--lightningcss-dark,#80bdff);--rv-color-blue-800:var(--lightningcss-light,#1f40ad)var(--lightningcss-dark,#a8d1ff);--rv-color-blue-900:var(--lightningcss-light,#1e3b8a)var(--lightningcss-dark,#d2e2f3);--rv-color-blue-950:var(--lightningcss-light,#152047)var(--lightningcss-dark,#e6f6ff);--rv-color-danger-50:var(--rv-color-red-50);--rv-color-danger-100:var(--rv-color-red-100);--rv-color-danger-200:var(--rv-color-red-200);--rv-color-danger-300:var(--rv-color-red-300);--rv-color-danger-400:var(--rv-color-red-400);--rv-color-danger-500:var(--rv-color-red-500);--rv-color-danger-600:var(--rv-color-red-600);--rv-color-danger-700:var(--rv-color-red-700);--rv-color-danger-800:var(--rv-color-red-800);--rv-color-danger-900:var(--rv-color-red-900);--rv-color-danger-950:var(--rv-color-red-950);--rv-color-neutral-0:var(--lightningcss-light,#fff)var(--lightningcss-dark,#000);--rv-color-neutral-50:var(--rv-color-gray-50);--rv-color-neutral-100:var(--rv-color-gray-100);--rv-color-neutral-200:var(--rv-color-gray-200);--rv-color-neutral-300:var(--rv-color-gray-300);--rv-color-neutral-400:var(--rv-color-gray-400);--rv-color-neutral-500:var(--rv-color-gray-500);--rv-color-neutral-600:var(--rv-color-gray-600);--rv-color-neutral-700:var(--rv-color-gray-700);--rv-color-neutral-800:var(--rv-color-gray-800);--rv-color-neutral-900:var(--rv-color-gray-900);--rv-color-neutral-950:var(--rv-color-gray-950);--rv-color-neutral-1000:var(--lightningcss-light,#000)var(--lightningcss-dark,#fff);--rv-color-alpha-50:var(--lightningcss-light,#0000000f)var(--lightningcss-dark,#ffffff1a);--rv-color-alpha-100:var(--lightningcss-light,#0000001f)var(--lightningcss-dark,#ffffff29);--rv-color-alpha-200:var(--lightningcss-light,#0000002b)var(--lightningcss-dark,#ffffff3d);--rv-color-alpha-300:var(--lightningcss-light,#0003)var(--lightningcss-dark,#ffffff3d);--rv-color-alpha-400:var(--lightningcss-light,#00000040)var(--lightningcss-dark,#ffffff40);--rv-color-alpha-500:var(--lightningcss-light,#0000004d)var(--lightningcss-dark,#ffffff4d);--rv-color-alpha-600:var(--lightningcss-light,#0000004d)var(--lightningcss-dark,#ffffff4d);--rv-color-alpha-700:var(--lightningcss-light,#00000059)var(--lightningcss-dark,#ffffff59);--rv-color-alpha-800:var(--lightningcss-light,#0006)var(--lightningcss-dark,#fff6);--rv-color-alpha-850:var(--lightningcss-light,#00000080)var(--lightningcss-dark,#ffffff80);--rv-color-alpha-900:var(--lightningcss-light,#0009)var(--lightningcss-dark,#fff9);--rv-color-alpha-1000:var(--lightningcss-light,#000)var(--lightningcss-dark,#fff);--rv-font-color-normal:var(--rv-color-alpha-1000);--rv-font-color-light:var(--rv-color-alpha-900);--rv-font-color-lighter:var(--rv-color-alpha-800);--rv-color-light:#fff;--rv-color-dark:#000;--rv-color-primary:var(--rv-color-blue-800);--rv-color-secondary:var(--lightningcss-light,var(--rv-color-blue-200))var(--lightningcss-dark,var(--rv-color-blue-50));--rv-color-canvas:var(--lightningcss-light,#f0f0f0)var(--lightningcss-dark,#000);--rv-color-panel:var(--lightningcss-light,var(--rv-color-neutral-0))var(--lightningcss-dark,var(--rv-color-neutral-50));--rv-panel-background-color:var(--lightningcss-light,var(--rv-color-neutral-0))var(--lightningcss-dark,var(--rv-color-neutral-100));--rv-color-panel-border:var(--lightningcss-light,var(--rv-color-neutral-200))var(--lightningcss-dark,var(--rv-color-neutral-300));--rv-box-shadow-panel:0 8px 24px 0 #0003, 0 1px 4px 0 #0000001f;--rv-box-shadow-button:0 2px 8px 0 #00000029, 0 0 1px 0 #00000024;--rv-overlay-background-color:var(--lightningcss-light,#00000080)var(--lightningcss-dark,#000000b3);--rv-font-mono:"ReveSansMono", SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace;--rv-font-sans:"ReveUI", forma-djr-micro, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";--rv-font-display:"ReveDisplay", forma-djr-micro, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";--rv-font-serif:Georgia, "Times New Roman", serif;--rv-font-weight-normal:400;--rv-font-weight-semibold:500;--rv-font-weight-bold:700;--rv-line-height-denser:1.2;--rv-line-height-normal:1.5;--rv-line-height-dense:1.4;--rv-line-height-sparser:2;--rv-font-size-x-small:.75rem;--rv-font-size-small:.875rem;--rv-font-size-medium:1rem;--rv-font-size-large:1.125rem;--rv-font-size-x-large:1.25rem;--rv-font-size-2x-large:1.5rem;--rv-font-size-3x-large:2rem;--rv-font-size-4x-large:2.5rem;--rv-spacing-3x-small:calc(.25 * var(--rv-rhythm));--rv-spacing-2x-small:calc(.5 * var(--rv-rhythm));--rv-spacing-x-small:var(--rv-rhythm);--rv-spacing-small:calc(1.5 * var(--rv-rhythm));--rv-spacing-medium:calc(2 * var(--rv-rhythm));--rv-spacing-large:calc(2.5 * var(--rv-rhythm));--rv-spacing-x-large:calc(3 * var(--rv-rhythm));--rv-spacing-2x-large:calc(4 * var(--rv-rhythm));--rv-button-height-small:calc(4 * var(--rv-rhythm));--rv-button-height-medium:calc(5 * var(--rv-rhythm));--rv-button-height-large:calc(6 * var(--rv-rhythm));--rv-border-radius-full:calc(1px * Infinity);--rv-border-radius-medium:calc(.5 * var(--rv-rhythm));--rv-border-radius-large:var(--rv-rhythm);--rv-border-radius-x-large:calc(2 * var(--rv-rhythm));--rv-border-radius-2x-large:calc(3 * var(--rv-rhythm));--rv-focus-ring:2px solid var(--rv-color-blue-600);--rv-focus-ring-offset:0;--rv-icon-size:calc(2.5 * var(--rv-rhythm));--rv-icon-size-s:calc(2 * var(--rv-rhythm));--rv-transition-x-slow:.5s;--rv-transition-slow:.2s;--rv-transition-medium:.15s;--rv-transition-fast:.1s;--rv-transition-x-fast:50ms;--ease-in-out-quad:cubic-bezier(.455, .03, .515, .955);--rv-z-index-drawer:700;--rv-z-index-dialog:800;--rv-z-index-dropdown:900;--rv-z-index-toast:950;--rv-z-index-tooltip:1000;--rv-z-index-overlay:1050;background-color:var(--rv-color-neutral-0);color:var(--rv-font-color-normal);font-family:var(--rv-font-sans);-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-weight:var(--rv-font-weight-normal);line-height:var(--rv-line-height-normal);overscroll-behavior-x:none;text-rendering:optimizelegibility}:root:not([data-color-scheme]),:root[data-color-scheme=system]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root:not([data-color-scheme]),:root[data-color-scheme=system]{--lightningcss-light: ;--lightningcss-dark:initial}}[data-color-scheme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-color-scheme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@layer testing{:root{--IS_PERCY_TESTING: }}
:root{--font-rounded:"SF Pro Rounded", ui-rounded, -apple-system, BlinkMacSystemFont, "SF Pro Text", "Helvetica Neue", Arial, sans-serif;--font-display:"SF Pro Display", -apple-system, BlinkMacSystemFont, "SF Pro Text", "Helvetica Neue", Arial, sans-serif;--theme-t:0;--page-rgb:253 252 251;--ink-rgb:65 65 65;--muted-rgb:116 116 116;--faint-rgb:163 161 158;--blue-rgb:5 117 216;--danger-rgb:167 65 55;--surface-rgb:246 245 243;--surface-soft-rgb:248 247 245;--surface-raised-rgb:254 254 253;--surface-input-rgb:255 255 255;--slider-track-rgb:240 239 237;--slider-fill-rgb:216 215 213;--slider-label-rgb:83 83 83;--slider-label-filled-rgb:83 83 83;--slider-value-rgb:65 65 65;--slider-edge-rgb:197 196 194;--slider-stage-rgb:254 254 253;--shadow-rgb:36 31 26;--page:rgb(var(--page-rgb));--ink:rgb(var(--ink-rgb));--muted:rgb(var(--muted-rgb));--faint:rgb(var(--faint-rgb));--blue:rgb(var(--blue-rgb));--danger:rgb(var(--danger-rgb));--surface:rgb(var(--surface-rgb));--surface-soft:rgb(var(--surface-soft-rgb));--surface-raised:rgb(var(--surface-raised-rgb));--surface-input:rgb(var(--surface-input-rgb));--slider-track:rgb(var(--slider-track-rgb));--slider-fill:rgb(var(--slider-fill-rgb));--slider-label:rgb(var(--slider-label-rgb));--slider-label-filled:rgb(var(--slider-label-filled-rgb));--slider-value:rgb(var(--slider-value-rgb));--slider-edge:rgb(var(--slider-edge-rgb));--slider-stage:rgb(var(--slider-stage-rgb));--edge:rgb(var(--ink-rgb) / .08);--edge-soft:rgb(var(--ink-rgb) / .055);--edge-strong:rgb(var(--ink-rgb) / .16);--control-hover:rgb(var(--ink-rgb) / .065);--control-selected:rgb(var(--ink-rgb) / .055);--window-edge:rgb(var(--ink-rgb) / .064);--wash-focus:rgb(var(--page-rgb) / .44);--wash-about:rgb(var(--page-rgb) / .29);--primary-fill:var(--ink);--primary-label:var(--page);--primary-hover:color-mix(in srgb, var(--ink) 90%, var(--page));--rv-color-neutral-0:var(--surface-raised);--rv-color-neutral-50:var(--surface-soft);--rv-color-neutral-100:var(--slider-track);--rv-color-neutral-200:var(--slider-fill);--rv-color-neutral-300:var(--slider-edge);--rv-color-neutral-400:color-mix(in srgb, var(--page) 62%, var(--ink));--rv-color-neutral-500:color-mix(in srgb, var(--page) 50%, var(--ink));--rv-color-neutral-600:color-mix(in srgb, var(--page) 36%, var(--ink));--rv-color-neutral-700:color-mix(in srgb, var(--page) 26%, var(--ink));--rv-color-neutral-800:color-mix(in srgb, var(--page) 16%, var(--ink));--rv-color-neutral-900:color-mix(in srgb, var(--page) 8%, var(--ink));--rv-color-neutral-950:color-mix(in srgb, var(--page) 4%, var(--ink));--rv-color-neutral-1000:var(--ink);--rv-color-alpha-50:rgb(var(--ink-rgb) / .06);--rv-color-alpha-100:rgb(var(--ink-rgb) / .12);--rv-color-alpha-200:rgb(var(--ink-rgb) / .17);--rv-color-alpha-300:rgb(var(--ink-rgb) / .2);--rv-color-alpha-400:rgb(var(--ink-rgb) / .25);--rv-color-alpha-500:rgb(var(--ink-rgb) / .3);--rv-color-alpha-600:rgb(var(--ink-rgb) / .3);--rv-color-alpha-700:rgb(var(--ink-rgb) / .35);--rv-color-alpha-800:rgb(var(--ink-rgb) / .4);--rv-color-alpha-850:rgb(var(--ink-rgb) / .5);--rv-color-alpha-900:rgb(var(--ink-rgb) / .6);--rv-color-alpha-1000:var(--ink);--rv-font-color-normal:var(--ink);--rv-font-color-light:var(--muted);--rv-font-color-lighter:var(--faint);--rv-color-primary:var(--blue);--rv-color-secondary:color-mix(in srgb, var(--blue) 18%, var(--page));--rv-color-canvas:var(--page);--rv-color-panel:var(--surface-raised);--rv-panel-background-color:var(--surface);--rv-color-panel-border:var(--edge);--rv-overlay-background-color:rgb(var(--shadow-rgb) / .6);--interface-title-size:18px;--interface-body-size:18px;--interface-icon-size:20px;--interface-back-icon-size:24px;--interface-email-icon-size:20px;--interface-layout-icon-size:19px;--interface-x-icon-size:20px;--interface-linkedin-icon-size:19px;--interface-music-icon-size:22px;--interface-link-out-icon-size:27px;--interface-close-icon-size:20px;--interface-title-weight:470;--motion-ease:cubic-bezier(.2, 0, 0, 1);--focus-top:92px;--focus-left:20px;--focus-width:0px;--focus-height:0px;--detail-gap:64px;--about-width:min(540px, calc(100vw - 107px));--about-left:max(83px, calc(50% - 240.5px));--site-inline:clamp(56px, 15vw, 240px);--motion-duration:.32s;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-color-scheme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-color-scheme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{background:var(--page);width:100%;min-height:100%;overflow:hidden}body{color:var(--ink);font-family:var(--font-rounded);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0}button,input,textarea,select{font:inherit}button,a,label,select{-webkit-tap-highlight-color:transparent}.admin-lock{isolation:isolate;background:var(--page);place-items:center;width:100vw;min-height:100svh;padding:24px;display:grid;position:relative;overflow:hidden}.admin-lock-scrim{z-index:-1;filter:blur(34px);background:radial-gradient(circle at 22% 32%,#d3e0ed47,#0000 30%),radial-gradient(circle at 78% 68%,#eedcca4d,#0000 32%);position:absolute;inset:-60px}.admin-login-modal{background:rgb(var(--surface-raised-rgb) / .9);width:min(100%,360px);box-shadow:0 24px 64px -24px rgb(var(--shadow-rgb) / .14), 0 8px 24px -12px rgb(var(--shadow-rgb) / .07), 0 0 0 1px var(--edge-soft);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);animation:admin-modal-in .28s var(--motion-ease) both;border:0;border-radius:12px;gap:24px;padding:28px;display:grid}.admin-login-modal header{gap:5px;display:grid}.admin-login-modal header p,.admin-login-modal h1,.admin-login-modal form,.admin-login-error{margin:0}.admin-login-modal header p{color:var(--faint);font-size:12px;font-weight:520}.admin-login-modal h1{color:var(--ink);letter-spacing:-.018em;font-size:18px;font-weight:520;line-height:1.25}.admin-login-modal form,.admin-login-modal label{display:grid}.admin-login-modal form{gap:12px}.admin-login-modal label{gap:7px}.admin-login-modal label>span{color:var(--muted);font-size:12px}.admin-login-modal input{border:1px solid rgb(var(--ink-rgb) / .12);background:rgb(var(--surface-input-rgb) / .68);width:100%;min-height:46px;color:var(--ink);letter-spacing:.08em;border-radius:8px;outline:none;padding:0 13px;font-size:16px;transition-property:border-color,box-shadow;transition-duration:.15s;transition-timing-function:ease-out}.admin-login-modal input:focus{border-color:rgb(var(--ink-rgb) / .34);box-shadow:0 0 0 3px rgb(var(--ink-rgb) / .06)}.admin-login-modal input[aria-invalid=true]{border-color:rgb(var(--danger-rgb) / .4)}.admin-login-error{color:var(--danger);font-size:12px;line-height:1.35}.admin-login-modal form>button{background:var(--primary-fill);min-height:46px;color:var(--primary-label);cursor:pointer;border:0;border-radius:8px;padding:0 16px;transition-property:background-color,scale;transition-duration:.15s;transition-timing-function:ease-out;scale:1}.admin-login-modal form>button:active{scale:.97}.admin-login-modal input:focus-visible,.admin-login-modal form>button:focus-visible,.admin-login-modal>a:focus-visible,.project-reorder-handle:focus-visible,.project-order-actions button:focus-visible,.project-list-edit:focus-visible{outline:1px solid var(--ink);outline-offset:2px}.admin-login-modal>a{width:fit-content;min-height:44px;color:var(--muted);margin:-12px 0;font-size:12px;line-height:44px;text-decoration:none;transition-property:color;transition-duration:.12s;transition-timing-function:ease-out}@keyframes admin-modal-in{0%{opacity:0;filter:blur(5px);transform:translateY(8px)scale(.98)}to{opacity:1;filter:blur();transform:translateY(0)scale(1)}}.portfolio-shell{isolation:isolate;background:var(--page);scrollbar-width:none;width:100vw;height:100svh;position:relative;overflow:hidden}.portfolio-shell::-webkit-scrollbar{display:none}.portfolio-shell.is-vertical{overflow:hidden auto}.portfolio-shell.is-horizontal{overflow:auto hidden}.portfolio-shell.is-bento{overscroll-behavior-x:contain;overflow:auto hidden}.portfolio-shell.is-grid{overflow:hidden auto}.portfolio-shell.is-orbit{overscroll-behavior:contain;overflow:hidden}.portfolio-shell.is-about{overflow:hidden}.portfolio-shell.has-selection{overscroll-behavior:none;overflow:hidden}.identity-layer{display:contents}.site-header{z-index:32;top:calc(clamp(28px,6.2vh,70px) - 14px);left:var(--site-inline);width:var(--about-width);pointer-events:none;height:44px;transition-property:top,left,opacity,filter;transition-duration:.52s;transition-timing-function:var(--motion-ease);align-items:center;display:flex;position:absolute}.site-status{z-index:32;top:calc(clamp(28px,6.2vh,70px) - 14px);right:var(--site-inline);pointer-events:none;align-items:center;height:44px;transition-property:opacity,filter,scale;transition-duration:.22s;transition-timing-function:cubic-bezier(.2,0,0,1);display:flex;position:absolute}.site-time{min-width:11ch;height:44px;color:color-mix(in srgb, var(--ink) 80%, var(--page));font-size:var(--interface-title-size);font-variant-numeric:tabular-nums;font-weight:var(--interface-title-weight);letter-spacing:-.015em;pointer-events:none;white-space:nowrap;place-items:center end;line-height:1;transition-property:opacity,filter,scale;transition-duration:.22s;transition-timing-function:cubic-bezier(.2,0,0,1);display:grid}.is-vertical .site-header,.is-horizontal .site-header,.is-bento .site-header,.is-grid .site-header,.is-vertical .site-status,.is-horizontal .site-status,.is-bento .site-status,.is-grid .site-status{position:fixed}.is-about .site-status{opacity:0;filter:blur(4px);pointer-events:none;scale:.96}.site-name{appearance:none;min-height:44px;color:color-mix(in srgb, var(--ink) 80%, var(--page));cursor:pointer;font-size:var(--interface-title-size);font-weight:var(--interface-title-weight);letter-spacing:-.015em;pointer-events:auto;white-space:nowrap;background:0 0;border:0;outline:none;place-items:center start;padding:0;line-height:1;transition:color .15s ease-out;display:grid}.site-name:focus-visible{text-underline-offset:4px;outline:none;text-decoration:underline;text-decoration-thickness:1px}.project-canvas{z-index:1;width:var(--layout-width,100%);height:var(--layout-height,100%);opacity:1;filter:blur();transition-property:opacity,filter,transform;transition-duration:.24s;transition-timing-function:ease-out;position:absolute;inset:0;transform:scale(1)}.is-vertical .project-canvas,.is-horizontal .project-canvas,.is-bento .project-canvas,.is-grid .project-canvas{bottom:auto;right:auto}.is-about .project-canvas{opacity:1;filter:blur();pointer-events:none;transform:scale(1)}.selection-wash{z-index:5;pointer-events:none;background:var(--wash-focus);opacity:0;-webkit-backdrop-filter:blur();backdrop-filter:blur();transition-property:opacity,-webkit-backdrop-filter,backdrop-filter,background-color;transition-duration:var(--motion-duration);transition-timing-function:var(--motion-ease);position:fixed;inset:0}.focus-dismiss{appearance:none;z-index:6;cursor:default;background:0 0;border:0;outline:none;width:100%;height:100%;padding:0;position:fixed;inset:0}.about-dismiss{appearance:none;z-index:21;cursor:default;background:0 0;border:0;outline:none;width:100%;height:100%;padding:0;position:fixed;inset:0}.focus-dismiss:focus-visible{outline:1px solid #0000}.is-focus-active .selection-wash{opacity:1;-webkit-backdrop-filter:blur(61px);backdrop-filter:blur(61px)}.is-about .selection-wash,.is-auxio-open:not(.is-about) .selection-wash{background-color:var(--wash-about);opacity:1;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.project-plane{z-index:7;position:absolute;inset:0}.portfolio-shell:not(.is-projects-ready) .project-plane{visibility:hidden}.is-focus-active .project-plane{pointer-events:none}.is-focus-active .project-card:not(.is-focus-card){opacity:.2;filter:blur(9px)saturate(.55);pointer-events:none}.is-about .project-card,.is-auxio-open:not(.is-about) .project-card{opacity:.32;filter:blur(14px)saturate(.72);pointer-events:none}.project-card{--aspect:1.5;--card-stroke:var(--window-edge);--hover-origin-x:50%;--hover-origin-y:50%;--hover-shift-x:0px;--hover-shift-y:0px;--hover-rotate-x:0deg;--hover-rotate-y:0deg;appearance:none;z-index:var(--card-z,2);width:var(--card-width,clamp(340px, 30vw, 520px));aspect-ratio:var(--aspect);background:var(--surface);box-shadow:0 0 0 1px var(--card-stroke);cursor:default;scale:1;transform:translate3d(calc(var(--x) + var(--hover-shift-x)), calc(var(--y) + var(--hover-shift-y)), 0) perspective(1000px) rotateX(var(--hover-rotate-x)) rotateY(var(--hover-rotate-y));transform-origin:var(--hover-origin-x) var(--hover-origin-y);-webkit-user-select:none;user-select:none;touch-action:none;will-change:transform;border:0;border-radius:2px;outline:none;padding:0;transition-property:opacity,filter,box-shadow,scale;transition-duration:.16s;transition-timing-function:ease-out;position:absolute;top:0;left:0;overflow:hidden}.project-card.is-card-awaiting{opacity:0;filter:blur(4px);pointer-events:none}.project-card-reveal-surface{border-radius:inherit;transform-origin:50%;position:absolute;inset:0;overflow:hidden;transform:scale(1)}.project-card.is-card-awaiting .project-card-reveal-surface{transform:scale(.982)}.project-card.is-card-entering{pointer-events:none;animation:project-card-enter .42s cubic-bezier(.2, 0, 0, 1) var(--card-enter-delay,0s) both;will-change:opacity, filter}.project-card.is-card-entering .project-card-reveal-surface{animation:project-card-enter-scale .42s cubic-bezier(.2, 0, 0, 1) var(--card-enter-delay,0s) both;will-change:transform}@keyframes project-card-enter{0%{opacity:0;filter:blur(4px)}to{opacity:1;filter:blur()}}@keyframes project-card-enter-scale{0%{transform:scale(.982)}76%{transform:scale(1.002)}to{transform:scale(1)}}.project-card.size-screen{--aspect:1.46;width:var(--card-width,clamp(320px, 29vw, 500px));border-radius:2px}.project-card.size-board{--aspect:1.17;width:var(--card-width,clamp(300px, 28vw, 480px));border-radius:2px}.project-card.size-portrait{--aspect:.8;width:var(--card-width,clamp(220px, 22vw, 340px));border-radius:2px}.project-card.is-featured{width:var(--card-width,clamp(320px, 29vw, 500px))}.is-reflowing .project-card:not(.is-focus-card):not(.is-dragging){pointer-events:none;transition-property:transform,width;transition-duration:.42s;transition-timing-function:var(--motion-ease)}.project-card.is-dragging{z-index:9999;cursor:default;box-shadow:0 26px 68px -24px rgb(var(--shadow-rgb) / .2), 0 9px 26px -12px rgb(var(--shadow-rgb) / .11), 0 0 0 1px var(--card-stroke)}.project-card.is-focus-card{z-index:10000;width:var(--focus-width);box-shadow:0 0 0 1px var(--card-stroke);pointer-events:auto;transform:translate3d(var(--focus-left), var(--focus-top), 0);transition-property:transform,width,box-shadow;transition-duration:var(--motion-duration);transition-timing-function:cubic-bezier(.22,1,.36,1);overflow:visible}.project-card.is-focus-card.is-closing{width:var(--source-width);transform:translate3d(var(--x), var(--y), 0)}.project-card.has-live-embed:not(.has-stable-live-embed).is-focus-card{width:var(--focus-width);contain:layout paint;transform-origin:0 0;transition-property:transform,box-shadow}.project-card.has-live-embed:not(.has-stable-live-embed).is-focus-card.is-opening,.project-card.has-live-embed:not(.has-stable-live-embed).is-focus-card.is-closing{width:var(--focus-width);transform:translate3d(var(--x), var(--y), 0) scale(var(--focus-source-scale,1))}.project-card.has-live-embed:not(.has-stable-live-embed).is-focus-card:not(.is-opening):not(.is-closing){transform:translate3d(var(--focus-left), var(--focus-top), 0) scale(1)}.project-card.has-live-embed.has-stable-live-embed.is-focus-card{contain:layout paint;overflow:hidden}.project-card.is-focus-card:not(.is-closing) .project-media-stack{animation:project-distance-blur var(--motion-duration) ease-out both;will-change:filter}.project-card.is-focus-card.is-closing .project-media-stack{animation:project-distance-blur var(--motion-duration) ease-out reverse both;will-change:filter}.project-card.has-live-embed.is-focus-card .project-media-stack{filter:none;will-change:auto;animation:none}@keyframes project-distance-blur{0%,to{filter:blur()}42%{filter:blur(var(--focus-motion-blur,0))}}.project-card:focus-visible{outline:1.5px solid rgb(var(--ink-rgb) / .72);outline-offset:5px}.project-media,.link-preview{border-radius:inherit;pointer-events:none;display:block;position:absolute;inset:0;overflow:hidden}.project-media-stack{contain:paint;background:var(--surface)}.project-live-component{background-color:var(--slider-stage);pointer-events:none;place-items:center;display:grid}.project-live-component.is-interactive{pointer-events:auto}.project-live-component.is-card-interactive,.project-live-component.is-card-interactive .project-slider-stage{pointer-events:none}.project-live-component.is-card-interactive rv-slider,.project-live-component.is-card-interactive .project-slider-fallback{pointer-events:auto}.project-slider-stage{--rv-font-sans:var(--font-display);place-items:center;gap:12px;width:75%;display:grid}.project-slider-stage rv-slider{--rv-slider-border-color:var(--slider-edge);--rv-slider-fill-color:var(--slider-fill);--rv-slider-label-color:var(--slider-label);--rv-slider-label-color-filled:var(--slider-label-filled);--rv-slider-thumb-color:rgb(var(--slider-label-rgb) / .32);--rv-slider-tick-color:rgb(var(--slider-label-rgb) / .18);--rv-slider-tick-color-filled:rgb(var(--slider-label-rgb) / .26);--rv-slider-track-color:var(--slider-track);width:100%;max-width:100%;touch-action:pan-y pinch-zoom;-webkit-user-select:none;user-select:none;inline-size:100%}.project-slider-stage rv-slider,.project-slider-fallback input{min-block-size:44px}.project-slider-stage rv-slider::part(value){color:var(--slider-value);caret-color:var(--slider-value);mix-blend-mode:normal}.project-slider-stage rv-slider::part(value):focus{background:var(--surface-raised);color:var(--ink)}.project-slider-fallback-stack{gap:12px;width:100%;display:grid}.project-slider-fallback{width:100%;min-height:var(--rv-button-height-medium);gap:var(--rv-spacing-medium);padding:0 var(--rv-spacing-medium);border-radius:var(--rv-border-radius-large);background:var(--rv-color-neutral-100);color:var(--rv-font-color-normal);font-family:var(--rv-font-sans);font-size:var(--rv-font-size-small);font-variant-numeric:tabular-nums;font-weight:var(--rv-font-weight-semibold);grid-template-columns:auto 1fr auto;align-items:center;display:grid}.project-slider-fallback input{width:100%;accent-color:var(--rv-color-neutral-600)}.project-card.has-live-embed.has-stable-live-embed .project-media-stack{width:var(--stable-embed-stage-width);height:var(--stable-embed-stage-height);filter:none;transform:translate3d(var(--stable-embed-idle-x,0), var(--stable-embed-idle-y,0), 0) scale(var(--stable-embed-source-scale));transform-origin:0 0;transition-property:transform;transition-duration:calc(var(--motion-duration) * .85);backface-visibility:hidden;will-change:transform;transition-timing-function:cubic-bezier(.22,1,.36,1);animation:none;inset:0 auto auto 0}.project-card.has-stable-live-embed.is-focus-card:not(.is-closing) .project-media-stack{transform:translate3d(0, 0, 0) scale(var(--stable-embed-focus-scale))}.project-card.has-stable-live-embed.is-focus-card.is-closing .project-media-stack{transform:translate3d(var(--stable-embed-idle-x,0), var(--stable-embed-idle-y,0), 0) scale(var(--stable-embed-source-scale))}.is-reflowing .project-card.has-stable-live-embed:not(.is-focus-card):not(.is-dragging) .project-media-stack{transition-duration:.42s;transition-timing-function:var(--motion-ease)}.project-media-layer{border-radius:inherit;opacity:0;pointer-events:none;transition-property:opacity;transition-duration:.12s;transition-timing-function:ease-out;display:block;position:absolute;inset:0;overflow:hidden;transform:translateZ(0)}.project-media-layer.is-media-visible{opacity:1}.project-media img,.project-media video{object-fit:cover;width:100%;height:100%;display:block}.project-media video{dynamic-range-limit:standard}.project-slideshow{background:var(--surface)}.project-slide{z-index:1;opacity:0;pointer-events:none;position:absolute;inset:0;transform:scale(1)}.project-slide.is-active{z-index:2;opacity:1;transform:scale(1)}.project-slideshow.is-crossfade .project-slide{transition-property:opacity;transition-duration:.42s;transition-timing-function:ease-out}.project-slideshow.is-ease .project-slide{opacity:0;filter:blur(1.5px);transition-property:opacity,transform,filter;transition-duration:.62s;transition-timing-function:cubic-bezier(.2,0,0,1);transform:scale(.985)}.project-slideshow.is-ease .project-slide.is-active{opacity:1;filter:blur();transform:scale(1)}.project-slideshow.is-instant .project-slide{transition-duration:0s}.project-embed iframe{z-index:2;width:1440px;height:var(--embed-viewport-height,960px);background:var(--surface-soft);opacity:0;pointer-events:none;transform:translateZ(0) scale(var(--embed-idle-scale,.4));transform-origin:0 0;transition-property:opacity,transform;transition-duration:.12s, var(--motion-duration);will-change:transform;border:0;transition-timing-function:ease-out,cubic-bezier(.22,1,.36,1);display:block;position:relative}.project-embed.is-loaded iframe{opacity:1}.project-card.is-focus-card .project-embed iframe{transform:translateZ(0) scale(var(--embed-focus-scale,var(--embed-idle-scale,.4)))}.project-card.has-live-embed.is-focus-card .project-embed iframe{will-change:auto;transition-property:opacity;transition-duration:.12s}.project-card.is-focus-card.is-closing .project-embed iframe{transform:translateZ(0) scale(var(--embed-idle-scale,.4))}.project-card.has-live-embed.is-focus-card.is-closing .project-embed iframe{transform:translateZ(0) scale(var(--embed-focus-scale,var(--embed-idle-scale,.4)))}.project-card.has-stable-live-embed .project-embed iframe,.project-card.has-stable-live-embed.is-focus-card .project-embed iframe,.project-card.has-stable-live-embed.is-focus-card.is-closing .project-embed iframe{transform:translateZ(0) scale(var(--embed-stable-scale));transform-origin:0 0;will-change:auto;transition-property:opacity;transition-duration:.12s;transition-timing-function:ease-out}.project-embed-fallback{z-index:3;background:var(--surface);opacity:0;pointer-events:none;transition-property:opacity;transition-duration:.14s;transition-timing-function:ease-out;position:absolute;inset:0;overflow:hidden}.project-embed.is-fallback-visible .project-embed-fallback{opacity:1}.project-embed.is-media-visible.is-interactive,.project-embed.is-media-visible.is-interactive iframe{pointer-events:auto}.link-preview{color:#3e3d3b;background:radial-gradient(circle at 78% 14%,#ffffffc7,#0000 34%),linear-gradient(145deg,#e5e0d9,#f6f2ec 58%,#d8d0c6)}.link-preview.palette-1{background:radial-gradient(circle at 24% 16%,#ffffffdb,#0000 32%),linear-gradient(150deg,#d8e7ee,#f4f4f1 53%,#d7dcd6)}.link-preview.palette-2{background:radial-gradient(circle at 78% 72%,#ffffffb3,#0000 31%),linear-gradient(145deg,#ddd9d4,#f7f6f3 48%,#cbc8c4)}.link-preview.palette-3{color:#f7f5f2;background:radial-gradient(circle at 34% 30%,#ffe8c652,#0000 30%),linear-gradient(155deg,#877764,#c0a482 48%,#6d635b)}.link-preview-chrome{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffff57;border-bottom:1px solid #41414114;align-items:center;gap:5px;height:12%;min-height:20px;padding:0 5%;display:flex;position:absolute;top:0;left:0;right:0}.link-preview-chrome i{opacity:.22;background:currentColor;border-radius:50%;width:5px;height:5px}.link-preview-content{justify-items:center;width:72%;display:grid;position:absolute;top:53%;left:50%;transform:translate(-50%,-50%)}.link-preview-mark{aspect-ratio:1;width:clamp(34px,13%,56px);box-shadow:0 8px 24px rgb(var(--shadow-rgb) / .08);background:#ffffff8a;border-radius:24%;place-items:center;margin-bottom:8%;font-size:clamp(15px,2vw,24px);font-weight:600;display:grid}.link-preview-content strong{letter-spacing:-.02em;text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:clamp(11px,1.15vw,17px);font-weight:590;line-height:1.2;overflow:hidden}.link-preview-content small{opacity:.58;margin-top:5px;font-size:clamp(8px,.7vw,11px)}.project-detail{z-index:20;top:50%;left:calc(var(--focus-left) - var(--viewport-scroll-left) + var(--focus-width) + var(--detail-gap));opacity:0;filter:blur(4px);transform-origin:0;width:min(29vw,470px);transition-property:opacity,filter,transform;transition-duration:.3s;transition-timing-function:var(--motion-ease);will-change:transform, opacity, filter;position:fixed;transform:translateY(-50%)scale(.96)}.project-detail.is-visible{opacity:1;filter:blur();transition-delay:.1s;transform:translateY(-50%)scale(1)}.project-detail-copy{padding-right:16px;position:relative}.project-detail h1{color:color-mix(in srgb, var(--ink) 80%, var(--page));font-size:var(--interface-title-size);font-weight:var(--interface-title-weight);letter-spacing:-.015em;text-wrap:balance;margin:0 0 38px;padding-right:48px;line-height:1}.description-content{display:grid}.description-content p,.description-content ul{margin:0}.description-content p,.description-content li{text-wrap:pretty}.description-list{gap:.35em;padding-inline-start:1.15em;display:grid}.description-list li{padding-inline-start:.12em}.project-detail-copy .description-content{color:var(--muted);font-size:var(--interface-body-size);letter-spacing:-.008em;gap:18px;font-weight:400;line-height:1.65}.project-copy-link{color:var(--blue);text-underline-offset:2px;text-decoration:underline;text-decoration-thickness:1px;transition-property:opacity;transition-duration:.14s;transition-timing-function:ease-out}.project-copy-project-link{appearance:none;cursor:pointer;font:inherit;background:0 0;border:0;padding:0}.project-copy-project-link:focus-visible{outline-offset:3px;border-radius:2px;outline:1.5px solid}.project-detail:focus{outline:none}.portfolio-shell.is-project-switching .project-card,.portfolio-shell.is-project-switching .project-card.has-stable-live-embed .project-media-stack{transition-duration:0s}.portfolio-shell.is-project-switching .project-card.is-focus-card .project-media-stack{animation:none}.portfolio-shell.is-project-switching .project-card.is-focus-card,.portfolio-shell.is-project-switching .project-detail{will-change:opacity, filter;transition:opacity .17s cubic-bezier(.2,0,0,1),filter .17s cubic-bezier(.2,0,0,1)}.portfolio-shell.is-project-switch-out .project-card.is-focus-card,.portfolio-shell.is-project-switch-out .project-detail{opacity:0;filter:blur(7px)}.portfolio-shell.is-project-switch-in .project-card.is-focus-card,.portfolio-shell.is-project-switch-in .project-detail{opacity:1;filter:blur()}.project-link-button,.editor-close,.about-back{appearance:none;width:44px;height:44px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:50%;outline:none;place-items:center;padding:0;text-decoration:none;transition-property:color,scale;transition-duration:.15s;transition-timing-function:ease-out;display:grid;scale:1}.project-link-button{z-index:2;position:absolute;top:-12px;right:-8px}.project-link-button span{width:var(--interface-link-out-icon-size);height:var(--interface-link-out-icon-size);background:currentColor;-webkit-mask:url(/icons/link-out.svg) 50%/contain no-repeat;mask:url(/icons/link-out.svg) 50%/contain no-repeat}.editor-close span:before,.editor-close span:after{width:var(--interface-close-icon-size);content:"";background:currentColor;border-radius:999px;height:1.5px;position:absolute;top:50%;left:50%}.editor-close span:before{transform:translate(-50%,-50%)rotate(45deg)}.editor-close span:after{transform:translate(-50%,-50%)rotate(-45deg)}.project-link-button:active,.editor-close:active,.about-back:active,.editor-launcher:active,.section-item:active,.save-project:active,.media-upload:active{scale:.96}.project-link-button:focus-visible,.editor-close:focus-visible,.about-back:focus-visible,.editor-launcher:focus-visible,.section-item:focus-visible{outline-offset:2px;outline:1px solid}.about-panel{z-index:22;top:calc(50% - 102px);left:var(--about-left);width:var(--about-width);opacity:0;filter:blur(4px);pointer-events:none;transition-property:opacity,filter,transform;transition-duration:.36s;transition-delay:0s;transition-timing-function:var(--motion-ease);position:absolute;transform:translateY(12px)scale(.96)}.is-about .site-header{top:calc(50% - 198px);left:var(--about-left)}.is-about .about-panel{opacity:1;filter:blur();pointer-events:auto;transition-duration:.36s;transition-delay:70ms;transform:translate(0,0)scale(1)}.about-controls{z-index:33;top:calc(50% - 198px);left:var(--about-left);width:var(--about-width);pointer-events:none;align-items:center;height:44px;display:flex;position:absolute}.is-about .about-controls{pointer-events:auto}.about-back{color:color-mix(in srgb, var(--ink) 68%, transparent);opacity:0;filter:blur(4px);pointer-events:none;will-change:opacity, filter;transition:color .22s cubic-bezier(.2,0,0,1),opacity .22s cubic-bezier(.2,0,0,1),filter .22s cubic-bezier(.2,0,0,1),scale .22s cubic-bezier(.2,0,0,1);position:absolute;top:0;left:-59px;scale:.25}.about-back-icon{width:var(--interface-back-icon-size);height:var(--interface-back-icon-size);display:block}.about-socials{align-items:center;gap:0;margin-left:auto;display:flex}.about-social-link{width:44px;height:44px;color:color-mix(in srgb, var(--ink) 68%, transparent);opacity:0;filter:blur(4px);pointer-events:none;will-change:opacity, filter;border-radius:50%;outline:none;place-items:center;text-decoration:none;transition:color .22s cubic-bezier(.2,0,0,1),opacity .22s cubic-bezier(.2,0,0,1),filter .22s cubic-bezier(.2,0,0,1),scale .22s cubic-bezier(.2,0,0,1);display:grid;scale:.25}.auxio-social-link{appearance:none;cursor:pointer;background:0 0;border:0;padding:0}.site-music-link{opacity:1;filter:blur();pointer-events:auto;flex:none;scale:1}.is-auxio-open .site-music-link{opacity:0;filter:blur(4px);pointer-events:none;scale:.25}.is-about .site-status .site-music-link{pointer-events:none}.email-copy-button{appearance:none;cursor:pointer;background:0 0;border:0;margin-right:4px;padding:0}.is-about .about-back,.is-about .about-social-link{opacity:1;filter:blur();pointer-events:auto;transition-duration:.3s;transition-delay:0s,.47s,.47s,.47s;scale:1}.about-social-link:active{scale:.96}.about-social-link:focus-visible{outline-offset:-5px;outline:1px solid}.social-icon{background:currentColor;display:block}.email-symbol{width:var(--interface-email-icon-size);height:var(--interface-email-icon-size);display:block;position:relative}.email-symbol-icon{will-change:opacity, filter;width:100%;height:100%;transition-property:opacity,filter,scale;transition-duration:.26s;transition-timing-function:cubic-bezier(.2,0,0,1);display:block;position:absolute;inset:0}.email-symbol-closed{opacity:1;filter:blur();scale:1}.email-symbol-open,.email-copy-button.is-copied .email-symbol-closed{opacity:0;filter:blur(4px);scale:.25}.email-copy-button.is-copied .email-symbol-open{opacity:1;filter:blur();scale:1}.email-copy-button.is-copied .email-symbol{animation:.42s cubic-bezier(.2,0,0,1) both email-copy-pulse}.social-x-icon{width:var(--interface-x-icon-size);height:var(--interface-x-icon-size);-webkit-mask:url(/icons/social-x.svg) 50%/contain no-repeat;mask:url(/icons/social-x.svg) 50%/contain no-repeat}.social-linkedin-icon{width:var(--interface-linkedin-icon-size);height:var(--interface-linkedin-icon-size);-webkit-mask:url(/icons/social-linkedin.svg) 50%/contain no-repeat;mask:url(/icons/social-linkedin.svg) 50%/contain no-repeat}.social-auxio-icon{width:var(--interface-music-icon-size);height:var(--interface-music-icon-size);-webkit-mask:url(/icons/music.svg) 50%/contain no-repeat;mask:url(/icons/music.svg) 50%/contain no-repeat}.site-music-icon-stack{width:var(--interface-music-icon-size);height:var(--interface-music-icon-size);display:block;position:relative}.site-music-icon-stack>.social-auxio-icon{opacity:1;filter:blur();display:block;position:absolute;top:50%;left:50%;translate:-50% -50%;scale:1}.site-music-link.is-opening .site-music-icon-stack,.site-music-link.is-closing .site-music-icon-stack{animation:.42s cubic-bezier(.2,0,0,1) both auxio-icon-pulse}@keyframes auxio-icon-pulse{0%,to{opacity:1;filter:blur();scale:1}48%{opacity:.76;filter:blur(1.5px);scale:1.04}}.about-social-link{justify-items:end}.visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}@keyframes email-copy-pulse{0%{scale:.96}52%{scale:1.06}to{scale:1}}.about-copy{padding-right:16px}.about-copy .description-content{max-width:100%;color:var(--muted);font-size:var(--interface-body-size);letter-spacing:-.009em;gap:26px;font-weight:400;line-height:1.63}.weather-note{color:var(--blue);cursor:pointer;text-underline-offset:2px;text-decoration:underline;text-decoration-thickness:1px;transition-property:opacity;transition-duration:.14s;transition-timing-function:ease-out}.weather-preview{--weather-preview-scale:.180556;--weather-preview-x:0px;--weather-preview-y:0px;z-index:60;aspect-ratio:1.2;background:var(--surface-soft);contain:layout paint;width:260px;box-shadow:0 22px 54px -22px rgb(var(--shadow-rgb) / .15), 0 7px 20px -10px rgb(var(--shadow-rgb) / .075), 0 0 0 1px var(--window-edge);opacity:0;filter:blur(4px);pointer-events:none;transform-origin:50%;transform:none;translate:var(--weather-preview-x) var(--weather-preview-y);will-change:transform, opacity, filter;backface-visibility:hidden;border-radius:2px;outline:0;transition-property:opacity,filter,scale;transition-duration:.15s;transition-timing-function:cubic-bezier(.2,0,0,1);display:block;position:fixed;top:0;left:0;overflow:hidden;scale:.96}.weather-preview.is-visible{opacity:1;filter:blur();scale:1}.weather-preview iframe{background:var(--surface-soft);pointer-events:none;width:1440px;height:1200px;transform:scale(var(--weather-preview-scale));transform-origin:0 0;backface-visibility:hidden;border:0;display:block}.auxio-preview{--auxio-preview-x:0px;--auxio-preview-y:0px;--auxio-open-x:24px;--auxio-open-y:24px;--auxio-open-width:1120px;--auxio-open-height:650px;--auxio-open-source-scale-x:.22;--auxio-open-source-scale-y:.31;z-index:60;background:var(--surface-soft);contain:layout paint;width:240px;height:200px;box-shadow:0 22px 54px -22px rgb(var(--shadow-rgb) / .15), 0 7px 20px -10px rgb(var(--shadow-rgb) / .075), 0 0 0 1px var(--window-edge);opacity:0;filter:blur(4px);pointer-events:none;will-change:transform, opacity, filter;backface-visibility:hidden;border-radius:2px;outline:0;transition-property:opacity,filter,scale;transition-duration:.15s;transition-timing-function:cubic-bezier(.2,0,0,1);display:block;position:fixed;top:0;left:0;overflow:hidden}.auxio-preview.is-visible{opacity:1;filter:blur()}.auxio-preview:not(.is-open){transform-origin:50%;transform:none;translate:var(--auxio-preview-x) var(--auxio-preview-y);scale:.96}.auxio-preview.is-visible:not(.is-open){scale:1}.auxio-preview.is-open{width:var(--auxio-open-width);height:var(--auxio-open-height);box-shadow:0 28px 72px -28px rgb(var(--shadow-rgb) / .16), 0 9px 26px -13px rgb(var(--shadow-rgb) / .075), 0 0 0 1px var(--window-edge);pointer-events:auto;filter:blur();translate:none;scale:1;transform:translate3d(var(--auxio-open-x), var(--auxio-open-y), 0);transform-origin:0 0;transition-property:transform,box-shadow;transition-duration:.36s;transition-timing-function:cubic-bezier(.22,1,.36,1)}.auxio-preview.is-open.is-opening{transform:translate3d(var(--auxio-preview-x), var(--auxio-preview-y), 0) scale(var(--auxio-open-source-scale-x), var(--auxio-open-source-scale-y));transition-property:none}.auxio-preview.is-open:not(.is-opening):not(.is-closing){transform:translate3d(var(--auxio-open-x), var(--auxio-open-y), 0) scale(1)}.auxio-preview.is-closing{opacity:0;filter:blur(6px);pointer-events:none;transform-origin:50%;transition-property:opacity,filter,scale;transition-duration:.18s;transition-timing-function:ease-out;scale:.94}.auxio-preview iframe{background:var(--surface-soft);pointer-events:none;transform-origin:0 0;backface-visibility:hidden;border:0;width:166.667%;height:166.667%;display:block;transform:scale(.6)}.auxio-preview:not(.is-open):before,.auxio-preview:not(.is-open):after{z-index:2;content:"";pointer-events:none;background:#fff;display:block;position:absolute}.auxio-preview:not(.is-open):before{width:calc(100% - 35px);height:44px;top:0;left:0}.auxio-preview:not(.is-open):after{height:44px;bottom:0;left:0;right:0}.auxio-preview.is-open iframe{pointer-events:auto;width:100%;height:100%;transform:none}.auxio-preview.is-closing iframe{pointer-events:none}.is-auxio-open .about-dismiss{z-index:55}.section-switcher{z-index:50;background:rgb(var(--surface-rgb) / .78);box-shadow:0 12px 30px -18px rgb(var(--shadow-rgb) / .11), 0 0 0 1px rgb(var(--ink-rgb) / .045);opacity:1;filter:blur();-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:0;border-radius:4px;padding:3px;transition-property:opacity,filter;transition-duration:.24s;transition-timing-function:ease-out;display:flex;position:fixed;bottom:clamp(18px,3.4vh,38px);left:50%;transform:translate(-50%)}.section-selection{z-index:0;background:var(--control-selected);pointer-events:none;transform-origin:100%;will-change:translate;border-radius:2px;width:calc(50% - 3px);transition-property:translate;transition-duration:.36s;transition-timing-function:cubic-bezier(.22,1,.36,1);position:absolute;top:3px;bottom:3px;left:3px;translate:0;scale:1}.is-about .section-selection{transform-origin:0;translate:100%}.section-switcher.is-moving-to-about .section-selection,.section-switcher.is-moving-to-recent .section-selection{will-change:translate, scale;animation-duration:.36s;animation-timing-function:cubic-bezier(.2,0,0,1);animation-fill-mode:both}.section-switcher.is-moving-to-about .section-selection{transform-origin:0;animation-name:section-selection-stretch-right}.section-switcher.is-moving-to-recent .section-selection{transform-origin:100%;animation-name:section-selection-stretch-left}@keyframes section-selection-stretch-right{0%{scale:1}38%{scale:1.075 .985}74%{scale:.99 1.006}to{scale:1}}@keyframes section-selection-stretch-left{0%{scale:1}38%{scale:1.075 .985}74%{scale:.99 1.006}to{scale:1}}.is-auxio-open .site-header,.is-auxio-open .site-time,.is-auxio-open .section-switcher,.is-auxio-open .layout-control{opacity:.32;filter:blur(14px);pointer-events:none}.is-auxio-open .site-status{z-index:56}.section-item{appearance:none;min-width:108px;min-height:44px;color:color-mix(in srgb, var(--ink) 80%, var(--page));font-size:var(--interface-title-size);font-weight:var(--interface-title-weight);letter-spacing:-.015em;opacity:.8;cursor:pointer;z-index:1;background:0 0;border:0;border-radius:2px;place-items:center;padding:0 24px;line-height:1;transition-property:opacity,scale;transition-duration:.15s;transition-timing-function:ease-out;display:grid;position:relative;scale:1}.section-item.is-current{opacity:1}.editor-launcher{appearance:none;z-index:48;right:76px;bottom:max(18px, env(safe-area-inset-bottom));background:rgb(var(--ink-rgb) / .92);min-width:44px;height:44px;color:var(--page);cursor:pointer;transition-property:opacity,scale,transform,background-color;transition-duration:.18s;transition-timing-function:var(--motion-ease);border:0;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 14px;display:flex;position:fixed;scale:1}.layout-control{appearance:none;z-index:48;right:20px;bottom:max(18px, env(safe-area-inset-bottom));width:44px;height:44px;color:var(--muted);cursor:pointer;opacity:1;filter:blur();transition-property:color,opacity,filter,scale,transform;transition-duration:.18s;transition-timing-function:var(--motion-ease);background:0 0;border:0;border-radius:50%;outline:none;place-items:center;padding:0;display:grid;position:fixed;scale:1}.layout-icon{width:var(--interface-layout-icon-size);height:var(--interface-layout-icon-size);background:currentColor;display:block;-webkit-mask:url(/icons/change-layout.svg) 50%/contain no-repeat;mask:url(/icons/change-layout.svg) 50%/contain no-repeat}.layout-control:active{scale:.96}.layout-control:focus-visible{outline-offset:2px;outline:1px solid}.layout-control:disabled{cursor:default}.has-selection .editor-launcher,.is-about .editor-launcher,.has-selection .layout-control,.is-about .layout-control{opacity:0;pointer-events:none;transform:translateY(8px)}.editor-launcher-icon{background:linear-gradient(currentColor,currentColor) 0 2px/16px 1px no-repeat,linear-gradient(currentColor,currentColor) 0 7px/16px 1px no-repeat,linear-gradient(currentColor,currentColor) 0 12px/16px 1px no-repeat;width:16px;height:14px;display:block;position:relative}.about-back-icon,.about-social-link>.social-icon,.about-social-link>.email-symbol,.about-social-link>.site-music-icon-stack,.editor-launcher-icon,.active-media-remove>span{transition-property:scale;transition-duration:.15s;transition-timing-function:ease-out;scale:1}.editor-launcher-icon:before,.editor-launcher-icon:after{background:var(--ink);content:"";border:1px solid;border-radius:50%;width:4px;height:4px;position:absolute}.editor-launcher-icon:before{top:0;left:4px}.editor-launcher-icon:after{top:10px;left:9px}.editor-backdrop{z-index:80;background:rgb(var(--page-rgb) / .48);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:.18s ease-out both backdrop-in;position:fixed;inset:0}.project-editor{background:rgb(var(--surface-raised-rgb) / .96);width:min(440px,100vw - 24px);box-shadow:0 30px 90px rgb(var(--shadow-rgb) / .14), 0 0 0 1px var(--window-edge);animation:editor-in .28s var(--motion-ease) both;border-radius:18px;padding:24px;position:absolute;top:12px;bottom:12px;right:12px;overflow-y:auto}.editor-header{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:24px;display:flex}.editor-header p,.project-list>p{color:var(--faint);letter-spacing:.04em;text-transform:uppercase;margin:0 0 5px;font-size:11px;font-weight:560;line-height:1.2}.editor-header h2{letter-spacing:-.02em;margin:0;font-size:18px;font-weight:590}.editor-close{flex:0 0 44px;margin:-7px -7px 0 0;position:relative}.project-form{gap:16px;display:grid}.project-form>label,.form-row label{gap:7px;display:grid}.project-form label>span,.media-field>span{color:var(--muted);font-size:12px;font-weight:520}.project-form input,.project-form textarea,.project-form select{outline:1px solid rgb(var(--ink-rgb) / .12);background:rgb(var(--surface-input-rgb) / .72);width:100%;min-height:44px;color:var(--ink);border:0;border-radius:8px;padding:10px 12px;transition-property:outline-color,background-color;transition-duration:.14s;transition-timing-function:ease-out}.project-form textarea{resize:vertical;min-height:104px;line-height:1.45}.project-form .description-link-hint{color:var(--faint);font-size:11px;font-weight:400;line-height:1.35}.description-link-menu{z-index:100;background:rgb(var(--surface-input-rgb) / .98);width:min(292px,100vw - 24px);box-shadow:0 24px 60px -22px rgb(var(--shadow-rgb) / .18), 0 7px 20px -10px rgb(var(--shadow-rgb) / .09), 0 0 0 1px var(--window-edge);border-radius:10px;outline:0;gap:10px;padding:12px;display:grid;position:fixed}.description-link-menu p{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:12px;line-height:1.3;overflow:hidden}.description-link-menu input,.description-link-menu select{outline:1px solid var(--edge-strong);background:var(--surface-input);width:100%;min-height:44px;color:var(--ink);border:0;border-radius:7px;padding:10px 11px}.description-link-menu input:focus,.description-link-menu select:focus{outline:1.5px solid rgb(var(--ink-rgb) / .48)}.description-link-menu>div{justify-content:space-between;align-items:center;gap:8px;display:flex}.description-link-menu button{cursor:pointer;border:0;border-radius:7px;min-height:40px;padding:0 12px;transition-property:background-color,color,scale;transition-duration:.14s;transition-timing-function:ease-out;scale:1}.remove-description-link{color:var(--danger);background:0 0}.apply-description-link{background:var(--primary-fill);color:var(--primary-label)}.description-link-menu button:active{scale:.96}.project-form input:focus,.project-form textarea:focus,.project-form select:focus{outline:1.5px solid rgb(var(--ink-rgb) / .48);background:var(--surface-input)}.form-row{grid-template-columns:1fr .74fr;gap:12px;display:grid}.media-field{border-top:1px solid var(--edge);border-bottom:1px solid var(--edge);align-items:center;gap:10px;min-height:62px;padding:10px 0;display:flex}.fallback-media-field{border-top:0;margin-top:-16px}.active-media-section{border-bottom:1px solid var(--edge);gap:10px;margin-top:-12px;padding:12px 0;display:grid}.active-media-heading{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.active-media-heading>span,.slideshow-settings label>span{color:var(--muted);font-size:12px;font-weight:520}.active-media-heading small{color:var(--faint);font-variant-numeric:tabular-nums;font-size:10px}.active-media-slots{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.active-media-slot,.media-slot-add{outline:1px solid rgb(var(--ink-rgb) / .1);outline-offset:-1px;background:rgb(var(--surface-input-rgb) / .72);border-radius:6px;min-height:72px;position:relative;overflow:hidden}.active-media-slot img,.active-media-slot video{object-fit:cover;width:100%;height:100%;display:block}.active-media-index{z-index:2;background:rgb(var(--surface-input-rgb) / .88);min-width:18px;height:18px;color:var(--muted);font-variant-numeric:tabular-nums;text-align:center;border-radius:999px;padding:0 5px;font-size:10px;line-height:18px;position:absolute;bottom:5px;left:5px}.active-media-remove{z-index:3;width:40px;height:40px;color:rgb(var(--ink-rgb) / .74);cursor:pointer;background:0 0;border:0;place-items:center;padding:0;display:grid;position:absolute;top:0;right:0}.active-media-remove span{background:rgb(var(--surface-input-rgb) / .88);width:24px;height:24px;box-shadow:0 1px 4px rgb(var(--shadow-rgb) / .08);border-radius:50%;place-items:center;font-size:16px;line-height:1;display:grid}.media-slot-add{min-width:0;color:var(--muted);cursor:pointer;place-content:center;place-items:center;padding:8px;transition-property:background-color,color;transition-duration:.14s;transition-timing-function:ease-out;display:grid}.media-slot-add input{opacity:0;width:1px;height:1px;position:absolute;overflow:hidden}.media-slot-add strong{font-size:18px;font-weight:400;line-height:1}.media-slot-add span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:11px;overflow:hidden}.media-slot-add.is-loading{cursor:wait;opacity:.58;pointer-events:none}.slideshow-settings{grid-template-columns:1fr 1fr;gap:8px;display:grid}.slideshow-settings label{gap:6px;display:grid}.idle-preview-setting{cursor:pointer;justify-content:space-between;align-items:center;gap:16px;min-height:58px;display:flex}.open-media-setting{border-top:1px solid var(--edge);margin-top:-4px;padding-top:10px}.idle-preview-copy{gap:3px;display:grid}.project-form .idle-preview-copy strong{color:var(--ink);font-size:13px;font-weight:560;line-height:1.2}.project-form .idle-preview-copy small{color:var(--faint);font-size:11px;font-weight:400;line-height:1.35}.idle-preview-setting input{opacity:0;width:1px;height:1px;position:absolute;overflow:hidden}.project-form .idle-preview-switch{background:rgb(var(--ink-rgb) / .14);border-radius:999px;flex:0 0 36px;width:36px;height:22px;transition-property:background-color;transition-duration:.15s;transition-timing-function:ease-out;display:block;position:relative}.idle-preview-switch i{background:var(--surface-input);width:16px;height:16px;box-shadow:0 1px 3px rgb(var(--shadow-rgb) / .16);border-radius:50%;transition-property:transform;transition-duration:.15s;transition-timing-function:cubic-bezier(.2,0,0,1);position:absolute;top:3px;left:3px;transform:translate(0)}.idle-preview-setting input:checked+.idle-preview-switch{background:rgb(var(--ink-rgb) / .9)}.idle-preview-setting input:checked+.idle-preview-switch i{transform:translate(14px)}.idle-preview-setting input:focus-visible+.idle-preview-switch{outline:1px solid var(--ink);outline-offset:3px}.idle-preview-setting.is-disabled{cursor:default;opacity:.42}.media-field>span{margin-right:auto}.media-field>span small{color:var(--faint);font-variant-numeric:tabular-nums;margin-top:3px;font-size:10px;line-height:1.2;display:block}.media-storage-hint{color:var(--faint);margin:-4px 0 2px;font-size:11px;line-height:1.35}.media-upload{background:rgb(var(--ink-rgb) / .07);min-height:40px;color:var(--ink);cursor:pointer;border-radius:7px;place-items:center;padding:0 12px;transition-property:background-color,scale;transition-duration:.14s;transition-timing-function:ease-out;display:grid;position:relative;scale:1}.media-upload input{opacity:0;width:1px;height:1px;position:absolute;overflow:hidden}.media-upload.is-loading{cursor:wait;opacity:.58;pointer-events:none}.media-upload span,.remove-media{font-size:12px}.remove-media{min-height:40px;color:var(--muted);cursor:pointer;background:0 0;border:0}.form-error{color:var(--danger);margin:-4px 0 0;font-size:12px;line-height:1.35}.save-project{background:var(--primary-fill);min-height:46px;color:var(--primary-label);cursor:pointer;border:0;border-radius:8px;transition-property:background-color,scale;transition-duration:.15s;transition-timing-function:ease-out;scale:1}.save-project:disabled{cursor:wait;opacity:.58}.project-list{border-top:1px solid rgb(var(--ink-rgb) / .1);gap:8px;margin-top:28px;padding-top:22px;display:grid}.project-list-heading{gap:3px;margin-bottom:3px;display:grid}.project-list-heading p,.project-list-heading small{margin:0}.project-list-heading small{color:var(--faint);font-size:11px;line-height:1.35}.project-list-row{background:rgb(var(--ink-rgb) / .035);outline-offset:-1px;border-radius:8px;outline:1px solid #0000;align-items:center;gap:4px;min-height:58px;padding:5px 6px;transition-property:background-color,opacity,outline-color,transform;transition-duration:.15s;transition-timing-function:ease-out;display:flex}.project-list-row.is-reordering{opacity:.42;transform:scale(.985)}.project-list-row.is-drop-target{background:rgb(var(--ink-rgb) / .07);outline-color:rgb(var(--ink-rgb) / .18)}.project-reorder-handle,.project-order-actions button{appearance:none;width:40px;height:40px;color:var(--faint);cursor:pointer;background:0 0;border:0;border-radius:6px;flex:0 0 40px;place-items:center;padding:0;transition-property:color,opacity,scale;transition-duration:.12s;transition-timing-function:ease-out;display:grid;scale:1}.project-reorder-handle{cursor:grab}.project-reorder-handle:active{cursor:grabbing;scale:.96}.project-reorder-handle>span{background:radial-gradient(circle,currentColor 1.25px,#0000 1.5px) 1px 1px/6px 6px;width:14px;height:18px}.project-list-edit{min-width:0;min-height:44px;color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:0;flex:1;align-content:center;gap:3px;padding:0;display:grid}.project-list-edit span{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:560;overflow:hidden}.project-list-edit small{color:var(--faint);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.project-order-actions{flex:0 0 40px;grid-template-rows:1fr 1fr;display:grid}.project-order-actions button{height:22px}.project-order-actions button:disabled{cursor:default;opacity:.22}.project-order-arrow{border-top:1.25px solid;border-left:1.25px solid;width:7px;height:7px}.project-order-arrow.is-up{transform:translateY(2px)rotate(45deg)}.project-order-arrow.is-down{transform:translateY(-2px)rotate(225deg)}.project-order-feedback{min-height:15px;color:var(--faint);margin:2px 0 0;font-size:11px;line-height:1.35}.remove-project{min-width:64px;min-height:40px;color:var(--danger);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:0 10px;font-size:11px;transition-property:color,background-color;transition-duration:.14s;transition-timing-function:ease-out}.remove-project.is-confirming{background:rgb(var(--danger-rgb) / .1);color:var(--danger)}.about-editor-section{border-top:1px solid rgb(var(--ink-rgb) / .1);gap:16px;margin-top:28px;padding-top:22px;display:grid}.about-editor-heading{gap:3px;display:grid}.about-editor-heading p{color:var(--faint);letter-spacing:.04em;text-transform:uppercase;margin:0;font-size:11px;font-weight:560;line-height:1.2}.about-editor-heading h3{color:var(--ink);letter-spacing:-.015em;margin:0;font-size:16px;font-weight:580;line-height:1.25}.about-editor-form textarea{min-height:196px}.about-feedback{color:var(--danger);margin:-4px 0 0;font-size:12px;line-height:1.35}.about-feedback.is-success{color:var(--muted)}@keyframes backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes editor-in{0%{opacity:0;filter:blur(4px);transform:translate(16px)scale(.98)}to{opacity:1;filter:blur();transform:translate(0)scale(1)}}@media (hover:hover) and (pointer:fine){.admin-login-modal>a:hover,.project-reorder-handle:hover,.project-order-actions button:not(:disabled):hover{color:var(--ink)}.project-link-button:hover:not(:active),.editor-close:hover:not(:active),.layout-control:hover:not(:active),.project-reorder-handle:hover:not(:active),.project-order-actions button:not(:disabled):hover:not(:active),.about-back:hover:not(:active) .about-back-icon,.about-social-link:hover:not(:active)>.social-icon,.about-social-link:hover:not(:active)>.email-symbol,.about-social-link:hover:not(:active)>.site-music-icon-stack,.editor-launcher:hover:not(:active) .editor-launcher-icon,.active-media-remove:hover:not(:active)>span{scale:1.05}.project-card:not(.is-dragging):not(.is-focus-card):hover{box-shadow:0 18px 42px -18px rgb(var(--shadow-rgb) / .12), 0 6px 18px -9px rgb(var(--shadow-rgb) / .065), 0 0 0 1px var(--card-stroke);scale:1.002}.project-link-button:hover,.editor-close:hover{color:var(--ink)}.about-back:hover,.about-social-link:hover{color:color-mix(in srgb, var(--ink) 88%, transparent)}.layout-control:hover{color:var(--ink);opacity:1}.site-name:hover{color:var(--ink)}.project-copy-link:hover,.weather-note:hover{opacity:.8}.media-upload:hover{background-color:var(--control-hover)}.media-slot-add:hover{background-color:var(--control-hover);color:var(--ink)}.active-media-remove:hover{color:var(--ink)}.section-item:hover{opacity:1}.editor-launcher:hover,.save-project:hover,.apply-description-link:hover{background-color:var(--primary-hover)}}@media (max-width:760px){:root{--interface-title-size:16px;--interface-body-size:16px;--interface-icon-size:18px;--interface-back-icon-size:22px;--interface-email-icon-size:18px;--interface-layout-icon-size:17px;--interface-x-icon-size:18px;--interface-linkedin-icon-size:18px;--interface-music-icon-size:20px;--interface-link-out-icon-size:24px;--interface-close-icon-size:18px;--site-inline:24px}html,body{overflow:hidden}.portfolio-shell.has-selection{overflow-anchor:none;overscroll-behavior-x:none;overscroll-behavior-y:contain;scrollbar-width:none;touch-action:pan-y;-webkit-overflow-scrolling:touch;height:100svh;min-height:0;overflow:auto}.portfolio-shell.has-selection::-webkit-scrollbar{display:none}.portfolio-shell.is-grid:not(.has-selection):not(.is-about),.portfolio-shell.is-vertical:not(.has-selection):not(.is-about){overscroll-behavior-x:none;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;overflow:hidden auto}.portfolio-shell.is-horizontal:not(.has-selection):not(.is-about),.portfolio-shell.is-bento:not(.has-selection):not(.is-about){overscroll-behavior-x:contain;overscroll-behavior-y:none;touch-action:pan-x;-webkit-overflow-scrolling:touch;overflow:auto hidden}.portfolio-shell.is-horizontal:not(.has-selection):not(.is-about) .project-canvas,.portfolio-shell.is-bento:not(.has-selection):not(.is-about) .project-canvas{width:var(--layout-width);height:100svh}.portfolio-shell.is-horizontal:not(.has-selection):not(.is-about) .project-card,.portfolio-shell.is-bento:not(.has-selection):not(.is-about) .project-card{touch-action:pan-x}.portfolio-shell.has-selection .project-canvas{height:max(100svh, calc(var(--focus-top) + var(--focus-height) + var(--detail-gap) + var(--project-detail-height) + 112px))}.portfolio-shell.has-selection .project-plane{height:100%;transform:translate3d(calc(0px - var(--viewport-scroll-left)), calc(0px - var(--viewport-scroll-top)), 0);overflow:hidden}.identity-layer{z-index:32;pointer-events:none;width:calc(100vw - 48px);transition-property:transform;transition-duration:.42s;transition-timing-function:var(--motion-ease);will-change:transform;display:block;position:fixed;top:11px;left:24px;transform:translateY(-52px)}.identity-layer .site-header{grid-template-rows:44px 44px;grid-template-columns:1fr auto;row-gap:8px;width:100%;height:96px;display:grid;position:relative;top:0;left:0}.identity-layer .site-name{grid-area:2/1;justify-self:start}.site-status{position:fixed;top:11px}.is-about .identity-layer{will-change:auto;width:calc(100vw - 48px);position:fixed;top:11px;transform:none}.is-about .site-header{top:0;left:0}.is-about .site-name{transform:none}.about-controls{grid-template-rows:44px 44px;grid-template-columns:1fr auto;row-gap:8px;width:100%;height:96px;display:grid;top:0;left:0;transform:none}.is-about .about-socials{grid-area:1/2;justify-self:end;margin-left:0}.is-about .about-back,.is-about .about-social-link{transition-delay:0s,.54s,.54s,.54s}.project-card{width:var(--card-width,min(82vw, 360px));touch-action:pan-x pan-y}.is-about .selection-wash{z-index:5;background-color:var(--wash-focus);-webkit-backdrop-filter:blur(61px);backdrop-filter:blur(61px);transition-property:opacity,-webkit-backdrop-filter,backdrop-filter,background-color;transition-duration:var(--motion-duration);transition-timing-function:var(--motion-ease);will-change:opacity, backdrop-filter}.is-about .project-card{opacity:.2;filter:blur(9px)saturate(.55)}.project-card.size-screen{width:var(--card-width,min(82vw, 360px))}.project-card.size-board{width:var(--card-width,min(78vw, 340px))}.project-card.size-portrait{width:var(--card-width,min(60vw, 260px))}.project-card.is-featured{width:var(--card-width,min(82vw, 360px))}.project-card.is-focus-card{z-index:22;width:var(--focus-width);opacity:calc(1 - var(--swipe-dismiss-progress,0) * .14);touch-action:none;translate:0 var(--swipe-dismiss-y,0px)}.project-slider-stage rv-slider[value-input-disabled]::part(value){pointer-events:none;-webkit-user-select:none;user-select:none}.project-detail{z-index:20;top:calc(var(--focus-top) - var(--viewport-scroll-top) + var(--focus-height) + var(--detail-gap));overscroll-behavior:contain;scrollbar-width:none;touch-action:pan-y;-webkit-overflow-scrolling:touch;opacity:0;width:calc(100vw - 48px);max-height:none;padding-bottom:24px;position:absolute;left:24px;right:auto;overflow:visible;transform:translateY(14px)scale(.98)}.project-detail::-webkit-scrollbar{display:none}.project-detail.is-visible{opacity:calc(1 - var(--swipe-dismiss-progress,0) * .42);transform:translateY(0)scale(1);translate:0 var(--swipe-dismiss-y,0px)}.focus-dismiss{touch-action:none}.is-focus-active.is-swipe-dismiss-dragging .selection-wash{opacity:calc(1 - var(--swipe-dismiss-progress,0) * .34);transition-property:none}.is-swipe-dismiss-dragging .project-card.is-focus-card,.is-swipe-dismiss-dragging .project-detail.is-visible{transition-property:none}.is-swipe-dismiss-settling .selection-wash,.is-swipe-dismiss-settling .project-card.is-focus-card,.is-swipe-dismiss-settling .project-detail.is-visible{transition-duration:.18s;transition-timing-function:cubic-bezier(.2,0,0,1)}.is-swipe-dismiss-settling .selection-wash{transition-property:opacity}.is-swipe-dismiss-settling .project-card.is-focus-card,.is-swipe-dismiss-settling .project-detail.is-visible{transition-property:translate,opacity}.is-swipe-dismiss-handoff .project-card.is-focus-card{transition-property:transform,width,box-shadow,translate,opacity}.is-swipe-dismiss-handoff .project-detail{transition-property:opacity,filter,transform,translate}.project-detail h1{margin-bottom:24px}.project-detail-copy .description-content{font-size:var(--interface-body-size)}.project-detail .project-link-button{position:absolute;top:-12px;right:-6px}.about-panel{transform-origin:50%;width:calc(100vw - 48px);margin:0;position:fixed;top:50svh;left:24px;transform:translateY(calc(12px - 50%))scale(.96)}.is-about .about-panel{width:calc(100vw - 48px);top:50svh;left:24px;transform:translateY(-50%)scale(1)}.is-about .about-back{grid-area:1/1;justify-self:start;margin-left:-13px;position:relative;top:auto;left:auto}.about-copy{gap:22px;padding-right:0}.about-copy .description-content{font-size:var(--interface-body-size)}.weather-preview{--weather-preview-scale:.145833;width:210px}.auxio-preview:not(.is-open){width:220px;height:183.333px}.section-switcher{bottom:max(16px, env(safe-area-inset-bottom))}.section-item{min-width:92px;font-size:var(--interface-title-size);padding:0 18px}.editor-launcher{right:68px;bottom:max(16px, env(safe-area-inset-bottom));width:44px;min-width:44px;padding:0}.layout-control{right:16px;bottom:max(16px, env(safe-area-inset-bottom))}.editor-launcher>span:last-child{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.project-editor{border-radius:16px;width:calc(100vw - 16px);padding:20px;top:8px;bottom:8px;right:8px}.form-row{grid-template-columns:1fr}.media-field{flex-wrap:wrap}.media-field>span{flex-basis:100%}}@media (hover:hover) and (pointer:fine){.project-link-button:hover,.editor-close:hover,.about-back:hover,.about-social-link:hover,.layout-control:hover,.site-name:hover,.project-copy-link:hover,.weather-note:hover,.media-upload:hover,.section-item:hover,.editor-launcher:hover,.save-project:hover,.apply-description-link:hover{transition-delay:0s}}@media (max-height:680px) and (min-width:761px){.about-panel{top:calc(50% - 78px)}.is-about .site-header{top:calc(50% - 172px)}.about-copy{gap:18px}}@media (prefers-reduced-motion:reduce){.admin-login-modal{animation-duration:.01ms}.site-header,.project-canvas,.selection-wash,.project-plane,.project-card,.project-detail,.about-panel,.about-controls,.section-item,.section-selection,.editor-launcher,.layout-control{transition-duration:.01ms}.section-switcher.is-moving-to-about .section-selection,.section-switcher.is-moving-to-recent .section-selection{animation-duration:.01ms;scale:1}.site-status,.site-time,.site-music-link,.site-music-icon-stack,.site-music-icon-stack>*,.email-symbol-icon,.project-link-button,.editor-close,.about-back-icon,.about-social-link>.social-icon,.about-social-link>.email-symbol,.editor-launcher-icon,.active-media-remove>span,.project-reorder-handle,.project-order-actions button{transition-duration:.01ms}.email-copy-button.is-copied .email-symbol,.site-music-link.is-opening .site-music-icon-stack,.site-music-link.is-closing .site-music-icon-stack,.editor-backdrop,.project-editor{animation-duration:.01ms}.weather-preview,.auxio-preview,.project-slider-stage rv-slider{transition-duration:.01ms}.project-card.is-focus-card .project-media-stack{filter:none;animation-duration:.01ms}.project-card.is-card-awaiting,.project-card.is-card-entering{opacity:1;filter:none;pointer-events:auto;animation:none}.project-card.is-card-awaiting .project-card-reveal-surface,.project-card.is-card-entering .project-card-reveal-surface{animation:none;transform:scale(1)}.project-card.has-live-embed.has-stable-live-embed .project-media-stack,.is-reflowing .project-card.has-stable-live-embed:not(.is-focus-card):not(.is-dragging) .project-media-stack{transition-duration:.01ms}.project-slide{transition-duration:.01ms!important}}
