:root{--bg:#050505;--bg-soft:#ffffff0d;--text:#f5f5f5;--muted:#ffffffa6;--uw-gold:#f0b52b;--line:#ffffff1f}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-height:100vh;color:var(--text);background:radial-gradient(circle at 20% 10%,#ffffff14,#0000 45%),linear-gradient(#040404 0%,#060606 100%);margin:0;font-family:Inter,Segoe UI,system-ui,sans-serif}button,input,textarea{font:inherit}.app-frame{min-height:100vh;position:relative;overflow:hidden}.scroll-progress{background:var(--uw-gold);transform-origin:0;z-index:22;pointer-events:none;opacity:.85;width:100%;height:2px;position:fixed;top:0;left:0}.cursor-trailer{opacity:0;pointer-events:none;z-index:21;background:#f0b52b47;border-radius:999px;width:10px;height:10px;transition:opacity .24s;position:fixed;top:0;left:0;transform:translate(-100px,-100px);box-shadow:0 0 18px #f0b52b52}.grain-overlay{pointer-events:none;z-index:6;opacity:.04;mix-blend-mode:soft-light;width:100%;height:100%;position:fixed;inset:0}.site-layer{min-height:100vh;transition:filter .8s,transform .8s}.locked .site-layer{filter:blur(20px)brightness(.75);transform:scale(1.03)}.entered .site-layer{filter:blur();transform:scale(calc(1 + var(--pulse-range) / 2))}.entry-overlay{pointer-events:auto;z-index:5;place-items:center;transition:opacity .6s;display:grid;position:fixed;inset:0}.entry-overlay.fading{opacity:0;pointer-events:none}.entry-backdrop{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:1;background:radial-gradient(circle,#fff0,#000000e6);transition:opacity .6s;position:absolute;inset:0}.starfield{pointer-events:none;z-index:2;width:100%;height:100%;position:absolute;inset:0}.twinkle-star{filter:drop-shadow(0 0 14px #f0b52bcc);mix-blend-mode:screen;--pulse-range:.2;border-radius:50%;animation:linear infinite both starPulse;display:block;position:absolute}@keyframes starPulse{0%,to{opacity:.45;transform:scale(.9)}40%{opacity:1;transform:scale(calc(1 + var(--pulse-range)))}60%{opacity:.7;transform:scale(calc(1 + var(--pulse-range) / 2))}}.name-trigger{z-index:3;cursor:pointer;color:inherit;background:0 0;border:0;position:relative}.intro-card{z-index:4;border:1px solid var(--line);text-align:center;background:#000000d9;border-radius:1.5rem;gap:.5rem;width:min(36rem,90vw);padding:2.5rem 3rem;display:grid;position:relative;overflow:visible;box-shadow:0 30px 70px #0000008c,inset 0 0 0 1px #ffffff08}.intro-card:before{content:"";opacity:.08;z-index:1;background:radial-gradient(circle,#f0b52b1a,#0000 70%);border-radius:2rem;transition:opacity .6s;position:absolute;inset:-30px}.name-trigger:hover .intro-card:before{opacity:.12}.entry-name{margin:0;font-family:Baskerville Old Face,Palatino Linotype,Georgia,serif;font-size:clamp(3rem,6vw,4.4rem)}.logo-row{justify-content:center;align-items:center;gap:.8rem;display:flex}.uw-logo{object-fit:contain;filter:drop-shadow(0 0 10px #ffffff1a);border-radius:.4rem;width:3rem;height:3.6rem}.hero-tagline{letter-spacing:.4rem;text-transform:uppercase;color:var(--muted);margin:0;font-size:.9rem}.class-year{letter-spacing:.45rem;text-transform:uppercase;color:var(--muted);margin:0;font-size:.85rem}.entry-helper{letter-spacing:.4rem;text-transform:uppercase;color:var(--uw-gold);flex-direction:column;align-items:center;gap:.1rem;margin-top:1rem;font-size:.8rem;display:inline-flex;position:relative}.entry-helper:after{content:"";background:var(--uw-gold);width:80%;height:1px;transition:transform .5s;transform:scaleX(0)}.entry-helper[data-ready=ready]:after{transform:scaleX(1)}.entry-ready{letter-spacing:.3rem;color:#f0b52bcc;font-size:.65rem}.site-shell{flex-direction:column;gap:2.5rem;min-height:100vh;padding:clamp(1.5rem,3vw,3rem);display:flex;position:relative}.hero-panel.minimal{border:1px solid var(--line);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);background:#0a0a0ad9;border-radius:1.75rem;min-height:auto;padding:clamp(.7rem,1.4vw,1rem);box-shadow:0 14px 34px #00000061}.hero-mini-grid{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,.8fr);align-items:start;gap:.6rem;display:grid}.hero-intro-stack,.hero-side-stack{gap:.45rem;display:grid}.hero-mini-card{background:#ffffff08;border:1px solid #ffffff14;border-radius:1rem;gap:.35rem;padding:.78rem;display:grid}.hero-mini-card h1,.hero-mini-card h2{letter-spacing:.02rem;text-align:center;margin:0;font-family:Baskerville Old Face,Palatino Linotype,Georgia,serif;font-size:clamp(1.2rem,1.8vw,1.45rem);line-height:1.25}.name-highlight{color:var(--uw-gold)}.hero-mini-card p{color:#ffffffb8;letter-spacing:.01rem;text-align:center;margin:0;font-size:.84rem;line-height:1.4}.hero-mini-card .eyebrow.subtle{letter-spacing:.28rem;color:#ffffff7a;font-size:.63rem}.hero-intro-card{padding:.92rem .9rem}.hero-about-card{padding:.85rem .85rem .78rem}.hero-compact-card{gap:.24rem;padding:.5rem .62rem}.hero-compact-card h2{font-size:clamp(1rem,1.4vw,1.12rem)}.hero-compact-card p{font-size:.74rem;line-height:1.3}.status-note{color:#ffffffbf;justify-content:center;align-items:center;gap:.4rem;margin:0;display:inline-flex}.status-academic{color:#fffc;justify-content:center;align-items:center;gap:.42rem;margin:0;font-size:.73rem;line-height:1.25;display:inline-flex}.status-uw-logo{object-fit:contain;border-radius:.15rem;flex-shrink:0;width:.92rem;height:1.1rem}.status-academic a{color:#f0b52bf2;text-decoration:none}.status-academic a:hover{text-decoration:underline}.status-note svg{color:#f0b52be0;flex-shrink:0;width:.88rem;height:.88rem}.about-meta-row{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:start;gap:.5rem;margin-top:.22rem;display:grid}.status-list{justify-items:center;gap:.38rem;display:grid}.about-location{justify-items:center;gap:.12rem;display:grid}.about-label{letter-spacing:.09rem;color:#ffffff80;margin:0;font-size:.65rem}.about-place{color:#ffffffd1;margin:0;font-size:.83rem}.about-time{color:#ffffffe6;letter-spacing:.04rem;margin:0;font-size:.9rem}.status-row{justify-items:center;gap:.2rem;margin:0;display:grid}.status-row span{letter-spacing:.08rem;text-transform:uppercase;color:#ffffff80;font-size:.62rem}.status-label{align-items:center;gap:.33rem;display:inline-flex}.status-label svg{color:#f0b52be6;flex-shrink:0;width:.82rem;height:.82rem}.status-row strong{color:#ffffffd6;font-size:.74rem;font-weight:600;line-height:1.3}.contact-icons{justify-content:center;align-items:center;gap:.6rem;margin-top:.15rem;display:flex}.icon-link{color:#ffffffd9;border:1px solid #ffffff2e;border-radius:999px;place-items:center;width:2rem;height:2rem;text-decoration:none;transition:border-color .18s,color .18s,background-color .18s;display:grid}.icon-link svg{width:1.08rem;height:1.08rem}.icon-link:hover{color:#f0b52bf2;background:#f0b52b14;border-color:#f0b52ba6}.resume-link{color:#f0b52bf2;letter-spacing:.08rem;text-transform:uppercase;border:1px solid #f0b52b80;border-radius:999px;justify-content:center;align-items:center;gap:.33rem;margin-top:.35rem;padding:.38rem .72rem;font-size:.6rem;text-decoration:none;transition:background-color .18s,border-color .18s,color .18s;display:inline-flex}.resume-link svg{flex-shrink:0;width:.75rem;height:.75rem}.resume-link:hover{color:#fff3d6fa;background:#f0b52b1a;border-color:#f0b52bb8}.stack-panel.minimal{gap:1.25rem;padding:clamp(1rem,2vw,1.4rem) 0;display:grid}.stack-heading{text-align:center;justify-items:center;gap:.35rem;display:grid}.stack-heading h2{letter-spacing:.02rem;margin:0;font-family:Baskerville Old Face,Palatino Linotype,Georgia,serif;font-size:clamp(1.9rem,3.8vw,2.7rem)}.stack-marquee{width:100%;position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 8% 92%,#0000);mask-image:linear-gradient(90deg,#0000,#000 8% 92%,#0000)}.stack-belts{gap:.9rem;display:grid}.marquee-track{width:max-content;animation:38s linear infinite techMarquee;display:flex}.marquee-track.reverse{animation-name:techMarqueeReverse}.marquee-group{flex-shrink:0;align-items:center;gap:clamp(1.4rem,2.6vw,3rem);padding-right:clamp(1.4rem,2.6vw,3rem);display:flex}.tech-item{justify-items:center;gap:.45rem;min-width:clamp(4.6rem,8vw,6rem);display:grid}.tech-icon{color:#ffffffe0;letter-spacing:.02rem;background:#ffffff0d;border-radius:999px;place-items:center;width:2.5rem;height:2.5rem;font-size:1rem;line-height:1;display:grid}.tech-icon img{width:1.25rem;height:1.25rem;display:block}.tech-icon-text{letter-spacing:.05rem;color:#ffffffe6;font-size:.72rem;font-weight:700}.tech-name{letter-spacing:.12rem;text-transform:uppercase;color:#ffffff9e;white-space:nowrap;font-size:.75rem}@keyframes techMarquee{0%{transform:translate(0)}to{transform:translate(-50%)}}@keyframes techMarqueeReverse{0%{transform:translate(-50%)}to{transform:translate(0)}}.vertical-columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.timeline-section{gap:.7rem;display:grid}.timeline-heading{justify-items:center;display:grid}.timeline-heading h2{letter-spacing:.03rem;margin:0;font-family:Baskerville Old Face,Palatino Linotype,Georgia,serif;font-size:clamp(1.35rem,2.2vw,1.75rem)}.timeline-scroll{scrollbar-width:thin;scrollbar-color:#f0b52bb3 #ffffff14;justify-content:flex-start;gap:1.05rem;padding:.2rem .65rem .55rem;scroll-padding-left:.65rem;display:flex;overflow-x:auto}.timeline-scroll::-webkit-scrollbar{height:8px}.timeline-scroll::-webkit-scrollbar-track{background:#ffffff14;border-radius:999px}.timeline-scroll::-webkit-scrollbar-thumb{background:linear-gradient(90deg,#f0b52b99,#f0b52bd6);border-radius:999px}.timeline-scroll::-webkit-scrollbar-thumb:hover{background:linear-gradient(90deg,#f0b52bc2,#f0b52bf0)}.timeline-card{background:#0a0a0ac2;border:1px solid #ffffff1a;border-radius:1rem;flex:0 0 min(19.5rem,88vw);gap:.38rem;padding:.64rem;display:grid;position:relative}.term-photo-placeholder{background:linear-gradient(135deg,#ffffff1a,#ffffff05),#ffffff0a;border:1px solid #ffffff24;border-radius:.78rem;width:100%;height:8rem}.term-photo-frame{overflow:hidden}.term-photo-frame img{object-fit:contain;background:#00000059;width:100%;height:100%;display:block}.term-photo-placeholder.coming-soon{color:#ffffff94;letter-spacing:.08rem;text-transform:uppercase;place-items:center;font-size:.68rem;display:grid}.timeline-dates{letter-spacing:.08rem;text-transform:uppercase;color:#ffffff85;margin:0;font-size:.66rem}.timeline-card h3{color:#ffffffeb;margin:0;font-family:Baskerville Old Face,Palatino Linotype,Georgia,serif;font-size:.92rem}.timeline-meta{color:#ffffffb8;margin:0;font-size:.74rem}.timeline-highlights p{letter-spacing:.06rem;color:#ffffff94;margin:0;font-size:.68rem}.timeline-highlights ul{gap:.22rem;margin:.32rem 0 0;padding-left:1rem;display:grid}.timeline-highlights li{color:#ffffffc7;font-size:.71rem}.timeline-card.has-next:after{content:"";border-top:1px solid #ffffff2e;width:.8rem;position:absolute;top:8.95rem;left:calc(100% + .25rem)}.timeline-card.has-next:before{content:"";background:#f0b52b9e;border-radius:999px;width:.34rem;height:.34rem;position:absolute;top:8.78rem;right:-.32rem;box-shadow:0 0 0 2px #f0b52b24}.timeline-card.completed{opacity:1}.timeline-card.current{background:#f0b52b12;border-color:#f0b52b94;box-shadow:inset 0 0 0 1px #f0b52b26}.timeline-card.current .timeline-meta{color:#ffde99f0}.timeline-card.upcoming{opacity:.62}.vertical-column{background:#080808c7;border:1px solid #ffffff14;border-radius:1.25rem;gap:.75rem;padding:.85rem;display:grid}.column-heading{text-align:center;letter-spacing:.24rem;color:#ffffffd1;margin:0;font-size:.78rem}.vertical-marquee{scrollbar-width:thin;scrollbar-color:#f0b52bb3 #ffffff14;height:clamp(21rem,45vh,27rem);position:relative;overflow:hidden auto}.vertical-marquee::-webkit-scrollbar{width:8px}.vertical-marquee::-webkit-scrollbar-track{background:#ffffff14;border-radius:999px}.vertical-marquee::-webkit-scrollbar-thumb{background:linear-gradient(#f0b52b9e,#f0b52bdb);border-radius:999px}.vertical-track,.vertical-stack{gap:.75rem;display:grid}.vertical-card{background:#ffffff08;border:1px solid #ffffff1a;border-radius:1rem;gap:.45rem;padding:.72rem;transition:border-color .18s,background-color .18s;display:grid}.vertical-card h4{color:#ffffffeb;margin:0;font-family:Baskerville Old Face,Palatino Linotype,Georgia,serif;font-size:.92rem;line-height:1.25}.experience-top{align-items:center;gap:.6rem;display:flex}.company-logo-placeholder{background:#ffffff38;border:1px solid #ffffff29;border-radius:999px;flex-shrink:0;width:1.7rem;height:1.7rem}.company-logo-image{object-fit:cover;background:#ffffff14;border:1px solid #ffffff29;border-radius:999px;flex-shrink:0;width:1.7rem;height:1.7rem}.experience-meta{gap:.12rem;display:grid}.experience-meta p{color:#ffffffad;margin:0;font-size:.74rem}.vertical-dates{letter-spacing:.08rem;text-transform:uppercase;color:#ffffff85;margin:0;font-size:.67rem}.vertical-description{color:#ffffffb8;margin:0;font-size:.78rem;line-height:1.42}.project-tags{flex-wrap:wrap;gap:.35rem;display:flex}.project-tag{color:#ffffffba;letter-spacing:.05rem;text-transform:uppercase;background:#ffffff08;border:1px solid #ffffff24;border-radius:999px;padding:.18rem .46rem;font-size:.62rem}.project-links{gap:.42rem;margin-top:.12rem;display:flex}.project-link{color:#ffffffd9;border:1px solid #ffffff2e;border-radius:999px;place-items:center;width:1.84rem;height:1.84rem;text-decoration:none;transition:border-color .18s,color .18s,background-color .18s;display:grid}.project-link svg{width:.96rem;height:.96rem}.project-link:hover{color:#f0b52bf2;background:#f0b52b14;border-color:#f0b52ba6}.eyebrow.subtle{letter-spacing:.45rem;text-transform:uppercase;color:#ffffff8c;margin:0;font-size:.75rem}.section-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.25rem;display:grid}.panel-card{background:#0a0a0abf;border:1px solid #ffffff14;border-radius:1.35rem;padding:1.4rem;box-shadow:0 20px 40px #00000073}.panel-card h3{letter-spacing:.03rem;margin:0;font-family:Baskerville Old Face,Palatino Linotype,Georgia,serif;font-size:1.1rem}.panel-card .placeholder-lines{gap:.6rem;margin-top:1rem}.placeholder-lines span{color:#ffffffb3;letter-spacing:.02rem;background:0 0;border:none;padding:0;font-size:.9rem;display:block}.wide-panel{background:#060606d9;border:1px solid #ffffff14;border-radius:1.35rem;padding:1.8rem;box-shadow:0 28px 60px #00000080}.wide-panel h2{margin:0;font-family:Baskerville Old Face,Palatino Linotype,Georgia,serif;font-size:1.3rem}.wide-panel p{color:#ffffffb3;margin:.6rem 0 0;font-size:.95rem;line-height:1.6}.message-panel{gap:.75rem;display:grid}.message-form{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.5rem;display:grid}.message-form input{color:#ffffffe6;background:#ffffff08;border:1px solid #ffffff24;border-radius:999px;outline:none;width:100%;height:2.2rem;padding:0 .8rem}.message-form input::placeholder{color:#ffffff80}.message-form input:focus{border-color:#f0b52b99;box-shadow:0 0 0 2px #f0b52b1f}.message-form button{color:#f0b52bf2;cursor:pointer;letter-spacing:.07rem;text-transform:uppercase;background:#f0b52b12;border:1px solid #f0b52b80;border-radius:999px;height:2.2rem;padding:0 .86rem;font-size:.72rem;transition:border-color .18s,background-color .18s,color .18s}.message-form button:hover:not(:disabled){background:#f0b52b24;border-color:#f0b52bbf}.message-form button:disabled{cursor:default;opacity:.7}.message-feedback{color:#f0b52beb;margin:0;font-size:.74rem}.message-feedback-error{color:#ff7878f2}.site-footer{justify-items:center;gap:.65rem;padding:.8rem 0 .4rem;display:grid}.footer-links{margin-top:0}.footer-note{color:#ffffff7a;letter-spacing:.05rem;text-align:center;margin:0;font-size:.68rem}.scroll-hint{pointer-events:none;opacity:0;justify-content:center;width:100%;transition:opacity .4s,transform .4s;display:flex;position:fixed;bottom:1.5rem}.scroll-hint.visible{opacity:1;transform:translateY(0)}.scroll-hint span{letter-spacing:.6rem;color:var(--muted);font-size:.7rem}@media (max-width:960px){.site-shell{padding:1.5rem}.hero-panel.minimal{padding:.85rem}.hero-mini-grid{grid-template-columns:1fr}.hero-side-stack,.hero-intro-stack{gap:.55rem}.hero-compact-card{padding:.75rem}.about-meta-row{grid-template-columns:1fr;gap:.45rem}.vertical-columns,.message-form{grid-template-columns:1fr}.timeline-card{flex-basis:min(18.5rem,86vw)}}@media (min-width:961px){.hero-intro-stack{grid-area:1/1}.hero-side-stack{grid-area:1/2}.hero-about-card{grid-area:1/3}}@media (hover:none),(pointer:coarse){.cursor-trailer{display:none}}
