:root{color-scheme:dark;--bg:#0a0b0f;--surface:#12141a;--surface-2:#1b1e26;--fg:#f3f2ee;--muted:#92939b;--line:rgba(255,255,255,.14);--accent:#ff5a1f;--header:rgba(10,11,15,.94);--shadow:rgba(0,0,0,.7)}
body[data-theme="light"]{color-scheme:light;--bg:#f0efeb;--surface:#fff;--surface-2:#e5e3dc;--fg:#16171b;--muted:#5c606a;--line:rgba(0,0,0,.18);--accent:#db4b19;--header:rgba(240,239,235,.95);--shadow:rgba(16,17,22,.25)}
*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--bg);color:var(--fg);font:400 15px/1.55 system-ui,-apple-system,"Segoe UI",Arial,sans-serif;min-width:320px}body.modal-open{overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:4px}button:disabled{cursor:not-allowed}.container{width:min(100% - 64px,1760px);margin-inline:auto}.skip-link{position:fixed;z-index:300;top:-70px;left:20px;background:var(--accent);color:#101010;padding:12px}.skip-link:focus{top:10px}.site-header{position:sticky;top:0;z-index:30;background:var(--header);backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}.header-shell{min-height:74px;display:flex;align-items:center;gap:36px}.brand{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;min-width:0;white-space:nowrap}.brand-name{font-size:21px;font-weight:900;letter-spacing:-.065em;line-height:1.1}.brand-subtitle{display:block;font-size:9px;font-weight:750;line-height:1.35;letter-spacing:.065em;color:var(--muted)}.brand-accent,.orange-dot{color:var(--accent)}.site-nav{display:flex;gap:28px;margin-inline:auto 0}.site-nav a{font-size:12px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}.site-nav a:hover{color:var(--fg)}.header-actions{display:flex;align-items:center;gap:13px}.lang-switch{display:flex;padding:2px;border:1px solid var(--line);border-radius:4px;gap:2px}.lang-button{font-size:11px;letter-spacing:.04em;font-weight:800;color:var(--muted);border:0;background:transparent;padding:5px 8px;border-radius:2px}.lang-button[aria-pressed="true"]{background:var(--accent);color:#fff}.theme-switch{width:32px;height:32px;display:grid;place-items:center;border:1px solid var(--line);background:transparent;border-radius:4px;color:var(--fg)}.theme-switch svg{width:16px;height:16px}.menu-switch{display:none}.section-index,.section-hint,.project-meta,.featured-label,.modal-kicker,.modal-category,.detail-label,.modal-footnote,.about-meta,.skill-chips,.site-footer,.demo-disclaimer{font-size:11px;letter-spacing:.095em;font-weight:700}h1,h2,h3,p{margin-top:0}h2,.contact-section h2{font-family:Impact,"Arial Narrow","Roboto Condensed",system-ui,sans-serif;letter-spacing:.013em;font-weight:900;line-height:.98}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:30px;margin-bottom:20px}.section-index{display:block;color:var(--accent);margin-bottom:9px}.work-section{padding-top:33px;padding-bottom:90px}.work-label{font:800 12px/1.4 system-ui,-apple-system,"Segoe UI",Arial,sans-serif;letter-spacing:.11em;color:var(--accent);margin:0;text-transform:uppercase}.project-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:27px 17px}.grid-loading{color:var(--muted)}.project-card{min-width:0;position:relative}.project-button{display:block;width:100%;padding:0;border:0;background:none;color:inherit;text-align:left}.media-frame{aspect-ratio:16/9;display:block;position:relative;overflow:hidden;background:var(--surface);border:1px solid var(--line)}.project-card.is-featured .media-frame{border:2px solid var(--accent)}.media-frame:after{content:"";pointer-events:none;position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 46%,rgba(0,0,0,.48) 100%);opacity:.7}.poster,.preview{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.poster{display:block;transition:transform .65s ease,opacity .22s}.preview{opacity:0;transition:opacity .18s;pointer-events:none}.project-card.preview-playing .preview{opacity:1}.project-card:hover .poster,.project-button:focus-visible .poster{transform:scale(1.045)}.play-indicator{position:absolute;z-index:2;inset:0;display:grid;place-items:center;pointer-events:none;opacity:0;transition:opacity .2s}.play-indicator svg{width:48px;height:48px;background:rgba(0,0,0,.65);border:1px solid rgba(255,255,255,.65);color:#fff;border-radius:50%;padding:15px;backdrop-filter:blur(6px)}.project-card:hover .play-indicator,.project-button:focus-visible .play-indicator{opacity:1}.featured-label,.demo-label{position:absolute;z-index:3;background:var(--accent);color:#fff;padding:4px 9px;top:10px;left:10px}.demo-label{top:auto;bottom:9px;left:10px;color:#eee;background:rgba(0,0,0,.63);font-size:9px;letter-spacing:.12em}.project-copy{display:block;padding-top:11px}.project-line{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.project-title{display:block;font-size:16px;font-weight:770;line-height:1.25;letter-spacing:-.02em}.project-arrow{font-weight:600;color:var(--accent);font-size:16px;line-height:1}.project-meta{display:block;color:var(--muted);margin-top:6px;font-weight:650;font-size:10px;line-height:1.5}
.about-section{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding-block:88px;background:var(--surface)}
.about-layout{display:grid;grid-template-columns:minmax(0,1.06fr) minmax(0,.94fr);gap:clamp(38px,6vw,104px);align-items:center}
.about-copy{min-width:0}
.about-copy .section-index{margin-bottom:23px}
.about-lead{font-family:system-ui,-apple-system,"Segoe UI",Arial,sans-serif;font-size:clamp(23px,2.25vw,36px);line-height:1.24;font-weight:760;letter-spacing:-.025em;color:var(--fg);margin:0 0 27px;max-width:26ch}
.about-description{font-size:16px;color:var(--muted);line-height:1.8;max-width:66ch;margin:0}
.software-chips{display:flex;flex-wrap:wrap;gap:9px;margin-block:31px 34px}
.software-chips span{font-size:11px;letter-spacing:.08em;font-weight:750;border:1px solid var(--line);padding:9px 12px;white-space:nowrap;color:var(--fg)}
.about-meta{display:flex;flex-wrap:wrap;gap:9px 19px;color:var(--accent)}
.about-portrait{position:relative;border:1px solid var(--line);background:var(--bg);aspect-ratio:8/5;overflow:hidden;min-width:0;align-self:center;width:100%}
.about-portrait img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.contact-section{padding-block:95px 110px}.contact-layout{display:flex;align-items:flex-end;justify-content:space-between;gap:50px}.contact-section h2{font-size:clamp(38px,5.4vw,90px);margin:0 0 22px}.contact-section p{color:var(--muted);margin:0}.contact-buttons{width:min(100%,310px);flex:none;display:grid;gap:10px}.contact-buttons a{display:flex;align-items:center;justify-content:space-between;font-size:12px;letter-spacing:.08em;font-weight:850;padding:18px 22px;border:1px solid var(--line)}.contact-primary{background:var(--accent);color:#fff;border-color:var(--accent)!important}.contact-primary:hover{filter:brightness(1.1)}.contact-secondary:hover{border-color:var(--accent)}.site-footer{border-top:1px solid var(--line);padding:22px 0;font-size:10px;color:var(--muted)}.footer-content,.footer-links{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap}.footer-links a:hover{color:var(--accent)}
.project-modal[hidden]{display:none}.project-modal{position:fixed;z-index:100;inset:0;display:grid;place-items:center;padding:24px}.modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.88);backdrop-filter:blur(10px)}.modal-panel{position:relative;z-index:1;width:min(1550px,100%);max-height:min(92vh,940px);background:var(--bg);border:1px solid var(--line);box-shadow:0 30px 80px var(--shadow);display:flex;flex-direction:column}.modal-topbar{min-height:59px;display:flex;align-items:center;justify-content:space-between;padding-inline:25px;border-bottom:1px solid var(--line)}.modal-kicker{color:var(--muted)}.modal-close{display:flex;align-items:center;gap:12px;background:transparent;color:var(--fg);border:0;font-size:11px;font-weight:750;letter-spacing:.09em;padding:12px 0}.modal-close:hover{color:var(--accent)}.modal-content{display:grid;grid-template-columns:minmax(0,2fr) minmax(275px,1fr);min-height:0;overflow:auto}.modal-player{min-height:340px;background:#000;align-self:stretch;display:grid;place-items:center;position:relative}.modal-player video,.modal-player iframe{display:block;width:100%;aspect-ratio:16/9;border:0;background:#000}.modal-placeholder{width:100%;min-height:340px;position:relative;display:grid;place-items:center;overflow:hidden}.modal-placeholder img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.38}.modal-placeholder .placeholder-message{position:relative;z-index:1;font-weight:850;font-size:14px;letter-spacing:.06em;text-align:center;padding:20px;text-shadow:0 2px 12px #000}.modal-details{padding:31px 34px 45px;border-left:1px solid var(--line);overflow-y:auto}.modal-category{color:var(--accent);margin-bottom:14px}.modal-details h3{font-size:clamp(22px,2vw,35px);line-height:1.15;letter-spacing:-.035em;margin:0 0 16px}.modal-description{font-size:14px;color:var(--muted);line-height:1.75;margin-bottom:29px}.detail-block{padding:18px 0;border-top:1px solid var(--line)}.detail-label{color:var(--muted);margin-bottom:10px}.detail-block p,.role-list{font-size:13px;line-height:1.7;margin:0}.role-list{padding-left:16px}.role-list li{padding-bottom:3px}.modal-footnote{margin-top:16px;color:var(--muted);font-size:10px;font-weight:400;letter-spacing:0}
.legal-main{max-width:850px;padding-block:64px 100px}.legal-main h1{font-size:clamp(36px,5vw,60px);margin-bottom:30px}.legal-main p{max-width:70ch;line-height:1.8}.legal-warning{border:1px solid var(--accent);background:var(--surface);padding:22px;margin-bottom:22px}.legal-main a{text-decoration:underline}
@media(max-width:1380px){.project-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1050px){.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.modal-content{grid-template-columns:minmax(0,1.65fr) minmax(260px,1fr)}.modal-player{min-height:280px}.about-layout{gap:28px}}
@media(max-width:950px){.about-layout{grid-template-columns:1fr;gap:28px}.about-portrait{aspect-ratio:16/10;align-self:auto}}
@media(max-width:710px){.container{width:min(100% - 36px,1760px)}.header-shell{min-height:65px;gap:15px}.brand-name{font-size:19px}.brand-subtitle{font-size:8.5px}.site-nav{position:absolute;left:0;right:0;top:100%;background:var(--bg);border-bottom:1px solid var(--line);padding:15px 19px 25px;display:none;flex-direction:column;gap:18px}.site-nav.open{display:flex}.site-nav a{font-size:14px}.header-actions{margin-left:auto;gap:8px}.menu-switch{display:grid;place-content:center;gap:5px;border:1px solid var(--line);background:transparent;width:34px;height:34px}.menu-switch span{background:var(--fg);width:17px;height:1px;display:block}.theme-switch{width:34px;height:34px}.work-section{padding-top:27px}.section-heading{align-items:center;margin-bottom:18px}.project-grid{gap:24px 12px}.project-title{font-size:14px}.about-section{padding-block:64px}.about-layout{grid-template-columns:1fr;gap:28px}.about-lead{font-size:clamp(23px,5vw,31px);max-width:28ch}.about-portrait{aspect-ratio:16/10;align-self:auto}.contact-section{padding-block:68px}.contact-layout{display:grid;gap:28px}.modal-content{display:block}.project-modal{padding:0}.modal-panel{width:100%;max-height:100dvh;height:100dvh;border:0}.modal-player{min-height:0}.modal-player video,.modal-player iframe{width:100%}.modal-placeholder{min-height:220px}.modal-details{border-left:0;padding:25px 22px 45px;overflow:visible}.modal-topbar{min-height:55px;padding-inline:20px}.modal-content{overflow:auto}.modal-description{margin-bottom:20px}}
@media(max-width:540px){.project-grid{grid-template-columns:1fr;gap:25px}.project-title{font-size:16px}.media-frame{aspect-ratio:16/9}.about-lead{font-size:clamp(23px,6vw,29px)}.about-description{font-size:15px}.software-chips{gap:7px}.software-chips span{font-size:10px;padding:8px 10px}.contact-section h2{font-size:clamp(38px,10vw,60px)}.footer-content{display:grid;gap:16px}.footer-links{gap:16px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{scroll-behavior:auto!important;transition-duration:0s!important;animation-duration:0s!important}}

@media(max-width:370px){.header-shell{gap:7px}.brand-name{font-size:16px}.brand-subtitle{font-size:7px;letter-spacing:.025em}.header-actions{gap:5px}.lang-button{padding:5px 6px}.theme-switch,.menu-switch{width:30px;height:30px}}

/* Reserve the first card's layout before asynchronous project data arrives. */
.project-grid{position:relative}
.project-card-skeleton .media-frame{background:var(--surface)}
.project-card-skeleton .project-title,.project-card-skeleton .project-meta{color:var(--muted);opacity:.55}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Accessible contrast: the primary orange remains unchanged.
   Use a dark foreground for text displayed on orange backgrounds. */
:root{--accent-on:#101010;--accent-text:#ff5a1f}
body[data-theme="light"]{--accent-text:#b93609}
.lang-button[aria-pressed="true"],.featured-label,.contact-primary{color:var(--accent-on)}
.section-index,.work-label,.project-arrow,.modal-category,.about-meta,.brand-accent,.orange-dot{color:var(--accent-text)}
