:root{--bg-primary:#ffffff;--bg-secondary:#f0f0f0;--text-primary:#000000;--text-secondary:#555555;--text-light:#666666;--interactive:#000000;--border:#e5e5e5;--dark-bg-primary:#000000;--dark-bg-secondary:#1a1a1a;--dark-text-primary:#ffffff;--dark-text-secondary:#aaaaaa;--dark-text-light:#888888;--dark-interactive:#ffffff;--dark-border:#333333;--font-family-primary:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--font-size-xs:0.7rem;--font-size-sm:0.8rem;--font-size-base:1rem;--font-size-lg:1.1rem;--font-size-xl:1.2rem;--font-size-2xl:1.8rem;--font-size-3xl:2.8rem;--font-size-4xl:3.5rem;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--line-height-tight:1;--line-height-base:1.6;--line-height-relaxed:1.7;--spacing-xs:5px;--spacing-sm:8px;--spacing-base:15px;--spacing-md:20px;--spacing-lg:30px;--spacing-xl:40px;--spacing-2xl:60px;--size-icon-sm:16px;--size-icon-base:18px;--size-icon-lg:40px;--size-sidebar-width:60px;--border-radius-sm:4px;--border-radius-base:6px;--transition-fast:0.2s ease;--transition-base:0.3s ease;--transition-slow:0.4s ease;--transition-slower:0.5s ease;--z-sidebar:10;--z-modal:50;--z-dropdown:100;--z-content:20;--nav-padding-horizontal:var(--spacing-md);--nav-padding-vertical:var(--spacing-md);--nav-sidebar-width:var(--size-sidebar-width);--nav-section-gap:var(--spacing-md)}body{background-color:var(--bg-primary);color:var(--text-primary)}html[data-theme=dark]{--bg-primary:var(--dark-bg-primary);--bg-secondary:var(--dark-bg-secondary);--text-primary:var(--dark-text-primary);--text-secondary:var(--dark-text-secondary);--text-light:var(--dark-text-light);--interactive:var(--dark-interactive);--border:var(--dark-border)}body,html{max-width:100vw;overflow-x:hidden}body{font-family:var(--font-family-primary);line-height:var(--line-height-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color var(--transition-base),color var(--transition-base)}*{box-sizing:border-box;padding:0;margin:0}a{color:inherit;text-decoration:none}.main-content{flex-grow:1;overflow-y:scroll;height:100dvh;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.portfolio-wrapper:has(.scrolling-nav) .main-content{margin-left:var(--size-sidebar-width)}.scroll-snap-container{scroll-snap-type:y mandatory;scroll-behavior:smooth;-webkit-overflow-scrolling:touch}.scroll-snap-align-start{scroll-snap-align:start;min-height:100dvh;display:flex;flex-direction:column;justify-content:center;box-sizing:border-box;padding:var(--spacing-xl)}.transition-colors{transition:color var(--transition-base)}.transition-all{transition:all var(--transition-base)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.main-content::-webkit-scrollbar,body::-webkit-scrollbar{display:none}.main-content,body{-ms-overflow-style:none;scrollbar-width:none}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.6;transition:background .4s ease-in-out;overflow:hidden}.portfolio-wrapper{display:flex;height:100dvh;overflow:hidden}.main-content.scroll-snap-container{flex-grow:1;overflow-y:scroll;height:100vh;scroll-snap-type:y mandatory;scroll-behavior:smooth;-webkit-overflow-scrolling:touch}.hero-section{align-items:flex-start}.hero-section h1{font-size:3.5em;margin:0}.hero-subtitle{font-size:1.2em;margin-top:10px}#projects-list-container{padding:0}.project-item{opacity:.7;transition:opacity .4s ease;width:100%;min-height:100vh;background:transparent}.project-item,.project-link-wrapper{display:flex;justify-content:center;align-items:center}.project-link-wrapper{flex-direction:column;gap:20px;text-decoration:none;text-align:center}.project-item .project-icon{width:40px;height:40px;color:#555;transition:color .3s ease}.project-item .project-name{font-size:2em;font-weight:500;color:#444;transition:color .3s ease}@media (hover:hover) and (pointer:fine){.project-item:hover .project-icon,.project-item:hover .project-name{color:#000}}.project-item.is-visible{opacity:1}.project-detail-page{max-width:900px;margin:0 auto;padding:40px;height:auto;min-height:100vh;overflow-y:auto}.main-content:not(.scroll-snap-container) .project-detail-page{scroll-snap-type:none}.project-detail-header{margin-bottom:40px;padding-bottom:20px;border-bottom:1px solid #ddd}.project-detail-header .back-link{display:inline-flex;align-items:center;gap:8px;text-decoration:none;color:#555;margin-bottom:20px;font-size:.9em;transition:color .3s ease}.project-detail-header .back-link:hover{color:#000}.project-title-icon{display:flex;align-items:center;gap:15px;margin-bottom:5px}.project-main-icon{color:#333}.project-detail-header h1{font-size:2.8em;margin:0;color:#333}.project-year{font-size:1em;color:#777}.project-content h2{font-size:1.8em;margin-top:30px;margin-bottom:15px;color:#333}.project-content p{font-size:1.1em;line-height:1.7;color:#444;margin-bottom:15px}.project-meta{margin-bottom:30px}.project-meta h3{font-size:1.2em;color:#555;margin-bottom:8px}.tech-list{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:8px}.tech-list li{background-color:#eee;padding:5px 10px;border-radius:4px;font-size:.9em;color:#555}html[data-theme=dark] .hero-section h1,html[data-theme=dark] body{color:#f0f0f0}html[data-theme=dark] .hero-subtitle{color:#aaa}html[data-theme=dark] .project-item .project-icon{color:#bbb}html[data-theme=dark] .project-item .project-name{color:#ccc}@media (hover:hover) and (pointer:fine){html[data-theme=dark] .project-item:hover .project-icon,html[data-theme=dark] .project-item:hover .project-name{color:#fff}}html[data-theme=dark] .project-detail-header{border-bottom-color:#444}html[data-theme=dark] .project-detail-header .back-link{color:#bbb}html[data-theme=dark] .project-detail-header .back-link:hover{color:#fff}html[data-theme=dark] .project-year{color:#aaa}html[data-theme=dark] .project-content p{color:#ccc}html[data-theme=dark] .project-meta h3{color:#bbb}html[data-theme=dark] .tech-list li{background-color:#333;color:#ccc}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/55c55f0601d81cf3-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/26a46d62cd723877-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/97e0cb1ae144a2a9-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/581909926a08bbc8-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/df0a9ae256c0569c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/8e9860b6e62d6359-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/e4af272ccee01ff0-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Inter Fallback;src:local("Arial");ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.00%;size-adjust:107.12%}.__className_e8ce0c{font-family:Inter,Inter Fallback;font-style:normal}