@import"https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=DM+Mono:wght@300;400;500&family=DM+Sans:wght@300;400;500&display=swap";*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #F7F5F0;--ink: #1A1814;--muted: #8A8580;--accent: #C84B31;--accent2: #2D5FA6;--rule: #DDD9D0;--card: #FFFFFF}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font-family:DM Sans,sans-serif;font-weight:300;line-height:1.6;min-height:100vh}.page-enter{animation:fadeIn .35s ease forwards}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.page-wrapper{min-height:100vh;padding:96px 48px 0;display:flex;flex-direction:column}.page-header{display:flex;align-items:baseline;gap:24px;margin-bottom:64px;padding-bottom:24px;border-bottom:1px solid var(--rule)}.page-title{font-family:"DM Serif Display",serif;font-size:clamp(2rem,4vw,3.5rem);letter-spacing:-.02em;line-height:1}.page-num{font-family:DM Mono,monospace;font-size:.75rem;color:var(--accent);letter-spacing:.08em}.page-footer{margin-top:auto;padding:24px 0;border-top:1px solid var(--rule);display:flex;justify-content:space-between;align-items:center}.page-footer span,.page-footer a{font-family:DM Mono,monospace;font-size:.68rem;letter-spacing:.06em;color:var(--muted);text-decoration:none}.page-footer a:hover{color:var(--accent2)}.tag{font-family:DM Mono,monospace;font-size:.62rem;letter-spacing:.06em;padding:3px 8px;border:1px solid var(--rule);color:var(--muted);text-transform:uppercase}.btn{display:inline-flex;align-items:center;gap:8px;padding:12px 24px;font-family:DM Mono,monospace;font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;border:1px solid var(--ink);color:var(--ink);background:transparent;cursor:pointer;transition:all .2s}.btn:hover{background:var(--ink);color:var(--bg)}.btn.filled{background:var(--accent);border-color:var(--accent);color:#fff}.btn.filled:hover{background:var(--ink);border-color:var(--ink)}@media (max-width: 768px){.page-wrapper{padding:88px 24px 0}.page-header{margin-bottom:40px}}.nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:0 48px;height:64px;background:#f7f5f0eb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--rule)}.nav-logo{font-family:"DM Serif Display",serif;font-size:1.15rem;letter-spacing:-.01em;color:var(--ink);background:none;border:none;cursor:pointer;padding:0;transition:color .2s}.nav-logo:hover{color:var(--accent)}.nav-links{display:flex;gap:36px;list-style:none}.nav-link{font-family:DM Mono,monospace;font-size:.75rem;font-weight:400;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);background:none;border:none;cursor:pointer;padding:0;position:relative;transition:color .2s}.nav-link:after{content:"";position:absolute;bottom:-3px;left:0;right:0;height:1px;background:var(--accent);transform:scaleX(0);transition:transform .2s}.nav-link:hover,.nav-link.active{color:var(--ink)}.nav-link.active:after,.nav-link:hover:after{transform:scaleX(1)}@media (max-width: 768px){.nav{padding:0 24px}.nav-links{gap:16px}.nav-link{font-size:.65rem}}.home{min-height:100vh;display:flex;flex-direction:column}.hero{flex:1;min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding:96px 48px 64px;border-bottom:1px solid var(--rule);position:relative;overflow:hidden}.hero-grid{position:absolute;right:0;top:0;bottom:0;width:38%;display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--rule);opacity:.4;pointer-events:none}.hero-grid-cell{background:var(--bg)}.hero-tag{font-family:DM Mono,monospace;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:24px;opacity:0;animation:fadeUp .6s ease forwards .1s}.hero-heading{font-family:"DM Serif Display",serif;font-size:clamp(3rem,7vw,6.5rem);line-height:1;letter-spacing:-.02em;max-width:900px;opacity:0;animation:fadeUp .7s ease forwards .25s}.hero-heading em{font-style:italic;color:var(--accent)}.hero-sub{margin-top:32px;font-size:1.05rem;color:var(--muted);max-width:480px;line-height:1.7;opacity:0;animation:fadeUp .7s ease forwards .4s}.hero-links{margin-top:48px;display:flex;gap:16px;flex-wrap:wrap;opacity:0;animation:fadeUp .7s ease forwards .55s}.hero-stats{position:absolute;bottom:64px;right:48px;display:flex;gap:48px;opacity:0;animation:fadeUp .7s ease forwards .7s}.hero-stat{text-align:right}.hero-stat-num{display:block;font-family:"DM Serif Display",serif;font-size:2rem;color:var(--ink);line-height:1}.hero-stat-label{display:block;font-family:DM Mono,monospace;font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:4px}.home-footer{padding:24px 48px;border-top:1px solid var(--rule);display:flex;justify-content:space-between;align-items:center}.home-footer span{font-family:DM Mono,monospace;font-size:.68rem;letter-spacing:.06em;color:var(--muted)}@media (max-width: 768px){.hero{padding:96px 24px 64px}.hero-grid,.hero-stats{display:none}.home-footer{padding:24px;flex-direction:column;gap:8px;align-items:flex-start}}.exp-list{display:flex;flex-direction:column}.exp-item{display:grid;grid-template-columns:200px 1fr;gap:48px;padding:40px 0;border-bottom:1px solid var(--rule);opacity:0;animation:fadeUp .5s ease forwards}.exp-date{font-family:DM Mono,monospace;font-size:.7rem;letter-spacing:.08em;color:var(--muted);text-transform:uppercase;padding-top:4px}.exp-company{font-family:"DM Serif Display",serif;font-size:1.1rem;margin-top:8px;line-height:1.2}.exp-stack{margin-top:10px;display:flex;flex-wrap:wrap;gap:6px}.exp-role{font-size:1.4rem;font-weight:500;letter-spacing:-.01em;margin-bottom:16px}.exp-bullets{list-style:none;display:flex;flex-direction:column;gap:10px}.exp-bullets li{font-size:.9rem;color:#3a3630;line-height:1.65;padding-left:16px;position:relative}.exp-bullets li:before{content:"—";position:absolute;left:0;color:var(--accent);font-size:.8rem}.exp-bullets strong{font-weight:500;color:var(--ink)}@media (max-width: 768px){.exp-item{grid-template-columns:1fr;gap:16px}}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:2px;background:var(--rule)}.project-card{background:var(--card);padding:36px;display:flex;flex-direction:column;gap:16px;opacity:0;animation:fadeUp .5s ease forwards;transition:background .2s}.project-card:hover{background:#fafaf7}.project-index{font-family:DM Mono,monospace;font-size:.65rem;letter-spacing:.1em;color:var(--accent)}.project-name{font-family:"DM Serif Display",serif;font-size:1.5rem;letter-spacing:-.01em;line-height:1.2}.project-desc{font-size:.875rem;color:#5a5650;line-height:1.65;flex:1}.project-tags{display:flex;flex-wrap:wrap;gap:6px}.project-links{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:4px}.project-link{font-family:DM Mono,monospace;font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:var(--accent2);text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:1px;transition:color .2s}.project-link:hover{color:var(--accent)}.project-wip{font-family:DM Mono,monospace;font-size:.68rem;letter-spacing:.06em;color:var(--muted)}.skills-layout{display:grid;grid-template-columns:1fr 1fr;gap:2px;background:var(--rule)}.skill-group{background:var(--card);padding:40px;opacity:0;animation:fadeUp .5s ease forwards}.skill-group-title{font-family:DM Mono,monospace;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:20px}.skill-list{display:flex;flex-wrap:wrap;gap:8px}.skill-pill{font-family:DM Sans,sans-serif;font-size:.82rem;font-weight:400;padding:6px 14px;background:var(--bg);color:var(--ink);border:1px solid var(--rule);transition:all .15s;cursor:default}.skill-pill:hover{border-color:var(--accent);color:var(--accent)}@media (max-width: 768px){.skills-layout{grid-template-columns:1fr}}.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:96px;align-items:start}.contact-intro{font-family:"DM Serif Display",serif;font-size:clamp(1.8rem,3vw,2.8rem);line-height:1.2;letter-spacing:-.02em;opacity:0;animation:fadeUp .5s ease forwards .1s}.contact-intro em{font-style:italic;color:var(--accent)}.contact-links{display:flex;flex-direction:column;opacity:0;animation:fadeUp .5s ease forwards .2s}.contact-item{display:flex;align-items:center;justify-content:space-between;padding:20px 0;border-bottom:1px solid var(--rule);text-decoration:none;color:var(--ink);transition:padding-left .2s}.contact-item:first-child{border-top:1px solid var(--rule)}.contact-item:hover{padding-left:8px}.contact-item-label{font-family:DM Mono,monospace;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}.contact-item-val{font-size:.9rem;color:var(--accent2)}.contact-arrow{color:var(--muted);font-size:1rem;transition:color .2s}.contact-item:hover .contact-arrow{color:var(--accent)}@media (max-width: 768px){.contact-layout{grid-template-columns:1fr;gap:48px}}
