@layer tokens{@layer tokens{:root{--bp-mobile:37.5rem;--bp-tablet:76.8rem;--bp-desktop:144rem;--space-xxs:.2rem;--space-xs:.4rem;--space-sm:.8rem;--space-md:1.6rem;--space-lg:2.4rem;--space-xl:4rem;--space-xxl:6.4rem;--space-1-2:.5rem;--space-3-4:.75rem;--space-xs-responsive:clamp(.3rem, 1vw, .6rem);--space-sm-responsive:clamp(.6rem, 1.5vw, 1rem);--space-md-responsive:clamp(1.2rem, 2.5vw, 1.8rem);--space-lg-responsive:clamp(2rem, 4vw, 2.8rem);--space-xl-responsive:clamp(3.5rem, 6vw, 4.5rem);--font-family-base:"Nunito Sans", sans-serif;--font-family-mono:Consolas, monospace;--font-size-base:1.6rem;--font-size-sm:1.4rem;--font-size-lg:2rem;--font-size-xl:3.2rem;--line-height-base:1.5;--line-height-heading:1.2;--font-weight-normal:400;--font-weight-bold:700;--radius-sm:.2rem;--radius-md:.4rem;--shadow-sm:0 1px 3px #00000014;--shadow-md:0 2px 6px #0000001f;--ease-standard:cubic-bezier(.4, 0, .2, 1);--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--duration-fast:.15s;--duration-normal:.3s;--duration-slow:.6s;--transition-fast:.2s ease;--transition-normal:.3s ease;--color-background:#f8fafc;--color-surface:#fff;--color-text:#1f2933;--color-heading:#086375;--color-link:#1e6bb8;--color-muted:#6b7280;--color-border:#e5e7eb;--color-header-start:#155799;--color-header-end:#1dd3b0;--color-accent-primary:#086375;--color-accent-secondary:#1dd3b0;--color-accent-highlight:#affc41;--color-accent-soft:#b2ff9e;--color-accent-deep:#3c1642;--color-btn-bg:#fff;--color-btn-border:#d1d5db;--color-btn-text:#1f2933;--color-btn-bg-hover:#f1f5f9;--color-btn-border-hover:#9ca3af;--color-code-bg:#f3f6fa;--color-code-text:#334155;--color-blockquote-border:#cbd5e1}[data-theme=dark]{--color-background:#0b1220;--color-surface:#111827;--color-text:#e5e7eb;--color-heading:#1dd3b0;--color-link:#60a5fa;--color-muted:#9ca3af;--color-border:#1f2937;--color-header-start:#0f2027;--color-header-end:#086375;--color-accent-primary:#1dd3b0;--color-accent-secondary:#38bdf8;--color-accent-highlight:#affc41;--color-accent-soft:#4ade80;--color-accent-deep:#3c1642;--color-btn-bg:#111827;--color-btn-border:#374151;--color-btn-text:#e5e7eb;--color-btn-bg-hover:#1f2937;--color-btn-border-hover:#4b5563;--color-code-bg:#1e293b;--color-code-text:#cbd5e1;--color-blockquote-border:#334155;--shadow-sm:0 2px 6px #00000080;--shadow-md:0 6px 16px #0009}}.m-xs{margin:var(--space-xs)}.m-sm{margin:var(--space-sm)}.m-md{margin:var(--space-md)}.m-lg{margin:var(--space-lg)}.m-xl{margin:var(--space-xl)}.p-xs{padding:var(--space-xs)}.p-sm{padding:var(--space-sm)}.p-md{padding:var(--space-md)}.p-lg{padding:var(--space-lg)}.p-xl{padding:var(--space-xl)}@media (width<=768px){.m-xs{margin:var(--space-xs-responsive)}.m-sm{margin:var(--space-sm-responsive)}.m-md{margin:var(--space-md-responsive)}.m-lg{margin:var(--space-lg-responsive)}.m-xl{margin:var(--space-xl-responsive)}.p-xs{padding:var(--space-xs-responsive)}.p-sm{padding:var(--space-sm-responsive)}.p-md{padding:var(--space-md-responsive)}.p-lg{padding:var(--space-lg-responsive)}.p-xl{padding:var(--space-xl-responsive)}}}@layer base{@layer base{*,:before,:after{box-sizing:border-box}*{margin:0;padding:0}body{-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;height:100%;line-height:1.5}img,picture,video,canvas,svg{max-width:100%;display:block}input,button,textarea,select{font:inherit}button{cursor:pointer;background:0 0;border:none}a{color:inherit;text-decoration:none}ul,ol{list-style:none}table{border-collapse:collapse;border-spacing:0}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}html{font-size:62.5%}body{font-optical-sizing:auto;font-family:Nunito Sans,sans-serif;font-style:normal;font-size:var(--font-size-base);line-height:var(--line-height-base);color:var(--color-text);background:var(--color-background);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}}}@layer layout{@layer layout{.l-body{flex-direction:column;width:100%;min-height:100svh;display:flex}.l-header{background:linear-gradient(5deg, var(--color-header-start), var(--color-header-end));padding:var(--space-md-responsive)}.l-main{width:100%;padding:var(--space-md) var(--space-sm);flex-direction:column;align-items:center;display:flex}.l-section{margin:var(--space-lg) 0;width:100%;max-width:140rem;padding:0 var(--space-md);flex-direction:column;align-items:center;display:flex}.l-section-content{align-items:center;gap:var(--space-md);flex-direction:column;width:100%;display:flex}.l-projects__grid{gap:var(--space-md);grid-template-columns:repeat(auto-fit,minmax(20rem,1fr));justify-items:center;width:100%;display:grid}.l-skills__list{gap:var(--space-sm);flex-wrap:wrap;justify-content:center;width:100%;display:flex}@media (width<=768px){.l-section{padding:0 var(--space-sm);margin:var(--space-md) 0}.c-heading{font-size:clamp(1.25rem,5vw,2rem)}.l-projects__grid{grid-template-columns:repeat(auto-fit,minmax(15rem,1fr))}}@media (width<=480px){.l-section{padding:0 var(--space-xs)}.c-heading{font-size:clamp(1rem,6vw,1.5rem)}.l-projects__grid{gap:var(--space-sm);grid-template-columns:1fr}}}}@layer components{@layer components{.c-hero{margin:16rem 0}.c-theme-toggle{cursor:pointer;background:0 0;border:none}.c-theme__icon{aspect-ratio:1;width:2.8rem;margin:0 var(--space-lg)}.c-nav__link--animated{position:relative}.c-nav__link--animated:after{content:"";left:0;bottom:calc(var(--space-lg) * -1 + .2rem);transform-origin:100%;background:currentColor;width:100%;height:.4rem;transition:transform .25s ease-in;position:absolute;transform:scaleX(0)}.c-nav__link--animated:hover:after{transform-origin:0;transform:scaleX(1)}.c-heading{text-align:center;margin-bottom:var(--space-md);font-size:clamp(1.5rem,2.5vw,2.5rem)}.c-card{padding:var(--space-md);border-radius:var(--radius-md);background:var(--card-bg);box-shadow:var(--card-shadow)}.c-card__title{font-weight:var(--font-weight-bold)}.c-card__desc{color:var(--color-light-muted)}.c-tag{padding:var(--space-xs) var(--space-sm);border:1px solid var(--border-color);border-radius:var(--radius-sm)}.c-exp{margin-bottom:var(--space-md)}.c-skill-group__content{max-height:0;transition:max-height .3s;overflow:hidden}.c-skill-group.is-open .c-skill-group__content{max-height:200px}.c-skill-group__toggle{cursor:pointer;background:0 0;border:none;font-weight:600}.c-btn{color:var(--button-text);background:var(--button-bg)}.btn-theme-toggle{background:0 0;padding:2rem}.btn-detail-back{box-shadow:var(--shadow-lg);border-radius:.5rem;padding:1rem 4rem}.btn-border{box-shadow:var(--shadow-md);border-radius:.5rem;padding:.5rem 1rem}}}@layer utilities{@layer utilities{.u-text-center{text-align:center}.u-mb-md{margin-bottom:var(--space-md)}.u-flex{display:flex}.u-inline-flex{display:inline-flex}.u-row{flex-direction:row}.u-col{flex-direction:column}.u-row-reverse{flex-direction:row-reverse}.u-col-reverse{flex-direction:column-reverse}.u-justify-start{justify-content:flex-start}.u-justify-center{justify-content:center}.u-justify-end{justify-content:flex-end}.u-justify-between{justify-content:space-between}.u-justify-around{justify-content:space-around}.u-justify-evenly{justify-content:space-evenly}.u-items-start{align-items:flex-start}.u-items-center{align-items:center}.u-items-end{align-items:flex-end}.u-items-baseline{align-items:baseline}.u-items-stretch{align-items:stretch}.u-flex-center{justify-content:center;align-items:center;display:flex}.u-wrap{flex-wrap:wrap}.u-nowrap{flex-wrap:nowrap}.u-grow{flex-grow:1}.u-flex-none{flex:none}.u-flex-one{flex:1}.u-gap-xs{gap:.25rem}.u-gap-sm{gap:.5rem}.u-gap-md{gap:1rem}.u-gap-lg{gap:1.5rem}.u-gap-xl{gap:2rem}@media (width<=768px){.u-gap-xl{gap:1rem}}@media (width<=640px){.u-gap-xl{gap:.8rem}}@media (width<=480px){.l-section-1{flex-direction:column}}.u-grid{display:grid}.u-inline-grid{display:inline-grid}.u-grid-1{grid-template-columns:1fr}.u-grid-2{grid-template-columns:repeat(2,1fr)}.u-grid-3{grid-template-columns:repeat(3,1fr)}.u-grid-4{grid-template-columns:repeat(4,1fr)}.u-grid-5{grid-template-columns:repeat(5,1fr)}.u-grid-auto{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.u-grid-gap-xs{gap:.25rem}.u-grid-gap-sm{gap:.5rem}.u-grid-gap-md{gap:1rem}.u-grid-gap-lg{gap:1.5rem}.u-grid-gap-xl{gap:2rem}.u-grid-gap-2xl{gap:3rem}.u-grid-gap-4xl{gap:6rem}.u-grid-center{place-items:center}.u-grid-start{place-items:start}.u-grid-end{place-items:end}.u-grid-stretch{place-items:stretch stretch}.u-grid-justify-start{justify-items:start}.u-grid-justify-center{justify-items:center}.u-grid-justify-end{justify-items:end}.u-grid-justify-stretch{justify-items:stretch}.u-grid-align-start{align-items:start}.u-grid-align-center{align-items:center}.u-grid-align-end{align-items:end}.u-grid-align-stretch{align-items:stretch}.u-grid-row-1{grid-template-rows:1fr}.u-grid-row-2{grid-template-rows:repeat(2,1fr)}.u-grid-row-3{grid-template-rows:repeat(3,1fr)}.u-grid-flow-row{grid-auto-flow:row}.u-grid-flow-column{grid-auto-flow:column}.u-grid-flow-dense{grid-auto-flow:dense}.u-col-span-1{grid-column:span 1}.u-col-span-2{grid-column:span 2}.u-col-span-3{grid-column:span 3}.u-col-span-4{grid-column:span 4}.u-row-span-1{grid-row:span 1}.u-row-span-2{grid-row:span 2}.u-row-span-3{grid-row:span 3}.u-row-span-4{grid-row:span 4}.u-grid-justify-content-center{justify-content:center}.is-hidden{display:none}.is-visible{display:block}.is-active{opacity:1}.is-disabled{pointer-events:none;opacity:.5}body.is-lightbox-open{overflow:hidden}.u-animate{opacity:0;transition:opacity var(--duration-normal) var(--ease-out), transform var(--duration-normal) var(--ease-out);transform:translateY(20px)}.u-animate.is-visible{opacity:1;transform:translateY(0)}.u-fade{opacity:0;transition:opacity var(--duration-normal) var(--ease-out)}.u-fade.is-visible{opacity:1}.u-slide-up{transform:translateY(30px)}.u-slide-down{transform:translateY(-30px)}.u-slide-left{transform:translate(30px)}.u-slide-right{transform:translate(-30px)}.is-visible.u-slide-up,.is-visible.u-slide-down,.is-visible.u-slide-left,.is-visible.u-slide-right{transform:translate(0)}.u-scale{transform:scale(.95)}.is-visible.u-scale{transform:scale(1)}.u-hover-lift{transition:transform var(--duration-fast) var(--ease-standard)}.u-hover-lift:hover{transform:translateY(-4px)}.u-hover-scale:hover{transform:scale(1.05)}.u-typing-effect__heading{white-space:nowrap;font-family:Source Code Pro,monospace;font-size:clamp(1rem,3vw + 1rem,4rem)}.u-typing-effect__heading:after{content:"|";margin-left:4px;animation:1s infinite blink}.u-typing-effect__subtitle{color:#000000b3;opacity:0;font-size:2rem;font-weight:400;animation:1s 1.5s forwards fadeInUp;transform:translateY(2rem)}@keyframes blink{50%{opacity:0}}@keyframes fadeInUp{to{opacity:1;transform:translateY(0)}}}}
