@font-face{font-family:Lora;src:url('../fonts/Lora.woff2') format('woff2');font-weight:400 700;font-display:swap}@font-face{font-family:Inter;src:url('../fonts/Inter.woff2') format('woff2');font-weight:100 900;font-display:swap}

:root{--ink:#172e45;--muted:#566878;--blue:#225dc0;--paper:#f7f8fa;--line:#dce2e8}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:95px}body{margin:0;font-family:Inter,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper);line-height:1.65}a{color:inherit;text-underline-offset:5px}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #172e45;outline-offset:5px}.wrap{max-width:1160px;margin:auto;padding:0 32px}header{position:sticky;top:0;z-index:10;background:#f7f8faf5;border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}nav{height:82px;display:flex;align-items:center;justify-content:space-between;gap:25px}.brand{text-decoration:none;font-weight:700;font-size:18px;letter-spacing:-.6px}.brand b{background:var(--ink);color:white;display:inline-grid;place-items:center;width:38px;height:38px;margin-right:10px;border-radius:50%;font-size:13px;letter-spacing:0}.navlinks{display:flex;gap:28px;font-size:13px}.navlinks a{text-decoration:none}.navlinks a:hover{color:var(--blue)}.hero{padding:85px 0 72px}.hero-grid{display:grid;grid-template-columns:1.45fr 1fr;gap:75px;align-items:center}.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:2px;font-weight:700;color:var(--blue);margin:0 0 24px}.eyebrow:before{content:"";display:inline-block;width:25px;height:2px;background:currentColor;vertical-align:middle;margin-right:12px}h1{font-size:clamp(42px,5.4vw,70px);font-weight:600;line-height:1.07;letter-spacing:-3px;margin:0 0 28px}h1 em{font-family:Georgia,serif;font-weight:400;color:var(--blue)}.lead{font-size:18px;color:var(--muted);max-width:550px}.actions{display:flex;gap:23px;align-items:center;flex-wrap:wrap;margin-top:30px}.button{display:inline-flex;align-items:center;justify-content:center;gap:24px;background:var(--ink);color:white;padding:13px 22px;text-decoration:none;font-size:13px;border-radius:3px}.button:hover{background:var(--blue)}.text-link{font-size:13px;font-weight:600}.location{font-size:12px;color:var(--muted);margin-top:33px}.portrait{position:relative;padding:0 18px 20px 0}.portrait:after{content:"";position:absolute;inset:25px 0 0 25px;border:1px solid #225dc0;z-index:-1}.portrait img{width:100%;height:425px;display:block;object-fit:cover;object-position:center 25%;background:#e4eaf0;filter:saturate(.7)}.caption{background:var(--ink);color:white;padding:18px 24px;display:flex;justify-content:space-between;font-size:12px}.caption span{color:#f7f8fa}.strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:grid;grid-template-columns:repeat(3,1fr);padding:25px 0;margin-top:65px}.strip div{padding:0 30px;border-right:1px solid var(--line)}.strip div:first-child{padding-left:0}.strip div:last-child{border:0}.strip strong{display:block;font-size:20px;font-weight:600;letter-spacing:-.5px}.strip span{font-size:12px;color:var(--muted)}section.content{padding:85px 0;border-bottom:1px solid var(--line)}.section-grid{display:grid;grid-template-columns:1fr 2fr;gap:60px}h2{font-size:38px;font-weight:500;line-height:1.15;letter-spacing:-1.4px;margin:0 0 25px}.intro{font-size:23px;line-height:1.55;margin-top:0;letter-spacing:-.4px}.muted{color:var(--muted)}.skills{display:grid;grid-template-columns:1fr 1fr;gap:0 35px}.skill{border-top:1px solid var(--line);padding:23px 0}.number{font-size:11px;color:var(--blue);font-weight:700}h3{font-size:19px;font-weight:600;letter-spacing:-.4px;margin:12px 0}.skill p{font-size:14px;color:var(--muted)}.tags{display:flex;flex-wrap:wrap;gap:7px}.tags span,.tags a{font-size:10px;padding:4px 8px;border:1px solid var(--line);border-radius:3px}.tags a{color:var(--blue);text-decoration:none}.tags a:hover{text-decoration:underline;border-color:var(--blue)}.skill-link{display:inline-block;font-size:12px;color:var(--blue);margin-top:14px}.project:target{outline:2px solid #225dc0;outline-offset:8px}.experience{display:grid;grid-template-columns:150px 1fr;gap:25px;padding:28px 0;border-top:1px solid var(--line)}.date{font-size:12px;color:var(--muted);padding-top:14px}.experience h3{margin:7px 0}.experience p{font-size:14px;color:var(--muted)}.org{font-size:13px;color:var(--blue)}.projects{background:#edf1f5}.project{border-top:1px solid #dce2e8;padding:23px 0}.project summary{cursor:pointer;display:flex;align-items:center;gap:20px;list-style:none;font-size:19px;line-height:1.4;font-weight:500}.project summary::-webkit-details-marker{display:none}.project summary:after{content:"+";margin-left:auto;font-size:25px;color:var(--blue)}.project[open] summary:after{content:"−"}.project p{color:var(--muted);font-size:14px;margin-left:40px;max-width:590px}.contact{background:var(--ink);color:white;padding:75px 0}.contact .eyebrow{color:#225dc0}.contact h2{font-size:clamp(35px,4.6vw,56px)}.contact p{color:#f7f8fa}.contact a{display:inline-block;margin:10px 25px 0 0}.contact-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:50px;align-items:center}.mail{font-size:clamp(16px,2vw,23px)}footer{padding:25px 0;font-size:11px;color:var(--muted)}footer .wrap{display:flex;justify-content:space-between;gap:20px}.print{background:none;border:0;padding:0;color:inherit;text-decoration:underline;cursor:pointer;font:inherit}.skip{position:absolute;left:10px;top:-100px;background:white;padding:10px;z-index:100}.skip:focus{top:10px}
@media(max-width:800px){html{scroll-padding-top:135px}.wrap{padding:0 23px}.hero{padding-top:50px}.hero-grid{grid-template-columns:1fr;gap:40px}h1{letter-spacing:-2px}.portrait{max-width:420px}.portrait img{height:370px}.section-grid,.contact-grid{grid-template-columns:1fr;gap:20px}section.content{padding:55px 0}.strip{margin-top:45px}.strip div{padding:0 15px}.strip strong{font-size:16px}.strip span{font-size:11px}.navlinks{gap:15px;font-size:12px}nav{height:auto;min-height:82px;flex-wrap:wrap;padding-top:15px!important;padding-bottom:15px!important;gap:10px}.navlinks{flex-wrap:wrap;gap:8px 16px;width:100%;padding-bottom:3px}.caption{gap:12px;flex-wrap:wrap}.brand{font-size:15px}.brand b{display:none}.experience{grid-template-columns:110px 1fr;gap:10px}h2{font-size:32px}.intro{font-size:20px}}@media(max-width:450px){.skills{grid-template-columns:1fr}.navlinks{gap:12px}.strip{grid-template-columns:1fr;gap:15px}.strip div{padding:0;border:0}.strip strong{display:inline;margin-right:8px}.experience{grid-template-columns:1fr;gap:0}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@media print{header,.actions,.print,.skip{display:none}body{background:white;font-size:11px}.hero,section.content,.contact{padding:20px 0}.hero-grid{grid-template-columns:2fr 1fr;gap:25px}h1{font-size:35px}.portrait img{height:220px}.strip{margin-top:20px}.section-grid{grid-template-columns:1fr 3fr;gap:25px}.contact{background:white;color:var(--ink)}.contact p{color:var(--muted)}details p{display:block!important}.experience,.skill{break-inside:avoid}}

:root{--accent:#225dc0}
h1,h2,h3,.intro,.strip strong,.project summary{font-family:Lora,Georgia,serif;font-weight:400}
h1{letter-spacing:-2px;line-height:1.12}h1 em{font-family:Lora,Georgia,serif;color:var(--ink)}
h2{letter-spacing:-1px}h3{line-height:1.4}.eyebrow{color:var(--ink);font-weight:500}.eyebrow:before{background:var(--accent)}
.brand{display:flex;align-items:center;gap:15px}.brand img{width:54px;height:54px;object-fit:contain}.wordmark{font-family:Lora,Georgia,serif;font-size:36px;font-weight:400;letter-spacing:-1.7px;line-height:1.1;border-bottom:2px solid var(--accent);padding-bottom:3px}.brand-name{font-size:10px;font-weight:400;letter-spacing:1.4px;text-transform:uppercase;margin-left:12px}
.hero{padding-top:72px}.button{border-radius:0;background:var(--ink);border:1px solid var(--ink)}.button:hover{background:#225dc0}.text-link{text-decoration-color:var(--accent);text-decoration-thickness:2px}.portrait:after{border-color:var(--accent)}.caption{background:var(--ink)}.tags span,.tags a{border-radius:0}.tags a:hover{background:var(--ink);color:var(--paper)}.project{padding:25px 22px;margin-bottom:14px;border:1px solid var(--line);background:var(--paper)}.project summary{font-size:21px}.project summary:after{color:var(--ink)}.project .number{font-family:Inter,sans-serif}.project p{margin-left:34px}.project[open]{border-top:3px solid var(--accent)}.contact{border-top:4px solid var(--accent)}.contact .eyebrow{color:var(--paper)}.contact a{text-decoration-color:var(--accent)}.contact a:focus-visible{outline-color:var(--paper)}
@media(max-width:800px){.brand img{width:46px;height:46px}.wordmark{font-size:31px}.brand-name{font-size:9px}.hero{padding-top:40px}h1{font-size:clamp(38px,8vw,62px)}}
@media(max-width:450px){.brand-name{display:none}.project{padding:20px 14px}.project summary{font-size:18px}.project p{margin-left:0}h1{letter-spacing:-1px}}

.container{width:min(1120px,92%);margin:auto}.narrow{max-width:760px}.header .nav{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px 0}.header nav{height:auto;display:flex;flex-wrap:wrap;gap:22px;font-size:13px}.header nav a{text-decoration:none}.header nav .active{text-decoration:underline;text-decoration-color:var(--accent)}.page{padding:70px 0 100px;min-height:80vh}.page h1{font-size:clamp(38px,5vw,64px)}.page-header{margin-bottom:45px}.text-large{font-size:22px;font-family:Lora,Georgia,serif}.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:25px}.card,.timeline-item{border-top:1px solid var(--line);padding:25px 0}.card h2,.timeline-item h2{font-size:26px}.timeline-date{font-size:12px;color:var(--muted)}@media(max-width:800px){.header .nav{align-items:flex-start;flex-direction:column}.cards{grid-template-columns:1fr}.page{padding-top:45px}}
.brand img{background:#172e45;padding:5px}
#alexos-cookies{background:var(--paper)!important;color:var(--ink)!important;border-color:var(--line)!important;border-radius:0!important;font-family:Inter,sans-serif!important}#alexos-cookies button,#alexos-cookie-settings{border-radius:0!important;background:var(--ink)!important;color:var(--paper)!important;border-color:var(--ink)!important;font-family:Inter,sans-serif!important}#alexos-cookies a{color:var(--ink)!important}#alexos-cookies button:focus-visible,#alexos-cookie-settings:focus-visible{outline-color:var(--accent)!important}

/* AlexOS: cool palette from the live site, editorial typography retained. */
h1 em{color:var(--blue)}.brand img{background:var(--ink)}
.design-section{background:var(--paper)}.design-section .intro{font-size:21px}
.design-link{display:inline-block;margin-top:10px;font-size:14px;font-weight:500;text-decoration-color:var(--blue)}
.design-section .eyebrow{color:var(--muted)}.contact .eyebrow{color:#b5c6d8}
.contact a{text-decoration-color:#b5c6d8}.contact a:focus-visible{outline-color:var(--paper)}
.brand-name{letter-spacing:1px}.navlinks{gap:22px}
@media(max-width:800px){.navlinks{gap:8px 16px}}
