*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-ui,system-ui, sans-serif);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#fff}@font-face{font-family:Open Runde;src:url(/fonts/OpenRunde-Medium.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Open Runde;src:url(/fonts/OpenRunde-Semibold.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}:root{--sphere-bg-rgb:255, 255, 255;--veil:#fff3;--font-ui:"Open Runde", system-ui, sans-serif;--font-mono:"Geist Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--bar:#171717;--bar-blue:#155dfc;--dock-bottom:20px;--dock-h:56px;--dock-top:calc(var(--dock-bottom) + var(--dock-h))}.sphere-root{-webkit-user-select:none;user-select:none;font-family:Geist,system-ui,sans-serif;position:fixed;inset:0;overflow:hidden}.sphere-stage{touch-action:none;cursor:grab;position:absolute;inset:0}.sphere-stage canvas{display:block}.hover-overlay{pointer-events:none;z-index:10;transition:opacity .18s,color .3s;position:absolute;inset:0}.hover-frame{will-change:transform;outline:1.5px solid;position:absolute;top:0;left:0}.hover-frame__handle{background:#fff;outline:1.5px solid;width:8px;height:8px;position:absolute}.hover-frame__handle[data-corner=tl]{top:-4px;left:-4px}.hover-frame__handle[data-corner=tr]{top:-4px;right:-4px}.hover-frame__handle[data-corner=bl]{bottom:-4px;left:-4px}.hover-frame__handle[data-corner=br]{bottom:-4px;right:-4px}.hover-text{background:var(--accent,var(--bar-blue));color:#fff;white-space:nowrap;will-change:transform;border-radius:5px;padding:3px 7px;font-size:12px;font-weight:600;line-height:16px;position:absolute;top:0;left:0}.sphere-fade{z-index:5;pointer-events:none;background:linear-gradient(to top, rgb(var(--sphere-bg-rgb)) 30%, rgba(var(--sphere-bg-rgb), .85) 50%, rgba(var(--sphere-bg-rgb), .55) 68%, rgba(var(--sphere-bg-rgb), .25) 84%, rgba(var(--sphere-bg-rgb), 0));height:176px;position:absolute;bottom:0;left:0;right:0}.sphere-veil{z-index:25;pointer-events:none;opacity:0;-webkit-backdrop-filter:blur(4px);background:var(--veil);transition:opacity .45s;position:absolute;inset:0;-webkit-mask-image:linear-gradient(90deg,#000 0%,#0000 7% 93%,#000 100%);mask-image:linear-gradient(90deg,#000 0%,#0000 7% 93%,#000 100%)}.sphere-root[data-mode=focus] .sphere-veil{opacity:1}.sphere-root[data-mode=focus] .hover-overlay{z-index:26}.sphere-fade{transition:opacity .45s}.sphere-root[data-mode=focus] .sphere-fade{opacity:0}.view-menu button{appearance:none;font:inherit;cursor:pointer;background:0 0;border:0;margin:0}.view-menu :focus-visible{outline:2px solid var(--bar-blue);outline-offset:2px}.view-menu{background:var(--bar);transform-origin:0 100%;border-radius:20px;width:236px;margin:0;padding:6px;list-style:none;position:absolute;bottom:calc(100% + 8px);left:0;box-shadow:0 12px 32px #0000002e}.view-menu__item{color:#d4d4d4;text-align:left;border-radius:14px;justify-content:space-between;align-items:center;width:100%;padding:8px 12px;font-size:15px;font-weight:500;line-height:20px;transition:background-color .12s,color .12s;display:flex}.view-menu__item:hover{color:#fff;background:#ffffff14}.view-menu__item.is-current{color:#fff;background:#ffffff1f;font-weight:600}.view-menu__item kbd{font-family:var(--font-mono);color:#a3a3a3;font-size:12px;font-weight:500;line-height:16px}@media (width<=480px){.sphere-fade{height:150px}}.home{--home-ink:#171717;--gap-section:117px;--slide-h:500px;min-height:100vh;color:var(--home-ink);letter-spacing:-.01em;background:#fff;padding:148px 0 133px;font-family:Geist,system-ui,sans-serif;overflow-x:clip}.home__col{width:min(400px,100% - 40px);margin-inline:auto}.spline-hero{transform-origin:50%;width:min(800px,100%);height:500px;margin:0 auto 48px;position:relative;overflow:hidden}.spline-hero__scene{width:1187.5px;height:100%;position:relative;left:50%;transform:translate(-50%)}.spline-hero__poster{object-fit:cover;pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;transition:opacity .45s;position:absolute;inset:0}@media (width<=768px){.spline-hero{aspect-ratio:8/5;width:min(88vw,420px);height:auto;margin:0}.spline-hero__scene{width:calc(100% + 480px)}}.home__hero{flex-direction:column;align-items:flex-start;gap:32px;display:flex}.home__intro{flex-direction:column;gap:24px;display:flex}.home__title{letter-spacing:-.01em;text-wrap:balance;font-size:36px;font-weight:600;line-height:40px}.home__body{text-wrap:pretty;font-size:20px;font-weight:500;line-height:28px}.home__actions{gap:8px;display:flex}.btn{appearance:none;letter-spacing:-.01em;white-space:nowrap;cursor:pointer;border:0;border-radius:999px;justify-content:center;align-items:center;padding:12px 20px;font-family:inherit;font-size:18px;font-weight:600;line-height:22px;text-decoration:none;transition:background-color .2s,transform .2s;display:inline-flex}.btn:active{transform:scale(.97)}.btn:focus-visible{outline-offset:2px;outline:2px solid #155dfc}.btn--blue{color:#fff;background:#155dfc}.btn--blue:hover{background:#1447e6}.btn--soft{color:var(--home-ink);background:#f5f5f5}.btn--soft:hover{background:#ebebeb}.btn--ink{background:var(--home-ink);color:#fff}.btn--ink:hover{background:#000}.home__work{flex-direction:column;align-items:center;gap:32px;margin-top:60px;display:flex}.carousel{touch-action:pan-y;cursor:grab;-webkit-user-select:none;user-select:none;width:100%;overflow:hidden}.carousel:active{cursor:grabbing}.carousel__track{will-change:transform;gap:20px;width:max-content;display:flex}.carousel__slide{appearance:none;height:var(--slide-h);cursor:inherit;background:#f5f5f5;border:0;flex-shrink:0;padding:0}.carousel__slide img{object-fit:cover;pointer-events:none;width:100%;height:100%;display:block}.carousel__slide:focus-visible{outline-offset:-2px;outline:2px solid #155dfc}.home__now{margin-top:var(--gap-section);flex-direction:column;gap:28px;display:flex}.polaroids{--p:1;justify-content:center;align-items:center;display:flex}.polaroid-rv{margin-inline:calc(var(--p) * -12px);flex-shrink:0;position:relative}.polaroid-slot{cursor:grab;touch-action:none}.polaroid-slot:active{cursor:grabbing}.polaroid{border-radius:12px;transition:box-shadow .3s;position:relative;overflow:hidden;box-shadow:0 4px 8px #00000014}.polaroid:after{content:"";border-radius:inherit;pointer-events:none;border:2px solid #fff3;position:absolute;inset:0}.polaroid-slot:hover .polaroid{box-shadow:0 12px 28px #00000029}.polaroid img{pointer-events:none;width:calc(var(--p) * var(--w) * 1px);height:calc(var(--p) * var(--h) * 1px);object-fit:cover;display:block}@media (width<=900px){.polaroids{--p:.7}}.rv,.rv-lines .ln{opacity:0;filter:blur(6px);transform:translateY(6px)}span.rv,.rv-lines .ln{display:inline-block}.rv[data-shown],.rv-lines .ln[data-shown]{opacity:1;filter:none;transition:opacity .7s,filter .7s,transform .7s cubic-bezier(.22,1,.36,1);transform:none}.home__carousel{width:100%}@media (prefers-reduced-motion:reduce){.rv,.rv-lines .ln{opacity:1;filter:none;transition:none;transform:none}}.work-layer{z-index:50;position:fixed;inset:0}.home-shell{transition:filter .6s cubic-bezier(.22,1,.36,1),opacity .45s cubic-bezier(.4,0,.2,1)}.home-shell[data-away]{filter:blur(48px);pointer-events:none}.home-shell[data-away=about]{opacity:0}@media (prefers-reduced-motion:reduce){.home-shell{transition:filter .3s linear,opacity .3s linear}}@media (width<=640px){.home{--gap-section:88px;--slide-h:280px;padding:112px 0 96px}.home__title{font-size:32px;line-height:36px}.home__body{font-size:18px;line-height:26px}.home__work{gap:24px;margin-top:48px}.carousel__track{gap:12px}.polaroids{--p:.42}}@media (width<=768px){.home{min-height:100svh;padding:0 0 var(--dock-top);justify-content:center;align-items:center;display:flex}}.page-layer{z-index:50;overscroll-behavior:contain;position:fixed;inset:0;overflow:hidden auto}.dock-wrap{left:50%;bottom:var(--dock-bottom);z-index:70;width:max-content;font-family:var(--font-ui);--ease-dock:cubic-bezier(.22, 1, .36, 1);position:fixed;translate:-50%}.dock{height:var(--dock-h);background:var(--bar);border:2px solid #fff3;border-radius:999px;align-items:center;gap:2px;padding:6px;display:flex;box-shadow:0 12px 32px #0000002e}.dock__item[data-tone=home]{--tone:oklch(78.9% .154 211.5)}.dock__item[data-tone=work]{--tone:oklch(82.8% .189 84.4)}.dock__item[data-tone=about]{--tone:oklch(64.5% .246 16.4)}.dock__item[data-tone=contact]{--tone:oklch(76.5% .177 163.2)}.dock__item{appearance:none;font:inherit;color:#fff;cursor:pointer;isolation:isolate;height:40px;transition:background-color .15s, color .2s, padding .3s var(--ease-dock);-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:999px;flex-shrink:0;align-items:center;margin:0;padding:0 10px;display:flex;position:relative}.dock__item:hover{background:#ffffff14}.dock__item[data-on]{color:var(--tone);background:0 0;padding:0 20px 0 16px}.dock__item--trail[data-on]{padding-right:12px}.dock__item:before{content:"";z-index:-1;border:2px solid color-mix(in oklab, var(--tone) 20%, transparent);border-radius:inherit;background:radial-gradient(ellipse 50% 100% at 50% 0% in oklab, color-mix(in oklab, var(--tone) 40%, transparent), color-mix(in oklab, var(--tone) 5%, transparent)) border-box, color-mix(in oklab, var(--tone) 20%, transparent) border-box;opacity:0;pointer-events:none;transition:opacity .2s;position:absolute;inset:0;box-shadow:inset 0 -4px 12px #17171752,0 2px 4px #0000007a}.dock__item[data-on]:before{opacity:1}.dock__item:active>svg{transform:scale(.9)}.dock__item svg{flex-shrink:0;transition:transform .15s}.dock__item:focus-visible{outline:2px solid var(--bar-blue);outline-offset:2px}.dock__text{transition:grid-template-columns .3s var(--ease-dock);grid-template-columns:0fr;display:grid}.dock__text>span{opacity:0;align-items:center;gap:6px;min-width:0;transition:opacity .2s;display:flex;overflow:hidden}.dock__item[data-on] .dock__text{grid-template-columns:1fr}.dock__item[data-on] .dock__text>span{opacity:1}@media (width<=359px){.dock__item[data-on],.dock__item--trail[data-on]{padding:0 10px}.dock__item[data-on] .dock__text{grid-template-columns:0fr}.dock__item[data-on] .dock__text>span{opacity:0}}.dock__name{white-space:nowrap;margin-left:6px;font-size:15px;font-weight:600;line-height:20px}.dock__label{background:var(--bar);color:#fff;white-space:nowrap;opacity:0;pointer-events:none;border-radius:6px;padding:4px 8px;font-size:12px;font-weight:600;line-height:16px;transition:opacity .15s,translate .15s;position:absolute;bottom:calc(100% + 14px);left:50%;translate:-50% 4px}.dock__item:hover .dock__label,.dock__item:focus-visible .dock__label{opacity:1;translate:-50%}.dock__item[data-on] .dock__label{display:none}.dock__sep{background:#ffffff29;flex-shrink:0;width:1px;height:20px;margin:0 4px}@media (hover:none){.dock__label{display:none}}.contact-panel{background:var(--bar);transform-origin:100% 100%;border-radius:20px;flex-direction:column;gap:2px;width:288px;padding:6px;display:flex;position:absolute;bottom:calc(100% + 8px);right:0;box-shadow:0 12px 32px #0000002e}@media (width<=480px){.contact-panel{transform-origin:bottom;right:50%;translate:50%}}.contact-panel__row{appearance:none;font:inherit;color:#fff;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:14px;align-items:center;gap:12px;margin:0;padding:8px 12px;text-decoration:none;transition:background-color .12s;display:flex}.contact-panel__row:hover{background:#ffffff14}.contact-panel__row:focus-visible{outline:2px solid var(--bar-blue);outline-offset:2px}.contact-panel__text{flex-direction:column;min-width:0;display:flex}.contact-panel__title{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600;line-height:18px;overflow:hidden}.contact-panel__sub{color:#a3a3a3;font-size:13px;font-weight:500;line-height:17px}.contact-panel__action{color:#737373;flex-shrink:0;margin-left:auto;transition:opacity .12s;display:flex}@media (hover:hover){.contact-panel__action{opacity:0}.contact-panel__row:hover .contact-panel__action,.contact-panel__row:focus-visible .contact-panel__action{opacity:1}}.about{min-height:100%;padding:18vh 20px calc(var(--dock-top) + 96px);color:#171717;letter-spacing:-.005em;font-family:Geist,system-ui,sans-serif}.about__col{flex-direction:column;align-items:center;gap:64px;width:min(300px,100%);margin-inline:auto;display:flex}.about__text{color:#737373;text-wrap:pretty;flex-direction:column;align-self:stretch;gap:16px;font-size:16px;font-weight:500;line-height:24px;display:flex}.about a{color:#262626;text-underline-offset:3px;-webkit-text-decoration:underline #737373;text-decoration:underline #737373;text-decoration-thickness:1px;transition:text-decoration-color .15s}.about a:hover{text-decoration-color:currentColor}.about a:focus-visible{outline:2px solid var(--bar-blue);outline-offset:2px;border-radius:4px}.links{flex-direction:column;align-self:stretch;gap:12px;display:flex}.links__head{align-items:center;gap:8px;display:flex}.links__head h2{color:#737373;flex-shrink:0;font-size:12px;font-weight:600;line-height:16px}.links__rule{border-top:1px solid #e5e5e5;flex:1}.links__list{flex-direction:column;gap:12px;list-style:none;display:flex}.about .link{appearance:none;font:inherit;text-align:left;cursor:pointer;width:calc(100% + 18px);color:inherit;background:0 0;border:0;border-radius:16px;align-items:center;gap:16px;margin:0 -12px 0 -6px;padding:6px 16px 6px 6px;text-decoration:none;transition:background-color .15s,scale .15s;display:flex}.about .link:hover{background:#f5f5f5}.about .link:active{scale:.98}.link__icon{color:#171717;background:#fafafa;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.link__icon>*{transition:scale .15s}.link:hover .link__icon>*{scale:1.1}.link__text{flex-direction:column;min-width:0;font-size:14px;line-height:20px;display:flex}.link__title{color:#171717;text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.link__sub{color:#737373}.link__action{color:#a3a3a3;flex-shrink:0;margin-left:auto;transition:opacity .15s;display:flex}@media (hover:hover){.link__action{opacity:0}.link:hover .link__action,.link:focus-visible .link__action,.link[data-done] .link__action{opacity:1}}.gh{flex-direction:column;align-self:stretch;gap:14px;display:flex}.gh__days{gap:3px;display:flex;position:relative}.gh__day{border-radius:2px;flex:1;height:20px;transition:background-color .5s,opacity .2s,transform .2s cubic-bezier(.22,1,.36,1)}.gh__days[data-hover] .gh__day{opacity:.4}.gh__days[data-hover] .gh__day[data-on]{opacity:1;transform:scaleY(1.3)}.gh__tip{background:var(--bar);color:#fff;white-space:nowrap;pointer-events:none;border-radius:6px;padding:4px 8px;font-size:12px;font-weight:600;line-height:16px;position:absolute;bottom:calc(100% + 10px)}.gh__foot{color:#737373;justify-content:space-between;font-size:12px;font-weight:500;line-height:16px;display:flex}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}
