@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";:root{--accent: #b33a2e;--accent-glow: rgba(179, 58, 46, .12);--accent-hover: #c94436;--bg: #08080a;--bg-card: rgba(255, 255, 255, .022);--bg-card-hover: rgba(255, 255, 255, .032);--border: rgba(255, 255, 255, .06);--border-hover: rgba(255, 255, 255, .12);--text-1: #e8e8ec;--text-2: #8e8e9a;--text-3: #54545e;--font: "Inter", system-ui, -apple-system, sans-serif;--radius: 10px;--ease: cubic-bezier(.16, 1, .3, 1);--ease-out: cubic-bezier(.33, 1, .68, 1);color-scheme:dark;font-family:var(--font);line-height:1.6;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:15px;scroll-behavior:smooth}body{min-width:320px;min-height:100vh;color:var(--text-1);background:var(--bg);overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-weight:500;line-height:1.25;letter-spacing:-.01em}a{color:inherit;text-decoration:none}ul,ol{list-style:none}img{display:block;max-width:100%}button,input,textarea,select{font:inherit}#root{min-height:100vh}::selection{color:#fff;background:#b33a2e59}.grid-canvas{position:fixed;inset:0;z-index:-1;pointer-events:none}.topbar{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;height:3.4rem;padding:0 2rem;background:#08080ad1;-webkit-backdrop-filter:blur(16px) saturate(1.2);backdrop-filter:blur(16px) saturate(1.2);border-bottom:1px solid var(--border)}.brand{font-size:.82rem;font-weight:600;letter-spacing:-.01em;color:var(--text-1);transition:opacity .2s ease}.brand:hover{opacity:.6}.brand-char{display:inline-block;opacity:0;transform:translateY(3px);transition:opacity .32s var(--ease),transform .32s var(--ease);transition-delay:calc(var(--char-index) * 55ms + .15s)}.brand-char-in{opacity:1;transform:translateY(0)}.topbar-nav{display:flex;align-items:center;gap:.1rem;position:relative}.topbar-nav a{position:relative;padding:.35rem .7rem;font-size:.75rem;font-weight:500;letter-spacing:.01em;color:var(--text-3);border-radius:6px;transition:color .25s var(--ease)}.topbar-nav a:hover,.topbar-nav a:focus-visible{color:var(--text-2)}.topbar-nav a.active{color:var(--text-1)}.nav-indicator{position:absolute;bottom:2px;height:2px;background:var(--accent);border-radius:1px;transition:left .35s var(--ease),width .35s var(--ease);pointer-events:none}.topbar-resume{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .8rem;font-size:.72rem;font-weight:600;letter-spacing:.02em;color:var(--text-2);border:1px solid var(--border);border-radius:6px;background:transparent;transition:color .25s var(--ease),border-color .25s var(--ease),background .25s var(--ease),box-shadow .25s var(--ease)}.topbar-resume:hover{color:var(--text-1);border-color:#b33a2e66;background:#b33a2e0f;box-shadow:0 0 20px #b33a2e0f}main{width:min(1060px,calc(100% - 3rem));margin:0 auto;padding:0 0 4rem;overflow-x:hidden}section[id]{scroll-margin-top:4rem}#credentials{scroll-margin-top:4.5rem}#contact{scroll-margin-top:4rem}.section{padding:4.5rem 0}.section-divider{height:1px;background:var(--border);transform-origin:left;transform:scaleX(0);transition:transform .8s var(--ease-out)}.section-divider.is-visible{transform:scaleX(1)}.section-label{display:block;margin-bottom:.75rem;font-size:.7rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.section-title{font-size:clamp(1.5rem,2.8vw,2rem);font-weight:500;line-height:1.35;letter-spacing:-.01em;color:var(--text-1);max-width:38ch;text-wrap:pretty}.hero{display:grid;grid-template-columns:1fr 320px;gap:5rem;align-items:center;min-height:calc(100vh - 3.4rem);padding:4rem 0 2rem}.hero-copy{display:flex;flex-direction:column}.hero-descriptor{font-size:.7rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);opacity:0;transform:translateY(12px);animation:fade-up .6s var(--ease) 80ms forwards}.hero-name{margin-top:.5rem;font-size:clamp(2.6rem,5.5vw,3.8rem);font-weight:700;line-height:1.15;letter-spacing:-.02em;color:var(--text-1);opacity:0;transform:translateY(20px);animation:fade-up .7s var(--ease) .15s forwards}.text-reveal{display:inline}.section-title .text-reveal{display:block}.text-word{white-space:nowrap;display:inline-block}.text-char{display:inline-block;opacity:0;transform:translateY(4px);transition:opacity .35s var(--ease),transform .35s var(--ease);transition-delay:var(--char-delay, 0ms)}.hero-name .text-reveal-in .text-char,.reveal.is-visible .text-char{opacity:1;transform:translateY(0)}.sm-br{display:none}.hero-paragraph{margin-top:1.25rem;font-size:.95rem;font-weight:400;line-height:1.65;color:var(--text-2);max-width:44ch;opacity:0;transform:translateY(14px);animation:fade-up .7s var(--ease) .35s forwards}.hero-actions{display:flex;gap:.6rem;margin-top:2rem;opacity:0;transform:translateY(14px);animation:fade-up .6s var(--ease) .52s forwards}.stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;margin-top:2.5rem}.stat-item{padding:1rem 1.1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);cursor:default;opacity:0;transform:translateY(14px);animation:fade-up .5s var(--ease) forwards;transition:border-color .3s ease}.stat-item:nth-child(1){animation-delay:.65s}.stat-item:nth-child(2){animation-delay:.73s}.stat-item:nth-child(3){animation-delay:.81s}.stat-item:hover{border-color:var(--border-hover)}.stat-value{display:block;font-size:1.35rem;font-weight:600;line-height:1;color:var(--text-1);letter-spacing:-.02em}.stat-label{display:block;margin-top:.4rem;font-size:.78rem;color:var(--text-3)}.hero-panel{align-self:center;opacity:0;transform:translate(18px);animation:slide-in-right .7s var(--ease) .4s forwards}.hero-panel-inner{padding:1.15rem 1.25rem;border:1px solid var(--border);border-radius:var(--radius);background:transparent;cursor:default;transition:border-color .3s ease}.hero-panel-inner:hover{border-color:var(--border-hover)}.panel-label{display:block;margin-bottom:.5rem;font-size:.62rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.focus-list{display:grid;gap:.2rem}.focus-list li{padding:.35rem 0;font-size:.82rem;color:var(--text-2);cursor:default}.panel-separator{height:1px;background:var(--border);margin:.75rem 0}.tool-strip{display:flex;flex-wrap:wrap;gap:.3rem}.tool-strip span{padding:.22rem .5rem;font-size:.7rem;font-weight:500;color:var(--text-3);border:1px solid var(--border);border-radius:4px;cursor:default;transition:border-color .3s ease}.tool-strip span:hover{border-color:var(--border-hover)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.55rem 1.25rem;border-radius:8px;font-size:.8rem;font-weight:500;letter-spacing:.01em;cursor:pointer;transition:all .25s var(--ease)}.btn-primary{border:none;color:#fff;background:var(--accent)}.btn-primary:hover{background:var(--accent-hover);box-shadow:0 4px 24px #b33a2e40;transform:translateY(-2px)}.btn-primary:active{transform:translateY(0);box-shadow:none}.btn-secondary{border:1px solid var(--border);color:var(--text-2);background:transparent}.btn-secondary:hover{border-color:var(--border-hover);color:var(--text-1);transform:translateY(-2px)}.btn-secondary:active{transform:translateY(0)}.timeline{margin-top:2rem}.timeline-entry{display:grid;grid-template-columns:180px 1fr;gap:2rem;padding:1.75rem 0;position:relative;cursor:default}.timeline-entry+.timeline-entry:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:var(--border);transform-origin:left}.timeline-entry.reveal{opacity:0;transform:none}.timeline-entry.reveal .timeline-meta{opacity:0;transform:translate(-12px);transition:opacity .55s var(--ease),transform .55s var(--ease)}.timeline-entry.reveal .timeline-copy{opacity:0;transform:translate(12px);transition:opacity .55s var(--ease) 80ms,transform .55s var(--ease) 80ms}.timeline-entry.reveal.is-visible{opacity:1}.timeline-entry.reveal.is-visible .timeline-meta,.timeline-entry.reveal.is-visible .timeline-copy{opacity:1;transform:translate(0)}.timeline-entry.reveal.is-visible+.timeline-entry.reveal.is-visible:before{animation:line-grow .7s var(--ease-out) forwards}.timeline-period{font-size:.78rem;font-weight:500;color:var(--text-3)}.timeline-location{margin-top:.2rem;font-size:.78rem;color:var(--text-3)}.timeline-copy h3{font-size:.98rem;font-weight:500;color:var(--text-1)}.timeline-company{margin-top:.2rem;font-size:.85rem;font-weight:400;color:var(--accent)}.timeline-copy ul{margin-top:.7rem;padding-left:1rem;list-style:disc}.timeline-copy li{font-size:.85rem;line-height:1.55;color:var(--text-2)}.timeline-copy li+li{margin-top:.3rem}.skills-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;margin-top:2rem}.skill-card{padding:1.25rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);cursor:default;transition:border-color .3s ease,background .3s ease}.skill-card:hover{border-color:var(--border-hover);background:var(--bg-card-hover)}.skill-card h3{font-size:.9rem;font-weight:500;color:var(--text-1)}.skill-card p{margin-top:.45rem;font-size:.82rem;line-height:1.5;color:var(--text-2)}.credentials-grid{display:grid;grid-template-columns:1.2fr .9fr .9fr;gap:.75rem;margin-top:2rem;align-items:stretch}.credential-card{padding:1.25rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);display:flex;flex-direction:column;cursor:default;transition:border-color .3s ease,background .3s ease}.credential-card:hover{border-color:var(--border-hover);background:var(--bg-card-hover)}.credential-card h3{margin-bottom:.75rem;font-size:.62rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.credential-card h4{font-size:.95rem;font-weight:500;color:var(--text-1)}.credential-card p{margin-top:.2rem;font-size:.82rem;color:var(--text-2);line-height:1.5}.cred-detail{margin-top:.5rem;font-size:.78rem;color:var(--text-3);line-height:1.5}.coursework-area{margin-top:3.5rem}.coursework-section-label{display:block;margin-bottom:.85rem;font-size:.65rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.coursework-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem}.coursework-card{flex:1 1 40%;min-width:260px;max-width:48%;padding:1.25rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);cursor:default;transition:border-color .3s ease,background .3s ease;display:flex;flex-direction:column;justify-content:center}.coursework-card:hover{border-color:var(--border-hover);background:var(--bg-card-hover)}.coursework-code{display:block;font-size:.78rem;font-weight:500;color:var(--text-3);margin-bottom:.35rem}.coursework-title{font-size:.95rem;font-weight:500;color:var(--text-1);line-height:1.4}.pill-list{display:grid;grid-template-columns:1fr 1fr;gap:.4rem;flex:1;align-content:flex-start}.pill-list li{padding:.4rem .65rem;font-size:.78rem;font-weight:500;color:var(--text-2);border:1px solid var(--border);border-radius:6px;cursor:default;text-align:center;transition:border-color .3s ease}.pill-list li:hover{border-color:var(--border-hover)}.reveal-stagger .pill-list li{opacity:0;transform:translateY(8px);transition:opacity .4s var(--ease),transform .4s var(--ease),border-color .3s ease}.reveal-stagger.is-visible .pill-list li:nth-child(1){opacity:1;transform:translateY(0);transition-delay:.1s}.reveal-stagger.is-visible .pill-list li:nth-child(2){opacity:1;transform:translateY(0);transition-delay:.16s}.reveal-stagger.is-visible .pill-list li:nth-child(3){opacity:1;transform:translateY(0);transition-delay:.22s}.reveal-stagger.is-visible .pill-list li:nth-child(4){opacity:1;transform:translateY(0);transition-delay:.28s}.contact-section{text-align:center;padding-top:6.5rem;padding-bottom:5rem;position:relative}.contact-inner{max-width:26rem;margin:0 auto;position:relative}.contact-inner .section-title{max-width:100%}.contact-copy{margin-top:.75rem;font-size:.9rem;color:var(--text-2);line-height:1.6}.contact-cta-row{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin-top:1.75rem}.contact-cta{display:flex;flex-direction:column;align-items:center;gap:.3rem;padding:1rem .75rem;border:1px solid var(--border);border-radius:var(--radius);text-align:center;cursor:pointer;transition:border-color .25s ease,background .25s ease}.contact-cta:hover{border-color:var(--border-hover);background:var(--bg-card-hover)}.contact-cta-label{font-size:.82rem;font-weight:500;color:var(--text-1)}.contact-cta-hint{font-size:.7rem;color:var(--text-3);position:relative;line-height:1.4}.cta-hint-default{display:block;transition:opacity .25s var(--ease),transform .25s var(--ease)}.cta-hint-email{position:absolute;left:0;right:0;top:0;text-align:center;opacity:0;transform:translateY(4px);transition:opacity .25s var(--ease),transform .25s var(--ease)}.contact-cta-email-card:hover .cta-hint-default{opacity:0;transform:translateY(-4px)}.contact-cta-email-card:hover .cta-hint-email{opacity:1;transform:translateY(0)}.contact-actions{display:flex;justify-content:center;gap:.6rem;margin-top:1.25rem}.site-footer{padding:1.5rem 2rem;text-align:center;font-size:.75rem;color:var(--text-3);border-top:1px solid var(--border)}.reveal{opacity:0;transform:translateY(18px);transition:opacity .65s var(--ease),transform .65s var(--ease);transition-delay:var(--reveal-delay, 0ms)}.reveal.is-visible{opacity:1;transform:translateY(0)}.reveal-stagger>*:not(li):not(ul){opacity:0;transform:translateY(12px);transition:opacity .5s var(--ease),transform .5s var(--ease)}.reveal-stagger.is-visible>*:not(li):not(ul){opacity:1;transform:translateY(0)}.reveal-stagger.is-visible>*:nth-child(1){transition-delay:0ms}.reveal-stagger.is-visible>*:nth-child(2){transition-delay:60ms}.reveal-stagger.is-visible>*:nth-child(3){transition-delay:.12s}.reveal-stagger.is-visible>*:nth-child(4){transition-delay:.18s}.reveal-stagger.is-visible>*:nth-child(5){transition-delay:.24s}.reveal-stagger.is-visible>*:nth-child(6){transition-delay:.3s}.reveal-stagger.is-visible>*:nth-child(7){transition-delay:.36s}.reveal-stagger.is-visible>*:nth-child(8){transition-delay:.42s}@keyframes fade-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-in-right{0%{opacity:0;transform:translate(18px)}to{opacity:1;transform:translate(0)}}@keyframes line-grow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@media(prefers-reduced-motion:reduce){.reveal,.reveal.is-visible,.reveal-stagger>*,.reveal-stagger.is-visible>*,.reveal-stagger .pill-list li,.reveal-stagger.is-visible .pill-list li{opacity:1;transform:none;transition:none}.hero-descriptor,.hero-name,.hero-paragraph,.hero-actions,.stat-item,.hero-panel{opacity:1;transform:none;animation:none}.brand-char,.text-char,.timeline-entry.reveal,.timeline-entry.reveal .timeline-meta,.timeline-entry.reveal .timeline-copy{opacity:1;transform:none;transition:none}.section-divider{transform:scaleX(1);transition:none}}@media(max-width:1080px){.skills-grid{grid-template-columns:repeat(3,1fr)}.credentials-grid{grid-template-columns:1fr 1fr}}@media(max-width:768px){html{font-size:14.5px}.topbar{padding:0 1rem}.topbar-nav{display:none}main{width:calc(100% - 1.5rem);padding-bottom:3rem}.section{padding:3.5rem 0}.section[id],#credentials,#contact{scroll-margin-top:3.5rem}.section-title{max-width:100%;font-size:clamp(1.35rem,6vw,1.6rem);line-height:1.4;letter-spacing:-.01em;margin-bottom:.5rem;text-wrap:pretty}.section-title .text-reveal,.sm-br{display:block}.hero{grid-template-columns:1fr;min-height:auto;gap:2.5rem;padding:3rem 0 2rem}.hero-name{font-size:clamp(2rem,9vw,3rem)}.hero-paragraph{font-size:1rem;margin-top:1rem;max-width:100%;line-height:1.6}.hero-actions{flex-direction:column;width:100%;margin-top:1.75rem;gap:.75rem}.btn{width:100%;justify-content:center;padding:.85rem 1.25rem;font-size:.9rem;height:3rem}.stat-row{grid-template-columns:repeat(3,1fr);gap:.5rem;margin-top:2rem}.stat-item{padding:.8rem .6rem;text-align:center}.stat-value{font-size:1.1rem}.stat-label{font-size:.72rem;margin-top:.2rem}.hero-panel{transform:translateY(18px);animation:fade-up .7s var(--ease) .4s forwards}.hero-panel-inner{padding:1.5rem 0;border:none;border-top:1px solid var(--border);border-radius:0;margin-top:-1rem;background:transparent}.timeline{margin-top:1.5rem}.timeline-entry{grid-template-columns:1fr;gap:.6rem;padding:1.5rem 0}.timeline-meta{margin-bottom:.5rem}.timeline-period,.timeline-location{display:block;margin-right:0;font-size:.82rem}.timeline-location{margin-top:.1rem}.timeline-copy h3{font-size:1.1rem;overflow-wrap:break-word}.timeline-company{font-size:.95rem;margin-top:.15rem;margin-bottom:.75rem}.timeline-copy li{font-size:.9rem;line-height:1.65;padding-left:0;margin-top:.8rem;margin-left:1.25rem}.timeline-entry.reveal .timeline-meta,.timeline-entry.reveal .timeline-copy{transform:translateY(10px)}.timeline-entry.reveal.is-visible .timeline-meta,.timeline-entry.reveal.is-visible .timeline-copy{transform:translateY(0)}.skills-grid{grid-template-columns:repeat(2,1fr);gap:.75rem}.skill-card{padding:1rem}.skill-card h3{font-size:.95rem}.skill-card p{font-size:.88rem;margin-top:.4rem}.credentials-grid{grid-template-columns:1fr;gap:1rem}.credential-card{padding:1rem}.credential-card h3{margin-bottom:.5rem}.cred-detail{font-size:.85rem}.pill-list{grid-template-columns:1fr 1fr;gap:.5rem}.contact-section{padding-top:3.5rem;padding-bottom:4.5rem}.contact-cta-row{grid-template-columns:1fr;gap:.75rem;margin-top:2rem}.contact-cta{padding:1.25rem 1rem}.contact-cta-label{font-size:.95rem}.contact-cta-hint{font-size:.8rem}.contact-actions{margin-top:1.5rem;flex-direction:column;width:100%}}@media(max-width:480px){html{font-size:14px}.stat-row{grid-template-columns:1fr}.stat-item{text-align:left;display:flex;align-items:baseline;gap:.75rem;padding:.85rem 1rem}.stat-label{margin-top:0}.skills-grid,.pill-list{grid-template-columns:1fr}}@media(max-width:600px){.skills-grid{grid-template-columns:1fr}}
