:root[data-theme=light]{--bg:#efeff0;--bg-secondary:#fff;--text:#1a1a1a;--text-secondary:#666;--text-muted:#999;--accent:#2563eb;--accent-hover:#1d4ed8;--border:#e5e5e5;--border-light:#f0f0f0;--tag-bg:#f3f4f6;--tag-text:#4b5563;--title-gradient:linear-gradient(90deg,#3a5a40,#a3b18a,#dad7cd);--title2-color:#3a5a40;--pill-bg:#fff9;--pill-hover:#0000000d;--pill-active:#ffffffe6}:root[data-theme=dark]{--bg:#222;--bg-secondary:#141414;--text:#fafafa;--text-secondary:#a1a1a1;--text-muted:#737373;--accent:#60a5fa;--accent-hover:#93c5fd;--border:#262626;--border-light:#1f1f1f;--tag-bg:#1f1f1f;--tag-text:#a1a1a1;--title-gradient:linear-gradient(90deg,#5c7650,#a3b18a,#dad7cd);--title2-color:#a3b18a;--pill-bg:#0000004d;--pill-hover:#ffffff14;--pill-active:#ffffff1f}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body,html{overflow-x:hidden;width:100%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.6}.App{display:flex;flex-direction:column;min-height:100vh}.header{background-color:var(--bg);border-bottom:1px solid var(--border);justify-content:space-between;margin:0 auto;max-width:1200px;padding:1rem 2rem;position:-webkit-sticky;position:sticky;top:0;width:100%;z-index:100}.header,.header-logo{align-items:center;display:flex}.header-logo{text-decoration:none}.header-logo-img{height:32px;transition:opacity .2s ease;width:auto}.header-logo:hover .header-logo-img{opacity:.7}.header-nav{gap:1rem}.header-nav,.nav-pill{align-items:center;display:flex}.nav-pill{background-color:var(--pill-bg);border:1px solid var(--border);border-radius:999px;gap:.25rem;padding:.5rem}.nav-pill a{border-radius:999px;color:var(--text-secondary);font-size:.98rem;padding:.5rem 1rem;text-decoration:none;transition:all .2s ease}.nav-pill a:hover{background-color:var(--pill-hover);color:var(--text)}.nav-pill a.active{background-color:var(--pill-active);color:var(--text)}.nav-pill .theme-toggle{border-left:1px solid var(--border);border-radius:0 999px 999px 0;margin-left:.25rem;padding:.5rem .75rem}.mobile-menu-toggle{background:none;border:none;cursor:pointer;display:none;padding:.5rem}.hamburger{display:flex;flex-direction:column;gap:4px;width:20px}.hamburger span{background-color:var(--text);display:block;height:2px;transition:all .3s ease;width:100%}.hamburger--open span:first-child{transform:rotate(45deg) translate(4px,4px)}.hamburger--open span:nth-child(2){opacity:0}.hamburger--open span:nth-child(3){transform:rotate(-45deg) translate(4px,-4px)}.theme-toggle{align-items:center;background:none;border:none;border-radius:999px;color:var(--text-secondary);cursor:pointer;display:flex;justify-content:center;padding:.5rem;transition:all .2s ease}.theme-toggle:hover{background-color:var(--pill-hover);color:var(--text)}.theme-toggle svg{height:18px;width:18px}main{flex:1 1;margin:0 auto;max-width:1000px;padding:3rem 1.5rem;width:100%}.scroll-reveal{opacity:0;transform:translateY(30px);transition:opacity .6s ease-out,transform .6s ease-out}.scroll-reveal.revealed{opacity:1;transform:translateY(0)}.scroll-reveal.stagger-1{transition-delay:0ms}.scroll-reveal.stagger-2{transition-delay:80ms}.scroll-reveal.stagger-3{transition-delay:.16s}.scroll-reveal.stagger-4{transition-delay:.24s}.scroll-reveal.stagger-5{transition-delay:.32s}.scroll-reveal.stagger-6{transition-delay:.4s}.scroll-reveal.stagger-7{transition-delay:.48s}.scroll-reveal.stagger-8{transition-delay:.56s}.loading-state{align-items:center;color:var(--text-muted);display:flex;justify-content:center;min-height:50vh}.home-page{padding-top:2rem}.intro-section{margin-bottom:7.5rem;margin-top:5rem;text-align:center}.intro-greeting{-webkit-background-clip:text;background-clip:text;background-image:var(--title-gradient);color:#0000;font-size:7.8rem;font-weight:700;letter-spacing:-.03em;line-height:1.2;margin:0 0 1.5rem}.intro-text{color:var(--text-secondary);font-size:1.3rem;margin:0 0 1.5rem}.intro-highlights{list-style:none;margin:0 0 1.5rem;padding:0}.intro-highlights li{color:var(--text-secondary);margin-bottom:.5rem;padding-left:1.5rem;position:relative}.intro-highlights li:before{color:var(--accent);content:"•";left:0;position:absolute}.intro-links{align-items:center;display:flex;gap:.5rem}.intro-links a{color:var(--text-secondary);text-decoration:none;transition:color .2s ease}.intro-links a:hover{color:var(--accent)}.link-separator{color:var(--text-muted)}.timeline-section{border-top:1px solid var(--border);padding-top:3rem}.section-title{color:var(--title2-color);font-size:1.8rem;font-weight:600;letter-spacing:-.02em;margin:0 0 2rem}.timeline{display:flex;flex-direction:column;gap:2rem;padding-left:2rem;position:relative}.timeline:before{background:linear-gradient(180deg,#3a5a40,#a3b18a);border-radius:2px;bottom:.5rem;content:"";left:4px;position:absolute;top:.5rem;width:3px;z-index:0}.timeline-item{padding-bottom:0;position:relative}.timeline-item:before{background-color:#3a5a40;border-radius:50%;box-shadow:0 0 0 3px var(--bg);content:"";height:10px;left:-2rem;position:absolute;top:.5rem;transform:translateX(.5px);width:10px;z-index:1}.timeline-year{color:var(--text);font-size:1.5rem;font-weight:600;margin:0 0 1rem}.timeline-highlights{list-style-type:disc;margin:0;padding-left:1.25rem}.timeline-highlights li{color:var(--text-secondary);font-size:.95rem;line-height:1.7;margin-bottom:.75rem}.timeline-highlights li:last-child{margin-bottom:0}.view-more-link{color:var(--accent);display:inline-block;font-size:.9rem;margin-top:1.5rem;text-decoration:none;transition:color .2s ease}.view-more-link:hover{color:var(--accent-hover)}.about-page{padding-top:2rem}.about-hero{grid-gap:3rem;align-items:start;display:grid;gap:3rem;grid-template-columns:1fr 320px;margin-bottom:4rem}.about-polaroids{height:100%;min-height:400px;position:relative;width:340px}.polaroid{background:#fff;box-shadow:0 4px 6px #0000001a,0 1px 3px #00000014;padding:8px 8px 15px;position:absolute;transform:rotate(0deg);transform:rotate(var(--rotation,0deg));transition:transform .3s ease,box-shadow .3s ease,z-index 0s;width:140px}.polaroid:first-child{left:20px;top:0;z-index:4}.polaroid:nth-child(2){right:0;top:100px;z-index:3}.polaroid:nth-child(3){left:10px;top:250px;z-index:2}.polaroid:nth-child(4){right:10px;top:330px;z-index:1}.polaroid:hover{box-shadow:0 10px 20px #00000026,0 3px 6px #0000001a;transform:rotate(0deg) scale(1.05);z-index:10}.polaroid-image{aspect-ratio:1;background:#f5f5f5;overflow:hidden;width:100%}.polaroid-image img{height:100%;object-fit:cover;width:100%}.polaroid-caption{color:#5a4a3a;font-family:Georgia,serif;font-size:.75rem;font-style:italic;letter-spacing:.02em;margin:8px 0 0;text-align:center}.about-content h1{-webkit-background-clip:text;background-clip:text;background-image:var(--title-gradient);color:#0000;font-size:2.5rem;font-weight:700;letter-spacing:-.02em;line-height:1.2;margin:0 0 1.5rem}.about-bio{color:var(--text-secondary);font-size:.95rem;line-height:1.7;margin:0 0 1rem}.about-bio-list{list-style:none;margin:0 0 1.5rem;padding:0}.about-bio-list li{color:var(--text-secondary);font-size:.95rem;line-height:1.6;margin-bottom:.5rem;padding-left:1.5rem;position:relative}.about-bio-list li:before{color:var(--title2-color);content:"•";font-weight:700;left:0;position:absolute}.about-photo{position:-webkit-sticky;position:sticky;top:120px}.about-photo img{border-radius:8px;filter:grayscale(10%);width:100%}.education-section,.experience-section{border-top:1px solid var(--border);margin-bottom:3rem;padding-top:3rem}.experience-list{display:flex;flex-direction:column;gap:2rem;overflow:visible;padding-left:2rem;position:relative}.education-list{display:flex;flex-direction:row;gap:0}.experience-list:before{background:linear-gradient(180deg,#3a5a40,#a3b18a);border-radius:2px;bottom:.5rem;content:"";left:4px;position:absolute;top:.5rem;width:3px;z-index:0}.experience-item{border-bottom:1px solid var(--border-light);padding-bottom:2rem;position:relative}.education-item{flex:1 1;padding:0 2rem}.education-item:first-child{border-right:2px solid var(--border);padding-left:0}.education-item:last-child{padding-right:0}.experience-item:before{background-color:#3a5a40;border-radius:50%;box-shadow:0 0 0 3px var(--bg);content:"";height:10px;left:-2rem;position:absolute;top:.5rem;transform:translateX(.5px);width:10px;z-index:1}.experience-item:last-child{border-bottom:none;padding-bottom:0}.experience-header{align-items:flex-start;display:flex;gap:1rem;justify-content:space-between;margin-bottom:.75rem}.education-header{display:flex;flex-direction:column;gap:.25rem;margin-bottom:.5rem}.education-degree h3,.experience-role h3{color:var(--text);font-size:1rem;font-weight:600;margin:0}.education-school,.experience-company{color:var(--text-secondary);font-size:.9rem}.experience-date{white-space:nowrap}.education-date,.experience-date{color:var(--text-muted);font-size:.85rem}.experience-description{color:var(--text-secondary);font-size:.9rem;line-height:1.6;margin:0 0 1rem}.education-gpa{color:var(--text-muted);font-size:.85rem;margin:0}.experience-tags,.project-tags{display:flex;flex-wrap:wrap;gap:.5rem}.tag{background-color:var(--tag-bg);border-radius:4px;color:var(--tag-text);font-size:.75rem;padding:.25rem .6rem}.projects-page{padding-top:2rem}.projects-page h1{-webkit-background-clip:text;background-clip:text;background-image:var(--title-gradient);color:#0000;font-size:2.5rem;font-weight:700;letter-spacing:-.02em;line-height:1.2;margin:0 0 .5rem}.projects-intro{color:var(--text-secondary);margin:0 0 3rem}.projects-list{display:flex;flex-direction:column;gap:3rem}.project-item{grid-gap:2rem;border-bottom:1px solid var(--border-light);display:grid;gap:2rem;grid-template-columns:200px 1fr;padding-bottom:3rem}.project-item:last-child{border-bottom:none}.project-image{aspect-ratio:16/10;background-color:var(--bg-secondary);border-radius:6px;overflow:hidden}.project-image img{height:100%;object-fit:cover;transition:transform .3s ease;width:100%}.project-item:hover .project-image img{transform:scale(1.03)}.project-image-placeholder{align-items:center;color:var(--text-muted);display:flex;height:100%;justify-content:center;width:100%}.project-content{display:flex;flex-direction:column}.project-header{align-items:flex-start;display:flex;gap:1rem;justify-content:space-between;margin-bottom:.5rem}.project-header h2{color:var(--text);font-size:1.1rem;font-weight:600;margin:0}.project-categories{display:flex;gap:.5rem}.category{background-color:var(--accent);border-radius:3px;color:#fff;font-size:.7rem;letter-spacing:.02em;padding:.2rem .5rem;text-transform:uppercase}.project-description{color:var(--text-secondary);font-size:.9rem;line-height:1.6;margin:0 0 1rem}.project-link{color:var(--accent);font-size:.9rem;margin-top:auto;text-decoration:none;transition:color .2s ease}.project-link:hover{color:var(--accent-hover)}.art-page{margin:0 auto;max-width:1200px;min-height:calc(100vh - 200px);padding:6rem 2rem 4rem}.art-hero{margin-bottom:3rem}.art-hero h1{-webkit-background-clip:text;background-clip:text;background-image:var(--title-gradient);color:#0000;display:inline-block;font-size:2.5rem;font-weight:600;margin:0 0 1rem}.art-intro{color:var(--text-secondary);font-size:1rem;line-height:1.6;max-width:600px}.art-gallery{column-count:3;column-gap:1.5rem}.art-item{border-radius:4px;break-inside:avoid;cursor:pointer;margin-bottom:1.5rem;overflow:hidden;page-break-inside:avoid;position:relative}.art-item img{display:block;height:auto;width:100%}.art-item-overlay{background:linear-gradient(0deg,#000000b3 0,#0000);bottom:0;left:0;opacity:0;padding:2rem 1.25rem 1.25rem;position:absolute;right:0;transition:opacity .3s ease}.art-item:focus .art-item-overlay,.art-item:hover .art-item-overlay{opacity:1}.art-item-title{color:#fff;font-size:1rem;font-weight:500}.art-modal-backdrop{align-items:center;background-color:var(--bg);bottom:0;display:flex;justify-content:center;left:0;padding:2rem;position:fixed;right:0;top:0;z-index:9999}.art-modal-content{align-items:center;display:flex;gap:3rem;margin:0 auto;max-height:80vh;max-width:1100px}.art-modal-image-container{align-items:center;display:flex;flex:1 1;justify-content:center;min-width:0}.art-modal-image{border-radius:4px;max-height:75vh;max-width:100%;object-fit:contain}.art-modal-info{flex:0 0 220px;text-align:left}.art-modal-info h2{color:var(--title2-color);font-size:1.75rem;font-weight:600;margin:0 0 .75rem}.art-modal-info p{color:var(--text);font-size:1rem;line-height:1.6;margin:0}.art-modal-close{background:none;border:none;color:var(--text);cursor:pointer;font-size:2rem;line-height:1;opacity:.6;padding:.5rem;position:absolute;right:1.5rem;top:1.5rem;transition:opacity .2s ease;z-index:10000}.art-modal-close:hover{opacity:1}.art-modal-expand{background:none;border:none;color:var(--text);cursor:pointer;left:1.5rem;opacity:.6;padding:.5rem;position:absolute;top:1.5rem;transition:opacity .2s ease;z-index:10000}.art-modal-expand:hover{opacity:1}.art-modal-nav{background:none;border:none;color:var(--text);cursor:pointer;opacity:.5;padding:1rem;position:absolute;top:50%;transform:translateY(-50%);transition:opacity .2s ease}.art-modal-nav:hover{opacity:1}.art-modal-prev{left:1rem}.art-modal-next{right:1rem}.art-expanded-backdrop{align-items:center;background-color:var(--bg);bottom:0;display:flex;justify-content:center;left:0;padding:2rem;position:fixed;right:0;top:0;z-index:10001}.art-expanded-backdrop .art-modal-close{color:var(--text)}.art-expanded-image{max-height:95vh;max-width:95vw;object-fit:contain}.footer{border-top:1px solid var(--border);margin-top:auto;padding:2rem;text-align:center}.footer-links{gap:1.5rem;justify-content:center;margin-bottom:1rem}.footer-links,.footer-links a{align-items:center;display:flex}.footer-links a{color:var(--text-secondary);text-decoration:none;transition:color .2s ease}.footer-links a svg{height:20px;width:20px}.footer-links a:hover{color:var(--accent)}.footer-copyright{color:var(--text-muted);font-size:.8rem;margin:0}@media (max-width:768px){.header{padding:1rem 1.5rem}.mobile-menu-toggle{display:flex}.header-nav{background-color:var(--bg);border-bottom:1px solid var(--border);display:none;flex-direction:column;gap:1rem;left:0;padding:1rem 1.5rem;position:absolute;right:0;top:100%}.header-nav--open{display:flex}.nav-pill{border-radius:12px;flex-direction:column;width:100%}.nav-pill a{border-radius:8px;text-align:center;width:100%}.nav-pill .theme-toggle{border-left:none;border-radius:0 0 8px 8px;border-top:1px solid var(--border);margin-left:0;margin-top:.25rem;padding:.75rem;width:100%}main{padding:2rem 1.25rem}.intro-greeting{font-size:2.5rem}.intro-text{font-size:1.1rem}.about-hero{gap:2rem;grid-template-columns:1fr}.about-polaroids{display:flex;flex-wrap:wrap;gap:1rem;height:auto;justify-content:center;margin-bottom:2rem;min-height:200px;order:-1;position:relative;width:100%}.polaroid{position:static;width:120px}.polaroid:first-child,.polaroid:nth-child(2),.polaroid:nth-child(3),.polaroid:nth-child(4){left:auto;right:auto;top:auto}.about-photo{max-width:200px;order:-1;position:static}.timeline{padding-left:1.5rem}.timeline-item:before{left:-1.5rem}.timeline-year{font-size:1.25rem}.experience-header{flex-direction:column;gap:.25rem}.education-list{flex-direction:column;gap:2rem}.education-item{padding:0}.education-item:first-child{border-bottom:1px solid var(--border);border-right:none;padding-bottom:2rem}.project-item{gap:1rem;grid-template-columns:1fr}.project-image{aspect-ratio:16/9;max-width:100%}.project-header{flex-direction:column;gap:.5rem}.art-page{padding:5rem 1.5rem 3rem}.art-gallery{column-count:2;column-gap:1rem}.art-item{margin-bottom:1rem}.art-modal-content{flex-direction:column;gap:1.5rem;max-height:none;overflow-y:auto}.art-modal-image{max-height:50vh}.art-modal-info{flex:none;padding-bottom:2rem;text-align:left;width:100%}.art-modal-nav{bottom:1rem;top:auto;transform:none}.art-modal-prev{left:2rem}.art-modal-next{right:2rem}}@media (max-width:480px){.header{padding:1rem}main{padding:1.5rem .75rem}.intro-greeting{font-size:2rem}.footer-links{flex-direction:row;gap:1.25rem}.art-hero h1{font-size:2rem}.art-modal-info h2{font-size:1.5rem}.art-gallery{column-count:2;column-gap:.75rem}.art-item{margin-bottom:.75rem}.art-item-overlay{padding:.75rem}.art-item-title{font-size:.85rem}}
/*# sourceMappingURL=main.c45100f5.css.map*/