/*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--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;--tw-duration:initial}}}@layer theme{:host,:root{--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;--color-red-600:oklch(57.7% .245 27.325);--color-neutral-300:oklch(87% 0 0);--color-black:#000;--color-white:#fff;--spacing:.25rem;--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25/1.875);--font-weight-extrabold:800;--tracking-tight:-.025em;--leading-snug:1.375;--leading-relaxed:1.625;--radius-xl:.75rem;--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)}}@layer base{*,::backdrop,:after,:before{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}:host,html{-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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{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}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,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,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}:-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,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:calc(var(--spacing)*0)}.inset-x-0{inset-inline:calc(var(--spacing)*0)}.top-0{top:calc(var(--spacing)*0)}.right-0{right:calc(var(--spacing)*0)}.right-auto{right:auto}.-bottom-1{bottom:calc(var(--spacing)*-1)}.bottom-0{bottom:calc(var(--spacing)*0)}.left-0{left:calc(var(--spacing)*0)}.z-10{z-index:10}.z-50{z-index:50}.z-\[60\]{z-index:60}.z-\[70\]{z-index:70}.col-\[1\/2\]{grid-column:1/2}.col-\[1\/3\]{grid-column:1/3}.col-\[2\/3\]{grid-column:2/3}.col-\[3\/4\]{grid-column:3/4}.row-\[1\/2\]{grid-row:1/2}.row-\[2\/3\]{grid-row:2/3}.row-\[3\/4\]{grid-row:3/4}.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}}.mx-auto{margin-inline:auto}.mt-0{margin-top:calc(var(--spacing)*0)}.mt-2{margin-top:calc(var(--spacing)*2)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-5{margin-bottom:calc(var(--spacing)*5)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.aspect-\[4\/3\]{aspect-ratio:4/3}.aspect-\[16\/10\]{aspect-ratio:16/10}.h-1\/2{height:50%}.h-8{height:calc(var(--spacing)*8)}.h-\[2px\]{height:2px}.h-\[3px\]{height:3px}.h-\[clamp\(160px\,38vw\,240px\)\]{height:clamp(160px,38vw,240px)}.h-\[var\(--header-h\)\]{height:var(--header-h)}.h-full{height:100%}.h-px{height:1px}.min-h-\[220px\]{min-height:220px}.min-h-screen{min-height:100vh}.w-8{width:calc(var(--spacing)*8)}.w-full{width:100%}.max-w-\[240px\]{max-width:240px}.max-w-\[300px\]{max-width:300px}.max-w-\[620px\]{max-width:620px}.max-w-\[720px\]{max-width:720px}.max-w-\[880px\]{max-width:880px}.max-w-\[1200px\]{max-width:1200px}.grow{flex-grow:1}.origin-left{transform-origin:0}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-evenly{justify-content:space-evenly}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-6{gap:calc(var(--spacing)*6)}:where(.space-y-0>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*0)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*0)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}.overflow-hidden{overflow:hidden}.rounded-full{border-radius:3.40282e+38px}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-black{border-color:var(--color-black)}.border-neutral-300{border-color:var(--color-neutral-300)}.border-white{border-color:var(--color-white)}.bg-\[\#d7dbe0\]{background-color:#d7dbe0}.bg-\[var\(--accent\)\]{background-color:var(--accent)}.bg-\[var\(--line\)\]{background-color:var(--line)}.bg-white{background-color:var(--color-white)}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-4{padding:calc(var(--spacing)*4)}.p-5{padding:calc(var(--spacing)*5)}.px-6{padding-inline:calc(var(--spacing)*6)}.py-7{padding-block:calc(var(--spacing)*7)}.pt-1{padding-top:calc(var(--spacing)*1)}.pt-6{padding-top:calc(var(--spacing)*6)}.pt-\[var\(--header-h\)\]{padding-top:var(--header-h)}.pb-16{padding-bottom:calc(var(--spacing)*16)}.pb-40{padding-bottom:calc(var(--spacing)*40)}.text-center{text-align:center}.text-left{text-align:left}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-\[11px\]{font-size:11px}.text-\[clamp\(2\.5rem\,12vw\,10rem\)\]{font-size:clamp(2.5rem,12vw,10rem)}.leading-\[0\.85\]{--tw-leading:.85;line-height:.85}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.text-black{color:var(--color-black)}.text-red-600{color:var(--color-red-600)}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.mix-blend-difference{mix-blend-mode:difference}.shadow-\[0_1px_0_0_var\(--line\)\]{--tw-shadow:0 1px 0 0 var(--tw-shadow-color,var(--line))}.ring,.shadow-\[0_1px_0_0_var\(--line\)\]{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-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,)}.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,visibility,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))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}@media (hover:hover){.group-hover\:opacity-60:is(:where(.group):hover *){opacity:.6}}@media (min-width:40rem){.sm\:col-span-2{grid-column:span 2/span 2}.sm\:mt-0{margin-top:calc(var(--spacing)*0)}.sm\:mb-2{margin-bottom:calc(var(--spacing)*2)}.sm\:mb-4{margin-bottom:calc(var(--spacing)*4)}.sm\:aspect-\[16\/9\]{aspect-ratio:16/9}.sm\:min-h-\[300px\]{min-height:300px}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-\[minmax\(220px\,280px\)_minmax\(0\,1fr\)\]{grid-template-columns:minmax(220px,280px) minmax(0,1fr)}.sm\:gap-6{gap:calc(var(--spacing)*6)}.sm\:gap-10{gap:calc(var(--spacing)*10)}.sm\:self-end{align-self:flex-end}.sm\:px-10{padding-inline:calc(var(--spacing)*10)}.sm\:py-12{padding-block:calc(var(--spacing)*12)}.sm\:text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}}@media (min-width:48rem){.md\:grid-cols-\[clamp\(200px\,28vw\,260px\)_minmax\(0\,1fr\)\]{grid-template-columns:clamp(200px,28vw,260px) minmax(0,1fr)}.md\:gap-10{gap:calc(var(--spacing)*10)}}@media (min-width:64rem){.lg\:aspect-\[21\/9\]{aspect-ratio:21/9}}}:root{--bg:#d5deef;--line:#0d0f10;--muted:#99a3ad;--accent:#f1df2b;--header-x:clamp(1rem,6vw,5rem);--header-y:.75rem;--header-h:var(--grid);--body-x:clamp(1rem,5vw,4rem);--grid:48px;--section-gap:calc(var(--header-h) + 40px);--hero-offset:clamp(48px,12vw,60px)}body,html{height:100%}body{background:var(--bg);color:#111;font-feature-settings:"ss01" on,"salt" on;cursor:none}.page-section{min-height:calc(100svh - var(--header-h));scroll-snap-align:start;scroll-snap-stop:normal;padding-top:var(--header-h);align-content:start;display:grid;overflow:hidden}#home.page-section{scroll-snap-align:none;min-height:auto;padding-top:calc(var(--header-h) + var(--hero-offset))}#home .hero-aspect{max-height:clamp(180px,24vw,360px)}#about.page-section,#contact.page-section,#experience.page-section,#projects.page-section{min-height:auto;padding-top:var(--section-gap)}#experience .timeline{height:clamp(120px,18vw,200px)}.bg-line{background-color:var(--line)}.px-headerX{padding-left:var(--header-x);padding-right:var(--header-x)}.pt-headerY{padding-top:var(--header-y)}.pb-headerY{padding-bottom:var(--header-y)}.px-bodyX{padding-left:var(--body-x);padding-right:var(--body-x)}.bg-accent{background:var(--accent)}.text-accent{color:var(--accent)}.border-accent{border-color:var(--accent)}.stroke-1{-webkit-text-stroke-width:1px;-webkit-text-stroke-color:#000;color:#0000}.dot{background:var(--line);border-radius:9999px;width:6px;height:6px;display:inline-block}.caption{text-transform:uppercase;letter-spacing:.18em;color:#111;font-size:.68rem}button{background:0 0;border-style:solid;border-width:0}.input{border-bottom:1px solid #111;outline:0;width:100%;padding:.5rem 0}textarea.input{resize:vertical;min-height:8rem}html{scroll-behavior:smooth;scroll-snap-type:none}.hero .frame{fill:none}.hero .frame,.hero .wire{stroke:var(--line);stroke-width:1px;vector-effect:non-scaling-stroke}.hero .node-yellow circle{fill:var(--accent)}.hero .node-black circle{fill:var(--line)}header nav a:after{content:"";background:var(--accent);vertical-align:middle;border-radius:9999px;width:14px;height:14px;margin-left:.5rem;display:inline-block}.about{margin-left:0}.about-card{box-shadow:none}.about-svg{height:360px}.about-svg .frame{stroke:var(--line);stroke-width:1px;fill:none;vector-effect:non-scaling-stroke}.about-svg .node{fill:var(--line)}.about .corner{background:var(--line);width:6px;height:6px;display:block;position:absolute}.about .corner.tl{top:-6px;left:-6px}.about .corner.tr{top:-6px;right:-6px}.about .corner.bl{bottom:-6px;left:-6px}.about .corner.br{bottom:-6px;right:-6px}.about .handle-in{background:var(--line);width:8px;height:8px;position:absolute;bottom:-8px;left:-8px}#about .about{margin-left:0}#about .caption{margin-bottom:.25rem}@media (min-width:640px){#about .caption{margin-bottom:.5rem}}.about-aspect{margin-bottom:clamp(6px,1.4vw,12px)}.milestone .timeline-dot{background:var(--line);z-index:3;border-radius:9999px;width:14px;height:14px;position:absolute;top:0;left:0;transform:translate(-50%,-50%)}.milestone{top:50%}.milestone,.milestone .pin{z-index:2;position:absolute;transform:translate(-50%)}.milestone .pin{background:var(--accent);width:4px;left:0}.milestone .label{white-space:normal;text-align:center;z-index:4;max-width:clamp(120px,26vw,240px);font-size:clamp(.62rem,1.8vw,.75rem);line-height:1.15;position:absolute;left:0;transform:translate(-50%)}.milestone .label.above{bottom:calc(var(--gap) + var(--bar)/2 + var(--label-clear) + 14px)}.milestone .label.below{top:calc(var(--gap) + var(--bar)/2 + var(--label-clear))}#experience .caption{z-index:1;position:relative}#experience .caption+.timeline{margin-top:calc(var(--gap) + 12px)}@media (max-width:480px){#experience .caption+.timeline{margin-top:calc(var(--gap) + 18px)}}.projects-frames .frame,.projects-wires .wire{stroke:var(--line);stroke-width:3px;fill:none;vector-effect:non-scaling-stroke}.projects-frames .node,.projects-wires .node{fill:var(--line)}.tile{display:block;overflow:hidden}.tile img{object-fit:cover;filter:grayscale()contrast(1.25)sepia()hue-rotate(15deg)saturate(1.6)brightness(.95);width:100%;height:100%}.with-wedge:after{content:"";background:var(--accent);width:10px;height:100%;position:absolute;top:0;right:-6px;transform:skewY(-3deg)}.dot-corner:before{content:"";background:var(--line);width:6px;height:6px;position:absolute;top:-3px;left:-3px}.tile{position:relative}.tile .hover-cap{opacity:0;pointer-events:none;z-index:2;justify-content:stretch;align-items:flex-end;padding:12px;transition:opacity .18s ease-out;display:flex;position:absolute;inset:0}.tile .hover-cap .cap{background:var(--accent);width:100%;min-height:44%;color:var(--line);align-items:center;padding:18px 20px;font-size:clamp(18px,2.2vw,32px);font-weight:900;line-height:1.05;transition:transform .18s ease-out;display:flex;transform:translateY(6px)}.tile:hover .hover-cap{opacity:1}.tile:hover .hover-cap .cap{transform:translateY(0)}.dot-corner:before,.with-wedge:after{z-index:3}.projects{--tile:clamp(96px,30vw,280px);--row:calc(var(--tile)*.785714);width:calc(var(--tile)*3);height:calc(var(--row)*3)}@media (min-width:1280px){html{scroll-snap-type:y proximity}.page-section{scroll-snap-align:start;scroll-snap-stop:normal}}.projects-grid{grid-template-columns:repeat(3,var(--tile));grid-template-rows:repeat(3,var(--row))}#contact.page-section,.contact-wrap{position:relative}.contact-wrap{padding-top:12px}.contact-marker{right:var(--body-x);top:calc(var(--header-h) - 16px);align-items:center;gap:.5rem;display:flex;position:absolute}.contact-marker:before{content:"";background:var(--line);width:1px;height:34px;position:absolute;top:-34px;left:2px}.input-box{border:1px solid var(--muted);background:0 0;outline:0;width:100%;padding:.4rem .5rem;line-height:1.2}.input-box:focus{border-color:#0000;outline:2px solid #f1df2b}.textarea-box{resize:vertical;min-height:180px}@media (max-width:1024px){.contact-wrap{padding-top:0}.contact-marker{margin:0 0 .75rem;position:static;top:auto;right:auto}.contact-marker:before{display:none}}@media (min-width:1025px){.contact-wrap{padding-top:clamp(8px,1.2vw,20px);padding-right:168px}.contact-marker{top:calc(var(--header-h) - 28px)}.contact-marker:before{height:40px;top:-40px}}.gh-badge{background:var(--accent);border:2px solid var(--line);border-radius:9999px;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.gh-badge .gh-mark{width:16px;height:16px;fill:var(--line)}.detail-card{width:220px}.detail-card .img-wrap{background:var(--accent);border:1px solid var(--line);position:relative;transform:rotate(-1.2deg)}.detail-card .img-wrap img{object-fit:cover;width:100%;height:180px}.duotone{filter:grayscale()contrast(1.25)sepia()hue-rotate(15deg)saturate(1.6)brightness(.95)}.corner{background:var(--line);width:6px;height:6px;display:block;position:absolute}.corner.tl{top:-6px;left:-6px}.corner.tr{top:-6px;right:-6px}.corner.bl{bottom:-6px;left:-6px}.corner.br{bottom:-6px;right:-6px}.card-title{text-transform:uppercase;font-size:2rem;font-weight:800;line-height:1;position:absolute;bottom:8px;left:10px}@keyframes float-y{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes drawline{to{stroke-dashoffset:0}}@keyframes pulse-dot{0%,to{opacity:.45;transform:scale(1)}50%{opacity:1;transform:scale(1.25)}}.hero-svg .frame>*,.hero-svg .wire{vector-effect:non-scaling-stroke;stroke:var(--line);fill:none;stroke-width:1px;stroke-dasharray:300;stroke-dashoffset:300px}.animate-lines .hero-svg .frame>*,.animate-lines .hero-svg .wire{animation:drawline .9s .2s forwards}.float-y{animation:float-y 4s ease-in-out infinite}.shimmer{background-image:linear-gradient(90deg,#0000,#00000014,#0000);background-size:200% 100%;animation:shimmer 1.8s linear infinite}.input-box{transition:box-shadow .2s,background-color .2s,transform .2s}.input-box:focus{box-shadow:0 0 0 1px var(--line)inset,0 0 0 2px var(--accent);background:#fff;transform:translateY(-1px)}.timeline:before{content:"";background:var(--line);width:1px;height:0;animation:growline .9s forwards;position:absolute;top:0;left:0}@keyframes growline{to{height:100%}}.timeline .dot{background:var(--line);border-radius:50%;width:10px;height:10px;animation:pulse-dot 1.6s ease-in-out infinite}.corner{animation:pulse-dot 3.2s ease-in-out infinite}.timeline-bar{transform-origin:0;transform:scaleX(0)}.animate-timeline .timeline-bar{animation:growbar .9s forwards}@keyframes growbar{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.hero h1 span{backface-visibility:hidden;transform:translateZ(0)}.hero-aspect{aspect-ratio:1200/420;width:100%;max-height:clamp(220px,34vw,460px);margin-top:-1rem;position:relative}.hero-svg{width:100%;height:100%;display:block;position:absolute;inset:0}.about-aspect{aspect-ratio:880/360;width:100%;max-height:clamp(180px,28vw,360px);margin-bottom:8px;position:relative}.about-svg{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.caption,.hero .caption,.hero h1{contain:layout paint style;backface-visibility:hidden;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;transform:translateZ(0)}.hero h1{letter-spacing:-.02em;font-size:clamp(2.4rem,12vw,10rem);line-height:.85}.hero h1 span{will-change:transform;display:block}@media (max-height:560px),(max-width:380px){html{scroll-behavior:auto}}.site-header{height:var(--header-h)}.site-header nav{height:100%}@media (max-width:420px){.site-header .caption{letter-spacing:.12em;font-size:.62rem}}html{scroll-padding-top:calc(var(--header-h) + 10px)}@media (max-width:900px){#experience .timeline{row-gap:clamp(16px,3vw,24px);height:auto;padding-left:0;display:grid;position:relative}#experience .timeline-bar,#experience .timeline>.timeline-dot{display:none}#experience .timeline:before{content:"";background:var(--accent);border-radius:4px;width:8px;position:absolute;top:2px;bottom:2px;left:14px}#experience .timeline .milestone{grid-template-columns:28px 1fr;align-items:start;column-gap:8px;padding:2px 0;display:grid;top:auto;transform:none;position:relative!important;left:auto!important}#experience .timeline .milestone .timeline-dot{z-index:1;border-radius:9999px;grid-column:1;place-self:start center;width:12px;height:12px;margin-top:2px;position:static!important;transform:none!important}#experience .timeline .milestone .pin,#experience .timeline .milestone .pin-down,#experience .timeline .milestone .pin-up{display:none!important}#experience .timeline .milestone .label{text-align:left;white-space:normal;z-index:2;grid-column:2;max-width:none;margin:0;font-size:clamp(.78rem,3.2vw,.95rem);line-height:1.3;top:auto;bottom:auto;left:auto;transform:none;position:relative!important}#experience .timeline .milestone .label.above,#experience .timeline .milestone .label.below{top:auto;bottom:auto}#experience .caption+.timeline{margin-top:.6rem}}@media (min-width:1280px){#experience .timeline{--gap:clamp(40px,6vw,72px);height:clamp(160px,20vw,260px)}#experience .timeline .milestone .label{max-width:clamp(140px,24vw,260px)}}.section-title{letter-spacing:.14em;font-size:clamp(1.1rem,2.8vw,1.75rem);line-height:1.15}.section-title .dot{width:17px;height:17px}#contact .contact-marker,.contact-marker.section-title{top:calc(var(--header-h) - 10px)}#contact .contact-marker{left:0;right:auto;text-align:left;align-items:center;gap:.5rem;display:inline-flex;position:absolute;transform:none}#contact .contact-marker.section-title{line-height:1.15}#contact .contact-marker .dot{width:17px;height:17px}@media (max-width:640px){#contact .contact-marker{margin-bottom:.5rem;position:static}}#contact .contact-marker+*{margin-top:clamp(36px,4.5vw,64px)}@media (max-width:1024px){#contact .contact-marker+*{margin-top:0}}#home.page-section{overflow:visible}@media (max-width:480px){#home.page-section{padding-top:calc(var(--header-h) + var(--hero-offset))}}.btn-outline{cursor:pointer;justify-content:center;align-items:center;gap:calc(var(--spacing)*2);--tw-border-style:solid;border-style:solid;border-width:1px;border-color:var(--muted);background-color:var(--bg);padding-inline:calc(var(--spacing)*4);padding-block:calc(var(--spacing)*2);color:var(--line);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,visibility,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));border-radius:0;display:inline-flex}@media (hover:hover){.btn-outline:hover{background-color:var(--bg)}}.btn-outline:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);--tw-ring-color:var(--accent);--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-offset-color:var(--bg);--tw-outline-style:none;outline-style:none}.btn-outline:disabled{cursor:not-allowed;opacity:.5}.timeline{--gap:clamp(32px,8vw,64px);--bar:24px;--label-clear:16px;height:clamp(140px,22vw,220px);position:relative}.timeline-bar{width:100%;left:0;right:0;top:calc(50% - var(--bar)/2);height:var(--bar);background:var(--accent);z-index:1;margin:0;padding:0;position:absolute}.timeline>.timeline-dot{background:var(--line);z-index:3;border-radius:9999px;width:14px;height:14px;position:absolute;top:50%;transform:translate(-50%,-50%)}.milestone .pin-up{top:calc(-1*var(--gap) - var(--bar)/2);height:var(--gap)}.milestone .pin-down{top:calc(var(--bar)/2);height:var(--gap)}@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-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@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}@property --tw-duration{syntax:"*";inherits:false}