@import "https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;0,900;1,400&family=DM+Mono:wght@300;400;500&family=DM+Sans:wght@300;400;500&display=swap";:root{--cream:#f5f0e8;--ink:#1a1410;--rust:#c4500a;--warm-mid:#8b7355;--pale:#ede8de;--accent-line:#c4500a}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--cream);color:var(--ink);scrollbar-width:thin;scrollbar-color:var(--rust) var(--cream);font-family:DM Sans,sans-serif;font-weight:300;overflow-x:hidden}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-track{background:var(--cream)}::-webkit-scrollbar-thumb{background:var(--rust);border:3px solid var(--cream);border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--ink)}::-webkit-scrollbar-corner{background:var(--cream)}body:before{content:"";pointer-events:none;z-index:0;opacity:.4;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");position:fixed;inset:0}nav{z-index:100;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#f5f0e8e0;border-bottom:1px solid #1a141014;justify-content:space-between;align-items:center;padding:20px 80px;display:flex;position:fixed;top:0;left:0;right:0}.nav-logo{color:var(--ink);letter-spacing:-.01em;font-family:Playfair Display,serif;font-size:18px;font-weight:700;text-decoration:none}.nav-logo span{color:var(--rust)}.nav-links{gap:36px;list-style:none;display:flex}.nav-links a{letter-spacing:.15em;text-transform:uppercase;color:var(--warm-mid);font-family:DM Mono,monospace;font-size:11px;text-decoration:none;transition:color .2s}.nav-links a:hover{color:var(--rust)}.nav-hamburger{cursor:pointer;z-index:101;background:0 0;border:none;flex-direction:column;justify-content:center;gap:5px;padding:4px;display:none}.nav-hamburger span{background:var(--ink);transform-origin:50%;width:22px;height:2px;transition:transform .25s,opacity .25s;display:block}.nav-open .nav-hamburger span:first-child{transform:translateY(7px)rotate(45deg)}.nav-open .nav-hamburger span:nth-child(2){opacity:0}.nav-open .nav-hamburger span:nth-child(3){transform:translateY(-7px)rotate(-45deg)}header{grid-template-columns:1fr 1fr;min-height:100vh;display:grid;position:relative;overflow:hidden}.hero-left{z-index:1;flex-direction:column;justify-content:center;padding:80px 60px 80px 80px;display:flex;position:relative}.hero-eyebrow{letter-spacing:.25em;text-transform:uppercase;color:var(--rust);opacity:0;margin-bottom:24px;font-family:DM Mono,monospace;font-size:11px;animation:.8s .2s forwards fadeUp}.hero-name{letter-spacing:-.02em;opacity:0;margin-bottom:32px;font-family:Playfair Display,serif;font-size:clamp(52px,6vw,88px);font-weight:900;line-height:1;animation:.9s .35s forwards fadeUp}.hero-name em{color:var(--rust);font-style:italic}.hero-desc{color:var(--warm-mid);opacity:0;max-width:400px;margin-bottom:48px;font-size:17px;line-height:1.75;animation:.9s .5s forwards fadeUp}.hero-links{opacity:0;flex-wrap:wrap;gap:20px;animation:.9s .65s forwards fadeUp;display:flex}.btn{letter-spacing:.1em;text-transform:uppercase;border:1.5px solid var(--ink);color:var(--ink);cursor:pointer;align-items:center;gap:8px;padding:12px 24px;font-family:DM Mono,monospace;font-size:12px;text-decoration:none;transition:all .25s;display:inline-flex;position:relative;overflow:hidden}.btn:before{content:"";background:var(--ink);transition:transform .25s;position:absolute;inset:0;transform:translate(-101%)}.btn:hover:before{transform:translate(0)}.btn:hover{color:var(--cream)}.btn-filled{background:var(--rust);border-color:var(--rust);color:var(--cream)}.btn-filled:before{background:var(--ink)}.btn span{z-index:1;position:relative}.hero-right{justify-content:center;align-items:flex-end;display:flex;position:relative;overflow:hidden}.hero-right:before{content:"";background:var(--pale);clip-path:polygon(15% 0%,100% 0%,100% 100%,0% 100%);position:absolute;inset:0}.hero-photo-wrap{z-index:1;opacity:0;width:75%;max-width:380px;animation:1s .5s forwards fadeUp;position:relative}.hero-photo-wrap img{filter:grayscale(15%)contrast(1.05);width:100%;display:block}.hero-photo-wrap:after{content:"";background:var(--rust);width:60%;height:4px;position:absolute;bottom:0;left:-24px}.deco-letter{color:#0000;-webkit-text-stroke:1px #c4500a14;pointer-events:none;-webkit-user-select:none;user-select:none;z-index:0;font-family:Playfair Display,serif;font-size:400px;font-weight:900;line-height:1;position:absolute;bottom:-60px;right:-40px}section{z-index:1;padding:120px 80px;position:relative}.section-label{letter-spacing:.3em;text-transform:uppercase;color:var(--rust);align-items:center;gap:16px;margin-bottom:60px;font-family:DM Mono,monospace;font-size:11px;display:flex}.section-label:after{content:"";background:#c4500a40;flex:1;max-width:80px;height:1px}#about{background:var(--pale);grid-template-columns:1fr 1fr;align-items:start;gap:80px;display:grid}.about-text h2{letter-spacing:-.02em;margin-bottom:32px;font-family:Playfair Display,serif;font-size:clamp(36px,4vw,56px);font-weight:700;line-height:1.15}.about-text p{color:var(--warm-mid);margin-bottom:20px;font-size:16px;line-height:1.8}.stat-grid{grid-template-columns:1fr 1fr;align-self:start;gap:2px;margin-top:60px;display:grid}.stat-box{background:var(--cream);border-left:3px solid var(--rust);padding:32px 28px}.stat-num{color:var(--ink);margin-bottom:8px;font-family:Playfair Display,serif;font-size:48px;font-weight:900;line-height:1}.stat-label{letter-spacing:.15em;text-transform:uppercase;color:var(--warm-mid);font-family:DM Mono,monospace;font-size:11px}#experience{background:var(--cream)}.exp-list{flex-direction:column;gap:2px;display:flex}.exp-item{border-top:1px solid #1a14101a;grid-template-columns:200px 1fr;gap:40px;padding:40px 0;display:grid;position:relative}.exp-item:last-child{border-bottom:1px solid #1a14101a}.exp-meta{flex-direction:column;gap:8px;padding-top:4px;display:flex}.exp-date{letter-spacing:.12em;color:var(--rust);font-family:DM Mono,monospace;font-size:11px}.exp-org{color:var(--warm-mid);letter-spacing:.05em;font-family:DM Mono,monospace;font-size:12px}.exp-content h3{letter-spacing:-.01em;margin-bottom:16px;font-family:Playfair Display,serif;font-size:26px;font-weight:700}.exp-content ul{flex-direction:column;gap:10px;list-style:none;display:flex}.exp-content li{color:var(--warm-mid);padding-left:20px;font-size:15px;line-height:1.7;position:relative}.exp-content li:before{content:"→";color:var(--rust);font-size:13px;position:absolute;left:0}#projects{background:var(--ink)}#projects .section-label{color:var(--rust)}#projects .section-label:after{background:#c4500a4d}.projects-grid{grid-template-columns:1fr 1fr;gap:2px;display:grid}#working-on .projects-grid{grid-template-columns:1fr}.project-card{background:#221c16;padding:48px 44px;transition:background .3s;position:relative;overflow:hidden}.project-card:hover{background:#2a221a}.project-card:before{content:"";background:var(--rust);width:3px;height:0;transition:height .4s;position:absolute;top:0;left:0}.project-card:hover:before{height:100%}.project-num{color:#f5f0e80a;-webkit-user-select:none;user-select:none;font-family:Playfair Display,serif;font-size:72px;font-weight:900;line-height:1;position:absolute;top:20px;right:24px}.project-tags{flex-wrap:wrap;gap:8px;margin-bottom:24px;display:flex}.tag{letter-spacing:.12em;text-transform:uppercase;color:var(--rust);border:1px solid #c4500a66;padding:4px 10px;font-family:DM Mono,monospace;font-size:10px}.project-card h3{color:var(--cream);letter-spacing:-.01em;margin-bottom:16px;font-family:Playfair Display,serif;font-size:24px;font-weight:700;line-height:1.25}.project-card h3 a{color:inherit;text-decoration:none}.project-card h3 a:hover{color:var(--rust)}.project-card p{color:#f5f0e880;font-size:14px;line-height:1.75}.project-date{letter-spacing:.15em;color:#f5f0e84d;text-transform:uppercase;margin-top:24px;font-family:DM Mono,monospace;font-size:10px}.projects-cta{justify-content:center;margin-top:48px;display:flex}.btn-outline-cream{color:var(--cream);border-color:#f5f0e84d}.btn-outline-cream:before{background:var(--rust)}.btn-outline-cream:hover{border-color:var(--rust)}.all-projects-page{min-height:100vh;padding-top:140px;padding-bottom:80px}.all-projects-header{border-bottom:1px solid #1a14101a;margin-bottom:0;padding:0 80px 80px}.all-projects-title{letter-spacing:-.03em;margin-bottom:24px;font-family:Playfair Display,serif;font-size:clamp(48px,6vw,80px);font-weight:900;line-height:1}.all-projects-title em{color:var(--rust);font-style:italic}.all-projects-sub{color:var(--warm-mid);max-width:480px;font-size:16px;line-height:1.75}.all-projects-list{flex-direction:column;display:flex}.ap-card{border-bottom:1px solid #1a14101a;grid-template-columns:80px 1fr;gap:0;padding:56px 80px;transition:background .25s;display:grid;position:relative}.ap-card:hover{background:var(--pale)}.ap-card:before{content:"";background:var(--rust);width:3px;height:0;transition:height .4s;position:absolute;top:0;left:0}.ap-card:hover:before{height:100%}.ap-num{color:var(--rust);letter-spacing:.05em;padding-top:6px;font-family:Playfair Display,serif;font-size:13px;font-weight:700}.ap-body{flex-direction:column;gap:20px;display:flex}.ap-top{justify-content:space-between;align-items:flex-start;gap:24px;display:flex}.ap-title{letter-spacing:-.02em;margin-bottom:6px;font-family:Playfair Display,serif;font-size:32px;font-weight:700;line-height:1.1}.ap-subtitle{letter-spacing:.2em;text-transform:uppercase;color:var(--rust);font-family:DM Mono,monospace;font-size:11px}.ap-links{flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;gap:12px;display:flex}.ap-desc{color:var(--warm-mid);max-width:700px;font-size:15px;line-height:1.8}.ap-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.ap-tags{flex-wrap:wrap;gap:8px;display:flex}.tag-light{letter-spacing:.12em;text-transform:uppercase;color:var(--rust);background:#c4500a0a;border:1px solid #c4500a4d;padding:4px 10px;font-family:DM Mono,monospace;font-size:10px}.ap-date{letter-spacing:.15em;text-transform:uppercase;color:var(--warm-mid);white-space:nowrap;font-family:DM Mono,monospace;font-size:10px}#working-on{background:var(--cream)}.project-links{flex-wrap:wrap;gap:16px;margin-top:24px;display:flex}.project-links .btn{border-color:var(--cream);color:var(--cream)}.project-links .btn:before{background:var(--rust)}#skills{background:var(--pale)}.skills-layout{grid-template-columns:1fr 2fr;align-items:start;gap:80px;display:grid}.skills-intro h2{letter-spacing:-.02em;margin-bottom:24px;font-family:Playfair Display,serif;font-size:clamp(32px,3.5vw,48px);font-weight:700;line-height:1.2}.skills-intro p{color:var(--warm-mid);font-size:15px;line-height:1.8}.skills-grid{flex-direction:column;gap:32px;display:flex}.skill-category h4{letter-spacing:.25em;text-transform:uppercase;color:var(--rust);margin-bottom:16px;font-family:DM Mono,monospace;font-size:11px}.skill-pills{flex-wrap:wrap;gap:10px;display:flex}.pill{background:var(--cream);color:var(--ink);letter-spacing:.01em;border:1.5px solid #1a14101f;padding:10px 20px;font-family:DM Sans,sans-serif;font-size:14px;font-weight:400;transition:all .2s}.pill:hover{border-color:var(--rust);color:var(--rust);background:#c4500a0a}#education{background:var(--cream)}.edu-card{background:var(--pale);border-left:4px solid var(--rust);grid-template-columns:1fr auto;gap:40px;max-width:900px;padding:56px 60px;display:grid}.edu-degree{letter-spacing:-.01em;margin-bottom:12px;font-family:Playfair Display,serif;font-size:32px;font-weight:700}.edu-school{color:var(--warm-mid);margin-bottom:32px;font-size:16px}.edu-details{flex-direction:column;gap:10px;display:flex}.edu-detail-item{align-items:baseline;gap:12px;font-size:14px;display:flex}.edu-detail-item .label{letter-spacing:.15em;text-transform:uppercase;color:var(--rust);min-width:100px;font-family:DM Mono,monospace;font-size:10px}.edu-detail-item .value{color:var(--warm-mid)}.edu-gpa-block{flex-direction:column;justify-content:flex-start;align-items:flex-end;padding-top:8px;display:flex}.gpa-num{color:var(--ink);font-family:Playfair Display,serif;font-size:64px;font-weight:900;line-height:1}.gpa-label{letter-spacing:.2em;text-transform:uppercase;color:var(--warm-mid);text-align:right;font-family:DM Mono,monospace;font-size:10px}#hire{background:var(--ink)}#hire .section-label{color:var(--rust)}#hire .section-label:after{background:#c4500a4d}.hire-layout{grid-template-columns:1fr 1.6fr;align-items:start;gap:80px;display:grid}.hire-intro h2{letter-spacing:-.02em;color:var(--cream);margin-bottom:28px;font-family:Playfair Display,serif;font-size:clamp(36px,4vw,56px);font-weight:700;line-height:1.15}.hire-intro h2 em{color:var(--rust);font-style:italic}.hire-intro p{color:#f5f0e88c;max-width:340px;margin-bottom:40px;font-size:15px;line-height:1.8}.hire-cta-row{flex-wrap:wrap;gap:16px;display:flex}.hire-services{flex-direction:column;gap:2px;display:flex}.service-item{background:#221c16;grid-template-columns:56px 1fr;gap:28px;padding:36px 40px;transition:background .3s;display:grid;position:relative;overflow:hidden}.service-item:hover{background:#2a221a}.service-item:before{content:"";background:var(--rust);width:3px;height:0;transition:height .4s;position:absolute;top:0;left:0}.service-item:hover:before{height:100%}.service-icon{color:var(--rust);letter-spacing:.05em;padding-top:4px;font-family:Playfair Display,serif;font-size:13px;font-weight:700}.service-body h4{color:var(--cream);letter-spacing:-.01em;margin-bottom:12px;font-family:Playfair Display,serif;font-size:20px;font-weight:700}.service-body p{color:#f5f0e880;font-size:14px;line-height:1.75}#contact{background:var(--ink);text-align:center;padding:140px 80px}#contact .section-label{color:var(--rust);justify-content:center}#contact .section-label:after{display:none}.contact-heading{color:var(--cream);letter-spacing:-.03em;margin-bottom:32px;font-family:Playfair Display,serif;font-size:clamp(48px,7vw,96px);font-weight:900;line-height:1}.contact-heading em{color:var(--rust);font-style:italic}.contact-sub{color:#f5f0e880;max-width:400px;margin-bottom:56px;margin-left:auto;margin-right:auto;font-size:16px;line-height:1.7}.contact-links{flex-wrap:wrap;justify-content:center;gap:16px;display:flex}.contact-links .btn{color:var(--cream);border-color:#f5f0e84d}.contact-links .btn:before{background:var(--rust)}.contact-links .btn:hover{border-color:var(--rust)}.contact-email{color:#f5f0e866;letter-spacing:.05em;margin-top:48px;font-family:DM Mono,monospace;font-size:14px;text-decoration:none;transition:color .2s;display:block}.contact-email:hover{color:var(--rust)}footer{z-index:1;background:#110e0b;justify-content:space-between;align-items:center;padding:28px 80px;display:flex;position:relative}footer p{letter-spacing:.1em;color:#f5f0e840;font-family:DM Mono,monospace;font-size:11px}@keyframes fadeUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.reveal{opacity:0;transition:opacity .7s,transform .7s;transform:translateY(30px)}.reveal.visible{opacity:1;transform:translateY(0)}@media (width<=900px){nav{padding:16px 24px}.nav-hamburger{display:flex}.nav-links{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#f5f0e8f7;border-bottom:1px solid #1a14101a;flex-direction:column;align-items:center;gap:0;padding:16px 0 24px;display:none;position:fixed;top:57px;left:0;right:0}.nav-open .nav-links{display:flex}.nav-links li{text-align:center;width:100%}.nav-links a,.nav-links a[class]{padding:14px 24px;font-size:12px;display:block}header{grid-template-columns:1fr;min-height:auto}.hero-left{padding:120px 24px 60px}.hero-right{min-height:400px}section{padding:80px 24px}#about{grid-template-columns:1fr;gap:40px}.stat-grid{grid-template-columns:1fr 1fr;margin-top:0}.exp-item{grid-template-columns:1fr;gap:12px}.projects-grid{grid-template-columns:1fr}.skills-layout{grid-template-columns:1fr;gap:40px}.edu-card{grid-template-columns:1fr}.edu-gpa-block{align-items:flex-start}.hire-layout{grid-template-columns:1fr;gap:48px}.hire-intro p{max-width:100%}.service-item{grid-template-columns:40px 1fr;gap:20px;padding:28px 20px}footer{text-align:center;flex-direction:column;gap:8px;padding:24px}.all-projects-header{padding:0 24px 56px}.ap-card{grid-template-columns:1fr;gap:12px;padding:40px 24px}.ap-top{flex-direction:column;gap:16px}.ap-links{justify-content:flex-start}}.fetch-status{text-align:center;opacity:.6;grid-column:1/-1;padding:40px 0;font-size:.95rem}.fetch-error{color:#e05c5c;opacity:1}
