@import"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600;700&family=Manrope:wght@400;500;600;700&display=swap";:root{--bg: #12121e;--bg-soft: #0b111e;--panel: #0d1524;--text: #edf6ff;--muted: #7b8ca5;--dim: #8a9cba;--line: #18253a;--accent: #4b8aff;--accent-rgb: 38, 217, 162;--blue: #55a7ff;--font-body: "Manrope", sans-serif;--font-code: "JetBrains Mono", monospace;color:var(--text);font-family:var(--font-body);font-synthesis:none;background:var(--bg)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;background:var(--bg)}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;background:radial-gradient(circle at 72% 15%,rgba(29,91,111,.16),transparent 28%),radial-gradient(circle at 16% 75%,rgba(30,78,88,.09),transparent 26%),linear-gradient(rgba(255,255,255,.012) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.012) 1px,transparent 1px);background-size:auto,auto,48px 48px,48px 48px}a{color:inherit}button{font:inherit}::selection{background:rgba(var(--accent-rgb),.25);color:var(--text)}.site{min-height:100vh;overflow:clip}.brand{position:fixed;top:30px;left:38px;z-index:20;color:var(--text);font:700 19px var(--font-code);letter-spacing:-1px;text-decoration:none}.brand span{color:var(--accent)}.ambient-code span{position:fixed;z-index:-1;color:#55a7ff0b;font:500 18px var(--font-code);animation:float 10s ease-in-out infinite}.ambient-code span:nth-child(1){left:10%;top:18%}.ambient-code span:nth-child(2){right:12%;top:32%;animation-delay:-4s}.ambient-code span:nth-child(3){left:16%;top:72%;animation-delay:-7s}.ambient-code span:nth-child(4){right:28%;top:84%;animation-delay:-2s}.section-shell{position:relative;min-height:100vh;padding:130px max(8vw,110px) 130px max(14vw,170px);display:flex;align-items:center;border-bottom:1px solid rgba(24,37,58,.55)}.content-column{width:min(780px,100%);margin:0 auto}.content-column--wide{width:min(980px,100%)}.code-label{margin:0;color:var(--accent);opacity:.66;font:500 11px var(--font-code);letter-spacing:.08em}.section-heading{margin-bottom:54px}.section-heading__meta{display:flex;justify-content:space-between;align-items:center;color:var(--accent);font:500 11px var(--font-code);letter-spacing:.08em;opacity:.65}.section-heading__meta span:last-child{color:var(--dim);font-size:12px}.section-heading h2{width:fit-content;margin:12px 0 0;font-size:clamp(30px,4vw,52px);line-height:1.05;letter-spacing:-.055em}.hero{justify-content:center;text-align:left}.hero__content{width:min(780px,100%)}.hero__kicker{margin:46px 0 5px;color:var(--muted);font:500 13px var(--font-code)}.hero h1{width:fit-content;margin:0;font-size:clamp(42px,7vw,82px);line-height:1;letter-spacing:-.075em}.cursor{color:var(--accent);font-weight:400;animation:blink 1s steps(1) infinite}.hero__role{margin:20px 0 0;color:var(--accent);font:500 clamp(13px,2vw,17px) var(--font-code);letter-spacing:.18em;text-transform:uppercase}.hero__intro{max-width:650px;margin:31px 0 0;color:var(--muted);font-size:16px;line-height:1.85}.hero__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:38px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:30px;min-width:154px;padding:13px 17px;border:1px solid var(--line);color:#aebdd1;font:500 11px var(--font-code);text-decoration:none;transition:border-color .25s,color .25s,transform .25s,background .25s}.button:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-2px)}.button--primary{border-color:var(--accent);background:var(--accent);color:#04110d}.button--primary:hover{color:#04110d;background:#47e4b5}.availability{margin-top:32px;color:var(--dim);font:500 10px var(--font-code);text-transform:uppercase;letter-spacing:.09em}.availability span{display:inline-block;width:6px;height:6px;margin-right:9px;border-radius:50%;background:var(--accent);box-shadow:0 0 12px var(--accent)}.hero__index{position:absolute;right:8vw;bottom:9vh;display:flex;gap:8px;color:var(--dim);font:11px var(--font-code)}.hero__index span:first-child{color:var(--accent)}.scroll-cue{position:absolute;bottom:34px;left:50%;color:var(--dim);font:10px var(--font-code);text-decoration:none;letter-spacing:.08em;transform:translate(-50%)}.scroll-cue span{display:inline-block;margin-left:8px;color:var(--accent);animation:down 1.8s ease-in-out infinite}.about-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:60px}.about-lead{margin:0;color:var(--text);font-size:clamp(22px,3vw,32px);line-height:1.35;letter-spacing:-.04em}.body-copy{margin:0;color:var(--muted);font-size:14px;line-height:1.95}.skill-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.skill-group{padding:25px;border:1px solid var(--line);background:#ffffff03;transition:border-color .25s,background .25s,transform .25s}.skill-group:hover{border-color:rgba(var(--accent-rgb),.35);background:rgba(var(--accent-rgb),.025);transform:translateY(-3px)}.skill-group__header{display:grid;grid-template-columns:28px 1fr;gap:10px;min-height:82px;padding-bottom:20px;border-bottom:1px solid var(--line)}.skill-group__header>span{color:var(--accent);font:500 9px var(--font-code)}.skill-group__header h3{margin:0 0 8px;color:var(--text);font-size:15px;letter-spacing:-.025em}.skill-group__header p{margin:0;color:var(--dim);font-size:10px;line-height:1.55}.skill-group__items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding-top:20px}.technology{display:flex;align-items:center;gap:10px;min-width:0;padding:10px;color:#94a6bd;font:500 10px var(--font-code);transition:color .2s,background .2s}.technology svg{width:18px;height:18px;flex:0 0 auto;color:var(--dim);transition:color .2s,transform .2s}.technology span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.technology:hover{color:var(--text);background:rgba(var(--accent-rgb),.045)}.technology:hover svg{color:var(--accent);transform:scale(1.08)}.timeline{position:relative}.timeline:before{content:"";position:absolute;left:19px;top:22px;bottom:0;width:1px;background:var(--line)}.timeline__item{position:relative;padding-left:72px;padding-bottom:70px}.timeline__item:last-child{padding-bottom:0}.timeline__marker{position:absolute;left:0;top:0;width:40px;height:40px;display:grid;place-items:center;border:1px solid var(--line);background:var(--bg);color:var(--accent);font:10px var(--font-code)}.timeline__header{display:flex;justify-content:space-between;gap:20px;margin-bottom:22px}.timeline h3{margin:0 0 6px;font-size:19px;letter-spacing:-.025em}.timeline__header p,.timeline time{margin:0;color:var(--accent);font:11px var(--font-code)}.timeline time{color:var(--dim);white-space:nowrap}.timeline ul{display:grid;gap:9px;margin:0;padding:0;list-style:none}.timeline li{position:relative;padding-left:18px;color:var(--muted);font-size:13px;line-height:1.75}.timeline li:before{content:"→";position:absolute;left:0;color:var(--accent);font:10px var(--font-code);margin-top:4px}.projects-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.project-card{border:1px solid var(--line);background:#0a111e80;transition:border-color .3s,transform .3s}.project-card:hover{border-color:rgba(var(--accent-rgb),.45);transform:translateY(-5px)}.project-card__visual{position:relative;height:220px;overflow:hidden;background:linear-gradient(145deg,#101d2d,#09101c)}.project-card__visual:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,transparent 55%,rgba(7,11,20,.72));pointer-events:none}.project-card__visual>span{position:absolute;right:18px;top:13px;z-index:2;color:#ffffff94;font:700 13px var(--font-code);text-shadow:0 1px 10px #000}.project-card__visual img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .55s cubic-bezier(.16,1,.3,1),filter .35s}.project-card:hover .project-card__visual img{transform:scale(1.045);filter:saturate(1.08)}.project-card__body{padding:28px}.project-card h3{margin:11px 0 13px;font-size:19px;letter-spacing:-.03em}.project-card__body>p:not(.code-label){min-height:92px;margin:0;color:var(--muted);font-size:12px;line-height:1.75}.tag-list{display:flex;flex-wrap:wrap;gap:6px;margin:22px 0}.tag-list span{padding:5px 8px;border:1px solid var(--line);color:#6f839d;font:9px var(--font-code)}.text-link{color:var(--accent);font:500 10px var(--font-code);text-decoration:none;text-transform:uppercase;letter-spacing:.08em}.text-link span{display:inline-block;margin-left:6px;transition:transform .2s}.text-link:hover span{transform:translate(3px,-3px)}.education-card{display:flex;justify-content:space-between;gap:30px;padding:30px;border:1px solid var(--line)}.education-card h3{max-width:470px;margin:13px 0 6px;font-size:21px;letter-spacing:-.03em}.education-card>div>p:last-child{margin:0;color:var(--muted);font-size:13px}.gpa{min-width:125px;padding-left:28px;border-left:1px solid var(--line)}.gpa span{display:block;margin-bottom:8px;color:var(--dim);font:10px var(--font-code)}.gpa strong{font:600 20px var(--font-code)}.education-gallery{display:grid;grid-template-columns:1.35fr .9fr .9fr;grid-template-rows:repeat(2,190px);gap:10px;margin-top:12px}.education-gallery__item{position:relative;min-width:0;margin:0;overflow:hidden;border:1px solid var(--line);background:var(--panel)}.education-gallery__item--featured{grid-row:1 / 3}.education-gallery__item:nth-child(2){grid-column:2;grid-row:1}.education-gallery__item:nth-child(3){grid-column:3;grid-row:1}.education-gallery__item:nth-child(4){grid-column:2;grid-row:2}.education-gallery__item img{width:100%;height:100%;display:block;object-fit:cover;filter:saturate(.72) brightness(.82);transition:transform .65s cubic-bezier(.16,1,.3,1),filter .35s}.education-gallery__item--featured img{object-position:center 28%}.education-gallery__item:nth-child(2) img{object-position:center 58%}.education-gallery__item:nth-child(3) img{object-position:center 58%}.education-gallery__item:nth-child(4) img{object-position:center 42%}.education-gallery__item:after{content:"";position:absolute;top:35%;right:0;bottom:0;left:0;background:linear-gradient(transparent,#070b14d1);pointer-events:none}.education-gallery__item:hover img{transform:scale(1.045);filter:saturate(1) brightness(.95)}.education-gallery__item figcaption{position:absolute;left:15px;right:15px;bottom:13px;z-index:1;display:flex;align-items:center;gap:9px;color:#dce8f4;font:500 9px var(--font-code)}.education-gallery__item figcaption span{color:var(--accent);font-size:8px}.education-gallery__note{grid-column:3;grid-row:2;display:flex;flex-direction:column;justify-content:flex-end;padding:20px;border:1px solid var(--line);background:linear-gradient(145deg,rgba(var(--accent-rgb),.055),#ffffff03)}.education-gallery__note span{color:var(--accent);font:500 9px var(--font-code);letter-spacing:.08em}.education-gallery__note p{margin:13px 0 0;color:#a3b2c6;font-size:15px;line-height:1.45;letter-spacing:-.025em}.certificate-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:12px}.certificate{position:relative;display:block;padding:24px;border:1px solid var(--line);color:inherit;background:#ffffff03;text-decoration:none}.certificate__heading{display:flex;align-items:flex-start;gap:13px;min-height:41px}.certificate__heading svg{width:34px;height:34px;flex:0 0 auto;color:#f90}.certificate__heading p{margin:0 0 5px;color:var(--muted);font:10px/1.45 var(--font-code)}.certificate__heading small{display:block;color:var(--dim);font:8px var(--font-code)}.certificate__score{margin-top:15px}.certificate__score strong{color:var(--accent);font:600 29px var(--font-code)}.certificate__score span{margin-left:8px;color:var(--dim);font:11px var(--font-code)}.certificate__credential{margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}.certificate__credential>span{display:flex;align-items:center;gap:7px;color:#8ea1b9;font:8px var(--font-code);text-transform:uppercase;letter-spacing:.06em}.certificate__credential i{width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px rgba(var(--accent-rgb),.6)}.certificate__credential code{display:block;margin-top:9px;overflow:hidden;color:var(--dim);font:7px var(--font-code);text-overflow:ellipsis;white-space:nowrap}.certificate__action{display:flex;justify-content:space-between;margin-top:18px;color:var(--accent);font:500 9px var(--font-code);text-transform:uppercase;letter-spacing:.07em}.certificate--linked{transition:border-color .25s,background .25s,transform .25s}.certificate--linked:hover{border-color:#ff990073;background:#ff990006;transform:translateY(-3px)}.certificate--linked:hover .certificate__action span{transform:translate(2px,-2px)}.certificate__action span{transition:transform .2s}.contact{min-height:100vh;padding-bottom:0;flex-direction:column;justify-content:center;align-items:stretch}.contact__content{width:min(760px,100%);margin:auto;text-align:center}.contact h2{margin:20px 0 24px;font-size:clamp(38px,6vw,70px);line-height:1.08;letter-spacing:-.07em}.contact__character-anchor{--character-offset-x: clamp(46px, 6vw, 88px);--character-offset-y: -8px;width:min(320px,100%);height:clamp(150px,18vw,210px);margin:16px auto 26px}.contact__content>p:not(.code-label){max-width:570px;margin:0 auto 34px;color:var(--muted);font-size:14px;line-height:1.8}.contact .button{margin:0 auto}footer{width:100%;display:flex;justify-content:space-between;gap:25px;padding:24px 0;border-top:1px solid var(--line);color:var(--dim);font:9px var(--font-code);text-transform:uppercase;letter-spacing:.06em}footer div{display:flex;gap:22px}footer a{text-decoration:none}footer a:hover{color:var(--accent)}.section-nav{position:fixed;right:28px;top:50%;z-index:20;display:flex;flex-direction:column;align-items:flex-end;gap:13px;transform:translateY(-50%)}.section-nav button{display:flex;align-items:center;gap:10px;padding:0;border:0;color:var(--dim);background:none;cursor:pointer}.section-nav button:after{content:"";width:5px;height:5px;border-radius:50%;background:currentColor;transition:transform .25s,color .25s}.section-nav button span{opacity:0;font:9px var(--font-code);text-transform:uppercase;transition:opacity .25s}.section-nav button:hover span,.section-nav button.is-active span{opacity:1}.section-nav button.is-active{color:var(--accent)}.section-nav button.is-active:after{transform:scale(1.7);box-shadow:0 0 8px rgba(var(--accent-rgb),.6)}.character{--character-start-left: calc(100vw - 190px) ;--character-start-top: 86px;position:fixed;left:var(--character-start-left);top:var(--character-start-top);z-index:15;display:flex;align-items:flex-start;pointer-events:none;opacity:0;transform:translateY(-50%);transition:left .9s cubic-bezier(.34,1.56,.64,1),top .9s cubic-bezier(.34,1.56,.64,1),opacity .2s ease}.character.is-positioned{opacity:1}.character__figure{width:58px;animation:bob 3s ease-in-out infinite}.character svg{width:58px;filter:drop-shadow(0 5px 14px rgba(38,217,162,.15));overflow:visible}.character--contact .character__figure{animation-name:contact-bob;transform-origin:50% 85%}.character--contact svg{transform:rotate(-8deg);transform-origin:50% 85%}.character .skin{fill:#ffd2b0}.character .pants{fill:#202f47}.character .shoe,.character .hair{fill:#0c1320}.character .shirt,.character .arms rect{fill:var(--accent)}.character .collar{fill:none;stroke:#0dad80;stroke-width:1.5}.character .shadow{fill:rgba(var(--accent-rgb),.12)}.character .glasses{fill:none;stroke:#101725;stroke-width:1.5}.character .eye{fill:#101725}.character .eye-shine{fill:#fff}.character .smile{fill:none;stroke:#bb765b;stroke-width:1.5;stroke-linecap:round}.character .cap{fill:#34445b}.character .tassel{stroke:#f2ae49;stroke-width:1.5}.character .tassel-fill{fill:#f2ae49}.character__wave{transform-origin:51px 40px;animation:wave .8s ease-in-out infinite}.juggle-symbol{font:700 7px var(--font-code);fill:var(--accent)}.juggle-symbol--1{animation:juggle1 2s ease-in-out infinite}.juggle-symbol--2{animation:juggle2 2s ease-in-out infinite;animation-delay:-.66s}.juggle-symbol--3{animation:juggle3 2s ease-in-out infinite;animation-delay:-1.33s}.character__celebrate{transform-origin:35px 42px;animation:wave .65s ease-in-out infinite}.character__celebrate--right{animation-delay:-.2s}.character__type--left{animation:type-tap .4s ease-in-out infinite}.character__type--right{animation:type-tap .4s ease-in-out infinite;animation-delay:-.2s}.character .arms rect.laptop-base{fill:#cfcfcf}.character .arms rect.laptop-screen{fill:#b6c6e3}.character .arms rect.laptop-display{fill:#bababa}.character .arms .apple-logo{fill:#ffffffb3}.character__bubble{margin:7px 0 0 8px;padding:7px 10px;border:1px solid rgba(var(--accent-rgb),.22);border-radius:9px 9px 9px 2px;color:var(--accent);background:#070b14d1;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font:9px var(--font-code);white-space:nowrap;animation:bubble-in .35s ease both}[data-reveal]{opacity:0;transform:translateY(25px);transition:opacity .7s cubic-bezier(.16,1,.3,1) var(--delay, 0ms),transform .7s cubic-bezier(.16,1,.3,1) var(--delay, 0ms)}[data-reveal].is-visible{opacity:1;transform:translateY(0)}@keyframes blink{50%{opacity:0}}@keyframes bob{50%{transform:translateY(-6px)}}@keyframes contact-bob{50%{transform:translateY(-6px) rotate(2deg)}}@keyframes wave{50%{transform:rotate(13deg)}}@keyframes bubble-in{0%{opacity:0;transform:translate(-5px)}}@keyframes down{50%{transform:translateY(7px)}}@keyframes float{50%{transform:translateY(-18px) rotate(4deg)}}@keyframes type-tap{0%,to{transform:translateY(0)}50%{transform:translateY(2px)}}@keyframes juggle1{0%,to{transform:translateY(0);opacity:1}50%{transform:translateY(-6px);opacity:.6}}@keyframes juggle2{0%,to{transform:translate(2px);opacity:1}50%{transform:translate(-2px,-5px);opacity:.6}}@keyframes juggle3{0%,to{transform:translate(-2px);opacity:1}50%{transform:translate(2px,-5px);opacity:.6}}@media(max-width:900px){.section-shell{padding:110px 70px 110px 100px}.character{--character-start-left: calc(100vw - 150px) ;--character-start-top: 78px;transform:translateY(-50%) scale(.85);transform-origin:left center}.character__bubble{display:none}.brand{left:24px}.projects-grid{grid-template-columns:1fr}.project-card__body>p:not(.code-label){min-height:auto}}@media(max-width:680px){.brand{position:absolute;top:24px;left:22px}.section-shell{min-height:auto;padding:100px 22px}.hero{min-height:100svh;padding-top:120px}.hero h1{letter-spacing:-.065em}.hero__intro{font-size:14px}.hero__index,.section-nav{display:none}.character{--character-start-left: calc(100vw - 112px) ;--character-start-top: 70px;display:flex;transform:translateY(-50%) scale(.68)}.scroll-cue{bottom:20px}.about-grid{grid-template-columns:1fr;gap:28px}.skill-groups{grid-template-columns:1fr}.timeline__item{padding-left:54px}.timeline__header{flex-direction:column;gap:8px}.education-card{flex-direction:column}.gpa{padding:20px 0 0;border-top:1px solid var(--line);border-left:0}.education-gallery{grid-template-columns:repeat(2,1fr);grid-template-rows:290px 150px 150px}.education-gallery__item--featured{grid-column:1 / 3;grid-row:1}.education-gallery__item:nth-child(2){grid-column:1;grid-row:2}.education-gallery__item:nth-child(3){grid-column:2;grid-row:2}.education-gallery__item:nth-child(4){grid-column:1;grid-row:3}.education-gallery__note{grid-column:2;grid-row:3;padding:14px}.education-gallery__note p{font-size:12px}.certificate-grid{grid-template-columns:1fr}.contact{min-height:100svh;padding-bottom:0}footer{flex-direction:column;align-items:center;text-align:center}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
