:root { --ink:#19312e; --muted:#61716d; --forest:#183f3a; --sage:#dfe8df; --paper:#f8f6f1; --white:#fff; --terracotta:#c9694b; --terracotta-pale:#f2e0d7; --line:#d9dfd8; --accent-on-dark:var(--accent-on-dark); --serif:"Cormorant Garamond", Georgia, serif; --sans:Manrope, Arial, sans-serif; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
section[id] { scroll-margin-top:88px; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:var(--sans); font-size:16px; line-height:1.6; }
a { color:inherit; text-decoration:none; }
.container { width:min(1200px, calc(100% - 96px)); margin:0 auto; }
.section { padding:116px 0; }
.skip-link { position:absolute; left:-999px; top:12px; background:var(--white); padding:10px 16px; z-index:10; }
.skip-link:focus { left:12px; }
.site-header { position:sticky; top:0; z-index:5; background:rgba(248,246,241,.93); border-bottom:1px solid rgba(217,223,216,.7); backdrop-filter:blur(14px); }
.header-inner { min-height:72px; display:flex; align-items:center; justify-content:space-between; }
.brand { font-size:13px; font-weight:800; letter-spacing:-.02em; white-space:nowrap; }
.site-nav { display:flex; align-items:center; gap:32px; font-size:13px; font-weight:700; }
.site-nav a { transition:color .2s ease; } .site-nav a:hover { color:var(--terracotta); }
.contents-menu { position:relative; }.contents-menu summary { display:flex; align-items:center; gap:7px; cursor:pointer; list-style:none; }.contents-menu summary::-webkit-details-marker { display:none; }.contents-menu summary span { color:var(--terracotta); transition:transform .2s ease; }.contents-menu[open] summary span { transform:rotate(180deg); }.contents-menu-list { position:absolute; top:calc(100% + 19px); right:0; display:grid; width:270px; max-height:calc(100vh - 110px); overflow-y:auto; padding:10px 0; background:var(--white); border:1px solid var(--line); box-shadow:0 16px 35px rgba(25,49,46,.14); }.contents-menu-list a { display:flex; gap:12px; padding:10px 16px; font-size:12px; }.contents-menu-list a span { width:20px; color:var(--terracotta); font-size:10px; letter-spacing:.08em; }
.nav-contact { border:1px solid var(--ink); border-radius:30px; padding:9px 14px; } .nav-contact:hover { background:var(--ink); color:#fff!important; }
.menu-toggle { display:none; border:0; background:transparent; font:700 13px var(--sans); color:var(--ink); }
.hero { padding-top:86px; padding-bottom:0; overflow:hidden; }
.hero-grid { display:grid; grid-template-columns:minmax(0,1.23fr) minmax(310px,.77fr); gap:72px; align-items:center; }
.eyebrow,.section-index { margin:0 0 22px; color:var(--terracotta); font-size:11px; letter-spacing:.12em; font-weight:800; text-transform:uppercase; }
h1,h2,h3,p { margin-top:0; } h1,h2,h3 { line-height:.99; }
h1 { max-width:800px; margin-bottom:32px; font:600 clamp(45px,5.2vw,76px)/.98 var(--serif); letter-spacing:-.045em; }
h2 { margin-bottom:30px; font:600 clamp(37px,4.1vw,58px)/1 var(--serif); letter-spacing:-.04em; }
h3 { font:700 22px/1.16 var(--sans); letter-spacing:-.035em; }
.hero-lead { max-width:685px; margin-bottom:33px; color:var(--muted); font-size:17px; line-height:1.72; }
.hero-actions { display:flex; align-items:center; gap:29px; } .button { display:inline-flex; align-items:center; gap:16px; padding:14px 18px; border-radius:8px; font-size:13px; font-weight:800; transition:transform .2s ease,background .2s ease; } .button:hover { transform:translateY(-2px); }
.button-primary { color:#fff; background:var(--forest); } .button-primary span { font-size:19px; line-height:0; }
.text-link { padding-bottom:3px; border-bottom:1px solid var(--ink); font-size:13px; font-weight:800; }.text-link span { color:var(--terracotta); margin-left:6px; }
.portrait-wrap { position:relative; min-height:454px; display:flex; align-items:center; justify-content:center; }
.portrait-accent { position:absolute; top:26px; right:-34px; width:91%; height:87%; background:var(--sage); border-radius:170px 0 0 0; }
.portrait-card { position:relative; z-index:1; width:min(100%,330px); margin:0; padding:12px 12px 16px; background:var(--white); box-shadow:14px 17px 0 var(--terracotta-pale); }
.portrait-card img { display:block; width:100%; height:246px; object-fit:cover; object-position:50% 32%; filter:saturate(.9); }
.portrait-card figcaption { padding:16px 7px 0; font-size:11px; text-transform:uppercase; letter-spacing:.12em; }.portrait-card figcaption span,.portrait-card figcaption strong { display:block; }.portrait-card figcaption strong { font-size:20px; line-height:1.15; letter-spacing:-.04em; }
.portrait-caption { position:absolute; z-index:2; bottom:9px; left:-20px; width:220px; margin:0; color:var(--muted); font-size:11px; letter-spacing:.09em; text-transform:uppercase; transform:rotate(-90deg); transform-origin:left bottom; }
.stats { position:relative; z-index:2; display:grid; grid-template-columns:repeat(4,1fr); gap:0; margin-top:58px; background:var(--forest); color:#fff; }
.stats div { min-height:142px; padding:24px 22px; border-right:1px solid rgba(255,255,255,.2); }.stats div:last-child { border:0; }.stats strong { display:block; margin-bottom:9px; color:var(--accent-on-dark); font:600 38px/1 var(--serif); letter-spacing:-.03em; }.stats span { display:block; font-size:11px; line-height:1.55; }
.approach { background:var(--white); }.split-intro { display:grid; grid-template-columns:1fr 3fr; gap:80px; }.section-index { padding-top:10px; }
.columns { display:grid; grid-template-columns:1fr 1fr; gap:46px; }.prose { color:var(--muted); font-size:16px; line-height:1.8; }.prose p:last-child { margin-bottom:0; }
blockquote { max-width:780px; margin:50px 0 0; padding:0 0 0 25px; border-left:3px solid var(--terracotta); font:600 clamp(26px,3vw,39px)/1.1 var(--serif); letter-spacing:-.035em; }
.services { border-bottom:1px solid var(--line); }.section-heading { display:grid; grid-template-columns:1fr 3fr; gap:80px; margin-bottom:56px; }.section-heading h2 { max-width:690px; margin:0; }
.service-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); border-left:1px solid var(--line); }.service-card { min-height:298px; padding:24px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }.service-card:nth-child(4),.service-card:nth-child(5) { grid-column:span 1; }.service-card span { color:var(--terracotta); font-size:11px; font-weight:800; letter-spacing:.1em; }.service-card h3 { margin:48px 0 16px; }.service-card p { margin:0; color:var(--muted); font-size:13px; line-height:1.65; }
.outcomes { background:var(--sage); }.outcomes-grid { display:grid; grid-template-columns:1fr 2fr; gap:80px; }.outcome-list { margin:0; padding:0; list-style:none; border-top:1px solid rgba(25,49,46,.22); }.outcome-list li { padding:22px 0 22px 32px; border-bottom:1px solid rgba(25,49,46,.22); position:relative; font-size:14px; color:#39534e; }.outcome-list li::before { content:'↗'; position:absolute; left:0; color:var(--terracotta); font-weight:800; }.outcome-list strong { color:var(--ink); }
.experience { background:var(--white); }.section-heading-wide { grid-template-columns:1fr 2fr; }.section-heading-wide p:not(.section-index) { max-width:490px; margin:0; color:var(--muted); font-size:14px; }.experience .section-heading { margin-bottom:38px; }.case-list { border-top:1px solid var(--line); }.case-card { display:grid; grid-template-columns:1fr 2fr; gap:56px; padding:36px 0; border-bottom:1px solid var(--line); }.case-meta { display:flex; flex-direction:column; align-items:flex-start; gap:10px; font-size:12px; font-weight:700; }.case-meta span:last-child { color:var(--terracotta); }.case-card h3 { max-width:630px; margin-bottom:9px; font-size:27px; }.case-card p { max-width:690px; margin-bottom:14px; color:var(--muted); font-size:14px; }.case-card .role { color:var(--ink); font-size:12px; font-weight:800; }.case-card ul { display:grid; gap:5px; margin:16px 0 0; padding-left:18px; color:var(--muted); font-size:13px; line-height:1.55; }
.timeline-section { padding-top:94px; padding-bottom:94px; }.timeline-grid { display:grid; grid-template-columns:1fr 2fr; gap:80px; }.timeline { margin:0; padding:0; list-style:none; }.timeline li { display:grid; grid-template-columns:130px 1fr; gap:24px; padding:18px 0; border-top:1px solid var(--line); }.timeline li:last-child { border-bottom:1px solid var(--line); }.timeline time { color:var(--terracotta); font-size:12px; font-weight:800; }.timeline p { margin:0; font-size:13px; }.timeline strong,.timeline span { display:block; }.timeline span { margin-top:2px; color:var(--muted); }
.expertise { background:var(--forest); color:#fff; }.expertise .section-index { color:var(--accent-on-dark); }.expertise-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:0; border:1px solid rgba(255,255,255,.22); }.expertise-grid article { padding:32px; border-right:1px solid rgba(255,255,255,.22); border-bottom:1px solid rgba(255,255,255,.22); }.expertise-grid article:nth-child(even) { border-right:0; }.expertise-grid article:nth-child(n+3) { border-bottom:0; }.expertise-grid h3 { margin-bottom:18px; font-size:19px; }.expertise-grid p { margin:0; color:rgba(255,255,255,.72); font-size:13px; line-height:1.8; }
.contribution { background:var(--white); }.contribution-grid { display:grid; grid-template-columns:1fr 2fr; gap:80px; }.contribution .talk-link { color:var(--ink); font-weight:700; text-decoration:underline; text-decoration-color:var(--terracotta); text-decoration-thickness:1px; text-underline-offset:3px; }.contribution .talk-link:hover { color:var(--terracotta); }.education { margin-top:32px; padding:23px; background:var(--terracotta-pale); color:var(--ink); }.education span { display:block; margin-bottom:9px; font-size:10px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }.education p { margin:0; font-size:13px; line-height:1.65; }
.contact { background:var(--forest); color:#fff; }.contact-grid { display:grid; grid-template-columns:1.2fr .8fr; gap:96px; align-items:end; }.contact h2 { margin-bottom:22px; }.contact p:not(.eyebrow) { max-width:630px; margin:0; color:rgba(255,255,255,.75); font-size:15px; }.contact .eyebrow { color:var(--accent-on-dark); }.contact-links { display:flex; flex-direction:column; align-items:flex-start; gap:4px; font-style:normal; }.contact-links a { display:flex; width:100%; justify-content:space-between; gap:20px; padding:15px 0; border-bottom:1px solid rgba(255,255,255,.27); font-size:14px; font-weight:700; transition:color .2s ease; }.contact-links a:hover { color:var(--accent-on-dark); }.contact-links span { color:var(--accent-on-dark); }
.site-footer { background:var(--forest); color:rgba(255,255,255,.6); border-top:1px solid rgba(255,255,255,.2); }.site-footer .container { display:flex; justify-content:space-between; padding-top:22px; padding-bottom:22px; font-size:11px; }.site-footer a:hover { color:#fff; }
@media (max-width: 1080px) { .site-nav { gap:22px; }.hero-grid { grid-template-columns:minmax(0,1.15fr) minmax(258px,.85fr); gap:38px; }.portrait-wrap { min-height:400px; }.portrait-card { width:min(100%,290px); }.portrait-card img { height:218px; }.stats { margin-top:42px; } }
@media (max-width: 900px) { .container { width:min(100% - 48px,1200px); }.hero-grid { gap:28px; }.portrait-wrap { min-height:374px; }.portrait-card { width:min(100%,260px); }.portrait-card img { height:195px; }.portrait-card figcaption { padding-top:11px; }.portrait-card figcaption strong { font-size:17px; }.stats { grid-template-columns:repeat(2,1fr); }.stats div:nth-child(2) { border-right:0; }.stats div:nth-child(-n+2) { border-bottom:1px solid rgba(255,255,255,.2); }.split-intro,.section-heading,.outcomes-grid,.timeline-grid,.contribution-grid { grid-template-columns:1fr; gap:28px; }.section-index { padding-top:0; }.section-heading { margin-bottom:38px; }.case-card { grid-template-columns:155px 1fr; gap:32px; }.contact-grid { gap:48px; grid-template-columns:1fr; }.service-grid { grid-template-columns:repeat(2,1fr); }.service-card:nth-child(5) { grid-column:span 2; } }
@media (max-width: 760px) { body { font-size:15px; }.container { width:min(100% - 40px,1200px); }.section { padding:76px 0; }.site-header { position:relative; }.header-inner { min-height:64px; }.brand { font-size:12px; }.menu-toggle { display:flex; align-items:center; gap:8px; }.menu-toggle span,.menu-toggle span::after { display:block; width:16px; height:1px; background:var(--ink); content:""; }.menu-toggle span::after { transform:translateY(5px); }.site-nav { display:none; position:absolute; left:0; right:0; top:64px; padding:18px 20px 22px; background:var(--paper); border-bottom:1px solid var(--line); flex-direction:column; align-items:flex-start; gap:18px; }.site-nav.is-open { display:flex; }.contents-menu { width:100%; }.contents-menu summary { width:max-content; }.contents-menu-list { position:static; width:100%; max-height:285px; margin-top:12px; box-shadow:none; }.nav-contact { padding:0; border:0; }.hero { padding-top:54px; }.hero-grid { grid-template-columns:1fr; }.hero-copy { order:1; }.portrait-wrap { min-height:310px; order:2; margin-top:8px; }.portrait-card { width:min(92%,300px); }.portrait-card img { height:225px; }.portrait-caption { display:none; } h1 { font-size:46px; }.hero-lead { font-size:15px; }.hero-actions { align-items:flex-start; flex-direction:column; gap:18px; }.stats { margin-top:32px; }.stats div { min-height:128px; padding:19px 15px; }.stats strong { font-size:32px; }.columns { grid-template-columns:1fr; gap:0; }.columns p { margin-bottom:20px; } blockquote { margin-top:36px; font-size:29px; }.service-grid { grid-template-columns:1fr; }.service-card,.service-card:nth-child(5) { min-height:auto; grid-column:span 1; padding:22px; }.service-card h3 { margin-top:34px; }.case-card { grid-template-columns:1fr; gap:18px; padding:32px 0; }.case-meta { flex-direction:row; gap:16px; }.case-card h3 { font-size:23px; }.timeline li { grid-template-columns:1fr; gap:5px; }.expertise-grid { grid-template-columns:1fr; }.expertise-grid article,.expertise-grid article:nth-child(even) { border-right:0; border-bottom:1px solid rgba(255,255,255,.22); }.expertise-grid article:last-child { border-bottom:0; }.contact h2 { font-size:42px; }.contact-links a { font-size:12px; }.site-footer .container { gap:16px; }.portrait-accent { right:-20px; } }
@media (max-width: 430px) { .container { width:min(100% - 32px,1200px); }.brand { max-width:190px; overflow:hidden; text-overflow:ellipsis; }.hero { padding-top:42px; }.portrait-wrap { min-height:288px; }.portrait-card { width:274px; }.stats { grid-template-columns:1fr; }.stats div { min-height:auto; border-right:0; border-bottom:1px solid rgba(255,255,255,.2); }.stats div:nth-child(-n+2) { border-bottom:1px solid rgba(255,255,255,.2); }.stats div:last-child { border-bottom:0; } h1 { font-size:42px; }.contact-links a { font-size:11px; } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition:none!important; } }

/* ---------- Переключатель тем ---------- */
.visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }
.theme-switch { display:flex; align-items:center; gap:9px; margin-left:auto; margin-right:30px; }
.theme-dot { position:relative; display:grid; place-items:center; width:24px; height:24px; padding:0; border:0; border-radius:50%; background:transparent; color:inherit; cursor:pointer; -webkit-tap-highlight-color:transparent; }
.theme-dot i { display:block; width:100%; height:100%; }
.theme-dot > span[aria-hidden] { width:16px; height:16px; border-radius:50%; background:conic-gradient(from 220deg, var(--d1) 0 50%, var(--d2) 0 100%); box-shadow:inset 0 0 0 1px rgba(0,0,0,.22); transition:transform .18s ease; }
.theme-dot:hover > span[aria-hidden] { transform:scale(1.15); }
.theme-dot::before { content:''; position:absolute; inset:0; border-radius:50%; border:1px solid transparent; transition:border-color .18s ease; }
.theme-dot[aria-checked="true"]::before { border-color:currentColor; }
.theme-dot:focus-visible { outline:2px solid currentColor; outline-offset:2px; }
.theme-dot::after { content:attr(data-theme-name); position:absolute; top:calc(100% + 9px); left:50%; transform:translateX(-50%); padding:4px 8px; border-radius:4px; background:var(--tip-bg,#19312e); color:var(--tip-ink,#fff); font:700 10px/1 var(--sans); letter-spacing:.05em; white-space:nowrap; opacity:0; pointer-events:none; transition:opacity .16s ease; }
.theme-dot:hover::after, .theme-dot:focus-visible::after { opacity:1; }
.theme-dot[data-theme-value="forest"] { --d1:#183f3a; --d2:#c9694b; }
.theme-dot[data-theme-value="corporate"] { --d1:#132133; --d2:#1f5ae0; }
.theme-dot[data-theme-value="noir"] { --d1:#0c0c0e; --d2:#c8a96a; }
.theme-dot[data-theme-value="editorial"] { --d1:#111111; --d2:#d23b2c; }
.theme-dot[data-theme-value="saas"] { --d1:#312e81; --d2:#6366f1; }
.theme-dot[data-theme-value="paper"] { --d1:#f0dcc6; --d2:#b3607a; }
body, .site-header, .stats, .expertise, .contact, .site-footer, .outcomes, .approach, .experience, .contribution, .portrait-card, .service-card, .education { transition:background-color .3s ease, border-color .3s ease; }
@media (max-width: 760px) { .theme-switch { margin-right:16px; gap:7px; } .theme-dot { width:22px; height:22px; } .theme-dot > span[aria-hidden] { width:15px; height:15px; } }
@media (max-width: 430px) { .brand { max-width:118px; } .theme-switch { margin-right:12px; gap:5px; } .theme-dot { width:19px; height:19px; } .theme-dot > span[aria-hidden] { width:13px; height:13px; } .theme-dot::after { display:none; } }
@media (prefers-reduced-motion: reduce) { body, .site-header, .stats, .expertise, .contact, .site-footer, .outcomes, .approach, .experience, .contribution, .portrait-card, .service-card, .education { transition:none; } }
