.transition{position:fixed;top:0;left:0;width:100vw;height:100vh;height:100dvh;z-index:100000;pointer-events:all}.transition-overlay{position:absolute;top:0;left:0;width:100%;height:100%;will-change:clip-path;clip-path:polygon(100% 100%,100% 100%,100% 100%,100% 100%);-webkit-clip-path:polygon(100% 100%,100% 100%,100% 100%,100% 100%)}.transition-overlay.overlay-1{background-color:var(--accent1);z-index:6}.transition-overlay.overlay-2{background-color:var(--accent3);z-index:5}.transition-overlay.overlay-3{background-color:var(--accent2);z-index:4}.transition-overlay.overlay-4{background-color:var(--accent4);z-index:3}.transition-overlay.overlay-5{background-color:var(--fg);z-index:2}.transition-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:10;text-align:center;color:var(--bg);width:100%;pointer-events:none}.transition-text h1{font-family:rader;font-size:5rem;color:#141414;margin-bottom:1rem;font-style:italic;text-transform:uppercase;opacity:0;transform:translateY(20px)}.transition-text p{font-family:formula-narrow;font-size:1rem;color:#333;opacity:.8}@font-face{font-family:rader;src:url(/fonts/rader/PPRader-Bold.ttf) format("truetype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:rader;src:url(/fonts/rader/PPRader-BoldItalic.ttf) format("truetype");font-weight:700;font-style:italic;font-display:swap}@font-face{font-family:rader;src:url(/fonts/rader/PPRader-Medium.ttf) format("truetype");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:rader;src:url(/fonts/rader/PPRader-MediumItalic.ttf) format("truetype");font-weight:500;font-style:italic;font-display:swap}@font-face{font-family:rader;src:url(/fonts/rader/PPRader-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:rader;src:url(/fonts/rader/PPRader-Italic.ttf) format("truetype");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:rader;src:url(/fonts/rader/PPRader-Thin.ttf) format("truetype");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:rader;src:url(/fonts/rader/PPRader-ThinItalic.ttf) format("truetype");font-weight:300;font-style:italic;font-display:swap}@font-face{font-family:rader;src:url(/fonts/rader/PPRader-Hairline.ttf) format("truetype");font-weight:100;font-style:normal;font-display:swap}@font-face{font-family:rader;src:url(/fonts/rader/PPRader-HairlineItalic.ttf) format("truetype");font-weight:100;font-style:italic;font-display:swap}@font-face{font-family:formula-condensed;src:url(/fonts/formula/PPFormula-CondensedBlack.ttf) format("truetype");font-weight:900;font-style:normal;font-display:swap}@font-face{font-family:formula-condensed;src:url(/fonts/formula/PPFormula-CondensedLight.ttf) format("truetype");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:formula-condensed;src:url(/fonts/formula/PPFormula-CondensedItalic.ttf) format("truetype");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:formula-condensed;src:url(/fonts/formula/PPFormula-CondensedRegular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:formula-extended;src:url(/fonts/formula/PPFormula-ExtendedBold.ttf) format("truetype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:formula-extended;src:url(/fonts/formula/PPFormula-ExtendedLight.ttf) format("truetype");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:formula-extended;src:url(/fonts/formula/PPFormula-ExtendedItalic.ttf) format("truetype");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:formula-extended;src:url(/fonts/formula/PPFormula-ExtendedMedium.ttf) format("truetype");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:formula;src:url(/fonts/formula/PPFormula-Extrabold.ttf) format("truetype");font-weight:800;font-style:normal;font-display:swap}@font-face{font-family:formula;src:url(/fonts/formula/PPFormula-ExtraboldItalic.ttf) format("truetype");font-weight:800;font-style:italic;font-display:swap}@font-face{font-family:formula;src:url(/fonts/formula/PPFormula-Light.ttf) format("truetype");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:formula;src:url(/fonts/formula/PPFormula-Medium.ttf) format("truetype");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:formula;src:url(/fonts/formula/PPFormula-MediumItalic.ttf) format("truetype");font-weight:500;font-style:italic;font-display:swap}@font-face{font-family:formula-narrow;src:url(/fonts/formula/PPFormula-NarrowBold.ttf) format("truetype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:formula-narrow;src:url(/fonts/formula/PPFormula-NarrowBoldItalic.ttf) format("truetype");font-weight:700;font-style:italic;font-display:swap}@font-face{font-family:formula-narrow;src:url(/fonts/formula/PPFormula-NarrowRegular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:formula-narrow;src:url(/fonts/formula/PPFormula-NarrowSemibold.ttf) format("truetype");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:formula;src:url(/fonts/formula/PPFormula-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:formula;src:url(/fonts/formula/PPFormula-RegularItalic.ttf) format("truetype");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:formula-semicondensed;src:url(/fonts/formula/PPFormula-SemiCondensedLight.ttf) format("truetype");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:formula-semicondensed;src:url(/fonts/formula/PPFormula-SemiCondensedItalic.ttf) format("truetype");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:formula-semicondensed;src:url(/fonts/formula/PPFormula-SemiCondensedMedium.ttf) format("truetype");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:formula-semicondensed;src:url(/fonts/formula/PPFormula-SemiCondensedThin.ttf) format("truetype");font-weight:100;font-style:normal;font-display:swap}@font-face{font-family:formula-semiextended;src:url(/fonts/formula/PPFormula-SemiExtendedBold.ttf) format("truetype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:supply-mono;src:url(/fonts/supply-mono/PPSupplyMono-Bold.ttf) format("truetype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:supply-mono;src:url(/fonts/supply-mono/PPSupplyMono-Medium.ttf) format("truetype");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:supply-mono;src:url(/fonts/supply-mono/PPSupplyMono-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:supply-mono;src:url(/fonts/supply-mono/PPSupplyMono-Ultralight.ttf) format("truetype");font-weight:200;font-style:normal;font-display:swap}:root{--bg: #edf1e8;--bg2: #d7dbd2;--fg: #141414;--accent1: #ed6a5a;--accent2: #f4f1bb;--accent3: #9bc1bc;--accent4: #5d576b;--muted: #666;--nav-pill-bg: rgba(20, 20, 20, .07);--nav-pill-border: rgba(20, 20, 20, .1)}[data-theme=dark]{--bg: #0f1113;--bg2: #1c1f24;--fg: #d0cdc8;--accent1: #ed6a5a;--accent2: #f4f1bb;--accent3: #9bc1bc;--accent4: #8b83a2;--muted: #a09e9a;--nav-pill-bg: rgba(255, 255, 255, .07);--nav-pill-border: rgba(255, 255, 255, .12)}*{margin:0;padding:0;box-sizing:border-box}body{background-color:var(--bg);color:var(--fg);overflow-x:hidden}body::-webkit-scrollbar{width:0}.skip-link{position:fixed;top:1rem;left:50%;z-index:100001;transform:translate(-50%,-160%);padding:.75rem 1rem;border-radius:.4rem;background-color:var(--fg);color:var(--bg);font-family:supply-mono;font-size:.8rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;transition:transform .2s ease}.skip-link:focus{transform:translate(-50%);outline:2px solid var(--accent1);outline-offset:3px}.page-content:focus{outline:none}img{width:100%;height:100%;object-fit:cover}h1,h2,h3{text-transform:uppercase;font-family:rader;font-style:italic;line-height:.95}h1{font-size:5rem}h2{font-size:4rem}h3{font-size:2rem}a{text-decoration:none;color:var(--fg)}p,p.ss{font-family:formula-narrow;font-size:1.25rem;font-weight:400;line-height:1.8;letter-spacing:.02em}p.mn{text-transform:uppercase;font-family:supply-mono;font-size:.9rem;font-weight:500;line-height:1.125;letter-spacing:.15em;opacity:.6}.project-title{font-size:1.5rem;font-family:Supply Mono,monospace;font-style:normal;text-transform:none;line-height:normal;font-weight:700}.section-header{text-align:center;z-index:20}.section-title{font-size:4rem;font-weight:700;color:var(--fg);margin-bottom:1rem;font-family:Supply Mono,monospace}.section-subtitle{color:var(--muted);margin:0;font-family:Supply Mono,monospace}@media (max-width: 1000px){.section-title{font-size:2.5rem}}.back-to-top{position:fixed;bottom:2rem;right:2rem;z-index:1000;display:flex;align-items:center;gap:.4em;padding:.9em 1.75em;background-color:#1414128c;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#f0ede8;border:none;border-radius:2em;font-family:supply-mono;font-size:.95rem;font-weight:500;text-transform:uppercase;letter-spacing:.1em;cursor:pointer;box-shadow:0 4px 16px #00000026;opacity:0;transform:translateY(12px);pointer-events:none;transition:opacity .3s ease,transform .3s ease,background-color .2s ease}.back-to-top--visible{opacity:1;transform:translateY(0);pointer-events:auto}.back-to-top:hover{background-color:var(--accent1);color:#fff;transform:translateY(-2px);box-shadow:0 6px 20px #0003}[data-theme=dark] .back-to-top{background-color:var(--fg);color:var(--bg);backdrop-filter:none;-webkit-backdrop-filter:none}@media (max-width: 768px){.back-to-top span{display:none}.back-to-top{padding:.7em;bottom:1.5rem;right:1.5rem}}.img-fade{opacity:0;transition:opacity .4s ease}.img-fade.img-loaded{opacity:1}[data-theme=dark] .timeline-card{background-color:var(--bg2)!important;border-color:#ffffff0f!important}[data-theme=dark] .project-card-inner{background-color:#ffffff0a!important;border-color:#ffffff12!important}[data-theme=dark] .timeline-stats,[data-theme=dark] .github-cta{background-color:#ffffff08!important;border-color:#ffffff0f!important}[data-theme=dark] .demo-links-list{background-color:var(--bg2);border:1px solid rgba(255,255,255,.1)}[data-theme=dark] .demo-link-item{color:var(--fg);border-bottom-color:#ffffff12}[data-theme=dark] .projects-tag-select,[data-theme=dark] .projects-search{background:#ffffff0a;border-color:#ffffff1a;color:var(--fg)}nav{position:fixed;top:0;left:0;width:100vw;padding:2em;display:flex;justify-content:space-between;align-items:center;overflow-x:hidden;z-index:100}nav .logo{padding:.5em .65em;background-color:#1414128c;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:none}nav .logo a{color:#f0ede8;-webkit-user-select:none;user-select:none}[data-theme=dark] nav .logo{background-color:var(--fg);backdrop-filter:none;-webkit-backdrop-filter:none}[data-theme=dark] nav .logo a{color:var(--bg)}nav .menu-toggle-btn{padding:.6em .65em .65em;background-color:var(--bg2);color:var(--fg);border:1px solid rgba(0,0,0,.12);font:inherit}nav .menu-toggle-btn.menu-open{background-color:var(--fg);color:var(--bg)}nav .menu-toggle-btn .mn{display:block;text-transform:uppercase;font-family:supply-mono;font-size:.9rem;font-weight:500;line-height:1.125;letter-spacing:.15em;opacity:.6;-webkit-user-select:none;user-select:none}nav .menu-toggle-btn:focus-visible{outline:2px solid var(--accent1);outline-offset:2px}nav .logo,nav .menu-toggle-btn{border-radius:.4em;cursor:pointer}nav .menu-toggle-btn-wrapper{position:relative;display:flex;flex-direction:column;align-items:center;height:.875rem;clip-path:polygon(0 0,100% 0,100% 100%,0% 100%)}nav .nav-controls{display:flex;align-items:center;gap:.75em}nav .theme-toggle{display:inline-flex;align-items:center;gap:.6em;padding:.6em .9em;background-color:var(--bg2);color:var(--fg);border-radius:.4em;border:1px solid rgba(0,0,0,.12);cursor:pointer}nav .theme-toggle .mn{margin:0}nav .theme-toggle:focus-visible{outline:2px solid var(--accent1);outline-offset:2px}nav .theme-toggle-indicator{width:10px;height:10px;border-radius:999px;background-color:var(--fg);opacity:.4;transition:all .2s ease}nav .theme-toggle-indicator.active{opacity:1;background-color:var(--accent1)}.nav-overlay{position:fixed;top:0;left:0;width:100vw;height:100svh;background-color:var(--bg2);overflow:hidden;pointer-events:none;opacity:0;z-index:10}.nav-overlay .nav-items{position:absolute;top:47.5%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:1em}.nav-overlay .nav-items .nav-item{position:relative;transform:translateY(100%);will-change:transform;opacity:0;border-radius:.5em;background-color:var(--bg)}.nav-overlay .nav-items .nav-item p{font-size:2rem;-webkit-user-select:none;user-select:none}.nav-overlay .nav-items .nav-item.active{background-color:var(--fg)}.nav-overlay .nav-items .nav-item.active p a{color:var(--bg)}.nav-overlay .nav-items .nav-item p a{display:block;padding:.5em .5em .3em}.nav-overlay .nav-footer{position:absolute;left:0;bottom:0;width:100%;padding:2em;display:flex;justify-content:space-between;align-items:flex-end;text-align:center;gap:1.5em}.nav-overlay .nav-footer .nav-footer-item{display:flex;flex-direction:column;gap:.5em}.nav-overlay .nav-footer .nav-footer-item p{font-size:.75rem;-webkit-user-select:none;user-select:none}.nav-overlay .nav-footer .nav-footer-item .nav-footer-item-header{position:relative;transform:translateY(100%);opacity:0;display:flex;justify-content:center;gap:.75em}.nav-overlay .nav-footer .nav-footer-item .nav-footer-item-header p{background-color:var(--bg);color:var(--fg);padding:.5em .65em;border-radius:.4em;text-align:center}.nav-overlay .nav-footer .nav-footer-item .nav-footer-item-copy{position:relative;transform:translateY(100%);opacity:0;display:flex;justify-content:center;gap:.75em}.nav-overlay .nav-footer-item:nth-child(1) .nav-footer-item-header{justify-content:flex-start}.nav-overlay .nav-footer-item:nth-child(3) .nav-footer-item-header{justify-content:flex-end}.nav-overlay .nav-footer .nav-footer-item:last-child{margin-top:1em}@media (max-width: 1000px){.nav-overlay .nav-items .nav-item p{font-size:1.5rem}.nav-overlay .nav-footer{flex-direction:column;justify-content:center;align-items:center}.nav-overlay .nav-footer-item:nth-child(1) .nav-footer-item-header{justify-content:center}.nav-overlay .nav-footer-item:nth-child(2){display:none}.nav-overlay .nav-footer-item:nth-child(3) .nav-footer-item-header{justify-content:center}}footer{position:relative;width:100vw;height:400px;color:var(--bg);padding:2em;display:flex;flex-direction:column;justify-content:space-between;align-items:center;overflow:hidden}footer .footer-container{position:relative;width:100%;height:100%;background-color:var(--fg);padding:1.5em;border-radius:2em;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}footer .footer-header{position:relative;text-align:center;padding-top:1em}footer .footer-header h1{font-size:2.5rem;margin:0}footer .footer-row{display:flex;gap:1.5em;margin-bottom:1.5em;padding-top:2em}footer .footer-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:.5em}footer .footer-col p{font-size:1.2rem;margin:0}footer .footer-col a{color:var(--bg)}footer .footer-col p:not(:first-child){opacity:.35}footer .copyright-info{position:relative;width:100%;display:flex;justify-content:center;gap:2em;padding-bottom:4em}footer .copyright-info p{font-size:.85rem;margin:0}footer .footer-symbols{position:absolute;left:0;width:100%;padding:1.5em;display:flex;justify-content:space-between}footer .footer-symbols img{width:auto;height:1rem}footer .footer-symbols-1{top:0}footer .footer-symbols-2{bottom:0}footer .explosion-container{position:absolute;bottom:0;left:0;width:100%;height:200%;pointer-events:none;overflow:hidden}footer .explosion-particle-img{position:absolute;bottom:-200px;left:50%;width:150px;border-radius:1rem;height:auto;object-fit:cover;transform:translate(-50%);will-change:transform}@media (max-width: 1000px){footer{height:600px}footer .copyright-info{flex-direction:column;text-align:center;gap:.5em}footer .copyright-info p:nth-child(2){display:none}footer .footer-row{flex-direction:column;margin-bottom:2em}footer .footer-row .footer-col:nth-child(2),footer .footer-row .footer-col:nth-child(4){display:none}footer .explosion-container{display:none}}.section-nav{position:fixed;left:2em;top:50%;transform:translateY(-50%);z-index:1000;background:var(--nav-pill-bg);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--nav-pill-border);border-radius:1.5em;padding:1em 1.5em;box-shadow:0 4px 20px #00000014;width:60px;visibility:visible;opacity:1;transition:width .3s ease,opacity .3s ease,transform .45s ease,visibility 0s linear}.section-nav--blocked{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .3s ease,transform .3s ease,visibility 0s linear .3s}.section-nav--idle-hidden{transform:translate(calc(-100% - 2rem),-50%);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .3s ease,transform .45s ease,visibility 0s linear .45s}.section-nav:hover,.section-nav:has(.active){width:120px}.section-nav ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:1.5em}.section-nav li{position:relative}.section-nav button{background:none;border:none;cursor:pointer;padding:0;display:flex;align-items:center;gap:.75em;transition:all .3s ease}.section-nav .nav-dot{width:10px;height:10px;border-radius:50%;background-color:var(--fg);opacity:.3;transition:all .3s ease}.section-nav li.active .nav-dot,.section-nav button:hover .nav-dot{opacity:1;transform:scale(1.3);background-color:var(--accent1)}.section-nav .nav-label{font-family:supply-mono;font-size:.75rem;font-weight:500;text-transform:uppercase;color:var(--fg);opacity:0;transform:translate(-10px);transition:all .3s ease;white-space:nowrap;pointer-events:none}.section-nav:hover .nav-label,.section-nav li.active .nav-label,.section-nav button:hover .nav-label{opacity:1;transform:translate(0)}@media (max-width: 1000px){.section-nav{display:none}}
