:root{--ink:#101817;--paper:#f4f1e8;--paper-deep:#e8e2d3;--line:#c9c3b5;--muted:#5e6662;--accent:#dd593b;--accent-deep:#bd4128;--radius:3px;--measure:65ch;--font-sans:"Vazirmatn", system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, monospace}*{box-sizing:border-box}html{background:var(--paper);color:var(--ink);font-family:var(--font-sans);line-height:1.8;scroll-behavior:smooth}body{min-height:100dvh;margin:0;display:flex;flex-direction:column}a{color:inherit;text-decoration:none}img{max-width:100%;height:auto}.site-header,main,.site-footer{width:min(100% - 2rem,72rem);margin-inline:auto}.site-header{min-height:5.5rem;display:flex;align-items:center;gap:1.25rem;border-block-end:1px solid var(--line)}.site-title{color:var(--ink);font-family:var(--font-mono);font-size:.98rem;font-weight:700;letter-spacing:-.04em;white-space:nowrap}.site-title::after{content:"_";color:var(--accent)}.site-title:hover{color:var(--accent-deep)}.site-nav{margin-inline-start:auto}.site-nav ul{margin:0;padding:0;display:flex;align-items:center;gap:clamp(.75rem,2vw,1.5rem);list-style:none}.site-nav a{color:var(--muted);font-size:.89rem;padding-block:.3rem;border-block-end:1px solid transparent}.site-nav a:hover,.site-nav a[aria-current=page]{color:var(--ink);border-color:var(--accent)}.lang-switch{padding:.25rem .65rem;border:1px solid var(--ink);color:var(--ink);font-family:var(--font-mono);font-size:.73rem;line-height:1.4}.lang-switch:hover{background:var(--ink);color:var(--paper)}.eyebrow,.hero-kicker{margin:0 0 .75rem;color:var(--accent-deep);font-family:var(--font-mono);font-size:.7rem;font-weight:700;letter-spacing:.07em;line-height:1.5;text-transform:uppercase}h1,h2,h3{margin-top:0;color:var(--ink);font-weight:800;letter-spacing:-.04em;line-height:1.22}h1{max-width:17ch;margin-bottom:1.35rem;font-size:clamp(2.55rem,6.2vw,5.8rem)}h2{margin-bottom:1rem;font-size:clamp(1.85rem,3.5vw,3.2rem)}h3{margin-bottom:.5rem;font-size:1.12rem}.btn{display:inline-flex;align-items:center;gap:1.25rem;border:1px solid var(--ink);padding:.72rem 1rem;color:var(--ink);font-size:.92rem;font-weight:700;transition:background .18s,color .18s,transform .18s}.btn:hover{transform:translateY(-2px);background:var(--ink);color:var(--paper)}.btn-primary{background:var(--ink);color:var(--paper)}.btn-primary:hover{background:var(--accent);border-color:var(--accent)}main{flex:1;padding-block:clamp(2.5rem,6vw,5rem)}.hero{min-height:clamp(31rem,70vh,43rem);display:flex;flex-direction:column;justify-content:center;padding-block:clamp(3rem,8vw,7rem);border-block-end:1px solid var(--line)}.hero-copy{max-width:51rem}.hero-sub{max-width:59ch;margin:0;color:#3d4541;font-size:clamp(1.02rem,1.5vw,1.18rem)}.hero-actions{display:flex;flex-wrap:wrap;gap:.7rem;margin-block-start:2rem}.hero-note{display:flex;align-items:center;gap:.55rem;width:fit-content;max-width:34rem;margin-block-start:clamp(3rem,8vw,6rem);border-block-start:1px solid var(--line);padding-block-start:.9rem;color:var(--muted);font-size:.83rem}.hero-note p{margin:0}.status-dot{width:.55rem;height:.55rem;flex:none;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 17%,transparent)}.home-section{padding-block:clamp(4rem,8vw,7rem);border-block-end:1px solid var(--line)}.section-intro{max-width:43rem;margin-block-end:2.5rem}.section-intro>p:last-child{margin:0;color:var(--muted)}.section-intro.compact{margin-block-end:1.6rem}.card-grid{display:grid;grid-template-columns:repeat(3,1fr);border-block-start:1px solid var(--ink)}.card{min-height:15rem;padding:1.3rem 1.3rem 1.3rem 0;border-block-end:1px solid var(--ink)}.card:not(:nth-child(3n+1)){padding-inline-start:1.3rem;border-inline-start:1px solid var(--ink)}.service-number{display:block;margin-block-end:2.75rem;color:var(--accent-deep);direction:ltr;font-family:var(--font-mono);font-size:.7rem}.card p{margin:0;color:var(--muted);font-size:.9rem}.section-more{margin:1.5rem 0 0}.section-more a{color:var(--accent-deep);font-size:.9rem;font-weight:700}.section-more a:hover{color:var(--ink)}.process-section{display:grid;grid-template-columns:minmax(13rem,.8fr)minmax(20rem,1.2fr);gap:clamp(2rem,9vw,9rem);background:var(--ink);color:var(--paper);margin-inline:calc((100vw - min(100vw - 2rem,72rem))/-2);padding-inline:max(1rem,calc((100vw - min(100vw - 2rem,72rem))/2))}.process-section h2,.process-section h3{color:var(--paper)}.process-section .eyebrow{color:#f28a70}.process-list{display:grid;gap:1.2rem;margin:0;padding:0;list-style:none}.process-list li{display:grid;grid-template-columns:3rem 1fr;gap:1rem;padding-block-end:1.2rem;border-block-end:1px solid #42504d}.process-list li:last-child{padding-bottom:0;border:0}.process-list li>span{color:#f28a70;direction:ltr;font-family:var(--font-mono);font-size:.72rem}.process-list h3{margin-bottom:.25rem}.process-list p{margin:0;color:#cad0ca;font-size:.92rem}.work-section{display:grid;grid-template-columns:minmax(15rem,.8fr)minmax(19rem,1.2fr);gap:clamp(2rem,9vw,9rem)}.repo-list,.note-list,.content-list{margin:0;padding:0;list-style:none}.repo-list{border-block-start:1px solid var(--ink)}.repo-list li{display:grid;grid-template-columns:minmax(10rem,.75fr)1.25fr;gap:1rem;padding-block:1rem;border-block-end:1px solid var(--line)}.repo-list a{color:var(--accent-deep);direction:ltr;font-family:var(--font-mono);font-size:.9rem;font-weight:700;text-align:start}.repo-list a:hover{color:var(--ink)}.repo-desc{color:var(--muted);font-size:.88rem}.note-list{border-block-start:1px solid var(--ink)}.note-list li{display:grid;grid-template-columns:7rem 1fr;gap:1rem;padding-block:.8rem;border-block-end:1px solid var(--line)}.note-list time{color:var(--muted);direction:ltr;font-family:var(--font-mono);font-size:.78rem;text-align:start}.note-list a{color:var(--ink);font-weight:700}.note-list a:hover{color:var(--accent-deep)}.contact-panel{margin-block-start:clamp(4rem,8vw,7rem);padding:clamp(2rem,6vw,5rem);background:var(--paper-deep)}.contact-panel h2{max-width:20ch}.contact-panel>p:not(.eyebrow){max-width:53ch;color:var(--muted)}.page-header{max-width:var(--measure);margin-block-end:2rem}.page-desc{color:var(--muted)}.page-content{max-width:var(--measure)}.page-content h2{margin-block:2.5rem 1rem;font-size:1.5rem}.page-content h3{margin-block:2rem .5rem}.page-content a{color:var(--accent-deep);text-decoration:underline;text-underline-offset:.18em}.page-content blockquote{margin-inline:0;padding-inline-start:1rem;border-inline-start:3px solid var(--accent);color:var(--muted)}.page-content pre{overflow-x:auto;padding:1rem;background:var(--ink);color:#e5eee7;direction:ltr;font-family:var(--font-mono);font-size:.88rem;text-align:left}.page-content code{font-family:var(--font-mono);font-size:.88em}.page-content :not(pre)>code{padding:.1em .35em;background:var(--paper-deep)}.page-content table{width:100%;border-collapse:collapse}.page-content th,.page-content td{padding:.55rem .7rem;border:1px solid var(--line);text-align:start}.note-meta{color:var(--muted)}.tag{display:inline-block;margin-inline-start:.3rem;padding-inline:.45rem;border:1px solid var(--line);border-radius:100px;font-family:var(--font-mono);font-size:.75rem}.note-footer{margin-block-start:2.5rem;padding-block-start:1rem;border-block-start:1px solid var(--line)}.note-footer a{color:var(--accent-deep)}.note-year h2{margin-block:2rem .6rem;color:var(--muted);font-family:var(--font-mono);font-size:1rem}.site-footer{display:flex;justify-content:space-between;gap:1.5rem;padding-block:1.5rem;border-block-start:1px solid var(--line);color:var(--muted);font-size:.82rem}.footer-links{display:flex;gap:1.2rem}.footer-links a:hover{color:var(--accent-deep)}.colophon{margin:0}@media(max-width:720px){.site-header{min-height:4.5rem}.site-nav{display:none}.lang-switch{margin-inline-start:auto}.card-grid,.work-section,.process-section{grid-template-columns:1fr}.card,.card:not(:nth-child(3n+1)){min-height:auto;padding:1.25rem 0;border-inline-start:0}.service-number{margin-block-end:1rem}.process-section{gap:2.5rem}.repo-list li{grid-template-columns:1fr;gap:.25rem}.note-list li{grid-template-columns:1fr;gap:.2rem}.site-footer{flex-direction:column;gap:.6rem}.footer-links{flex-wrap:wrap}}@media(prefers-reduced-motion:no-preference){.status-dot{animation:breathe 2.2s ease-in-out infinite}@keyframes breathe{50%{transform:scale(.75);opacity:.55}}}