@font-face{font-family:DM Serif Display;font-style:normal;font-weight:400;font-display:swap;src:url(../media/8dd8a3188b79fd8f-s.a45bde5b.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Serif Display;font-style:normal;font-weight:400;font-display:swap;src:url(../media/0c8f209abc35ee02-s.p.a4b9a15b.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Serif Display Fallback;src:local(Times New Roman);ascent-override:94.37%;descent-override:30.51%;line-gap-override:0.0%;size-adjust:109.78%}.dm_serif_display_62bcd1c4-module__Jitc2q__className{font-family:DM Serif Display,DM Serif Display Fallback;font-style:normal;font-weight:400}.dm_serif_display_62bcd1c4-module__Jitc2q__variable{--font-dm-serif:"DM Serif Display","DM Serif Display Fallback"}
@font-face{font-family:DM Sans;font-style:normal;font-weight:300;font-display:swap;src:url(../media/c3cb240f9c892514-s.d8e4bce2.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-weight:300;font-display:swap;src:url(../media/5c285b27cdda1fe8-s.p.a62025f2.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/c3cb240f9c892514-s.d8e4bce2.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/5c285b27cdda1fe8-s.p.a62025f2.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/c3cb240f9c892514-s.d8e4bce2.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/5c285b27cdda1fe8-s.p.a62025f2.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans Fallback;src:local(Arial);ascent-override:94.9%;descent-override:29.66%;line-gap-override:0.0%;size-adjust:104.53%}.dm_sans_ae11bf90-module__EfgNla__className{font-family:DM Sans,DM Sans Fallback;font-style:normal}.dm_sans_ae11bf90-module__EfgNla__variable{--font-dm-sans:"DM Sans","DM Sans Fallback"}
@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}}}@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-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--font-display:var(--font-dm-serif);--font-body:var(--font-dm-sans)}}@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{.absolute{position:absolute}.relative{position:relative}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.flex{display:flex}.hidden{display:none}.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}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}:root{--bg-primary:#fff;--bg-secondary:#f5f5f7;--bg-tertiary:#e8e8ed;--text-primary:#1d1d1f;--text-secondary:#6e6e73;--text-tertiary:#a1a1a6;--border:#d2d2d7;--accent:#e8441a;--accent-hover:#c93a15;--accent-glow:#e8441a26;--text-hero:clamp(52px,8vw,110px);--text-display:clamp(36px,5vw,72px);--text-title:clamp(24px,3vw,40px);--text-body:18px;--text-small:14px;--text-micro:12px;--max-width:1200px;--section-padding:clamp(80px,12vw,160px);--section-gap:clamp(40px,6vw,80px);--grid-gutter:24px;--radius-card:20px;--radius-pill:100px;--shadow-card:0 2px 20px #0000000f,0 1px 4px #0000000a;--shadow-card-hover:0 12px 48px #0000001f;--shadow-dark-card:0 2px 20px #0006;--accent-glow-shadow:0 0 32px var(--accent-glow);--grain-opacity:.035;--nav-height:60px}[data-theme=dark]{--bg-primary:#000;--bg-secondary:#0a0a0a;--bg-tertiary:#1c1c1e;--text-primary:#f5f5f7;--text-secondary:#a1a1a6;--text-tertiary:#6e6e73;--border:#2d2d2d;--accent:#ff5c2e;--accent-hover:#e8441a;--accent-glow:#ff5c2e33;--shadow-card:0 2px 20px #0006;--shadow-card-hover:0 12px 48px #00000080;--grain-opacity:.055}@media (min-width:1024px){:root{--nav-height:72px}}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:auto}body{background:var(--bg-primary);color:var(--text-primary);font-family:var(--font-body),sans-serif;font-size:var(--text-body);line-height:1.7;transition:background-color .3s,color .3s;overflow-x:hidden}img{max-width:100%;height:auto}*,:before,:after{transition:background-color .3s,color .3s,border-color .3s,box-shadow .3s}::selection{background:var(--accent);color:#fff}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:100px;transition:background .2s}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}*{scrollbar-width:thin;scrollbar-color:var(--border)transparent}a{color:inherit;text-decoration:none}.section{padding:var(--section-padding)24px;position:relative}.section-inner{max-width:var(--max-width);width:100%;margin:0 auto}.hero-grid{grid-template-columns:1fr;align-items:center;gap:48px;display:grid}.hero-text-col{order:2}.hero-image-col{order:1}.about-grid{gap:var(--section-gap);grid-template-columns:1fr;align-items:center;display:grid}.desktop-trees-grid{display:none!important}.mobile-clouds-container{display:flex!important}.nav-mobile-btn{display:none!important}.skeleton{background:var(--bg-tertiary);position:relative;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.skeleton{background:color-mix(in srgb,var(--bg-tertiary)88%,transparent)}}.skeleton{border:1px solid var(--border)}.skeleton:after{content:"";background:linear-gradient(90deg,transparent,var(--text-tertiary),transparent);position:absolute;inset:0;transform:translate(-100%)}@supports (color:color-mix(in lab, red, red)){.skeleton:after{background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--text-tertiary)10%,transparent),transparent)}}.skeleton:after{animation:1.4s ease-in-out infinite skeleton-shimmer}.skeleton-pill{border-radius:var(--radius-pill)}.skeleton-card{border-radius:var(--radius-card)}.skeleton-line{border-radius:999px;height:14px;display:block}.skeleton-line--title{height:clamp(32px,6vw,74px)}.skeleton-line--body{height:18px}.loading-shell{background:var(--bg-primary)}.loading-nav{z-index:900;height:var(--nav-height);background:var(--bg-primary);justify-content:space-between;align-items:center;padding:0 clamp(16px,4vw,48px);display:flex;position:fixed;top:0;left:0;right:0}@supports (color:color-mix(in lab, red, red)){.loading-nav{background:color-mix(in srgb,var(--bg-primary)80%,transparent)}}.loading-nav{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--border)}.loading-main{padding-top:var(--nav-height)}.loading-grid-2{grid-template-columns:1fr;gap:clamp(24px,4vw,48px);display:grid}.loading-project-grid{grid-template-columns:1fr;gap:24px;display:grid}.loading-timeline{flex-direction:column;gap:24px;max-width:720px;display:flex}@keyframes skeleton-shimmer{to{transform:translate(100%)}}.section-label{font-family:var(--font-body),sans-serif;font-size:var(--text-small);color:var(--accent);text-transform:uppercase;letter-spacing:2px;margin-bottom:16px;font-weight:500}.section-headline{font-family:var(--font-display),serif;font-size:var(--text-display);color:var(--text-primary);margin-bottom:24px;line-height:1.15}.section-subtext{font-size:var(--text-body);color:var(--text-secondary);max-width:600px;line-height:1.7}.btn-primary{background:var(--accent);color:#fff;border-radius:var(--radius-pill);font-family:var(--font-body),sans-serif;cursor:pointer;border:none;align-items:center;gap:8px;padding:14px 32px;font-size:16px;font-weight:500;text-decoration:none;transition:background-color .2s,transform .2s,box-shadow .2s;display:inline-flex}.btn-primary:hover{background:var(--accent-hover);box-shadow:var(--accent-glow-shadow);transform:translateY(-2px)}.btn-secondary{color:var(--text-primary);border:1.5px solid var(--border);border-radius:var(--radius-pill);font-family:var(--font-body),sans-serif;cursor:pointer;background:0 0;align-items:center;gap:8px;padding:14px 32px;font-size:16px;font-weight:500;text-decoration:none;transition:border-color .2s,transform .2s,background-color .2s;display:inline-flex}.btn-secondary:hover{border-color:var(--accent);background:var(--accent-glow);transform:translateY(-2px)}.tag{border:1px solid var(--border);border-radius:var(--radius-pill);font-size:var(--text-small);color:var(--text-secondary);white-space:nowrap;align-items:center;padding:6px 16px;font-weight:400;transition:all .2s;display:inline-flex}.tag:hover{border-color:var(--accent);background:var(--accent-glow);color:var(--text-primary);transform:translateY(-2px)scale(1.04)}.tag--highlight{border-color:#e8441a4d}.tag--highlight:hover{border-color:var(--accent)}.card{background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow-card);transition:transform .3s cubic-bezier(.34,1.56,.64,1),box-shadow .3s,border-color .3s;overflow:hidden}.card:hover{box-shadow:var(--shadow-card-hover);border-color:var(--accent)}.grain-overlay{pointer-events:none;z-index:9999;width:100%;height:100%;opacity:var(--grain-opacity);position:fixed;top:0;left:0}.custom-cursor{background:var(--text-primary);pointer-events:none;z-index:10001;mix-blend-mode:difference;border-radius:50%;width:8px;height:8px;transition:width .3s,height .3s,background-color .3s,margin .3s;position:fixed}.custom-cursor.hovering{border:2px solid var(--accent);mix-blend-mode:normal;background:0 0;width:40px;height:40px;margin-top:-16px;margin-left:-16px}@keyframes float{0%,to{opacity:.4;transform:translateY(0)translate(0)}25%{opacity:.7;transform:translateY(-20px)translate(10px)}50%{opacity:.5;transform:translateY(-10px)translate(-5px)}75%{opacity:.6;transform:translateY(-30px)translate(8px)}}.particle{background:var(--accent);opacity:.3;width:4px;height:4px;animation:float var(--duration,8s)ease-in-out infinite;animation-delay:var(--delay,0s);border-radius:50%;position:absolute}@keyframes pulse-green{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.3)}}.pulse-dot{background:#34c759;border-radius:50%;width:8px;height:8px;animation:2s ease-in-out infinite pulse-green;display:inline-block}.pulse-dot--accent{background:var(--accent)}.badge{border-radius:var(--radius-pill);font-size:var(--text-micro);text-transform:uppercase;letter-spacing:.5px;align-items:center;gap:4px;padding:4px 12px;font-weight:500;display:inline-flex}.badge--shipped{color:#34c759;background:#34c7591f}.badge--progress{background:var(--accent-glow);color:var(--accent)}.badge--sample{color:var(--text-secondary);background:#8e8e931f}@media (max-width:640px){.section{padding:clamp(48px,8vw,80px) 16px}}@media (min-width:768px){.desktop-trees-grid{width:100%;display:block!important}.mobile-clouds-container{display:none!important}.tree-grid-layout{grid-template-columns:repeat(2,minmax(0,1fr));place-items:start center;gap:16px 44px;width:min(1240px,100%);margin-inline:auto;display:grid}.tree-grid-layout>.skill-tree-container:last-child:nth-child(odd){grid-column:1/-1;justify-self:center}.loading-project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.hero-grid{grid-template-columns:55% 45%!important}.hero-text-col{order:1!important}.hero-image-col{order:2!important}.about-grid{grid-template-columns:40% 60%!important}.about-accent-bar{display:block!important}.loading-grid-2{grid-template-columns:55% 45%;align-items:center}}@media (max-width:768px){.nav-desktop,.nav-hire-btn{display:none!important}.nav-mobile-btn{display:flex!important}}@media (prefers-reduced-motion:reduce){.particle,.pulse-dot,.skeleton:after{animation:none!important}}@media (hover:none) and (pointer:coarse){.custom-cursor{display:none!important}}.gsap-animating *{transition:none!important}:root{--mesh-gradient:radial-gradient(ellipse at 80% 20%,#e8441a0a 0%,transparent 60%)}.img-placeholder{background:var(--bg-tertiary);font-family:var(--font-display),serif;color:var(--text-tertiary);border-radius:var(--radius-card);justify-content:center;align-items:center;font-size:2rem;display:flex}.frosted{-webkit-backdrop-filter:saturate(180%)blur(20px);backdrop-filter:saturate(180%)blur(20px);background:#ffffffb8}[data-theme=dark] .frosted{background:#000000b8}.hero-image,.about-image{will-change:transform}.custom-cursor{will-change:transform,width,height}@media (min-width:1024px){.featured-content-row{align-items:flex-start;flex-direction:row!important}.featured-text-col{flex:1.2}.featured-meta-col{flex:.8;padding-top:4px}}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.4}}.skeleton{background:var(--bg-tertiary);border-radius:8px;animation:1.6s ease-in-out infinite skeleton-pulse}@keyframes modal-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes modal-sheet-in{0%{opacity:0;transform:translateY(20px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.modal-backdrop{animation:.2s forwards modal-backdrop-in}.modal-sheet{animation:.28s cubic-bezier(.34,1.56,.64,1) forwards modal-sheet-in}.admin-input{background:var(--bg-primary);border:1px solid var(--border);width:100%;color:var(--text-primary);font-family:var(--font-body),sans-serif;resize:none;border-radius:10px;outline:none;padding:10px 14px;font-size:14px;transition:border-color .15s,box-shadow .15s}.admin-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.admin-input::placeholder{color:var(--text-tertiary)}.admin-input:disabled{opacity:.5;cursor:not-allowed}.admin-label{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:1px;margin-bottom:6px;font-size:11px;font-weight:500;display:block}@keyframes confirm-in{0%{opacity:0;transform:scaleX(.85)}to{opacity:1;transform:scaleX(1)}}.confirm-delete{transform-origin:100%;animation:.15s forwards confirm-in}.drag-ghost{opacity:.35!important;border:1px dashed var(--accent)!important}.line-init{stroke-dashoffset:2000px;opacity:0}.node-init{opacity:0;transform:scale(0)}.hub-init{opacity:0}@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}
.hero-root{min-height:100vh;padding:calc(var(--nav-height) + 40px)24px 80px;background:var(--bg-primary);align-items:center;display:flex;position:relative;overflow:hidden}.hero-glow{background:radial-gradient(ellipse at center,var(--accent-glow)0%,transparent 70%);opacity:.4;pointer-events:none;filter:blur(80px);width:60%;height:60%;position:absolute;top:-20%;right:-10%}.hero-particle-0{--delay:.2s;--duration:8.4s;width:4px;height:4px;top:14%;left:9%}.hero-particle-1{--delay:1.1s;--duration:10.2s;width:5px;height:5px;top:22%;left:34%}.hero-particle-2{--delay:2.6s;--duration:9.1s;width:3px;height:3px;top:10%;left:68%}.hero-particle-3{--delay:.8s;--duration:11.4s;width:4px;height:4px;top:28%;left:82%}.hero-particle-4{--delay:1.8s;--duration:7.8s;width:5px;height:5px;top:42%;left:18%}.hero-particle-5{--delay:.4s;--duration:12s;width:4px;height:4px;top:52%;left:46%}.hero-particle-6{--delay:2.1s;--duration:8.8s;width:3px;height:3px;top:61%;left:74%}.hero-particle-7{--delay:1.5s;--duration:10.8s;width:5px;height:5px;top:72%;left:28%}.hero-particle-8{--delay:.6s;--duration:9.6s;width:4px;height:4px;top:80%;left:88%}.hero-particle-9{--delay:2.9s;--duration:11.2s;width:3px;height:3px;top:86%;left:12%}.hero-particle-10{--delay:1.3s;--duration:8.9s;width:4px;height:4px;top:35%;left:58%}.hero-particle-11{--delay:.9s;--duration:10.5s;width:5px;height:5px;top:92%;left:55%}.hero-text-col{order:2}.hero-eyebrow{border:1px solid var(--border);border-radius:var(--radius-pill);font-size:var(--text-small);color:var(--text-secondary);align-items:center;gap:8px;margin-bottom:24px;padding:8px 16px;display:inline-flex}.hero-headline{font-family:var(--font-display),serif;font-size:var(--text-hero);color:var(--text-primary);perspective:600px;margin-bottom:24px;line-height:1.05}.hero-word{transform-style:preserve-3d;margin-right:.22em;display:inline-block}.hero-sub{color:var(--text-secondary);max-width:560px;margin-bottom:36px;font-size:clamp(16px,2vw,20px);font-weight:300;line-height:1.7}.hero-ctas{flex-wrap:wrap;gap:16px;margin-bottom:32px;display:flex}.hero-socials{align-items:center;gap:16px;margin-bottom:24px;display:flex}.hero-social-link{width:50px;height:50px;color:var(--text-secondary);background:#0f172a0d;border:none;border-radius:14px;justify-content:center;align-items:center;transition:all .2s;display:flex;box-shadow:inset 0 0 0 1px #0f172a14}.hero-social-link img{opacity:.9;object-fit:contain;width:28px;height:28px;transition:opacity .2s,transform .2s,filter .2s,background-color .2s}.hero-social-link:hover{color:var(--accent);background:#e8441a1a;transform:translateY(-1px);box-shadow:inset 0 0 0 1px #e8441a33}.hero-social-link:hover img{opacity:1;transform:scale(1.04)}[data-theme=dark] .hero-social-link{background:#ffffff12;box-shadow:inset 0 0 0 1px #ffffff1f}.hero-building{font-size:var(--text-small);color:var(--text-tertiary);align-items:center;gap:8px;display:inline-flex}.hero-building-link{color:var(--accent);align-items:center;gap:6px;font-weight:500;display:inline-flex}.hero-pulse-small{width:6px;height:6px}.hero-image-col{order:1;justify-content:center;width:fit-content;max-width:100%;margin-inline:auto;display:flex;position:relative}.hero-image-shell{border-radius:24px;width:clamp(280px,40vw,460px);height:clamp(340px,50vw,560px);position:relative;overflow:hidden;box-shadow:0 20px 60px #0003}.hero-image-fill{object-fit:cover}.grain-layer{filter:url(#grain);opacity:.06;pointer-events:none;position:absolute;inset:0}.hero-location{background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-pill);font-size:var(--text-small);color:var(--text-secondary);box-shadow:var(--shadow-card);z-index:2;align-items:center;gap:8px;padding:9px 16px;display:flex;position:absolute;bottom:16px;right:12px}.hero-location-flag{border-radius:3px;flex-shrink:0;width:18px;height:auto}.contact-root{background:var(--bg-secondary);align-items:center;min-height:80vh;display:flex;position:relative;overflow:hidden}.contact-glow{background:radial-gradient(ellipse at center,var(--accent-glow)0%,transparent 70%);opacity:.3;pointer-events:none;filter:blur(100px);width:80%;height:80%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.contact-content{text-align:center;z-index:1;position:relative}.contact-title{font-family:var(--font-display),serif;font-size:var(--text-display);color:var(--text-primary);margin-bottom:24px;line-height:1.1}.contact-subtitle{color:var(--text-secondary);max-width:560px;margin:0 auto 40px;font-size:clamp(16px,2vw,20px);font-weight:300;line-height:1.7}.contact-primary{margin-bottom:48px;padding:16px 40px;font-size:18px;display:inline-flex}.contact-or{font-size:var(--text-small);color:var(--text-tertiary);margin-bottom:48px}.contact-mail-inline{color:var(--accent);font-weight:500}.contact-socials{flex-wrap:wrap;justify-content:center;gap:24px;display:flex}.contact-social{border:1px solid var(--border);border-radius:var(--radius-pill);font-size:var(--text-small);color:var(--text-secondary);background:#0f172a08;align-items:center;gap:12px;padding:14px 22px;transition:all .2s;display:flex}.contact-social img{opacity:.88;object-fit:contain;flex-shrink:0;width:28px;height:28px;transition:opacity .2s,transform .2s,filter .2s,background-color .2s}.contact-social:hover{border-color:var(--accent);color:var(--text-primary);background:var(--accent-glow)}.contact-social:hover img{opacity:1;transform:scale(1.04)}[data-theme=dark] .contact-social{background:#ffffff0f;border-color:#ffffff1f}.contact-social-label{font-weight:500}.contact-social-handle{color:var(--text-tertiary)}.site-nav{z-index:1000;height:var(--nav-height);border-bottom:1px solid #0000;justify-content:space-between;align-items:center;padding:0 clamp(16px,4vw,48px);transition:background .3s,-webkit-backdrop-filter .3s,backdrop-filter .3s,border-color .3s;display:flex;position:fixed;top:0;left:0;right:0}.site-nav[data-scrolled=true]{border-bottom-color:var(--border);-webkit-backdrop-filter:blur(20px)saturate(180%);backdrop-filter:blur(20px)saturate(180%)}.site-nav[data-scrolled=true][data-theme=dark]{background:#000000b8}.site-nav[data-scrolled=true][data-theme=light]{background:#ffffffb8}.site-logo{font-family:var(--font-display),serif;color:var(--text-primary);letter-spacing:-.5px;font-size:28px;text-decoration:none}.nav-desktop-list{align-items:center;gap:32px;display:flex}.nav-link{font-size:var(--text-small);color:var(--text-secondary);padding-bottom:4px;font-weight:400;transition:color .2s;position:relative}.nav-link[data-active=true]{color:var(--text-primary)}.nav-link-dot{background:var(--accent);border-radius:50%;width:5px;height:5px;transition:all .3s;position:absolute;bottom:-2px;left:50%;transform:translate(-50%)}.nav-right{align-items:center;gap:12px;display:flex}.nav-round-btn{border:1px solid var(--border);cursor:pointer;width:40px;height:40px;color:var(--text-primary);background:0 0;border-radius:50%;justify-content:center;align-items:center;transition:all .3s;display:flex}.nav-hire-btn{padding:10px 24px;font-size:14px}.nav-mobile-overlay{z-index:999;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);opacity:0;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:32px;transition:opacity .3s;display:flex;position:fixed;inset:0}.nav-mobile-overlay[data-open=true]{opacity:1;pointer-events:auto}.nav-mobile-overlay[data-theme=dark]{background:#000000f2}.nav-mobile-overlay[data-theme=light]{background:#fffffff2}.nav-mobile-link{font-family:var(--font-display),serif;color:var(--text-primary);font-size:clamp(28px,5vw,42px);text-decoration:none}.projects-root{background:var(--bg-secondary)}.projects-header{margin-bottom:48px}.projects-empty{text-align:center;color:var(--text-tertiary);padding:40px}.projects-grid-wrap{position:relative}.projects-grid-wrap--faded{--projects-fade-size:clamp(12px,1vw,20px)}.projects-grid{gap:var(--grid-gutter);grid-template-columns:repeat(2,1fr);display:grid}.projects-grid-wrap--faded .projects-grid{-webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 calc(100% - var(--projects-fade-size)),transparent 100%);-webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 calc(100% - var(--projects-fade-size)),transparent 100%);mask-image:linear-gradient(to bottom,#000 0%,#000 calc(100% - var(--projects-fade-size)),transparent 100%);-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.projects-inline-wrap{justify-content:center;margin-top:40px;display:flex}.projects-inline-btn{border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--text-secondary);cursor:pointer;background:0 0;align-items:center;gap:8px;padding:12px 28px;font-size:15px;font-weight:500;transition:color .2s,border-color .2s,transform .2s;display:inline-flex}.projects-inline-btn:hover{color:var(--accent);border-color:var(--accent);transform:translateY(-2px)}.projects-arrow{font-size:18px}.projects-fab{z-index:900;background:var(--accent);border-radius:var(--radius-pill);color:#fff;cursor:pointer;border:none;align-items:center;gap:8px;padding:14px 28px;font-size:15px;font-weight:600;transition:transform .2s,box-shadow .2s,opacity .2s;display:inline-flex;position:fixed;bottom:32px;right:32px;box-shadow:0 4px 24px #e8441a59}.projects-fab:hover{transform:translateY(-3px)scale(1.04);box-shadow:0 6px 32px #e8441a73}.projects-fab[data-hidden=true]{opacity:0;pointer-events:none}.project-card-base{will-change:transform;border:1px solid var(--border);flex-direction:column;transition:transform .2s ease-out,box-shadow .3s;display:flex;overflow:hidden}.project-card-featured{background:var(--bg-tertiary);grid-column:1/-1;grid-template-columns:1fr;display:grid;position:relative;overflow:hidden}.project-featured-carousel-col{padding:clamp(16px,2.5vw,24px) clamp(16px,2.5vw,24px) 0}.project-featured-content{flex-direction:column;gap:24px;padding:clamp(16px,2.5vw,24px);display:flex}.project-badges-row{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex}.project-main-badge{background:var(--accent);color:#fff}.project-title-featured{font-family:var(--font-display),serif;font-size:var(--text-title);color:var(--text-primary);margin-bottom:10px}.project-desc-featured{color:var(--text-secondary);max-width:520px;line-height:1.7}.project-stack-row{flex-wrap:wrap;gap:8px;margin-bottom:20px;display:flex}.project-stack-micro{font-size:var(--text-micro)}.project-actions-row{flex-wrap:wrap;gap:12px;display:flex}.project-feature-btn{padding:10px 24px;font-size:14px}.project-carousel-wrap{border:1px solid var(--border);background:var(--bg-tertiary);border-radius:12px;width:100%;height:200px;margin-bottom:20px;position:relative;overflow:hidden}.project-carousel-featured{border-radius:16px;height:100%;min-height:280px;margin-bottom:0}.project-empty-state{background:var(--bg-tertiary);width:100%;height:100%;color:var(--text-tertiary);justify-content:center;align-items:center;display:flex}.project-slide{opacity:0;will-change:opacity,transform;transition:opacity .55s cubic-bezier(.4,0,.2,1),transform .55s cubic-bezier(.4,0,.2,1);position:absolute;inset:0;transform:scale(1.05)}.project-slide[data-active=true]{opacity:1;transform:scale(1)}.project-slide[data-featured=true]{transition:opacity .65s cubic-bezier(.4,0,.2,1),transform .65s cubic-bezier(.4,0,.2,1);transform:scale(1.06)}.project-slide[data-featured=true][data-active=true]{transform:scale(1)}.project-slide-image{object-fit:cover}.project-arrow-btn{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;cursor:pointer;z-index:3;opacity:0;background:#ffffff26;border:1px solid #fff3;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;padding:0;transition:opacity .25s,background .2s;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.project-arrow-btn[data-visible=true]{opacity:.85}.project-arrow-left{left:8px}.project-arrow-right{right:8px}.project-arrow-btn[data-featured=true]{width:36px;height:36px}.project-arrow-btn.project-arrow-left[data-featured=true]{left:12px}.project-arrow-btn.project-arrow-right[data-featured=true]{right:12px}.project-arrow-btn[data-featured=true][data-visible=true]{opacity:.9}.project-dots{z-index:2;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0000004d;border-radius:100px;gap:6px;padding:4px 8px;display:flex;position:absolute;bottom:10px;left:50%;transform:translate(-50%)}.project-dots[data-featured=true]{padding:6px 10px;bottom:14px}.project-dot{cursor:pointer;background:#fff6;border:none;border-radius:3px;width:6px;height:6px;padding:0;transition:all .3s cubic-bezier(.4,0,.2,1)}.project-dot[data-active=true]{background:#fff;width:18px}.project-dot[data-featured=true]{border-radius:4px;width:7px;height:7px}.project-dot[data-featured=true][data-active=true]{width:22px}.project-regular-carousel-pad{padding:16px 16px 0}.project-regular-content{flex-direction:column;flex:1;justify-content:space-between;padding:0 clamp(16px,2vw,24px) clamp(16px,2vw,24px);display:flex}.project-title-row{justify-content:space-between;align-items:flex-start;margin-bottom:8px;display:flex}.project-title-regular{font-family:var(--font-display),serif;color:var(--text-primary);font-size:clamp(20px,2.5vw,28px);line-height:1.2}.project-desc-regular{color:var(--text-secondary);font-size:var(--text-small);margin-bottom:16px;line-height:1.6}.project-stack-row-small{flex-wrap:wrap;gap:6px;margin-bottom:14px;display:flex}.project-stack-small{font-size:var(--text-micro);padding:4px 10px}.project-links-row{gap:12px;display:flex}.project-link{font-size:var(--text-small);align-items:center;gap:4px;font-weight:500;display:inline-flex}.project-live-link{color:var(--accent)}.project-github-link{color:var(--text-secondary)}.projects-modal-overlay{opacity:0;z-index:9999;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0009;justify-content:center;align-items:center;padding:20px;display:none;position:fixed;inset:0;overflow:hidden}.projects-modal-content{background:var(--bg-primary);border:1px solid var(--border);border-radius:24px;flex-direction:column;width:100%;max-width:1100px;height:90vh;max-height:900px;display:flex;position:relative;overflow:hidden;box-shadow:0 25px 80px #0006}.projects-modal-close{background:var(--bg-secondary);border:1px solid var(--border);width:40px;height:40px;color:var(--text-primary);cursor:pointer;z-index:10;border-radius:50%;justify-content:center;align-items:center;font-size:18px;transition:background .2s,transform .2s;display:flex;position:absolute;top:24px;right:24px}.projects-modal-close:hover{transform:scale(1.1)rotate(90deg)}.projects-modal-head{border-bottom:1px solid var(--border);flex-shrink:0;padding:40px 40px 24px}.projects-modal-label{color:var(--accent);margin-bottom:8px}.projects-modal-title{font-family:var(--font-display),serif;color:var(--text-primary);font-size:clamp(28px,4vw,44px);line-height:1.1}.projects-modal-scroll{flex:1;padding:24px 40px 40px;overflow-y:auto}.projects-modal-grid{grid-template-columns:repeat(2,1fr);gap:20px;padding-bottom:40px;display:grid}.projects-modal-item{height:100%}.projects-modal-item-featured{grid-column:1/-1}.projects-modal-card{background:var(--bg-secondary);border-radius:var(--radius-card);border:1px solid var(--border);flex-direction:column;height:100%;transition:box-shadow .35s,transform .35s,border-color .35s;display:flex;overflow:hidden}.projects-modal-card:hover{border-color:#e8441a4d;transform:translateY(-8px)scale(1.02);box-shadow:0 16px 48px #0000002e,0 0 0 1px #e8441a26}.projects-modal-carousel-pad{padding:12px 12px 0}.projects-modal-body{flex-direction:column;flex:1;justify-content:space-between;padding:0 16px 16px;display:flex}.projects-modal-title-row{justify-content:space-between;align-items:flex-start;margin-bottom:6px;display:flex}.projects-modal-title-text{font-family:var(--font-display),serif;color:var(--text-primary);font-size:clamp(18px,2vw,24px);line-height:1.2}.projects-modal-description{color:var(--text-secondary);font-size:var(--text-small);margin-bottom:12px;line-height:1.6}.projects-modal-tag-row{flex-wrap:wrap;gap:6px;margin-bottom:14px;display:flex}.projects-modal-tag{font-size:var(--text-micro);padding:3px 8px}.projects-modal-action-row{gap:10px;display:flex}.projects-modal-primary,.projects-modal-secondary{font-size:var(--text-small);border-radius:var(--radius-pill);align-items:center;gap:6px;padding:6px 14px;text-decoration:none;transition:transform .2s,box-shadow .2s,border-color .2s;display:inline-flex}.projects-modal-primary{color:#fff;background:var(--accent);font-weight:600}.projects-modal-primary:hover{transform:translateY(-2px);box-shadow:0 4px 16px #e8441a59}.projects-modal-secondary{color:var(--text-primary);background:var(--bg-primary);border:1px solid var(--border);font-weight:500}.projects-modal-secondary:hover{border-color:var(--text-secondary);transform:translateY(-2px)}.about-root{background:var(--bg-secondary)}.about-image-col{flex-direction:column;align-items:center;display:flex}.about-image-box{border-radius:var(--radius-card);width:clamp(280px,35vw,400px);height:clamp(350px,44vw,500px);box-shadow:var(--shadow-card);position:relative;overflow:hidden}.about-image-fill{object-fit:cover}.about-caption{font-size:var(--text-small);color:var(--text-tertiary);margin-top:16px}.about-text-col{position:relative}.about-accent-bar{background:linear-gradient(to bottom,var(--accent),transparent);border-radius:2px;width:3px;height:100%;display:none;position:absolute;top:0;left:-20px}.about-body{flex-direction:column;gap:16px;margin-bottom:36px;display:flex}.about-paragraph{color:var(--text-secondary);line-height:1.7}.about-stats{flex-wrap:wrap;gap:32px;display:flex}.about-stat{text-align:center}.about-stat-value{font-family:var(--font-display),serif;font-size:var(--text-title);color:var(--accent);margin-bottom:4px;line-height:1}.about-stat-label{font-size:var(--text-small);color:var(--text-tertiary)}.skills-root{background:var(--bg-primary);padding-top:clamp(56px,7vw,88px);padding-bottom:clamp(24px,3vw,48px)}.skills-inner{text-align:center}.skills-header{margin-bottom:72px}.skills-title{max-width:10ch;margin-left:auto;margin-right:auto}.skills-empty{color:var(--text-tertiary);padding:40px}.mobile-clouds-container{flex-direction:column;gap:48px;display:flex}.skills-group-head{justify-content:center;align-items:center;gap:12px;margin-bottom:20px;display:flex}.skills-group-line{background:var(--border);width:24px;height:1px}.skills-group-label{font-size:var(--text-micro);text-transform:uppercase;letter-spacing:2px;color:var(--text-tertiary);font-weight:500}.skills-tags{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.skills-empty-group{color:var(--text-tertiary);font-size:12px}.skill-tree-container{justify-content:center;width:100%;max-width:620px;height:500px;margin-inline:auto;display:flex;position:relative}.skill-tree-empty{color:var(--text-tertiary);font-size:14px;position:absolute;top:170px}.skill-tree-svg{z-index:0;pointer-events:auto;width:100%;height:100%;position:absolute;top:0;left:0;overflow:visible}.tree-line{opacity:.48;transition:stroke .3s,stroke-width .3s,opacity .3s}.tree-line[data-highlight=true]{opacity:1}.tree-hub{cursor:default}.tree-hub-rect{fill:color-mix(in srgb,var(--bg-secondary)92%,transparent);stroke:color-mix(in srgb,var(--border)92%,transparent);stroke-width:1px;filter:drop-shadow(0 8px 24px #0000001f);transition:fill .3s,stroke .3s,filter .3s}.tree-hub[data-hovered=true] .tree-hub-rect{stroke:var(--accent);filter:drop-shadow(0 0 14px var(--accent-glow))}.tree-hub-text{font-family:var(--font-body),sans-serif;text-transform:uppercase;letter-spacing:1.8px;fill:var(--text-primary);-webkit-user-select:none;user-select:none;font-size:16px;font-weight:500;transition:fill .3s}.tree-hub[data-hovered=true] .tree-hub-text{fill:var(--accent)}.tree-node{cursor:default}.tree-node-rect{fill:color-mix(in srgb,var(--bg-primary)94%,transparent);stroke:color-mix(in srgb,var(--border)88%,transparent);stroke-width:1px;filter:drop-shadow(0 6px 18px #00000014);transition:fill .2s,stroke .2s,filter .2s,transform .2s}.tree-node-text{font-family:var(--font-body),sans-serif;fill:var(--text-secondary);-webkit-user-select:none;user-select:none;font-size:15px;font-weight:600;transition:fill .2s}.tree-node[data-featured=true] .tree-node-rect{fill:var(--bg-secondary);stroke:var(--accent)}.tree-node[data-featured=true] .tree-node-text{fill:var(--accent)}.tree-node[data-hovered=true] .tree-node-rect{fill:var(--accent);stroke:var(--accent);filter:drop-shadow(0 10px 24px #e8441a2e)}.tree-node[data-hovered=true] .tree-node-text{fill:#fff}.experience-root{background:var(--bg-primary)}.exp-header{margin-bottom:72px}.timeline-empty{text-align:center;color:var(--text-tertiary);padding:20px}.timeline{max-width:720px;position:relative;overflow:visible}.timeline-line{background:var(--border);transform-origin:top;width:1px;position:absolute;top:8px;bottom:8px;left:19px}.timeline-item{gap:24px;display:flex;position:relative}.timeline-item:not(:last-child){padding-bottom:48px}.timeline-dot-col{z-index:1;flex-shrink:0;justify-content:center;width:40px;padding-top:4px;display:flex;position:relative}.timeline-dot{border:2px solid var(--border);background:var(--bg-primary);width:16px;height:16px;box-shadow:none;border-radius:50%;flex-shrink:0}.timeline-dot[data-type=achievement]{background:var(--accent);border-color:var(--accent);box-shadow:0 0 12px var(--accent-glow)}.timeline-content{flex:1;padding-bottom:4px}.timeline-year{font-size:var(--text-micro);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:1.5px;margin-bottom:6px;font-weight:500}.timeline-title{font-family:var(--font-body),sans-serif;color:var(--text-primary);margin-bottom:4px;font-size:clamp(16px,2vw,20px);font-weight:500;line-height:1.3}.timeline-institution{font-size:var(--text-small);color:var(--text-secondary);margin-bottom:0;font-weight:400}.timeline-institution[data-type=achievement]{color:var(--accent);font-weight:500}.timeline-institution[data-has-desc=true]{margin-bottom:6px}.timeline-description{font-size:var(--text-small);color:var(--text-tertiary);line-height:1.6}.site-footer{background:var(--bg-primary);border-top:1px solid var(--border);padding:24px}.site-footer-inner{max-width:var(--max-width);font-size:var(--text-small);color:var(--text-tertiary);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin:0 auto;display:flex}.site-footer-center{text-align:center}.site-footer-top{color:var(--text-secondary);font-size:var(--text-small);cursor:pointer;font-family:var(--font-body),sans-serif;background:0 0;border:none;align-items:center;gap:6px;transition:color .2s;display:inline-flex}.site-footer-top:hover{color:var(--accent)}.grain-defs{width:0;height:0;position:absolute}.grain-overlay{filter:url(#grain);background:0 0}@media (min-width:1024px){.project-featured-content{flex-direction:row;align-items:flex-start}.hero-location{bottom:10px;right:-28px}}@media (max-width:900px){.projects-modal-grid{grid-template-columns:1fr}}@media (max-width:767px){.projects-grid{grid-template-columns:1fr}.projects-fab{padding:12px 20px;bottom:16px;right:16px}.projects-modal-head{padding:32px 20px 20px}.projects-modal-scroll{padding:20px}}
