:root{--bg-primary:#f8f5f0;--bg-secondary:#f0ece5;--bg-tertiary:#e8e3db;--bg-card:#fff;--bg-card-hover:#fdfcfa;--border-subtle:rgba(0,0,0,.08);--border-hover:rgba(0,0,0,.15);--text-primary:#1a1a17;--text-secondary:#5c5c52;--text-muted:#8a897e;--accent:#b8860b;--accent-light:#d4a017;--accent-glow:rgba(184,134,11,.08);--accent-secondary:#8b6914;--accent-secondary-glow:rgba(139,105,20,.08);--warm-highlight:#fef3e2;--font-display:"Fraunces",Georgia,serif;--font-body:"DM Sans",sans-serif;--font-mono:"JetBrains Mono",monospace;--font-serif:"Fraunces",Georgia,"Times New Roman",serif;--section-padding:clamp(80px,12vh,140px);--container-max:1200px;--container-padding:clamp(20px,5vw,80px);--ease-out-expo:cubic-bezier(0.16,1,0.3,1);--ease-out-quart:cubic-bezier(0.25,1,0.5,1);--ease-flow:cubic-bezier(0.22,1,0.36,1);--ease-soft:cubic-bezier(0.32,0.72,0,1);--duration-fast:0.2s;--duration-normal:0.4s;--duration-slow:0.8s;--duration-cinematic:1.2s}*{box-sizing:border-box;margin:0;padding:0}html{font-size:clamp(16px,1.25vw,20px);scroll-behavior:smooth;scrollbar-color:#b8860b #f8f5f0;scrollbar-color:var(--accent) var(--bg-primary);scrollbar-width:thin}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f8f5f0;background-color:var(--bg-primary);color:#1a1a17;color:var(--text-primary);font-family:DM Sans,sans-serif;font-family:var(--font-body);font-weight:400;line-height:1.6;overflow-x:hidden}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:#f8f5f0;background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:#b8860b;background:var(--accent);border-radius:3px}h1,h2,h3,h4,h5,h6{color:#1a1a17;color:var(--text-primary);font-family:Fraunces,Georgia,serif;font-family:var(--font-display);font-weight:700;line-height:1.15}h1,h2{font-variation-settings:"opsz" 96,"SOFT" 50,"WONK" 1;font-weight:480;letter-spacing:-.02em;line-height:.95}a{color:inherit;text-decoration:none}img{height:auto;max-width:100%}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='.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23a)'/%3E%3C/svg%3E");content:"";inset:0;opacity:.03;pointer-events:none;position:fixed;z-index:9999}::selection{background:#b8860b;background:var(--accent);color:#fff}html.lenis,html.lenis body{height:auto}.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}.lenis [data-lenis-prevent-horizontal],.lenis [data-lenis-prevent-touch],.lenis [data-lenis-prevent-vertical],.lenis [data-lenis-prevent-wheel],.lenis [data-lenis-prevent]{-ms-scroll-chaining:none;overscroll-behavior:contain}.lenis.lenis-smooth iframe{pointer-events:none}.lenis.lenis-autoToggle{transition-behavior:allow-discrete;transition-duration:1ms;transition-property:overflow}.navbar{align-items:center;display:flex;justify-content:space-between;left:0;padding:1rem clamp(2rem,5vw,4rem);position:fixed;right:0;top:0;transition:all .4s var(--ease-out-expo);z-index:1000}.navbar.scrolled{backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);background:hsla(38,36%,96%,.9);border-bottom:1px solid var(--border-subtle)}.navbar-brand{color:var(--text-primary);font-family:var(--font-display);font-size:1.2rem;font-weight:700}.navbar-links{align-items:center;display:flex;gap:.125rem}.nav-link{border-radius:8px;color:var(--text-muted);font-family:var(--font-body);font-size:1rem;font-weight:500;padding:.5rem .875rem;transition:color .2s ease}.nav-link:hover{color:var(--text-primary)}.nav-link.active{color:var(--accent)}.menu-toggle{background:none;border:none;cursor:pointer;display:none;flex-direction:column;gap:5px;padding:8px;z-index:1001}.menu-toggle span{background:var(--text-primary);border-radius:2px;display:block;height:2px;transition:all .3s ease;width:22px}.menu-toggle.open span:first-child{-webkit-transform:rotate(45deg) translate(5px,5px);transform:rotate(45deg) translate(5px,5px)}.menu-toggle.open span:nth-child(2){opacity:0}.menu-toggle.open span:nth-child(3){-webkit-transform:rotate(-45deg) translate(5px,-5px);transform:rotate(-45deg) translate(5px,-5px)}@media (max-width:768px){.menu-toggle{display:flex}.navbar-links{align-items:flex-start;background:var(--bg-primary);border-left:1px solid var(--border-subtle);flex-direction:column;gap:.25rem;height:100vh;max-width:320px;padding:6rem 2.5rem 2rem;position:fixed;right:-100%;top:0;transition:right .5s var(--ease-out-expo);width:80%;z-index:1000}.navbar-links.open{right:0}.nav-link{font-size:1.4rem;font-weight:600;padding:.6rem 0;width:100%}}.hero{align-items:center;display:flex;min-height:100vh;position:relative}.hero-content{grid-gap:clamp(3rem,6vw,6rem);align-items:center;display:grid;gap:clamp(3rem,6vw,6rem);grid-template-columns:1fr .7fr;margin:0 auto;max-width:1200px;padding:0 clamp(2rem,5vw,6rem);width:100%}.hero-text{position:relative;z-index:2}.hero-greeting{color:var(--accent);font-family:var(--font-mono);font-size:1rem;letter-spacing:.06em;margin-bottom:1.5rem}.hero-name{color:var(--text-primary);font-size:clamp(3rem,7vw,5.5rem);font-weight:700;letter-spacing:-.03em;line-height:1;margin-bottom:1.75rem}.hero-name .word-mask{display:inline-block;margin-right:.25em;overflow:hidden;vertical-align:bottom}.hero-name .word{display:inline-block;will-change:transform}.hero-name .accent-text{-webkit-text-fill-color:var(--accent);background:none;color:var(--accent)}.hero-tagline{color:var(--text-secondary);font-size:clamp(1.15rem,2vw,1.35rem);line-height:1.75;margin-bottom:2.5rem;max-width:520px}.hero-cta{align-items:center;display:flex;gap:1rem}.btn-primary{align-items:center;background:var(--accent);border:none;border-radius:10px;color:#fff;cursor:pointer;display:inline-flex;font-family:var(--font-body);font-size:1rem;font-weight:600;gap:.5rem;padding:.8rem 1.75rem;transition:all .3s var(--ease-out-expo)}.btn-primary:hover{background:var(--accent-light);box-shadow:0 6px 20px var(--accent-glow);-webkit-transform:translateY(-1px);transform:translateY(-1px)}.btn-ghost{align-items:center;background:transparent;border:1.5px solid var(--border-subtle);border-radius:10px;color:var(--text-secondary);cursor:pointer;display:inline-flex;font-family:var(--font-body);font-size:1rem;font-weight:500;gap:.5rem;padding:.8rem 1.75rem;transition:all .3s var(--ease-out-expo)}.btn-ghost:hover{background:rgba(0,0,0,.02);border-color:var(--border-hover);color:var(--text-primary);-webkit-transform:translateY(-1px);transform:translateY(-1px)}.hero-image-wrapper{align-items:center;display:flex;justify-content:center;position:relative}.hero-image{aspect-ratio:3/4;border-radius:24px;box-shadow:0 20px 60px rgba(0,0,0,.08),0 4px 16px rgba(0,0,0,.04);max-width:380px;object-fit:cover;object-position:center top;position:relative;width:100%;z-index:2}.hero-image-blur-wrapper{-webkit-filter:blur(20px);filter:blur(20px);-webkit-transform:scale(1.05);transform:scale(1.05);transition:-webkit-filter .8s var(--ease-flow),-webkit-transform .8s var(--ease-flow);transition:filter .8s var(--ease-flow),transform .8s var(--ease-flow);transition:filter .8s var(--ease-flow),transform .8s var(--ease-flow),-webkit-filter .8s var(--ease-flow),-webkit-transform .8s var(--ease-flow)}.hero-image-blur-wrapper.loaded{-webkit-filter:blur(0);filter:blur(0);-webkit-transform:scale(1);transform:scale(1)}.hero-image-glow{background:radial-gradient(circle,rgba(184,134,11,.06) 0,transparent 70%);-webkit-filter:blur(60px);filter:blur(60px);height:90%;position:absolute;width:90%;z-index:1}@media (max-width:768px){.hero-content{gap:2rem;grid-template-columns:1fr;padding:7rem 1.5rem 3rem;text-align:left}.hero-image-wrapper{justify-content:flex-start;order:-1}.hero-image{border-radius:16px;max-width:140px}.hero-tagline{max-width:100%}.hero-cta{flex-wrap:wrap}}.about-section{padding:var(--section-padding) 0}.about-container{margin:0 auto;max-width:1200px;padding:0 clamp(2rem,5vw,6rem)}.section-header{margin-bottom:3rem}.section-label{color:var(--accent);font-family:var(--font-mono);font-size:.85rem;letter-spacing:.12em;margin-bottom:.75rem;text-transform:uppercase}.section-title{font-size:clamp(2.25rem,4.5vw,3.25rem);font-weight:700;letter-spacing:-.02em}.about-grid{max-width:640px}.about-text p{color:var(--text-secondary);font-size:1.2rem;line-height:1.85;margin-bottom:1.5rem}.about-text .highlight{color:var(--text-primary);font-weight:600}.tech-section{margin-top:5rem}.tech-grid{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:2rem}.tech-item{align-items:center;background:var(--bg-card);border:1.5px solid var(--border-subtle);border-radius:100px;box-shadow:0 1px 3px rgba(0,0,0,.02);color:var(--text-secondary);display:flex;font-size:.95rem;gap:.4rem;padding:.5rem 1rem;transition:all .25s ease}.tech-item:hover{background:var(--accent-glow);border-color:var(--accent);box-shadow:0 3px 8px rgba(184,134,11,.06);color:var(--accent);-webkit-transform:translateY(-1px);transform:translateY(-1px)}.tech-item svg{font-size:1rem}@media (max-width:768px){.about-container{padding:0 1.5rem}.about-text p{font-size:1.05rem}}.projects-section{padding:var(--section-padding) 0}.projects-container{margin:0 auto;max-width:1200px;padding:0 clamp(2rem,5vw,6rem)}.projects-grid{grid-gap:1.25rem;display:grid;gap:1.25rem;grid-template-columns:repeat(2,1fr)}.project-card{background:var(--bg-card);border:1.5px solid var(--border-subtle);border-radius:20px;box-shadow:0 2px 8px rgba(0,0,0,.03);display:flex;flex-direction:column;overflow:hidden;position:relative;transition:all .35s var(--ease-out-expo)}.project-card:hover{border-color:var(--border-hover);box-shadow:0 12px 40px rgba(0,0,0,.06);-webkit-transform:translateY(-3px);transform:translateY(-3px)}.project-card.featured{align-items:stretch;flex-direction:row;grid-column:span 2}.project-card-image{height:200px;object-fit:cover;transition:-webkit-transform .5s var(--ease-out-expo);transition:transform .5s var(--ease-out-expo);transition:transform .5s var(--ease-out-expo),-webkit-transform .5s var(--ease-out-expo);width:100%}.project-card.featured .project-card-image{background:var(--bg-secondary);border-right:1px solid var(--border-subtle);height:auto;min-height:100%;object-fit:contain;padding:2rem;width:240px}.project-card:hover .project-card-image{-webkit-transform:scale(1.03);transform:scale(1.03)}.project-card-content{display:flex;flex:1 1;flex-direction:column;padding:1.75rem 2rem}.project-card-tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.75rem}.project-tag{background:var(--accent-glow);border-radius:4px;color:var(--accent);font-family:var(--font-mono);font-size:.7rem;font-weight:500;letter-spacing:.03em;padding:.25rem .6rem;text-transform:uppercase}.project-card-title{color:var(--text-primary);font-family:var(--font-display);font-size:1.4rem;font-weight:700;margin-bottom:.6rem}.project-card.featured .project-card-title{font-size:1.65rem}.project-card-description{color:var(--text-muted);flex:1 1;font-size:1rem;line-height:1.7}.project-card-links{align-items:center;border-top:1px solid var(--border-subtle);display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.25rem;padding-top:1rem}.project-link{align-items:center;background:var(--bg-card);border:1.5px solid var(--border-subtle);border-radius:100px;color:var(--text-secondary);display:inline-flex;font-size:.8rem;font-weight:500;gap:.35rem;padding:.35rem .85rem;transition:all .25s ease}.project-link:hover{background:var(--accent-glow);border-color:var(--accent);color:var(--accent)}.project-link svg{font-size:.95rem}.app-store-badge{height:34px;opacity:.85;transition:all .2s ease}.app-store-badge:hover{opacity:1;-webkit-transform:scale(1.03);transform:scale(1.03)}@media (max-width:768px){.projects-container{padding:0 1.5rem}.projects-grid{grid-template-columns:1fr}.project-card.featured{flex-direction:column;grid-column:span 1}.project-card.featured .project-card-image{border-bottom:1px solid var(--border-subtle);border-right:none;height:auto;min-height:auto;padding:1.5rem;width:100%}.project-card-content{padding:1.25rem 1.5rem}.project-card-title{font-size:1.2rem}.project-card.featured .project-card-title{font-size:1.3rem}}.poetry-section{padding:var(--section-padding) 0}.poetry-container{margin:0 auto;max-width:900px;padding:0 clamp(2rem,5vw,6rem) 0 clamp(1rem,3vw,3rem)}.poetry-list{display:flex;flex-direction:column}.poem-card{background:transparent;border:none;border-bottom:1px solid var(--border-subtle);border-radius:0;overflow:hidden;transition:background .3s ease}.poem-card:first-child{border-top:1px solid var(--border-subtle)}.poem-card:hover{background:rgba(184,134,11,.02)}.poem-header{align-items:center;cursor:pointer;display:flex;justify-content:space-between;padding:1.4rem 1rem;transition:padding-left .3s ease}.poem-header:hover{padding-left:1.5rem}.poem-header:hover .poem-number,.poem-header:hover .poem-title{color:var(--accent)}.poem-title-group{align-items:baseline;display:flex;gap:1.25rem}.poem-number{color:var(--text-muted);font-family:var(--font-mono);font-size:.75rem;letter-spacing:.03em;min-width:1.5rem}.poem-number,.poem-title{transition:color .2s ease}.poem-title{color:var(--text-primary);font-family:var(--font-display);font-size:1.3rem;font-weight:600}.poem-date{color:var(--text-muted);font-family:var(--font-mono);font-size:.7rem;letter-spacing:.03em}.poem-expand-icon{color:var(--text-muted);font-size:1.1rem}.poem-body{border-left:2px solid var(--accent);color:var(--text-secondary);font-family:var(--font-serif);font-size:1.15rem;font-style:italic;line-height:2.1;margin-left:1rem;padding:0 1rem 2rem 3.75rem;white-space:pre-line}.poem-attribution{color:var(--text-muted);font-family:var(--font-mono);font-size:.8rem;font-style:normal;letter-spacing:.03em;margin-top:1.5rem}@media (max-width:768px){.poetry-container{padding:0 1.5rem}.poem-title-group{gap:.75rem}.poem-title{font-size:1.1rem}.poem-date{display:none}.poem-body{font-size:1rem;margin-left:.5rem;padding:0 1rem 1.5rem 2.5rem}}.resume-section{padding:var(--section-padding) 0}.resume-container{margin:0 auto;max-width:1200px;padding:0 clamp(2rem,5vw,6rem)}.resume-header{align-items:flex-end;display:flex;flex-wrap:wrap;gap:1.5rem;justify-content:space-between;margin-bottom:2.5rem}.resume-actions{display:flex;gap:1rem}.resume-embed-wrapper{background:#fff;border:1.5px solid var(--border-subtle);border-radius:16px;box-shadow:0 4px 16px rgba(0,0,0,.04);overflow:hidden;width:100%}.resume-embed{border:none;height:80vh;min-height:600px;width:100%}@media (max-width:768px){.resume-container{padding:0 1.5rem}.resume-header{align-items:flex-start;flex-direction:column}.resume-embed{height:60vh;min-height:400px}.resume-embed-wrapper{border-radius:12px}}.footer{border-top:1px solid var(--border-subtle);padding:3.5rem 0}.footer-container{align-items:center;display:flex;justify-content:space-between;margin:0 auto;max-width:1200px;padding:0 clamp(2rem,5vw,6rem)}.footer-left{color:var(--text-muted);font-size:.95rem}.footer-socials{display:flex;gap:.5rem}.footer-social-link{align-items:center;background:var(--bg-card);border:1.5px solid var(--border-subtle);border-radius:10px;color:var(--text-muted);display:flex;font-size:.95rem;height:36px;justify-content:center;transition:all .2s ease;width:36px}.footer-social-link:hover{background:var(--accent-glow);border-color:var(--accent);color:var(--accent);-webkit-transform:translateY(-1px);transform:translateY(-1px)}@media (max-width:768px){.footer-container{flex-direction:column;gap:1.5rem;text-align:center}}.gradient-text{color:var(--accent)}.App{min-height:100vh;position:relative}.mesh-gradient{background:radial-gradient(ellipse at 10% 0,rgba(184,134,11,.04) 0,transparent 50%),radial-gradient(ellipse at 90% 80%,rgba(139,105,20,.03) 0,transparent 40%),var(--bg-primary);inset:0;pointer-events:none;position:fixed;z-index:-1}.preloader{align-items:center;background:var(--bg-primary);display:flex;inset:0;justify-content:center;position:fixed;z-index:99999}.preloader-hidden{opacity:0;pointer-events:none;transition:opacity .6s var(--ease-out-expo)}.preloader-spinner{-webkit-animation:spin .8s linear infinite;animation:spin .8s linear infinite;border:2px solid var(--border-subtle);border-radius:50%;border-top-color:var(--accent);height:32px;width:32px}@-webkit-keyframes spin{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spin{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.no-scroll{height:100vh;overflow:hidden}.page-wrapper{min-height:100vh}
/*# sourceMappingURL=main.b07c28d9.css.map*/