/* hero */
.hero{background:var(--mist); border-bottom:1px solid var(--line)}
.home-hero .w{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.05fr); gap:32px; padding-block:52px; align-items:center}
.home-hero h1{font-size:clamp(28px,3.6vw,44px); line-height:1.15}
.home-hero .lead{font-size:18px; color:var(--muted); max-width:58ch; margin:18px 0 26px}
.home-hero .btns{display:flex; gap:12px; flex-wrap:wrap}
.hub{width:100%; max-width:560px; height:auto; justify-self:center}
.hub text{font-family:var(--f-body)}
.hub .flow{stroke-dasharray:5 8; animation:dash 1.6s linear infinite}
@keyframes dash{to{stroke-dashoffset:-26}}
@media (prefers-reduced-motion:reduce){.hub .flow{animation:none}}
.hub a .box{transition:stroke-width .15s}
.hub a:hover .box,.hub a:focus-visible .box{stroke-width:2.6}
@media (max-width:900px){.home-hero .w{grid-template-columns:1fr}}

/* sections */
.sec{padding-block:60px}
.sh{display:flex; justify-content:space-between; align-items:baseline; gap:12px 20px; margin-bottom:26px; flex-wrap:wrap}
.sh h2{font-size:clamp(24px,3vw,32px)}
.sh a{color:var(--link); font-weight:700}
.sh .cap{color:var(--muted); font-size:14px}

