@font-face{font-family:"Montserrat";src:url(fonts/Montserrat.ttf) format("truetype");font-weight:100 900;font-style:normal}
@font-face{font-family:"Montserrat";src:url(fonts/Montserrat-Italic.ttf) format("truetype");font-weight:100 900;font-style:italic}
@font-face{font-family:"Cond";src:url(fonts/DejaVuSansCondensed-Bold.ttf) format("truetype");font-weight:700}
:root{--red:#e5291d;--ink:#111;--grey:#6b6f72;--grey2:#4a4e51;--rule:#d9dde0;--mist:#f3f6f7;--ok:#1d8a4e;--okbg:#e6f6ec;--bad:#b3261e;--badbg:#fdecea;--max:980px}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{font:16px/1.55 "Montserrat",Helvetica,Arial,sans-serif;color:var(--ink);background:#fff;min-height:100vh;display:flex;flex-direction:column}
a{color:var(--red);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3{font-family:"Cond",sans-serif;font-weight:700;text-transform:uppercase;letter-spacing:.03em;line-height:1.08}
h1{font-size:2.1rem;margin:.2rem 0 .8rem}
h1 small{font-family:"Montserrat";font-size:1rem;color:var(--grey);text-transform:none;letter-spacing:0;margin-left:.5rem}
h2{font-size:1.5rem;margin:1.6rem 0 .8rem}
h3{font-size:1.1rem;margin:1rem 0 .4rem}
.kicker{display:block;font:700 .72rem/1 "Cond",sans-serif;letter-spacing:.3em;text-transform:uppercase;color:var(--red);margin-bottom:.5rem}
.mono{font-family:"SF Mono",Menlo,Consolas,monospace;font-size:.92em}
.hint{color:var(--grey);font-size:.9rem}
.tag{display:inline-block;font:700 .62rem/1 "Cond",sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--red);border:1px solid var(--red);border-radius:3px;padding:.25em .5em;vertical-align:middle}
.tag.off{color:var(--grey);border-color:var(--grey)}
/* шапка и подвал */
.top{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem 1rem;border-bottom:1.5px solid var(--ink);max-width:var(--max);width:100%;margin:0 auto}
.brand{display:flex;align-items:center;gap:.8rem;color:var(--ink)}
.brand img{height:34px;width:auto}
.brand span{font:600 .65rem/1.4 "Montserrat";letter-spacing:.22em;text-transform:uppercase;color:var(--grey)}
.brand:hover{text-decoration:none}
.top nav{display:flex;gap:.2rem;flex-wrap:wrap;justify-content:flex-end}
.top nav a{font:700 .78rem/1 "Cond",sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);padding:.55em .7em;border-radius:4px}
.top nav a.on,.top nav a:hover{background:var(--mist);text-decoration:none}
.top nav a.adm{color:var(--red)}
.wrap{flex:1;width:100%;max-width:var(--max);margin:0 auto;padding:1.4rem 1rem 3rem}
.wrap.wide{max-width:1240px}
.foot{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;max-width:var(--max);width:100%;margin:0 auto;padding:1rem;border-top:1px solid var(--rule);font:600 .62rem/1.6 "Montserrat";letter-spacing:.2em;text-transform:uppercase;color:var(--grey)}
.foot a{color:var(--grey)}
/* главная */
.hero{position:relative;overflow:hidden;text-align:center;padding:2.4rem 1rem 2.2rem;border-bottom:1px solid var(--rule)}
.hero .wave{position:absolute;right:-60px;top:-50px;width:360px;opacity:.5;pointer-events:none}
.hero .biglogo{position:relative;width:220px;max-width:70%;height:auto}
.hero .kicker{position:relative;margin-top:1.4rem;color:var(--grey)}
.hero h1{position:relative;font-size:2.8rem;margin:.2rem 0 .6rem}
.hero h1 .r{color:var(--red)}
.lead{font-size:1.05rem;color:var(--grey2);max-width:620px;margin:0 auto 1rem}
.hero .lead{margin-bottom:1.4rem}
.cta{position:relative;display:flex;gap:.6rem;justify-content:center;flex-wrap:wrap}
.btn{display:inline-block;font:700 .85rem/1 "Cond",sans-serif;letter-spacing:.1em;text-transform:uppercase;padding:.9em 1.4em;border:1.5px solid var(--ink);border-radius:5px;color:var(--ink);background:#fff;cursor:pointer}
.btn:hover{background:var(--mist);text-decoration:none}
.btn.red{background:var(--red);border-color:var(--red);color:#fff}
.btn.red:hover{background:#c9201a}
.btn.off{color:var(--grey);border-color:var(--rule);background:#fff;cursor:default}
.stages{list-style:none;display:grid;gap:.6rem}
.stages li{display:grid;grid-template-columns:3rem 1fr;gap:.6rem;align-items:start;padding:.8rem 0;border-top:1px solid var(--rule)}
.stages .num,.card .num{font:italic 700 1.9rem/1 "Cond",sans-serif;color:var(--red)}
.stages b{display:block;font:700 1.05rem/1.2 "Cond",sans-serif;text-transform:uppercase;letter-spacing:.03em}
.stages i{display:block;font-style:normal;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--grey);margin:.2rem 0 .3rem}
.stages p{font-size:.92rem;color:var(--grey2)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin-top:1.4rem}
.note{margin:1.2rem 0;padding:.9rem 1.1rem;background:var(--mist);border-left:4px solid var(--red);border-radius:4px}
.note b{display:block;font:700 .7rem/1.6 "Cond",sans-serif;letter-spacing:.26em;text-transform:uppercase;color:var(--red)}
.note p,.note ul{margin-top:.2rem;white-space:pre-line}
.note ul{padding-left:1.1rem}
.note.err{background:var(--badbg);border-color:var(--bad)}
.note.err b{color:var(--bad)}
/* формы */
.form{display:grid;gap:1rem;margin-top:1rem}
.form.narrow{max-width:420px}
.form fieldset{border:1px solid var(--rule);border-radius:6px;padding:1rem 1.1rem 1.1rem;display:grid;gap:.9rem}
.form legend{font:700 .72rem/1 "Cond",sans-serif;letter-spacing:.26em;text-transform:uppercase;color:var(--grey);padding:0 .4em}
.form label{display:grid;gap:.3rem;font-size:.9rem;font-weight:600}
.form label small{font-weight:400;color:var(--grey);margin-left:.3em}
.form input[type=text],.form input[type=email],.form input[type=password],.form input[type=search],.form select,.form textarea{font:inherit;font-weight:400;padding:.6em .7em;border:1.5px solid var(--rule);border-radius:5px;background:#fff;color:var(--ink);width:100%}
.form input:focus,.form select:focus,.form textarea:focus{outline:none;border-color:var(--ink)}
.form label.bad input,.form label.bad select{border-color:var(--bad);background:var(--badbg)}
.form label.short{max-width:160px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}
.form .check{grid-template-columns:auto 1fr;align-items:start;font-weight:400;gap:.6rem}
.form .check input{margin-top:.3em;width:1.1em;height:1.1em}
.form .check.bad span{color:var(--bad)}
.form .other{display:grid;gap:.9rem;padding:.9rem;background:var(--mist);border-radius:5px}
.form .other.hide{display:none}
.hp{position:absolute;left:-9999px;top:-9999px;height:0;overflow:hidden}
.actions{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.form.inline{gap:.6rem;margin-top:.6rem}
.form.inline .row{display:flex;gap:.8rem;flex-wrap:wrap;align-items:end}
.form.inline .row label{font-size:.78rem}
.form.inline .row input,.form.inline .row select{width:auto;min-width:5em;padding:.4em .5em}
.form.inline .row.blocks label{font-size:.68rem;max-width:7.5em}
.form.inline .row .check{align-items:center}
.form.danger{display:flex;align-items:center;gap:1rem;margin-top:.3rem}
.form.danger .btn{font-size:.72rem;padding:.7em 1em}
/* код участника */
.codebox{display:grid;gap:.4rem;padding:1.2rem 1.4rem;background:var(--ink);color:#fff;border-radius:8px;margin:1rem 0 1.4rem;max-width:560px}
.codebox .code{font:700 2.4rem/1 "Cond",sans-serif;letter-spacing:.14em;color:#fff}
.codebox .hint{color:#b9bcbe}
.codebox.small{padding:.8rem 1rem;margin:0;text-align:right;min-width:200px}
.codebox.small .code{font-size:1.6rem}
.profile{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;flex-wrap:wrap;padding-bottom:1rem;border-bottom:1.5px solid var(--ink)}
.profile p{color:var(--grey2)}
/* карточки этапов */
.cards{display:grid;gap:.9rem;margin-top:.4rem}
.card{border:1px solid var(--rule);border-radius:8px;padding:1rem 1.1rem}
.card.dim{opacity:.6}
.card header{display:grid;grid-template-columns:2.6rem 1fr auto;gap:.7rem;align-items:center}
.card header b{display:block;font:700 1.05rem/1.2 "Cond",sans-serif;text-transform:uppercase;letter-spacing:.03em}
.card header i{display:block;font-style:normal;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--grey)}
.card .when{font-size:.88rem;color:var(--grey2);margin-top:.5rem}
.card .comment{margin-top:.6rem;padding:.6rem .8rem;background:var(--mist);border-radius:5px;font-size:.92rem}
.badge{display:inline-block;font:700 .72rem/1 "Cond",sans-serif;letter-spacing:.1em;text-transform:uppercase;padding:.5em .7em;border-radius:4px;background:var(--mist);color:var(--grey2);white-space:nowrap}
.badge.ok{background:var(--okbg);color:var(--ok)}
.badge.off{background:#fff;border:1px solid var(--rule);color:var(--grey)}
table.blocks{margin-top:.6rem;border-collapse:collapse;font-size:.9rem;min-width:280px}
table.blocks td{padding:.3em .6em;border-bottom:1px solid var(--rule)}
table.blocks td.n{text-align:right;font-weight:700;width:4em}
/* админка */
.subnav{display:flex;gap:.2rem;flex-wrap:wrap;margin-bottom:1rem;padding-bottom:.6rem;border-bottom:1px solid var(--rule)}
.subnav a{font:700 .75rem/1 "Cond",sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);padding:.55em .7em;border-radius:4px}
.subnav a.on,.subnav a:hover{background:var(--mist);text-decoration:none}
.subnav a.right{margin-left:auto;color:var(--grey)}
.stats{display:flex;gap:.6rem;flex-wrap:wrap;margin:.4rem 0 1rem}
.stats div{min-width:110px;padding:.7rem .9rem;border:1px solid var(--rule);border-radius:6px}
.stats b{display:block;font:700 1.6rem/1 "Cond",sans-serif}
.stats span{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--grey)}
.filters{display:flex;gap:.5rem;flex-wrap:wrap;margin:.4rem 0 1rem}
.filters input,.filters select{font:inherit;padding:.5em .7em;border:1.5px solid var(--rule);border-radius:5px;min-width:160px}
.filters input[type=search]{flex:1;min-width:220px}
table.list{width:100%;border-collapse:collapse;font-size:.88rem;margin:.4rem 0 1rem}
table.list th{text-align:left;font:700 .66rem/1.4 "Cond",sans-serif;letter-spacing:.18em;text-transform:uppercase;color:var(--grey);padding:.5em .6em;border-bottom:1.5px solid var(--ink)}
table.list td{padding:.5em .6em;border-bottom:1px solid var(--rule);vertical-align:top}
table.list td.n,table.list th.n{text-align:right;white-space:nowrap}
table.list td small{color:var(--grey);font-size:.8rem}
table.list tr.off td{color:var(--grey)}
table.list tr.bad td{background:var(--badbg)}
table.list.small{font-size:.8rem}
table.kv{border-collapse:collapse;font-size:.92rem}
table.kv th{text-align:left;font-weight:600;color:var(--grey);padding:.35em 1em .35em 0;vertical-align:top;white-space:nowrap}
table.kv td{padding:.35em 0}
textarea{font:inherit;padding:.6em .7em;border:1.5px solid var(--rule);border-radius:5px;width:100%}
@media (max-width:720px){
  .two,.grid2{grid-template-columns:1fr}
  .hero h1{font-size:2.1rem}
  .top{flex-direction:column;align-items:flex-start}
  .card header{grid-template-columns:2.2rem 1fr}
  .card header .badge{grid-column:2;justify-self:start}
  table.list{display:block;overflow-x:auto}
}
/* стенд, тест */
.standbar{background:#fff4d6;color:#7a5a00;text-align:center;font:700 .66rem/1 "Cond",sans-serif;letter-spacing:.2em;text-transform:uppercase;padding:.55em 1em}
.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.9rem}
.form label.hide{display:none}
.form input[readonly]{background:var(--mist);color:var(--grey2)}
.rules{margin:1rem 0 1.2rem;padding:1rem 1.2rem;border:1.5px solid var(--ink);border-radius:8px}
.rules > b{display:block;font:700 .72rem/1.6 "Cond",sans-serif;letter-spacing:.26em;text-transform:uppercase;color:var(--red);margin-bottom:.3rem}
.rules ul{padding-left:1.1rem;display:grid;gap:.35rem}
.card .act{margin-top:.7rem;display:flex;gap:.8rem;align-items:center;flex-wrap:wrap}
.timerbar{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:1rem;flex-wrap:wrap;background:#fff;border-bottom:1.5px solid var(--ink);padding:.6rem 0;margin-bottom:1rem}
.timerbar .t{font:700 1.8rem/1 "Cond",sans-serif;letter-spacing:.06em;min-width:4.2ch}
.timerbar.low .t{color:var(--red)}
.timerbar .btn{margin-left:auto;padding:.7em 1.1em}
.test{display:grid;gap:1.4rem}
.tblock{border:1px solid var(--rule);border-radius:8px;padding:1rem 1.1rem}
.tblock header{display:grid;grid-template-columns:2.6rem 1fr;gap:.7rem;align-items:center}
.tblock header .num{font:italic 700 1.9rem/1 "Cond",sans-serif;color:var(--red)}
.tblock header b{display:block;font:700 1.05rem/1.2 "Cond",sans-serif;text-transform:uppercase;letter-spacing:.03em}
.tblock header i{display:block;font-style:normal;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--grey)}
.tblock .instr{margin:.6rem 0 .2rem;font-size:.9rem;color:var(--grey2);font-style:italic}
.q{border:0;border-top:1px solid var(--rule);padding:.8rem 0 .2rem;margin-top:.6rem}
.q legend{font-weight:600;padding:0;margin-bottom:.5rem;float:left;width:100%}
.q legend+*{clear:both}
.q .qn{display:inline-block;min-width:1.6em;height:1.6em;line-height:1.6em;text-align:center;border-radius:50%;background:var(--mist);font:700 .8rem/1.6em "Cond",sans-serif;margin-right:.3rem}
.q.done .qn{background:var(--ink);color:#fff}
.opts{display:grid;grid-template-columns:1fr 1fr;gap:.4rem}
.opt{display:flex;align-items:center;gap:.55rem;padding:.55em .7em;border:1.5px solid var(--rule);border-radius:6px;cursor:pointer}
.opt:hover{border-color:var(--grey)}
.opt input{position:absolute;opacity:0;width:0;height:0}
.opt .l{font:700 .8rem/1 "Cond",sans-serif;color:var(--grey);min-width:1em}
.opt:has(input:checked){border-color:var(--red);background:#fff5f4}
.opt:has(input:checked) .l{color:var(--red)}
.opt:has(input:focus-visible){outline:2px solid var(--ink);outline-offset:1px}
.typed{display:flex;align-items:center;gap:.6rem;font-weight:600}
.typed input{font:inherit;padding:.55em .7em;border:1.5px solid var(--rule);border-radius:6px;min-width:0;width:16rem;max-width:100%}
.typed input:focus{outline:none;border-color:var(--ink)}
.doc{max-width:760px}
.doc h1{font-size:1.4rem}
.doc h3{margin-top:1.2rem}
.doc p{margin:.4rem 0;font-size:.95rem}
.form.danger input[type=text]{width:auto;min-width:16rem;font:inherit;padding:.5em .6em;border:1.5px solid var(--rule);border-radius:5px}
@media (max-width:720px){
  .grid3,.opts{grid-template-columns:1fr}
  .timerbar .t{font-size:1.5rem}
}
.grid2,.grid3{align-items:end}
/* развилка, шаги, проверка школы */
.fork{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1.4rem}
.forkcard{display:flex;flex-direction:column;gap:.5rem;padding:1.2rem 1.3rem;border:1.5px solid var(--ink);border-radius:8px;color:var(--ink)}
.forkcard:hover{text-decoration:none;background:var(--mist)}
.forkcard b{font:700 1.4rem/1.1 "Cond",sans-serif;text-transform:uppercase;letter-spacing:.03em}
.forkcard p{color:var(--grey2);font-size:.95rem;flex:1}
.forkcard .btn{align-self:flex-start}
.steps{list-style:none;counter-reset:st;display:grid;gap:.4rem;margin:1rem 0}
.steps li{counter-increment:st;display:grid;grid-template-columns:2.4rem 1fr;gap:.2rem .6rem;padding:.8rem 0;border-top:1px solid var(--rule)}
.steps li::before{content:counter(st);grid-row:span 2;font:italic 700 1.7rem/1 "Cond",sans-serif;color:var(--red)}
.steps b{font:700 1.05rem/1.2 "Cond",sans-serif;text-transform:uppercase;letter-spacing:.03em}
.steps p{color:var(--grey2);font-size:.92rem;grid-column:2}
.steps .mono{word-break:break-all}
.whois{display:grid;grid-template-columns:auto 1fr auto;gap:1rem;margin:.6rem 0;padding:1rem 1.1rem;background:var(--mist);border-radius:8px}
.whois span{display:block;font:700 .64rem/1.4 "Cond",sans-serif;letter-spacing:.2em;text-transform:uppercase;color:var(--grey)}
.whois b{display:block;font-size:1.05rem}
.whois small{color:var(--grey2)}
textarea.small{font-size:.8rem;line-height:1.45}
.doc ul{padding-left:1.2rem;margin:.3rem 0}
.doc li{margin:.2rem 0;font-size:.95rem}
@media (max-width:720px){
  .fork,.whois{grid-template-columns:1fr}
  .review{display:block;overflow-x:auto}
}
