:root{--bg:#f0d9a8;--text:#0a0a0a;--text-light:#333;--accent:#1a1a1a;--border:#d4d2c8;--font:"IM Fell DW Pica",serif;--space-xs:8px;--space-sm:16px;--space-md:32px;--space-lg:64px;--space-xl:128px;--transition:0.2s ease}*{box-sizing:border-box;margin:0;padding:0}body,html{background-color:var(--bg);color:var(--text);font-family:var(--font);line-height:1.6;position:relative}body:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='a'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23a)'/%3E%3C/svg%3E");background-repeat:repeat;background-size:256px 256px;content:"";height:100%;left:0;opacity:.45;pointer-events:none;position:fixed;top:0;width:100%;z-index:9}.app{display:flex;flex-direction:column;min-height:100vh}.header{align-items:center;display:flex;justify-content:space-between;padding:var(--space-md) var(--space-lg)}.logo{color:var(--text);font-size:2rem;font-weight:900;text-decoration:none;text-transform:lowercase;transition:opacity var(--transition)}.logo:hover{opacity:.6}.nav{display:flex;gap:var(--space-md)}.nav a{color:var(--text);font-size:1.25rem;font-weight:700;text-decoration:none;text-transform:lowercase;transition:opacity var(--transition)}.nav a:hover{opacity:.6}main{flex:1 1;margin:0 auto;max-width:1200px;padding:var(--space-lg);width:100%}.footer{color:var(--text-light);font-size:.875rem;padding:var(--space-md) var(--space-lg);text-align:center;text-transform:lowercase}@media (max-width:768px){.header{flex-direction:column;padding:var(--space-sm) var(--space-md)}.header,.nav{gap:var(--space-sm)}main{padding:var(--space-md)}.footer{padding:var(--space-sm) var(--space-md)}}@media (max-width:480px){.nav{flex-wrap:wrap;justify-content:center}}.home{margin:0 auto;max-width:1250px;padding:var(--space-sm);position:relative}.hero{border-bottom:2px solid var(--text);margin-bottom:var(--space-md);padding:0 0 var(--space-md) 0}.hero,.hero-content{position:relative;z-index:1}.hero h1{font-size:6rem;font-weight:400;letter-spacing:-.03em;line-height:.9;margin-bottom:var(--space-sm);text-transform:none}.letter{cursor:pointer;display:inline-block;font-weight:1000;margin:0 .05em;text-shadow:none;transition:transform .6s cubic-bezier(.34,1.56,.64,1),color 1.2s ease,text-shadow .6s ease}.letter:hover{font-weight:1000;text-shadow:1px 0 0 currentColor,-1px 0 0 currentColor,0 1px 0 currentColor,0 -1px 0 currentColor,1px 1px 0 currentColor,-1px -1px 0 currentColor,1px -1px 0 currentColor,-1px 1px 0 currentColor,2px 0 0 currentColor,-2px 0 0 currentColor,0 2px 0 currentColor,0 -2px 0 currentColor,2px 2px 0 currentColor,-2px -2px 0 currentColor,2px -2px 0 currentColor,-2px 2px 0 currentColor}.hero p{color:var(--text);font-size:1.25rem;font-style:italic;font-weight:400;text-transform:none}.section{border-top:none;isolation:isolate;margin-bottom:0;padding:var(--space-md) 0;position:relative;z-index:10}.section:first-of-type{padding-top:0}.section h2{color:var(--text-light);font-size:1rem;font-weight:400;letter-spacing:.15em;margin:0 0 var(--space-sm) 0;text-transform:uppercase}.section-content{color:var(--text);font-size:1.2rem;line-height:1.7}.section-content p{margin-bottom:var(--space-xs);text-indent:2em;text-transform:none}.section-content p:first-child{text-indent:0}.section-content p:first-child:first-letter{float:left;font-size:3rem;line-height:1;margin-right:.1em;margin-top:.05em}.section-content p:last-child{margin-bottom:0}.current-item{border-left:3px solid var(--text);margin-bottom:var(--space-sm);padding-left:var(--space-md)}.current-item:last-child{margin-bottom:0}.current-header{align-items:baseline;display:flex;gap:var(--space-sm);margin-bottom:var(--space-xs)}.current-name{font-size:1.5rem;font-style:italic;font-weight:400;text-transform:none}.external-link{color:var(--text);font-size:1rem;opacity:.6;text-decoration:none;transition:opacity var(--transition)}.external-link:hover{opacity:1}.current-description{color:var(--text);font-size:1.1rem;line-height:1.6;margin:0;text-transform:none}.skills-grid{grid-gap:var(--space-xs) var(--space-lg);display:grid;gap:var(--space-xs) var(--space-lg);grid-template-columns:repeat(2,1fr)}.skill-tag{color:var(--text);font-size:1.1rem;font-weight:400;padding-left:1.5em;position:relative;text-transform:none;transition:opacity var(--transition)}.skill-tag:before{color:var(--text-light);content:"—";left:0;position:absolute}.skill-tag:hover{opacity:.6}.work-grid{grid-gap:var(--space-sm);display:grid;gap:var(--space-sm);grid-template-columns:repeat(2,1fr)}.work-item{color:var(--text);display:block;position:relative;text-decoration:none;transition:opacity var(--transition);z-index:9999}.work-item:hover{opacity:.7}.work-item:hover .work-title{font-style:italic}.work-item img{aspect-ratio:4/5;border:1px solid var(--border);margin-bottom:var(--space-xs);object-fit:cover;position:relative;width:100%;z-index:10000}.work-info{align-items:baseline;display:flex;gap:var(--space-xs);justify-content:space-between}.work-title{flex:1 1;font-size:1rem;font-weight:400;text-transform:none;transition:font-style var(--transition)}.work-year{color:var(--text-light);font-size:.85rem;font-style:italic}.github-grid{grid-gap:var(--space-sm);display:grid;gap:var(--space-sm);grid-template-columns:repeat(2,1fr)}.github-card{background:#0000;border:1px solid var(--border);color:var(--text);display:flex;flex-direction:column;padding:var(--space-sm);text-decoration:none;transition:all .3s ease}.github-card:hover{border-color:var(--text);transform:translateY(-2px)}.github-card-header{align-items:center;display:flex;gap:var(--space-xs);justify-content:space-between;margin-bottom:var(--space-xs)}.github-repo-name{font-size:1.2rem;font-style:italic;font-weight:500}.github-language{background:var(--text);border-radius:2px;color:var(--bg);font-size:.75rem;letter-spacing:.05em;padding:.2em .6em;text-transform:uppercase}.github-language[data-lang=javascript]{background:#f7df1e;color:#000}.github-language[data-lang=typescript]{background:#3178c6;color:#fff}.github-language[data-lang=python]{background:#3776ab;color:#fff}.github-language[data-lang=html]{background:#e34c26;color:#fff}.github-language[data-lang=css]{background:#563d7c;color:#fff}.github-language[data-lang="c++"]{background:#00599c;color:#fff}.github-description{color:var(--text-light);flex-grow:1;font-size:.95rem;line-height:1.5;margin:0 0 var(--space-xs) 0;text-indent:0}.github-description:first-letter{float:none;font-size:inherit;margin:0}.github-stats{display:flex;gap:var(--space-sm)}.github-stat{align-items:center;color:var(--text-light);display:flex;font-size:.85rem;gap:.4em}.github-stat svg{opacity:.7}.loading-text{color:var(--text-light);font-style:italic}.coding-carousel{gap:var(--space-md);isolation:isolate;position:relative}.carousel-nav,.coding-carousel{align-items:center;display:flex}.carousel-nav{background:#0000;border:1px solid var(--border);border-radius:50%;color:var(--text);cursor:pointer;flex-shrink:0;justify-content:center;padding:var(--space-sm);transition:all .2s ease}.carousel-nav svg{display:block;height:24px;width:24px}.carousel-nav:hover{background:var(--text);border-color:var(--text);color:var(--bg)}.carousel-content{display:flex;flex:1 1;flex-direction:column;gap:var(--space-sm);isolation:isolate;position:relative}.carousel-media{align-items:center;aspect-ratio:16/9;background:#000;border:1px solid var(--border);border-radius:20px;display:flex;justify-content:center;overflow:hidden;position:relative;width:100%}.carousel-image,.carousel-video{display:block;height:100%;object-fit:cover;position:relative;width:100%;z-index:100}.theme-toggle{align-self:flex-start;background:#0000;border:1px solid var(--border);border-radius:20px;color:var(--text);cursor:pointer;font-family:var(--font);font-size:1rem;padding:.5em 1em;text-transform:lowercase;transition:all .2s ease}.theme-toggle:hover{background:var(--text);border-color:var(--text);color:var(--bg)}.theme-label{font-weight:400}.carousel-info{text-align:left}.carousel-title{font-size:1.8rem;font-style:italic;font-weight:400;margin:0 0 var(--space-xs) 0;text-transform:none}.project-link{color:var(--text);text-decoration:none;transition:opacity .2s ease}.project-link:hover{opacity:.7}.external-arrow{font-size:.8em;margin-left:.3em;opacity:.7}.carousel-description{color:var(--text-light);font-size:1.1rem;line-height:1.6;margin:0;text-indent:0}.carousel-description:first-letter{float:none;font-size:inherit;margin:0}@media (max-width:768px){.home{padding:var(--space-xs)}.hero{margin-bottom:var(--space-sm);padding:0 0 var(--space-sm) 0}.hero h1{font-size:4rem}.hero p{font-size:1.1rem}.section{padding:var(--space-sm) 0}.section-content{font-size:1.1rem}.section-content p:first-child:first-letter{font-size:2.5rem}.current-name{font-size:1.3rem}.skills-grid{grid-template-columns:1fr}.github-grid,.work-grid{gap:var(--space-xs);grid-template-columns:1fr}.github-repo-name{font-size:1.1rem}.coding-pill{border-radius:30px}.coding-carousel{gap:var(--space-xs)}.carousel-nav{padding:.5em}.carousel-nav svg{height:24px;width:24px}.carousel-title{font-size:2rem}.carousel-description{font-size:1.2rem}.coding-pill{border-radius:40px;padding:var(--space-md) var(--space-lg)}}@media (max-width:480px){.hero h1{font-size:3rem}.section-content{font-size:1rem}.coding-pill{border-radius:20px}.coding-carousel{gap:var(--space-xs)}.carousel-nav{padding:.5em}.carousel-nav svg{height:20px;width:20px}.carousel-title{font-size:1.8rem}.carousel-description{font-size:1.1rem}.coding-pill{border-radius:30px;padding:var(--space-sm) var(--space-md)}}.portfolio{margin:0 auto;max-width:1000px}.portfolio h1{font-size:3rem;font-weight:900;margin-bottom:var(--space-lg);text-transform:lowercase}.portfolio-grid{grid-gap:var(--space-md);display:grid;gap:var(--space-md);grid-template-columns:repeat(3,1fr)}.portfolio-item{color:var(--text);display:block;position:relative;text-decoration:none;transition:opacity var(--transition);z-index:9999}.portfolio-item:hover{opacity:.7}.portfolio-item img{aspect-ratio:1;margin-bottom:var(--space-xs);object-fit:cover;position:relative;width:100%;z-index:10000}.portfolio-info{align-items:baseline;display:flex;justify-content:space-between}.portfolio-title{font-size:1rem;font-weight:700;text-transform:lowercase}.portfolio-year{color:var(--text-light);font-size:.875rem}@media (max-width:768px){.portfolio h1{font-size:2.5rem}.portfolio-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:480px){.portfolio-grid{grid-template-columns:1fr}}.project-detail{margin:0 auto;max-width:700px;padding:var(--space-lg) 0}.back-link{color:var(--text-light);display:inline-block;font-size:1rem;font-weight:700;margin-bottom:var(--space-md);text-decoration:none;text-transform:lowercase;transition:opacity var(--transition)}.back-link:hover{opacity:.6}.project-header{margin-bottom:var(--space-lg)}.project-header h1{font-size:3rem;font-weight:900;margin:0 0 var(--space-xs);text-transform:lowercase}.project-meta{color:var(--text-light);font-size:1rem;margin:0}.project-hero{margin-bottom:var(--space-lg)}.project-hero img{display:block;width:100%}.video-wrapper{height:0;overflow:hidden;padding-bottom:56.25%;position:relative}.video-wrapper iframe{border:none;height:100%;left:0;position:absolute;top:0;width:100%}.project-description{margin-bottom:var(--space-lg)}.project-description p{font-size:1.25rem;line-height:1.7;margin:0}.project-tech{margin-bottom:var(--space-lg)}.project-tech h2{font-size:1.5rem;font-weight:900;margin-bottom:var(--space-sm);text-transform:lowercase}.tech-list{color:var(--text-light);font-size:1rem;margin:0}.project-gallery{grid-gap:var(--space-md);display:grid;gap:var(--space-md);grid-template-columns:1fr;margin-bottom:var(--space-lg)}.project-gallery img{display:block;width:100%}.project-links{display:flex;gap:var(--space-md);padding-top:var(--space-md)}.project-links a{color:var(--text);font-size:1rem;font-weight:700;text-decoration:none;text-transform:lowercase;transition:opacity var(--transition)}.project-links a:hover{opacity:.6}@media (max-width:768px){.project-header h1{font-size:2.5rem}.project-description p{font-size:1.125rem}}.contact{margin:0 auto;max-width:700px;padding:var(--space-lg) 0}.contact h1{font-size:3rem;font-weight:900;margin-bottom:var(--space-sm);text-transform:lowercase}.contact-text{color:var(--text-light);font-size:1.25rem;margin-bottom:var(--space-lg)}.contact-links{display:flex;flex-direction:column;gap:var(--space-sm)}.contact-link{color:var(--text);font-size:1.5rem;font-weight:700;text-decoration:none;text-transform:lowercase;transition:opacity var(--transition)}.contact-link:hover{opacity:.6}@media (max-width:768px){.contact h1{font-size:2.5rem}.contact-link{font-size:1.25rem}}.music{margin:0 auto;max-width:600px;padding:var(--space-md) 0;text-align:center}.music h1{font-family:var(--font);font-size:2.5rem;font-weight:400;margin-bottom:var(--space-xs)}.music h1,.music-text{text-transform:lowercase}.music-text{color:var(--text-light);font-size:1rem;margin-bottom:var(--space-lg)}.track-display{align-items:center;display:flex;gap:var(--space-sm);justify-content:center;margin-bottom:var(--space-md)}.track-name{color:var(--text);font-family:var(--font);font-size:1.25rem;font-weight:400;text-transform:lowercase}.play-button{align-items:center;background:none;border:none;color:var(--text);cursor:pointer;display:flex;flex-shrink:0;justify-content:center;padding:0}.play-button:hover{opacity:.7}.play-button:focus{outline:none}.play-button svg{height:48px;width:48px}.player-wrapper{height:0;overflow:hidden;position:absolute;width:0}.player-wrapper iframe{border:none;height:0;width:0}.music-links{align-items:center;display:flex;flex-direction:column;gap:var(--space-xs);margin-top:var(--space-md)}.music-link{color:var(--text);font-family:var(--font);font-size:1.125rem;font-weight:400;text-decoration:none;text-transform:lowercase;transition:opacity var(--transition)}.music-link:hover{opacity:.5}@media (max-width:768px){.music h1{font-size:2rem}.track-name{font-size:1.125rem}.music-link{font-size:1rem}}
/*# sourceMappingURL=main.d6ac768c.css.map*/