.t-osn{
  --bg:#F6F6F3; --paper:#FFFFFF; --ink:#16181B; --muted:#62656B;
  --line:rgba(22,24,27,.12); --line-strong:rgba(22,24,27,.3);
  --accent:#2347D6; --on-accent:#FFFFFF; --grid:rgba(35,71,214,.07); --grid2:rgba(35,71,214,.14);
}
.t-osn body,.t-osn{background:var(--bg)}
.osn-wm{text-transform:none!important;letter-spacing:.01em!important;font-weight:500!important;font-size:1.15rem!important}
.t-osn .hdr{top:18px;background:linear-gradient(var(--bg) 40%,rgba(246,246,243,0))}
.t-osn .nav a{color:var(--muted)}
.btn-solid:hover{background:#1A38B4}

/* линейка-прогресс */
.ruler{position:fixed;inset:0 0 auto 0;height:18px;z-index:50;background:var(--paper);border-bottom:1px solid var(--line);
  background-image:repeating-linear-gradient(90deg,var(--line-strong) 0 1px,transparent 1px 10px),repeating-linear-gradient(90deg,var(--ink) 0 1px,transparent 1px 100px);
  background-size:100% 6px,100% 11px;background-repeat:no-repeat;background-position:0 100%,0 100%}
.ruler-fill{position:absolute;left:0;bottom:0;height:2px;background:var(--accent);width:0}
.ruler-val{position:absolute;right:var(--pad);top:2px;font-size:10px;color:var(--accent);background:var(--paper);padding:0 4px}

/* герой */
.o-hero{position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:center;padding:7rem var(--pad) 5rem;overflow:hidden;
  background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px),linear-gradient(var(--grid2) 1px,transparent 1px),linear-gradient(90deg,var(--grid2) 1px,transparent 1px);
  background-size:16px 16px,16px 16px,80px 80px,80px 80px;cursor:none}
