/* Shared public design system; editable accent colours remain the source. */
@media screen {
:root{--muted:#a4afcb;--border:rgba(134,165,225,.21);--surface:linear-gradient(155deg,rgba(24,36,61,.7),rgba(8,13,25,.94))}
html{scroll-padding-top:100px}body{text-rendering:optimizeLegibility}main{isolation:isolate}
main>section[id]{border-top:1px solid var(--border)}h1,h2,h3{text-wrap:balance;overflow-wrap:break-word}p{text-wrap:pretty}
a,button,input,textarea,summary{-webkit-tap-highlight-color:transparent}button,input,textarea,select{font:inherit}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent2);outline-offset:5px}
a[href^="mailto:"],.article-body a{overflow-wrap:anywhere}img{max-width:100%}[hidden]{display:none!important}
main code{overflow-wrap:anywhere}main pre code{overflow-wrap:normal;white-space:pre}
main p,main li,.ans,details.faq summary{overflow-wrap:anywhere}
.grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))}
body>nav[aria-label="Основная навигация"]{background:rgba(5,7,14,.9)!important;box-shadow:0 8px 32px rgba(0,0,0,.18)}
[data-navlinks] a{padding:10px 12px!important;font-size:13px!important}[data-navlinks] a:hover{color:var(--text)!important;background:rgba(91,157,255,.09)}
[data-burger]{margin-left:auto}
[data-resume-cols]>*,[data-resume-grid]>*{min-width:0}
@media(max-width:760px){[data-resume-cols]{grid-template-columns:minmax(0,1fr)!important;gap:24px!important}}
.card,.tile{background:var(--surface);border-radius:20px;box-shadow:0 14px 45px -30px #000}.tile{display:flex;flex-direction:column}.tile h3{line-height:1.45}.tile p{flex:1}
.btn-pri,.btn-ghost{min-height:48px;justify-content:center;text-align:center;line-height:1.5}.btn-pri{box-shadow:0 8px 28px -15px var(--accent2)}.btn-ghost{background:rgba(91,157,255,.04)}
.crumb{display:flex;flex-wrap:wrap;gap:10px;align-items:center;font:12px/1.6 'JetBrains Mono',monospace;color:var(--muted);margin-bottom:28px;padding-top:0!important}.crumb a{color:var(--muted)}.crumb [aria-current]{color:var(--accent2)}
.wrap{max-width:1180px}.lp-h1{line-height:1.22}.lp-h2{line-height:1.4}details.faq{background:var(--surface)}details.faq[open]{border-color:rgba(91,157,255,.5)}details.faq summary{min-height:64px;line-height:1.5}.ans{max-width:78ch}
#home h1{line-height:1.18!important}
#services [role="button"],#projects>div>div[style*="border:1px"],#process>div>div[style*="border:1px"],#clients>div>div[style*="border:1px"],#stack>div>div[style*="border:1px"],#find a[style*="border:1px"]{background:var(--surface)!important;box-shadow:0 14px 45px -30px #000}
#services [role="button"] h3{line-height:1.45!important}#resume [data-resume-grid]{border-radius:24px}
#contacts form{border:1px solid var(--border);border-radius:20px;padding:clamp(16px,3vw,28px);background:rgba(11,15,29,.6)}#contacts input,#contacts textarea{background:rgba(5,7,14,.8)!important;min-height:48px}
.journal-shell{position:relative;z-index:1;max-width:1180px;margin:0 auto;padding:110px clamp(20px,4vw,44px) 40px}
.journal-hero{border-bottom:1px solid var(--border);padding:12px 0 32px}.journal-hero h1{font:800 clamp(32px,4.6vw,56px)/1.18 Unbounded,sans-serif;letter-spacing:-.04em;margin:18px 0 22px}.journal-hero h1 span{color:var(--accent2)}.journal-hero>p{max-width:65ch;font-size:18px;color:var(--muted);margin:0 0 28px}
.journal-hero-bottom{display:flex;align-items:center;justify-content:space-between;gap:22px;flex-wrap:wrap}.journal-author-link,.post-author a:first-child{display:flex;align-items:center;gap:12px;color:var(--text)}.journal-author-link img,.post-author img{border-radius:50%;object-fit:cover;flex:none;border:1px solid var(--border)}.journal-author-link small,.post-author small{display:block;color:var(--muted);font-size:12px;margin-top:3px}.journal-count{font:12px 'JetBrains Mono',monospace;color:var(--muted)}
.journal-topics{display:flex;gap:10px;flex-wrap:wrap;margin:26px 0}.journal-topics a{border:1px solid var(--border);border-radius:10px;padding:10px 14px;color:var(--text);font-size:13px;background:rgba(11,15,29,.6)}.journal-topics a:hover{border-color:var(--accent2)}.journal-topics span{color:var(--accent2);margin-left:7px}
.journal-tools{display:flex;align-items:end;justify-content:space-between;gap:20px;margin:24px 0 36px}.journal-tools label{flex:1;max-width:600px;font-size:12px;color:var(--muted)}.journal-tools input{display:block;margin-top:8px}.journal-tools p{font-size:12px;color:var(--muted);white-space:nowrap}
.journal-group{margin:44px 0;scroll-margin-top:100px}.journal-group-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 20px;padding-bottom:14px;border-bottom:1px solid var(--border)}.journal-group-heading h2{font:600 clamp(18px,2vw,23px)/1.45 Unbounded,sans-serif;margin:0}.journal-group-heading span,.journal-group-heading>a{color:var(--muted);font-size:12px}
.journal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.journal-card{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:20px;background:var(--surface);overflow:hidden;transition:border-color .2s,transform .2s;min-width:0}.journal-card:hover{border-color:rgba(91,157,255,.55);transform:translateY(-3px)}
.journal-card-cover{display:block;aspect-ratio:16/9;overflow:hidden;border-bottom:1px solid var(--border)}.journal-card-cover img{width:100%;height:100%;object-fit:cover;object-position:top}.journal-card-index{padding:22px 24px 0;font:24px 'JetBrains Mono',monospace;color:var(--accent2)}.journal-card-index span{font-size:10px;color:var(--muted);letter-spacing:.1em;margin-left:8px}
.journal-card-content{padding:24px;display:flex;flex-direction:column;flex:1}.journal-meta{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center;font:11px/1.6 'JetBrains Mono',monospace;color:var(--muted)}.journal-meta .chip{font-size:10px;padding:4px 10px}.journal-card h3{font:600 19px/1.45 Unbounded,sans-serif;margin:16px 0 12px}.journal-card h3 a{color:var(--text)}.journal-card h3 a:hover{color:var(--accent2)}.journal-card p{font-size:14px;line-height:1.75;margin:0 0 20px;color:var(--muted)}
.journal-tags{display:flex;flex-wrap:wrap;gap:8px 12px;color:var(--violet);font:10px/1.8 'JetBrains Mono',monospace;margin:10px 0 20px;overflow-wrap:anywhere}.journal-card .journal-tags{margin-top:auto}.journal-read{display:inline-flex;align-items:center;justify-content:space-between;gap:14px;min-height:44px;font-weight:600;font-size:13px;color:var(--accent2)}.journal-card .journal-read{border-top:1px solid var(--border);padding-top:12px}.journal-empty{border:1px dashed var(--border);padding:24px;border-radius:16px;color:var(--muted)}
.journal-cta{display:flex;align-items:center;justify-content:space-between;gap:32px;border:1px solid var(--border);border-radius:24px;padding:clamp(24px,4vw,40px);background:linear-gradient(120deg,rgba(55,213,255,.08),rgba(91,157,255,.04));margin:48px 0}.journal-cta h2{font:600 clamp(19px,2.5vw,26px)/1.5 Unbounded,sans-serif;margin:12px 0}.journal-cta p{color:var(--muted);font-size:15px;max-width:62ch;margin:0}.journal-actions{display:flex;flex-direction:column;gap:10px;flex-shrink:0}
.post-hero{max-width:960px;padding:12px 0 32px}.post-hero h1{font:800 clamp(28px,3.7vw,45px)/1.3 Unbounded,sans-serif;letter-spacing:-.025em;margin:22px 0}.post-lead{max-width:70ch;font-size:18px;line-height:1.75;color:var(--muted);margin:0 0 18px}.post-date{font:11px/1.8 'JetBrains Mono',monospace;color:var(--muted)}
.post-layout{display:grid;grid-template-columns:minmax(0,740px) minmax(220px,1fr);gap:44px;align-items:start;border-top:1px solid var(--border);padding-top:34px}.post-cover{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;object-position:top;border-radius:18px;border:1px solid var(--border);margin-bottom:26px}
.article-body{overflow-wrap:anywhere}.article-body p,.article-body li{color:var(--muted);font-size:16px;line-height:1.9}.article-body strong{color:var(--text)}.article-body p{margin:0 0 20px!important}.article-body h2{font:600 clamp(20px,2.4vw,26px)/1.5 Unbounded,sans-serif!important;margin:36px 0 16px!important;scroll-margin-top:110px}.article-body h2:first-child{margin-top:0!important}.article-body h3{line-height:1.5!important}.article-body a{text-decoration:underline;text-underline-offset:4px;text-decoration-color:rgba(55,213,255,.4)}.article-body img{width:100%;height:auto;border-radius:12px}.article-body pre,.article-body .tablewrap{max-width:100%;overflow-x:auto}.article-body code{font-size:.86em}
.post-sidebar{position:sticky;top:102px;display:flex;flex-direction:column;gap:24px}.post-toc,.post-services{border:1px solid var(--border);border-radius:16px;padding:20px;background:rgba(11,15,29,.65)}.post-toc summary{cursor:pointer;font:600 13px/1.5 Unbounded,sans-serif}.post-toc ol{padding:0;list-style:none;margin:16px 0 0;display:flex;flex-direction:column;gap:14px}.post-toc a{display:block;color:var(--muted);font-size:12px;line-height:1.8}.post-toc a:hover{color:var(--accent2)}.post-toc .toc-sub{padding-left:12px}
.post-services h2{font:600 13px/1.6 Unbounded,sans-serif;margin:12px 0}.post-services>a:not(.journal-read){display:block;padding:12px 0;border-bottom:1px solid var(--border);font-size:12px;color:var(--muted)}.post-services .kick{font-size:9px;letter-spacing:1px}.post-author{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;border-top:1px solid var(--border);padding:24px 0;margin-top:32px}.post-author a:first-child{font-size:14px}.journal-related{grid-template-columns:repeat(3,minmax(0,1fr))}.journal-related .journal-card h3{font-size:15px}
.reading-progress{position:fixed;top:73px;left:0;right:0;height:2px;z-index:61;pointer-events:none}.reading-progress span{display:block;height:100%;width:100%;background:var(--accent2);transform:scaleX(0);transform-origin:left}
@media(min-width:1100px){[data-hero]{min-height:760px!important;max-height:1000px}}
@media(max-width:900px){.post-layout{grid-template-columns:minmax(0,1fr);gap:24px}.post-sidebar{position:static;grid-row:1}.post-toc{padding:16px 20px}.post-toc ol{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 20px}.journal-related{grid-template-columns:repeat(2,minmax(0,1fr))}.journal-cta{align-items:stretch;flex-direction:column}.journal-actions{flex-direction:row;flex-wrap:wrap}}
@media(max-width:640px){main [style*="grid-template-columns:repeat("]{grid-template-columns:minmax(0,1fr)!important}[data-hero]{gap:24px!important;padding-bottom:36px!important}main>section[id]{padding-top:48px!important;padding-bottom:48px!important}#home h1{font-size:clamp(30px,7.4vw,42px)!important}#mobile-menu{overflow-y:auto}.journal-shell{padding-top:100px}.journal-hero h1{font-size:clamp(27px,7.5vw,40px)}.journal-hero>p,.post-lead{font-size:16px}.journal-grid,.journal-related{grid-template-columns:minmax(0,1fr)}.journal-card-content{padding:20px}.journal-card h3{font-size:17px}.journal-tools{align-items:stretch;flex-direction:column;gap:0}.journal-tools input{font-size:16px}.journal-tools p{margin:10px 0 0}.journal-topics{gap:8px}.journal-topics a{font-size:11px;padding:10px 12px}.post-hero h1{font-size:clamp(25px,6.5vw,34px)}.post-toc ol{display:flex}.article-body p,.article-body li{font-size:15.5px;line-height:1.85}.journal-actions{flex-direction:column}.journal-group-heading{align-items:baseline}.journal-group-heading h2{font-size:17px}.journal-count{font-size:11px}.journal-cta{border-radius:18px}.post-layout{padding-top:24px}.post-author small{max-width:35ch}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{animation:none!important;transition:none!important}}
}
