:root{--ivory:#F6F3EE;--sand:#EDE6DC;--ink:#141414;--accent:#8A4B2F;--muted:#5c554d;--line:#1414141f;--line-2:#1414143d;--on-accent:#F6F3EE;--band-bg:#141414;--band-fg:#F6F3EE;--band-label:#D9B8A6;--band-line:#F6F3EE33;--band-muted:#F6F3EEcc;--err:#9b1c1c;--logo-filter:none;--logo-blend:multiply;color-scheme:light;--serif:'Bodoni Moda',Georgia,serif;--sans:Jost,system-ui,sans-serif;--pad:clamp(20px,5.5vw,80px)}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--ivory);color:var(--ink);font-family:var(--sans);font-weight:300;-webkit-font-smoothing:antialiased}
a{color:var(--ink)}a:hover{color:var(--accent)}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
img{max-width:100%}
h1,h2,h3{font-family:var(--serif);font-weight:400;margin:0}
p{margin:0;line-height:1.6}
.label{font-family:var(--sans);font-size:13px;letter-spacing:.4em;text-transform:uppercase;font-weight:400}
.accent{color:var(--accent)}
.btn{display:inline-flex;align-items:center;min-height:56px;padding:0 32px;background:var(--ink);color:var(--ivory);border:0;font:400 14px var(--sans);letter-spacing:.2em;text-transform:uppercase;text-decoration:none;cursor:pointer}
.btn:hover{background:var(--accent);color:var(--on-accent)}
.link{display:inline-flex;align-items:center;min-height:56px;font-size:14px;letter-spacing:.2em;text-transform:uppercase;font-weight:400}
header{position:sticky;top:0;z-index:10;background:var(--ivory);height:88px;padding:0 var(--pad);display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line)}
header .logo img{height:40px;display:block;mix-blend-mode:var(--logo-blend);filter:var(--logo-filter)}
nav{margin-left:auto;display:flex;gap:36px;align-items:center;font-size:13px;letter-spacing:.24em;text-transform:uppercase;font-weight:400}
nav a{text-decoration:none}
.lang{display:flex;gap:8px}.lang a[aria-current]{font-weight:500}.lang a:not([aria-current]){opacity:.55}
nav .btn{min-height:44px;padding:0 22px;font-size:13px}
.menu-toggle{display:none;background:none;border:0;width:44px;height:44px;padding:10px;cursor:pointer}
.menu-toggle span{display:block;height:1px;background:var(--ink);margin:6px 0}
.hero{padding:clamp(80px,10vw,140px) var(--pad) clamp(64px,8vw,120px);max-width:1280px}
.hero>*+*{margin-top:40px}
.hero h1{font-size:clamp(48px,7.2vw,104px);line-height:1.02;letter-spacing:-.02em}
.hero p{max-width:620px;font-size:clamp(18px,1.5vw,21px)}
.actions{display:flex;gap:16px;flex-wrap:wrap}
.stats{margin:0 var(--pad);padding:48px 0;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}
.stats strong{display:block;font-family:var(--serif);font-weight:400;font-size:clamp(40px,3.9vw,56px);margin-bottom:8px}
.stats span{font-size:15px;line-height:1.5;display:block}
section{scroll-margin-top:88px}
.sec{padding:clamp(96px,11vw,160px) var(--pad) 0}
.sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:64px;flex-wrap:wrap}
.sec-head h2{font-size:clamp(40px,4.5vw,64px);line-height:1.08}
.services{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--ink)}
.services article{padding:48px 48px 56px 0;border-bottom:1px solid var(--line-2);display:flex;flex-direction:column;gap:16px}
.services article:nth-child(even){padding:48px 0 56px 48px;border-left:1px solid var(--line-2)}
.services .num{font-family:var(--serif);font-style:italic;font-size:20px}
.services h3{font-size:clamp(28px,2.5vw,36px)}
.services p{font-size:17px}
.approach{margin-top:clamp(96px,11vw,160px);padding:clamp(88px,10vw,140px) var(--pad);background:var(--band-bg);color:var(--band-fg);display:grid;grid-template-columns:5fr 1fr 6fr;gap:24px}
.approach .label{color:var(--band-label)}
.approach h2{font-size:clamp(40px,4.5vw,64px);line-height:1.08;margin-top:24px}
.approach ol{grid-column:3;list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:32px;counter-reset:s}
.approach li{display:flex;gap:32px;padding-bottom:32px;border-bottom:1px solid var(--band-line);counter-increment:s}
.approach li:last-child{border:0;padding:0}
.approach li::before{content:counter(s);font-family:var(--serif);font-size:32px;width:48px;flex:none}
.approach b{display:block;font-size:20px;font-weight:500;margin-bottom:8px}
.approach li span{font-size:17px;line-height:1.6;color:var(--band-muted)}
.cases{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--ink)}
.cases article{padding:48px 40px 0;border-left:1px solid var(--line-2);display:flex;flex-direction:column;gap:16px}
.cases article:first-child{padding-left:0;border:0}.cases article:last-child{padding-right:0}
.cases .label{font-size:12px;letter-spacing:.3em}
.cases h3{font-size:30px;line-height:1.2}
.cases p{font-size:16px}
.software{margin:clamp(96px,11vw,160px) var(--pad) 0;padding:clamp(40px,5.5vw,80px);background:var(--sand);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:80px;align-items:center}
.software>div>*+*{margin-top:24px}
.software h2{font-size:clamp(36px,3.9vw,56px);line-height:1.08}
.software p{font-size:18px}
.shot{display:block;width:100%;height:auto;border:1px solid var(--line)}
.contact{padding:clamp(112px,12.5vw,180px) var(--pad) 140px;display:grid;grid-template-columns:5fr 1fr 6fr;gap:24px}
.contact h2{font-size:clamp(52px,6.1vw,88px);line-height:1.04}
.contact .intro p{font-size:20px;margin-top:24px}
form{grid-column:3;display:flex;flex-direction:column;gap:32px}
.row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
label{display:flex;flex-direction:column;gap:8px;font-size:12px;letter-spacing:.3em;text-transform:uppercase;font-weight:400}
input,select,textarea{font:300 18px var(--sans);color:var(--ink);padding:12px 0;border:0;border-bottom:1px solid var(--ink);background:transparent;border-radius:0;width:100%}
textarea{resize:vertical}
input:focus,select:focus,textarea:focus{outline:none;border-bottom:2px solid var(--accent)}
.hp{position:absolute;left:-9999px}
form .btn{align-self:flex-start;min-height:60px;padding:0 40px}
.status{font-size:16px;min-height:1.6em}
.status.err{color:var(--err)}
footer{padding:40px var(--pad);border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:24px;font-size:13px;letter-spacing:.2em;text-transform:uppercase;font-weight:400}
footer img{height:28px;mix-blend-mode:var(--logo-blend);filter:var(--logo-filter);display:block}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--ivory:#141210;--sand:#201C18;--ink:#EDE7DE;--accent:#D49A78;--muted:#B3AA9F;--line:#EDE7DE24;--line-2:#EDE7DE40;--on-accent:#141210;--band-bg:#0B0A09;--band-fg:#EDE7DE;--band-label:#D9B8A6;--band-line:#EDE7DE2e;--band-muted:#EDE7DEcc;--err:#F2A0A0;--logo-filter:invert(1);--logo-blend:screen;color-scheme:dark}}
:root[data-theme="dark"]{--ivory:#141210;--sand:#201C18;--ink:#EDE7DE;--accent:#D49A78;--muted:#B3AA9F;--line:#EDE7DE24;--line-2:#EDE7DE40;--on-accent:#141210;--band-bg:#0B0A09;--band-fg:#EDE7DE;--band-label:#D9B8A6;--band-line:#EDE7DE2e;--band-muted:#EDE7DEcc;--err:#F2A0A0;--logo-filter:invert(1);--logo-blend:screen;color-scheme:dark}
.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;background:none;border:1px solid var(--line-2);border-radius:50%;color:var(--ink);cursor:pointer}
.theme-toggle:hover{color:var(--accent);border-color:var(--accent)}
.theme-toggle svg{width:20px;height:20px;display:none}
.theme-toggle[data-mode="system"] .i-system,.theme-toggle[data-mode="light"] .i-light,.theme-toggle[data-mode="dark"] .i-dark{display:block}
.hdr-right{display:flex;align-items:center;gap:8px}
@media (max-width:960px){
 .menu-toggle{display:block}
 nav{display:none;position:absolute;top:88px;left:0;right:0;background:var(--ivory);flex-direction:column;align-items:flex-start;padding:24px var(--pad) 32px;gap:24px;border-bottom:1px solid var(--line)}
 nav.open{display:flex}
 .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
 .approach,.contact{grid-template-columns:1fr}
 .approach ol,form{grid-column:1;margin-top:40px}
 .software{grid-template-columns:1fr;gap:40px}
 .cases{grid-template-columns:1fr}
 .cases article,.cases article:first-child,.cases article:last-child{padding:40px 0;border:0;border-bottom:1px solid var(--line-2)}
}
@media (max-width:640px){
 header .logo img{height:30px}
 .services{grid-template-columns:1fr}
 .services article,.services article:nth-child(even){padding:40px 0;border-left:0}
 .row{grid-template-columns:1fr}
 footer{flex-direction:column;align-items:flex-start}
}
.cases .label a{color:inherit;text-decoration:none}
.visit{display:block;width:fit-content;margin-top:12px;font-weight:400;font-size:14px;letter-spacing:.12em;text-transform:uppercase}
.probono{margin-top:72px;padding:40px 0 0;border-top:1px solid var(--line-2);display:grid;grid-template-columns:3fr 4fr 5fr;gap:24px;align-items:baseline}
.probono .label{font-size:12px;letter-spacing:.3em}
.probono h3{font-size:30px}
.probono p{font-size:16px}
@media (max-width:960px){.probono{grid-template-columns:1fr;gap:12px}}
