@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Space+Grotesk:wght@400;500;600;700&display=swap');

:root{--ink:#080a0f;--paper:#e8ebed;--white:#f7f8f8;--muted:#96a0ae;--line:rgba(233,239,246,.17);--acid:#b9ff43;--gutter:clamp(1.1rem,3vw,3.5rem);--ease:cubic-bezier(.22,1,.36,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ink);color:var(--white);font-family:'Space Grotesk',Arial,sans-serif;overflow-x:hidden}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}.eyebrow,.section-index,.card-number,.item-number,.header-status,.video-label,.section-heading{font-family:'DM Mono',monospace;font-size:.67rem;letter-spacing:.08em;text-transform:uppercase}.site-header{align-items:center;display:flex;justify-content:space-between;left:0;mix-blend-mode:difference;padding:1.4rem var(--gutter);position:fixed;right:0;top:0;z-index:20}.brand{font-size:1.45rem;font-weight:700;letter-spacing:-.1em}.brand span{color:var(--acid)}.header-status{display:flex;gap:.55rem;align-items:center;margin-left:auto;margin-right:2rem}.header-status i{background:var(--acid);border-radius:50%;height:.45rem;width:.45rem}.menu-button{background:transparent;border:0;cursor:pointer;display:flex;align-items:center;gap:.8rem;padding:.3rem 0}.menu-button b,.menu-button b:before{background:currentColor;display:block;height:1px;width:1.6rem;content:'';transition:transform .4s var(--ease)}.menu-button b:before{transform:translateY(-5px)}.menu-button[aria-expanded=true] b{transform:rotate(45deg)}.menu-button[aria-expanded=true] b:before{transform:rotate(-90deg)}.menu-overlay{background:var(--acid);color:var(--ink);inset:0;opacity:0;pointer-events:none;position:fixed;transition:opacity .5s var(--ease);z-index:15}.menu-overlay.open{opacity:1;pointer-events:auto}.menu-inner{display:flex;flex-direction:column;height:100%;padding:clamp(6.5rem,12vh,10rem) var(--gutter) var(--gutter)}.menu-inner>a{border-bottom:1px solid rgba(8,10,15,.3);font-size:clamp(2.8rem,7vw,8rem);font-weight:500;letter-spacing:-.07em;line-height:.98;padding:.06em 0;transition:padding .35s var(--ease)}.menu-inner>a:hover{padding-left:.08em}.menu-contact{display:flex;justify-content:space-between;margin-top:auto;font-family:'DM Mono',monospace;font-size:.73rem}.menu-contact a{text-decoration:underline}.hero{height:100svh;min-height:620px;isolation:isolate;overflow:hidden;position:relative}.hero-video,.contact-video{height:100%;left:0;object-fit:cover;position:absolute;top:0;width:100%;z-index:-3}.hero-shade,.contact-shade{background:linear-gradient(110deg,rgba(4,7,12,.81),rgba(4,7,12,.2) 65%,rgba(4,7,12,.58));inset:0;position:absolute;z-index:-2}.hero-grid{background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:25% 100%,100% 20%;inset:0;opacity:.6;position:absolute;z-index:-1}.hero-copy{bottom:var(--gutter);left:var(--gutter);position:absolute;right:var(--gutter)}.hero h1{font-size:clamp(5.1rem,13vw,14rem);font-weight:500;letter-spacing:-.09em;line-height:.73;margin:.25em 0 .27em;max-width:8ch}.hero h1 em,.work-intro h2 span,.project h3 em,.experience em,.contact h2 em{color:var(--acid);font-style:normal}.hero-meta{align-items:end;border-top:1px solid var(--line);display:flex;justify-content:space-between;padding-top:.8rem}.hero-meta p{font-family:'DM Mono',monospace;font-size:.7rem;line-height:1.55;margin:0}.scroll-link{font-size:.86rem}.scroll-link span{color:var(--acid);font-size:1.1rem;margin-left:.65rem}.video-label{bottom:var(--gutter);position:absolute;right:var(--gutter);writing-mode:vertical-rl}.section-pad{padding:clamp(6rem,14vw,13rem) var(--gutter)}.statement{background:var(--paper);color:var(--ink);display:grid;grid-template-columns:1fr 7fr 3fr;gap:2rem}.statement h2,.work-intro h2,.experience h2,.contact h2{font-size:clamp(3.4rem,7.4vw,9rem);font-weight:500;letter-spacing:-.08em;line-height:.83;margin:.25rem 0 0}.statement h2 span{display:block;color:#59606a}.statement-note{align-self:end;max-width:23rem}.statement-note p{font-size:1.1rem;line-height:1.42}.text-link{border-bottom:1px solid var(--ink);display:inline-block;margin-top:1.5rem;padding-bottom:.4rem}.text-link span{margin-left:1rem}.profile{background:#11151e}.section-heading{display:flex;justify-content:space-between;margin-bottom:3rem;color:var(--muted)}.section-heading p{margin:0}.profile-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:1px;background:var(--line)}.profile-card{background:#11151e;min-height:22rem;padding:1.3rem;position:relative}.profile-card h3{font-size:clamp(2rem,3.6vw,4.5rem);font-weight:500;letter-spacing:-.07em;line-height:.86;margin:3.5rem 0 2.4rem}.profile-card h3 span{color:var(--acid)}.profile-card dl{margin:0}.profile-card dl div{border-top:1px solid var(--line);display:grid;grid-template-columns:7rem 1fr;gap:1rem;padding:.65rem 0}.profile-card dt{color:var(--muted);font-family:'DM Mono',monospace;font-size:.65rem;text-transform:uppercase}.profile-card dd{font-size:.84rem;margin:0}.profile-card dd a:hover,.project-links a:hover{color:var(--acid)}.identity-card{grid-column:span 4}.education-card{grid-column:span 8}.education-card>p{font-size:1rem;line-height:1.45}.education-card .detail-line{color:var(--acid);font-family:'DM Mono',monospace;font-size:.75rem}.gpa{bottom:1.3rem;position:absolute}.gpa strong{font-size:1.6rem}.courses-card{grid-column:span 7}.courses-card ul{columns:2;list-style:none;margin:3rem 0 0;padding:0}.courses-card li{border-bottom:1px solid var(--line);break-inside:avoid;font-size:.85rem;padding:.55rem 0}.skills-card{grid-column:span 5}.work-intro{background:#11151e;display:grid;grid-template-columns:1fr 10fr;gap:2rem;position:relative}.work-intro .eyebrow{grid-column:2}.work-intro h2{grid-column:2;margin:0}.work-intro-note{grid-column:2;justify-self:end;line-height:1.45;margin:4rem 0 0;max-width:22rem;color:var(--muted)}.projects{background:var(--ink)}.project{border-top:1px solid var(--line);display:grid;grid-template-columns:7fr 5fr;min-height:47rem;padding:var(--gutter)}.project-media{align-self:center;aspect-ratio:1.24;overflow:hidden;position:relative}.project-media img{height:100%;object-fit:cover;transition:transform 1s var(--ease);width:100%}.project:hover .project-media img{transform:scale(1.04)}.media-number{background:var(--acid);color:var(--ink);font-family:'DM Mono',monospace;font-size:.72rem;left:0;padding:.45rem .6rem;position:absolute;top:0}.project-copy{align-self:end;padding:0 0 0 clamp(1.5rem,5vw,7rem)}.project-copy h3{font-size:clamp(3rem,6.7vw,8rem);font-weight:500;letter-spacing:-.09em;line-height:.78;margin:.28rem 0 2rem}.project-copy>p:not(.eyebrow){color:#bac2cc;line-height:1.5;max-width:27rem}.tags{display:flex;flex-wrap:wrap;gap:.45rem;list-style:none;margin:1.8rem 0;padding:0}.tags li{border:1px solid var(--line);border-radius:2rem;font-family:'DM Mono',monospace;font-size:.64rem;padding:.38rem .6rem}.project-links{display:flex;gap:1.5rem}.project-links a{border-bottom:1px solid currentColor;font-size:.82rem;padding-bottom:.3rem}.project-links span{color:var(--acid);margin-left:.5rem}.project-right{grid-template-columns:5fr 7fr}.project-right .project-media{grid-column:2}.project-right .project-copy{grid-column:1;grid-row:1;padding:0 clamp(1.5rem,5vw,7rem) 0 0}.project-dark{background:#171225}.project-game{background:var(--paper);color:var(--ink)}.project-game .tags li{border-color:rgba(8,10,15,.2)}.project-game .project-copy>p:not(.eyebrow){color:#505864}.project-audio{background:#31191d}.project-snake{background:#0c2026}.experience{background:var(--acid);color:var(--ink);display:grid;grid-template-columns:1fr 5fr 6fr;gap:2rem}.experience-list{border-top:1px solid rgba(8,10,15,.33)}.experience-list article{border-bottom:1px solid rgba(8,10,15,.33);display:grid;grid-template-columns:4.5rem 1.4fr 1.5fr;gap:1rem;padding:1rem 0 1.4rem}.experience-list p{font-size:.88rem;line-height:1.45;margin:.2rem 0}.experience-list h3{font-size:1.35rem;font-weight:500;letter-spacing:-.05em;line-height:.94;margin:0}.experience-list .quiet{color:#41551e}.contact{height:82svh;min-height:580px;isolation:isolate;position:relative}.contact-content{bottom:var(--gutter);left:var(--gutter);position:absolute}.contact h2{margin-bottom:.45em}.contact-content>a{border-bottom:1px solid var(--white);font-size:clamp(1rem,2vw,1.5rem);padding-bottom:.4rem}.contact-content>a span{color:var(--acid);margin-left:1rem}.contact-location{bottom:var(--gutter);font-family:'DM Mono',monospace;font-size:.68rem;line-height:1.6;position:absolute;right:var(--gutter)}footer{align-items:center;background:#080a0f;display:flex;gap:2rem;justify-content:space-between;padding:1.3rem var(--gutter);font-family:'DM Mono',monospace;font-size:.65rem}footer p{margin:0}footer a:not(.brand):hover{color:var(--acid)}a:focus-visible,button:focus-visible{outline:2px solid var(--acid);outline-offset:5px}@media(max-width:760px){.header-status{display:none}.hero{min-height:560px}.hero h1{font-size:clamp(4.6rem,21vw,8rem)}.video-label{display:none}.statement,.experience{grid-template-columns:1fr;gap:1.5rem}.statement-note{margin-left:0}.identity-card,.education-card,.courses-card,.skills-card{grid-column:span 12}.profile-card{min-height:auto}.courses-card ul{columns:1}.project,.project-right{display:flex;flex-direction:column;gap:2rem;min-height:0;padding:var(--gutter)}.project-right .project-media{order:0}.project-right .project-copy{order:1}.project-copy,.project-right .project-copy{padding:0}.project-copy h3{font-size:clamp(3.4rem,15vw,6rem)}.work-intro{grid-template-columns:1fr}.work-intro .eyebrow,.work-intro h2,.work-intro-note{grid-column:1}.work-intro-note{justify-self:start;margin:1.5rem 0 0}.experience-list article{grid-template-columns:3rem 1fr}.experience-list article>p:last-child{grid-column:2}.menu-contact{display:block;line-height:2}.menu-contact p{margin-bottom:.5rem}footer{flex-wrap:wrap}.contact{min-height:530px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}.hero-video,.contact-video{display:none}}

/* Project mosaics and evidence galleries */
.cpms-mosaic{background:#090b10;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,1fr);gap:2px}.cpms-mosaic img{height:100%;min-height:0;object-fit:cover;width:100%}.project:hover .cpms-mosaic img{transform:none}.media-carousel img{inset:0;opacity:0;position:absolute;transform:scale(1.04);transition:opacity .75s var(--ease),transform 1.4s var(--ease)}.media-carousel img.is-active{opacity:1;transform:scale(1)}.media-counter{background:rgba(8,10,15,.7);bottom:0;color:var(--white);font-family:'DM Mono',monospace;font-size:.64rem;margin:0;padding:.42rem .56rem;position:absolute;right:0;z-index:3}.recognition-media{aspect-ratio:1.55;background:#172016;overflow:hidden;position:relative}.recognition-media>img{height:100%;object-fit:cover;width:100%}.recognition-media.media-carousel img{inset:0;position:absolute}.experience-list article{grid-template-columns:3.4rem 12rem 1.1fr 1.35fr}@media(max-width:760px){.experience-list article{grid-template-columns:3rem 1fr}.experience-list article .recognition-media{grid-column:2}.experience-list article>p:last-child{grid-column:2}}

/* Full-scale recognition features, placed before selected work */
.recognition-intro{background:#b9ff43;color:var(--ink);display:grid;grid-template-columns:1fr 10fr;gap:2rem;position:relative}.recognition-intro .eyebrow,.recognition-intro h2,.recognition-intro .work-intro-note{grid-column:2}.recognition-intro h2{font-size:clamp(3.4rem,7.4vw,9rem);font-weight:500;letter-spacing:-.08em;line-height:.83;margin:0}.recognition-intro h2 span{color:#435a1c}.recognition-intro .work-intro-note{justify-self:end;line-height:1.45;margin:4rem 0 0;max-width:22rem}.recognition-projects{background:var(--ink)}.recognition-project{min-height:53rem}.recognition-mentor{background:#14221d}.recognition-deans{background:#e8ebed;color:var(--ink)}.recognition-deans .tags li{border-color:rgba(8,10,15,.2)}.recognition-deans .project-copy>p:not(.eyebrow){color:#505864}.recognition-rich{background:#171225}.recognition-note{border-top:1px solid var(--line);font-family:'DM Mono',monospace;font-size:.7rem!important;line-height:1.5!important;margin-top:2rem!important;padding-top:.8rem}.recognition-deans .recognition-note{border-color:rgba(8,10,15,.2)}@media(max-width:760px){.recognition-intro{grid-template-columns:1fr}.recognition-intro .eyebrow,.recognition-intro h2,.recognition-intro .work-intro-note{grid-column:1}.recognition-intro .work-intro-note{justify-self:start;margin:1.5rem 0 0}.recognition-project{min-height:0}}

/* Personal credentials take priority over decorative copy */
.hero-role{font-size:clamp(1.05rem,2vw,2.1rem);font-weight:500;letter-spacing:-.045em;line-height:1.05;margin:0 0 2rem}.hero-role span{color:var(--acid);font-size:.52em;letter-spacing:.02em;text-transform:uppercase}.statement h2{max-width:14ch}.statement h2 span{color:var(--ink)}.education-card .gpa{align-items:baseline;border-top:1px solid var(--line);bottom:auto;display:flex;gap:.45rem;margin:2.3rem 0 0;position:static;padding-top:.8rem}.education-card .gpa span{color:var(--muted);font-family:'DM Mono',monospace;font-size:.68rem;letter-spacing:.08em}.education-card .gpa strong{color:var(--acid);font-size:clamp(3.8rem,7vw,7rem);letter-spacing:-.1em;line-height:.72}.education-card .gpa small{color:var(--muted);font-family:'DM Mono',monospace;font-size:.75rem}.legacy-recognition{display:none!important}

/* Simplified profile statement composition */
.statement h2{font-size:clamp(4rem,8.5vw,10rem);max-width:none}.focus-detail{border-top:1px solid rgba(8,10,15,.25);display:grid;grid-template-columns:10rem 1fr;gap:1.2rem;margin-top:clamp(2rem,5vw,5rem);padding-top:.85rem}.focus-detail p{font-family:'DM Mono',monospace;font-size:.7rem;letter-spacing:.07em;margin:0;text-transform:uppercase}.focus-detail ul{list-style:none;margin:0;padding:0}.focus-detail li{border-bottom:1px solid rgba(8,10,15,.16);font-size:clamp(1.1rem,2vw,2.15rem);letter-spacing:-.045em;line-height:1.08;padding:.2rem 0 .48rem}.focus-detail li+li{padding-top:.48rem}@media(max-width:760px){.focus-detail{grid-template-columns:1fr;gap:.7rem;margin-top:2rem}.statement h2{font-size:clamp(3.7rem,16vw,6.8rem)}}
