:root{--cream: #F5F1E8;--warm-white: #FFF9F0;--sand: #E8DCC4;--terracotta: #D67854;--rust: #A64B2A;--olive: #8B9556;--sage: #B5BFA0;--charcoal: #2C2C2C;--ink: #1A1A1A;--coffee: #6B5449;--font-display: "DM Serif Display", serif;--font-body: "Karla", sans-serif;--font-mono: "Courier Prime", monospace;--section-padding: 45px 60px;--container-max: 1600px;--transition: all .4s ease}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:60px}body{font-family:var(--font-body);background-color:var(--cream);color:var(--charcoal);line-height:1.7;overflow-x:hidden;position:relative}body:before{content:"";position:fixed;top:0;left:0;width:100%;height:100%;background-image:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,.03) 2px,rgba(0,0,0,.03) 4px),repeating-linear-gradient(90deg,transparent,transparent 2px,rgba(0,0,0,.03) 2px,rgba(0,0,0,.03) 4px);pointer-events:none;z-index:9999;opacity:.4;animation:grain 8s steps(10) infinite}@keyframes grain{0%,to{transform:translate(0)}10%{transform:translate(-5%,-10%)}20%{transform:translate(-15%,5%)}30%{transform:translate(7%,-25%)}40%{transform:translate(-5%,25%)}50%{transform:translate(-15%,10%)}60%{transform:translate(15%)}70%{transform:translateY(15%)}80%{transform:translate(3%,35%)}90%{transform:translate(-10%,10%)}}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:400;line-height:1.1;letter-spacing:-.02em}h1{font-size:clamp(3rem,10vw,7rem);margin-bottom:1rem;font-style:italic}h2{font-size:clamp(1.8rem,4vw,3rem);margin-bottom:1.5rem}h3{font-size:clamp(1.5rem,3vw,2.5rem);margin-bottom:1rem}a{text-decoration:none;color:inherit;transition:var(--transition)}button{font-family:var(--font-body);cursor:pointer;border:none;transition:var(--transition)}.section{padding:var(--section-padding);position:relative}.container{max-width:var(--container-max);margin:0 auto;padding:0 60px}@media(max-width:1024px){.container{padding:0 40px}}@media(max-width:768px){.container{padding:0 24px}}@media(max-width:480px){.container{padding:0 20px}}.underline-effect{position:relative;display:inline-block}.underline-effect:after{content:"";position:absolute;bottom:-5px;left:-5px;right:-5px;height:8px;background:var(--terracotta);opacity:.3;transform:rotate(-.5deg);z-index:-1}.accent-terracotta{color:var(--terracotta)}.accent-olive{color:var(--olive)}.accent-rust{color:var(--rust)}.text-center{text-align:center}.mb-2{margin-bottom:2rem}.mb-4{margin-bottom:4rem}@media(max-width:1024px){:root{--section-padding: 80px 40px}}@media(max-width:768px){:root{--section-padding: 60px 24px}}@media(max-width:480px){:root{--section-padding: 40px 20px}}.loading-screen{position:fixed;top:0;left:0;width:100%;height:100vh;z-index:10000;display:flex;align-items:center;justify-content:center;pointer-events:none;transform:translateY(0);transition:transform .8s cubic-bezier(.76,0,.24,1)}.loading-screen.exiting{transform:translateY(-100%)}.loading-background{position:absolute;inset:0;background:var(--cream);z-index:0}.loading-content{position:relative;z-index:1;text-align:center}.loading-text{font-family:var(--font-mono);font-size:clamp(1.5rem,4vw,2rem);color:var(--coffee);letter-spacing:.1em;text-transform:uppercase;display:flex;justify-content:center;align-items:center;gap:.1em}.typed-text{display:inline-block;white-space:nowrap}.cursor{display:inline-block;color:var(--terracotta);animation:blink .8s step-end infinite;margin-left:.1em}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}@media(max-width:768px){.loading-text{font-size:clamp(1.2rem,5vw,1.8rem)}}.navbar{position:fixed;top:0;right:0;z-index:100;padding:1.5rem 2rem}.nav-links{display:flex;gap:2rem}.nav-links a{color:var(--coffee);font-size:.9rem;font-weight:600;transition:var(--transition);text-decoration:none}.nav-links a:hover{color:var(--terracotta)}@media(max-width:480px){.navbar{padding:1rem}.nav-links{gap:1rem}.nav-links a{font-size:.8rem}}.hero{display:flex;align-items:center;justify-content:center;position:relative;background:var(--warm-white);overflow:hidden;min-height:100vh}.hero-container{position:relative;z-index:1;width:100%}.hero-content{display:flex;flex-direction:row;align-items:center;justify-content:center;text-align:center;gap:3rem;width:100%;padding:0 80px}.hero-text{animation:fadeInUp .8s ease-out .3s both}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.hero-greeting{font-family:var(--font-mono);font-size:1rem;color:var(--coffee);margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.15em;font-weight:600}.hero-name{margin-bottom:1.5rem;line-height:.95}.hero-description{font-size:1.1rem;color:var(--coffee);line-height:1.8;margin-bottom:1.5rem;max-width:550px;margin-left:auto;margin-right:auto}.hero-email{font-family:var(--font-mono);font-size:.95rem;color:var(--terracotta);font-weight:600;margin-bottom:2rem;letter-spacing:.02em}.hero-cta{display:flex;gap:1.5rem;margin-bottom:3rem;flex-wrap:wrap;justify-content:center}.btn{padding:.9rem 2rem;font-weight:600;font-size:1rem;transition:var(--transition);display:inline-block;border:2px solid transparent;position:relative}.btn-primary{background:var(--charcoal);color:var(--cream);border-color:var(--charcoal)}.btn-primary:before{content:"";position:absolute;inset:0;background:var(--terracotta);transform:scaleX(0);transform-origin:right;transition:transform .4s ease;z-index:-1}.btn-primary:hover:before{transform:scaleX(1);transform-origin:left}.btn-primary:hover{border-color:var(--terracotta)}.btn-secondary{background:transparent;border:2px solid var(--charcoal);color:var(--charcoal)}.btn-secondary:hover{background:var(--charcoal);color:var(--cream)}.social-links{display:flex;gap:1rem;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:.9rem}.social-link{color:var(--charcoal);font-weight:600;position:relative;transition:var(--transition)}.social-link:after{content:"";position:absolute;bottom:-2px;left:0;width:0;height:2px;background:var(--terracotta);transition:width .3s ease}.social-link:hover{color:var(--terracotta)}.social-link:hover:after{width:100%}.divider{color:var(--sand);font-size:1.2rem}.hero-image{max-width:300px;flex-shrink:0}.hero-image img{width:100%;height:auto;display:block}@media(max-width:1024px){.hero-content{padding:0 40px}.hero-description{font-size:1rem}}@media(max-width:768px){.hero-content{flex-direction:column;padding:0 24px}.hero-image{max-width:250px}}@media(max-width:480px){.hero-greeting{font-size:.9rem}.hero-cta{flex-direction:column;gap:1rem}.btn{width:100%;text-align:center}}#creative{min-height:100vh;padding:var(--section-padding)}#creative .section-header{margin-bottom:2.5rem}.current-columns{display:grid;grid-template-columns:repeat(3,1fr);gap:3rem}.current-heading{font-size:1.1rem;font-weight:700;color:var(--ink);margin-bottom:1.5rem}.current-list{margin:0;padding:0;padding-left:1.25rem;display:flex;flex-direction:column;gap:1rem}.current-list li{color:var(--coffee);line-height:1.6;font-size:.95rem}.current-list li strong{color:var(--ink);font-weight:700}.current-link{display:inline-block;margin-top:1rem;color:var(--terracotta);font-weight:600;font-size:.9rem;font-family:var(--font-mono);transition:var(--transition)}.current-link:hover{color:var(--rust)}@media(max-width:1024px){.current-columns{grid-template-columns:repeat(2,1fr);gap:2.5rem}}@media(max-width:768px){.current-columns{grid-template-columns:1fr;gap:2.5rem}}.section{background:var(--cream)}.section-header{text-align:center;margin-bottom:4rem}.section-header h2{position:relative;display:inline-block}.section-subtitle{font-size:1.1rem;color:var(--coffee);max-width:600px;margin:0 auto;font-weight:500}.projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(450px,1fr));gap:2.5rem}.project-card{background:var(--warm-white);border:2px solid var(--sand);padding:2.5rem;position:relative;overflow:hidden;transition:var(--transition)}.project-card:before{content:"";position:absolute;top:0;left:0;width:100%;height:4px;background:var(--terracotta);transform:scaleX(0);transform-origin:left;transition:transform .5s ease}.project-card:after{content:"";position:absolute;bottom:0;right:0;width:60px;height:60px;border-right:3px solid var(--rust);border-bottom:3px solid var(--rust);opacity:0;transition:opacity .3s ease}.project-card:hover{transform:translateY(-5px);border-color:var(--terracotta);box-shadow:8px 8px 0 var(--sand)}.project-card:hover:before{transform:scaleX(1)}.project-card:hover:after{opacity:.3}.project-number{font-size:5rem;font-weight:400;font-family:var(--font-display);font-style:italic;color:var(--sand);position:absolute;top:.5rem;right:1.5rem;line-height:1;z-index:0}.project-card h3{font-size:1.8rem;margin-bottom:1rem;color:var(--ink);position:relative;z-index:1}.project-description{color:var(--coffee);line-height:1.7;margin-bottom:1.5rem}.tech-stack{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:1.5rem}.tech-tag{padding:.4rem .9rem;background:transparent;color:var(--rust);border:1.5px solid var(--sand);font-size:.85rem;font-weight:600;font-family:var(--font-mono);transition:var(--transition)}.tech-tag:hover{background:var(--rust);color:var(--cream);border-color:var(--rust)}.project-links{display:flex;gap:1rem;flex-wrap:wrap}.project-link{display:flex;align-items:center;gap:.5rem;padding:.7rem 1.2rem;background:transparent;color:var(--charcoal);font-size:.9rem;font-weight:600;transition:var(--transition);border:2px solid var(--charcoal);font-family:var(--font-mono)}.project-link svg{width:16px;height:16px}.project-link:hover{background:var(--charcoal);color:var(--cream);transform:translate(3px)}@media(max-width:1024px){.projects-grid{grid-template-columns:1fr}}@media(max-width:768px){.project-card{padding:2rem}.project-number{font-size:3.5rem}}@media(max-width:480px){.project-card{padding:1.5rem}.project-card h3{font-size:1.5rem}.tech-stack{gap:.5rem}.tech-tag{font-size:.75rem;padding:.3rem .7rem}}#experience{min-height:100vh}.timeline{position:relative;padding-left:3rem}.timeline:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--sand)}.timeline-item{position:relative;margin-bottom:4rem}.timeline-item:last-child{margin-bottom:0}.timeline-marker{position:absolute;left:-3.75rem;top:1.5rem;width:20px;height:20px;border:3px solid var(--terracotta);background:var(--cream);transform:rotate(45deg);transition:var(--transition);z-index:2}.timeline-item:hover .timeline-marker{transform:rotate(45deg) scale(1.3);background:var(--terracotta)}.experience-card{background:var(--warm-white);border:2px solid var(--sand);overflow:hidden;transition:var(--transition)}.experience-card:hover{border-color:var(--terracotta);transform:translate(10px);box-shadow:6px 6px 0 var(--sand)}.experience-content{padding:2rem}.experience-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem;gap:2rem;flex-wrap:wrap}.experience-header h3{font-size:1.75rem;margin-bottom:.5rem;color:var(--ink)}.experience-header h4{font-size:1.1rem;color:var(--terracotta);font-weight:700;font-family:var(--font-body)}.experience-meta{display:flex;flex-direction:column;align-items:flex-end;gap:.25rem;min-width:180px;font-family:var(--font-mono)}.period{font-weight:600;color:var(--charcoal);font-size:.9rem}.location{color:var(--coffee);font-size:.85rem}.experience-description{color:var(--coffee);line-height:1.7;margin-bottom:1.5rem}.highlights-list{list-style:none;display:flex;flex-direction:column;gap:.75rem}.highlights-list li{color:var(--coffee);padding-left:1.5rem;position:relative;line-height:1.6}.highlights-list li:before{content:"→";position:absolute;left:0;color:var(--terracotta);font-weight:700;line-height:1.6}.paper-link{display:inline-block;margin-top:1.5rem;padding:.75rem 1.5rem;background:var(--terracotta);color:var(--cream);text-decoration:none;font-weight:600;font-size:.9rem;border:2px solid var(--terracotta);transition:var(--transition)}.paper-link:hover{background:var(--cream);color:var(--terracotta);transform:translateY(-2px);box-shadow:3px 3px 0 var(--sand)}@media(max-width:768px){.timeline{padding-left:2rem}.timeline-marker{left:-2.625rem}.experience-content{padding:1.5rem}.experience-header{flex-direction:column;align-items:flex-start}.experience-meta{align-items:flex-start}}@media(max-width:480px){.timeline{padding-left:1.5rem}.timeline:before{left:-.5rem}.timeline-marker{left:-2.375rem;width:16px;height:16px}.experience-content{padding:1.5rem}.experience-header h3{font-size:1.5rem}.experience-header h4{font-size:1rem}}#root{width:100%;min-height:100vh}