.o-hero a,.o-hero .btn{cursor:pointer}
#tool{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.o-hero-in{position:relative;max-width:46rem;margin-left:clamp(0rem,8vw,9rem)}
.tag{font-size:var(--t-xs);color:var(--accent);margin-bottom:1.6rem}
.o-h1{font-weight:300;font-size:var(--t-2xl);line-height:1.04;letter-spacing:-.01em}
.o-lead{margin-top:1.4rem;max-width:34rem;color:#3E4146;font-size:var(--t-base)}
.o-cta{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:2.2rem}
.t-osn .btn-line{background:var(--paper)}
.o-coord{position:absolute;right:var(--pad);top:5.4rem;font-size:var(--t-xs);color:var(--accent)}

.o-h2{font-weight:300;font-size:var(--t-xl);line-height:1.1}
.muted.caps,.mono.caps{font-size:var(--t-xs)}

/* сборка */
.asm{position:relative;height:340vh;background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.asm-stage{position:sticky;top:0;height:100vh;height:100svh;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr) minmax(0,1fr);grid-template-rows:auto 1fr auto;gap:0 clamp(1rem,3vw,3rem);padding:5.5rem var(--pad) 2rem;
  background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:16px 16px}
.asm-head{grid-column:1;grid-row:1/3;align-self:start;padding-top:2rem}
.asm-head .mono{margin-bottom:1rem}
.asm-draw{grid-column:2;grid-row:1/3;align-self:center;color:var(--ink);max-height:72vh;aspect-ratio:1;justify-self:center;width:100%}
.asm-draw svg{width:100%;height:100%;overflow:visible}
.bom{grid-column:3;grid-row:1/3;align-self:center;list-style:none;margin:0;padding:0;border-top:1px solid var(--line-strong)}
.bom li{display:grid;grid-template-columns:4.6rem 1fr;gap:.2rem .8rem;padding:1rem 0;border-bottom:1px solid var(--line);opacity:.38;transition:opacity .5s var(--ease-out)}
.bom li .mono{grid-row:1/3;font-size:var(--t-xs);color:var(--accent);padding-top:.2rem}
.bom li b{font-weight:500;font-size:var(--t-sm)}
.bom li span:last-child{font-size:var(--t-xs);color:var(--muted);line-height:1.45}
.bom li.on{opacity:1}
.asm-done{grid-column:1/4;grid-row:3;font-size:var(--t-sm);opacity:0;transition:opacity .6s;display:flex;gap:1rem;align-items:center;flex-wrap:wrap}
.asm-done.on{opacity:1}
.asm-done .mono{color:var(--accent)}
.lnk{color:var(--accent);text-decoration:none;border-bottom:1px solid rgba(35,71,214,.35);padding-bottom:1px}
.part path.body{fill:url(#hatch);stroke:currentColor;stroke-width:1.4}
.part .lead{stroke:var(--accent);stroke-width:1;fill:none}
.part text{font:500 10px var(--f-mono);fill:var(--accent);letter-spacing:.06em}
.part .ticks{stroke:currentColor;stroke-width:1}

/* техкарта */
.card{padding:clamp(5rem,10vw,9rem) var(--pad)}
.card-head{margin-bottom:clamp(2rem,5vw,4rem)}
.card-head .mono{margin-bottom:1rem}
.tk{background:var(--paper);border:1px solid var(--line-strong)}
.tk-r{display:grid;grid-template-columns:5rem 2.2fr 1fr 1.2fr;border-bottom:1px solid var(--line)}
.tk-r:last-child{border-bottom:0}
.tk-r>span{padding:1.1rem 1.2rem;border-right:1px solid var(--line);font-size:var(--t-sm)}
.tk-r>span:last-child{border-right:0}
.tk-h>span{font-size:var(--t-xs);color:var(--muted);text-transform:uppercase;letter-spacing:.12em;padding-block:.7rem}
.tk-r b{font-weight:600}
.op{color:var(--accent);font-size:var(--t-sm)!important}
.tk-r:not(.tk-h){transition:background .25s}
.tk-r:not(.tk-h):hover{background:rgba(35,71,214,.035)}

/* диагностика */
.diag{padding:clamp(5rem,10vw,9rem) var(--pad);background:var(--paper);border-top:1px solid var(--line)}
.dg-grid{display:grid;grid-template-columns:1fr 1.3fr;gap:clamp(2rem,6vw,6rem)}
.dg-grid .mono{margin-bottom:1rem}
.dg-note{margin-top:1.2rem;max-width:26rem;font-size:var(--t-sm)}
.dg fieldset{border:0;padding:0;margin:0 0 1.6rem}
.dg legend{font-size:var(--t-xs);font-family:var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:.7rem}
.dg label{display:inline-flex;margin:0 .4rem .5rem 0;cursor:pointer}
.dg input{position:absolute;opacity:0;pointer-events:none}
.dg label span{display:inline-flex;align-items:center;min-height:44px;padding:.55rem 1rem;border:1px solid var(--line-strong);font-size:var(--t-sm);transition:background .2s,color .2s,border-color .2s}
.dg label:hover span{border-color:var(--ink)}
.dg input:checked+span{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.dg input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}
.gauge{position:relative;height:64px;margin:1.6rem 0 1rem}
.g-scale{position:absolute;left:0;right:0;top:18px;height:16px;border-bottom:1px solid var(--ink);
  background-image:repeating-linear-gradient(90deg,var(--line-strong) 0 1px,transparent 1px 2%),repeating-linear-gradient(90deg,var(--ink) 0 1px,transparent 1px 10%);background-size:100% 6px,100% 14px;background-repeat:no-repeat;background-position:0 100%,0 100%}
.g-ptr{position:absolute;top:4px;left:0;width:2px;height:34px;background:var(--accent);transform:translateX(-1px);transition:left .9s cubic-bezier(.34,1.56,.64,1)}
.g-ptr::before{content:"";position:absolute;top:-6px;left:-5px;border:6px solid transparent;border-top-color:var(--accent)}
.g-lab{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:space-between;font-size:10px;color:var(--muted);letter-spacing:.06em}
.dg-res{font-size:var(--t-base);margin-bottom:1.4rem;min-height:3em}

.t-osn .foot{background:var(--paper)}

@media (max-width:960px){
  .asm{height:300vh}
  .asm-stage{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr) auto auto;padding-top:5rem;gap:.6rem}
  .asm-head{grid-row:1;grid-column:1;padding-top:.5rem}
  .asm-draw{grid-row:2;grid-column:1;max-height:42vh}
  .bom{grid-row:3;grid-column:1}
  .bom li{padding:.45rem 0;grid-template-columns:4rem 1fr}
  .bom li span:last-child{display:none}
  .asm-done{grid-row:4}
  .dg-grid{grid-template-columns:1fr}
  .tk-h{display:none}
  .tk-r{grid-template-columns:3.6rem 1fr}
  .tk-r>span{border-right:0;padding:.5rem .9rem}
  .tk-r>span:nth-child(n+3){grid-column:2;padding-top:0;color:var(--muted);font-size:var(--t-xs)}
  .tk-r>span:first-child{grid-row:1/4;padding-top:.9rem}
  .tk-r>span:nth-child(2){padding-top:.9rem}
  .tk-r>span:last-child{padding-bottom:.9rem}
  .o-hero{cursor:auto}
}

/* v1.1 · вводный урок */
.vl{padding:clamp(5rem,10vw,8rem) clamp(1.25rem,4vw,6rem) clamp(3rem,6vw,5rem) clamp(1.25rem,4vw,6rem);display:flex;flex-direction:column;align-items:center;background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:16px 16px}
.vl-head{max-width:62rem;margin-bottom:2rem;width:100%}
.vl-head .acc{color:var(--accent);font-size:var(--t-xs);margin-bottom:1rem}
.vl-note{margin-top:1rem;max-width:44rem}
.vl-frame{margin:0;max-width:72rem;border:1px solid var(--line-strong);background:var(--paper);padding:clamp(.4rem,1vw,.8rem)}
.vl-frame video{display:block;width:100%;height:auto;aspect-ratio:16/9;background:#fff}
.vl-frame figcaption{font-size:var(--t-xs);color:var(--muted);padding:.8rem .2rem .2rem}
.vl-cta{display:flex;gap:1rem;flex-wrap:wrap;margin-top:1.6rem;width:100%;justify-content:center}

/* v1.5: блок видео — выраженный */
.vl{padding:clamp(5rem,10vw,8rem) var(--pad) clamp(3rem,6vw,5rem);background:linear-gradient(180deg,var(--paper),#FBFBF8 55%,var(--bg));border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);position:relative;overflow:hidden}
.vl::before{content:"";position:absolute;inset:0;background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:16px 16px;pointer-events:none}
.vl>.vl-head,.vl>.vl-frame,.vl>.vl-cta{position:relative}
.vl-frame{box-shadow:0 18px 50px -18px rgba(22,24,27,.25),0 0 0 1px var(--line);border-radius:6px;padding:clamp(.4rem,1vw,.8rem)}
.vl-frame video{border-radius:3px}
.vl-cta .btn-solid{box-shadow:0 10px 24px -10px rgba(35,71,214,.5)}
@media (max-width:760px){.vl-frame{padding:.3rem}}
/* v1.9: синие кнопки — белый текст на всех страницах Оснастки */
.t-osn .btn-solid,.t-osn a.btn-solid{color:#fff}
.osn-cab{display:flex;flex-wrap:wrap;gap:.4rem .8rem;margin-top:1.1rem;font-family:var(--f-mono);font-size:var(--t-xs);letter-spacing:.08em}
.osn-cab a{color:var(--accent);text-decoration:none;border-bottom:1px solid rgba(35,71,214,.3)}
.osn-cab span{color:var(--muted)}
.t-osn .nav a.nav-cab{color:var(--accent);border-color:var(--accent)}
.t-osn .nav a.nav-cab:hover{color:#fff;background:var(--accent)}
@media (max-width:760px){.osn-cab{flex-direction:column;align-items:flex-start;gap:.55rem}.osn-cab span{display:none}}
