:root{color-scheme:dark;--bg:#171717;--card:#222225;--line:#323236;--text:#ededed;--muted:#a6a6aa;--soft:#85858b;--green:#50bd88}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:1.5rem}body{margin:0;background:var(--bg);color:var(--text);font:400 1rem/1.6 system-ui,-apple-system,"Segoe UI",sans-serif}a{color:inherit;text-decoration:none}a:hover{color:white}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid #b9d8ff;outline-offset:3px}.skip{position:absolute;top:-5rem;left:1rem;z-index:3;padding:.5rem 1rem;background:white;color:#171717}.skip:focus{top:1rem}.page{width:min(100% - 2.5rem,760px);margin:0 auto}
.profile{display:grid;grid-template-columns:104px minmax(0,1fr) 138px;gap:1.5rem;align-items:start;padding:5.3rem 0 2.3rem}.portrait{width:104px;height:104px;object-fit:cover;object-position:center 22%;border-radius:14px;background:#ccc}.identity h1{font-size:1.65rem;line-height:1.18;letter-spacing:-.03em;margin:0 0 .2rem}.identity p{font-size:1rem;color:var(--muted);margin:0}.location,.availability{display:block;color:var(--muted);font-size:.88rem}.location{margin-top:.55rem}.availability{margin-top:.3rem}.availability span{color:var(--green);font-size:.65rem;margin-right:.28rem}.quick-links{display:grid;gap:.5rem;font-size:.85rem;color:#d6d6d9;padding-top:.15rem}.quick-links a:hover,.email-link:hover{color:white;text-decoration:underline;text-underline-offset:4px}
.profile-links{display:flex;justify-content:space-between;align-items:center;gap:1.2rem;padding:1.2rem 0;border-block:1px solid var(--line);font-size:.84rem;color:#bbbcc0}.email-link{white-space:nowrap}.social-links{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:.38rem 1rem}.social-links a{display:inline-flex;align-items:center;gap:.35rem}.social-links svg{width:15px;height:15px;display:none}.social-links a:hover{color:white}.social-links a span{display:inline}
.overview{display:grid;grid-template-columns:1fr 1fr;gap:2.8rem;padding:3.8rem 0 2.8rem}.page h2{font-size:1.3rem;line-height:1.25;letter-spacing:-.025em;margin:0 0 1.4rem}.about p{margin:0 0 1rem;color:var(--muted)}.about p:last-child{margin-bottom:0}.tech-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.7rem}.tech{aspect-ratio:1;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:.15rem;border-radius:10px;background:#262629;border:1px solid #2a2a2d;color:#c8c8cb;font-size:.66rem;line-height:1.1;text-align:center}.tech-mark{font-size:1.45rem;font-weight:800;line-height:1.1;letter-spacing:-.07em;color:var(--brand)}
.block{padding:2rem 0 3.5rem;border-bottom:1px solid var(--line)}.timeline{border-left:1px solid var(--line);margin-left:.45rem}.timeline-item{position:relative;padding:0 0 1.7rem 1.15rem}.timeline-item:last-child{padding-bottom:0}.timeline-item:before{content:"";position:absolute;left:-4px;top:.48rem;width:7px;height:7px;background:#65666d;border-radius:50%}.timeline-head{display:flex;justify-content:space-between;gap:1.2rem}.timeline h3{font-size:.99rem;margin:0 0 .08rem;line-height:1.3}.timeline-role{color:#d0d0d4;margin:0}.timeline time{flex:none;color:var(--soft);font-size:.8rem;white-space:nowrap}.timeline-item>p{color:var(--muted);font-size:.89rem;margin:.5rem 0 0}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}.project-card{display:flex;flex-direction:column;overflow:hidden;min-width:0;border:1px solid var(--line);background:var(--card);border-radius:10px;transition:transform .2s,border-color .2s}.project-card:hover{transform:translateY(-3px);border-color:#777780}.project-visual{display:grid;place-items:center;min-height:105px;padding:1rem 1.4rem;background:linear-gradient(115deg,#252e39,#252528 55%,#263432);border-bottom:1px solid var(--line);font-size:1.16rem;letter-spacing:-.03em;font-weight:750;text-align:center;color:#e6eeee}.project-card:nth-child(2) .project-visual{background:linear-gradient(115deg,#24333d,#2a2a35)}.project-card:nth-child(3) .project-visual{background:linear-gradient(115deg,#34313e,#232d33)}.project-card:nth-child(4) .project-visual{background:linear-gradient(115deg,#2b3331,#2c2c37)}.project-details{display:flex;flex-direction:column;gap:.3rem;padding:1rem 1.1rem;flex:1}.project-category,.eyebrow{font-size:.75rem;color:var(--soft)}.project-details strong{font-size:1rem;line-height:1.25}.project-description{color:var(--muted);font-size:.84rem;line-height:1.5}.project-foot{display:flex;justify-content:space-between;gap:.5rem;margin-top:auto;padding-top:1rem;color:#c1c2c6;font-size:.76rem}.project-foot span:last-child{font-size:1rem;line-height:1}.thesis{display:flex;justify-content:space-between;gap:1.5rem;align-items:center;padding:1.5rem 0 0}.thesis h3{font-size:1rem;margin:.2rem 0 .25rem}.thesis p{color:var(--muted);font-size:.88rem;margin:0}.thesis-status{white-space:nowrap;font-size:.8rem;color:var(--green)}
.contact{border:0}.contact>p{color:var(--muted);margin:-.5rem 0 1.4rem}.contact-fields{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.contact-form label{display:block;font-size:.86rem;color:#ddd;margin-bottom:.9rem}.contact-form input:not(.form-trap),.contact-form textarea{display:block;width:100%;margin-top:.3rem;padding:.7rem .8rem;background:#242426;border:1px solid #505055;border-radius:7px;color:var(--text);font:inherit}.contact-form textarea{resize:vertical;min-height:150px}.contact-form textarea::placeholder{color:#909094}.form-trap{position:absolute;left:-9999px;width:1px;height:1px}.form-footer{display:flex;justify-content:space-between;align-items:center;gap:1rem;color:var(--soft);font-size:.84rem}.form-footer button{border:1px solid #68686d;background:#303034;color:var(--text);border-radius:7px;padding:.7rem 1rem;font:600 .9rem system-ui;cursor:pointer}.form-footer button:hover{background:#48484d}.form-footer button:disabled{opacity:.6;cursor:wait}.form-feedback{min-height:1.5rem;margin:.7rem 0 0;color:var(--green)}.form-feedback.is-error{color:#f6aaa8}.form-note{font-size:.76rem;color:var(--soft)}footer{border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:1rem;padding:1.8rem 0 3rem;font-size:.82rem;color:var(--soft)}
@media(max-width:700px){.profile{padding-top:3rem;grid-template-columns:92px minmax(0,1fr);gap:1.2rem}.portrait{width:92px;height:92px}.quick-links{grid-column:2;display:flex;flex-wrap:wrap;gap:1rem}.profile-links{align-items:flex-start;flex-direction:column;gap:.8rem}.social-links{justify-content:flex-start}.overview{gap:1.7rem}}
@media(max-width:560px){.page{width:min(100% - 2rem,760px)}.profile{grid-template-columns:76px minmax(0,1fr);gap:1rem;padding:2.4rem 0 1.6rem}.portrait{width:76px;height:76px;border-radius:11px}.identity h1{font-size:1.4rem}.identity p{font-size:.9rem}.availability{font-size:.78rem}.quick-links{grid-column:1/-1}.overview{grid-template-columns:1fr;padding:2.8rem 0 1rem}.tech-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.block{padding:2.3rem 0}.timeline-head{display:block}.timeline time{display:block;margin:.25rem 0 0}.project-grid{grid-template-columns:1fr}.thesis{align-items:flex-start;flex-direction:column;gap:.4rem}.contact-fields{grid-template-columns:1fr}.form-footer{align-items:stretch;flex-direction:column}.form-footer button{width:100%}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.project-card{transition:none}}

/* Profile actions and language switch */
.profile{position:relative;grid-template-columns:104px minmax(0,1fr) 166px}
.lang-switch{position:absolute;right:0;top:1.25rem;border:1px solid #65656a;border-radius:6px;color:#ececef;padding:.2rem .5rem;font-weight:700;font-size:.76rem;line-height:1.4}
.lang-switch:hover{background:#36363a}
.quick-links{padding-top:.1rem}

/* Official Simple Icons artwork, shipped with the page */
.tech{aspect-ratio:1;gap:.38rem}
.tech img{width:34px;height:34px;display:block}
.tech>span{font-size:.68rem;white-space:nowrap}

/* Timeline dates share a right edge regardless of title length */
.timeline-head{display:grid;grid-template-columns:minmax(0,1fr) 126px;align-items:start}
.timeline time{justify-self:end;text-align:right;white-space:nowrap}

/* Work in progress sits below the published projects */
.subheading{font-size:1.03rem;margin:2.6rem 0 .9rem;letter-spacing:-.015em}
.work-list{border-top:1px solid var(--line)}
.work-row{padding:1.25rem .1rem;border-bottom:1px solid var(--line)}
.work-row h3{font-size:.98rem;line-height:1.4;margin:.18rem 0 .3rem}
.work-row p{font-size:.87rem;color:var(--muted);margin:0;max-width:68ch}

@media(max-width:700px){.profile{grid-template-columns:92px minmax(0,1fr)}.lang-switch{top:.65rem}.quick-links{grid-column:2;padding-top:0}}
@media(max-width:560px){.profile{grid-template-columns:76px minmax(0,1fr);padding-top:2.9rem}.quick-links{grid-column:1/-1}.timeline-head{grid-template-columns:minmax(0,1fr) 118px;gap:.5rem}.timeline time{display:block;margin:0;font-size:.75rem;white-space:normal}footer{flex-wrap:wrap}}
