:root{--bg:#101010;--panel:#181818;--line:#353535;--text:#f5f3ef;--muted:#b1b0ad;--red:#ee3444;--font:Arial,Helvetica,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.6 var(--font)}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}a:focus-visible,button:focus-visible{outline:3px solid var(--red);outline-offset:6px}img{max-width:100%;display:block}button{border:0}h1,h2,h3,p{margin:0}h1,h2,h3{line-height:1.08;font-weight:500}em{font-family:Georgia,'Times New Roman',serif;font-weight:400}header{position:relative;z-index:5;min-height:96px;display:flex;align-items:center;justify-content:space-between;padding:24px 5%;border-bottom:1px solid var(--line)}.brand{background:#fff;padding:7px 10px;display:block;width:206px}.brand img{width:100%;height:auto}nav{display:flex;gap:32px;align-items:center;font-size:14px}nav a:hover,.text-link:hover,footer a:hover{color:var(--red)}.nav-contact{border:1px solid #676767;padding:10px 18px}.nav-contact span{margin-left:18px}.skip{position:fixed;top:-100px;background:white;color:black;padding:12px;z-index:100}.skip:focus{top:8px}.hero{position:relative;min-height:730px;overflow:hidden;padding:35px 5% 0}.hero-top,.hero-bottom{display:flex;justify-content:space-between;gap:24px}.eyebrow{font-size:12px;letter-spacing:.15em;line-height:1.6;font-weight:600}.accent{color:var(--red)}.hero-copy{position:relative;z-index:2;padding:68px 0 115px;max-width:900px}.intro{font-size:16px;color:var(--muted);margin-bottom:24px}h1{font-size:clamp(56px,7.8vw,116px);letter-spacing:-.055em;line-height:1.02}h1 em{color:var(--red);letter-spacing:-.065em}.hero-description{max-width:420px;color:#c3c2c0;margin-top:30px}.actions{display:flex;align-items:center;gap:30px;margin-top:32px}.button{display:inline-flex;gap:40px;align-items:center;padding:14px 24px;font-size:14px;font-weight:600}.primary{background:var(--red);color:#101010}.primary:hover{background:#ff5262}.text-link{font-size:14px;border-bottom:1px solid #777;padding-bottom:4px}.text-link span{margin-left:18px}.fabric{position:absolute;width:82%;max-width:none;right:-28%;top:105px;transform:rotate(-26deg);opacity:.8;pointer-events:none}.hero-bottom{position:relative;z-index:2;padding:21px 0;border-top:1px solid #505050;font-size:12px;letter-spacing:.1em;color:#b5b3b1}.section{padding:100px 5%}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:60px;margin-bottom:44px}h2{font-size:clamp(36px,4vw,60px);letter-spacing:-.045em}.section-heading h2{margin-top:18px}.section-heading>p{color:var(--muted);max-width:350px}.projects{display:grid;grid-template-columns:1fr 1fr;gap:44px 28px}.project{display:block;text-align:left;background:transparent;padding:0;width:100%}.featured{grid-column:1/-1}.project-image{position:relative;overflow:hidden;background:#252525;aspect-ratio:1.5}.project-image img{width:100%;height:100%;object-fit:cover;transition:transform .6s}.featured .project-image{aspect-ratio:2.5}.featured .project-image img{object-position:center 58%}.project:hover .project-image img{transform:scale(1.025)}.project-open{position:absolute;right:18px;top:18px;border-radius:50%;width:43px;height:43px;display:grid;place-items:center;background:var(--text);color:black;font-size:24px}.image-label{position:absolute;left:22px;bottom:22px;background:#101010d9;padding:8px 14px;font-size:12px;letter-spacing:.15em}.project-caption{display:flex;justify-content:space-between;gap:24px;padding:20px 0;border-bottom:1px solid var(--line)}.project-caption .eyebrow,.technical>.eyebrow{color:var(--muted)}.project h3{font-size:30px;margin-top:8px}.project-caption p{max-width:250px;align-self:end;font-size:14px;color:var(--muted)}.technical-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid var(--line);margin:70px 0 28px;padding-top:32px}.technical-heading h3{font-size:30px}.technical-heading span{color:var(--muted)}.technical-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}.technical .project-image{aspect-ratio:1.45;background:#e7e7e7;margin-bottom:20px}.technical .project-image img{object-fit:contain}.technical h3{font-size:23px;line-height:1.2}.technical>p{margin-top:12px;color:var(--muted);font-size:14px}.work-note{font-size:12px;color:var(--muted);margin-top:26px}.about{display:grid;grid-template-columns:.8fr 1fr;gap:8%;background:var(--panel);align-items:center}.portrait-wrap{position:relative}.portrait-wrap>img{width:100%;max-height:630px;object-fit:cover;object-position:45% 56%;filter:saturate(.75)}.portrait-caption{display:block;font-size:12px;letter-spacing:.12em;border-top:3px solid var(--red);padding-top:14px}.about h2{margin:18px 0 26px}.about-copy>p{color:var(--muted);margin-bottom:18px}.about-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;padding:26px 0;margin:24px 0 28px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.about-facts strong{display:block;font-size:36px;line-height:1.2;font-weight:500}.about-facts span{display:block;font-size:12px;color:var(--muted);margin-top:8px}.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:15px}.chips span{border:1px solid #484848;padding:6px 12px;font-size:14px}.achievement-layout{display:grid;grid-template-columns:.8fr 1fr;gap:8%}.education article{padding:28px 0 0}.year{font-size:12px;letter-spacing:.1em;color:var(--red)}.education h3{font-size:24px;margin:12px 0}.education p{font-size:14px}.muted{color:var(--muted);margin-top:12px;max-width:360px}.award{display:grid;grid-template-columns:74px 1fr;gap:20px;padding:24px 0;border-bottom:1px solid var(--line)}.award>span{font-size:12px;color:var(--red)}.award h3{font-size:21px}.award p{font-size:14px;color:var(--muted);margin-top:7px}.contact{background:#c82534;color:#100d0e}.contact h2{font-size:clamp(50px,7vw,96px);margin:30px 0}.contact p{margin-bottom:30px}.email-link{display:inline-block;font-size:clamp(20px,3vw,38px);border-bottom:1px solid #6c111a;line-height:1.5}.email-link span{margin-left:24px}.contact-links{display:flex;gap:36px;margin-top:30px;flex-wrap:wrap;font-size:14px}.contact a:hover{text-decoration:underline}footer{padding:30px 5%;display:flex;justify-content:space-between;gap:24px;font-size:12px;color:var(--muted)}footer>span:nth-child(2){letter-spacing:.1em}dialog{background:#151515;color:var(--text);border:1px solid #555;padding:30px;max-width:1200px;width:94vw;max-height:94dvh;overflow:auto}dialog::backdrop{background:#000d;backdrop-filter:blur(8px)}.dialog-header{display:flex;justify-content:space-between;gap:20px;align-items:start}.dialog-header h2{margin:8px 0 16px;font-size:36px}.dialog-header button{position:sticky;top:0;background:#333;width:44px;height:44px;font-size:32px;flex-shrink:0;line-height:1}.dialog-header button:hover{background:var(--red)}#dialog-description{color:var(--muted);max-width:850px}.gallery-controls{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:20px 0;font-size:14px}.gallery-controls button{padding:8px 14px;background:#333}.gallery-controls button:disabled{opacity:.35;cursor:default}.gallery-controls a{margin-left:auto;text-decoration:underline}.gallery-stage{background:#242424;padding:12px;min-height:180px}.gallery-stage img{margin:auto;width:auto;max-height:65vh;object-fit:contain}.gallery-tip{font-size:12px;color:var(--muted);margin-top:12px}body.modal-open{overflow:hidden}
@media(min-width:1600px){header,.hero,.section,footer{padding-left:max(5%,calc((100% - 1440px)/2));padding-right:max(5%,calc((100% - 1440px)/2))}}@media(max-width:900px){nav{gap:18px}.hero{min-height:650px}.hero-copy{padding-top:65px}.fabric{width:100%;right:-40%;top:210px;opacity:.55}.section{padding-top:70px;padding-bottom:70px}.section-heading{gap:30px}.section-heading>p{max-width:260px}.project-caption{display:block}.project-caption p{margin-top:12px;max-width:none}.about{gap:5%;grid-template-columns:.8fr 1fr}.about-facts{gap:8px}.technical-grid{gap:18px}.technical h3{font-size:21px}}@media(max-width:600px){header{flex-wrap:wrap;gap:20px;padding-top:20px;padding-bottom:20px}.brand{width:160px}nav{width:100%;justify-content:space-between;gap:12px;font-size:14px}.nav-contact{padding:6px 10px}.nav-contact span{margin-left:6px}.hero{min-height:660px;padding-top:25px}.hero-top .eyebrow{font-size:12px;letter-spacing:.08em}.hero-copy{padding-top:48px;padding-bottom:80px}h1{font-size:clamp(48px,11.8vw,70px)}.hero-description{max-width:310px}.fabric{width:150%;top:290px;right:-72%;opacity:.4}.hero-bottom{font-size:10px;letter-spacing:.06em}.hero-bottom span{max-width:48%}.actions{gap:20px}.button{padding:12px 16px;gap:16px}.section-heading{display:block;margin-bottom:30px}.section-heading>p{max-width:none;margin-top:24px}.projects,.technical-grid,.about,.achievement-layout{grid-template-columns:1fr}.featured{grid-column:auto}.featured .project-image{aspect-ratio:1.5}.project-caption{display:flex}.project-caption p{max-width:160px;font-size:13px}.project h3{font-size:27px}.technical-heading{display:block}.technical-heading span{display:block;margin-top:12px}.technical-grid{gap:35px}.technical .project-image{aspect-ratio:1.6}.technical h3{font-size:24px}.about{gap:35px}.portrait-wrap{max-width:420px}.portrait-wrap>img{max-height:460px}.about-facts strong{font-size:32px}.achievement-layout{gap:45px}.contact h2{font-size:54px}.contact-links{gap:20px}footer{flex-wrap:wrap}footer>span:nth-child(2){display:none}dialog{padding:18px;width:96vw}.dialog-header h2{font-size:30px}.gallery-controls{gap:10px}.gallery-controls a{margin-left:0;width:100%}.gallery-stage{padding:0}.gallery-stage img{max-height:60vh}.gallery-tip{line-height:1.5}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

[hidden]{display:none!important}.project-filters{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:30px}.project-filters button,.zoom-controls button{background:#232323;border:1px solid #555;padding:10px 16px;font-size:14px}.project-filters button[aria-pressed="true"]{background:var(--red);color:#111;border-color:var(--red)}#filter-count{margin-left:auto;color:var(--muted);font-size:14px}.zoom-controls{display:flex;align-items:center;gap:10px;margin-bottom:16px}.zoom-controls output{min-width:52px;text-align:center;font-size:14px}.zoom-controls button:disabled{opacity:.4;cursor:default}.thumbnails{display:flex;gap:10px;overflow-x:auto;padding:5px 3px 15px;margin-bottom:8px}.thumbnails button{flex:0 0 90px;padding:4px;background:#292929;border:2px solid transparent}.thumbnails button[aria-pressed="true"]{border-color:var(--red)}.thumbnails img{height:56px;width:100%;object-fit:contain}.thumbnails span{font-size:12px}.gallery-stage{max-height:65vh;overflow:auto}.gallery-stage.is-zoomed img{max-height:none;max-width:none;margin:0}.gallery-stage:focus-visible{outline:2px solid var(--red)}@media(max-width:600px){#filter-count{width:100%;margin-left:0}.project-filters button{padding:8px 12px}.thumbnails button{flex-basis:74px}.zoom-controls{gap:7px}.zoom-controls button{padding:9px 12px}}

.sem4 .project-image img{object-position:center top}.sem4 .project-caption h3{max-width:700px}
.quick-nav{position:fixed;right:24px;bottom:24px;z-index:40;display:flex;flex-direction:column;align-items:flex-end;gap:10px}.quick-toggle{display:flex;align-items:center;gap:16px;min-height:54px;padding:9px 10px 9px 20px;border:1px solid #ff6471;border-radius:999px;background:var(--red);color:#111;box-shadow:0 12px 36px #0008;font-weight:700}.quick-toggle:hover{background:#ff5262}.quick-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:#111;color:#fff;font-size:25px;font-weight:400;line-height:1}.quick-menu{width:min(300px,calc(100vw - 48px));padding:10px;border:1px solid #555;background:#161616f5;box-shadow:0 18px 55px #000b;backdrop-filter:blur(12px)}.quick-menu a{display:grid;grid-template-columns:38px 1fr;align-items:center;padding:13px 12px;border-bottom:1px solid #333;font-size:14px}.quick-menu a:last-child{border-bottom:0}.quick-menu a:hover,.quick-menu a:focus-visible{background:var(--red);color:#111}.quick-menu a span{font-size:11px;letter-spacing:.12em;color:var(--red)}.quick-menu a:hover span,.quick-menu a:focus-visible span{color:#111}@media(max-width:600px){.quick-nav{right:14px;bottom:14px}.quick-toggle{min-height:50px;padding-left:17px}.quick-menu{width:min(290px,calc(100vw - 28px))}}

.academic-record,.certificate-section{margin-top:64px}.academic-record>h3,.certificate-section>h3{font-size:30px;margin-bottom:20px}.academic-record>p{color:var(--muted);margin-bottom:24px;max-width:680px}.semester{border-top:1px solid var(--line)}.semester:last-child{border-bottom:1px solid var(--line)}.semester summary{padding:20px 0;cursor:pointer;display:list-item;list-style-position:inside}.semester summary strong{font-weight:500}.semester summary>span{float:right;color:var(--red)}.results-table{overflow-x:auto;padding-bottom:24px}table{width:100%;border-collapse:collapse;font-size:14px;text-align:left}caption{text-align:left;color:var(--muted);padding-bottom:12px}td,th{padding:12px 16px;border-bottom:1px solid var(--line)}th{color:var(--muted)}td:last-child{color:var(--red);font-weight:bold}.certificate-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.certificate{border:1px solid var(--line);padding:16px;background:var(--panel)}.certificate img{width:100%;height:180px;object-fit:contain;background:white}.certificate h3{font-size:20px;margin:18px 0 8px}.certificate p{color:var(--muted);font-size:14px}.certificate>span{display:block;color:var(--red);margin-top:16px;font-size:14px}.certificate:hover{border-color:var(--red)}@media(max-width:700px){.certificate-grid{grid-template-columns:1fr 1fr}.semester summary>span{display:block;float:none;margin:8px 0 0 20px}.certificate{padding:12px}.certificate img{height:140px}}@media(max-width:440px){.certificate-grid{grid-template-columns:1fr}}
.hero-profile{position:absolute;z-index:3;right:6%;top:132px;width:clamp(190px,18vw,275px);margin:0;padding:8px;background:#111;border:1px solid #777;border-bottom:4px solid var(--red);box-shadow:0 24px 60px #000a;transform:rotate(1.5deg)}.hero-profile img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:43% center;filter:saturate(.78) contrast(1.04)}.hero-profile figcaption{display:flex;justify-content:space-between;gap:10px;padding:10px 4px 2px;font-size:10px;letter-spacing:.11em;color:#d3d1ce}.hero-profile figcaption span:last-child{color:var(--red);text-align:right}.hero-copy{max-width:min(900px,72vw)}@media(max-width:900px){.hero-profile{right:4%;top:180px;width:180px}.hero-copy{max-width:78vw}}@media(max-width:600px){.hero{min-height:780px}.hero-copy{max-width:none}.hero-profile{top:auto;right:18px;bottom:70px;width:135px;padding:5px;transform:rotate(1deg)}.hero-profile figcaption{display:block;padding:7px 2px 1px;font-size:8px}.hero-profile figcaption span{display:block}.hero-profile figcaption span:last-child{text-align:left}.hero-bottom{padding-right:145px}.hero-bottom span:last-child{display:none}}
.showreel{padding-top:90px;background:#161616}.showreel-heading{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:30px}.showreel-heading h2{margin-top:12px}.showreel-heading>p{max-width:390px;color:var(--muted)}.video-frame{position:relative;background:#050505;border:1px solid #444;border-bottom:4px solid var(--red);box-shadow:0 22px 60px #0008}.video-frame video{display:block;width:100%;aspect-ratio:16/9;background:#000}.video-duration{position:absolute;top:16px;right:16px;padding:5px 9px;background:#0b0b0bcc;color:#fff;font-size:11px;letter-spacing:.1em;pointer-events:none}@media(max-width:600px){.showreel{padding-top:65px}.showreel-heading{display:block}.showreel-heading>p{margin-top:18px}.video-duration{top:8px;right:8px}}
