:root{--geo-dark:#1a2530;--geo-primary:#1f6391;--geo-primary-hover:#174d6f;--geo-accent:#00d2d3;--geo-bg:#f5f7fa;--geo-surface:#ffffff;--geo-grid-color:#e6eaee;--geo-border:#d1d6db;--geo-text:#2c3e50;--geo-text-light:#5b6b70;--font-main:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;--font-mono:"JetBrains Mono","Courier New",Courier,monospace;--page:1152px;--header:64px;--cut:16px} .geo-card,.geo-btn,a.geo-tag,.geo-tab-btn,.geo-tab-content,.mod,.carousel,.portrait,.steps li,.story div,.shot-frame{clip-path:polygon(0 0,calc(100% - var(--cut)) 0,100% var(--cut),100% 100%,0 100%)} .geo-card,.geo-tab-content,.portrait,.steps li{--cut:20px} .geo-btn,.geo-tab-btn,.mod,.carousel,.story div,.shot-frame,.request input,.request textarea{--cut:12px} a.geo-tag{--cut:8px} *{box-sizing:border-box} html{scroll-behavior:smooth} body{margin:0;color:var(--geo-text);font-family:var(--font-main);font-size:16px;line-height:1.5;background:var(--geo-bg)} a{color:var(--geo-primary)} code{font-family:var(--font-mono);font-size:0.92em;color:var(--geo-dark)} .skip{position:absolute;left:16px;top:-48px;background:var(--geo-accent);color:var(--geo-dark);padding:8px 16px;z-index:40} .skip:focus{top:8px} .wrap{width:min(var(--page),calc(100% - 48px));margin-inline:auto} .top,main,.foot{position:relative;z-index:1} .top{height:var(--header);background:var(--geo-dark);color:#fff;box-shadow:inset 0 -4px 0 var(--geo-accent)} .top__bar{display:flex;align-items:center;justify-content:space-between;height:var(--header)} .logo{display:flex;align-items:center;gap:10px;font-family:var(--font-mono);font-weight:800;font-size:20px;line-height:1;letter-spacing:0;color:#fff;text-decoration:none} .logo__mark{display:block;width:28px;height:28px;flex:none} .logo span{color:var(--geo-accent);font-size:12px;font-weight:500} .nav{display:flex;align-items:center;height:var(--header)} .nav a{display:flex;align-items:center;height:var(--header);padding:0 16px;color:#bdc3c7;text-decoration:none;font-family:var(--font-mono);font-size:12px;font-weight:700;letter-spacing:0.06em;text-transform:uppercase} .nav a:hover{color:#fff} .nav-toggle{display:none;height:40px;padding:0 16px;background:transparent;color:#fff;border:1px solid rgba(255,255,255,0.4);font-family:var(--font-mono);font-size:12px;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;cursor:pointer} .hero{padding:64px 0 32px} .hero__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,420px);gap:24px;align-items:stretch} .kicker{margin:0 0 16px;font-family:var(--font-mono);font-size:12px;font-weight:700;line-height:16px;letter-spacing:0.08em;text-transform:uppercase;color:var(--geo-primary)} .crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 16px;font-family:var(--font-mono);font-size:12px;font-weight:700;line-height:16px;letter-spacing:0.08em;text-transform:uppercase} .crumbs a{color:var(--geo-primary);text-decoration:underline;text-underline-offset:3px} .crumbs a:hover{color:var(--geo-dark)} .crumbs span{color:var(--geo-primary)} h1{margin:0 0 16px;font-size:64px;line-height:64px;letter-spacing:-1px;font-weight:800} .lead{margin:0;font-size:18px;line-height:28px} .hero__copy{display:flex;flex-direction:column;align-items:flex-start} .hero__actions{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin-top:32px} .geo-btn{display:inline-flex;align-items:center;justify-content:center;height:48px;min-width:200px;padding:0 24px;border:2px solid var(--geo-primary);background:var(--geo-primary);color:#fff;font-family:var(--font-mono);font-size:12px;font-weight:700;line-height:1;letter-spacing:0.08em;text-transform:uppercase;text-decoration:none;cursor:pointer} .geo-btn:hover{background:var(--geo-primary-hover);border-color:var(--geo-primary-hover);color:#fff} .geo-btn:focus-visible{outline:3px solid var(--geo-accent);outline-offset:-3px;box-shadow:inset 0 0 0 3px var(--geo-accent)} .geo-btn--ghost{background:var(--geo-surface);color:var(--geo-dark);border-color:var(--geo-dark)} .geo-btn--ghost:hover{background:var(--geo-dark);border-color:var(--geo-dark);color:#fff} .geo-card{position:relative;background:var(--geo-surface);border:1px solid var(--geo-border);padding:24px 24px 32px} .geo-card::before{content:"";position:absolute;top:0;left:0;width:12px;height:12px;border-top:2px solid var(--geo-primary);border-left:2px solid var(--geo-primary);pointer-events:none} .spec{display:flex;flex-direction:column;height:100%} .geo-h-tech{display:block;margin:0 0 16px;font-family:var(--font-mono);font-size:12px;font-weight:700;line-height:16px;letter-spacing:0.08em;text-transform:uppercase;color:var(--geo-primary)} .spec dl{flex:1;display:flex;flex-direction:column;margin:0} .spec dl > div{flex:1;display:grid;grid-template-columns:96px minmax(0,1fr);align-items:center;gap:16px;min-height:48px;border-top:1px solid var(--geo-border)} .spec dt{margin:0;font-family:var(--font-mono);font-size:11px;font-weight:700;line-height:16px;letter-spacing:0.06em;text-transform:uppercase;color:var(--geo-text-light)} .spec dd{margin:0;line-height:24px} .hero,.section{scroll-margin-top:80px} .section{padding:32px 0 64px} .geo-section-title{position:relative;margin:0 0 16px;padding-bottom:16px;border-bottom:1px solid var(--geo-border);font-size:32px;line-height:40px;font-weight:800} .geo-section-title::after{content:"";position:absolute;left:0;bottom:-1px;width:48px;height:3px;background:var(--geo-accent)} .section-lead{margin:0 0 24px;max-width:none} .cases{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;align-items:stretch} .cases-list{display:grid;gap:24px} .case-page,.section[id]{scroll-margin-top:80px} .case-page h2{margin:0 0 16px;font-size:32px;line-height:40px} .case-page .case__meta{margin-top:16px} .case-lead{margin:0 0 24px;font-size:18px;line-height:28px} .story{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:0 0 24px} .story div{background:var(--geo-bg);padding:16px} .story h3,.case-page h3{margin:0 0 8px;font-family:"JetBrains Mono",ui-monospace,monospace;font-size:12px;font-weight:700;letter-spacing:0.08em;line-height:16px;text-transform:uppercase;color:var(--geo-primary)} .story p{margin:0} .case-page .geo-list{margin-bottom:0} .case-page h2.subhead{margin:8px 0 12px;font-size:20px;line-height:28px} .case-actions{margin-top:16px} .shots{display:grid;gap:16px} .shot-frame{margin:0;padding:16px;background:var(--geo-bg)} .shot-frame img{display:block;width:100%;height:auto;background:#fff} .shot-frame figcaption{margin-top:8px;color:var(--geo-text-light);font-family:var(--font-mono);font-size:12px;line-height:16px} .detail-back{margin-top:24px} .foot a{color:inherit;text-decoration:none} .foot a:hover{color:#fff} .case{display:flex;flex-direction:column;align-self:stretch;margin:0} .case__main{flex:1 1 auto} .case__main > p{margin:0 0 16px} .case h3{margin:0 0 8px;font-size:20px;line-height:28px} .case h3 a{color:inherit;text-decoration:none} .case h3 a:hover{color:var(--geo-primary)} .geo-list{list-style:none;padding:0;margin:0 0 16px} .geo-list li{display:flex;align-items:flex-start;gap:8px;margin:0;padding:0 0 8px} .geo-list li::before{content:"";flex:none;width:8px;height:8px;margin-top:8px;background:var(--geo-accent);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)} .case > .case__meta,.case-page > .case__meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0;margin-top:auto;padding-top:16px} a.geo-tag{display:inline-flex;align-items:center;height:28px;padding:0 10px;margin:0;background:var(--geo-bg);border:1px solid var(--geo-border);font-family:var(--font-mono);font-size:11px;font-weight:700;line-height:1;letter-spacing:0.04em;text-transform:uppercase;text-decoration:none;color:var(--geo-text);cursor:pointer} a.geo-tag:hover{border-color:var(--geo-primary);color:var(--geo-primary)} a.geo-tag.accent{background:var(--geo-accent);color:var(--geo-dark);border-color:var(--geo-accent)} a.geo-tag.accent:hover{background:var(--geo-dark);border-color:var(--geo-dark);color:#fff} .section--modules{padding-top:0} .geo-tabs-header{display:flex;align-items:flex-end;gap:8px;border-bottom:1px solid var(--geo-border)} .geo-tab-btn{height:48px;margin:0;padding:0 24px;border:1px solid transparent;border-bottom:none;background:transparent;color:var(--geo-text-light);font-family:var(--font-mono);font-size:12px;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;cursor:pointer} .geo-tab-btn:hover{color:var(--geo-primary)} .geo-tab-btn.active{margin-bottom:-1px;background:var(--geo-surface);color:var(--geo-primary);border-color:var(--geo-border);border-bottom:1px solid var(--geo-surface)} .geo-tab-btn:focus-visible{outline:none;box-shadow:inset 0 0 0 3px var(--geo-accent)} .geo-tab-content{padding:24px;border:1px solid var(--geo-border);border-top:none;background:var(--geo-surface)} .geo-tab-content[hidden]{display:none} .catalog-subtitle{margin:32px 0 16px;font-size:20px;line-height:28px} .catalog-subtitle:first-of-type{margin-top:8px} .catalog-more{margin:24px 0 0} .modules{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px} .mod{display:flex;flex-direction:column;gap:8px;min-height:148px;margin:0;padding:16px;background:var(--geo-bg);border:1px solid var(--geo-border);border-left:4px solid var(--geo-primary);color:inherit;text-decoration:none} .mod--link{transition:border-color 0.15s ease,background-color 0.15s ease} .mod--link:hover{background:var(--geo-surface);border-color:var(--geo-primary);color:inherit} .mod h3{margin:0;font-size:18px;line-height:24px} .about{display:grid;grid-template-columns:280px minmax(0,1fr);gap:24px;align-items:start} .portrait{display:block;width:100%;height:340px;object-fit:cover;object-position:50% 20%;background:var(--geo-dark)} .certs-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px} .certs-head .geo-section-title{margin-bottom:0} .certs-nav{display:flex;align-items:center;gap:12px;flex:none} .certs-nav .geo-btn{min-width:120px} .certs-count{min-width:64px;font-family:var(--font-mono);font-size:12px;font-weight:700;letter-spacing:0.06em;text-align:center} .carousel{overflow:hidden;background:var(--geo-surface);border:1px solid var(--geo-border)} .carousel__track{display:flex;transition:transform 0.35s ease} .carousel__slide{flex:0 0 100%;display:flex;flex-direction:column;align-items:center;gap:12px;margin:0;padding:16px} .carousel__slide img{display:block;max-width:100%;max-height:640px;width:auto;height:auto} .carousel__slide figcaption{font-family:var(--font-mono);font-size:12px;line-height:16px;color:var(--geo-text-light);text-align:center} .about p{margin:0 0 16px} .about p:last-child{margin-bottom:0} .mod .geo-h-tech{margin:0} .mod code{display:block;margin:0;font-weight:700;line-height:20px} .mod p{margin:0;font-size:14px;line-height:20px;color:var(--geo-text-light)} .approach{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;align-items:start} .approach .section-lead{margin-bottom:0} .steps{list-style:none;display:grid;gap:16px;margin:0;padding:0} .steps li{display:grid;grid-template-columns:48px minmax(0,1fr);gap:16px;align-items:center;min-height:80px;margin:0;padding:16px 24px;background:var(--geo-surface);border:1px solid var(--geo-border)} .steps span{font-family:var(--font-mono);font-size:16px;font-weight:800;line-height:24px;color:var(--geo-primary)} .steps strong{display:block;line-height:24px} .steps p{margin:0;color:var(--geo-text-light);line-height:24px} .trust{display:flex;flex-wrap:wrap;gap:8px 24px;margin:32px 0 0;padding:0;list-style:none;font-family:var(--font-mono);font-size:12px;line-height:20px;letter-spacing:0.04em;text-transform:uppercase;color:var(--geo-text-light)} .trust b{color:var(--geo-dark);font-weight:800} .section-note{margin:16px 0 0;font-size:15px;line-height:24px;color:var(--geo-text-light)} .section-note a{color:var(--geo-primary)} .pains{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px} .pain{padding:20px 24px;margin:0} .pain p{margin:0;font-size:17px;line-height:26px} .pain .geo-h-tech{margin:0 0 8px} .section--services{padding-top:0} .services{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px} .service{display:flex;flex-direction:column;gap:12px;padding:24px;margin:0} .service h3{margin:0;font-size:22px;line-height:30px} .service p{margin:0;font-size:15px;line-height:24px} .service .geo-h-tech{margin:0} .service__out{padding:12px 16px;background:var(--geo-bg);border-left:3px solid var(--geo-accent)} .service__who{color:var(--geo-text-light);font-size:14px;line-height:22px} .service .geo-btn{align-self:flex-start;margin-top:auto} .faq{display:flex;flex-direction:column;gap:8px;max-width:820px} .faq details{background:var(--geo-surface);border:1px solid var(--geo-border);padding:0 20px} .faq details[open]{padding-bottom:4px} .faq summary{padding:16px 0;cursor:pointer;font-weight:600;font-size:17px;line-height:24px;list-style:none;position:relative;padding-right:32px} .faq summary::-webkit-details-marker{display:none} .faq summary::after{content:"+";position:absolute;right:0;top:14px;font-family:var(--font-mono);font-size:20px;font-weight:700;color:var(--geo-primary)} .faq details[open] summary::after{content:"–"} .faq details p{margin:0 0 12px;color:var(--geo-text-light);font-size:15px;line-height:24px;max-width:68ch} .request__note{margin:0 0 8px;font-size:13px;line-height:20px;color:var(--geo-text-light)} .contact__grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(280px,0.7fr);gap:24px;align-items:start} .contact__card{margin:0} .mail{display:block;margin:0 0 8px;font-family:var(--font-mono);font-size:22px;font-weight:700;line-height:32px;text-decoration:none;overflow-wrap:anywhere} .contact__card p{margin:0 0 24px} .request{margin:0} .request__row{margin:0 0 16px} .request label{display:block;margin:0 0 6px;font-family:var(--font-mono);font-size:12px;font-weight:700;line-height:16px;letter-spacing:0.08em;text-transform:uppercase} .request input,.request textarea{display:block;width:100%;border:1px solid var(--geo-border);background:var(--geo-bg);color:var(--geo-text);font:inherit;padding:12px 14px;clip-path:polygon(0 0,calc(100% - var(--cut)) 0,100% var(--cut),100% 100%,0 100%)} .request input{height:48px} .request textarea{min-height:140px;resize:vertical} .request input:focus,.request textarea:focus{outline:none;border-color:var(--geo-primary);box-shadow:inset 0 0 0 2px var(--geo-accent)} .request__status{min-height:24px;margin:0 0 16px;line-height:24px} .request__status.is-error{color:#c0392b} .request__status.is-ok{color:#1e8449} .request button:disabled{opacity:0.55;cursor:default} .request-ping{position:absolute;width:1px;height:1px;opacity:0} .request-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden} .foot{height:var(--header);background:var(--geo-dark);color:#bdc3c7;font-family:var(--font-mono);font-size:12px} .foot__bar{display:flex;align-items:center;justify-content:space-between;height:var(--header)} a:focus-visible{outline:2px solid var(--geo-primary);outline-offset:2px} .carousel:focus-visible{outline:3px solid var(--geo-accent);outline-offset:-3px} .faq summary:focus-visible{outline:2px solid var(--geo-primary);outline-offset:-2px} .nav a:focus-visible{outline:2px solid var(--geo-accent);outline-offset:-2px} @media (max-width: 1100px){h1{font-size:48px;line-height:48px} .modules{grid-template-columns:repeat(2,minmax(0,1fr))} .catalog-subtitle{margin-top:24px}} @media (max-width: 860px){.hero__grid,.cases,.story,.approach,.about,.contact__grid{grid-template-columns:minmax(0,1fr)} .pains,.services{grid-template-columns:minmax(0,1fr)} .portrait{height:280px;max-width:320px} .hero__grid{gap:24px} .spec{height:auto}} @media (max-width: 720px){.wrap{width:min(var(--page),calc(100% - 32px))} .nav-toggle{display:inline-flex;align-items:center} .nav{display:none;position:fixed;top:var(--header);left:0;right:0;z-index:30;height:auto;flex-direction:column;align-items:stretch;background:var(--geo-dark);border-bottom:4px solid var(--geo-accent)} .nav.is-open{display:flex} .nav a{height:48px;padding:0 16px} .modules{grid-template-columns:minmax(0,1fr)} .certs-head{align-items:stretch;flex-direction:column} .geo-tab-btn{height:48px;padding:0 12px;font-size:11px} .geo-btn{width:100%;min-width:0} .certs-nav .geo-btn{width:auto} .hero__actions{width:100%} h1{font-size:40px;line-height:40px;letter-spacing:0}}
picture{display:contents}
