:root{color-scheme:light;--ink:#080c1b;--muted:#56616f;--blue:#147b9d;--line:rgba(68,102,125,.13);--heading:"Syne",Arial,sans-serif;--body:"DM Sans",Arial,sans-serif;font-family:var(--body);font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;color:var(--ink);background:#f8fcff;font-size:1rem;line-height:1.65;background-image:radial-gradient(ellipse at 0 10%,#caeff7 0,transparent 27%),radial-gradient(ellipse at 100% 22%,#eeebff 0,transparent 25%),radial-gradient(ellipse at 95% 61%,#e6f5f7 0,transparent 28%)}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible{outline:3px solid #147b9d;outline-offset:5px}::selection{background:#bceef4}.shell{width:min(1160px,90%);margin-inline:auto}.skip-link{position:absolute;top:0;left:1rem;transform:translateY(-150%);padding:.7rem 1rem;background:white;z-index:10}.skip-link:focus{transform:none}.header{position:sticky;top:0;z-index:4;background:rgba(250,253,255,.9);border-bottom:1px solid rgba(130,158,175,.08);backdrop-filter:blur(18px)}.nav-wrap{width:min(1120px,90%);min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:2rem;margin:auto}.wordmark{font-family:var(--heading);font-size:1.4rem;font-weight:700;letter-spacing:-.065em;white-space:nowrap}.wordmark span{color:var(--blue)}nav{display:flex;gap:1.8rem;color:var(--muted);font-size:.9375rem;font-weight:500}nav a:hover{color:var(--blue)}.hero{min-height:700px;display:grid;grid-template-columns:1.55fr 1fr;gap:4rem;align-items:center;position:relative;padding:4.8rem 0 5.5rem}.badge{display:inline-flex;align-items:center;padding:.45rem .85rem;border:1px solid rgba(100,176,192,.2);border-radius:14px;background:rgba(255,255,255,.76);box-shadow:0 5px 24px rgba(80,150,176,.07);font-size:.875rem;font-weight:700;color:#40515b}h1{font-family:var(--heading);font-size:clamp(3.6rem,6.5vw,6rem);font-weight:800;line-height:1.04;letter-spacing:-.055em;margin:1.65rem 0}h1 span,h2 span{color:var(--blue)}.hero-description{font-size:1.13rem;line-height:1.7;color:#4e5b65;max-width:580px;margin:0}.hero-role{font-family:var(--heading);font-size:1.5rem;font-weight:700;color:var(--blue);margin:1.35rem 0 2.2rem}.cursor{font-weight:400;margin-left:.16rem;color:#48b6c1;animation:blink 1.1s step-end infinite}.hero-actions,.socials,.contact-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.85rem}.button{display:inline-flex;gap:1.4rem;align-items:center;justify-content:center;background:rgba(255,255,255,.85);border:1px solid var(--line);border-radius:15px;padding:.85rem 1.45rem;box-shadow:0 3px 12px rgba(82,111,133,.02);font-size:.9375rem;font-weight:700;transition:transform .2s,box-shadow .2s}.button:hover{transform:translateY(-3px);box-shadow:0 9px 22px rgba(47,126,156,.1)}.primary{background:#ecfcff;color:#166782;border-color:#c7eaf0}.socials{margin-top:1.8rem;gap:.7rem}.socials a{display:flex;align-items:center;gap:.55rem;border:1px solid var(--line);background:rgba(255,255,255,.88);padding:.48rem 1rem;border-radius:30px;color:#3c4956;font-size:.9375rem;font-weight:600}.socials a:hover{border-color:#69b9ca}.socials svg{width:17px;height:17px}.profile-card{height:480px;border:10px solid rgba(255,255,255,.87);border-radius:32px;background:linear-gradient(150deg,#d0edf3,#e7f2f9 48%,#dedfed);box-shadow:0 26px 70px rgba(73,104,137,.17),0 0 50px rgba(59,191,208,.12);padding:1.5rem;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}.profile-top{display:flex;align-items:center;justify-content:space-between;gap:1rem;font-size:.75rem;letter-spacing:.1em;font-weight:700;color:#406875}.profile-number{border:1px solid #91bfc9;border-radius:50%;padding:.25rem .45rem;letter-spacing:0}.monogram{font-family:var(--heading);font-size:8rem;font-weight:800;line-height:1;letter-spacing:-.08em;color:#15445b}.monogram span{color:#4ca8bb}.profile-bottom>p{font-family:var(--heading);font-size:1.7rem;font-weight:700;line-height:1.25;letter-spacing:-.035em;margin:0 0 1.25rem}.profile-degree{border-top:1px solid #aecbd4;padding-top:1rem;color:#385a6b;font-size:.875rem;font-weight:600}.profile-degree span{display:block;font-size:.8125rem;font-weight:400;margin-top:.1rem}.scroll-cue{position:absolute;bottom:1rem;left:50%;color:#7093a2;font-size:1.4rem;padding:.5rem}.section{padding:5.5rem 0}.section-heading{text-align:center;margin-bottom:3rem}.eyebrow{font-size:.75rem;letter-spacing:.14em;font-weight:700;color:var(--blue);margin:0 0 .5rem}h2{font-family:var(--heading);font-size:clamp(2.2rem,4vw,3.3rem);line-height:1.15;letter-spacing:-.04em;margin:0;font-weight:700}.section-heading h2::after{content:"";display:block;width:48px;height:3px;border-radius:3px;background:linear-gradient(90deg,#64c9d0,#d2f3f6);margin:1.1rem auto 0}.section-heading>p:last-child:not(.eyebrow){color:var(--muted);margin:1.35rem 0 0;font-size:1.0625rem}.about-intro{max-width:790px;text-align:center;margin:0 auto 2.8rem;color:var(--muted);font-size:1.15rem;line-height:1.9}.facts{max-width:760px;margin:0 auto;background:rgba(255,255,255,.72);border:1px solid rgba(255,255,255,.85);padding:1.1rem 1.8rem;border-radius:24px;box-shadow:0 15px 50px rgba(76,108,133,.05)}.facts>div{display:flex;justify-content:space-between;gap:1.2rem;padding:.9rem 0;border-bottom:1px solid var(--line);font-size:.9375rem}.facts>div:last-child{border:0}.facts dt{color:var(--muted)}.facts dd{margin:0;text-align:right;font-weight:500;overflow-wrap:anywhere}.facts a:hover{color:var(--blue)}.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.3rem}.project-card{display:flex;flex-direction:column;padding:1.7rem;background:rgba(255,255,255,.8);border:1px solid rgba(118,151,173,.14);border-radius:24px;box-shadow:0 10px 40px rgba(77,110,140,.05);transition:transform .2s,box-shadow .2s}.project-card:hover{transform:translateY(-5px);box-shadow:0 18px 46px rgba(77,110,140,.1)}.project-top{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:2rem}.project-index{font-family:var(--heading);font-weight:700;font-size:1.8rem;line-height:1;color:#71aab9}.project-category{font-size:.75rem;font-weight:700;letter-spacing:.07em;color:#627c89}h3{font-family:var(--heading);font-size:1.4rem;line-height:1.3;letter-spacing:-.025em;margin:0 0 1rem}.project-card p{font-size:.9375rem;line-height:1.8;color:var(--muted);margin:0 0 1rem}.tags{list-style:none;padding:1rem 0 0;margin:auto 0 0;display:flex;flex-wrap:wrap;gap:.45rem}.tags li{font-size:.8125rem;font-weight:500;background:#f0f7fa;color:#47616f;padding:.3rem .65rem;border:1px solid #e1edf2;border-radius:8px}.project-status{margin-top:1rem;font-size:.8125rem;color:#68758a;font-weight:600}.text-link{color:var(--blue);font-size:.9375rem;font-weight:600}.text-link:hover{text-decoration:underline}.project-link{display:block;width:fit-content;margin:2rem auto 0}.skills-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}.skill-group{background:rgba(255,255,255,.55);border:1px solid var(--line);border-radius:22px;padding:1.6rem}.skill-group h3{font-size:1.1rem;margin-bottom:1.3rem}.skill-group ul{display:flex;flex-wrap:wrap;gap:.6rem;list-style:none;margin:0;padding:0}.skill-group li{font-size:.9375rem;padding:.55rem .9rem;border:1px solid var(--line);background:white;border-radius:11px;color:#4b5d6c}.experience-list{max-width:860px;margin:auto}.experience-row{display:grid;grid-template-columns:190px 1fr;gap:2rem;padding:2rem 0;border-bottom:1px solid var(--line)}.experience-row:first-child{padding-top:0}.experience-date{color:#668492;font-size:.75rem;font-weight:700;letter-spacing:.04em;padding-top:.2rem}.experience-row h3{margin-bottom:.35rem}.experience-row p{color:var(--muted);margin:.6rem 0 0;font-size:1rem}.experience-row .employer{color:var(--blue);font-size:.9375rem;font-weight:500;margin:0}.contact{padding-top:4rem;padding-bottom:6rem}.contact .section-heading{margin-bottom:2rem}.contact-actions{justify-content:center}footer{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;align-items:center;border-top:1px solid var(--line);padding-top:1.6rem;padding-bottom:1.6rem;font-size:.8125rem;color:var(--muted)}footer a:hover{color:var(--blue)}@keyframes blink{50%{opacity:0}}@media(max-width:950px){.hero{gap:2rem;grid-template-columns:1.3fr 1fr}.profile-card{height:420px;padding:1rem}.monogram{font-size:7rem}.project-grid{grid-template-columns:1fr}.project-card{padding:2rem}.project-top{margin-bottom:1.2rem}.skills-grid{gap:1rem}.skill-group{padding:1.2rem}nav{gap:1rem}.hero-role{font-size:1.25rem}}@media(max-width:680px){html{scroll-padding-top:130px}.nav-wrap{flex-direction:column;align-items:center;gap:.6rem;padding:1rem 0}.wordmark{font-size:1.25rem}nav{gap:clamp(.65rem,3.5vw,1.4rem);font-size:.875rem}.hero{grid-template-columns:1fr;padding:3.2rem 0 4rem;gap:3rem;min-height:0}h1{font-size:clamp(3.2rem,14vw,5.6rem)}.hero-description{font-size:1.0625rem}.profile-card{height:350px;max-width:450px;width:100%;margin:auto;padding:1.2rem}.monogram{font-size:6rem}.profile-bottom>p{font-size:1.5rem}.profile-degree{font-size:.8125rem}.section{padding:3.5rem 0}.section-heading{margin-bottom:2rem}.about-intro{font-size:1.0625rem;text-align:left}.facts{padding:.7rem 1.1rem}.facts>div{flex-direction:column;gap:.2rem}.facts dd{text-align:left}.skills-grid{grid-template-columns:1fr}.experience-row{grid-template-columns:1fr;gap:.65rem}.project-card{padding:1.4rem}.hero-actions .button{padding:.8rem 1rem;gap:.7rem}.contact-actions{gap:.6rem}.contact-actions .button{padding:.8rem 1rem;gap:.6rem}footer{justify-content:center;text-align:center}.contact{padding-bottom:3.5rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}

/* Polished surfaces and progressive motion; content also works without JS. */
:root{--blue:#107b98}body{background-color:#f7fbfe;background-image:radial-gradient(ellipse at 3% 5%,#c5eef7 0,transparent 24%),radial-gradient(ellipse at 98% 16%,#e5e5fd 0,transparent 24%),radial-gradient(ellipse at 80% 62%,#dbf4f3 0,transparent 26%)}.hero{isolation:isolate;padding-top:5.3rem;gap:4.5rem}.hero::before{content:"";position:absolute;z-index:-1;width:65%;height:65%;right:-3%;top:14%;border-radius:50%;background:radial-gradient(ellipse,rgba(117,187,240,.16),transparent 68%);filter:blur(30px);animation:ambient-drift 14s ease-in-out infinite alternate}.hero-copy{min-width:0}.badge{background:#ffffffb8;box-shadow:0 5px 25px #357c9c0d;border-radius:30px;padding:.55rem 1rem}.name-line{display:grid;color:var(--ink)}.name-space,.name-typed{grid-area:1/1}.name-space{visibility:hidden}.name-typed{color:var(--ink);background:linear-gradient(115deg,#071c31 12%,#155b78 68%,#178da1);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.hero h1{margin:1.4rem 0 1.5rem;line-height:1.08}.hero-description{max-width:540px;color:#536477}.role-wrap{margin:1.2rem 0 1.9rem}.hero-role{margin:0;min-height:2.15em;line-height:1.35;max-width:100%;font-size:clamp(1.05rem,2.05vw,1.5rem)}.motion-toggle{font:500 .75rem var(--body);border:0;border-bottom:1px dotted #8499a8;padding:.15rem 0;color:#637686;background:transparent;cursor:pointer}.motion-toggle:hover{color:#0b657b}.motion-toggle:focus-visible{outline:2px solid var(--blue);outline-offset:4px}.motion-toggle[hidden]{display:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.primary{color:white;background:linear-gradient(115deg,#125779,#16869a);border-color:#18738c;box-shadow:0 8px 22px #1b718929}.primary:hover{box-shadow:0 12px 28px #1b718940}.button span{transition:transform .25s}.button:hover span{transform:translate(2px,-2px)}.socials a{transition:transform .2s,background .2s}.socials a:hover{transform:translateY(-3px);background:white}.profile-card{position:relative;height:490px;border:8px solid #ffffffdd;border-radius:34px;padding:1.6rem;background:radial-gradient(ellipse at 90% 0%,#23687b 0%,transparent 65%),linear-gradient(150deg,#14324c,#101e34 70%);box-shadow:0 32px 65px #244c7230,0 0 0 1px #cee0eb;color:#eaf8ff;animation:profile-float 7s ease-in-out infinite;transition:box-shadow .35s}.profile-card::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(125deg,transparent 25%,#ffffff07 45%,transparent 65%);background-size:250% 250%;animation:card-light 12s ease-in-out infinite}.profile-card:hover{box-shadow:0 35px 80px #244c7240}.profile-top{color:#b5d5e3;font-size:.75rem;letter-spacing:.1em}.profile-number{border-color:#77b7c566;color:#dcf7fc}.monogram{color:#effaff;text-shadow:0 10px 45px #29c7d22b;font-size:8.5rem}.monogram span{color:#6cdddc}.focus-label{display:block;font-size:.75rem;color:#82cbda;letter-spacing:.14em;font-weight:600;margin-bottom:.6rem}.profile-bottom>p{font-size:1.75rem;margin-bottom:1.2rem}.profile-degree{border-color:#8cbdcd38;color:#d4e7f0}.profile-degree span{color:#99b6c8}.section-heading h2::after{width:64px;background:linear-gradient(90deg,#1594a4,#90dfe6)}.project-card{position:relative;border:1px solid #dbe8ef;background:linear-gradient(145deg,#fff,#f9fdff);box-shadow:0 8px 36px #29465d08;overflow:hidden}.project-card::before{content:"";position:absolute;top:0;left:1.7rem;right:1.7rem;height:3px;background:linear-gradient(90deg,#2499af,#a6d4e9);border-radius:0 0 3px 3px}.project-card:nth-child(2)::before{background:linear-gradient(90deg,#6b80c9,#bed0f2)}.project-card:nth-child(3)::before{background:linear-gradient(90deg,#39a891,#b4e4d8)}.project-card:hover{border-color:#b2d6e2}.project-index{color:#3f8aa0}.tags li{transition:background .2s,color .2s}.project-card:hover .tags li{background:#e9f5f8;color:#225b6c}.skill-group{box-shadow:0 8px 32px #30577605}.skill-group li{transition:transform .2s,border-color .2s}.skill-group li:hover{transform:translateY(-3px);border-color:#8fc2d3}.facts{border-color:#dceaf1;box-shadow:0 15px 55px #4b708010}.experience-row{transition:transform .25s}.experience-row:hover{transform:translateX(4px)}.contact{position:relative}.contact-email{display:block;width:fit-content;max-width:100%;overflow-wrap:anywhere;text-align:center;margin:0 auto 1.8rem;font-family:var(--heading);font-size:clamp(1rem,2.3vw,1.5rem);font-weight:600;color:#155e78}.contact-email:hover{color:#0c8b9e}.section-heading,.about-intro,.facts,.project-card,.skill-group,.experience-row,.contact-actions{transition:opacity .65s ease,transform .65s cubic-bezier(.2,.65,.2,1),box-shadow .3s,border-color .3s}.will-reveal{opacity:0;transform:translateY(22px)}.motion-paused *,.motion-paused *::before,.motion-paused *::after{animation:none!important;transition:none!important}.motion-paused .will-reveal{opacity:1;transform:none}nav a{position:relative}nav a::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:2px;background:#2196a8;transform:scaleX(0);transform-origin:left;transition:transform .25s}nav a:hover::after,nav a:focus-visible::after{transform:scaleX(1)}@keyframes profile-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}@keyframes ambient-drift{from{transform:translate(0,0)}to{transform:translate(-30px,25px)}}@keyframes card-light{0%,100%{background-position:0 0}50%{background-position:100% 100%}}@media(max-width:950px){.hero{gap:2.5rem}.profile-card{height:440px;padding:1.2rem}.profile-bottom>p{font-size:1.5rem}.monogram{font-size:7rem}}@media(max-width:680px){.hero{gap:3rem;padding-top:3rem}.profile-card{height:370px;padding:1.3rem}.monogram{font-size:6rem}.role-wrap{margin-bottom:1.6rem}.hero-role{min-height:1.7em}.hero::before{right:0;max-width:100%}.profile-bottom>p{font-size:1.55rem}.hero h1{font-size:clamp(3rem,14vw,5.6rem)}}@media(prefers-reduced-motion:reduce){.will-reveal{opacity:1;transform:none}.profile-card,.hero::before,.profile-card::after{animation:none}}
