@import"https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Lora:ital@0;1&family=DM+Mono:wght@300;400&display=swap";:root{--bg: #000000;--surface: rgba(200, 185, 138, .025);--cream: #f0ede6;--cream-muted: rgba(240, 237, 230, .65);--cream-faint: rgba(240, 237, 230, .4);--cream-ghost: rgba(240, 237, 230, .25);--gold: #c8b98a;--gold-muted: rgba(200, 185, 138, .4);--blue: #7eb8d4;--blue-muted: rgba(126, 184, 212, .4);--border: rgba(255, 255, 255, .08);--border-subtle: rgba(255, 255, 255, .12);--border-gold: rgba(200, 185, 138, .35);--border-blue: rgba(126, 184, 212, .45);--border-cream: rgba(240, 237, 230, .18);--font-display: "Playfair Display", serif;--font-body: "Lora", serif;--font-mono: "DM Mono", monospace}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{background-color:var(--bg);color:var(--cream);-webkit-font-smoothing:antialiased;overflow-x:hidden}::selection{background:#c8b98a40}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--gold-muted);border-radius:2px}.portfolio-root{min-height:100vh;background-color:var(--bg)}.nav{position:fixed;top:0;left:0;right:0;z-index:100;padding:1.4rem 2rem;display:flex;justify-content:space-between;align-items:center;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);background-color:#0d0c0bd9}.nav-name{font-family:var(--font-mono);font-size:.78rem;letter-spacing:.15em;text-transform:uppercase;color:var(--cream-faint)}.nav-contact{font-family:var(--font-mono);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);text-decoration:none;transition:opacity .18s}.nav-contact:hover{opacity:.7}.hero{min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:clamp(6rem,12vw,9rem) clamp(1.5rem,6vw,6rem);position:relative;overflow:hidden}.hero-grid-bg{position:absolute;inset:0;background-image:linear-gradient(rgba(200,185,138,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(200,185,138,.09) 1px,transparent 1px);background-size:64px 64px;pointer-events:none;mask-image:radial-gradient(ellipse 80% 80% at 50% 50%,black 40%,transparent 100%);-webkit-mask-image:radial-gradient(ellipse 80% 80% at 50% 50%,black 40%,transparent 100%)}.hero-line{position:absolute;left:50%;transform:translate(-50%);width:1px;background-color:var(--gold);transition:height 1s cubic-bezier(.16,1,.3,1) .3s}.hero-line--top{top:0}.hero-line--bottom{bottom:0}.hero-content{position:relative;display:flex;flex-direction:column;align-items:center}.hero-eyebrow{font-family:var(--font-mono);font-size:clamp(.72rem,1.8vw,.85rem);letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:1.75rem}.hero-name{font-family:var(--font-display);font-size:clamp(3.2rem,9vw,7.5rem);font-weight:700;line-height:.95;letter-spacing:-.03em;color:var(--cream);margin-bottom:2.5rem}.hero-name-italic{font-style:italic;font-weight:400}.hero-bio{font-family:var(--font-body);font-size:clamp(1rem,1.8vw,1.15rem);line-height:1.8;color:var(--cream-muted);max-width:480px;margin-bottom:3rem;opacity:.55}.hero-bio{opacity:1;color:#f0ede68c}.social-links{display:flex;gap:.75rem;flex-wrap:wrap;justify-content:center}.social-link{font-family:var(--font-mono);font-size:clamp(.72rem,1.4vw,.82rem);letter-spacing:.15em;text-transform:uppercase;color:var(--link-color);text-decoration:none;padding:.6rem 1.4rem;border:1px solid var(--link-border);background-color:var(--link-bg);transition:background-color .2s,color .2s}.social-link:hover{background-color:var(--link-color);color:var(--bg)}.section{padding:clamp(4rem,8vw,7rem) clamp(1.5rem,6vw,6rem);border-top:1px solid var(--border)}.section--skills{background-color:var(--surface);padding:clamp(3.5rem,7vw,6rem) clamp(1.5rem,6vw,6rem);text-align:center}.section-header{display:flex;align-items:center;gap:1.5rem;margin-bottom:3.5rem}.section-heading{font-family:var(--font-display);font-size:clamp(2.2rem,5vw,3.2rem);font-weight:700;letter-spacing:-.025em;color:var(--cream);white-space:nowrap}.section-heading-line{flex:1;height:1px;background-color:#ffffff1a;max-width:300px}.card{border-top:1px solid var(--border-subtle);padding:2.5rem 0;cursor:default}.card-top-row{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:.75rem;margin-bottom:1.25rem}.card-title-group{display:flex;align-items:baseline;gap:1.25rem;flex-wrap:wrap}.card-title{font-family:var(--font-display);font-size:clamp(2rem,5vw,2.8rem);font-weight:700;color:var(--cream);letter-spacing:-.02em;line-height:1.05;text-decoration:none}a.card-title{display:inline-flex;align-items:baseline;gap:.5rem;text-underline-offset:6px;text-decoration-color:transparent;transition:color .22s,text-decoration-color .22s}a.card-title:after{content:"→";font-family:var(--font-mono);font-size:.7em;font-weight:400;color:var(--gold-muted);transform:translate(0);transition:transform .22s cubic-bezier(.22,1,.36,1),color .22s}a.card-title:hover{color:var(--gold);text-decoration:underline;text-decoration-color:var(--gold-muted)}a.card-title:hover:after{transform:translate(6px);color:var(--gold)}.card-tag{font-family:var(--font-mono);font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);padding-top:.1rem}.card-year{font-family:var(--font-mono);font-size:.8rem;letter-spacing:.08em;color:#f0ede659}.card-period{font-family:var(--font-mono);font-size:.8rem;letter-spacing:.08em;color:#f0ede659;padding-top:.55rem}.card-body{font-family:var(--font-body);font-size:clamp(1.05rem,2.2vw,1.15rem);line-height:1.8;color:var(--cream-muted);margin-bottom:1.4rem}.card-divider{border-top:1px solid var(--border)}.tag-group{display:flex;flex-wrap:wrap;gap:.55rem}.tag{font-family:var(--font-mono);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:#f0ede680;border:1px solid var(--border-cream);padding:.3rem .75rem;border-radius:2px}.tag--gold{color:var(--gold);border-color:var(--border-gold)}.tag--faint{color:var(--cream-faint);border-color:#f0ede61f}.card-links{margin-top:1.4rem;display:flex;flex-wrap:wrap;align-items:center;gap:1.5rem}.card-link-group{display:flex;align-items:center;gap:.5rem}.card-link{font-family:var(--font-mono);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;border-bottom:1px solid;padding-bottom:1px;transition:opacity .18s}.card-link:hover{opacity:.7}.card-link--gold{color:var(--gold);border-color:var(--gold-muted)}.card-link--blue{color:var(--blue);border-color:var(--blue-muted)}.card-link--teal{color:#8ab4c8;border-color:#8ab4c866}.card-link-arrow{font-size:.8rem;opacity:.5}.card-link-arrow--gold{color:var(--gold)}.card-link-arrow--blue{color:var(--blue)}.card-link-arrow--teal{color:#8ab4c8}.bullets{display:flex;flex-direction:column;gap:.85rem;margin-bottom:1.75rem}.bullet{display:flex;gap:.85rem;align-items:flex-start}.bullet-dash{color:var(--gold);font-family:var(--font-mono);font-size:.75rem;padding-top:.38rem;flex-shrink:0}.bullet-text{font-family:var(--font-body);font-size:clamp(1rem,1.8vw,1.08rem);line-height:1.82;color:#f0ede6a6}.edu-name{font-family:var(--font-display);font-size:clamp(2rem,5vw,2.8rem);font-weight:700;color:var(--cream);letter-spacing:-.02em;line-height:1.05;margin:0}.edu-name-accent{font-style:italic;font-weight:400;color:var(--gold)}.edu-meta-row{display:flex;align-items:baseline;gap:2rem;flex-wrap:wrap;margin-bottom:2rem}.edu-degree{font-family:var(--font-body);font-size:clamp(1rem,1.8vw,1.08rem);color:var(--cream-muted);line-height:1.5}.edu-gpa-group{display:flex;align-items:baseline;gap:.5rem}.edu-gpa-label{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:#f0ede64d}.edu-gpa{font-family:var(--font-display);font-size:clamp(1.2rem,2.5vw,1.6rem);font-weight:700;color:var(--gold);letter-spacing:-.02em}.edu-section-label{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:#f0ede647;margin-bottom:.7rem}.activities{display:flex;flex-direction:column;gap:.6rem;margin-bottom:1.75rem}.activity{display:flex;gap:.85rem;align-items:flex-start}.activity-dash{color:var(--gold);font-family:var(--font-mono);font-size:.75rem;padding-top:.2rem;flex-shrink:0}.activity-text{font-family:var(--font-body);font-size:clamp(1rem,1.8vw,1.08rem);color:var(--cream-muted);line-height:1.6}.skills-grid{display:flex;gap:4rem;flex-wrap:wrap;justify-content:center;align-items:flex-start}.skill-group{min-width:120px}.skill-group-label{font-family:var(--font-mono);font-size:clamp(.72rem,1.5vw,.82rem);letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin-bottom:1.25rem}.skill-items{display:flex;flex-direction:column;gap:.6rem;align-items:center}.skill-item{font-family:var(--font-body);font-size:clamp(1rem,2vw,1.1rem);color:var(--cream-faint)}.footer{padding:clamp(5rem,10vw,8rem) clamp(1.5rem,6vw,6rem);border-top:1px solid var(--border)}.footer-eyebrow{font-family:var(--font-mono);font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin-bottom:1.5rem}.footer-heading{font-family:var(--font-display);font-size:clamp(2.5rem,7vw,5.5rem);font-weight:700;letter-spacing:-.03em;line-height:1;color:var(--cream);margin-bottom:2.5rem}.footer-heading-italic{font-style:italic;font-weight:400}.footer-email{font-family:var(--font-mono);font-size:clamp(.78rem,1.6vw,.88rem);letter-spacing:.12em;text-transform:uppercase;color:var(--cream);border:1px solid rgba(240,237,230,.25);padding:.9rem 2rem;display:inline-block;-webkit-user-select:all;user-select:all;cursor:text}.footer-bottom{margin-top:5rem;padding-top:2rem;border-top:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.footer-copy{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.1em;color:var(--cream-ghost)}.footer-links{display:flex;gap:1.5rem}.footer-link{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:#f0ede64d;text-decoration:none;transition:color .18s}.footer-link:hover{color:var(--cream-faint)}@media(max-width:640px){.skills-grid{gap:2.5rem}.card-top-row{flex-direction:column}.edu-meta-row{flex-direction:column;gap:.75rem}.social-links{flex-direction:column;align-items:stretch}.social-link{text-align:center}}