.dirs{display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:16px}
.dir{grid-column:span 2; background:var(--surface); border:1px solid var(--line); border-radius:6px; padding:24px; display:flex; flex-direction:column; gap:10px; scroll-margin-top:110px; transition:border-color .2s, box-shadow .2s}
.dir:target{border-color:var(--c); box-shadow:0 0 0 2px var(--c)}
.dir .dir-top{display:flex; justify-content:space-between; align-items:center; gap:10px}
.dir .ic{width:44px; height:44px; border-radius:8px; display:grid; place-items:center; color:#fff; background:var(--c)}
.dir .chip{font-size:12px; font-weight:700; color:var(--link); background:var(--chip); border-radius:999px; padding:3px 10px}
.dir h3{font-size:20px; line-height:1.25}
.dir p{margin:0; color:var(--muted); font-size:15px}
.dir > a{margin-top:auto; color:var(--link); font-weight:700; font-size:15px; padding-top:6px}
@media (max-width:900px){.dirs{grid-template-columns:1fr 1fr}.dir{grid-column:span 1}}
@media (max-width:560px){.dirs{grid-template-columns:1fr}}

.tasks{background:var(--band); color:var(--on-band)}
.tasks .w{padding-block:52px; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,2.3fr); gap:36px}
.tasks h2{color:#fff; font-size:30px}
.tasks ol{margin:0; padding:0; list-style:none; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; counter-reset:t}
.tasks li{counter-increment:t; border-top:3px solid var(--yel); padding-top:14px; font-size:15.5px}
.tasks li::before{content:"Задача " counter(t); display:block; font-weight:700; color:var(--yel); font-size:13px; letter-spacing:.06em; text-transform:uppercase; margin-bottom:6px}
@media (max-width:900px){.tasks .w,.tasks ol{grid-template-columns:1fr}}

/* events calendar */
.ev-bar{display:flex; justify-content:space-between; align-items:center; gap:14px; flex-wrap:wrap; margin-bottom:18px}
.seg{display:inline-flex; border:1px solid var(--line); border-radius:6px; overflow:hidden; background:var(--surface)}
.seg button{font:inherit; font-weight:700; font-size:15px; padding:9px 16px; background:transparent; color:var(--ink); border:0; cursor:pointer; display:flex; gap:8px; align-items:center}
.seg button + button{border-left:1px solid var(--line)}
.seg button[aria-selected="true"]{background:var(--blue); color:var(--btn-fg)}
.seg .n{font-family:var(--f-mono); font-size:12px; font-weight:500; opacity:.8}
.legend{display:flex; gap:6px 16px; flex-wrap:wrap; font-size:13.5px; color:var(--muted)}
.legend span{display:inline-flex; align-items:center; gap:6px}
.legend i,.ev .tp i{width:9px; height:9px; border-radius:2px; background:var(--c); display:inline-block}
.legend .dash{width:16px; height:12px; border:1.5px dashed var(--muted); border-radius:3px; background:transparent}
.cal-wrap{position:relative}
.cal{display:grid; grid-auto-flow:column; grid-auto-columns:minmax(270px,1fr); gap:0; overflow-x:auto; scroll-snap-type:x mandatory; border:1px solid var(--line); border-radius:6px; background:var(--surface)}
.month{scroll-snap-align:start; border-left:1px solid var(--line); display:flex; flex-direction:column; min-width:0}
.month:first-child{border-left:0}
.month header{padding:14px 16px 12px; border-bottom:1px solid var(--line); display:flex; justify-content:space-between; align-items:baseline; gap:8px; background:var(--mist)}
.month header b{font-family:var(--f-display); font-size:19px}
.month header small{font-family:var(--f-mono); font-size:12px; color:var(--muted)}
.month.now header{box-shadow:inset 0 3px 0 var(--green)}
.month .list{padding:12px; display:grid; gap:10px; align-content:start; flex:1}
.month .empty{color:var(--muted); font-size:14px; padding:10px 4px}
.ev{display:grid; grid-template-columns:56px minmax(0,1fr); gap:12px; padding:12px; border:1px solid var(--line); border-radius:6px; background:var(--surface)}
.ev:hover{border-color:var(--c)}
.ev .dt{border-radius:5px; text-align:center; padding:6px 2px; background:var(--mist); align-self:start}
.ev .dt b{display:block; font-family:var(--f-display); font-size:24px; line-height:1}
.ev .dt small{font-size:11.5px; color:var(--muted); text-transform:uppercase; letter-spacing:.04em}
.ev.tbd{border-style:dashed}
.ev.tbd .dt{background:transparent; border:1.5px dashed var(--line); padding:6px 2px}
.ev.tbd .dt b{font-size:13px; font-family:var(--f-body); line-height:1.15; color:var(--muted)}
.ev .tp{display:flex; align-items:center; gap:6px; font-size:12px; font-weight:700; color:var(--muted); text-transform:uppercase; letter-spacing:.04em}
.ev .t{font-weight:700; line-height:1.3; margin:3px 0 4px; font-size:15.5px}
.ev .meta{font-size:13px; color:var(--muted)}
.ev .more{display:inline-block; margin-top:6px; font-size:13.5px; font-weight:700; color:var(--link)}
.ev.past .t{color:var(--muted)}
.ev .soon{font-size:11.5px; font-weight:700; background:var(--soon); color:var(--soon-fg); padding:1px 7px; border-radius:999px; margin-left:auto; text-transform:none; letter-spacing:0}
.cal-nav{display:flex; gap:6px}
.cal-nav button{font:inherit; width:40px; height:40px; border-radius:6px; border:1px solid var(--line); background:var(--surface); color:var(--ink); cursor:pointer; font-size:18px}
.cal-nav button:disabled{opacity:.35; cursor:default}
.ev-note{font-size:13px; color:var(--muted); margin-top:12px}
@media (max-width:640px){
  .cal{grid-auto-flow:row; grid-auto-columns:auto; overflow:visible}
  .month{border-left:0; border-top:1px solid var(--line)}.month:first-child{border-top:0}
  .cal-nav{display:none}
}

/* news */
.news{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px}
.news a{display:flex; flex-direction:column; gap:8px; padding:20px; background:var(--mist); border-radius:6px; border:1px solid transparent}
.news a:hover{border-color:var(--line)}
.news time{font-size:13px; color:var(--muted); margin-top:auto; font-family:var(--f-mono)}
.news .tg{font-size:12px; font-weight:700; color:var(--green); text-transform:uppercase; letter-spacing:.06em}
.news b{font-family:var(--f-display); font-size:17.5px; line-height:1.3}
@media (max-width:900px){.news{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.news{grid-template-columns:1fr}}

.tg-strip{border:1px solid var(--line); border-radius:6px; padding:22px 26px; display:flex; gap:16px 28px; align-items:center; justify-content:space-between; flex-wrap:wrap}
.tg-strip h3{font-size:20px; max-width:44ch}
.tg-strip p{margin:4px 0 0; color:var(--muted); font-size:14.5px}


.home-hero{padding:0}.dir{position:relative}.dir h3{margin:0}.stretched::after{content:"";position:absolute;inset:0;border-radius:6px}.dir:focus-within{outline:3px solid var(--link);outline-offset:3px}.news a{text-decoration:none;color:var(--ink)}.news b{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;overflow:hidden}.hub-title{fill:var(--ink);font-size:14px;font-weight:700}.hub-sub{fill:var(--muted);font-size:11.5px}.hub-compact{display:none}.flow{animation-play-state:paused!important}.hub.in-view .flow{animation-play-state:running!important}.month h3{font-size:19px;margin:0}.cal .meta{margin:0}.breadcrumbs{font-size:.85rem;color:var(--muted);padding-block:20px}.subnav{display:flex;gap:28px;border-bottom:1px solid var(--line);margin-bottom:32px;flex-wrap:wrap}.subnav a{padding:12px 0;color:var(--ink);text-decoration:none}.subnav a[aria-current]{border-bottom:3px solid var(--green);font-weight:700}.page-heading{padding:20px 0 30px}.article-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:48px;padding-bottom:60px}.toc{position:sticky;top:160px;display:grid;gap:14px;font-size:.95rem}.toc a{text-decoration:none}.prose{max-width:76ch;font-size:1.08rem}.prose h2{margin-top:40px;scroll-margin-top:180px}.prose p{margin:0 0 1.2em}.prose li{margin:.4em 0}.prose blockquote,.leader{border-left:3px solid var(--yel);padding:24px;background:var(--mist);margin-inline:0}.section-space{margin-block:44px}.document-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.placeholder{border:2px dashed var(--line)}.document-list{padding-left:20px}.document-list li{margin:16px 0}.contact-layout{display:grid;grid-template-columns:1fr 1.4fr;gap:60px}.feedback-form{display:grid;gap:20px}.field label:not(.check-label){display:block;font-weight:700;margin-bottom:6px}.field input:not([type=checkbox]),.field textarea,.field select{width:100%}.check-label{display:flex;gap:12px;align-items:baseline}.field a{font-size:.85rem}.errorlist{color:var(--ink);border-left:3px solid var(--yel);padding:10px 10px 10px 30px;background:var(--mist)}.notice{background:var(--soon);color:var(--soon-fg);border:1px solid var(--green);padding:24px}.gallery a{color:var(--ink)}.gallery img{width:100%;object-fit:cover;border:1px solid var(--line)}.gallery-dialog{max-width:min(94vw,1000px);background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:20px}.gallery-dialog::backdrop{background:rgba(0,0,0,.8)}.gallery-dialog figure{margin:0}.gallery-dialog img{display:block;max-height:72vh;max-width:100%;margin:auto}.gallery-dialog button{background:var(--mist);color:var(--ink);border:1px solid var(--line);padding:8px 18px;border-radius:4px}.gallery-dialog [data-gallery-close]{display:block;margin:0 0 12px auto}.gallery-controls{display:flex;justify-content:center;align-items:center;gap:24px;margin-top:16px}
@media(max-width:900px){.article-layout,.contact-layout{grid-template-columns:1fr;gap:28px}.toc{position:static;display:flex;flex-wrap:wrap;border-bottom:1px solid var(--line);padding-bottom:24px}.document-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.document-grid{grid-template-columns:1fr}.home-hero .w{padding-block:36px}.hero .btns .btn{white-space:normal}.tasks h2{font-size:26px}}
@media(max-width:414px){.hub{display:none}.hub-compact{display:grid;grid-template-columns:1fr 1fr;gap:8px}.hub-compact a{padding:12px 8px;border:1px solid var(--c);border-radius:6px;background:var(--surface);font-size:.85rem;font-weight:700;text-decoration:none;color:var(--ink)}.hub-compact small{display:block;font-size:.7rem;font-weight:400;color:var(--muted);margin-top:4px}}

.smart-captcha{height:100px}

.news .tg{color:var(--soon-fg)}
.nav{scrollbar-width:none}.nav::-webkit-scrollbar{display:none}@media(max-width:414px){.nav{gap:12px;font-size:.82rem}}

.prose #tasks{background:var(--band);color:var(--on-band);padding:24px;margin-bottom:0}.prose #tasks + ul{background:var(--band);color:var(--on-band);margin-top:0;padding:0 24px 28px 44px;border-bottom:3px solid var(--yel)}.page-heading{background:var(--mist);padding:28px;margin-bottom:36px}.leader h3{font-size:1.5rem}
@media(min-width:900px) and (max-width:1150px){.head{flex-wrap:nowrap;gap:14px}.head .brand b{font-size:1rem}.head .brand small{font-size:.65rem}.nav{order:0;width:auto;margin-left:auto;gap:14px;font-size:.9rem}.tools{gap:7px;margin-left:0}.tools .mode span{display:none}.tools .mode{padding:7px}.tools .contact{padding:8px 10px}.tools .telegram{display:none}}
/* Shared event calendar: tokens only; no inline dynamic CSS. */
.color-teal{--event-color:var(--teal)}.color-blue{--event-color:var(--blue)}.color-yel{--event-color:var(--yel)}.color-graphite{--event-color:var(--graphite)}.color-navy{--event-color:var(--navy)}.color-green{--event-color:var(--green)}
.calendar-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:14px;margin:18px 0}.calendar-toolbar [role=tablist]{display:flex;gap:5px}.calendar-toolbar [role=tab]{background:var(--surface);border:1px solid var(--line);color:var(--ink);padding:8px 11px;border-radius:5px;font:700 13px 'PT Sans',sans-serif}.calendar-toolbar [role=tab][aria-selected=true]{background:var(--link);color:var(--bg)}.calendar-legend{display:flex;flex-wrap:wrap;gap:10px;font-size:11px;color:var(--muted)}.calendar-legend i{display:inline-block;width:6px;height:6px;background:var(--event-color);border-radius:50%;margin-right:4px}.calendar-pending{border-bottom:1px dashed var(--muted)}.calendar-arrows{display:flex;gap:6px;margin-left:auto}.calendar-arrows button{background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:5px;min-width:32px;min-height:32px}.calendar-arrows button:disabled{opacity:.35}.event-calendar .calendar-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:16px}.calendar-track .month{min-width:270px;flex:1 0 270px;scroll-snap-align:start}.calendar-track .current-month{border-top:3px solid var(--green)}.calendar-track .ev{border-left:3px solid var(--event-color);padding-left:8px;grid-template-columns:minmax(42px,auto) 1fr}.calendar-track .dt b{font-size:20px;overflow-wrap:anywhere}.calendar-track .calendar-tbd{border:1px dashed var(--line)}.calendar-track .calendar-tbd .dt b{font-size:12px}.calendar-track .cancelled .t{text-decoration:line-through}.calendar-track .t a{color:var(--ink);text-decoration:none}.calendar-track .soon{background:var(--soon);color:var(--soon-fg);font-size:11px;padding:2px 5px}.calendar-track .more{display:block;margin-top:5px}.event-calendar [hidden]{display:none!important}@media(max-width:640px){.event-calendar .calendar-track{display:block;overflow:visible}.calendar-track .month{min-width:0;margin-bottom:16px}.calendar-arrows{display:none}}
/* Text available to assistive technology without changing the visible layout. */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
