/*! tailwindcss v4.3.1 | 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)))){*,:before,:after,::backdrop{--tw-space-y-reverse:0;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking: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;--container-xl:36rem;--container-4xl:56rem;--container-5xl:64rem;--container-6xl:72rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--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);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--text-5xl:3rem;--text-5xl--line-height:1;--font-weight-bold:700;--tracking-widest:.1em;--leading-relaxed:1.625;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@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;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}html{scroll-behavior:smooth}body{background:var(--brand-background);color:var(--brand-foreground);overflow-x:hidden}td,th{word-break:auto-phrase;overflow-wrap:anywhere}th{white-space:nowrap}}@layer components;@layer utilities{.absolute{position:absolute}.relative{position:relative}.mx-auto{margin-inline:auto}.mt-1{margin-top:var(--spacing)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-7{margin-top:calc(var(--spacing) * 7)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-9{margin-top:calc(var(--spacing) * 9)}.mt-10{margin-top:calc(var(--spacing) * 10)}.mt-16{margin-top:calc(var(--spacing) * 16)}.mb-1{margin-bottom:var(--spacing)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.mb-12{margin-bottom:calc(var(--spacing) * 12)}.mb-14{margin-bottom:calc(var(--spacing) * 14)}.flex{display:flex}.grid{display:grid}.inline-block{display:inline-block}.h-5{height:calc(var(--spacing) * 5)}.h-auto{height:auto}.min-h-screen{min-height:100vh}.w-5{width:calc(var(--spacing) * 5)}.w-16{width:calc(var(--spacing) * 16)}.w-full{width:100%}.max-w-4xl{max-width:var(--container-4xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-xl{max-width:var(--container-xl)}.shrink-0{flex-shrink:0}.resize{resize:both}.scroll-mt-6{scroll-margin-top:calc(var(--spacing) * 6)}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-8{gap:calc(var(--spacing) * 8)}.gap-12{gap:calc(var(--spacing) * 12)}: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-7>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 7) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 7) * calc(1 - var(--tw-space-y-reverse)))}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--brand-radius-lg)}.rounded-md{border-radius:var(--brand-radius-md)}.bg-card{background-color:var(--brand-card)}.bg-primary{background-color:var(--brand-primary)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-6{padding:calc(var(--spacing) * 6)}.p-7{padding:calc(var(--spacing) * 7)}.p-8{padding:calc(var(--spacing) * 8)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-1{padding-block:var(--spacing)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-20{padding-block:calc(var(--spacing) * 20)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pt-20{padding-top:calc(var(--spacing) * 20)}.pb-24{padding-bottom:calc(var(--spacing) * 24)}.text-center{text-align:center}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.whitespace-nowrap{white-space:nowrap}.text-card-foreground{color:var(--brand-card-foreground)}.text-foreground{color:var(--brand-foreground)}.text-muted-foreground{color:var(--brand-muted-foreground)}.text-primary{color:var(--brand-primary)}.text-primary-foreground{color:var(--brand-primary-foreground)}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (min-width:48rem){.md\:col-span-2{grid-column:span 2/span 2}.md\:col-span-4{grid-column:span 4/span 4}.md\:col-span-5{grid-column:span 5/span 5}.md\:col-span-6{grid-column:span 6/span 6}.md\:col-span-7{grid-column:span 7/span 7}.md\:col-span-12{grid-column:span 12/span 12}.md\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.md\:gap-6{gap:calc(var(--spacing) * 6)}.md\:p-10{padding:calc(var(--spacing) * 10)}.md\:py-28{padding-block:calc(var(--spacing) * 28)}.md\:pt-28{padding-top:calc(var(--spacing) * 28)}.md\:pb-32{padding-bottom:calc(var(--spacing) * 32)}.md\:text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.md\:text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.md\:text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.md\:text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.md\:text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.md\:text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}}@media (min-width:64rem){.lg\:col-span-5{grid-column:span 5/span 5}.lg\:col-span-7{grid-column:span 7/span 7}.lg\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.lg\:justify-end{justify-content:flex-end}}}@font-face{font-family:ZCOOL KuaiLe;font-style:normal;font-display:swap;font-weight:400;src:url(./fonts/zcool-kuaile-400.woff2)format("woff2")}@font-face{font-family:Archivo Black;font-style:normal;font-display:swap;font-weight:400;src:url(./fonts/archivo-black-400.woff2)format("woff2")}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(./fonts/noto-sans-sc-400.woff2)format("woff2")}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(./fonts/noto-sans-sc-500.woff2)format("woff2")}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:700;src:url(./fonts/noto-sans-sc-700.woff2)format("woff2")}:root{--brand-background:#fff6ec;--brand-foreground:#1a1614;--brand-card:#fff;--brand-card-foreground:#1a1614;--brand-popover:#fff;--brand-popover-foreground:#1a1614;--brand-muted:#f5e9d8;--brand-muted-foreground:#6b5d4f;--brand-primary:#ff4d2e;--brand-primary-foreground:#1a1614;--brand-border:#1a1614;--brand-input:#1a1614;--brand-ring:#2b50e0;--brand-radius-sm:2px;--brand-radius-md:6px;--brand-radius-lg:12px;--brand-support-yellow:#ffc700;--brand-support-blue:#2b50e0}.font-display{font-family:ZCOOL KuaiLe,Noto Sans SC,PingFang SC,sans-serif}.font-latin-display{font-family:Archivo Black,ZCOOL KuaiLe,Noto Sans SC,sans-serif}.font-body{font-family:Noto Sans SC,PingFang SC,Microsoft YaHei,system-ui,sans-serif}.skip-link{z-index:100;border:3px solid var(--brand-border);border-radius:var(--brand-radius-md);background:var(--brand-support-yellow);color:var(--brand-foreground);padding:.75rem 1rem;font-weight:700;transition:transform .15s;position:fixed;top:.75rem;left:.75rem;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}:where(a,button):focus-visible{outline:4px solid var(--brand-ring);outline-offset:4px}[data-lucide]{stroke-width:2.4px}.layer-content{z-index:2}.hero-title{font-size:clamp(3rem,9vw,6.5rem)}.hero-role{font-size:clamp(1.5rem,3.5vw,2.4rem)}.support-yellow{background:var(--brand-support-yellow)}.support-blue{background:var(--brand-support-blue);color:var(--brand-card)}.text-support-blue{color:var(--brand-support-blue)}.hard{border:3px solid var(--brand-border);box-shadow:6px 6px 0 var(--brand-border)}.hard-sm{border:2px solid var(--brand-border);box-shadow:4px 4px 0 var(--brand-border)}.btn{border:3px solid var(--brand-border);min-height:48px;box-shadow:6px 6px 0 var(--brand-border);border-radius:var(--brand-radius-md);align-items:center;gap:.5rem;padding:.8rem 1.6rem;font-weight:700;transition:transform .15s,box-shadow .15s;display:inline-flex}.btn:hover{box-shadow:0 0 0 var(--brand-border);transform:translate(6px,6px)}.card-hover{transition:transform .25s,box-shadow .25s}.card-hover:hover{box-shadow:10px 10px 0 var(--brand-border);transform:rotate(-1deg)}.portrait-card{width:100%;max-width:340px;transform:rotate(3deg)}.portrait-image{border:3px solid var(--brand-border)}@keyframes spin-slow{to{transform:rotate(360deg)}}.spin-slow{animation:18s linear infinite spin-slow}.spin-slower{animation:30s linear infinite reverse spin-slow}.deco-star{z-index:1;width:180px;height:180px;position:absolute;top:-50px;right:-50px}.deco-plus{z-index:1;width:140px;height:140px;position:absolute;top:42%;left:-46px}.deco-circle{z-index:1;width:110px;height:110px;position:absolute;bottom:110px;right:6%}@media (min-width:768px) and (max-width:1279px){.deco-star{width:110px;height:110px;top:-30px;right:-30px}.deco-plus{width:80px;height:80px;top:auto;bottom:14%;left:6px}.deco-circle{width:80px;height:80px;bottom:16px;right:4px}}@keyframes marquee{to{transform:translate(-25%)}}.marquee-shell{border-top:3px solid var(--brand-border);border-bottom:3px solid var(--brand-border);background:var(--brand-foreground);overflow:hidden}.marquee-track{width:max-content;color:var(--brand-support-yellow);will-change:transform;animation:24s linear infinite marquee;display:flex}.skew-band-wrap,.clip-x{overflow:hidden}.deco-md{display:none}@media (min-width:768px){.deco-md{display:block}}.skew-band{border-top:3px solid var(--brand-border);border-bottom:3px solid var(--brand-border);background:var(--brand-muted);width:calc(100% + 40px);margin-left:-20px;transform:skewY(-2deg)}.skew-inner{transform:skewY(2deg)}@media (max-width:1023px){#experience .skew-band{width:100%;margin-left:0}#experience .skew-inner{padding-right:30px}}.timeline{position:relative}.timeline:before{background:var(--brand-border);content:"";width:3px;position:absolute;top:0;bottom:0;left:14px}.tl-item{margin-bottom:3rem;padding-left:52px;position:relative}.tl-item:last-child{margin-bottom:0}.tl-dot{--dot-x:-50%;z-index:2;border:3px solid var(--brand-border);width:26px;height:26px;transform:translateX(var(--dot-x));will-change:transform;border-radius:9999px;position:absolute;top:6px;left:14px}.tl-dot:after{border:3px solid var(--brand-border);opacity:0;content:"";pointer-events:none;border-radius:9999px;position:absolute;inset:-7px;transform:scale(.55)}.tl-item.is-current .tl-dot{box-shadow:0 0 0 4px var(--brand-background), 0 0 0 7px var(--brand-border)}.tl-dot.dot-enter-down{animation:.62s cubic-bezier(.2,.85,.25,1.25) timeline-node-from-below}.tl-dot.dot-enter-up{animation:.62s cubic-bezier(.2,.85,.25,1.25) timeline-node-from-above}.tl-dot.dot-enter-down:after,.tl-dot.dot-enter-up:after{animation:.62s ease-out timeline-node-ripple}@keyframes timeline-node-from-below{0%{transform:translateX(var(--dot-x)) translateY(14px) scale(.7)}52%{transform:translateX(var(--dot-x)) translateY(-3px) scale(1.28)}76%{transform:translateX(var(--dot-x)) translateY(2px) scale(.94)}to{transform:translateX(var(--dot-x)) translateY(0) scale(1)}}@keyframes timeline-node-from-above{0%{transform:translateX(var(--dot-x)) translateY(-14px) scale(.7)}52%{transform:translateX(var(--dot-x)) translateY(3px) scale(1.28)}76%{transform:translateX(var(--dot-x)) translateY(-2px) scale(.94)}to{transform:translateX(var(--dot-x)) translateY(0) scale(1)}}@keyframes timeline-node-ripple{0%{opacity:.9;transform:scale(.55)}to{opacity:0;transform:scale(1.75)}}@media (min-width:1024px){#experience .skew-inner{padding-left:30px;padding-right:30px}.timeline:before{left:50%;transform:translate(-50%)}.tl-item{width:50%;padding-left:0}.tl-item:nth-child(odd){padding-right:52px}.tl-item:nth-child(2n){margin-left:50%;padding-left:52px}.tl-item:nth-child(odd) .tl-dot{--dot-x:50%;left:auto;right:0}.tl-item:nth-child(2n) .tl-dot{--dot-x:-50%;left:0}}.reveal.js-reveal{opacity:0;transition:opacity .6s,transform .6s;transform:translateY(40px)}.reveal.js-reveal.reveal-delay-1{transition-delay:90ms}.reveal.js-reveal.reveal-delay-2{transition-delay:.18s}.reveal.js-reveal.in{opacity:1;transform:translateY(0)}.sticker{border:2px solid var(--brand-border);border-radius:var(--brand-radius-sm);background:var(--brand-support-yellow);box-shadow:3px 3px 0 var(--brand-border);padding:.15rem .6rem;font-size:.8rem;font-weight:700;display:inline-block;transform:rotate(-2deg)}.bullet-primary{color:var(--brand-primary)}.bullet-blue{color:var(--brand-support-blue)}.date-primary{background:var(--brand-primary);color:var(--brand-primary-foreground)}.date-blue{background:var(--brand-support-blue);color:var(--brand-card)}.project-primary{background:var(--brand-primary);color:var(--brand-primary-foreground)}.project-blue{background:var(--brand-support-blue);color:var(--brand-card)}.skills-section{border-top:3px solid var(--brand-border);border-bottom:3px solid var(--brand-border);background:var(--brand-muted)}.skill-row-divider{border-bottom:3px solid var(--brand-border)}.sq{border:2px solid var(--brand-border);border-radius:var(--brand-radius-sm);width:20px;height:20px;transition:transform .2s}.sq-primary{background:var(--brand-primary)}.sq-yellow{background:var(--brand-support-yellow)}.sq-empty{background:var(--brand-background)}.skill-row:hover .sq.filled{transform:translateY(-3px)rotate(-6deg)}.contact-link{overflow-wrap:anywhere;border-bottom:4px solid var(--brand-primary);align-items:center;max-width:100%;min-height:44px;transition:transform .15s;display:inline-flex}.contact-link:hover{transform:translate(6px)}.contact-icon{background:var(--brand-support-yellow)}.contact-watermark{font-size:clamp(3rem,10vw,8rem);bottom:40px;left:auto;right:-10px}.contact-footer{border-top:3px solid var(--brand-border)}.site-legal-footer{z-index:2;background:var(--brand-background);text-align:center;padding:.75rem 1.5rem 1.5rem;position:relative}.icp-link{justify-content:center;align-items:center;min-height:44px;text-decoration:none;display:inline-flex}.icp-link:hover{color:var(--brand-foreground);text-underline-offset:.25rem;text-decoration:underline}.watermark{color:#0000;-webkit-text-stroke:2px var(--brand-border);pointer-events:none;-webkit-user-select:none;user-select:none;font-family:Archivo Black,sans-serif;line-height:.9}.watermark-subtle{opacity:.55;-webkit-text-stroke:1.5px var(--brand-muted-foreground)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transition:none;transform:none}.marquee-track,.spin-slow,.spin-slower{animation:none}.tl-dot,.tl-dot:after{animation:none!important}.btn,.card-hover,.sq,.contact-link,.skip-link{transition:none}}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}