/* 2026: editorial layout, blue/teal accents, complete semantic theme tokens. */
:root{--bg:#f7f8fc;--surface:#fff;--surface-raised:#edf1f8;--line:#dbe2ef;--text:#142339;--muted:#59697c;--accent:#275adb;--lime:#176d67;--header-bg:#f7f8fcf0;--accent-soft:#eaf0ff;--accent-ink:#fff;--shadow:0 16px 50px #253d6310;--panel-alt:#eef3f8;--radius:14px;color-scheme:light}
:root[data-theme=dark]{--bg:#0b1220;--surface:#121e2f;--surface-raised:#1b2a3e;--line:#293c52;--text:#edf4ff;--muted:#a5b7ce;--accent:#91b7ff;--lime:#71d8c0;--header-bg:#0b1220ed;--accent-soft:#172c48;--accent-ink:#102039;--shadow:0 16px 50px #0002;--panel-alt:#0f1928;color-scheme:dark}
body{background:var(--bg);color:var(--text)}.site-header{background:var(--header-bg)}.header-inner{max-width:1440px;gap:20px}.brand small{letter-spacing:1px}.theme-toggle{order:3;flex-shrink:0;background:var(--surface);border:1px solid var(--line);border-radius:25px;display:inline-flex;gap:8px;align-items:center;padding:9px 13px;color:var(--text);font-size:10px}.theme-icon{font-size:18px;line-height:1}.theme-toggle:hover{border-color:var(--accent)}.site-header nav{margin-left:auto;gap:20px}.site-header nav a{font-size:11px}.monogram>span{color:var(--accent)}.hero{position:relative;gap:70px;padding-block:64px 70px;grid-template-columns:1.25fr 1fr}.hero h1{color:var(--muted);font-size:17px}.hero h1>span{font-size:clamp(48px,5.3vw,78px);font-weight:600;letter-spacing:-4px}.hero h1 em{color:var(--accent)}.hero-description{font-size:15px;max-width:570px}.hero-visual{padding:0 14px 20px}.portrait-frame{border-radius:14px 95px 14px 14px;aspect-ratio:4/4.8;border:1px solid var(--line);box-shadow:var(--shadow)}.portrait-frame>img{object-position:50% 21%;object-fit:cover;width:100%;height:100%}.portrait-frame:after{background:linear-gradient(transparent,#06101cb0)}.portrait-caption{color:white;bottom:26px;left:24px}.floating-tag{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);color:var(--text)}.code-tag{right:-14px;top:32px;transform:none;border-radius:10px;padding:15px 21px;font-size:11px}.play-tag{bottom:0;left:-20px;padding:13px 20px;border-radius:10px}.portrait-caption{bottom:74px}.button{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);border-radius:7px;font-weight:600}.button:hover{background:var(--accent);filter:brightness(1.08)}.button.secondary{border-color:var(--line);background:var(--surface);color:var(--text)}.button.secondary:hover{background:var(--surface-raised)}.stats-strip{gap:30px}.stats-strip strong{font-family:Consolas,monospace}.eyebrow{font-size:10px;line-height:1.8}.section{padding-block:75px}.section-heading h2{letter-spacing:-1.5px}.project-card{box-shadow:var(--shadow);border-radius:12px}.project-card:hover{border-color:var(--accent);transform:translateY(-3px)}.card-media{height:230px}.card-media img{object-fit:contain;background:#e8edf3;padding:12px}.media-label{background:#101b2ae8;color:white;border-color:#ffffff24}.card-body{padding:25px}.card-body>p{font-size:13px}.tags span{background:var(--surface-raised);border-color:var(--line);color:var(--muted)}.card-action{font-size:12px}.text-link{border-bottom-color:var(--line)}.editorial-band{display:grid;grid-template-columns:1.1fr 1.2fr .7fr;align-items:center;gap:45px;padding-block:38px;border-block:1px solid var(--line)}.editorial-band h2{font-size:33px}.editorial-band p:not(.eyebrow){font-size:14px;line-height:1.9;color:var(--muted)}.editorial-band .text-link{justify-self:end}.editorial-band .eyebrow{font-size:8px;margin-bottom:14px}.skill-grid article{background:var(--surface);box-shadow:var(--shadow)}.skill-grid h3{font-size:16px}.skill-grid p{line-height:1.8;font-size:12px}.skill-symbol{background:var(--accent-soft);display:grid;place-items:center;width:42px;height:42px;border-radius:9px;font-size:19px}.explore-section>a{padding:25px;background:var(--surface);border:1px solid var(--line);border-radius:12px}.explore-section>a:hover{border-color:var(--accent)}.contact-banner{background:var(--accent-soft);border-color:var(--line);border-radius:14px}.footer-bottom{color:var(--muted)}.gallery-tools{padding-block:18px}.filters button[aria-pressed=true]{background:var(--accent);color:var(--accent-ink)}.filters button:hover{border-color:var(--accent)}.search{background:var(--surface)}.info-strip{background:var(--accent-soft);border-color:var(--line)}.profile-card{position:sticky;top:110px}.profile-card img{height:350px;object-position:50% 16%}.profile-card h2{font-size:23px}.timeline article{padding-left:32px;padding-bottom:48px}.timeline h2{font-size:27px;line-height:1.3}.entry-organization{font-size:16px;color:var(--accent);margin:10px 0 20px}.timeline .eyebrow{font-size:9px}.timeline ul{padding-left:18px;margin:20px 0}.timeline li{font-size:13px;line-height:1.85;color:var(--muted);margin-bottom:12px}.engagement-section{margin-top:48px;border-top:1px solid var(--line);padding-top:40px}.engagement-section>.eyebrow{margin-bottom:35px}.education-layout{display:grid;grid-template-columns:1.6fr 1fr;gap:65px}.education-note{align-self:start;position:sticky;top:110px;background:var(--accent-soft);padding:32px;border:1px solid var(--line);border-radius:14px}.note-symbol{display:block;color:var(--accent);font-size:40px;margin-bottom:35px}.education-note h2{font-size:28px}.education-note p{font-size:14px;color:var(--muted);line-height:1.85;margin:20px 0}.file-icon{border-color:var(--line);background:var(--accent-soft)}.documents-section{border-top:1px solid var(--line);padding-top:45px}.game-collection{display:grid;grid-template-columns:1fr 1fr;gap:30px}.game-collection .card-media{height:310px}.game-collection .card-body h3{font-size:29px}.game-collection .card-action{background:var(--accent);color:var(--accent-ink);padding:14px 18px;border-radius:8px;border:0}.game-collection .project-card:nth-child(2){--accent:var(--lime)}.watch-masthead{display:flex;justify-content:space-between;gap:20px;align-items:center;padding-block:23px;border-block:1px solid var(--line)}.watch-masthead>div{display:flex;align-items:center;flex-wrap:wrap;gap:13px}.watch-masthead strong{font-size:14px;font-weight:500}.watch-masthead #feed-status{font-size:10px;color:var(--muted)}.feed-disclaimer{font-size:9px;color:var(--muted)}.news-filters{display:flex;gap:10px;flex-wrap:wrap;margin-top:27px}.news-filters button{padding:11px 17px;background:var(--surface);color:var(--muted);border:1px solid var(--line);border-radius:30px;font-size:11px}.news-filters button[aria-pressed=true]{background:var(--text);color:var(--bg);border-color:var(--text)}.news-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:23px}.news-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:25px;display:flex;flex-direction:column;min-width:0;transition:border-color .2s}.news-card:hover{border-color:var(--accent)}.news-top{display:flex;flex-direction:column;gap:12px}.news-category{color:var(--accent);font:9px Consolas,monospace;letter-spacing:1px;text-transform:uppercase}.news-top time{font-size:10px;color:var(--muted)}.news-card h2{font-size:21px;line-height:1.4;letter-spacing:-.4px;margin:20px 0 16px}.news-card h2 a:hover{color:var(--accent)}.news-card>p{font-size:12px;line-height:1.8;color:var(--muted);margin:0 0 25px;flex:1}.news-bottom{display:flex;justify-content:space-between;gap:15px;align-items:center;border-top:1px solid var(--line);padding-top:17px;font-size:10px}.news-bottom>a{color:var(--accent)}.feed-method{margin-top:35px;border-top:1px solid var(--line);padding-top:25px}.feed-method summary{font-size:13px;cursor:pointer}.feed-method p{font-size:12px;color:var(--muted);max-width:900px;line-height:1.9}.feed-sources{display:flex;flex-wrap:wrap;gap:20px;font-size:11px;color:var(--accent);margin-block:20px}.feed-health-warning{color:var(--muted)}.contact-icon{background:var(--accent-soft)}.skip{background:var(--accent);color:var(--accent-ink)}dialog{box-shadow:var(--shadow)}
@media(max-width:1150px){.site-header nav{gap:13px}.site-header nav a{font-size:10px}.theme-label{display:none}.theme-toggle{padding:10px}.header-inner{gap:15px}.hero{gap:45px}.hero h1>span{font-size:60px}.editorial-band{gap:25px}.news-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.theme-toggle{margin-left:auto;order:0}.theme-label{display:inline}.site-header nav{margin-left:0;background:var(--surface)}.hero{gap:30px}.hero h1>span{font-size:48px;letter-spacing:-2px}.hero-description{font-size:13px}.hero-visual{padding-inline:0}.editorial-band{grid-template-columns:1fr 1fr;gap:25px}.editorial-band .text-link{grid-column:1/-1;justify-self:start}.education-layout{gap:30px;grid-template-columns:1.4fr 1fr}.education-note{padding:24px}.game-collection .card-media{height:230px}.watch-masthead{align-items:flex-start;flex-direction:column}.skills-section{grid-template-columns:1fr;gap:35px}.skill-grid{grid-template-columns:repeat(4,1fr)}.skill-grid article{padding:20px 15px}.skill-grid h3{font-size:14px}}
@media(max-width:600px){.header-inner{gap:12px}.brand small{font-size:6px;letter-spacing:.6px}.theme-label{display:none}.theme-toggle{padding:10px}.menu-toggle{font-size:11px;padding:9px 11px;gap:10px}.hero{padding-block:35px 45px;gap:32px}.hero h1>span{font-size:clamp(43px,11.5vw,64px);letter-spacing:-2.5px}.hero-description{font-size:13px}.hero-visual{padding:0 12px 24px 0}.portrait-frame{aspect-ratio:4/4.9;border-top-right-radius:65px}.portrait-frame>img{object-position:50% 20%}.code-tag{right:0;top:20px;padding:12px 14px;font-size:10px}.play-tag{left:12px;bottom:0;padding:11px 15px}.portrait-caption{bottom:72px}.section{padding-block:50px}.editorial-band{grid-template-columns:1fr;padding-block:30px;gap:15px}.editorial-band h2{font-size:30px}.editorial-band p:not(.eyebrow){font-size:13px;margin:0}.editorial-band .text-link{margin-top:10px}.skill-grid{grid-template-columns:1fr 1fr}.skill-grid h3{font-size:15px}.card-media{height:225px}.featured-grid .project-card:last-child .card-media{height:225px}.education-layout,.game-collection,.news-grid{grid-template-columns:1fr}.education-note,.profile-card{position:static}.education-note{padding:25px}.timeline h2{font-size:25px}.timeline .eyebrow{font-size:8px;letter-spacing:1px}.timeline article{padding-left:22px}.entry-organization{font-size:14px}.timeline li{font-size:12px}.game-collection .card-media{height:240px}.news-card{padding:24px}.news-card h2{font-size:23px}.news-top{flex-direction:row;flex-wrap:wrap;justify-content:space-between}.news-filters{gap:7px}.news-filters button{font-size:10px;padding:10px 13px}.news-bottom{font-size:10px}.page-heading h1{font-size:38px}.contact-banner h2{font-size:30px}.contact-banner{padding:26px}.stats-strip strong{font-size:24px}.eyebrow{font-size:8px}.theme-toggle:focus-visible{outline-offset:2px}}
@media(max-width:600px){.play-tag{max-width:calc(100% - 24px);right:12px}.play-tag>div{min-width:0}.floating-tag{gap:10px}.play-tag>span{flex-shrink:0}}
@media(max-width:600px){.header-inner>.brand{min-width:0;flex-shrink:1}.header-inner .brand>span:last-child{max-width:125px}.header-inner .brand small{font-size:5px;letter-spacing:.3px}.theme-toggle,.menu-toggle{flex-shrink:0}.hero-copy,.hero-visual{min-width:0}.hero-visual{max-width:100%}.play-tag{font-size:10px}.play-tag strong{font-size:10px}.hero .eyebrow{flex-wrap:wrap}}
.button{transition:transform .2s}.site-header nav>a{transition:none}
@media(max-width:600px){.hero{grid-template-columns:minmax(0,1fr)}}
/* Navigation: active pill, direct CV access and a roomy mobile panel. */
.site-header{border-bottom:0;padding:14px 0;background:var(--header-bg)}.header-inner{max-width:1400px;min-height:64px;border:1px solid var(--line);background:var(--surface);border-radius:16px;padding:10px 20px;box-shadow:0 6px 25px #10203908}.site-header nav{gap:3px}.site-header nav>a{padding:10px 11px;border-radius:8px;font-size:11px;color:var(--muted)}.site-header nav>a:hover{background:var(--surface-raised);color:var(--text)}.site-header nav>a[aria-current]{background:var(--accent-soft);color:var(--accent);font-weight:600}.site-header nav>a[aria-current]:after{display:none}.site-header nav>.nav-contact{border:0;color:var(--text);margin-left:5px}.site-header nav>.nav-cv{background:var(--accent);color:var(--accent-ink);display:flex;align-items:center;gap:13px;margin-left:6px;font-weight:600}.site-header nav>.nav-cv:hover{background:var(--accent);color:var(--accent-ink);filter:brightness(1.08)}.theme-toggle{border-radius:9px;background:var(--surface-raised);border-color:transparent;padding:10px}.theme-label{display:none}.mobile-nav-label{display:none}.menu-toggle{border-radius:9px}.inline-company{color:var(--accent);border-bottom:1px solid var(--line)}.inline-company:hover{border-color:var(--accent)}.company-section{display:grid;grid-template-columns:1fr 1.3fr;gap:70px;padding:40px;border:1px solid var(--line);background:var(--accent-soft);border-radius:16px;margin-bottom:65px}.company-heading h2{font-size:43px;font-weight:600;letter-spacing:-2px;display:flex;gap:25px;align-items:center}.company-heading h2>span{font-size:27px;color:var(--accent)}.company-heading>p:last-child{font-size:14px;color:var(--muted);line-height:1.8}.company-content>p{font-size:14px;line-height:1.9;color:var(--muted);margin:0 0 20px}.company-services{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:25px}.company-services span{font-size:10px;padding:6px 10px;border:1px solid var(--line);border-radius:5px;background:var(--surface)}.company-entry-link{margin-top:24px}.page-section>.company-section{margin-top:30px;margin-bottom:30px}
@media(max-width:1200px){.header-inner{gap:12px;padding-inline:14px}.site-header nav>a{padding:9px 8px;font-size:10px}.header-inner .brand small{max-width:150px;font-size:6px}.header-inner .brand>span:last-child{font-size:11px}}
@media(max-width:1100px){.header-inner{position:relative}.theme-toggle{order:0;margin-left:auto}.menu-toggle{display:flex;align-items:center;gap:12px;padding:10px 13px;font-size:12px;flex-shrink:0}.site-header nav{display:none;position:absolute;top:calc(100% + 10px);left:0;right:0;max-height:calc(100dvh - 115px);overflow-y:auto;background:var(--surface);padding:20px;border:1px solid var(--line);border-radius:14px;box-shadow:0 20px 45px #0002;margin:0;flex-direction:column;align-items:stretch;gap:5px}.site-header nav.is-open{display:flex}.site-header nav>a{font-size:14px;padding:13px 15px}.site-header nav>.nav-contact{margin-left:0}.site-header nav>.nav-cv{margin:8px 0 0;justify-content:space-between}.mobile-nav-label{display:block;font:9px Consolas,monospace;letter-spacing:1.5px;color:var(--muted);padding:0 15px 12px}.menu-toggle[aria-expanded=true]{background:var(--accent-soft);border-color:var(--accent)}.company-section{gap:35px}}
@media(max-width:600px){.site-header{padding:9px 0}.header-inner{width:calc(100% - 24px);min-height:62px;padding:9px 12px;gap:8px;border-radius:12px}.header-inner .brand{gap:9px}.header-inner .brand>span:last-child{font-size:10px;max-width:110px}.header-inner .brand small{font-size:5px;max-width:110px}.monogram{font-size:32px}.menu-toggle{padding:10px;font-size:10px;gap:6px}.theme-toggle{padding:9px}.company-section{grid-template-columns:1fr;padding:25px;gap:15px;margin-bottom:40px}.company-heading h2{font-size:36px}.company-heading>p:last-child{margin-bottom:0}.company-content>p{font-size:13px}.company-services span{font-size:9px}.company-section .button{width:100%}.site-header nav>a{font-size:13px}}
/* Finishing touches: calmer hierarchy and consistent surfaces. */
.hero{padding-top:54px;padding-bottom:64px}.hero-description{max-width:540px;line-height:1.9}.hero-copy>.eyebrow{display:inline-flex;max-width:100%;background:var(--accent-soft);border:1px solid var(--line);padding:7px 12px;border-radius:30px;font-size:9px;letter-spacing:1.2px}.hero h1>span{letter-spacing:-3.5px}.hero-social{padding-top:8px}.portrait-frame{border-radius:24px;box-shadow:0 22px 65px #152b4520}.code-tag{top:25px;right:0;background:var(--surface);box-shadow:0 8px 30px #10203912}.play-tag{box-shadow:0 10px 30px #10203912}.stats-strip{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:24px 28px;box-shadow:0 6px 25px #10203905}.stats-strip>div{padding-right:20px;border-right:1px solid var(--line)}.section-heading{margin-bottom:34px}.project-card,.news-card,.skill-grid article,.explore-section>a{box-shadow:0 4px 16px #10203905}.project-card:hover,.news-card:hover,.explore-section>a:hover{box-shadow:0 12px 30px #10203912}.card-media{border-bottom:1px solid var(--line)}.card-body h3{font-weight:600}.card-action{min-height:46px}.editorial-band{margin-top:12px}.company-section{position:relative;border-left:4px solid var(--accent);background:linear-gradient(115deg,var(--accent-soft),var(--surface));border-radius:16px}.company-content .button{margin-top:3px}.contact-banner{background:linear-gradient(115deg,var(--accent-soft),var(--surface));padding-block:48px}.footer{padding-top:50px}.page-heading{padding-bottom:16px}.page-heading>p:last-child{max-width:690px}.news-card{border-radius:14px}.document{transition:border-color .2s,transform .2s}.document:hover{transform:translateY(-2px)}
@media(max-width:900px){.stats-strip{padding:22px}.stats-strip>div:last-of-type{border-right:0}.hero-copy>.eyebrow{font-size:8px;letter-spacing:.8px}.hero h1>span{letter-spacing:-2px}}
@media(max-width:600px){.hero{padding-top:26px;padding-bottom:36px}.hero-copy>.eyebrow{font-size:7px;line-height:1.7;padding:7px 10px;letter-spacing:.6px;gap:7px}.hero h1>span{letter-spacing:-2.2px}.portrait-frame{border-radius:18px}.code-tag{right:0;top:17px;padding:10px 12px}.stats-strip{padding:19px 15px;gap:12px}.stats-strip>div{padding-right:8px}.stats-strip strong{font-size:23px}.stats-strip span{font-size:8px}.section-heading{margin-bottom:24px}.contact-banner{padding:27px 23px}.company-section{border-left-width:3px}.page-heading{padding-bottom:0}.footer{padding-top:35px}}
/* Readability and interaction polish across both themes. */
.card-body>p,.news-card>p{font-size:14px;line-height:1.8}.news-bottom,.card-action{font-size:12px}.footer-links{font-size:12px}.document p{font-size:11px}.filters button,.news-filters button{min-height:42px}.project-card:focus-within,.news-card:focus-within{border-color:var(--accent)}.card-media img{padding:16px;transition:transform .25s}.project-card:hover .card-media img{transform:scale(1.025)}.timeline .tags{gap:8px}.timeline article:last-child{padding-bottom:18px}.documents-section .document{min-height:95px}.page-heading>p:last-child{line-height:1.85}.contact-card{transition:border-color .2s,transform .2s}.contact-card:hover{transform:translateY(-3px)}@media(max-width:600px){.card-body>p,.news-card>p{font-size:13px}.news-bottom{font-size:11px}.footer-links{font-size:11px}.card-media img{padding:10px}}
/* One locally hosted text family, a readable scale and restrained tracking. */
@font-face{font-family:Inter;src:url('./fonts/inter-latin-variable.woff2') format('woff2');font-style:normal;font-weight:100 900;font-display:swap}
:root{font-family:Inter,system-ui,-apple-system,'Segoe UI',sans-serif;font-synthesis:none}body{font-family:inherit}button,input,select,textarea{font-family:inherit}h1,h2,h3,h4{font-family:inherit;text-wrap:balance}h2{font-weight:600;letter-spacing:-.035em}h3{font-weight:600;letter-spacing:-.02em}.hero h1>span{font-weight:650;letter-spacing:-.055em;line-height:1.08;font-size:clamp(48px,5.15vw,74px)}.hero-description{font-size:16px;line-height:1.85}.eyebrow,.hero-copy>.eyebrow,.timeline .eyebrow,.editorial-band .eyebrow,.contact-banner .eyebrow,.content-panel .eyebrow{font-family:inherit;font-size:11px;font-weight:600;letter-spacing:.07em;line-height:1.6}.stats-strip strong{font-family:inherit;font-variant-numeric:tabular-nums;font-weight:600;letter-spacing:-.04em}.stats-strip span{font-size:12px}.stats-strip>a{font-size:12px}.portrait-caption{font-family:inherit;font-size:11px;letter-spacing:.08em}.results,.news-category,.mobile-nav-label{font-family:inherit;letter-spacing:.04em;font-size:11px}.heading-count{font-family:inherit;letter-spacing:0}.section-heading h2,.page-heading h1{letter-spacing:-.04em}.card-body>p,.news-card>p{font-size:14px;line-height:1.8}.tags span,.company-services span,.media-label{font-size:11px}.button,.text-link,.card-action{font-size:13px}.site-header nav>a{font-size:12px}.brand{font-family:inherit}.brand small{font-size:8px;letter-spacing:.07em}.header-inner .brand small{font-size:7px}.hero-social{font-size:12px}.footer p,.footer-links,.footer a:not(.brand){font-size:12px}.footer-bottom{font-size:11px}.explore-section>a>span{font-family:inherit;font-size:11px;letter-spacing:.06em}.skill-grid p{font-size:13px}.company-heading>p:last-child,.company-content>p{font-size:15px}.document p{font-size:12px}.file-icon{font-size:11px}.news-top time,.news-bottom{font-size:12px}.timeline .entry-organization{line-height:1.5}
@media(min-width:1101px) and (max-width:1280px){.site-header nav>a{font-size:11px;padding-inline:7px}.header-inner .brand small{font-size:6px;max-width:130px}}
@media(max-width:900px){.hero h1>span{font-size:clamp(40px,5.5vw,58px)}.hero-description{font-size:15px}.stats-strip span{font-size:11px}}
@media(max-width:600px){.hero h1>span{font-size:clamp(40px,10.6vw,60px);letter-spacing:-.05em}.hero-description{font-size:15px}.hero-copy>.eyebrow{font-size:9px;letter-spacing:.025em}.eyebrow,.timeline .eyebrow,.contact-banner .eyebrow{font-size:10px;letter-spacing:.055em}.hero-social{font-size:11px;gap:12px}.stats-strip span{font-size:10px}.stats-strip strong{font-size:25px}.button,.hero .button{font-size:12px}.tags span,.company-services span{font-size:10px}.card-body>p,.news-card>p{font-size:14px}.skill-grid p{font-size:12px}.footer-links{font-size:12px}.footer-bottom{font-size:10px}.site-header nav>a{font-size:14px}.header-inner .brand small{font-size:6px}.news-category,.news-top time{font-size:11px}.company-content>p{font-size:14px}}

.portrait-frame{display:block}.play-tag>.play-icon{flex-shrink:0;line-height:1}.play-icon svg{display:block;width:22px;height:22px}.portrait-frame:focus-visible{outline:3px solid var(--accent);outline-offset:5px}
