.page-hero{position:relative;isolation:isolate;overflow:hidden;background:var(--bg);padding-top:calc(var(--header-h) + clamp(36px,3.4vw,68px));padding-bottom:clamp(48px,4.4vw,88px)}
.page-hero::before{content:"";position:absolute;inset:0;z-index:-1;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:clamp(40px,3.2vw,64px) clamp(40px,3.2vw,64px);-webkit-mask-image:linear-gradient(90deg,#000,transparent 70%);mask-image:linear-gradient(90deg,#000,transparent 70%)}
.page-hero__img{position:absolute;right:0;top:0;bottom:0;width:55%;height:100%;object-fit:cover;object-position:75% 30%;z-index:-3}
.page-hero::after{content:"";position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,var(--bg) 0%,var(--bg) 42%,rgba(10,15,22,.75) 58%,rgba(10,15,22,.2) 80%,rgba(10,15,22,.35) 100%),linear-gradient(0deg,var(--bg),transparent 30%)}
.crumbs{display:flex;align-items:center;gap:10px;flex-wrap:wrap;list-style:none;font-size:clamp(13px,.8vw,15px);color:var(--muted)}
.crumbs a{color:var(--muted);transition:color .2s}
.crumbs a:hover{color:var(--accent)}
.crumbs li + li::before{content:"/";margin-right:10px;color:var(--dim)}
.crumbs [aria-current]{color:#fff}
.page-hero__title{margin-top:clamp(18px,1.6vw,30px);max-width:16em;font-weight:800;letter-spacing:-.025em;line-height:1.05;font-size:clamp(34px,3.4vw,66px)}
.page-hero__title em{font-style:normal;color:var(--accent)}
.page-hero__lead{margin-top:clamp(14px,1.2vw,22px);max-width:34em;color:var(--muted);font-size:clamp(15px,1.05vw,20px);line-height:1.6}
.quick{display:flex;flex-wrap:wrap;gap:clamp(10px,.8vw,14px);margin-top:clamp(26px,2.2vw,42px)}
.quick .btn{height:clamp(54px,3.3vw,64px)}
.ph-obj{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(28px,4vw,80px);align-items:center}
.ph-obj .route{max-width:560px;margin-left:auto}
.olist{background:#f3f4f6;color:#0f1621;padding-block:clamp(48px,4.4vw,88px)}
.olist__head{display:flex;justify-content:space-between;align-items:end;gap:20px 40px;flex-wrap:wrap;margin-bottom:clamp(24px,2.2vw,40px)}
.olist__title{font-weight:800;letter-spacing:-.02em;font-size:clamp(26px,2.2vw,42px)}
.olist .tabs{flex-wrap:wrap;border-radius:calc(var(--radius) + 10px)}
.olist .tab[aria-pressed="true"]{background:#0f1621;color:#fff}
.olist .tab[aria-pressed="true"] sup{color:var(--accent)}
.ogrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(14px,1.15vw,22px);list-style:none}
.ogrid > li.is-hidden{display:none}
.ogrid .case{height:100%}
.case__more{display:inline-flex;align-items:center;gap:6px;margin-top:14px;font-weight:700;font-size:clamp(13px,.84vw,15px);color:#0f1621}
.case__more svg{width:16px;height:16px;transition:transform .2s}
.case:hover .case__more{color:#b88600}
.case:hover .case__more svg{transform:translateX(4px)}
.oempty{display:none;padding:40px;text-align:center;color:#6b7686}
.octa{background:#f3f4f6;padding-bottom:clamp(56px,5vw,100px)}
.octa__box{display:grid;grid-template-columns:1fr auto;gap:24px 40px;align-items:center;padding:clamp(26px,2.4vw,48px);border-radius:calc(var(--radius) + 8px);background:var(--bg);color:#fff;position:relative;overflow:hidden}
.octa__box::after{content:"";position:absolute;right:-8%;top:-60%;width:40%;height:220%;background:radial-gradient(closest-side,rgba(255,194,26,.16),transparent);pointer-events:none}
.octa__title{font-weight:800;letter-spacing:-.02em;font-size:clamp(22px,1.8vw,34px)}
.octa__text{margin-top:8px;color:var(--muted);font-size:clamp(14px,.95vw,18px);line-height:1.55;max-width:40em}
.octa__actions{display:flex;gap:12px;flex-wrap:wrap;position:relative;z-index:1}
.ph-case{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:clamp(28px,4vw,80px);align-items:end}
.ph-case__tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:clamp(18px,1.6vw,30px)}
.ph-case__tags .case__type{position:static}
.tagloc{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border-radius:999px;border:1px solid var(--line);font-weight:600;font-size:clamp(12px,.74vw,14px);color:#e3e8ef}
.tagloc svg{width:15px;height:15px;color:var(--accent)}
.ph-case .page-hero__title{font-size:clamp(30px,3vw,58px);max-width:18em}
.facts{padding:clamp(22px,1.8vw,34px);border-radius:calc(var(--radius) + 6px);border:1px solid var(--line);background:rgba(16,23,34,.7);backdrop-filter:blur(10px)}
.facts__label{font-family:'JetBrains Mono',monospace;font-size:clamp(11px,.68vw,13px);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:8px}
.facts dl{display:grid}
.facts dl div{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--line);font-size:clamp(14px,.88vw,16px)}
.facts dl div:last-child{border-bottom:0;padding-bottom:0}
.facts dt{color:var(--muted)}
.facts dd{font-weight:700;text-align:right}
.cgal{background:#f3f4f6;padding-top:clamp(40px,3.6vw,70px)}
.cgal__grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:clamp(12px,1vw,20px)}
.cgal__main,.cgal__thumb{position:relative;display:grid;place-items:center;overflow:hidden;border-radius:calc(var(--radius) + 6px);background:linear-gradient(150deg,#1c2533,#0b1018);color:#334054}
.cgal__main{aspect-ratio:16/9}
.cgal__main svg{width:14%;height:auto}
.cgal__cap{position:absolute;left:18px;bottom:16px;padding:8px 14px;border-radius:999px;background:rgba(10,15,22,.75);backdrop-filter:blur(8px);color:#e3e8ef;font-size:clamp(12px,.78vw,14px);font-weight:600}
.cgal__side{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:clamp(12px,1vw,20px)}
.cgal__thumb{border:0;cursor:pointer;padding:0;transition:outline-color .2s, transform .3s;outline:3px solid transparent;outline-offset:-3px}
.cgal__thumb svg{width:24%;height:auto}
.cgal__thumb:hover{transform:scale(.98)}
.cgal__thumb.is-on{outline-color:var(--accent)}
.cgal__thumb span{position:absolute;left:10px;bottom:8px;font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.08em;color:#6b7a90}
.cbody{background:#f3f4f6;color:#0f1621;padding-block:clamp(48px,4.4vw,88px)}
.cbody__grid > *{min-width:0}
.cbody__grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,.6fr);gap:clamp(28px,4vw,80px);align-items:start}
.csec + .csec{margin-top:clamp(36px,3.2vw,60px)}
.csec__n{font-family:'JetBrains Mono',monospace;font-size:clamp(12px,.74vw,14px);letter-spacing:.12em;color:#b88600}
.csec__title{margin-top:8px;font-weight:800;letter-spacing:-.02em;font-size:clamp(24px,1.9vw,36px)}
.csec__text{margin-top:14px;color:#4a5566;font-size:clamp(15px,1vw,18px);line-height:1.75;max-width:46em}
.csec__text + .csec__text{margin-top:10px}
.task{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:20px;list-style:none}
.task li{padding:18px;border-radius:var(--radius);background:#fff;border:1px solid #e2e5ea}
.task b{display:block;font-size:clamp(15px,.96vw,17px)}
.task span{display:block;margin-top:4px;color:#6b7686;font-size:clamp(13px,.84vw,15px);line-height:1.5}
.task svg{width:26px;height:26px;color:#b88600;margin-bottom:10px}
.done{list-style:none;margin-top:20px;display:grid;gap:12px}
.done li{display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center;padding:18px 20px;border-radius:var(--radius);background:#fff;border:1px solid #e2e5ea;transition:border-color .25s, transform .25s}
.done li:hover{border-color:var(--accent);transform:translateX(4px)}
.done__ico{width:48px;height:48px;border-radius:var(--radius);display:grid;place-items:center;background:#0f1621;color:var(--accent)}
.done__ico svg{width:52%;height:52%}
.done b{display:block;font-size:clamp(15px,1vw,18px)}
.done span{display:block;margin-top:3px;color:#6b7686;font-size:clamp(13px,.84vw,15px)}
.done em{font-style:normal;font-family:'JetBrains Mono',monospace;font-size:clamp(13px,.84vw,15px);padding:6px 10px;border-radius:6px;background:#f1f3f6;white-space:nowrap}
.rtable{width:100%;margin-top:20px;border-collapse:separate;border-spacing:0;background:#fff;border:1px solid #e2e5ea;border-radius:var(--radius);overflow:hidden;font-size:clamp(14px,.88vw,16px)}
.rtable th,.rtable td{padding:14px 18px;text-align:left;border-bottom:1px solid #edf0f3}
.rtable th{background:#0f1621;color:#cfd6e0;font-family:'JetBrains Mono',monospace;font-weight:500;font-size:.82em;letter-spacing:.06em;text-transform:uppercase}
.rtable tr:last-child td{border-bottom:0}
.rtable td:nth-child(2),.rtable td:nth-child(3){font-family:'JetBrains Mono',monospace}
.ok{display:inline-flex;align-items:center;gap:6px;color:#1a9d5b;font-weight:700}
.ok::before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor}
.rtable-wrap{overflow-x:auto}
.resbox{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:center;margin-top:20px;padding:22px 24px;border-radius:var(--radius);background:#e9f8f0;border:1px solid #9fd9b9}
.resbox svg{width:44px;height:44px;color:#1a9d5b}
.resbox b{display:block;font-size:clamp(16px,1.05vw,19px)}
.resbox span{display:block;margin-top:4px;color:#2f5f45;font-size:clamp(14px,.88vw,16px);line-height:1.5}
.cquote{margin-top:clamp(36px,3.2vw,60px);padding:clamp(26px,2.4vw,46px);border-radius:calc(var(--radius) + 6px);background:var(--bg);color:#fff;position:relative;overflow:hidden}
.cquote > svg{width:clamp(44px,3vw,58px);color:var(--accent)}
.cquote__text{margin-top:14px;font-weight:700;font-size:clamp(18px,1.35vw,26px);line-height:1.45;letter-spacing:-.01em}
.cquote__who{display:flex;align-items:center;gap:14px;margin-top:22px;padding-top:20px;border-top:1px solid var(--line)}
.cquote__who .review__ava{background:var(--accent);color:var(--accent-ink)}
.cquote__who b{display:block}
.cquote__who span{color:var(--muted);font-size:14px}
.cside{position:sticky;top:calc(var(--header-h) + 28px);display:grid;gap:clamp(14px,1.15vw,22px)}
.cside .seo-card{background:#fff}
.cside__cta{padding:clamp(22px,1.8vw,34px);border-radius:calc(var(--radius) + 6px);background:var(--accent);color:var(--accent-ink)}
.cside__cta b{display:block;font-weight:800;font-size:clamp(19px,1.3vw,24px);line-height:1.25}
.cside__cta p{margin-top:8px;font-weight:600;opacity:.8;font-size:clamp(14px,.88vw,16px);line-height:1.5}
.cside__cta .btn{width:100%;margin-top:16px}
.cside__cta .btn--dark{background:#0f1621;color:#fff}
.cside__cta .btn--line{background:transparent;border:2px solid rgba(26,20,5,.3);color:var(--accent-ink);margin-top:10px}
.cside__docs{list-style:none;display:grid;gap:10px}
.cside__docs li{display:flex;align-items:center;gap:12px;font-weight:600;font-size:clamp(14px,.88vw,16px)}
.cside__docs svg{width:34px;height:34px;padding:8px;border-radius:8px;background:#fff8e1;color:#b88600;flex-shrink:0}
.more-obj{background:#fff;color:#0f1621;padding-block:clamp(56px,5vw,100px)}
.more-obj__head{display:flex;justify-content:space-between;align-items:end;gap:20px;flex-wrap:wrap;margin-bottom:clamp(24px,2.2vw,40px)}
.more-obj .ogrid{grid-template-columns:repeat(3,minmax(0,1fr))}
.more-obj .case{background:#f7f8fa}
.case-nav{display:flex;justify-content:space-between;gap:16px;margin-top:clamp(28px,2.4vw,44px);padding-top:clamp(20px,1.8vw,32px);border-top:1px solid #e2e5ea}
.case-nav a{display:flex;align-items:center;gap:12px;font-weight:700;font-size:clamp(14px,.9vw,16px)}
.case-nav small{display:block;font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#8a96a8;font-weight:500}
.case-nav svg{width:20px;height:20px;color:#b88600}
.case-nav a:last-child{text-align:right}
@media (max-width:1400px){ .ogrid{grid-template-columns:repeat(3,minmax(0,1fr))} }
@media (max-width:1100px){ .ph-obj,.ph-case,.cbody__grid{grid-template-columns:1fr} .ph-obj .route{margin-left:0} .cside{position:static} .ogrid,.more-obj .ogrid{grid-template-columns:repeat(2,minmax(0,1fr))} .cgal__grid{grid-template-columns:1fr} .cgal__side{grid-template-columns:repeat(4,1fr);grid-template-rows:none} .cgal__thumb{aspect-ratio:4/3} }
@media (max-width:640px){ .olist .tabs{width:100%;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;border-radius:999px} .ogrid,.more-obj .ogrid{grid-template-columns:1fr} .octa__box{grid-template-columns:1fr} .octa__actions .btn{width:100%} .task{grid-template-columns:1fr} .done li{grid-template-columns:auto 1fr;gap:14px} .done em{grid-column:2;justify-self:start} .cgal__side{grid-template-columns:repeat(4,1fr);gap:8px} .cgal__thumb span{display:none} .case-nav{flex-direction:column} .case-nav a:last-child{justify-content:flex-end} }
