@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.absolute{position:absolute}.relative{position:relative}.start{inset-inline-start:var(--spacing)}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.inline-flex{display:inline-flex}.h-full{height:100%}.min-h-full{min-height:100%}.resize{resize:both}.border{border-style:var(--tw-border-style);border-width:1px}.uppercase{text-transform:uppercase}.italic{font-style:italic}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}}:root{--bg:#000;--text:#dbdbdb;--muted:#909090;--divider:#2b2b2b;--underline:#575757;--underline-hover:#f1f1f1;--hover-surface:#131313;--hover-border:#1c1c1c;--spotify-card-bg:#ececec;--spotify-card-text:#191919;--spotify-card-subtle:#676767;--body-size:1rem;--body-line-height:1.6}html{scroll-behavior:smooth;scrollbar-gutter:stable}:root[data-theme=snow],body[data-theme=snow]{--bg:#f4f4f4;--text:#1b1b1b;--muted:#5f5f5f;--divider:#cfcfcf;--underline:#8a8a8a;--underline-hover:#111;--hover-surface:#e8e8e8;--hover-border:#d8d8d8;--spotify-card-bg:#efefef;--spotify-card-text:#191919;--spotify-card-subtle:#666}:root[data-theme=coffee-cream],body[data-theme=coffee-cream]{--bg:#f3ece2;--text:#3d2f24;--muted:#7a6454;--divider:#d5c3b0;--underline:#b19479;--underline-hover:#3d2f24;--hover-surface:#ebdfd1;--hover-border:#d6c1ad;--spotify-card-bg:#e6d7c7;--spotify-card-text:#38291e;--spotify-card-subtle:#7b6553}:root[data-theme=dusty-blue],body[data-theme=dusty-blue]{--bg:#121822;--text:#c8d2df;--muted:#8f9fb3;--divider:#2c3a4c;--underline:#5f7690;--underline-hover:#dbe6f3;--hover-surface:#1a2433;--hover-border:#2a3950;--spotify-card-bg:#d6dde8;--spotify-card-text:#172232;--spotify-card-subtle:#4f6075}body{background-color:var(--bg);color:var(--text);justify-content:center;align-items:flex-start;min-height:100vh;margin:0;font-family:Times New Roman,Times,serif;transition:background-color .32s,color .32s;display:flex}body:has(>.rh-page){display:block}.page-layout{align-items:flex-start;gap:2.25rem;width:min(71rem,100vw - 3rem);padding:clamp(2rem,6vh,3.5rem) 0;display:flex}.contents-nav{z-index:3;flex:0 0 12rem;align-self:start;width:12rem;position:sticky;top:2rem}.contents-title{letter-spacing:.16em;color:#7f7f7f;text-transform:uppercase;margin:0 0 .65rem;font-size:.8rem;line-height:1.4;transition:color .28s}.contents-nav ul{margin:0;padding:0;list-style:none}.contents-nav li{margin:0 0 .35rem}.mobile-contents-toggle,.mobile-contents-drawer,.mobile-contents-overlay,.mobile-theme-toggle,.mobile-theme-overlay,.mobile-theme-close{display:none}@media (min-width:761px){.mobile-contents-toggle,.mobile-contents-drawer,.mobile-contents-overlay,.mobile-theme-toggle,.mobile-theme-overlay,.mobile-theme-close{display:none!important}}.contents-link{color:gray;font-size:1rem;line-height:1.4;text-decoration:none;transition:color .14s}.contents-link-button{text-align:left;width:100%;font:inherit;cursor:pointer;background:0 0;border:0;padding:0}.contents-link:hover,.contents-link.active{color:#f1f1f1}.theme-nav{z-index:4;pointer-events:auto;flex:0 0 12rem;align-self:start;width:12rem;position:sticky;top:2rem}.theme-link{text-align:left;width:100%;font:inherit;color:gray;cursor:pointer;background:0 0;border:0;margin:0 0 .35rem;padding:0;font-size:1rem;line-height:1.4;transition:color .14s;display:block}.theme-link:hover,.theme-link.active{color:#f1f1f1}.theme-link.active{text-underline-offset:.18em;text-decoration:underline}.spotify-widget{margin-top:1.4rem;margin-right:0}.spotify-profile-card{margin-top:.7rem}.spotify-profile-row{align-items:center;gap:.6rem;display:flex}.spotify-profile-image{object-fit:cover;border:1px solid var(--hover-border);border-radius:999px;width:2.1rem;height:2.1rem}.spotify-profile-label{color:var(--muted);letter-spacing:.16em;text-transform:uppercase;margin:0 0 .3rem;font-size:.8rem}.spotify-profile-name{color:var(--text);letter-spacing:.03em;margin:0;font-size:.95rem;text-decoration:none;display:inline-block}.spotify-profile-name:hover{text-underline-offset:.15em;text-decoration:underline}.spotify-card{box-sizing:border-box;background:var(--spotify-card-bg);align-items:center;gap:.75rem;width:100%;height:5.65rem;padding:.85rem;text-decoration:none;transition:transform .18s,box-shadow .22s,background-color .32s;display:flex;border-radius:0!important}@media (min-width:1300px){.spotify-widget{margin-right:-1.15rem}.spotify-card{width:calc(100% + 2rem)}}@media (max-width:1299px){.spotify-widget{margin-right:0!important}.spotify-card{width:100%!important}}.spotify-card:hover{transform:translateY(-1px);box-shadow:0 10px 22px #0000002e}.spotify-art{object-fit:cover;flex:0 0 3.95rem;width:3.95rem;height:3.95rem;border-radius:0!important}.spotify-art-fallback{color:var(--spotify-card-text);background:#00000014;place-items:center;font-size:1.35rem;display:grid}.spotify-track,.spotify-error{font-size:.95rem;line-height:1.4}.spotify-track{flex:1;min-width:0}.spotify-status{color:var(--spotify-card-subtle);letter-spacing:.16em;text-transform:uppercase;margin:0 0 .25rem;font-size:.8rem;transition:color .28s}.spotify-title{color:var(--spotify-card-text);white-space:nowrap;margin:0;font-size:1.05rem;line-height:1.18;text-decoration:none;transition:color .32s;overflow:hidden}.spotify-artist,.spotify-error{color:var(--spotify-card-subtle);margin:.2rem 0 0;transition:color .28s}.spotify-artist{white-space:nowrap;overflow:hidden}.marquee-viewport{white-space:nowrap;width:100%;display:block;overflow:hidden}.marquee-track{white-space:nowrap;width:max-content;display:inline-block;transform:translate(0)}.marquee-segment{white-space:nowrap}.marquee-viewport.is-overflow .marquee-track{will-change:transform;animation:8s ease-in-out infinite alternate spotifyMarquee}@keyframes spotifyMarquee{0%,14%{transform:translate(0)}86%,to{transform:translateX(var(--marquee-distance,0px))}}[data-theme=snow] .contents-link,[data-theme=snow] .theme-link{color:#6a6a6a}[data-theme=snow] .contents-link:hover,[data-theme=snow] .contents-link.active,[data-theme=snow] .theme-link:hover,[data-theme=snow] .theme-link.active{color:#111}[data-theme=snow] .contents-title{color:#787878}[data-theme=coffee-cream] .contents-link,[data-theme=coffee-cream] .theme-link{color:#8d7360}[data-theme=coffee-cream] .contents-link:hover,[data-theme=coffee-cream] .contents-link.active,[data-theme=coffee-cream] .theme-link:hover,[data-theme=coffee-cream] .theme-link.active{color:#3d2f24}[data-theme=coffee-cream] .contents-title{color:#9b816d}[data-theme=dusty-blue] .contents-link,[data-theme=dusty-blue] .theme-link{color:#7f92a8}[data-theme=dusty-blue] .contents-link:hover,[data-theme=dusty-blue] .contents-link.active,[data-theme=dusty-blue] .theme-link:hover,[data-theme=dusty-blue] .theme-link.active{color:#dbe6f3}[data-theme=dusty-blue] .contents-title{color:#7a8ca1}.portfolio{width:min(43rem,100%)}.site-header{margin-bottom:2.15rem}.site-headline{justify-content:space-between;align-items:center;gap:1rem;display:flex}.site-name{text-transform:lowercase;margin:0;font-size:2rem;font-weight:400;line-height:1.1}.profile-image{width:auto;height:3.5rem;display:block}.profile-avatar{align-items:center;display:inline-flex;position:relative}.speech-bubble{background-color:var(--hover-surface);border:1px solid var(--hover-border);color:var(--text);white-space:nowrap;opacity:0;pointer-events:none;align-items:center;padding:.36rem .5rem;font-size:.85rem;line-height:1.2;transition:opacity .18s,width .32s;display:inline-flex;position:absolute;top:50%;right:calc(100% + .55rem);overflow:hidden;transform:translateY(-50%)}.speech-bubble-text{opacity:1;transition:opacity .22s;display:inline-block}.speech-bubble-text.is-hidden{opacity:0}.speech-bubble.speech-bubble-measure{visibility:hidden;opacity:0;pointer-events:none;position:absolute;width:auto!important}.speech-bubble:after{content:"";border-top:6px solid #0000;border-bottom:6px solid #0000;border-left:6px solid var(--hover-border);width:0;height:0;position:absolute;top:50%;left:100%;transform:translateY(-50%)}.profile-avatar:hover .speech-bubble,.profile-home-link:focus-visible .speech-bubble{opacity:1}.profile-home-link{display:inline-flex}.project-hero{margin-top:2.2rem}.project-heading{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.project-heading-title h2{text-transform:none;border:0;margin:0;padding:0;font-size:1.9rem;line-height:1.2}.project-heading-title h2 span{font-size:2.4rem}.project-view-button{border:1px solid var(--underline);color:var(--text);cursor:pointer;font:inherit;background:0 0;margin-top:.2rem;padding:.45rem .8rem;transition:border-color .18s,color .18s,background-color .18s}.project-view-button:hover{border-color:var(--underline-hover);background-color:var(--hover-surface)}.project-hero-row{flex-wrap:wrap;gap:1.25rem;margin-top:1.2rem;display:flex}.project-hero-description{flex:22rem;min-width:0}.project-hero-model{flex:20rem;min-width:0}.project-model-container{flex-direction:column;align-items:center;display:flex}.project-model-box{aspect-ratio:1;border:1px solid var(--underline);width:min(26rem,100%)}.project-model-box canvas{width:100%;height:100%;display:block}.gumball-model-container{width:min(38rem,100%);margin:1.15rem auto 0;position:relative}.gumball-model-box{width:100%;min-height:24rem}.gumball-caption{z-index:2;background:var(--bg);position:absolute;bottom:.9rem;left:50%;transform:translate(-50%)}@supports (color:color-mix(in lab, red, red)){.gumball-caption{background:color-mix(in oklab, var(--bg) 72%, black 28%)}}.gumball-caption{border:1px solid var(--hover-border);color:var(--text);padding:.22rem .5rem;font-size:.86rem}.gumball-nav{z-index:3;border:1px solid var(--hover-border);background:var(--bg);width:2.1rem;height:2.1rem;position:absolute;top:50%;transform:translateY(-50%)}@supports (color:color-mix(in lab, red, red)){.gumball-nav{background:color-mix(in oklab, var(--bg) 74%, black 26%)}}.gumball-nav{color:var(--text);cursor:pointer}.gumball-nav.prev{left:.45rem}.gumball-nav.next{right:.45rem}.gumball-collapsible-list{margin-top:1.2rem}.gumball-collapsible{text-align:left;border:1px solid var(--hover-border);width:100%;color:var(--text);cursor:pointer;background:0 0;border-top:0;padding:.7rem .85rem}.gumball-collapsible-list .gumball-collapsible:first-child{border-top:1px solid var(--hover-border)}.gumball-collapsible.active{background:var(--hover-surface)}.gumball-expand{border-left:1px solid #0000;border-right:1px solid #0000;max-height:0;transition:max-height .24s;overflow:hidden}.gumball-expand.active{border-left-color:var(--hover-border);border-right-color:var(--hover-border);border-bottom:1px solid var(--hover-border);max-height:60rem}.project-features{padding:.85rem}.project-features h3{margin:0 0 .4rem;font-weight:400}.project-features h4{color:var(--muted);margin:0 0 .7rem;font-weight:400}.gumball-video{border:1px solid var(--hover-border);width:min(32rem,92%)}.project-model-container p{color:var(--muted);margin-top:.7rem}.project-overview-block h2{color:var(--text)}.project-overview-block p{margin-bottom:1rem}.photography-section{margin-top:0}.photography-grid{flex-wrap:wrap;align-items:flex-start;margin:0 -.25rem;display:flex}.photo-column{flex:25%;max-width:25%;padding:0 .25rem}.photo-card{text-align:left;cursor:pointer;perspective:1200px;background:0 0;border:0;width:100%;margin-top:.5rem;padding:0;position:relative}.photo-card-inner{width:100%;transform-style:preserve-3d;transition:transform .42s;display:grid;position:relative}.photo-card-face{backface-visibility:hidden;grid-area:1/1}.photo-card-front img{object-fit:initial;width:100%;height:auto;display:block}.photo-card-back{background:var(--bg);position:absolute;inset:0}@supports (color:color-mix(in lab, red, red)){.photo-card-back{background:color-mix(in oklab, var(--bg) 78%, black 22%)}}.photo-card-back{color:var(--text);box-sizing:border-box;text-align:center;border:0;flex-direction:column;justify-content:center;align-items:center;padding:.75rem;display:flex;transform:rotateY(180deg)}.photo-card-inner.is-flipped .photo-card-back{pointer-events:auto}.photo-card-inner.is-flipped{transform:rotateY(180deg)}.photo-caption{margin-top:auto;margin-bottom:auto;font-size:.95rem;line-height:1.35;display:block}.photo-date{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;text-align:center;margin-top:auto;font-size:.82rem;display:block}.photo-card:focus-visible{outline:1px solid var(--underline-hover);outline-offset:2px}.divider{background-color:var(--divider);height:1px;margin-top:1.2rem;transition:background-color .32s}.section{margin-top:2.65rem}.section h2{text-transform:lowercase;border-bottom:1px solid;margin:0 0 1.15rem;padding-bottom:.5rem;font-size:1.2rem;font-weight:400;line-height:1.2;transition:border-color .32s,color .32s;display:inline-block}.work-list,.project-list{margin:0;padding:0;list-style:none}.project-list{margin-inline-start:0;padding-inline-start:0}.muted{color:var(--muted);transition:color .32s}.bullet:before{content:"• ";color:#666}.nested{padding-left:1.15rem}.compact{margin-top:2.4rem}.projects{margin-top:3rem}.section p,.work-list li{font-size:var(--body-size);line-height:var(--body-line-height);margin:0 0 .4rem}.project-list li{margin-bottom:.35rem;margin-left:0;padding:0;position:relative}.project-title{font-size:var(--body-size);line-height:var(--body-line-height);color:var(--text);text-decoration:none;transition:color .32s;display:inline-block}.project-card-link{box-sizing:border-box;color:inherit;cursor:pointer;border:1px solid #0000;margin:0 -.55rem;padding:.48rem .55rem;text-decoration:none;transition:background-color .18s,border-color .18s,color .32s;display:block;border-radius:0!important}.project-card-link:hover,.project-card-link:focus-visible{background-color:var(--hover-surface);border-color:var(--hover-border)}.project-description{font-size:var(--body-size);line-height:var(--body-line-height);color:var(--muted);margin-top:.2rem;margin-bottom:0;transition:color .32s;display:block}.underlined{color:var(--text);text-underline-offset:.18em;text-decoration-line:underline;text-decoration-thickness:1px;-webkit-text-decoration-color:var(--underline);-webkit-text-decoration-color:var(--underline);-webkit-text-decoration-color:var(--underline);text-decoration-color:var(--underline);transition:color .22s,text-decoration-color .22s}.underlined:hover{color:#fafafa;-webkit-text-decoration-color:var(--underline-hover);-webkit-text-decoration-color:var(--underline-hover);-webkit-text-decoration-color:var(--underline-hover);text-decoration-color:var(--underline-hover)}@media (max-width:760px){body{display:block}.page-layout{box-sizing:border-box;width:100%;padding:3.6rem 1rem 2rem;display:block}.contents-nav{display:none}.mobile-contents-toggle{z-index:40;border:1px solid var(--hover-border);background:var(--bg);width:2.4rem;height:2.2rem;display:inline-flex;position:fixed;top:.9rem;left:.9rem}@supports (color:color-mix(in lab, red, red)){.mobile-contents-toggle{background:color-mix(in oklab, var(--bg) 84%, black 16%)}}.mobile-contents-toggle{opacity:1;flex-direction:column;justify-content:center;gap:.24rem;padding:.35rem .45rem;transform:translateY(0)}.mobile-contents-toggle span{background:var(--text);border-radius:999px;width:100%;height:2px;display:block}.mobile-contents-toggle.is-hidden{pointer-events:none;animation:.32s forwards mobileStackJumpUp}.mobile-contents-toggle.is-visible{pointer-events:auto;animation:.32s forwards mobileStackJumpDown}.mobile-contents-overlay{z-index:41;background:#00000061;border:0;display:block;position:fixed;inset:0}.mobile-theme-toggle{z-index:40;border:1px solid var(--hover-border);background:var(--bg);width:2.4rem;height:2.2rem;display:inline-flex;position:fixed;top:.9rem;right:.9rem}@supports (color:color-mix(in lab, red, red)){.mobile-theme-toggle{background:color-mix(in oklab, var(--bg) 84%, black 16%)}}.mobile-theme-toggle{opacity:1;justify-content:center;align-items:center;line-height:1;transform:translateY(0)}.mobile-theme-icon{background-color:var(--text);width:1.7rem;height:1.7rem;display:block;-webkit-mask-image:url(/paintbrush.png);mask-image:url(/paintbrush.png);-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.mobile-theme-toggle.is-hidden{pointer-events:none;animation:.32s forwards mobileStackJumpUp}.mobile-theme-toggle.is-visible{pointer-events:auto;animation:.32s forwards mobileStackJumpDown}.mobile-theme-overlay{z-index:43;background:#00000061;border:0;display:block;position:fixed;inset:0}.mobile-theme-close{z-index:45;border:1px solid var(--hover-border);background:var(--bg);width:2rem;height:2rem;display:inline-flex;position:fixed;top:.9rem;right:.9rem}@supports (color:color-mix(in lab, red, red)){.mobile-theme-close{background:color-mix(in oklab, var(--bg) 84%, black 16%)}}.mobile-theme-close{color:var(--text);justify-content:center;align-items:center;font-size:1.12rem;line-height:1}@keyframes mobileStackJumpUp{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-1.4rem)}}@keyframes mobileStackJumpDown{0%{opacity:0;transform:translateY(-1.4rem)}to{opacity:1;transform:translateY(0)}}.mobile-contents-drawer{z-index:42;background:var(--bg);border-right:1px solid var(--hover-border);pointer-events:none;width:min(18rem,82vw);color:var(--text);box-sizing:border-box;padding:54px 20px 24px;font-family:Spectral,Georgia,serif;font-size:16px;transition:transform .18s;display:block;position:fixed;top:0;bottom:0;left:0;overflow-y:auto;transform:translate(-102%)}.mobile-contents-drawer.open{pointer-events:auto;transform:translate(0)}.mobile-contents-header{justify-content:space-between;align-items:center;margin-bottom:0;display:flex}.mobile-contents-header .rh-aside-label{margin-bottom:0}.mobile-contents-close{border:1px solid var(--hover-border);background:var(--bg);width:2rem;height:2rem;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.mobile-contents-close{background:color-mix(in oklab, var(--bg) 84%, black 16%)}}.mobile-contents-close{color:var(--text);justify-content:center;align-items:center;font-size:1.12rem;line-height:1}.mobile-contents-drawer .rh-aside-nav{margin-top:16px}.theme-nav{border-left:1px solid var(--hover-border);background:var(--bg);z-index:44;pointer-events:none;width:min(18rem,84vw);height:100vh;color:var(--text);box-sizing:border-box;padding:54px 20px 24px;font-family:Spectral,Georgia,serif;font-size:16px;transition:transform .22s;display:block;position:fixed;top:0;bottom:0;right:0;overflow-y:auto;transform:translate(104%)}.rh-page .theme-nav .rh-spotify-card{width:100%;margin-right:0}body.mobile-theme-open .theme-nav{pointer-events:auto;transform:translate(0)}.portfolio{width:100%}.site-name{font-size:1.5rem}.profile-image{height:2.4rem}.speech-bubble{display:none}.photography-grid{margin:0 -.25rem}.photo-column{flex:50%;max-width:50%}.section h2{font-size:1.1rem}.section p,.work-list li,.project-title,.project-description{font-size:.95rem}.project-card-link{margin:0 -.45rem;padding:.42rem .45rem}}.rh-page{--rh-grid-dot:#7a645447;--rh-grid-font:"Spline Sans Mono", ui-monospace, monospace;--rh-grid-size:15px;--rh-grid-paint:#ff5a197a;--rh-col-left:148px;--rh-col-main:585px;--rh-col-right:152px;--rh-col-gap:45px;--rh-shell-pad-x:45px;--rh-shell-pad-top:54px;--rh-shell-width:calc(var(--rh-col-left) + var(--rh-col-gap) + var(--rh-col-main) + var(--rh-col-gap) + var(--rh-col-right) + (var(--rh-shell-pad-x) * 2));width:100%;min-height:100vh;color:var(--text);font-family:var(--rh-grid-font);font-size:var(--rh-grid-size);background:0 0;transition:color .45s;position:relative;overflow-x:clip}.rh-backdrop-stack{z-index:0;pointer-events:none;position:fixed;inset:0}.rh-page-fill{background-color:var(--bg);transition:background-color .45s;position:absolute;inset:0}.rh-grid-backdrop{font-family:var(--rh-grid-font);font-size:var(--rh-grid-size);background-image:radial-gradient(circle, var(--rh-grid-dot) .75px, transparent .75px);background-position:top;background-size:1ch 1ex;position:absolute;inset:0}.rh-page .rh-shell{font-family:Spectral,Georgia,serif;font-size:16px}.rh-page.is-grid-painting{-webkit-user-select:none;user-select:none;cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='4' fill='rgba(255,90,25,0.55)'/%3E%3C/svg%3E") 12 12,crosshair}.rh-grid-highlights{z-index:0;pointer-events:none;position:absolute;inset:0;overflow:visible}.rh-grid-brush-dab{background:radial-gradient(circle, var(--rh-grid-paint) 0%, var(--rh-grid-paint) 38%, transparent 72%);border-radius:50%;position:absolute}@supports (color:color-mix(in lab, red, red)){.rh-grid-brush-dab{background:radial-gradient(circle, var(--rh-grid-paint) 0%, color-mix(in srgb, var(--rh-grid-paint) 45%, transparent) 38%, transparent 72%)}}.rh-grid-brush-dab{pointer-events:none}[data-theme=midnight] .rh-page{--rh-grid-dot:#ffffff24}[data-theme=snow] .rh-page{--rh-grid-dot:#1e1e1e29}[data-theme=coffee-cream] .rh-page{--rh-grid-dot:#7a645447}[data-theme=dusty-blue] .rh-page{--rh-grid-dot:#c8d4e429}.rh-shell{z-index:1;box-sizing:border-box;width:min(var(--rh-shell-width), 100%);max-width:1188px;padding:var(--rh-shell-pad-top) var(--rh-shell-pad-x) 90px;grid-template-columns:var(--rh-col-left) var(--rh-col-main) var(--rh-col-right);column-gap:var(--rh-col-gap);align-items:start;margin:0 auto;display:grid;position:relative}.rh-aside-left{width:var(--rh-col-left);min-width:var(--rh-col-left);max-width:var(--rh-col-left);pointer-events:none;grid-column:1;height:0;overflow:visible}.rh-aside-right{width:var(--rh-col-right);min-width:var(--rh-col-right);max-width:var(--rh-col-right);pointer-events:none;background:0 0;grid-column:3;height:0;overflow:visible}.rh-aside-panel{top:var(--rh-shell-pad-top);z-index:2;pointer-events:auto;position:fixed}.rh-aside-panel--left{width:var(--rh-col-left);left:max(var(--rh-shell-pad-x), calc(50% - var(--rh-shell-width) / 2 + var(--rh-shell-pad-x)))}.rh-aside-panel--right{width:var(--rh-col-right);left:calc(50% - var(--rh-shell-width) / 2 + var(--rh-shell-pad-x) + var(--rh-col-left) + var(--rh-col-gap) + var(--rh-col-main) + var(--rh-col-gap))}.rh-main{width:var(--rh-col-main);min-width:0;max-width:var(--rh-col-main);background:0 0;grid-column:2;overflow-x:visible}.rh-aside-label{letter-spacing:.2em;text-transform:uppercase;margin:0 0 16px;font-family:Spline Sans Mono,monospace;font-size:10.5px}.rh-aside-nav{flex-direction:column;gap:9px;margin:0;padding:0;display:flex}.rh-aside-link{text-align:left;cursor:pointer;width:100%;color:inherit;overflow-wrap:anywhere;background:0 0;border:0;margin:0;padding:0;font-family:Spectral,Georgia,serif;font-size:16px;line-height:1.4;text-decoration:none;display:block}.rh-aside-theme-list{flex-direction:column;gap:9px;margin:0 0 32px;padding:0;display:flex}.rh-aside-theme-btn{text-align:left;cursor:pointer;color:inherit;background:0 0;border:0;padding:0;font-family:Spectral,Georgia,serif;font-size:16px;line-height:1.4}.rh-aside-theme-btn[aria-pressed=true]{color:var(--text);text-underline-offset:.18em;text-decoration:underline}.rh-aside-profile{color:inherit;align-items:center;gap:10px;text-decoration:none;display:flex}.rh-aside-profile img{object-fit:cover;border-radius:999px;flex:none;width:32px;height:32px}.rh-aside-link.is-active{color:var(--text)}.rh-aside-loading{margin:0 0 20px;font-family:Spline Sans Mono,monospace;font-size:12px}.rh-muted{color:var(--muted)}.rh-div{background-color:var(--divider)}.rh-border{border-bottom:1px solid var(--divider)}.rh-clink{transition:color .18s}.rh-clink:hover{color:var(--text)}.rh-ul{position:relative}.rh-ul:after{content:"";background:currentColor;height:1px;transition:right .4s cubic-bezier(.2,.7,.2,1);position:absolute;bottom:-2px;left:0;right:100%}.rh-ul:hover:after{right:0}.rh-row{transition:padding .3s cubic-bezier(.2,.7,.2,1);position:relative}.rh-row:before{content:"";background:var(--underline-hover);opacity:0;transform-origin:top;pointer-events:none;width:2px;transition:opacity .22s,transform .38s cubic-bezier(.2,.7,.2,1);position:absolute;top:10%;bottom:10%;left:0;transform:scaleY(0)}.rh-row:hover:before{opacity:1;transform:scaleY(1)}.rh-row:hover{padding-left:14px;padding-right:14px}.rh-row .rh-muted{transition:opacity .25s}#work .rh-row:hover .rh-muted,#writing .rh-row:hover .rh-muted{opacity:.72}.rh-spotify-card{box-sizing:border-box;background:var(--spotify-card-bg);border-radius:2px;align-items:center;gap:11px;width:calc(100% + 4.5rem);margin-bottom:20px;margin-right:-4.5rem;padding:11px;text-decoration:none;display:flex}.rh-spotify-card-art{object-fit:cover;flex:none;width:46px;height:46px}.rh-spotify-card-art-fallback{background:var(--spotify-card-text);color:var(--spotify-card-bg);place-items:center;font-size:18px;display:grid}.rh-spotify-card-track{flex:1;min-width:0}.rh-spotify-card-status{letter-spacing:.14em;text-transform:uppercase;color:var(--spotify-card-subtle);font-family:Spline Sans Mono,monospace;font-size:9px;display:block}.rh-spotify-card-title{color:var(--spotify-card-text);white-space:nowrap;font-size:14px;display:block;overflow:hidden}.rh-spotify-card-artist{color:var(--spotify-card-subtle);white-space:nowrap;font-size:12px;display:block;overflow:hidden}.rh-avatar .rh-bubble{opacity:0;transition:opacity .28s,transform .28s;transform:translate(6px,-50%)}.rh-avatar:hover .rh-bubble{opacity:1;transform:translateY(-50%)}.rh-main .section{margin-top:2.65rem;scroll-margin-top:36px}.rh-main .section h2{text-transform:lowercase;border-bottom:1px solid;margin:0 0 1.15rem;padding-bottom:.5rem;font-size:1.2rem;font-weight:400;line-height:1.2;display:inline-block}.rh-main .muted,.rh-main .rh-muted-body{color:var(--muted)}.rh-main .section p{margin:0 0 .4rem;font-size:1rem;font-weight:300;line-height:1.62}.rh-main img,.rh-main video,.rh-main .project-model-box,.rh-main .gumball-model-box{max-width:100%}.rh-main .photo-date{letter-spacing:.08em;font-family:Spline Sans Mono,monospace;font-size:.72rem}.rh-main .photo-caption{font-size:.95rem;font-weight:400}@media (min-width:761px){.rh-page .theme-nav{display:none!important}}@media (max-width:760px){.rh-shell{width:100%;padding:56px 20px 60px;display:block}.rh-aside-left,.rh-aside-right{display:none}.rh-main{width:100%;max-width:100%}.rh-spotify-card{width:100%;margin-right:0}.rh-main .section h2{font-size:1.1rem}.rh-main .section p{font-size:.95rem}}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
