:root{--magenta:#E20074;--magenta-h:#CB0068;--ink:#191919;--grey:#6B6B6B;--line:#D0D0D0;--light:#F5F5F5;--tint:#FFF0F7;--ok:#00A650;--warn:#FECB00;--danger:#D90000;--info:#0078D2;--radius:6px}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:#fff;color:var(--ink);font:15px/1.45 "TeleNeoWeb","Tele Neo","Segoe UI",Arial,sans-serif}
a{color:var(--magenta)}
button{font:inherit}
h1{font-size:22px;margin:0 0 4px}
h2{font-size:20px;margin:0 0 6px;line-height:1.25}
h3{font-size:13px;margin:18px 0 8px;color:var(--grey);text-transform:uppercase;letter-spacing:.05em;font-weight:700}
p{margin:6px 0}
.muted{color:var(--grey);font-size:13px}
.hidden{display:none!important}
.err{color:var(--danger);font-size:13px;min-height:18px}

/* header */
header{position:sticky;top:0;z-index:5;background:#fff;border-top:6px solid var(--magenta);border-bottom:1px solid var(--line)}
.bar{max-width:1180px;margin:0 auto;padding:10px 16px;display:flex;align-items:center;gap:12px}
.logo{height:30px;width:auto;flex:none;display:block}
.brand{font-weight:700;line-height:1.2}
.brand small{display:block;font-weight:400;color:var(--grey);font-size:12px}
.spacer{flex:1}
.who{font-size:13px;color:var(--grey)}
.ctl{display:flex;gap:6px;align-items:center;flex-wrap:wrap}

/* series tabs */
.series{border-top:1px solid var(--line);background:var(--light)}
.series .bar{padding:0 16px;gap:0;overflow-x:auto}
.series button{border:0;background:none;padding:10px 16px;cursor:pointer;color:var(--grey);border-bottom:3px solid transparent;white-space:nowrap;font-weight:700}
.series button small{display:block;font-weight:400;font-size:11px}
.series button.on{color:var(--magenta);border-bottom-color:var(--magenta);background:#fff}
.series button.soon{opacity:.6;cursor:default}
.wrap.single{grid-template-columns:1fr}
.reg{width:100%;border-collapse:collapse;font-size:14px}
.reg th,.reg td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:top}
.reg th{font-size:12px;color:var(--grey);text-transform:uppercase;letter-spacing:.04em}
.pill{display:inline-block;padding:1px 8px;border-radius:10px;font-size:12px;background:var(--light);color:var(--grey)}
.pill.requested{background:var(--tint);color:var(--magenta)}

/* buttons & inputs */
.btn{display:inline-block;padding:9px 16px;border-radius:var(--radius);border:1px solid var(--magenta);background:var(--magenta);color:#fff;font-weight:700;cursor:pointer;text-decoration:none}
.btn:hover{background:var(--magenta-h)}
.btn.sec{background:#fff;color:var(--magenta)}
.btn.sm{padding:4px 10px;font-weight:400;font-size:13px}
.btn.ghost{border-color:var(--line);background:#fff;color:var(--ink)}
.btn[disabled]{opacity:.5;cursor:default}
label{display:block;font-size:13px;color:var(--grey);margin:10px 0 4px}
input,textarea{width:100%;padding:9px 10px;border:1px solid var(--line);border-radius:var(--radius);font:inherit;color:var(--ink);background:#fff}
textarea{min-height:76px;resize:vertical}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}

/* gate */
.gate{max-width:520px;margin:40px auto;padding:0 16px}
.card{border:1px solid var(--line);border-radius:var(--radius);padding:16px;background:#fff;margin-bottom:14px}

/* layout */
.wrap{max-width:1180px;margin:0 auto;padding:16px;display:grid;grid-template-columns:300px 1fr;gap:20px;align-items:start}
.rail{position:sticky;top:64px}
.rail .card{padding:0;overflow:hidden}
.rail .rh{padding:10px 14px;background:var(--light);font-weight:700;display:flex;gap:8px;align-items:center}
.rail .rh .muted{font-weight:400;margin-left:auto}
.agenda{list-style:none;margin:0;padding:0}
.agenda li{display:grid;grid-template-columns:28px 1fr auto;gap:10px;align-items:start;padding:11px 14px;border-top:1px solid var(--line);cursor:pointer;color:var(--grey)}
.agenda li:hover{background:#fafafa}
.agenda li .n{width:24px;height:24px;border-radius:50%;border:2px solid var(--magenta);color:var(--magenta);display:grid;place-items:center;font-size:12px;font-weight:700;background:#fff;margin-top:1px}
.agenda li .t{font-weight:700;color:var(--ink)}
.agenda li .s{font-size:12px;display:block;font-weight:400;color:var(--grey)}
.agenda li .m{font-size:12px;white-space:nowrap}
.agenda li.done .n{background:var(--ok);border-color:var(--ok);color:#fff}
.agenda li.done .t{color:var(--grey);font-weight:400}
.agenda li.now{background:var(--tint)}
.agenda li.now .n{background:var(--magenta);border-color:var(--magenta);color:#fff}
.agenda li.sel{box-shadow:inset 3px 0 0 var(--magenta)}
.agenda li.locked{cursor:not-allowed;opacity:.55}
.agenda li.locked .n{border-color:var(--line);color:var(--grey);font-size:11px}
.agenda li.locked .s{display:none}
.rail .foot{padding:10px 14px;border-top:1px solid var(--line);font-size:13px;color:var(--grey)}

/* block section */
.block{border:1px solid var(--line);border-radius:var(--radius);background:#fff;margin-bottom:14px}
.block .bh{padding:14px 18px;border-bottom:1px solid var(--line);display:flex;gap:12px;align-items:center;background:var(--light)}
.block .bh .num{width:34px;height:34px;border-radius:50%;background:var(--magenta);color:#fff;display:grid;place-items:center;font-weight:700;font-size:16px;flex:none}
.block .bh .meta{font-size:13px;color:var(--grey)}
.block .bh .live{margin-left:auto;font-size:12px;font-weight:700;color:var(--magenta);border:1px solid var(--magenta);border-radius:12px;padding:2px 10px;white-space:nowrap}
.block .bh .live.done{color:var(--ok);border-color:var(--ok)}
.block .bh .live.next{color:var(--grey);border-color:var(--line)}
.block .bb{padding:16px 18px}
.lead{font-size:18px;line-height:1.4;margin:0 0 12px}
.points{margin:0;padding-left:18px}
.points li{margin:4px 0}
.ask{border-left:4px solid var(--magenta);background:var(--tint);padding:10px 14px;margin:14px 0;font-weight:700}

/* news */
.newsgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px;margin:8px 0}
.news{border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;margin:0;display:grid;gap:6px;align-content:start;border-top-width:4px}
.news.good{border-top-color:var(--ok)}
.news.bad{border-top-color:var(--magenta)}
.news.tech{border-top-color:var(--info)}
.news .tag{font-size:11px;font-weight:700;color:var(--magenta);text-transform:uppercase;letter-spacing:.06em}
.news.good .tag{color:var(--ok)}
.news.tech .tag{color:var(--info)}
.news .nt{font-weight:700;font-size:17px}
.news .why{border-top:1px dashed var(--line);padding-top:8px;margin-top:4px;font-style:italic}
.news .src{font-size:12px;color:var(--grey)}

/* corners grid */
.corners{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:10px 0}
.corner{border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px;background:var(--light);cursor:pointer;display:flex;flex-direction:column;gap:4px;min-height:96px;text-align:left}
.corner:hover{border-color:var(--grey)}
.corner .ct{font-weight:700}
.corner .cx{font-size:12px;color:var(--grey);flex:1}
.corner .cv{font-size:12px;color:var(--grey)}
.corner.lit{background:#fff;border-color:var(--magenta);border-width:2px}
.corner.lit .ct::before{content:"★ ";color:var(--magenta)}
.corner.voted{background:var(--tint)}
.corner.voted .cv{color:var(--magenta);font-weight:700}

/* icons */
.ic{width:1em;height:1em;display:inline-block;vertical-align:-.15em}

/* ecosystem figure + lightbox */
.eco{margin:4px 0 14px;display:grid;grid-template-columns:minmax(220px,300px) 1fr;gap:16px;align-items:center;border:1px solid var(--line);border-radius:var(--radius);padding:12px;background:#fff}
.ecoimg{border:1px solid var(--line);border-radius:var(--radius);padding:0;background:#fff;cursor:zoom-in;overflow:hidden;line-height:0}
.ecoimg img{width:100%;height:auto;display:block;transition:transform .2s}
.ecoimg:hover img{transform:scale(1.02)}
.eco figcaption{font-size:15px;line-height:1.45}
.lightbox{position:fixed;inset:0;background:rgba(25,25,25,.85);z-index:50;display:grid;place-items:center;cursor:zoom-out;padding:24px}
.lightbox img{max-width:min(96vw,900px);max-height:88vh;background:#fff;border-radius:var(--radius);box-shadow:0 10px 40px rgba(0,0,0,.4)}
.lbhint{position:absolute;bottom:14px;color:#fff;font-size:13px;opacity:.8}

/* zoo word band */
.zoo{border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px 10px;margin:4px 0 14px;background:linear-gradient(180deg,#fff,var(--light))}
.zw{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;line-height:1.2}
.z{color:#9a9a9a;white-space:nowrap}
.z.s0{font-size:11px}.z.s1{font-size:13px}.z.s2{font-size:15px;color:#7a7a7a}.z.s3{font-size:18px;color:#6b6b6b}
.z.lit{font-size:20px;font-weight:700;color:var(--magenta)}
.zc{margin-top:10px;font-size:13px;color:var(--grey);border-top:1px dashed var(--line);padding-top:8px}

/* compass stepper */
.steps{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:10px 0 14px;position:relative}
.steps::before{content:"";position:absolute;left:10%;right:10%;top:17px;height:2px;background:var(--line)}
.step{position:relative;text-align:center;padding:0 4px}
.step .sn{width:34px;height:34px;border-radius:50%;background:var(--magenta);color:#fff;font-weight:700;display:grid;place-items:center;margin:0 auto 6px;border:3px solid #fff;box-shadow:0 0 0 1px var(--magenta)}
.step .si{font-size:22px;color:var(--magenta);height:26px}
.step .sl{font-weight:700;margin-top:2px}
.step .sh{font-size:12px;color:var(--grey);line-height:1.3}

/* register pipeline */
.pipe{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:6px 0 14px}
.pst{border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px;background:var(--light);position:relative}
.pst:not(:last-child)::after{content:"›";position:absolute;right:-7px;top:10px;color:var(--grey);font-size:18px;z-index:1}
.pst.on{background:#fff;border-color:var(--magenta)}
.pst .pn{font-size:24px;font-weight:700;color:var(--grey);line-height:1}
.pst.on .pn{color:var(--magenta)}
.pst .pl{font-weight:700;text-transform:capitalize;margin-top:2px}
.pst .ph{font-size:12px;color:var(--grey)}

/* skills block */
.anat{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin:8px 0 4px}
.an{display:grid;grid-template-columns:34px 1fr;gap:10px;border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px;background:var(--light)}
.an .ai{font-size:26px;color:var(--magenta);line-height:1}
.an .ap{font-weight:700}
.an .at{font-size:13px;color:var(--grey);line-height:1.35}
.an code{font-size:12px;background:#fff;border:1px solid var(--line);border-radius:3px;padding:0 4px}
.howto{margin:0;padding-left:0;counter-reset:s;list-style:none;display:grid;gap:6px}
.howto li{counter-increment:s;display:grid;grid-template-columns:30px 1fr;gap:10px;align-items:start}
.howto li::before{content:counter(s);width:26px;height:26px;border-radius:50%;background:var(--magenta);color:#fff;font-weight:700;font-size:13px;display:grid;place-items:center}
.cmp{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:8px 0}
.skill{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:#fff;border-top-width:4px}
.skill.bad{border-top-color:var(--danger)}
.skill.good{border-top-color:var(--ok)}
.sk-h{padding:10px 14px;font-weight:700;display:flex;gap:8px;align-items:center}
.skill.bad .sk-h{color:var(--danger)}.skill.good .sk-h{color:var(--ok)}
.sk-code{margin:0;padding:12px 14px;background:#FAFAFA;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font:12.5px/1.5 Consolas,"Cascadia Code",monospace;white-space:pre-wrap;color:var(--ink)}
.sk-why{margin:0;padding:10px 14px 12px 30px;font-size:13px}
.sk-why li{margin:3px 0}

/* corner icons */
.corner .ci{font-size:22px;color:var(--grey);height:24px}
.corner.lit .ci{color:var(--magenta)}
.news .tag .ic{margin-right:4px;font-size:14px}
.linkcard{display:flex;gap:14px;align-items:center;border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;margin:10px 0;flex-wrap:wrap}
.linkcard .big{font-size:18px;font-weight:700}

/* poll bars */
.poll{margin:10px 0}
.poll .opt{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:8px 0;border-top:1px solid var(--line)}
.poll .opt:first-child{border-top:0}
.poll .barw{height:8px;background:var(--light);border-radius:4px;overflow:hidden;margin-top:4px}
.poll .bar{height:100%;background:var(--magenta)}
.poll .lbl{font-weight:700}

/* items */
.item{border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;margin-bottom:10px;display:grid;grid-template-columns:1fr auto;gap:10px}
.item.mine{border-color:var(--magenta)}
.item.main{background:var(--tint)}
.item .title{font-weight:700}
.item .text{white-space:pre-wrap;margin:4px 0}
.item .meta{font-size:12px;color:var(--grey)}
.item .meta .ans{color:var(--ok);font-weight:700}
.vote{border:1px solid var(--line);background:#fff;border-radius:var(--radius);padding:6px 10px;cursor:pointer;min-width:60px;text-align:center;align-self:start}
.vote.on{border-color:var(--magenta);color:var(--magenta);font-weight:700}
.item .acts{grid-column:1/-1;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.item.editor{grid-template-columns:1fr}
.item.editor label{margin-top:4px}
.empty{color:var(--grey);text-align:center;padding:16px;border:1px dashed var(--line);border-radius:var(--radius)}

/* inputs box */
.tabs{display:flex;gap:4px;border-bottom:2px solid var(--line);margin-bottom:12px}
.tab{padding:8px 14px;border:0;background:none;cursor:pointer;color:var(--grey);border-bottom:3px solid transparent;margin-bottom:-2px}
.tab.on{color:var(--magenta);border-bottom-color:var(--magenta);font-weight:700}
.tab .c{display:inline-block;min-width:20px;padding:0 6px;border-radius:10px;background:var(--light);color:var(--ink);font-size:12px;margin-left:4px}
details.addbox summary{cursor:pointer;font-weight:700;color:var(--magenta);list-style:none;padding:6px 0}
details.addbox summary::before{content:"+ "}
details.addbox[open] summary::before{content:"– "}

/* host */
.counters{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 12px}
.kpi{border:1px solid var(--line);border-radius:var(--radius);padding:6px 12px;min-width:96px}
.kpi b{display:block;font-size:20px;color:var(--magenta)}
.kpi span{font-size:12px;color:var(--grey)}
body.host{font-size:17px}
body.host .lead{font-size:21px}
body.host .item .title{font-size:19px}

@media (max-width:900px){
  .wrap{grid-template-columns:1fr;gap:12px}
  .rail{position:static}
  .agenda li .s{display:none}
  .corners{grid-template-columns:repeat(2,1fr)}
  .eco{grid-template-columns:1fr}
  .cmp{grid-template-columns:1fr}
  .steps{grid-template-columns:repeat(5,1fr);gap:4px}.step .sh{display:none}.step .si{display:none}
  .pipe{grid-template-columns:repeat(2,1fr)}.pst:not(:last-child)::after{display:none}
  .z.s3,.z.lit{font-size:15px}
  .item{grid-template-columns:1fr}.vote{justify-self:start}
}
