:root{--water-top:#2f8f86;--water-mid:#14615f;--water-deep:#0a3638;--surface:#0626289e;--surface-hover:#0a3a3cbd;--border:#aaf0e133;--text:#effcf8;--muted:#a6cfc6;--accent:#4fdcff;--accent-soft:#4fdcff24;--coral:#ff9a2e;--featured:#ffd25e;--radius:14px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--text);background:var(--water-deep);font-family:Nunito,Segoe UI,system-ui,-apple-system,Roboto,sans-serif;line-height:1.55}*{box-sizing:border-box}body{background:linear-gradient(180deg, var(--water-top) 0%, var(--water-mid) 45%, var(--water-deep) 100%) fixed;min-height:100vh;margin:0}h1,h2,h3{margin:0;line-height:1.2}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.muted{color:var(--muted)}.small{font-size:.85rem}.container{width:100%;max-width:1120px;margin:0 auto;padding:0 16px}.app{flex-direction:column;min-height:100vh;display:flex;position:relative}.site-header,.main,.site-footer{z-index:1;position:relative}.main{flex:1;padding-top:36px;padding-bottom:64px}.card,.site-header,.search,select,.chip,.button{-webkit-backdrop-filter:blur(8px)}.site-header{z-index:10;background:#1e6e688c;border-bottom:1px solid #d2faf059;position:sticky;top:0;box-shadow:0 4px 24px #00142840}.header-inner{justify-content:space-between;align-items:center;gap:16px;height:62px;display:flex}.brand{color:var(--text);white-space:nowrap;align-items:center;gap:10px;font-size:1.15rem;font-weight:800;display:inline-flex}.brand:hover{text-decoration:none}.brand .shrimp{flex-shrink:0}.nav{gap:4px;display:flex}.nav a{color:var(--text);opacity:.8;white-space:nowrap;border-radius:999px;padding:6px 12px}.nav a:hover{opacity:1;background:#ffffff1a;text-decoration:none}.nav a.active{opacity:1;background:#ffffff2e}.site-footer{color:var(--text);text-shadow:0 1px 3px #0009;padding:20px 0;font-size:.85rem}.notice{border-radius:var(--radius);margin-bottom:24px;padding:12px 16px}.notice.error{background:#f8514933;border:1px solid #f8514980}.button{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:999px;padding:9px 18px;font-weight:600;display:inline-block}.button:hover{background:var(--surface-hover);text-decoration:none}.button.primary{background:var(--coral);border-color:var(--coral);color:#2a1004}.button.primary:hover{filter:brightness(1.08)}.hero{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);-webkit-backdrop-filter:blur(8px);align-items:center;gap:32px;margin-bottom:20px;padding:28px;display:flex}.avatar{border:3px solid #d2faf080;border-radius:50%;flex-shrink:0;width:140px;height:140px;box-shadow:0 0 0 8px #4fdcff1f,0 10px 30px #00000059}.hero h1{text-shadow:0 2px 12px #001e3280;font-size:2.6rem}.headline{color:var(--accent);margin:6px 0 12px;font-size:1.15rem;font-weight:600}.bio{text-shadow:0 1px 6px #001e3299;max-width:660px;margin:0 0 20px}.hero-actions{flex-wrap:wrap;gap:8px;display:flex}.education{margin-bottom:20px}.degree{align-items:flex-start;gap:14px;display:flex}.degree+.degree{margin-top:14px}.degree-icon{font-size:1.6rem;line-height:1.2}.degree-details{margin:4px 0 0;font-size:.93rem}.stats{margin-bottom:48px}.stat-row{gap:40px;margin-bottom:20px;display:flex}.stat{flex-direction:column;display:flex}.stat strong{color:var(--accent);font-size:2rem;line-height:1}.section-label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:12px;font-size:.8rem}.stats .chips{margin-top:16px;margin-bottom:0}.section-heading{justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:16px;display:flex}.section-heading h2{text-shadow:0 2px 10px #001e3280}.page-heading{text-shadow:0 2px 10px #001e3280;margin-bottom:24px}.page-heading h1{margin-bottom:6px;font-size:2.1rem}.page-heading .muted{color:var(--text);opacity:.85}.toolbar{gap:12px;margin-bottom:16px;display:flex}.search,select{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:9px 16px}.search{flex:1;min-width:0}.search::placeholder{color:var(--muted)}.search:focus,select:focus{outline:2px solid var(--accent);outline-offset:-1px}select option{background:var(--water-deep)}.chips{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.chip{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:4px 12px;font-size:.85rem;display:inline-flex}.chip:hover{background:var(--surface-hover);text-decoration:none}.chip.active{border-color:var(--accent);background:#4fdcff40}.result-count{color:var(--text);opacity:.85;margin:0 0 16px}.project-grid{grid-template-columns:repeat(auto-fill,minmax(min(320px,100%),1fr));gap:16px;display:grid}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px;box-shadow:0 8px 30px #000f1e4d,inset 0 1px #ffffff14}.project-card{flex-direction:column;justify-content:space-between;gap:16px;transition:border-color .2s,transform .2s,box-shadow .2s;display:flex}.project-card:hover{border-color:var(--accent);transform:translateY(-4px);box-shadow:0 14px 36px #000f1e66,0 0 0 1px #4fdcff40}.project-card.featured{border-color:#ffcf4d80}.project-title{overflow-wrap:anywhere;margin:6px 0 8px;font-size:1.1rem}.project-title a{color:var(--text)}.description{margin:0;font-size:.95rem}.tags{flex-wrap:wrap;gap:6px;display:flex}.tags:empty{display:none}.tag{background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:2px 9px;font-size:.75rem;font-weight:600}.tag-featured{color:var(--featured);background:#ffcf4d29}.tag-topic{border:1px solid var(--border);color:var(--muted);background:0 0}.card-top .tags+.tags{margin-top:12px}.award{color:var(--featured);background:#ffd25e24;border:1px solid #ffd25e66;border-radius:8px;margin:8px 0 0;padding:4px 10px;font-size:.85rem;font-weight:700;display:inline-block}.card-meta{flex-wrap:wrap;align-items:center;gap:12px;margin-top:14px;display:flex}.card-meta .links{gap:12px;margin-left:auto;font-size:.9rem;display:flex}.lang-bar{background:#ffffff1f;border-radius:999px;gap:2px;height:8px;display:flex;overflow:hidden}.lang-bar span{min-width:3px;display:block}.lang-legend{flex-wrap:wrap;gap:4px 14px;margin:8px 0 0;padding:0;font-size:.8rem;list-style:none;display:flex}.lang-legend li{align-items:center;gap:6px;display:inline-flex}.dot{border-radius:50%;flex-shrink:0;width:10px;height:10px;display:inline-block;box-shadow:0 0 0 1px #ffffff40}.aquarium{z-index:0;pointer-events:none;position:fixed;inset:0;overflow:hidden}.light-rays{background:repeating-linear-gradient(105deg,#fff0 0 60px,#ffffff12 60px 110px,#fff0 110px 190px);animation:12s ease-in-out infinite alternate shimmer;position:absolute;inset:-20% -10% 30%;-webkit-mask-image:linear-gradient(#000 0%,#0000 100%);mask-image:linear-gradient(#000 0%,#0000 100%)}@keyframes shimmer{0%{opacity:.7;transform:translate(-30px)}to{opacity:1;transform:translate(30px)}}.bubble{background:radial-gradient(circle at 30% 30%,#ffffffb3,#ffffff14 60%);border:1px solid #dcfaff99;border-radius:50%;animation:linear infinite rise;position:absolute;bottom:-20px}@keyframes rise{0%{opacity:0;transform:translate(0)}10%{opacity:.9}50%{transform:translate(var(--drift), -55vh)}to{opacity:.2;transform:translateY(-110vh)}}.shrimp{filter:drop-shadow(0 2px 3px #00142859);display:block;overflow:visible}.shrimp-antennae{transform-origin:101px 28px;animation:3s ease-in-out infinite alternate feel}@keyframes feel{0%{transform:rotate(-4deg)}to{transform:rotate(5deg)}}.shrimp-swimmerets line{transform-box:fill-box;transform-origin:top;animation:.5s ease-in-out infinite alternate paddle}.shrimp-swimmerets line:nth-child(2){animation-delay:-.17s}.shrimp-swimmerets line:nth-child(3){animation-delay:-.34s}@keyframes paddle{0%{transform:rotate(-18deg)}to{transform:rotate(18deg)}}@media (prefers-reduced-motion:reduce){.bubble{display:none}.light-rays,.shrimp *,.project-card{transition:none!important;animation:none!important}}@media (width<=640px){.hero{flex-direction:column;align-items:flex-start;gap:20px}.avatar{width:96px;height:96px}.hero h1{font-size:2rem}.toolbar{flex-direction:column}.nav a{padding:6px 8px}.brand{font-size:1rem}.header-inner{gap:8px}}@media (width<=480px){.brand-name{display:none}.nav{gap:0}}.resume{max-width:860px;margin:0 auto;padding:36px 40px}.resume h1{font-size:2.2rem}.resume .headline{margin-bottom:8px}.resume-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.resume-contact{flex-wrap:wrap;gap:4px 18px;margin:0;font-size:.92rem;display:flex}.resume-actions{flex-wrap:wrap;gap:8px;display:flex}.resume-actions button{font:inherit;cursor:pointer}.resume-section{margin-top:28px}.resume-section h2{text-transform:uppercase;letter-spacing:.1em;color:var(--accent);border-bottom:1px solid var(--border);margin-bottom:14px;padding-bottom:6px;font-size:.85rem}.resume-section p{margin:0}.resume-item+.resume-item{margin-top:16px}.resume-item-head{justify-content:space-between;align-items:baseline;gap:16px;display:flex}.resume-dates{white-space:nowrap;font-size:.9rem}.resume-item ul{margin:6px 0 0;padding-left:20px}.resume-item li+li{margin-top:3px}.coursework,.resume-project-desc{font-size:.93rem;margin-top:6px!important}.skills{gap:8px;margin:0;display:grid}.skill-row{grid-template-columns:190px 1fr;gap:12px;display:grid}.skills dt{font-weight:700}.skills dd{margin:0}@media (width<=640px){.resume{padding:22px 18px}.resume-item-head{flex-direction:column;gap:2px}.skill-row{grid-template-columns:1fr;gap:2px}}@media print{@page{margin:.6in}:root{--text:#111;--muted:#555;--accent:#0b5d5a;--border:#bbb}body{color:#111;background:#fff!important}.aquarium,.site-header,.site-footer,.no-print,.notice{display:none!important}.main{padding:0}.resume{max-width:none;box-shadow:none;-webkit-backdrop-filter:none;background:0 0;border:none;padding:0}.resume a{color:#111;text-decoration:none}.resume-section{break-inside:avoid-page;margin-top:18px}.resume-item{break-inside:avoid}}
