.oe3DtG_page{--gutter:clamp(16px, 3vw, 40px);--wide:1440px;--ease:cubic-bezier(.22, 1, .36, 1);--spring:cubic-bezier(.34, 1.56, .64, 1);--radius-block:clamp(20px, 2.6vw, 36px);--tint-top:6%;--tint-bottom:20%;--kind-mix:black 24%}:root[data-theme=dark] .oe3DtG_page{--tint-top:16%;--tint-bottom:38%;--kind-mix:white 45%}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .oe3DtG_page{--tint-top:16%;--tint-bottom:38%;--kind-mix:white 45%}}.oe3DtG_sectionTitle{letter-spacing:-.045em;text-align:center;font-size:clamp(2rem,1.2rem + 3vw,4rem);font-weight:700;line-height:1.05}.oe3DtG_link{letter-spacing:-.015em;min-height:44px;color:var(--info);text-underline-offset:.2em;border-radius:6px;align-items:center;gap:.3em;font-size:clamp(1.0625rem,.95rem + .4vw,1.25rem);font-weight:500;display:inline-flex}.oe3DtG_link:hover{text-decoration:underline}.oe3DtG_link:focus-visible,.oe3DtG_quiet:focus-visible,.oe3DtG_skill:focus-visible,.oe3DtG_button:focus-visible{outline:2px solid var(--ring);outline-offset:4px}.oe3DtG_hero{padding:clamp(88px, 14svh, 150px) var(--gutter) clamp(56px, 9svh, 104px);text-align:center;flex-direction:column;align-items:center;display:flex}.oe3DtG_spark svg{width:auto;height:clamp(96px,15svh,150px);overflow:visible}.oe3DtG_spark path{transform-box:fill-box;transform-origin:50%}.oe3DtG_name{letter-spacing:-.025em;margin-top:clamp(18px,3svh,32px);font-size:clamp(1.125rem,.95rem + .7vw,1.5rem);font-weight:600}.oe3DtG_headline{letter-spacing:-.055em;text-wrap:balance;max-width:13ch;margin-top:.1em;font-size:min(clamp(2.75rem,1rem + 6.4vw,7rem),12svh);font-weight:700;line-height:1.02}.oe3DtG_word{display:inline-block}.oe3DtG_lead{letter-spacing:-.022em;max-width:36ch;color:var(--muted-foreground);text-wrap:balance;margin-top:clamp(16px,2.6svh,28px);font-size:clamp(1.125rem,.95rem + .7vw,1.625rem);font-weight:500;line-height:1.32}.oe3DtG_skills{flex-wrap:wrap;justify-content:center;gap:8px;max-width:760px;margin-top:clamp(22px,3.4svh,36px);display:flex}.oe3DtG_skill{background:var(--secondary);letter-spacing:-.012em;border-radius:9999px;align-items:center;min-height:36px;padding:0 16px;font-size:15px;font-weight:500;display:inline-flex;position:relative}.oe3DtG_tip{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (hover:hover) and (min-width:768px){.oe3DtG_skill:has(.oe3DtG_tip){cursor:default}.oe3DtG_tip{z-index:10;background:var(--foreground);width:max-content;max-width:260px;height:auto;color:var(--background);text-align:left;white-space:normal;clip-path:none;opacity:0;pointer-events:none;transition:opacity .2s var(--ease), transform .3s var(--ease);border-radius:12px;padding:10px 14px;font-size:14px;line-height:1.35;top:calc(100% + 10px);left:50%;transform:translate(-50%,-4px)scale(.97)}.oe3DtG_skill:hover,.oe3DtG_skill:focus-visible{z-index:20}.oe3DtG_skill:hover .oe3DtG_tip,.oe3DtG_skill:focus-visible .oe3DtG_tip{opacity:1;transform:translate(-50%)scale(1)}}.oe3DtG_quiet{min-height:44px;color:var(--muted-foreground);border-radius:9999px;align-items:center;gap:.3em;margin-top:clamp(10px,1.6svh,18px);padding-inline:8px;font-size:15px;transition:color .2s;display:inline-flex}.oe3DtG_quiet:hover{color:var(--foreground)}.oe3DtG_work{max-width:var(--wide);padding-inline:var(--gutter);margin-inline:auto}.oe3DtG_projects{gap:clamp(16px,2vw,28px);margin-top:clamp(24px,4svh,44px);display:grid}.oe3DtG_empty{border-radius:var(--radius-block);background:var(--secondary);color:var(--muted-foreground);text-align:center;margin-top:24px;padding:64px 0;font-size:17px}.oe3DtG_project{border-radius:var(--radius-block);background:linear-gradient(180deg, color-mix(in srgb, var(--c) var(--tint-top), var(--background)) 0%, color-mix(in srgb, var(--c) var(--tint-bottom), var(--background)) 100%);position:relative;overflow:hidden;container-type:inline-size}.oe3DtG_copy{text-align:center;flex-direction:column;align-items:center;padding:clamp(36px,5.5cqw,72px) 20px 0;display:flex}.oe3DtG_kind{letter-spacing:-.01em;color:color-mix(in srgb, var(--c), var(--kind-mix));font-size:clamp(.9375rem,.85rem + .3vw,1.125rem);font-weight:600}.oe3DtG_title{letter-spacing:-.055em;text-wrap:balance;overflow-wrap:break-word;max-width:100%;margin-top:.12em;font-size:clamp(2.5rem,1.2rem + 5vw,6rem);font-weight:700;line-height:1}.oe3DtG_summary{letter-spacing:-.02em;text-wrap:balance;max-width:34ch;margin-top:clamp(10px,1.6svh,18px);font-size:clamp(1.0625rem,.95rem + .5vw,1.375rem);font-weight:500;line-height:1.32}.oe3DtG_cta{flex-wrap:wrap;justify-content:center;align-items:center;column-gap:14px;margin-top:6px;display:flex}.oe3DtG_domain{color:var(--muted-foreground);font-size:15px}.oe3DtG_stage{height:64cqw;margin-top:clamp(20px,3.5cqw,44px);position:relative}.oe3DtG_window{border:1px solid color-mix(in srgb, var(--foreground) 12%, transparent);background:var(--background);transform-origin:50% 100%;border-bottom:0;border-radius:max(10px,1.3cqw) max(10px,1.3cqw) 0 0;width:90cqw;margin-inline:auto;overflow:hidden}.oe3DtG_bar{align-items:center;height:max(22px,2.4cqw);padding-inline:max(9px,1cqw);display:flex;position:relative}.oe3DtG_dots{gap:max(4px,.5cqw);display:flex}.oe3DtG_dots i{background:var(--input);border-radius:50%;width:max(6px,.75cqw);height:max(6px,.75cqw)}.oe3DtG_address{background:var(--muted);max-width:50%;color:var(--muted-foreground);text-overflow:ellipsis;white-space:nowrap;border-radius:9999px;padding:.15em 1.2em;font-size:max(10px,.9cqw);position:absolute;left:50%;overflow:hidden;transform:translate(-50%)}.oe3DtG_screen{aspect-ratio:1440/830;background:var(--muted)}.oe3DtG_screen img,.oe3DtG_phone img{object-fit:cover;object-position:top;width:100%;height:100%;display:block}.oe3DtG_phone{aspect-ratio:390/844;border:1px solid color-mix(in srgb, var(--foreground) 14%, transparent);background:var(--brand-tile);border-radius:max(18px,2.8cqw);width:28cqw;padding:max(3px,.55cqw);position:absolute;top:14cqw;right:3cqw}.oe3DtG_phone img{border-radius:max(15px,2.3cqw)}@media (min-width:768px){.oe3DtG_stage{height:34cqw}.oe3DtG_window{width:80cqw}.oe3DtG_phone{width:16cqw;top:6cqw;right:6cqw}}.oe3DtG_contact{padding:clamp(96px, 16svh, 176px) var(--gutter) clamp(88px, 14svh, 160px);text-align:center;flex-direction:column;align-items:center;display:flex}.oe3DtG_contactTitle{letter-spacing:-.06em;font-size:min(clamp(3rem,1rem + 8vw,8rem),16svh);font-weight:700;line-height:.98}.oe3DtG_note{letter-spacing:-.02em;max-width:34ch;color:var(--muted-foreground);margin-top:14px;font-size:clamp(1.125rem,.95rem + .6vw,1.5rem);font-weight:500}.oe3DtG_buttons{gap:12px;width:100%;max-width:680px;margin-top:clamp(28px,5svh,48px);display:grid}@media (min-width:640px){.oe3DtG_buttons{grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:16px}}.oe3DtG_magnet{transform:translate(var(--mx,0px), var(--my,0px));transition:transform .6s var(--spring)}.oe3DtG_button{background:var(--secondary);text-align:left;cursor:pointer;width:100%;min-height:84px;transition:background-color .25s var(--ease), transform .25s var(--ease);border-radius:28px;align-items:center;gap:16px;padding:16px 22px 16px 18px;display:flex}.oe3DtG_button:hover{background:color-mix(in srgb, var(--foreground) 7%, var(--secondary))}.oe3DtG_button:active{transform:scale(.98)}.oe3DtG_icon{width:48px;height:48px;transition:transform .5s var(--spring);flex:none}.oe3DtG_button:hover .oe3DtG_icon{transform:scale(1.08)rotate(-6deg)}.oe3DtG_buttonLabel{letter-spacing:-.02em;font-size:19px;font-weight:600}.oe3DtG_buttonHint{max-width:100%;color:var(--muted-foreground);text-overflow:ellipsis;white-space:nowrap;font-size:15px;overflow:hidden}.oe3DtG_button[data-state=done] .oe3DtG_buttonHint{color:var(--success)}@media (prefers-reduced-motion:no-preference){.oe3DtG_spark path{animation:oe3DtG_assemble 1.3s var(--ease) both}.oe3DtG_spark path:first-child{--from:translate(38%, -30%) rotate(24deg) scale(.6);animation-delay:50ms}.oe3DtG_spark path:nth-child(2){--from:translate(-40%, 34%) rotate(-28deg) scale(.6);animation-delay:.15s}.oe3DtG_spark path:nth-child(3){--from:translate(-70%, -60%) rotate(40deg) scale(.4);animation-delay:.25s}.oe3DtG_enter,.oe3DtG_word{animation:oe3DtG_rise 1.1s var(--ease) var(--d,0s) both}.oe3DtG_word{animation-name:oe3DtG_word;animation-duration:1.2s}}@keyframes oe3DtG_assemble{0%{opacity:0;transform:var(--from)}}@keyframes oe3DtG_rise{0%{opacity:0;filter:blur(8px);transform:translateY(18px)}}@keyframes oe3DtG_word{0%{opacity:0;filter:blur(14px);transform:translateY(.45em)rotate(2deg)}}@media (scripting:enabled) and (prefers-reduced-motion:no-preference){.oe3DtG_sectionTitle{transition:opacity .9s var(--ease), transform 1.1s var(--ease), filter .9s var(--ease)}.oe3DtG_sectionTitle:not([data-in]){opacity:0;filter:blur(12px);transform:translateY(56px)scale(.96)}.oe3DtG_project{clip-path:inset(0 round var(--radius-block));transition:clip-path 1.3s var(--ease)}.oe3DtG_project:not([data-in]){clip-path:inset(9% 7% 0 7% round calc(var(--radius-block) * 2))}.oe3DtG_copy>*{transition:opacity .9s var(--ease), transform 1s var(--ease), filter .9s var(--ease)}.oe3DtG_copy>:first-child{transition-delay:.15s}.oe3DtG_copy>:nth-child(2){transition-delay:.23s}.oe3DtG_copy>:nth-child(3){transition-delay:.31s}.oe3DtG_copy>:nth-child(4){transition-delay:.39s}.oe3DtG_project:not([data-in]) .oe3DtG_copy>*{opacity:0;filter:blur(8px);transform:translateY(28px)}.oe3DtG_window{transition:opacity .8s var(--ease) .1s, transform 1.4s var(--ease) .1s}.oe3DtG_stage:not([data-in]) .oe3DtG_window{opacity:0;transform:translateY(14cqw)scale(.82)}.oe3DtG_phone{transition:opacity .5s var(--ease) .5s, transform 1.1s var(--spring) .5s}.oe3DtG_stage:not([data-in]) .oe3DtG_phone{opacity:0;transform:translateY(36cqw)rotate(6deg)}.oe3DtG_contactTitle,.oe3DtG_note,.oe3DtG_buttonSlot{transition:opacity .9s var(--ease), transform 1.2s var(--ease), filter 1s var(--ease)}.oe3DtG_note{transition-delay:.15s}.oe3DtG_buttonSlot{transition-delay:calc(.25s + var(--i) * .12s)}.oe3DtG_contact:not([data-in]) .oe3DtG_contactTitle{opacity:0;filter:blur(18px);transform:translateY(48px)scale(.88)}.oe3DtG_contact:not([data-in]) .oe3DtG_note{opacity:0;filter:blur(6px);transform:translateY(20px)}.oe3DtG_contact:not([data-in]) .oe3DtG_buttonSlot{opacity:0;transform:translateY(48px)}}
