@font-face{font-family:Roboto;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/roboto-latin-400-normal-BqEyEoaF.woff2)format("woff2"),url(/assets/roboto-latin-400-normal-D27F5sTu.woff)format("woff")}@font-face{font-family:Roboto;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/roboto-latin-500-normal-7RbcRiD8.woff2)format("woff2"),url(/assets/roboto-latin-500-normal-fsTFPL3E.woff)format("woff")}@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-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-outline-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;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial}}}@layer utilities{.\!visible{visibility:visible!important}.visible{visibility:visible}.fixed{position:fixed}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.block{display:block}.hidden{display:none}.table{display:table}.shrink{flex-shrink:1}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);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,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}}:root{--font-family:"Roboto", system-ui, sans-serif;--color-text:#fff;--color-bg:#000;--nav-height:64px;--beam-width:320px;--beam-blur:blur(6px);--beam-profile:linear-gradient(to right, #fff0 0, #ffffff12 60px, #ffffff29 100px, #ffffff47 125px, #ffffff6b 142px, #ffffff85 154px, #ffffff8f 160px, #ffffff85 166px, #ffffff6b 178px, #ffffff47 195px, #ffffff29 220px, #ffffff12 260px, #fff0 320px)}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{font-family:var(--font-family);color:var(--color-text);background-color:var(--color-bg);margin:0}ul{margin:0;padding:0;list-style:none}a{color:inherit;text-decoration:none}.glow-link{color:var(--color-text);text-shadow:0 0 6px #ffffff8c,0 0 18px #ffffff4d;padding-bottom:3px;transition:color .3s,text-shadow .3s;position:relative}.glow-link:hover,.glow-link:focus-visible{text-shadow:0 0 8px #ffffffe6,0 0 24px #ffffff8c}.glow-link:after{content:"";border-bottom:2px solid;width:0;transition:width .2s;position:absolute;bottom:0;left:50%;transform:translate(-50%);box-shadow:0 0 8px}.glow-link:hover:after,.glow-link:focus-visible:after{width:100%}.glass-card{z-index:1;-webkit-backdrop-filter:blur(20px)saturate(140%);backdrop-filter:blur(20px)saturate(140%);background-color:#0000001a;border:1px solid #ffffff4d;border-radius:32px;width:46%;min-width:560px;max-width:100%;padding:clamp(28px,4vw,48px) clamp(20px,4vw,48px);position:relative;box-shadow:inset 0 1px 1px #ffffff4d,inset 0 -1px 1px #ffffff14,0 12px 40px #00000073}.glass-card__title{margin:0 0 20px;font-size:clamp(1.5rem,3vw,2rem);font-weight:500}.glass-card__text{color:#ffffffd1;margin:0 0 16px;font-size:1.05rem;line-height:1.7}@media (width<=768px){.glass-card{width:100%;min-width:0;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:0;padding:0}}.reveal{opacity:0;transition:opacity .7s,transform .7s;transition-delay:calc(var(--reveal-index,0) * .12s);transform:translateY(24px)}.is-visible .reveal{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transition:none;transform:none}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-outline-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}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}.nav{z-index:100;height:var(--nav-height);justify-content:flex-end;align-items:center;padding:0 16px;display:flex;position:fixed;inset:0 0 auto}.nav-list{gap:20px;display:flex}.nav-link{letter-spacing:4px;display:inline-block}.nav-toggle{z-index:2;cursor:pointer;background:0 0;border:0;width:40px;height:38px;padding:0;display:none;position:relative}.nav-toggle span{background:var(--color-text);border-radius:9px;width:100%;height:2px;transition:top .25s ease-in-out,left .25s ease-in-out,opacity .25s ease-in-out,transform .25s ease-in-out;position:absolute;left:0}.nav-toggle span:first-child{top:0}.nav-toggle span:nth-child(2){top:18px}.nav-toggle span:nth-child(3){top:36px}.nav-toggle.is-open span:first-child{top:18px;transform:rotate(135deg)}.nav-toggle.is-open span:nth-child(2){opacity:0;left:-60px}.nav-toggle.is-open span:nth-child(3){top:18px;transform:rotate(-135deg)}@media (width>=769px){.nav{transition:transform .35s}.nav.is-hidden:not(:focus-within){transform:translateY(-100%)}}@media (prefers-reduced-motion:reduce){.nav{transition:none}}@media (width<=768px){.nav-toggle{display:block}.nav-list{z-index:1;-webkit-backdrop-filter:blur(20px)saturate(140%);backdrop-filter:blur(20px)saturate(140%);visibility:hidden;background-color:#0006;flex-direction:column;justify-content:center;align-items:center;gap:60px;transition:transform .4s ease-out,visibility 0s linear .4s;position:fixed;inset:0;transform:translate(-100%)}.nav-list.is-open{visibility:visible;transition:transform .4s ease-out;transform:translate(0)}}.section{min-height:100svh;padding:var(--nav-height) 16px;justify-content:center;align-items:center;display:flex}.plasma-container{width:100%;height:100%;position:relative;overflow:hidden}.plasma-canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.shiny-text{-webkit-text-fill-color:transparent;background-repeat:no-repeat;background-size:100% 100%;-webkit-background-clip:text;background-clip:text;display:inline-block;position:relative}.shiny-text__glow{filter:blur(.14em);pointer-events:none;-webkit-user-select:none;user-select:none;background-repeat:no-repeat;background-size:100% 100%;-webkit-background-clip:text;background-clip:text;position:absolute;inset:0}.hero{background-color:#000;position:relative;overflow:hidden}.hero__plasma{position:absolute;inset:0}.hero__glass{z-index:1;text-align:center;-webkit-backdrop-filter:blur(20px)saturate(140%);backdrop-filter:blur(20px)saturate(140%);background-color:#0003;border:1px solid #ffffff4d;border-radius:32px;max-width:100%;padding:clamp(28px,5vw,56px) clamp(20px,6vw,80px);position:relative;box-shadow:inset 0 1px 1px #ffffff4d,inset 0 -1px 1px #ffffff14,0 12px 40px #00000073}.hero__title{text-wrap:balance;letter-spacing:-.02em;margin:0;font-size:clamp(2rem,8vw,5.5rem);font-weight:500}.hero__subtitle{letter-spacing:.3em;text-wrap:balance;text-transform:uppercase;color:#ffffffb3;margin:12px 0 0;font-size:clamp(.9rem,2vw,1.25rem)}@media (width<=768px){.hero__title{font-size:clamp(2.5rem,11vw,3.5rem)}.hero__glass{width:100%;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:0;padding:0}}.glass-icons{justify-content:center;gap:var(--glass-icons-row-gap) var(--glass-icons-gap);box-sizing:border-box;max-width:calc(var(--glass-icons-columns) * var(--glass-icons-size) + (var(--glass-icons-columns) - 1) * var(--glass-icons-gap));isolation:isolate;flex-wrap:wrap;margin:0 auto;display:flex;position:relative}.glass-icons-defs{pointer-events:none;width:0;height:0;position:absolute;overflow:hidden}.glass-icons-canvas{z-index:1;pointer-events:none;display:block;position:absolute}.glass-icon{width:var(--glass-icons-size);height:var(--glass-icons-size);color:inherit;font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;outline:none;flex:none;margin:0;padding:0;text-decoration:none;position:relative}.glass-icon-plate{z-index:0;border-radius:var(--glass-icons-radius);will-change:transform, opacity;position:absolute;inset:0}.glass-icon-plate--tilt{transform:rotate(var(--glass-icons-tilt));transform-origin:100% 100%}.glass-icon-plate--offset{transform:translate(calc(var(--glass-icons-spread) * 26%), calc(var(--glass-icons-spread) * -26%))}.glass-icon-plate--circle{transform:translate(calc(var(--glass-icons-spread) * 29%), calc(var(--glass-icons-spread) * -29%));border-radius:50%;inset:9%}.glass-icon-glass{z-index:0;border-radius:var(--glass-icons-radius);background:linear-gradient(var(--glass-icons-tint), var(--glass-icons-tint));box-shadow:0 12px 24px -14px var(--glass-icons-drop);will-change:transform, opacity;position:absolute;inset:0;overflow:hidden}.glass-icon-shade,.glass-icon-shine{border-radius:inherit;pointer-events:none;background-size:100% 100%;position:absolute;inset:0}.glass-icon-shade{opacity:var(--glass-icons-shade)}.glass-icon-shine{opacity:var(--glass-icons-shine)}.glass-icon-face{z-index:2;border-radius:var(--glass-icons-radius);pointer-events:none;will-change:transform, opacity;place-items:center;display:grid;position:absolute;inset:0}.glass-icon:focus-visible .glass-icon-face{outline:2px solid var(--glass-icons-label);outline-offset:4px}.glass-icon-glyph{width:40%;height:40%;color:var(--glass-icons-ink);filter:drop-shadow(0 1px 3px var(--glass-icons-glyph-shadow));place-items:center;display:grid}.glass-icon-glyph>svg{width:100%;height:100%}.glass-icon-label{z-index:2;color:var(--glass-icons-label);white-space:nowrap;pointer-events:none;font-size:13px;font-weight:500;line-height:1.2;transition:opacity .3s cubic-bezier(.22,1,.36,1),transform .3s cubic-bezier(.22,1,.36,1);position:absolute;top:calc(100% + 10px);left:50%;transform:translate(-50%)}.glass-icons--labels-hover .glass-icon-label{opacity:0;transform:translate(-50%,-4px)}.glass-icons--labels-hover .glass-icon:focus-visible .glass-icon-label{opacity:1;transform:translate(-50%)}.glass-icons.is-intro .glass-icon-plate,.glass-icons.is-intro .glass-icon-glass,.glass-icons.is-intro .glass-icon-face,.glass-icons.is-intro.glass-icons--labels-always .glass-icon-label{opacity:0}@media (hover:hover){.glass-icons--labels-hover .glass-icon:hover .glass-icon-label{opacity:1;transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.glass-icon-label{transition:none}}.about{background-color:#000;padding-bottom:22vh;position:relative;overflow:hidden}.about__funnel{pointer-events:none;position:absolute;inset:0}.about__funnel-glow{filter:blur(28px);position:absolute;inset:0}.about__funnel-shape{clip-path:polygon(18% 0,82% 0,50.4% 100%,49.6% 100%);background:linear-gradient(#ffffff08,#ffffff12 35%,#ffffff29 60%,#ffffff24 75%,#fff0 95%);position:absolute;inset:0}.about__funnel-core{width:var(--beam-width);background:var(--beam-profile);height:45%;filter:var(--beam-blur);position:absolute;bottom:0;left:50%;transform:translate(-50%);-webkit-mask-image:linear-gradient(#0000,#000 calc(100% - 300px),#0000);mask-image:linear-gradient(#0000,#000 calc(100% - 300px),#0000)}.about__social{margin:32px auto 0}.skills{background-color:#000;align-items:flex-start;padding-top:36svh;padding-bottom:12vh;position:relative;overflow-x:clip}.skills__lead-in{pointer-events:none;background:radial-gradient(160px 280px,#ffffff29,#fff0);height:560px;position:absolute;inset:-280px 0 auto}.skills__lead-in:after{content:"";width:var(--beam-width);background:var(--beam-profile);height:520px;filter:var(--beam-blur);position:absolute;top:-20px;left:50%;transform:translate(-50%);-webkit-mask-image:linear-gradient(#0000,#000 300px,#0000);mask-image:linear-gradient(#0000,#000 300px,#0000)}.skills .skills__laser{position:absolute;inset:0;-webkit-mask-image:linear-gradient(#0000,#000 220px);mask-image:linear-gradient(#0000,#000 220px)}.skills__surface{border-radius:inherit;pointer-events:none;position:absolute;inset:0}.skills__highlights{gap:18px;margin-top:4px;display:grid}.skills__highlight-title{margin:0 0 4px;font-size:1.05rem;font-weight:500}.skills__highlight-text{color:#ffffffb8;margin:0;font-size:.95rem;line-height:1.6}.skills__list{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:32px;display:flex}.skills__tag{-webkit-backdrop-filter:blur(12px)saturate(140%);backdrop-filter:blur(12px)saturate(140%);letter-spacing:.04em;color:#ffffffe0;background:linear-gradient(#ffffff1f,#ffffff0a);border-radius:999px;padding:7px 16px;font-size:.9rem;box-shadow:inset 0 1px #ffffff40,inset 0 -1px #ffffff0d,0 4px 14px #00000059}@media (width<=768px){.skills{padding-top:26svh}.skills__card{padding-top:48px}.skills__surface{border-radius:0;inset:-24px -80px 0}.skills__surface:before{content:"";background:linear-gradient(#fffc,#ffffff59 16px,#ffffff1f 42px,#fff0);height:90px;position:absolute;inset:0 0 auto;-webkit-mask-image:linear-gradient(90deg,#00000073,#000 35% 65%,#00000073);mask-image:linear-gradient(90deg,#00000073,#000 35% 65%,#00000073)}}.projects{background-color:#000;flex-direction:column;gap:24px}.projects__intro{width:46%;min-width:560px;max-width:100%}.projects__hint{color:#ffffff80;margin:0;font-size:.9rem}.projects__carousel{width:100%;height:min(60vh,560px)}.projects__carousel .flex-carousel{overscroll-behavior:auto}.projects__visit{margin:0;font-size:1.05rem}@media (width<=768px){.projects__intro{width:100%;min-width:0}.projects__carousel{height:60svh}}.specular-button{--sb-radius:18px;--sb-tint:#fff;--sb-tint-opacity:.04;--sb-blur:0px;--sb-text-color:#f5f5f5;isolation:isolate;border-radius:var(--sb-radius);font:inherit;letter-spacing:.01em;color:var(--sb-text-color);background:color-mix(in srgb, var(--sb-tint) calc(var(--sb-tint-opacity) * 100%), transparent);-webkit-backdrop-filter:blur(var(--sb-blur));backdrop-filter:blur(var(--sb-blur));cursor:pointer;-webkit-tap-highlight-color:transparent;border:0;outline:none;justify-content:center;align-items:center;gap:.5em;margin:0;font-weight:500;line-height:1;transition:transform .25s cubic-bezier(.2,.8,.2,1);display:inline-flex;position:relative;box-shadow:0 10px 24px -14px #00000073}.specular-button:active{transform:scale(.97)}.specular-button:focus-visible{outline:2px solid color-mix(in srgb, var(--sb-text-color) 55%, transparent);outline-offset:3px}.specular-button:disabled{opacity:.5;cursor:default}.specular-button:disabled:active{transform:none}.specular-button--sm{padding:10px 20px;font-size:.875rem}.specular-button--md{padding:14px 28px;font-size:1rem}.specular-button--lg{padding:18px 38px;font-size:1.125rem}.specular-button__light{z-index:1;pointer-events:none;width:calc(100% + 48px);height:calc(100% + 48px);display:block;position:absolute;inset:-24px}.specular-button__label{z-index:2;align-items:center;gap:inherit;display:inline-flex;position:relative}.contact{background-color:#000;position:relative;overflow:hidden}.contact .contact__aurora{position:absolute;inset:0}.contact__form{gap:44px;margin-top:48px;display:grid}.contact__trap{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}.contact__row{grid-template-columns:1fr 1fr;gap:20px;display:grid}.contact__field{--field-glow:#ffffff8c;--field-glow-soft:#ffffff4d;position:relative}.contact__field label{display:block;position:relative}.contact__field input,.contact__field textarea{width:100%;font:inherit;color:var(--color-text);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffff0a;border:1px solid #ffffff40;border-radius:14px;outline:none;padding:14px 16px;font-size:1rem;line-height:1.5;transition:border-color .3s,box-shadow .3s;display:block;box-shadow:0 0 6px #ffffff14}.contact__field textarea{resize:vertical;min-height:160px}.contact__field input:focus,.contact__field textarea:focus,.contact__field.is-filled input,.contact__field.is-filled textarea{box-shadow:0 0 6px var(--field-glow), 0 0 18px var(--field-glow-soft), inset 0 0 8px #ffffff14;border-color:#ffffffd9}.contact__field span{color:#ffffffbf;pointer-events:none;transform-origin:0;transition:transform .2s,color .2s;position:absolute;top:14px;left:17px}.contact__field input:focus+span,.contact__field input:not(:placeholder-shown)+span,.contact__field textarea:focus+span,.contact__field textarea:not(:placeholder-shown)+span{color:var(--color-text);transform:translate(-17px,-42px)scale(.78)}.contact__field.is-invalid input,.contact__field.is-invalid textarea{box-shadow:0 0 6px var(--field-glow), 0 0 18px var(--field-glow-soft);border-color:#ffffffd9}.contact__error{color:#ffffffd9;margin:0;font-size:.85rem;position:absolute;top:calc(100% + 6px);left:0}.contact__actions{grid-template-columns:auto 1fr;align-items:center;gap:20px;display:grid}.contact__status{align-self:stretch;position:relative}.contact__notice{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0009;border-radius:14px;align-items:flex-start;gap:12px;padding:12px 12px 12px 16px;display:flex;position:absolute;top:50%;left:0;right:0;transform:translateY(-50%);box-shadow:inset 0 1px #fff3,0 8px 24px #00000059}.contact__notice p{color:#ffffffe6;flex:1;margin:0;font-size:.95rem;line-height:1.5}.contact__dismiss{color:#ffffffb3;cursor:pointer;background:0 0;border:0;border-radius:50%;flex:none;width:28px;height:28px;padding:0;font-size:1.25rem;line-height:1;transition:background-color .2s,color .2s}.contact__dismiss:hover,.contact__dismiss:focus-visible{color:#fff;background:#ffffff1f;outline:none}@media (width<=768px){.contact__row{grid-template-columns:1fr;gap:44px}.contact{padding-bottom:160px}.contact__actions{grid-template-columns:1fr;justify-items:end;gap:0}.contact__status{justify-self:stretch}.contact__notice{top:12px;transform:none}}
