:root{color-scheme:dark;--bg:#0c0f0e;--surface:#151a18;--surface2:#1d2420;--line:#303a34;--text:#f1f3ef;--muted:#a8b5aa;--lime:#c9ee8f;--coral:#f7a492;--teal:#8cd7cc;--max:1240px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.6 'DM Sans',Arial,sans-serif}html[lang=fa] body,html[lang=ar] body{font-family:'Vazirmatn',Arial,sans-serif}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}button,select{font:inherit}button{cursor:pointer}::selection{background:var(--lime);color:var(--bg)}:focus-visible{outline:2px solid var(--lime);outline-offset:4px}.skip-link{position:absolute;z-index:100;inset-block-start:-100px;inset-inline-start:16px;background:var(--lime);color:#111;padding:10px 18px}.skip-link:focus{inset-block-start:8px}.site-header{height:76px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:32px;padding:0 max(28px,calc((100vw - var(--max))/2));background:rgba(12,15,14,.97);position:relative;z-index:20}.brand{display:flex;align-items:center;gap:12px;flex:none}.brand-mark{font:bold 26px/1 'IBM Plex Mono',monospace;letter-spacing:0}.brand-mark span{color:var(--lime)}.brand-name{font-size:13px;font-weight:700;line-height:1.2;white-space:nowrap}.brand-name small{display:block;color:var(--muted);font-size:10px;font-weight:500;margin-top:3px}.site-nav{display:flex;align-items:center;gap:clamp(10px,1.4vw,22px);margin-inline-start:auto}.site-nav a{font-size:12px;color:var(--muted);white-space:nowrap;transition:color .2s}.site-nav a:hover,.site-nav a[aria-current]{color:var(--lime)}.header-actions{display:flex;align-items:center;gap:12px}.language-label{display:block;position:relative}.language-label>span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.language-label select{background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:4px;padding:7px 26px 7px 9px;font-size:11px;max-width:116px}.menu-button{display:none;color:var(--text);background:none;border:1px solid var(--line);border-radius:4px;padding:6px 10px}.section-inner,.hero-inner{width:min(var(--max),calc(100% - 56px));margin:auto}.eyebrow{font:600 11px/1.4 'IBM Plex Mono',monospace;text-transform:uppercase;color:var(--lime);letter-spacing:0}.hero{border-bottom:1px solid var(--line)}.hero-inner{min-height:610px;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);align-items:center;gap:clamp(30px,5vw,90px);padding-block:64px}.hero-copy{max-width:700px}.hero h1{font-size:clamp(58px,7vw,108px);line-height:.98;margin:26px 0 22px;font-weight:700;overflow-wrap:anywhere}.hero-role{font-size:clamp(17px,2vw,23px);color:var(--teal);font-weight:600;line-height:1.4}.hero-lead{font-size:clamp(17px,1.8vw,22px);line-height:1.55;max-width:620px;margin:32px 0 18px}.hero-location{font-size:13px;color:var(--muted)}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:35px}.button{display:inline-flex;justify-content:center;align-items:center;gap:22px;min-height:44px;padding:10px 18px;border-radius:4px;font-size:13px;font-weight:700;transition:transform .2s,background .2s}.button:hover{transform:translateY(-2px)}.button.primary{background:var(--lime);color:#101510}.button.primary:hover{background:#e0ffab}.button.secondary{border:1px solid var(--line)}.button.secondary:hover{background:var(--surface2)}.hero-portrait{align-self:stretch;min-height:440px;position:relative;overflow:hidden;background:#202920}.hero-portrait img{width:100%;height:100%;object-fit:cover;object-position:center 20%;filter:saturate(.83)}.hero-portrait span{position:absolute;inset-block-end:14px;inset-inline-end:16px;background:#0c0f0ec9;padding:5px 8px;font:11px 'IBM Plex Mono',monospace}.stats-strip{background:var(--surface);border-bottom:1px solid var(--line)}.stats-strip .section-inner{display:grid;grid-template-columns:repeat(3,1fr)}.stats-strip .section-inner>div{min-height:108px;display:flex;align-items:center;gap:18px;padding:18px 0;border-inline-end:1px solid var(--line)}.stats-strip .section-inner>div+div{padding-inline-start:30px}.stats-strip .section-inner>div:last-child{border:0}.stats-strip strong{font:600 32px/1 'IBM Plex Mono',monospace;color:var(--coral)}.stats-strip span{color:var(--muted);font-size:12px}.section{padding:100px 0;border-bottom:1px solid var(--line)}.section-head{max-width:690px;margin-bottom:38px}.section h2,.page-intro h1{font-size:clamp(36px,4vw,60px);line-height:1.1;margin:15px 0;font-weight:600;overflow-wrap:anywhere}.section-head>p:not(.eyebrow),.page-intro .section-inner>p:not(.eyebrow){color:var(--muted);font-size:17px;line-height:1.7}.feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.feature-card{border:1px solid var(--line);border-radius:6px;overflow:hidden;background:var(--surface);transition:border-color .2s,transform .2s}.feature-card:hover{transform:translateY(-4px);border-color:var(--lime)}.feature-media{height:215px;background:#25332e;display:flex;align-items:center;justify-content:center;overflow:hidden}.feature-media img{max-width:74%;max-height:78%;object-fit:contain}.feature-0{background:#182321}.feature-0 img,.feature-1 img{max-width:none;max-height:none;width:100%;height:100%;object-fit:cover}.feature-1{background:#30443b}.feature-2{background:#272c37}.feature-3{background:#212934}.feature-4{background:#293327}.feature-5{background:#283a38}.feature-copy{padding:24px;min-height:230px;display:flex;flex-direction:column}.feature-copy h3{font-size:22px;line-height:1.25;margin:10px 0}.feature-copy p{font-size:14px;line-height:1.6;color:var(--muted);margin:0 0 22px}.feature-link{margin-top:auto;color:var(--lime);font-size:12px;font-weight:700}.feature-link b{margin-inline-start:8px}.section-link{display:inline-block;color:var(--lime);font-size:13px;font-weight:700;margin-top:30px;border-bottom:1px solid currentColor;padding-bottom:4px}.statement{background:#151c18}.statement-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start}.statement-grid>div:nth-child(2)>p{font-size:clamp(20px,2.2vw,28px);line-height:1.5;margin:8px 0 0;color:#d6e4d8}.note-list>a{display:grid;grid-template-columns:54px minmax(0,1.2fr) minmax(0,1fr) 24px;align-items:center;gap:20px;padding:26px 0;border-top:1px solid var(--line)}.note-list>a:last-child{border-bottom:1px solid var(--line)}.note-list span{font:12px 'IBM Plex Mono',monospace;color:var(--coral)}.note-list strong{font-size:19px;line-height:1.35}.note-list em{font-size:13px;color:var(--muted);font-style:normal}.note-list b{color:var(--lime)}.note-list a:hover strong{color:var(--lime)}.page-intro{padding:94px 0 100px;background:#121814;border-bottom:1px solid var(--line)}.page-intro .section-inner{max-width:var(--max)}.page-intro h1{max-width:870px;font-size:clamp(42px,5vw,72px);margin:22px 0}.page-intro .section-inner>p:not(.eyebrow){max-width:740px}.page-intro .button{margin-top:22px}.about-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(45px,8vw,130px)}.about-grid h2{max-width:650px}.about-grid p{font-size:17px;line-height:1.8;color:#d1dbd1}.about-grid figure{margin:0}.about-grid figure img{width:100%;aspect-ratio:1;object-fit:cover}.about-grid figcaption{font:11px 'IBM Plex Mono',monospace;color:var(--muted);margin-top:12px}.principle-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}.principle-grid.four{grid-template-columns:repeat(4,1fr)}.principle-grid article{border-top:2px solid var(--lime);padding-top:20px}.principle-grid article:nth-child(2){border-color:var(--coral)}.principle-grid article:nth-child(3){border-color:var(--teal)}.principle-grid article:nth-child(4){border-color:#e9d7a1}.principle-grid article>span{font:12px 'IBM Plex Mono',monospace;color:var(--muted)}.principle-grid h3{font-size:20px;line-height:1.3;margin:22px 0 10px}.principle-grid p{font-size:14px;color:var(--muted)}.site-gallery{background:#111613}.filter-bar{display:flex;gap:6px;margin:8px 0 28px;flex-wrap:wrap}.filter-bar button{border:1px solid var(--line);border-radius:4px;background:transparent;color:var(--muted);padding:8px 14px;font-size:12px}.filter-bar button.active,.filter-bar button:hover{background:var(--lime);color:#111;border-color:var(--lime)}.filter-bar span{margin-inline-start:6px;opacity:.7}.sites-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 18px}.site-card{min-width:0;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:var(--surface)}.site-card[hidden]{display:none}.browser-window{background:#e8ebe8}.browser-bar{height:35px;background:#252c28;display:flex;align-items:center;gap:12px;padding:0 12px;color:#cbd2cb;font:10px 'IBM Plex Mono',monospace;direction:ltr}.browser-dots{display:flex;gap:4px;flex:none}.browser-dots i{display:block;width:6px;height:6px;border-radius:50%;background:var(--coral)}.browser-dots i:nth-child(2){background:#e9d7a1}.browser-dots i:nth-child(3){background:var(--lime)}.browser-address{flex:1;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border:1px solid #424b45;border-radius:3px;padding:3px 4px}.browser-viewport{height:240px;overflow:hidden;position:relative;background:#edf0ec}.browser-viewport>img{width:100%;height:auto;max-width:none;transform:translateY(0);will-change:transform}.browser-viewport.is-playing>img{animation:site-scroll 13s ease-in-out 1s infinite alternate}.browser-viewport:hover>img{animation-play-state:paused}.preview-fallback{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:28px;background:#e4e9e1;color:#354239;text-align:center}.preview-fallback img{max-width:70%;max-height:95px;object-fit:contain}.preview-fallback span{font:11px 'IBM Plex Mono',monospace}.site-card-body{padding:20px;min-height:190px;display:flex;flex-direction:column}.site-index{font:10px 'IBM Plex Mono',monospace;color:var(--coral)}.site-card h3{font-size:19px;margin:8px 0 5px;line-height:1.25}.site-card p{font-size:12px;color:var(--muted);line-height:1.5;margin:0 0 15px}.site-card a{margin-top:auto;color:var(--lime);font-size:12px;font-weight:700}.gallery-note{margin:32px 0 0;font-size:12px;color:var(--muted);line-height:1.7}.gallery-note a{color:var(--lime)}.timeline article{display:grid;grid-template-columns:220px 1fr;gap:40px;padding:36px 0;border-top:1px solid var(--line)}.timeline article:last-child{border-bottom:1px solid var(--line)}.timeline article>span{font:12px 'IBM Plex Mono',monospace;color:var(--coral)}.timeline h2{font-size:27px;margin:0 0 7px}.timeline strong{font-size:13px;color:var(--teal)}.timeline p{color:var(--muted);margin:10px 0 0}.article-content{max-width:820px;padding-block:70px 100px}.article-content section{margin-bottom:52px}.article-content h2{font-size:27px;line-height:1.3}.article-content p{font-size:18px;line-height:1.85;color:#d1dbd1}.article-byline{border-top:1px solid var(--line);padding-top:20px;color:var(--muted)!important;font-size:13px!important}.contact-list a{display:grid;grid-template-columns:120px minmax(0,1fr) 30px;align-items:center;gap:30px;padding:28px 0;border-top:1px solid var(--line)}.contact-list a:last-child{border-bottom:1px solid var(--line)}.contact-list span{font:12px 'IBM Plex Mono',monospace;color:var(--coral)}.contact-list strong{font-size:clamp(17px,2.2vw,29px);overflow-wrap:anywhere}.contact-list b{color:var(--lime)}.contact-list a:hover strong{color:var(--lime)}.site-footer{display:flex;justify-content:space-between;gap:35px;padding:50px max(28px,calc((100vw - var(--max))/2));background:#090b0a}.site-footer strong{font-size:16px;display:block}.site-footer span{font-size:12px;color:var(--muted);display:block;margin-top:7px}.site-footer>div:last-child{display:flex;flex-wrap:wrap;gap:20px;align-content:start}.site-footer a{font-size:12px;color:var(--muted)}.site-footer a:hover{color:var(--lime)}@keyframes site-scroll{to{transform:translateY(calc(240px - 100%))}}html[dir=rtl] .hero-portrait span{direction:ltr}html[dir=rtl] .brand-mark,html[dir=rtl] .brand-name{direction:ltr}html[dir=rtl] .language-label select{padding:7px 9px 7px 26px}html[dir=rtl] .browser-window{direction:ltr}html[dir=rtl] .site-card-body{text-align:right}
@media(max-width:1120px){.site-header{gap:18px}.site-nav{gap:10px}.site-nav a{font-size:11px}.brand-name{display:none}.hero-inner{min-height:550px}}@media(max-width:900px){.site-header{height:66px;padding:0 22px}.site-nav{display:none;position:absolute;top:65px;left:0;right:0;background:#121814;border-bottom:1px solid var(--line);padding:18px 24px;flex-direction:column;align-items:stretch;gap:0}.site-nav.is-open{display:flex}.site-nav a{font-size:14px;padding:9px 0}.header-actions{margin-inline-start:auto}.menu-button{display:block}.hero-inner{grid-template-columns:1fr .6fr;gap:24px}.hero-portrait{min-height:350px}.feature-grid,.sites-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.principle-grid.four{grid-template-columns:repeat(2,1fr)}}@media(max-width:650px){.section-inner,.hero-inner{width:calc(100% - 36px)}.hero-inner{display:flex;flex-direction:column;align-items:stretch;padding-block:56px 40px;gap:38px}.hero h1{font-size:clamp(50px,13vw,72px)}.hero-portrait{height:360px;min-height:0}.hero-lead{font-size:17px}.stats-strip .section-inner{grid-template-columns:repeat(3,1fr)}.stats-strip .section-inner>div{display:block;min-height:86px;padding:16px 8px 14px 0}.stats-strip .section-inner>div+div{padding-inline-start:10px}.stats-strip strong{font-size:23px;display:block;margin-bottom:6px}.stats-strip span{font-size:10px;line-height:1.2;display:block}.section{padding:66px 0}.section h2,.page-intro h1{font-size:36px}.feature-grid,.sites-grid,.statement-grid,.about-grid,.principle-grid,.principle-grid.four{grid-template-columns:1fr}.feature-media{height:215px}.feature-copy{min-height:0}.statement-grid{gap:10px}.note-list>a{grid-template-columns:32px 1fr 20px;gap:10px}.note-list em{grid-column:2;grid-row:2}.note-list b{grid-column:3;grid-row:1}.page-intro{padding:64px 0}.timeline article{grid-template-columns:1fr;gap:10px;padding:25px 0}.contact-list a{grid-template-columns:1fr 24px;gap:8px}.contact-list span{grid-column:1 / -1}.contact-list strong{font-size:17px}.site-footer{display:block;padding:40px 18px}.site-footer>div:last-child{margin-top:25px}.browser-viewport{height:260px}@keyframes site-scroll{to{transform:translateY(calc(260px - 100%))}}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.browser-viewport.is-playing>img{animation:none}.button,.feature-card{transition:none}}

/* Projects: an editorial index with room to inspect the work itself. */
.projects-intro{padding-bottom:0}.projects-intro .section-inner>p:not(.eyebrow){margin-bottom:66px}.project-counts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line)}.project-counts>div{display:flex;align-items:baseline;gap:14px;padding:24px 20px 27px 0;border-inline-end:1px solid var(--line)}.project-counts>div+div{padding-inline-start:24px}.project-counts>div:last-child{border:0}.project-counts strong{font:600 36px/1 'IBM Plex Mono',monospace;color:var(--coral)}.project-counts span{font-size:13px;color:var(--muted)}.project-features{grid-template-columns:repeat(2,minmax(0,1fr))}.project-features .feature-card:first-child,.project-features .feature-card:last-child{grid-column:span 2;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);min-height:340px}.project-features .feature-card:first-child .feature-media,.project-features .feature-card:last-child .feature-media{height:100%;min-height:340px}.project-features .feature-card:first-child .feature-copy,.project-features .feature-card:last-child .feature-copy{padding:36px;justify-content:center}.project-features .feature-card:first-child h3,.project-features .feature-card:last-child h3{font-size:32px}.project-features .feature-card:first-child .feature-link,.project-features .feature-card:last-child .feature-link{margin-top:24px}.gallery-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:30px}.gallery-heading .section-head{margin:0}.gallery-heading .filter-bar{margin:0 0 8px;flex:none}.site-gallery .sites-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.site-card{--preview-height:300px}.site-card-lead{grid-column:span 2;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr);--preview-height:380px}.site-card-lead .site-card-body{padding:32px;justify-content:center}.site-card-lead h3{font-size:30px}.site-card-lead p{font-size:16px;line-height:1.65}.browser-window{display:block;min-width:0;overflow:hidden}.browser-window:hover .browser-bar{background:#344138}.browser-viewport{height:var(--preview-height)}.browser-viewport.is-playing>img{animation-name:site-scroll-project;animation-duration:17s}.site-card-lead .browser-viewport.is-playing>img{animation-duration:21s}@keyframes site-scroll-project{to{transform:translateY(calc(var(--preview-height) - 100%))}}.site-card-body{min-height:180px}.site-card-meta{display:flex;align-items:center;justify-content:space-between;gap:16px;font:10px/1.3 'IBM Plex Mono',monospace;text-transform:uppercase;color:var(--muted)}.site-card-meta .site-index{color:var(--coral)}.site-card-body h3{margin-top:13px}.site-card-body>p{font-size:14px;line-height:1.6;margin-bottom:22px;max-width:55ch}.site-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:auto}.site-action{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:34px;border:1px solid var(--lime);border-radius:3px;padding:6px 10px;color:var(--lime);font-size:11px;font-weight:700}.site-action:hover{background:var(--lime);color:#111}.site-action.secondary{border-color:var(--line);color:var(--text)}.site-action.secondary:hover{border-color:var(--teal);color:var(--teal);background:transparent}html[dir=rtl] .project-counts>div{padding-inline-end:20px;padding-inline-start:0}html[dir=rtl] .project-counts>div+div{padding-inline-start:24px}html[dir=rtl] .site-card-lead .site-card-body{text-align:right}
@media(max-width:900px){.gallery-heading{display:block}.gallery-heading .section-head{margin-bottom:24px}.site-card-lead{grid-template-columns:1fr 1fr;--preview-height:320px}.project-features .feature-card:first-child,.project-features .feature-card:last-child{min-height:270px}.project-features .feature-card:first-child .feature-media,.project-features .feature-card:last-child .feature-media{min-height:270px}}@media(max-width:650px){.projects-intro .section-inner>p:not(.eyebrow){margin-bottom:34px}.project-counts>div{display:block;padding:15px 7px 18px 0}.project-counts>div+div,html[dir=rtl] .project-counts>div+div{padding-inline-start:10px}.project-counts strong{display:block;font-size:25px;margin-bottom:6px}.project-counts span{font-size:10px;line-height:1.2;display:block}.project-features{grid-template-columns:1fr}.project-features .feature-card:first-child,.project-features .feature-card:last-child{grid-column:auto;display:block;min-height:0}.project-features .feature-card:first-child .feature-media,.project-features .feature-card:last-child .feature-media{height:230px;min-height:0}.project-features .feature-card:first-child .feature-copy,.project-features .feature-card:last-child .feature-copy{padding:24px}.project-features .feature-card:first-child h3,.project-features .feature-card:last-child h3{font-size:23px}.site-gallery .sites-grid{grid-template-columns:1fr;gap:18px}.site-card-lead{grid-column:auto;display:block;--preview-height:270px}.site-card{--preview-height:270px}.site-card-lead .site-card-body{padding:20px}.site-card-lead h3{font-size:20px}.site-card-lead p{font-size:14px}.site-card-body{min-height:0}.site-actions{margin-top:18px}}
.site-card .browser-window,.site-card .site-action{margin-top:0}.site-card .browser-window{color:inherit;font-size:inherit;font-weight:inherit}.site-card .site-action{font-size:11px}.site-card .site-action.secondary{color:var(--text)}@media(prefers-reduced-motion:reduce){.browser-viewport.is-playing>img{animation:none}}

/* Project previews remain legible until a visitor chooses to inspect them. */
.site-gallery .sites-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.site-gallery .site-card{display:flex;flex-direction:column;--preview-height:clamp(320px,30vw,370px)}
.site-gallery .site-card[hidden]{display:none}
.site-gallery .browser-viewport{height:var(--preview-height);background:#202b26;isolation:isolate}
.site-gallery .browser-viewport>img{display:block;width:100%;height:auto;min-height:0;max-width:none;object-position:top center;transform:translateY(0);will-change:transform}
.site-gallery .browser-window:hover .browser-viewport>img,.site-gallery .browser-window:focus-visible .browser-viewport>img{animation:site-scroll-project 14s ease-in-out 1s 1 alternate}
.site-gallery .site-card-body{flex:1;min-height:0;padding:18px 20px 20px;justify-content:flex-start}
.site-gallery .site-card h3{font-size:21px;margin:10px 0 5px}
.site-gallery .site-card-body>p{margin:0 0 16px;max-width:none}
.site-gallery .site-actions{margin-top:auto;padding-top:4px}
.site-gallery .preview-fallback{min-height:100%;gap:8px;background:linear-gradient(135deg,#1d342b,#273832 48%,#26403c);color:#f1f3ef}
.site-gallery .preview-fallback strong{font-size:clamp(24px,3vw,38px);line-height:1.1;overflow-wrap:anywhere}
.site-gallery .preview-fallback img{max-width:180px;max-height:78px;object-fit:contain;margin-bottom:14px}
.site-gallery .preview-fallback span{font:12px 'IBM Plex Mono',monospace;color:#a9d8c7}
.site-gallery .preview-fallback small{margin-top:18px;border-top:1px solid #709580;padding-top:8px;color:#c9ee8f;font-size:11px}
@media(max-width:650px){.site-gallery .sites-grid{grid-template-columns:1fr}.site-gallery .site-card{--preview-height:clamp(220px,68vw,270px)}}
@media(prefers-reduced-motion:reduce){.site-gallery .browser-window:hover .browser-viewport>img,.site-gallery .browser-window:focus-visible .browser-viewport>img{animation:none}}

/* ASIL is presented as a project dossier rather than another archive tile. */
.site-gallery .site-card-asil{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1.18fr) minmax(340px,.82fr);flex-direction:initial;border-color:#58685d;background:#101613;position:relative;overflow:hidden;--preview-height:500px}
.site-gallery .site-card-asil::before{content:"";position:absolute;z-index:3;inset-block-start:0;inset-inline:0;height:3px;background:var(--lime)}
.site-gallery .site-card-asil .browser-window{height:100%;min-height:500px;border-inline-end:1px solid var(--line)}
.site-gallery .site-card-asil .browser-viewport{height:100%;min-height:465px}
.site-gallery .site-card-asil .browser-viewport>img{width:100%;height:100%;min-height:0;object-fit:cover;object-position:58% center;animation:none!important;transform:none!important}
.site-gallery .site-card-asil .site-card-body{padding:34px clamp(28px,3vw,48px) 38px;justify-content:center;min-width:0}
.asil-project-mark{display:flex;align-items:center;justify-content:space-between;gap:18px;padding-bottom:17px;margin-bottom:24px;border-bottom:1px solid var(--line);font:600 10px/1.3 'IBM Plex Mono',monospace;text-transform:uppercase;color:var(--lime)}
.asil-project-mark b{color:var(--coral);font-weight:600}
.site-gallery .site-card-asil .site-card-meta{margin-bottom:12px;color:#8fa097}
.site-gallery .site-card-asil h3{font-size:clamp(34px,4vw,52px);line-height:1;margin:0 0 18px;letter-spacing:0;color:#f1f3ef}
.site-gallery .site-card-asil .site-card-body>p{font-size:15px;line-height:1.75;color:#c8d3ca;margin-bottom:26px}
.asil-scope{margin-bottom:28px}
.asil-scope>span{display:block;margin-bottom:10px;font:600 10px/1.3 'IBM Plex Mono',monospace;text-transform:uppercase;color:var(--muted)}
.asil-scope ul{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:0}
.asil-scope li{border:1px solid #415047;background:#19211d;padding:6px 9px;font:600 10px/1.2 'IBM Plex Mono',monospace;color:#dce6de}
.asil-scope li:nth-child(2){border-color:#795d54;color:#ffc2b5}.asil-scope li:nth-child(3){border-color:#3f6864;color:#a7e5dc}
.site-gallery .site-card-asil .site-actions{margin-top:0;padding:0}
.site-gallery .site-card-asil .site-action{min-height:42px;padding:9px 15px;background:var(--lime);color:#101510;border-color:var(--lime)}
@media(max-width:900px){.site-gallery .site-card-asil{display:block;--preview-height:340px}.site-gallery .site-card-asil .browser-window{min-height:0;border-inline-end:0;border-bottom:1px solid var(--line)}.site-gallery .site-card-asil .browser-viewport{height:340px;min-height:0}.site-gallery .site-card-asil .site-card-body{padding:30px}}
@media(max-width:650px){.site-gallery .site-card-asil{--preview-height:250px}.site-gallery .site-card-asil .browser-viewport{height:250px}.site-gallery .site-card-asil .site-card-body{padding:24px 20px 26px}.site-gallery .site-card-asil h3{font-size:34px}.asil-project-mark{margin-bottom:20px}.asil-scope ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.asil-scope li:last-child{grid-column:1/-1}}

/* Global navigation */
.site-header{height:78px;padding:0 24px;position:sticky;top:0;z-index:50;background:rgba(12,17,14,.97);backdrop-filter:blur(16px);border-color:#354038}
.header-inner{width:min(1360px,100%);height:100%;margin:auto;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:20px}
.site-header .brand{gap:12px;min-width:max-content;justify-self:start}
.site-header .brand-mark{display:block;line-height:1;min-width:52px}
.site-header .brand-mark img{width:52px;height:38px;object-fit:contain}
.site-header .brand-name{display:block;font-size:13px;line-height:1.15}
.site-header .brand-name small{font-size:10px;margin-top:5px}
.site-header .site-nav{margin-inline-start:0;display:flex;align-items:stretch;align-self:stretch;gap:clamp(11px,1.25vw,21px)}
.site-header .site-nav a{display:flex;align-items:center;position:relative;padding:0 2px;color:#c4cec5;font-size:13px;font-weight:600;transition:color .18s}
.site-header .site-nav a:hover,.site-header .site-nav a[aria-current]{color:#e6f9bd}
.site-header .site-nav a[aria-current]::after{content:"";position:absolute;inset-inline:0;bottom:0;height:2px;background:var(--lime)}
.site-header .header-actions{margin-inline-start:0;gap:10px;flex:none;justify-self:end}
.language-picker{position:relative}
.language-picker summary{height:40px;min-width:130px;display:flex;align-items:center;justify-content:space-between;gap:9px;padding:0 12px;border:1px solid #3d4b41;border-radius:4px;background:#18201b;color:#f1f3ef;cursor:pointer;list-style:none;user-select:none;transition:border-color .18s,background .18s}
.language-picker summary::-webkit-details-marker{display:none}
.language-picker summary:hover,.language-picker[open] summary{border-color:var(--lime);background:#202c22}
.language-summary-main,.language-option{display:flex;align-items:center;gap:9px;min-width:0}
.language-flag{position:relative;display:inline-block;flex:0 0 22px;width:22px;height:14px;border:1px solid color-mix(in srgb,var(--text) 22%,transparent);border-radius:2px;overflow:hidden;box-shadow:0 0 0 1px rgba(0,0,0,.08)}
.flag-global{background:#012169 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 36'%3E%3Cpath fill='%23012169' d='M0 0h60v36H0z'/%3E%3Cpath stroke='%23fff' stroke-width='11' d='M0 0l60 36M60 0L0 36'/%3E%3Cpath stroke='%23c8102e' stroke-width='5' d='M0 0l60 36M60 0L0 36'/%3E%3Cpath stroke='%23fff' stroke-width='14' d='M30 0v36M0 18h60'/%3E%3Cpath stroke='%23c8102e' stroke-width='8' d='M30 0v36M0 18h60'/%3E%3C/svg%3E") center/cover no-repeat}
.flag-de{background:linear-gradient(#171717 0 33.33%,#d62f3d 33.33% 66.66%,#f3c843 66.66%)}
.flag-ru{background:linear-gradient(#fff 0 33.33%,#2864b4 33.33% 66.66%,#d8424b 66.66%)}
.flag-ar{background:#16824b}.flag-ar::after{content:"";position:absolute;left:5px;right:5px;bottom:3px;height:1px;background:#fff}
.flag-fa{background:linear-gradient(#2e9b55 0 33.33%,#fff 33.33% 66.66%,#d74742 66.66%)}.flag-fa::after{content:"";position:absolute;width:3px;height:3px;border-radius:50%;background:#d74742;left:9px;top:5px}
.flag-tr{background:#d92835}.flag-tr::before{content:"";position:absolute;width:8px;height:8px;border-radius:50%;background:#fff;left:5px;top:2px}.flag-tr::after{content:"";position:absolute;width:7px;height:7px;border-radius:50%;background:#d92835;left:8px;top:2px}
.language-code{font:700 10px 'IBM Plex Mono',monospace;color:var(--lime)}
.language-current{font-size:12px;font-weight:600;white-space:nowrap}
.language-chevron{font:18px/1 Arial,sans-serif;color:#bdc9bb;transform:translateY(-3px);transition:transform .18s}
.language-picker[open] .language-chevron{transform:rotate(180deg) translateY(2px)}
.language-list{position:absolute;z-index:60;inset-block-start:calc(100% + 9px);inset-inline-end:0;width:205px;padding:6px;background:#19221c;border:1px solid #425247;border-radius:5px;box-shadow:0 16px 38px #0009}
.language-list a{min-height:41px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 10px;border-radius:3px;color:#d7dfd6;font-size:12px;font-weight:600}
.language-list a small{font:10px 'IBM Plex Mono',monospace;color:#9fb4a3}
.language-list .language-option>span{white-space:nowrap}
.language-list a:hover,.language-list a:focus-visible{background:#2a3a2c;color:#fff}
.language-list a[aria-current]{background:#344833;color:var(--lime)}
.language-list a[aria-current] small{color:var(--lime)}
.site-header .menu-button{display:none;width:40px;height:40px;padding:0;align-items:center;justify-content:center;background:#18201b;border-color:#3d4b41;font-size:21px;line-height:1}
.site-header .menu-button:hover,.site-header .menu-button[aria-expanded=true]{border-color:var(--lime);color:var(--lime)}
@media(max-width:1100px){.site-header{height:68px;padding:0 18px}.header-inner{display:flex;gap:12px}.site-header .site-nav{display:none;position:absolute;inset-block-start:calc(100% - 1px);inset-inline:0;align-self:auto;margin:0;padding:12px 18px 18px;background:#111a14;border-bottom:1px solid #425247;box-shadow:0 18px 28px #0008;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px 14px}.site-header .site-nav.is-open{display:grid}.site-header .site-nav a{min-height:44px;padding:7px 11px;font-size:13px;border-radius:3px}.site-header .site-nav a[aria-current]{background:#243327}.site-header .site-nav a[aria-current]::after{inset-inline-start:0;inset-inline-end:auto;top:8px;bottom:8px;width:2px;height:auto}.site-header .header-actions{margin-inline-start:auto}.site-header .menu-button{display:flex}}
@media(max-width:650px){.site-header{height:64px;padding:0 16px}.site-header .brand-mark{font-size:26px;min-width:45px}.site-header .brand-name{font-size:12px}.site-header .brand-name small{font-size:9px}.language-picker summary{min-width:76px;height:38px;padding:0 9px}.language-current{display:none}.language-summary-main{gap:6px}.language-summary-main .language-flag{flex-basis:20px;width:20px;height:13px}.site-header .menu-button{width:38px;height:38px}.language-list{width:210px}.site-header .site-nav{grid-template-columns:repeat(2,minmax(0,1fr));padding:10px 16px 16px}}
@media(max-width:380px){.site-header .brand-name{display:none}}

/* Multidisciplinary career narrative. */
.career-range{background:#101713;overflow:hidden}.career-range-head{display:grid;grid-template-columns:minmax(240px,.72fr) minmax(420px,1.28fr);gap:22px 70px;align-items:end;margin-bottom:54px}.career-range-head .eyebrow{grid-column:1 / -1}.career-range-head h2{margin:0;font-size:clamp(38px,4.8vw,70px);line-height:1.02}.career-range-head>p:not(.eyebrow){margin:0;color:var(--muted);font-size:17px;line-height:1.75}.career-pillar-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line);border-inline-start:1px solid var(--line)}.career-pillar-grid article{position:relative;min-height:260px;padding:26px 24px;border-inline-end:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden;transition:background .25s,transform .25s}.career-pillar-grid article::before{content:"";position:absolute;inset-inline:0;inset-block-start:0;height:3px;background:var(--lime);transform:scaleX(.18);transform-origin:0 50%;transition:transform .3s}.career-pillar-grid article:nth-child(2)::before{background:var(--teal)}.career-pillar-grid article:nth-child(3)::before{background:var(--coral)}.career-pillar-grid article:nth-child(4)::before{background:#e8d3a0}.career-pillar-grid article:hover{background:var(--surface);transform:translateY(-4px)}.career-pillar-grid article:hover::before{transform:scaleX(1)}.career-pillar-grid article>span{font:11px 'IBM Plex Mono',monospace;color:var(--muted)}.career-pillar-grid h3{font-size:22px;line-height:1.2;margin:48px 0 15px}.career-pillar-grid p{margin:0;color:var(--muted);font-size:14px;line-height:1.7}
.engineering-milestones{background:#0e1311}.engineering-milestones .section-head{max-width:800px}.milestone-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-top:1px solid var(--line);border-inline-start:1px solid var(--line)}.milestone-grid article{min-height:360px;display:grid;grid-template-columns:1fr auto;align-content:start;padding:28px;border-inline-end:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface);transition:background .25s,transform .25s}.milestone-grid article:nth-child(2){background:#17221d}.milestone-grid article:hover{background:var(--surface2);transform:translateY(-5px)}.milestone-grid article>span{font:600 12px 'IBM Plex Mono',monospace;color:var(--coral)}.milestone-grid article>b{font:500 11px 'IBM Plex Mono',monospace;color:var(--muted)}.milestone-grid h3{grid-column:1 / -1;font-size:clamp(23px,2.2vw,31px);line-height:1.15;margin:70px 0 18px}.milestone-grid p{grid-column:1 / -1;color:var(--muted);font-size:14px;line-height:1.75;margin:0}.education-section{background:#18211c}.education-grid{display:grid;grid-template-columns:minmax(240px,.6fr) minmax(460px,1.4fr);gap:50px 90px;align-items:start}.education-grid h2{margin-top:18px}.education-grid ol{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}.education-grid li{display:grid;grid-template-columns:48px 1fr;gap:18px;align-items:center;min-height:74px;border-bottom:1px solid var(--line)}.education-grid li span{font:11px 'IBM Plex Mono',monospace;color:var(--teal)}.education-grid li strong{font-size:16px;line-height:1.45;font-weight:600}
html[data-theme=light] .career-range{background:#edf0ea}html[data-theme=light] .engineering-milestones{background:#f4f4ef}html[data-theme=light] .milestone-grid article:nth-child(2){background:#eef1eb}html[data-theme=light] .education-section{background:#e9ede7}
@media(max-width:980px){.career-pillar-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.career-pillar-grid article{min-height:220px}.milestone-grid{grid-template-columns:1fr}.milestone-grid article{min-height:0}.milestone-grid h3{margin-top:44px}.education-grid{gap:45px}}
@media(max-width:650px){.career-range-head,.education-grid{grid-template-columns:1fr;gap:20px}.career-range-head{margin-bottom:36px}.career-range-head .eyebrow{grid-column:auto}.career-range-head h2{font-size:38px}.career-range-head>p:not(.eyebrow){font-size:15px}.career-pillar-grid{grid-template-columns:1fr}.career-pillar-grid article{min-height:0;padding:22px 20px}.career-pillar-grid h3{margin-top:34px}.milestone-grid article{padding:22px 20px}.milestone-grid h3{font-size:24px;margin-top:38px}.education-grid ol{margin-top:12px}.education-grid li{grid-template-columns:38px 1fr;min-height:68px}.education-grid li strong{font-size:14px}}

.visual-teaser{border-bottom:1px solid var(--line);background:#1a241e;overflow:hidden}.visual-teaser-inner{display:grid;grid-template-columns:minmax(280px,.72fr) minmax(520px,1.28fr);min-height:540px;gap:clamp(36px,5vw,82px);align-items:center}.visual-teaser-copy{position:relative;z-index:4}.visual-teaser h2{font-size:clamp(34px,3.6vw,54px);line-height:1.08;max-width:520px;margin:18px 0 30px}.visual-teaser-art{--collage-x:0px;--collage-y:0px;position:relative;height:500px;isolation:isolate;perspective:1100px}.visual-teaser-art::before{content:"SELECTED / VISUAL ARCHIVE";position:absolute;z-index:0;inset-inline-end:4%;inset-block-start:7%;color:color-mix(in srgb,var(--muted) 36%,transparent);font:700 clamp(24px,3.5vw,54px)/.82 'IBM Plex Mono',monospace;writing-mode:vertical-rl;pointer-events:none}.visual-teaser-piece{position:absolute;margin:0;background:#0b100d;border:1px solid color-mix(in srgb,var(--line) 82%,white 18%);box-shadow:0 26px 60px #0006;overflow:hidden;transition:transform .7s cubic-bezier(.2,.75,.2,1),filter .35s ease;will-change:transform}.visual-teaser-piece img{display:block;width:100%;height:100%;object-fit:cover;transition:transform 1.1s cubic-bezier(.2,.75,.2,1)}.visual-teaser-piece figcaption{position:absolute;z-index:2;inset-inline:0;inset-block-end:0;display:flex;align-items:end;justify-content:space-between;gap:12px;padding:34px 14px 12px;background:linear-gradient(transparent,#07100de8);color:#fff;text-shadow:0 1px 3px #000}.visual-teaser-piece figcaption span{font:8px/1.25 'IBM Plex Mono',monospace;text-transform:uppercase;color:#d7e4da}.visual-teaser-piece figcaption strong{font-size:13px;white-space:nowrap}.visual-teaser-piece-1{z-index:1;inset-inline-start:0;top:10%;width:42%;height:75%;transform:translate(calc(var(--collage-x) * -.25),calc(var(--collage-y) * -.25)) rotate(-3.5deg)}.visual-teaser-piece-1 img{object-position:center 42%}.visual-teaser-piece-2{z-index:3;inset-inline-start:36%;top:1%;width:38%;height:58%;transform:translate(calc(var(--collage-x) * .7),calc(var(--collage-y) * .5)) rotate(2.8deg)}.visual-teaser-piece-2 img{object-position:center 34%}.visual-teaser-piece-3{z-index:2;inset-inline-end:3%;bottom:2%;width:42%;height:57%;transform:translate(calc(var(--collage-x) * -.55),calc(var(--collage-y) * .75)) rotate(-1.3deg)}.visual-teaser-piece-3 img{object-position:center 47%}.visual-teaser-art:hover .visual-teaser-piece:not(:hover){filter:brightness(.72) saturate(.7)}.visual-teaser-piece:hover{z-index:5}.visual-teaser-piece:hover img{transform:scale(1.045)}.visual-intro{background:#121914;border-bottom:1px solid var(--line);overflow:hidden}.visual-intro-inner{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:clamp(30px,6vw,90px);align-items:center;min-height:520px}.visual-intro h1{font-size:clamp(46px,5vw,74px);line-height:1.08;margin:20px 0;max-width:790px;overflow-wrap:anywhere}.visual-intro p:not(.eyebrow){font-size:18px;line-height:1.75;color:var(--muted);max-width:680px}.visual-intro-image{height:520px;align-self:stretch;overflow:hidden;position:relative}.visual-intro-image img{width:100%;height:100%;object-fit:cover;object-position:center 35%;filter:saturate(.88)}.visual-section{background:#0f1311}.poster-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px 16px}.poster-item,.logo-item{margin:0;min-width:0}.poster-item button{border:0;padding:0;background:none;display:block;width:100%;overflow:hidden}.poster-item button img{width:100%;aspect-ratio: .707;object-fit:cover;transition:transform .35s ease}.poster-item button:hover img{transform:scale(1.035)}.poster-item figcaption,.logo-item figcaption{padding-top:12px;display:flex;flex-direction:column;gap:3px;line-height:1.35}.poster-item figcaption span,.logo-item figcaption span{font:10px/1.4 'IBM Plex Mono',monospace;text-transform:uppercase;color:var(--coral)}.poster-item figcaption strong,.logo-item figcaption strong{font-size:14px;font-weight:600}.logo-section{background:#151c18}.logo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px 16px}.logo-item>div{height:210px;background:#e3e8e1;display:flex;align-items:center;justify-content:center;padding:28px}.logo-item img{max-width:100%;max-height:100%;object-fit:contain}.logo-item figcaption a{font-size:11px;color:var(--lime);margin-top:9px}.visual-note{color:var(--muted);max-width:900px;font-size:13px;line-height:1.7;border-top:1px solid var(--line);padding-top:22px;margin:42px 0 0}.visual-next{display:flex;align-items:center;justify-content:space-between;gap:30px}.visual-next h2{max-width:700px}.art-dialog{border:1px solid var(--line);border-radius:4px;background:#0e120f;color:var(--text);padding:18px;max-width:min(920px,calc(100vw - 28px));max-height:calc(100vh - 24px);overflow:auto}.art-dialog::backdrop{background:#020402df}.art-dialog form{text-align:end;position:sticky;top:0;z-index:1}.art-dialog form button{width:36px;height:36px;border:1px solid var(--line);border-radius:4px;background:var(--surface);color:var(--text);font-size:25px;line-height:1}.art-dialog img{max-height:calc(100vh - 100px);max-width:100%;width:auto;margin:auto}.art-dialog p{text-align:center;font-size:13px;color:var(--muted);margin:8px 0 0}.capability-section{background:#151c18}.capability-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 70px}.capability-grid article{border-top:2px solid var(--lime);padding-top:20px}.capability-grid article:nth-child(2){border-color:var(--teal)}.capability-grid article:nth-child(3){border-color:var(--coral)}.capability-grid article:nth-child(4){border-color:#e8d3a0}.capability-grid article>span{font:11px 'IBM Plex Mono',monospace;color:var(--muted)}.capability-grid h3{font-size:25px;margin:18px 0 6px}.capability-grid p{font-size:14px;color:var(--muted);margin:0 0 18px}.capability-grid ul{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:0;margin:0 0 20px}.capability-grid li{font-size:13px;border-bottom:1px solid var(--line);padding:7px 12px 7px 0;margin-inline-end:12px;white-space:nowrap}.capability-grid a{font-size:12px;color:var(--lime);font-weight:700}
@media(max-width:900px){.visual-teaser-inner{grid-template-columns:minmax(230px,.7fr) minmax(430px,1.3fr);gap:22px}.visual-teaser-art{height:440px}.visual-intro-inner{min-height:450px}.visual-intro-image{height:450px}.poster-grid,.logo-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.logo-item>div{height:185px}}@media(max-width:650px){.visual-teaser-inner{display:block;padding-top:55px;padding-bottom:38px}.visual-teaser h2{font-size:38px;max-width:460px}.visual-teaser-art{height:430px;margin-top:34px}.visual-teaser-art::before{font-size:32px;inset-inline-end:0}.visual-teaser-piece figcaption{padding:28px 9px 9px}.visual-teaser-piece figcaption span{font-size:7px}.visual-teaser-piece figcaption strong{font-size:11px}.visual-teaser-piece-1{inset-inline-start:0;top:8%;width:51%;height:68%}.visual-teaser-piece-2{inset-inline-start:41%;top:0;width:47%;height:53%}.visual-teaser-piece-3{inset-inline-end:0;bottom:0;width:52%;height:56%}.visual-intro-inner{display:block;padding-top:60px}.visual-intro h1{font-size:40px}.visual-intro p:not(.eyebrow){font-size:16px}.visual-intro-image{height:240px;margin-top:32px}.poster-grid,.logo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 10px}.logo-item>div{height:145px;padding:15px}.poster-item figcaption strong,.logo-item figcaption strong{font-size:12px}.visual-next{display:block}.visual-next .button{margin-top:14px}.capability-grid{grid-template-columns:1fr;gap:30px}.capability-grid h3{font-size:22px}.capability-grid li{font-size:12px}}

/* Keep the full composition visible in the index; the dialog is for detail. */
.poster-item button{height:340px;display:flex;align-items:center;justify-content:center;padding:12px;background:#1a211d;border:1px solid var(--line)}
.poster-item button:hover{border-color:var(--lime)}
.poster-item button img{width:100%;height:100%;aspect-ratio:auto;object-fit:contain;transform:none}
.poster-item button:hover img{transform:none}
.logo-item>div{height:180px}
@media(max-width:900px){.poster-item button{height:300px}.logo-item>div{height:160px}}
@media(max-width:650px){.poster-item button{height:240px;padding:8px}.logo-item>div{height:135px}}

/* Editorial motion system and day/night themes. */
:root{--header-bg:rgba(12,17,14,.92);--nav-bg:#111a14;--page-intro-bg:#121814;--gallery-bg:#111613;--statement-bg:#151c18;--footer-bg:#090b0a;--display:'Barlow Condensed','DM Sans',Arial,sans-serif;--scroll-progress:0%;--shadow:0 28px 70px rgba(0,0,0,.28)}
html{background:var(--bg)}
body{transition:background-color .35s ease,color .35s ease}
body::before{content:"";position:fixed;z-index:100;inset-block-start:0;inset-inline-start:0;width:var(--scroll-progress);height:2px;background:var(--lime);pointer-events:none}
html[data-theme=light]{color-scheme:light;--bg:#f4f4ef;--surface:#fff;--surface2:#e9ece6;--line:#c7cdc6;--text:#101411;--muted:#59625b;--lime:#497600;--coral:#b3422f;--teal:#006d67;--header-bg:rgba(244,244,239,.93);--nav-bg:#ecefe9;--page-intro-bg:#ecefe9;--gallery-bg:#e6eae4;--statement-bg:#e9ede7;--footer-bg:#111512;--shadow:0 24px 60px rgba(25,36,28,.12)}
html[data-theme=light] .site-header{background:var(--header-bg);border-color:var(--line)}
html[data-theme=light] .site-header .site-nav a{color:#465048}
html[data-theme=light] .site-header .site-nav a:hover,html[data-theme=light] .site-header .site-nav a[aria-current]{color:#223707}
html[data-theme=light] .language-picker summary,html[data-theme=light] .theme-toggle,html[data-theme=light] .site-header .menu-button{background:#fff;color:#141914;border-color:var(--line)}
html[data-theme=light] .language-list{background:#fff;border-color:var(--line);box-shadow:var(--shadow)}
html[data-theme=light] .language-list a{color:#374039}
html[data-theme=light] .language-list a:hover,html[data-theme=light] .language-list a:focus-visible{background:#e6ebdf;color:#101410}
html[data-theme=light] .language-list a[aria-current]{background:#dfeacb;color:#284700}
html[data-theme=light] .hero-portrait{background:#dde3dc}
html[data-theme=light] .hero-portrait span{background:#f4f4efdc;color:#101411}
html[data-theme=light] .feature-card,html[data-theme=light] .site-card{box-shadow:0 1px 0 rgba(19,28,21,.04)}
html[data-theme=light] .about-grid p,html[data-theme=light] .article-content p,html[data-theme=light] .statement-grid>div:nth-child(2)>p{color:#38423a}
html[data-theme=light] .visual-section{background:#f4f4ef}
html[data-theme=light] .logo-section,html[data-theme=light] .capability-section{background:#e9ede7}
html[data-theme=light] .visual-intro,html[data-theme=light] .visual-teaser{background:#ecefe9}
html[data-theme=light] .poster-item button{background:#e5e9e3}
html[data-theme=light] .art-dialog{background:#f4f4ef}
html[data-theme=light] .site-action.secondary{color:var(--text)}
html[data-theme=light] .site-footer{color:#f1f3ef}
html[data-theme=light] .site-footer a,html[data-theme=light] .site-footer span{color:#abb5ad}
.page-intro{background:var(--page-intro-bg)}
.statement{background:var(--statement-bg)}
.site-gallery{background:var(--gallery-bg)}
.site-footer{background:var(--footer-bg)}
.site-header{background:var(--header-bg)}
.theme-toggle{width:40px;height:40px;display:grid;place-items:center;padding:0;border:1px solid #3d4b41;border-radius:4px;background:#18201b;color:var(--text);position:relative;overflow:hidden}
.theme-toggle span{grid-area:1/1;font-size:17px;line-height:1;transition:transform .35s ease,opacity .25s ease}
.theme-toggle .theme-sun{transform:translateY(28px) rotate(80deg);opacity:0}
.theme-toggle .theme-moon{transform:translateY(0) rotate(0);opacity:1}
html[data-theme=light] .theme-toggle .theme-sun{transform:translateY(0) rotate(0);opacity:1}
html[data-theme=light] .theme-toggle .theme-moon{transform:translateY(-28px) rotate(-80deg);opacity:0}
.theme-toggle:hover{border-color:var(--lime);color:var(--lime)}

.hero{position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(600px circle at var(--spot-x,72%) var(--spot-y,38%),rgba(140,215,204,.13),transparent 56%),var(--bg)}
.hero-grid{position:absolute;z-index:-1;inset:0;background-image:linear-gradient(to right,color-mix(in srgb,var(--line) 35%,transparent) 1px,transparent 1px),linear-gradient(to bottom,color-mix(in srgb,var(--line) 35%,transparent) 1px,transparent 1px);background-size:72px 72px;mask-image:linear-gradient(to bottom,#0008,transparent 85%)}
.hero-inner{min-height:calc(100svh - 78px);grid-template-columns:minmax(0,1.2fr) minmax(340px,.8fr);padding-block:clamp(48px,7vw,96px)}
.hero-copy{position:relative;z-index:2}
.hero h1{font-family:var(--display);font-size:clamp(92px,11.5vw,176px);font-weight:800;line-height:.72;text-transform:uppercase;letter-spacing:0;margin:38px 0 42px;max-width:none}
.hero h1{direction:ltr;unicode-bidi:isolate}
html[dir=rtl] .hero h1{text-align:right}
.hero h1 span{display:block;white-space:nowrap}
.hero h1 span:last-child{color:transparent;-webkit-text-stroke:1.5px var(--text);transform:translateX(clamp(18px,4vw,64px))}
html[dir=rtl] .hero h1 span:last-child{transform:translateX(clamp(-64px,-4vw,-18px))}
.hero-role{max-width:700px}
.hero-lead{max-width:670px}
.hero-portrait{align-self:center;min-height:0;height:min(67vh,640px);overflow:visible;background:transparent;display:flex;align-items:flex-end;justify-content:center}
.portrait-frame{position:absolute;inset:0 7% 0 7%;overflow:hidden;background:var(--surface2);box-shadow:var(--shadow);transform:rotate(1.8deg)}
.portrait-frame::after{content:"";position:absolute;inset:0;border:1px solid color-mix(in srgb,var(--text) 25%,transparent);pointer-events:none}
.hero-portrait img{filter:grayscale(1) contrast(1.04);transition:filter .5s ease,transform .8s cubic-bezier(.2,.75,.2,1)}
.hero-portrait:hover img{filter:grayscale(.15) contrast(1.02);transform:scale(1.025)}
.hero-portrait span{z-index:2;inset-block-end:17px;inset-inline-end:10%;background:rgba(12,15,14,.82)}
.hero-portrait>b{position:absolute;z-index:2;inset-inline-start:-12px;inset-block-start:11%;font:700 clamp(15px,1.7vw,23px)/.9 var(--display);color:var(--lime);text-align:start;writing-mode:vertical-rl;transform:rotate(180deg);letter-spacing:0}
.discipline-ticker{height:58px;display:flex;align-items:center;overflow:hidden;border-bottom:1px solid var(--line);background:var(--surface);direction:ltr}
.discipline-ticker>div{display:flex;align-items:center;width:max-content;animation:ticker 30s linear infinite}
.discipline-ticker span{display:flex;align-items:center;gap:34px;padding-inline-end:34px;white-space:nowrap;text-transform:uppercase;font:700 22px/1 var(--display);letter-spacing:0}
.discipline-ticker i{font:normal 15px/1 Arial;color:var(--coral)}
@keyframes ticker{to{transform:translateX(-50%)}}

.section h2,.page-intro h1,.visual-intro h1{font-family:var(--display);font-weight:700;text-transform:uppercase;letter-spacing:0;line-height:.93}
.page-intro{position:relative;overflow:hidden}
.page-intro::after{position:absolute;inset-inline-start:2vw;inset-block-end:-.08em;font:800 min(22vw,300px)/.7 var(--display);color:transparent;-webkit-text-stroke:1px color-mix(in srgb,var(--text) 13%,transparent);pointer-events:none;direction:ltr;animation:page-word-drift 9s ease-in-out infinite alternate}
body[data-route="/about/"] .page-intro::after{content:"ABOUT"}
body[data-route="/projects/"] .page-intro::after{content:"WORK"}
body[data-route="/open-source/"] .page-intro::after{content:"OPEN"}
body[data-route="/engineering/"] .page-intro::after,body[data-route^="/engineering/"] .article-page .page-intro::after{content:"NOTES"}
body[data-route="/experience/"] .page-intro::after{content:"PATH"}
body[data-route="/contact/"] .page-intro::after{content:"HELLO"}
@keyframes page-word-drift{to{transform:translateX(7vw);letter-spacing:.035em}}
.page-intro h1{animation:intro-heading-in .9s cubic-bezier(.16,.8,.25,1) .64s both}
@keyframes intro-heading-in{from{opacity:0;transform:translateY(48px);clip-path:inset(0 0 100% 0)}to{opacity:1;transform:none;clip-path:inset(0)}}
.feature-card,.site-card{transition:transform .35s cubic-bezier(.2,.75,.2,1),border-color .25s,box-shadow .35s}
.feature-card:hover,.site-card:hover{transform:translateY(-7px);box-shadow:var(--shadow)}
.feature-media img{transition:transform .7s cubic-bezier(.2,.75,.2,1),filter .5s ease}
.feature-card:hover .feature-media img{transform:scale(1.035)}
.section-link{position:relative}
.section-link::after{content:"";position:absolute;inset-inline-start:0;inset-block-end:-5px;width:0;height:1px;background:currentColor;transition:width .35s ease}
.section-link:hover::after{width:100%}
.reveal-ready{opacity:0;transform:translateY(34px);transition:opacity .75s ease,transform .75s cubic-bezier(.2,.75,.2,1)}
.reveal-ready.is-visible{opacity:1;transform:none}
.feature-grid .reveal-ready:nth-child(2),.principle-grid .reveal-ready:nth-child(2),.sites-grid .reveal-ready:nth-child(even){transition-delay:.08s}
.feature-grid .reveal-ready:nth-child(3),.principle-grid .reveal-ready:nth-child(3){transition-delay:.16s}

@media(max-width:1100px){html[data-theme=light] .site-header .site-nav{background:var(--nav-bg);box-shadow:var(--shadow)}.hero-inner{min-height:auto}.hero h1{font-size:clamp(78px,12vw,126px)}.hero-portrait{height:520px}}
@media(max-width:650px){.theme-toggle{width:38px;height:38px}.hero-inner{position:relative;display:block;min-height:calc(100svh - 114px);padding-block:64px 54px}.hero-copy{max-width:100%}.hero h1{font-size:clamp(72px,23vw,116px);margin:31px 0 34px}.hero h1 span:last-child{transform:none}html[dir=rtl] .hero h1 span:last-child{transform:none}.hero-portrait{position:absolute;inset-block:74px 0;width:62%;height:auto;opacity:.14;pointer-events:none}.hero-portrait .portrait-frame{inset:0}.hero-portrait span,.hero-portrait>b{display:none}html[dir=ltr] .hero-portrait{right:-8%;left:auto}html[dir=rtl] .hero-portrait{left:-8%;right:auto}.discipline-ticker{height:50px}.discipline-ticker span{font-size:19px}.site-header .header-actions{gap:7px}}
@media(max-width:410px){.site-header .brand-name{display:none}.language-picker summary{min-width:48px}.hero h1{font-size:clamp(65px,21vw,90px)}}
@media(prefers-reduced-motion:reduce){body{transition:none}.discipline-ticker>div{animation:none}.reveal-ready{opacity:1;transform:none;transition:none}.hero-portrait img,.theme-toggle span{transition:none}.feature-card:hover,.site-card:hover{transform:none}}

/* Visible motion direction: kinetic type, live field, orbit and cinematic page entry. */
.page-loader{position:fixed;z-index:9999;inset:0;display:grid;place-items:center;background:var(--bg);pointer-events:none;animation:loader-curtain .95s cubic-bezier(.77,0,.18,1) .18s both}
.page-loader>span{font:800 clamp(70px,11vw,150px)/1 var(--display);letter-spacing:0;animation:loader-mark .72s cubic-bezier(.2,.8,.2,1) both}
.page-loader>span span{color:var(--lime)}
.page-loader>i{position:absolute;width:min(420px,62vw);height:2px;background:var(--line);overflow:hidden;transform:translateY(clamp(55px,7vw,92px))}
.page-loader>i::after{content:"";position:absolute;inset:0;background:var(--lime);transform-origin:left;animation:loader-line .7s ease-out both}
@keyframes loader-line{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes loader-mark{0%{opacity:0;transform:translateY(42px) scale(.92)}60%,100%{opacity:1;transform:none}}
@keyframes loader-curtain{0%,68%{clip-path:inset(0 0 0 0);visibility:visible}100%{clip-path:inset(0 0 100% 0);visibility:hidden}}
.motion-field{position:absolute;z-index:0;inset:0;width:100%;height:100%;pointer-events:none;opacity:.9}
.hero-inner{position:relative;z-index:1}
.hero h1 span{transform-origin:bottom;animation:hero-type-in .9s cubic-bezier(.16,.8,.25,1) .72s both}
.hero h1 span:last-child{animation-name:hero-type-in-offset;animation-delay:.84s}
@keyframes hero-type-in{from{opacity:0;transform:translateY(85%) skewY(7deg)}to{opacity:1;transform:translateY(0) skewY(0)}}
@keyframes hero-type-in-offset{from{opacity:0;transform:translateY(85%) skewY(7deg)}to{opacity:1;transform:translateX(clamp(18px,4vw,64px)) skewY(0)}}
html[dir=rtl] .hero h1 span:last-child{animation-name:hero-type-in-rtl}
@keyframes hero-type-in-rtl{from{opacity:0;transform:translateY(85%) skewY(7deg)}to{opacity:1;transform:translateX(clamp(-64px,-4vw,-18px)) skewY(0)}}
.portrait-frame{transform:perspective(1000px) rotateZ(1.8deg) rotateX(var(--portrait-y,0deg)) rotateY(var(--portrait-x,0deg));transition:transform .22s ease-out}
.motion-orbit{position:absolute;z-index:3;inset:-5% 0 -5% 0;border:1px solid color-mix(in srgb,var(--teal) 48%,transparent);border-radius:50%;animation:orbit-spin 18s linear infinite;pointer-events:none}
.motion-orbit::before,.motion-orbit::after{content:"";position:absolute;border-radius:50%;border:1px dashed color-mix(in srgb,var(--lime) 35%,transparent)}
.motion-orbit::before{inset:9% -7%;animation:orbit-spin 12s linear infinite reverse}
.motion-orbit::after{inset:19% -12%;border-color:color-mix(in srgb,var(--coral) 30%,transparent);animation:orbit-spin 24s linear infinite}
.motion-orbit i{position:absolute;padding:4px 8px;background:var(--bg);border:1px solid var(--line);color:var(--lime);font:600 9px/1 'IBM Plex Mono',monospace;font-style:normal;animation:orbit-counter 18s linear infinite}
.motion-orbit i:nth-child(1){top:4%;left:13%}.motion-orbit i:nth-child(2){top:48%;right:-8%}.motion-orbit i:nth-child(3){bottom:2%;left:22%}
@keyframes orbit-spin{to{transform:rotate(360deg)}}
@keyframes orbit-counter{to{transform:rotate(-360deg)}}
.page-intro::before{content:"";position:absolute;z-index:0;inset:-40% auto -40% -20%;width:34%;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--teal) 9%,transparent),transparent);transform:skewX(-17deg);animation:intro-scan 8s ease-in-out infinite alternate}
.page-intro .section-inner{position:relative;z-index:1}
@keyframes intro-scan{to{left:96%}}
.feature-card{position:relative;isolation:isolate}
.feature-card::before{content:"";position:absolute;z-index:2;inset:0;background:radial-gradient(260px circle at var(--card-x,-300px) var(--card-y,-300px),rgba(201,238,143,.16),transparent 62%);opacity:0;pointer-events:none;transition:opacity .25s}
.feature-card:hover::before{opacity:1}
.feature-card>*{position:relative;z-index:1}
.visual-teaser-piece-1{animation:visual-float-one 7s ease-in-out infinite alternate}.visual-teaser-piece-2{animation:visual-float-two 8.5s ease-in-out infinite alternate}.visual-teaser-piece-3{animation:visual-float-three 9s ease-in-out infinite alternate}
@keyframes visual-float-one{to{margin-top:-8px}}@keyframes visual-float-two{to{margin-top:10px}}@keyframes visual-float-three{to{margin-bottom:9px}}
.about-grid figure{overflow:hidden}.about-grid figure img{transition:transform 1.1s cubic-bezier(.2,.75,.2,1),filter .6s ease}.about-grid figure:hover img{transform:scale(1.045);filter:grayscale(.1)}
.site-gallery .browser-viewport.is-playing>img{animation:none}
.site-gallery .browser-window:hover .browser-viewport>img,.site-gallery .browser-window:focus-visible .browser-viewport>img{animation:site-scroll-project 16s ease-in-out .35s 1 alternate}
.site-gallery .site-card:nth-child(3n+2) .browser-window:hover .browser-viewport>img,.site-gallery .site-card:nth-child(3n+2) .browser-window:focus-visible .browser-viewport>img{animation-duration:19s}

@media(max-width:650px){.page-loader>i{width:70vw}.motion-field{opacity:.55}.motion-orbit{display:none}.portrait-frame{transform:rotate(1.2deg)}.hero h1 span{animation-delay:.55s}.hero h1 span:last-child,html[dir=rtl] .hero h1 span:last-child{animation-name:hero-type-in;animation-delay:.67s}.page-intro::before{width:52%}.page-intro::after{font-size:42vw;inset-block-end:.03em;opacity:.65}}
@media(prefers-reduced-motion:reduce){.page-loader{display:none}.hero h1 span,.motion-orbit,.motion-orbit::before,.motion-orbit::after,.motion-orbit i,.page-intro::before,.page-intro::after,.page-intro h1,.visual-teaser-piece,.site-gallery .browser-viewport.is-playing>img{animation:none}.motion-field{display:none}.portrait-frame{transform:rotate(1.8deg)}}

/* Editorial portrait treatment. */
.hero-portrait img{filter:saturate(.82) contrast(1.04);object-position:center 24%}
.hero-portrait:hover img{filter:saturate(1) contrast(1.02)}
.about-grid figure{position:relative}
.about-grid figure::before{content:"PORTRAIT / 002";position:absolute;z-index:2;inset-inline-start:-16px;inset-block-start:28px;padding:6px 9px;background:var(--lime);color:#101510;font:700 9px/1 'IBM Plex Mono',monospace;letter-spacing:0;transform:rotate(-90deg) translateX(-100%);transform-origin:top left}
.about-grid figure img{height:auto;max-height:560px;aspect-ratio:4/5;object-fit:cover;object-position:center 16%;filter:saturate(.88) contrast(1.03)}
html[dir=rtl] .about-grid figure::before{inset-inline-start:auto;inset-inline-end:-16px;transform:rotate(90deg) translateX(100%);transform-origin:top right}

/* Visual-work art direction: kinetic type, layered print sheets, editorial rhythm. */
body[data-route="/visual-work/"]{--visual-ink:#0b100d;--visual-paper:#eef0e9}
body[data-route="/visual-work/"] .visual-intro{position:relative;min-height:690px;background:#101914;isolation:isolate}
.visual-intro-grid{position:absolute;inset:0;z-index:-1;opacity:.32;background-image:linear-gradient(color-mix(in srgb,var(--line) 58%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--line) 58%,transparent) 1px,transparent 1px);background-size:96px 96px;mask-image:linear-gradient(90deg,#000,transparent 72%)}
body[data-route="/visual-work/"] .visual-intro::before{content:"VISUAL";position:absolute;z-index:-1;inset-inline-start:-.035em;inset-block-end:-.12em;font:800 clamp(150px,23vw,370px)/.72 var(--display);color:transparent;-webkit-text-stroke:1px color-mix(in srgb,var(--text) 13%,transparent);pointer-events:none;animation:visual-word-pulse 8s ease-in-out infinite alternate}
@keyframes visual-word-pulse{to{transform:translateX(3.5vw);-webkit-text-stroke-color:color-mix(in srgb,var(--lime) 20%,transparent)}}
body[data-route="/visual-work/"] .visual-intro-inner{grid-template-columns:minmax(390px,.9fr) minmax(520px,1.1fr);gap:clamp(28px,5vw,80px);min-height:690px}
.visual-intro-copy{position:relative;z-index:5;padding-block:70px}
body[data-route="/visual-work/"] .visual-intro h1{font-size:clamp(66px,7.2vw,112px);line-height:.84;max-width:760px;margin:24px 0 34px}
body[data-route="/visual-work/"] .visual-intro p:not(.eyebrow){max-width:610px;font-size:17px;line-height:1.7}
.visual-signature{display:block;width:max-content;margin-top:44px;padding-top:10px;border-top:2px solid var(--lime);font:700 10px/1 'IBM Plex Mono',monospace;color:var(--muted)}
.visual-hero-stack{--hero-art-x:0px;--hero-art-y:0px;position:relative;height:620px;isolation:isolate;perspective:1200px}
.visual-hero-stack::after{content:"";position:absolute;z-index:-1;width:62%;aspect-ratio:1;border:1px solid color-mix(in srgb,var(--teal) 45%,transparent);border-radius:50%;inset-inline-end:4%;top:17%;box-shadow:0 0 0 32px color-mix(in srgb,var(--coral) 7%,transparent),0 0 0 68px color-mix(in srgb,var(--lime) 5%,transparent);animation:visual-ring 14s linear infinite}
@keyframes visual-ring{to{transform:rotate(360deg) scale(1.05)}}
.visual-hero-sheet{position:absolute;margin:0;overflow:hidden;background:#09100c;border:1px solid color-mix(in srgb,var(--text) 24%,transparent);box-shadow:0 34px 70px #0009;transition:transform .8s cubic-bezier(.2,.75,.2,1),filter .4s ease;will-change:transform}
.visual-hero-sheet img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.2s cubic-bezier(.2,.75,.2,1)}
.visual-hero-sheet figcaption{position:absolute;inset-inline:0;inset-block-end:0;padding:30px 12px 10px;background:linear-gradient(transparent,#07100de8);color:#fff;font:700 9px/1 'IBM Plex Mono',monospace}
.visual-hero-sheet-main{z-index:3;width:47%;height:82%;inset-inline-end:15%;top:5%;transform:translate(calc(var(--hero-art-x) * .7),calc(var(--hero-art-y) * .7)) rotate(2.5deg)}
.visual-hero-sheet-back{z-index:1;width:40%;height:65%;inset-inline-start:0;top:25%;transform:translate(calc(var(--hero-art-x) * -.45),calc(var(--hero-art-y) * -.45)) rotate(-7deg);filter:saturate(.75) brightness(.8)}
.visual-hero-sheet-front{z-index:4;width:34%;height:46%;inset-inline-end:0;bottom:2%;transform:translate(calc(var(--hero-art-x) * -1),calc(var(--hero-art-y) * .9)) rotate(-2deg)}
.visual-hero-sheet:hover{z-index:6;filter:none}.visual-hero-sheet:hover img{transform:scale(1.045)}
.visual-hero-orbit{position:absolute;z-index:5;inset-inline-end:4%;top:8%;width:12px;height:12px;background:var(--lime);border-radius:50%;box-shadow:0 0 0 7px #101914,0 0 0 8px var(--lime);animation:visual-dot 3.5s ease-in-out infinite alternate}
@keyframes visual-dot{to{transform:translate(-34px,28px);background:var(--coral);box-shadow:0 0 0 7px #101914,0 0 0 8px var(--coral)}}
.visual-motion-ticker{height:76px;display:flex;align-items:center;overflow:hidden;border-bottom:1px solid var(--line);background:var(--coral);color:#111;direction:ltr}
.visual-motion-ticker>div{display:flex;width:max-content;animation:visual-ticker 34s linear infinite}
.visual-motion-ticker span{display:flex;align-items:center;gap:28px;padding-inline-end:28px;white-space:nowrap;font:800 31px/1 var(--display)}
.visual-motion-ticker i{font:normal 17px/1 Arial}
@keyframes visual-ticker{to{transform:translateX(-50%)}}
.visual-section-title{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:30px;margin-bottom:54px;border-bottom:1px solid var(--line);overflow:hidden}
.visual-section-title .section-head{margin-bottom:32px}
.visual-section-title>span{font:800 clamp(110px,15vw,220px)/.67 var(--display);color:transparent;-webkit-text-stroke:1px color-mix(in srgb,var(--text) 20%,transparent);transform:translateY(.08em)}
.website-archive-section{position:relative;overflow:hidden;background:#0d1410}
.website-archive-section::before{content:"WEB / ARCHIVE";position:absolute;inset-inline-end:-.04em;inset-block-start:.12em;color:transparent;-webkit-text-stroke:1px color-mix(in srgb,var(--text) 8%,transparent);font:800 clamp(130px,20vw,320px)/.8 var(--display);writing-mode:vertical-rl;pointer-events:none}
.website-archive-grid{position:relative;z-index:1;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:62px 20px;align-items:start}
.website-archive-item{grid-column:span 3;margin:0;min-width:0;--visual-card-x:50%;--visual-card-y:50%}
.website-archive-item:nth-child(2),.website-archive-item:nth-child(6){transform:translateY(70px)}
.website-archive-item:nth-child(4),.website-archive-item:nth-child(8){transform:translateY(30px)}
.website-archive-item button{position:relative;display:block;width:100%;aspect-ratio:.8;padding:9px;border:1px solid var(--line);background:#19211c;overflow:hidden;box-shadow:0 24px 62px #0004;transition:transform .55s cubic-bezier(.2,.75,.2,1),border-color .3s,box-shadow .4s}
.website-archive-item button::before{content:"";position:absolute;z-index:2;inset:0;background:radial-gradient(240px circle at var(--visual-card-x) var(--visual-card-y),rgba(255,255,255,.18),transparent 64%);opacity:0;transition:opacity .3s;pointer-events:none}
.website-archive-item button::after{content:"";position:absolute;z-index:1;inset:9px;border:1px solid rgba(255,255,255,.12);pointer-events:none}
.website-archive-item img{display:block;width:100%;height:100%;object-fit:contain;background:#f3f4ef;transition:transform .85s cubic-bezier(.2,.75,.2,1),filter .4s}
.website-archive-item:hover button{transform:translateY(-12px) rotate(-.45deg);border-color:var(--teal);box-shadow:0 36px 84px #0008}
.website-archive-item:nth-child(even):hover button{transform:translateY(-12px) rotate(.45deg)}
.website-archive-item:hover button::before{opacity:1}
.website-archive-item:hover img{transform:scale(1.018);filter:saturate(1.08)}
.website-archive-item figcaption{display:grid;grid-template-columns:1fr auto;align-items:end;gap:12px;padding-top:14px}
.website-archive-item figcaption span{font:10px/1.4 'IBM Plex Mono',monospace;text-transform:uppercase;color:var(--teal)}
.website-archive-item figcaption strong{font:700 clamp(17px,1.7vw,24px)/1 var(--display);text-transform:uppercase;text-align:end}
.website-archive-item:hover .poster-view,.website-archive-item button:focus-visible .poster-view{opacity:1;transform:none}
body[data-route="/visual-work/"] .poster-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:70px 22px;align-items:start}
body[data-route="/visual-work/"] .poster-item{position:relative;grid-column:span 3;--visual-card-x:50%;--visual-card-y:50%}
body[data-route="/visual-work/"] .poster-item:nth-child(1){grid-column:span 5}
body[data-route="/visual-work/"] .poster-item:nth-child(2){grid-column:span 3;margin-top:110px}
body[data-route="/visual-work/"] .poster-item:nth-child(3){grid-column:span 4;margin-top:36px}
body[data-route="/visual-work/"] .poster-item:nth-child(4){grid-column:span 4}
body[data-route="/visual-work/"] .poster-item:nth-child(5){grid-column:span 5;margin-top:-46px}
body[data-route="/visual-work/"] .poster-item:nth-child(6){grid-column:span 3;margin-top:90px}
body[data-route="/visual-work/"] .poster-item:nth-child(7){grid-column:2/span 4;margin-top:30px}
body[data-route="/visual-work/"] .poster-item:nth-child(8){grid-column:6/span 6;margin-top:110px}
body[data-route="/visual-work/"] .poster-item button{position:relative;height:auto;aspect-ratio:.707;padding:10px;background:#171e1a;border:1px solid var(--line);overflow:hidden;box-shadow:0 24px 60px #0003;transition:transform .55s cubic-bezier(.2,.75,.2,1),border-color .3s,box-shadow .4s}
body[data-route="/visual-work/"] .poster-item button::after{content:"";position:absolute;inset:0;background:radial-gradient(220px circle at var(--visual-card-x) var(--visual-card-y),rgba(255,255,255,.16),transparent 62%);opacity:0;transition:opacity .3s;pointer-events:none}
body[data-route="/visual-work/"] .poster-item button img{width:100%;height:100%;object-fit:contain;transition:transform .75s cubic-bezier(.2,.75,.2,1),filter .4s}
body[data-route="/visual-work/"] .poster-item:hover button{transform:translateY(-10px) rotate(.45deg);border-color:var(--lime);box-shadow:0 34px 80px #0007}
body[data-route="/visual-work/"] .poster-item:hover button::after{opacity:1}
body[data-route="/visual-work/"] .poster-item:hover button img{transform:scale(1.018);filter:saturate(1.08)}
.poster-view{position:absolute;z-index:2;inset-inline-end:12px;inset-block-end:12px;padding:8px 9px;background:var(--lime);color:#111;font:800 9px/1 'IBM Plex Mono',monospace;transform:translateY(12px);opacity:0;transition:opacity .3s,transform .35s}
.poster-item:hover .poster-view,.poster-item button:focus-visible .poster-view{opacity:1;transform:none}
body[data-route="/visual-work/"] .poster-item figcaption{display:grid;grid-template-columns:1fr auto;align-items:end;padding-top:14px;border-top:1px solid transparent}
body[data-route="/visual-work/"] .poster-item figcaption strong{font:700 clamp(17px,1.7vw,24px)/1 var(--display);text-transform:uppercase}
body[data-route="/visual-work/"] .logo-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:54px 18px}
body[data-route="/visual-work/"] .logo-item{grid-column:span 3}
body[data-route="/visual-work/"] .logo-item:nth-child(2),body[data-route="/visual-work/"] .logo-item:nth-child(6){transform:translateY(42px)}
body[data-route="/visual-work/"] .logo-item>div{position:relative;height:auto;aspect-ratio:1.25;background:var(--visual-paper);transition:transform .45s cubic-bezier(.2,.75,.2,1),background .3s}
body[data-route="/visual-work/"] .logo-item>div::before{content:"";position:absolute;inset:9px;border:1px solid #121a1422;pointer-events:none}
body[data-route="/visual-work/"] .logo-item:hover>div{transform:translateY(-8px);background:#fff}
html[data-theme=light] body[data-route="/visual-work/"] .visual-intro{background:#e7ebe4}
html[data-theme=light] .visual-motion-ticker{color:#111}
html[data-theme=light] .website-archive-section{background:#eef0eb}
html[data-theme=light] .website-archive-item button{background:#dfe5dd;box-shadow:0 22px 50px #2332251a}
html[data-theme=light] body[data-route="/visual-work/"] .poster-item button{background:#e0e5dd;box-shadow:0 22px 50px #2332251a}
@media(max-width:900px){body[data-route="/visual-work/"] .visual-intro-inner{grid-template-columns:minmax(300px,.9fr) minmax(380px,1.1fr);min-height:610px}.visual-hero-stack{height:540px}body[data-route="/visual-work/"] .visual-intro h1{font-size:68px}.website-archive-grid{gap:48px 16px}.website-archive-item:nth-child(n){grid-column:span 4;transform:none}.website-archive-item:nth-child(2),.website-archive-item:nth-child(5),.website-archive-item:nth-child(8){transform:translateY(54px)}body[data-route="/visual-work/"] .poster-grid{gap:48px 16px}body[data-route="/visual-work/"] .poster-item:nth-child(n){grid-column:span 4;margin-top:0}body[data-route="/visual-work/"] .poster-item:nth-child(2),body[data-route="/visual-work/"] .poster-item:nth-child(5),body[data-route="/visual-work/"] .poster-item:nth-child(8){margin-top:60px}body[data-route="/visual-work/"] .logo-item{grid-column:span 4}}
@media(max-width:650px){body[data-route="/visual-work/"] .visual-intro{min-height:auto}body[data-route="/visual-work/"] .visual-intro-inner{display:block;min-height:auto;padding-block-start:0}.visual-intro-copy{padding-block:58px 24px}body[data-route="/visual-work/"] .visual-intro h1{font-size:clamp(50px,15vw,72px);max-width:520px}body[data-route="/visual-work/"] .visual-intro p:not(.eyebrow){font-size:15px}.visual-signature{margin-top:28px}.visual-hero-stack{height:460px;margin-inline:-8px}.visual-hero-sheet-main{width:52%;height:75%;inset-inline-end:12%;top:7%}.visual-hero-sheet-back{width:43%;height:58%;top:27%}.visual-hero-sheet-front{width:38%;height:43%;bottom:1%}.visual-motion-ticker{height:58px}.visual-motion-ticker span{font-size:24px}.visual-section-title{margin-bottom:36px}.visual-section-title>span{font-size:100px}.website-archive-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:38px 10px}.website-archive-item:nth-child(n){grid-column:span 1;transform:none}.website-archive-item:nth-child(even){transform:translateY(34px)}.website-archive-item button{padding:6px}.website-archive-item figcaption{display:flex;flex-direction:column;align-items:flex-start;gap:3px}.website-archive-item figcaption strong{font-size:15px;text-align:start}body[data-route="/visual-work/"] .poster-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:38px 10px}body[data-route="/visual-work/"] .poster-item:nth-child(n){grid-column:span 1;margin-top:0}body[data-route="/visual-work/"] .poster-item:nth-child(even){margin-top:46px}body[data-route="/visual-work/"] .poster-item button{padding:6px}body[data-route="/visual-work/"] .poster-item figcaption{display:flex;align-items:flex-start}body[data-route="/visual-work/"] .poster-item figcaption strong{font-size:15px}.poster-view{display:none}body[data-route="/visual-work/"] .logo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:34px 10px}body[data-route="/visual-work/"] .logo-item{grid-column:span 1}body[data-route="/visual-work/"] .logo-item:nth-child(n){transform:none}body[data-route="/visual-work/"] .logo-item:nth-child(even){transform:translateY(28px)}}
@media(prefers-reduced-motion:reduce){body[data-route="/visual-work/"] .visual-intro::before,.visual-hero-stack::after,.visual-hero-orbit,.visual-motion-ticker>div{animation:none}.visual-hero-sheet{transition:none}}
@media(max-width:650px){.about-grid figure::before{inset-inline-start:8px;inset-block-start:8px;transform:none}html[dir=rtl] .about-grid figure::before{inset-inline-start:auto;inset-inline-end:8px;transform:none}}

/* About page: compact portrait, founder-led narrative and editorial motion. */
body[data-route="/about/"]{--about-x:0deg;--about-y:0deg}
.about-masthead{position:relative;overflow:hidden;isolation:isolate;border-bottom:1px solid var(--line);background:var(--page-intro-bg)}
.about-field{position:absolute;z-index:-1;inset:0;background-image:linear-gradient(90deg,color-mix(in srgb,var(--line) 32%,transparent) 1px,transparent 1px),linear-gradient(color-mix(in srgb,var(--line) 32%,transparent) 1px,transparent 1px);background-size:84px 84px;mask-image:linear-gradient(90deg,#0008,transparent 82%)}
.about-masthead::after{content:"ABOUT";position:absolute;z-index:-1;inset-inline-start:-.04em;inset-block-end:-.14em;font:800 clamp(180px,27vw,430px)/.72 var(--display);color:transparent;-webkit-text-stroke:1px color-mix(in srgb,var(--text) 12%,transparent);pointer-events:none;animation:about-word 9s ease-in-out infinite alternate}
@keyframes about-word{to{transform:translateX(3vw);-webkit-text-stroke-color:color-mix(in srgb,var(--teal) 20%,transparent)}}
.about-masthead-inner{min-height:690px;display:grid;grid-template-columns:minmax(0,1.14fr) minmax(350px,.86fr);gap:clamp(45px,7vw,110px);align-items:center;padding-block:68px}
.about-masthead-copy{position:relative;z-index:3}
.about-masthead h1{font:800 clamp(72px,8.2vw,126px)/.79 var(--display);text-transform:uppercase;letter-spacing:0;margin:32px 0 36px;max-width:830px;text-wrap:balance}
html[lang=fa] .about-masthead h1,html[lang=ar] .about-masthead h1{font-family:'Vazirmatn',Arial,sans-serif;font-size:clamp(54px,6.3vw,96px);font-weight:800;line-height:1.05;text-transform:none}
.about-masthead-copy>p:not(.eyebrow){max-width:720px;font-size:18px;line-height:1.78;color:var(--muted)}
.about-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin-top:48px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.about-meta span{min-height:76px;display:flex;flex-direction:column;justify-content:center;gap:5px;padding:12px 16px;border-inline-end:1px solid var(--line);font:600 11px/1.35 'IBM Plex Mono',monospace;color:var(--text)}
.about-meta span:last-child{border:0}.about-meta b{font:700 9px/1 'IBM Plex Mono',monospace;color:var(--coral)}
.about-portrait{position:relative;margin:0;min-height:560px;perspective:1000px}
.about-portrait-frame{position:absolute;inset:4% 5% 13%;overflow:hidden;background:var(--surface2);box-shadow:var(--shadow);transform:rotateZ(1.5deg) rotateX(var(--about-y)) rotateY(var(--about-x));transition:transform .22s ease-out}
.about-portrait-frame::after{content:"";position:absolute;inset:0;border:1px solid color-mix(in srgb,var(--text) 22%,transparent);pointer-events:none}
.about-portrait img{width:100%;height:100%;object-fit:cover;object-position:center 15%;filter:saturate(.85) contrast(1.03);transition:filter .45s,transform .9s cubic-bezier(.2,.75,.2,1)}
.about-portrait:hover img{filter:saturate(1);transform:scale(1.025)}
.about-portrait-orbit{position:absolute;z-index:2;inset:0 0 8%;border:1px solid color-mix(in srgb,var(--teal) 42%,transparent);border-radius:50%;pointer-events:none;animation:about-orbit 17s linear infinite}
.about-portrait-orbit::before{content:"";position:absolute;inset:13% -7%;border:1px dashed color-mix(in srgb,var(--lime) 35%,transparent);border-radius:50%}
@keyframes about-orbit{to{transform:rotate(360deg)}}
.about-portrait>b{position:absolute;z-index:4;inset-inline-end:0;inset-block-start:12%;padding:7px 9px;background:var(--lime);color:#111;font:800 9px/1 'IBM Plex Mono',monospace}
.about-portrait figcaption{position:absolute;z-index:4;inset-inline-start:0;inset-block-end:0;max-width:82%;padding:13px 15px;background:var(--bg);border:1px solid var(--line);font:700 12px/1.3 'IBM Plex Mono',monospace}
.about-portrait figcaption span{display:block;margin-top:6px;color:var(--muted);font-size:9px;font-weight:500}
.about-story{background:var(--bg)}
.about-story-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(380px,1.1fr);gap:clamp(50px,9vw,150px);align-items:start}
.about-story h2{font:800 clamp(54px,6vw,88px)/.9 var(--display);text-transform:uppercase;letter-spacing:0;margin-top:24px}
html[lang=fa] .about-story h2,html[lang=ar] .about-story h2{font-family:'Vazirmatn',Arial,sans-serif;font-size:clamp(42px,5vw,70px);line-height:1.18;text-transform:none}
.about-story-grid>div:last-child{padding-top:32px;border-top:2px solid var(--teal)}
.about-story p{font-size:18px;line-height:1.9;color:var(--muted);margin:0 0 22px}
.about-principles{position:relative;overflow:hidden}.about-principles::after{content:"03";position:absolute;inset-inline-end:2%;inset-block-end:-.22em;font:800 clamp(180px,24vw,360px)/1 var(--display);color:transparent;-webkit-text-stroke:1px color-mix(in srgb,var(--text) 9%,transparent);pointer-events:none}
.about-principles .section-inner{position:relative;z-index:1}
html[data-theme=light] .about-portrait figcaption{background:#f4f4ef}
@media(max-width:900px){.about-masthead-inner{grid-template-columns:minmax(0,1fr) 320px;gap:32px;min-height:620px}.about-masthead h1{font-size:72px}.about-portrait{min-height:480px}.about-meta{grid-template-columns:1fr}.about-meta span{min-height:54px;border-inline-end:0;border-bottom:1px solid var(--line)}.about-story-grid{grid-template-columns:1fr 1fr;gap:48px}}
@media(max-width:650px){.site-header .brand-mark img{width:45px;height:34px}.about-masthead-inner{display:flex;flex-direction:column;align-items:stretch;min-height:auto;padding-block:58px 38px}.about-masthead h1,html[lang=fa] .about-masthead h1,html[lang=ar] .about-masthead h1{font-size:clamp(46px,13vw,66px);margin:26px 0}.about-masthead-copy>p:not(.eyebrow){font-size:16px}.about-meta{margin-top:34px;grid-template-columns:repeat(3,1fr)}.about-meta span{min-height:68px;padding:10px 8px;border-bottom:0;border-inline-end:1px solid var(--line);font-size:8px}.about-portrait{width:min(360px,100%);min-height:430px;margin:8px auto 0}.about-portrait-frame{inset:3% 4% 14%}.about-portrait-orbit{inset:1% -2% 9%}.about-portrait figcaption{max-width:90%}.about-story-grid{display:block}.about-story-grid>div:last-child{margin-top:36px;padding-top:24px}.about-story p{font-size:16px}.about-principles::after{font-size:58vw}}
@media(prefers-reduced-motion:reduce){.about-masthead::after,.about-portrait-orbit{animation:none}.about-portrait-frame{transform:rotate(1.5deg)}}

/* Readable multiline display type and contrast-aware identity cards. */
.hero h1{line-height:.82}
.page-intro h1{line-height:1.02}
body[data-route="/visual-work/"] .visual-intro h1{line-height:.96}
.about-masthead h1{line-height:.9}
html[lang=fa] .about-masthead h1,html[lang=ar] .about-masthead h1{line-height:1.16}
body[data-route="/visual-work/"] .logo-social-craze-hub>div{background:#101714}
body[data-route="/visual-work/"] .logo-social-craze-hub>div::before{border-color:#ffffff24}
body[data-route="/visual-work/"] .logo-social-craze-hub:hover>div{background:#17211c}
body[data-route="/visual-work/"] .logo-alimila>div{background:#aeb4b0}
body[data-route="/visual-work/"] .logo-alimila>div::before{border-color:#111a}
body[data-route="/visual-work/"] .logo-alimila:hover>div{background:#bcc1be}
@media(max-width:650px){
  .hero h1{line-height:.86}
  .page-intro h1{line-height:1.08}
  body[data-route="/visual-work/"] .visual-intro h1{line-height:1.02}
  .about-masthead h1{line-height:.96}
  html[lang=fa] .about-masthead h1,html[lang=ar] .about-masthead h1{line-height:1.2}
}

/* Home selected work: product storytelling instead of a uniform card row. */
.home-work-section{position:relative;overflow:hidden;background:#0a0d0c}
.home-work-section::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(rgba(201,238,143,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(201,238,143,.035) 1px,transparent 1px);background-size:84px 84px;mask-image:linear-gradient(to bottom,transparent,black 16%,black 84%,transparent)}
.home-work-heading{position:relative;display:flex;align-items:flex-end;justify-content:space-between;gap:40px;margin-bottom:46px}
.home-work-heading .section-head{margin:0}
.home-work-count{padding-bottom:10px;color:var(--muted);font:10px/1.4 'IBM Plex Mono',monospace;direction:ltr}
.home-project-showcase{position:relative;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(340px,.65fr);gap:18px}
.home-project{--project-accent:var(--teal);position:relative;isolation:isolate;display:grid;min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:6px;background:#111613;transition:border-color .3s,transform .45s cubic-bezier(.2,.75,.2,1),box-shadow .45s}
.home-project:hover{transform:translateY(-6px);border-color:color-mix(in srgb,var(--project-accent) 65%,var(--line));box-shadow:0 28px 70px rgba(0,0,0,.3)}
.home-project::after{content:"";position:absolute;z-index:3;inset:0;pointer-events:none;background:radial-gradient(380px circle at var(--card-x,-400px) var(--card-y,-400px),color-mix(in srgb,var(--project-accent) 17%,transparent),transparent 64%);opacity:0;transition:opacity .3s}
.home-project:hover::after{opacity:1}
.home-project-1{grid-row:span 2;grid-template-rows:minmax(390px,1fr) auto;--project-accent:#52e0bd}
.home-project-2,.home-project-3{grid-template-columns:minmax(170px,.92fr) minmax(170px,1.08fr);min-height:310px}
.home-project-2{--project-accent:#f44fa8}
.home-project-3{--project-accent:#f2b242}
.home-project-visual{position:relative;min-width:0;overflow:hidden;background:#10171b}
.home-project-index{position:absolute;z-index:5;inset-block-start:18px;inset-inline-start:18px;padding:5px 7px;background:#0a0d0ccc;color:var(--project-accent);font:600 10px/1 'IBM Plex Mono',monospace;direction:ltr}
.home-project-copy{position:relative;z-index:2;display:grid;grid-template-columns:minmax(180px,.7fr) minmax(240px,1fr) auto;align-items:end;gap:28px;padding:28px;background:#131916;border-top:1px solid var(--line)}
.home-project-copy h3{margin:9px 0 0;font-size:clamp(24px,2.4vw,34px);line-height:1.05}
.home-project-copy p{margin:0;color:var(--muted);font-size:14px;line-height:1.65}
.home-project-link{align-self:center;white-space:nowrap;color:var(--project-accent);font-size:12px;font-weight:700}
.home-project-link b{margin-inline-start:8px}
.home-project-2 .home-project-copy,.home-project-3 .home-project-copy{display:flex;align-items:flex-start;flex-direction:column;gap:12px;padding:25px;border-top:0;border-inline-start:1px solid var(--line)}
.home-project-2 .home-project-copy h3,.home-project-3 .home-project-copy h3{font-size:24px}
.home-project-2 .home-project-copy p,.home-project-3 .home-project-copy p{font-size:13px}
.home-project-2 .home-project-link,.home-project-3 .home-project-link{margin-top:auto;align-self:auto}
.home-project-1 .home-project-visual{display:grid;place-items:center;padding:54px 42px;background:radial-gradient(circle at 76% 18%,rgba(29,88,91,.42),transparent 35%),linear-gradient(145deg,#0d1518,#121b20)}
.project-browser{position:relative;width:100%;overflow:hidden;border:1px solid #3a5555;background:#071018;box-shadow:0 28px 50px rgba(0,0,0,.38);transform:perspective(1000px) rotateX(2deg) rotateY(-2deg);transition:transform .7s cubic-bezier(.2,.75,.2,1)}
.home-project-1:hover .project-browser{transform:perspective(1000px) rotateX(0) rotateY(0) scale(1.015)}
.project-browser>span{height:31px;display:flex;align-items:center;gap:5px;padding:0 10px;border-bottom:1px solid #294044;background:#121e24}
.project-browser>span i{width:6px;height:6px;border-radius:50%;background:#f7a492}
.project-browser>span i:nth-child(2){background:#e9d7a1}.project-browser>span i:nth-child(3){background:#8cd7cc}
.project-browser>span b{margin-inline-start:auto;color:#7f9a9c;font:8px 'IBM Plex Mono',monospace}
.project-browser img{width:100%;aspect-ratio:2/1;object-fit:cover;object-position:left top;filter:saturate(1.14) contrast(1.05)}
.project-signal{position:absolute;z-index:4;inset-inline-end:21px;inset-block-end:20px;display:flex;align-items:center;gap:8px;padding:6px 9px;background:#08110fe8;border:1px solid #285447;color:#8cd7cc;font:8px 'IBM Plex Mono',monospace;direction:ltr}
.project-signal i{width:5px;height:5px;border-radius:50%;background:#52e0bd;box-shadow:0 0 0 0 rgba(82,224,189,.55);animation:project-pulse 1.8s infinite}
.project-signal b{color:#eef7f1}
.home-project-2 .home-project-visual{display:grid;place-items:center;min-height:310px;background:radial-gradient(circle at 50% 55%,rgba(245,67,164,.27),transparent 41%),linear-gradient(145deg,#261425,#121016)}
.project-phone{position:relative;z-index:2;width:128px;height:265px;padding:8px 6px 7px;border:1px solid #7d5572;border-radius:23px;background:#07070a;box-shadow:0 22px 42px rgba(0,0,0,.48);transform:rotate(-4deg);transition:transform .7s cubic-bezier(.2,.75,.2,1)}
.home-project-2:hover .project-phone{transform:rotate(0deg) translateY(-5px)}
.project-phone img{width:100%;height:100%;border-radius:17px;object-fit:cover;object-position:top}
.project-phone>span{position:absolute;z-index:2;inset-block-start:12px;left:50%;width:38px;height:6px;transform:translateX(-50%);border-radius:9px;background:#09090b}
.project-phone>b{position:absolute;z-index:2;inset-block-start:14px;inset-inline-start:15px;color:#fff;font:6px 'IBM Plex Mono',monospace}
.project-orbit{position:absolute;inset:50%;width:240px;height:240px;transform:translate(-50%,-50%);border:1px solid rgba(244,79,168,.22);border-radius:50%}
.project-orbit::before,.project-orbit::after{content:"";position:absolute;inset:24px;border:1px dashed rgba(151,88,244,.25);border-radius:50%}.project-orbit::after{inset:55px}
.project-orbit i{position:absolute;width:5px;height:5px;border-radius:50%;background:#f44fa8}.project-orbit i:first-child{top:35px;right:25px}.project-orbit i:nth-child(2){bottom:18px;left:64px}.project-orbit i:last-child{top:110px;left:-3px}
.home-project-3 .home-project-visual{display:grid;place-items:center;min-height:310px;padding:24px;background:radial-gradient(circle at 82% 8%,rgba(242,178,66,.18),transparent 31%),linear-gradient(145deg,#1a242b,#11181d)}
.home-project-3 .home-project-visual::before{content:"";position:absolute;inset:0;background:linear-gradient(rgba(242,178,66,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(242,178,66,.055) 1px,transparent 1px);background-size:28px 28px;mask-image:linear-gradient(#000,transparent 92%)}
.project-trade-board{position:relative;z-index:2;width:100%;height:100%;min-height:248px;border:1px solid #53616a;background:#121a20;box-shadow:0 24px 50px rgba(0,0,0,.34);direction:ltr;overflow:hidden;transition:transform .6s cubic-bezier(.2,.75,.2,1)}
.home-project-3:hover .project-trade-board{transform:translateY(-4px)}
.trade-board-head{height:32px;display:flex;align-items:center;justify-content:space-between;padding:0 11px;border-bottom:1px solid #34434c;color:#809099;font:600 7px/1 'IBM Plex Mono',monospace}.trade-board-head b{color:#f2b242;font-weight:600}
.trade-brand{position:absolute;z-index:3;inset-inline-start:14px;inset-block-start:48px;width:58%;padding:12px 13px 10px;border-inline-start:2px solid #f2b242;background:#18232a}.trade-brand small{display:block;margin-top:7px;color:#8f9ca4;font:6px/1 'IBM Plex Mono',monospace}.project-trade-logo{display:block;width:100%;height:auto;max-height:42px;object-fit:contain;object-position:left center;filter:drop-shadow(0 10px 16px rgba(0,0,0,.26))}
.project-trade-map{position:absolute;inset:94px 14px 55px;direction:ltr;background:radial-gradient(circle at 50% 54%,rgba(242,178,66,.09),transparent 44%)}
.project-trade-map::before,.project-trade-map::after{content:"";position:absolute;height:1px;background:linear-gradient(90deg,transparent,#f2b242,transparent);transform-origin:left center}.project-trade-map::before{width:78%;top:35%;left:9%;transform:rotate(14deg)}.project-trade-map::after{width:68%;top:67%;left:18%;transform:rotate(-14deg)}
.project-trade-map i{position:absolute;width:8px;height:8px;border:1px solid #f2b242;border-radius:50%;background:#121a20;box-shadow:0 0 16px rgba(242,178,66,.52)}.project-trade-map i:first-child{left:7%;top:24%}.project-trade-map i:nth-child(2){right:7%;top:47%}.project-trade-map i:nth-child(3){left:31%;bottom:12%}
.project-trade-map span{position:absolute;color:#c5ced2;font:7px/1 'IBM Plex Mono',monospace}.project-trade-map span:nth-of-type(1){left:0;top:4%}.project-trade-map span:nth-of-type(2){right:0;top:28%}.project-trade-map span:nth-of-type(3){left:25%;bottom:0}
.trade-flow{position:absolute;z-index:3;inset-inline:12px;inset-block-end:12px;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #34434c}.trade-flow span{padding-top:8px;color:#aab5ba;font:6px/1.2 'IBM Plex Mono',monospace}.trade-flow b{display:block;margin-bottom:4px;color:#f2b242;font-size:7px}.project-trade-caption{position:absolute;z-index:4;inset-inline-end:32px;inset-block-start:31px;padding:4px 6px;background:#101619e6;color:#d3b979;font:6px/1 'IBM Plex Mono',monospace;direction:ltr}
html[data-theme=light] .home-work-section{background:#edf1eb}
html[data-theme=light] .home-project{background:#f8faf7}
html[data-theme=light] .home-project-copy{background:#f8faf7}
@keyframes project-pulse{70%{box-shadow:0 0 0 7px rgba(82,224,189,0)}100%{box-shadow:0 0 0 0 rgba(82,224,189,0)}}
@media(max-width:980px){.home-project-showcase{grid-template-columns:1fr 1fr}.home-project-1{grid-column:span 2;grid-row:auto}.home-project-2,.home-project-3{grid-template-columns:1fr;grid-template-rows:290px auto}.home-project-2 .home-project-copy,.home-project-3 .home-project-copy{border-inline-start:0;border-top:1px solid var(--line)}}
@media(max-width:650px){.home-work-heading{display:block;margin-bottom:30px}.home-work-count{display:none}.home-project-showcase{display:block}.home-project{margin-bottom:16px}.home-project-1{display:block}.home-project-1 .home-project-visual{min-height:290px;padding:46px 18px 32px}.home-project-1 .home-project-copy,.home-project-2 .home-project-copy,.home-project-3 .home-project-copy{display:flex;align-items:flex-start;flex-direction:column;gap:12px;padding:21px}.home-project-copy p{font-size:13px}.home-project-link{margin-top:8px;align-self:auto}.home-project-2,.home-project-3{display:grid;grid-template-columns:1fr;grid-template-rows:270px auto}.home-project:hover{transform:none}}
@media(prefers-reduced-motion:reduce){.project-signal i{animation:none}.project-browser,.project-phone{transition:none}.home-project:hover{transform:none}}

/* Performance: native fonts render immediately; intensive motion stays on capable screens. */
:root{--display:"Arial Narrow",Impact,system-ui,sans-serif}
body{font-family:system-ui,-apple-system,"Segoe UI",Arial,sans-serif}
html[lang=fa] body,html[lang=ar] body{font-family:Tahoma,"Segoe UI",Arial,sans-serif}
@media(max-width:900px),(pointer:coarse){
  .page-loader{display:none}
  .motion-field{display:none}
  .hero h1 span,.discipline-ticker>div,.motion-orbit,.motion-orbit::before,.motion-orbit::after,.motion-orbit i,.page-intro::before,.page-intro::after,.page-intro h1,.visual-teaser-piece,.about-masthead::after,.about-portrait-orbit{animation:none}
  .visual-teaser-piece,.visual-hero-sheet{will-change:auto}
}

/* Responsive guardrails shared by every locale and route. */
html,body{max-width:100%;overflow-x:clip}
body{min-width:0}
.section-inner,.hero-inner,.site-header,.site-footer{min-width:0}
.hero-copy,.page-intro .section-inner,.section-head,.home-project-copy,.site-card-body{min-width:0}
.hero-role,.hero-lead,.section-head>p,.page-intro p,.home-project-copy p{overflow-wrap:anywhere}
@media(max-width:650px){
  .section-inner,.hero-inner{width:min(calc(100% - 28px),var(--max))}
  .site-header{padding-inline:14px}
  .site-header .header-actions{min-width:0}
  .language-picker summary{max-width:132px}
  .language-picker summary .language-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .hero h1,.page-intro h1,.section h2,.about-masthead h1{overflow-wrap:anywhere;word-break:normal}
  .home-project-visual,.feature-media,.browser-window,.visual-hero-stack{max-width:100%}
}
@media(max-width:370px){
  .site-header{gap:8px;padding-inline:10px}
  .site-header .brand-mark img{width:40px;height:auto}
  .language-picker summary{min-width:44px;max-width:96px;padding-inline:7px}
  .language-picker summary .language-name{display:none}
  .section-inner,.hero-inner{width:calc(100% - 20px)}
  .hero h1{font-size:clamp(58px,20vw,74px)}
  .hero-actions .button{width:100%}
}
