/* Главная, страницы-статьи и вход для гостей. Общая палитра и шрифты — в theme.css. */


html.site{
  /* палитра и шрифты общие, живут в theme.css; здесь только то, что на гостевых страницах чуть темнее */
  --muted:var(--ink-2);
  scroll-behavior:smooth;
}
html.site body{background:var(--paper);color:var(--ink);font:17px/1.6 var(--sans);-webkit-font-smoothing:antialiased}
.site main{padding:0}
.site a{color:var(--blue)}
.site :focus-visible{outline:3px solid var(--blue);outline-offset:3px;border-radius:4px}
.site .messages{max-width:1180px;margin:0 auto;padding:12px clamp(16px,4vw,40px) 0}
.site .msg{background:var(--card);border:1px solid var(--line);color:var(--ink)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wrap{max-width:1180px;margin:0 auto;padding:0 clamp(16px,4vw,40px)}
.ico{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}

/* ---- кнопки ---- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 20px;border:1.5px solid transparent;border-radius:10px;
  font:600 16px/1.2 var(--sans);text-decoration:none;cursor:pointer;transition:background-color .15s,border-color .15s,color .15s}
.site .btn:hover{text-decoration:none}
.btn-lg{padding:15px 26px;font-size:17px}
.btn-sm{padding:9px 16px;font-size:15px}
.site .btn-solid{background:var(--blue);color:var(--on-accent)}
.site .btn-solid:hover{background:var(--blue-d);color:var(--on-accent)}
.site .btn-line{border-color:var(--ink);color:var(--ink);background:transparent}
.site .btn-line:hover{background:var(--ink);color:var(--on-ink)}
.site .btn-hi{background:var(--hi);color:var(--on-hi)}
.site .btn-hi:hover{background:#fff3a8;color:var(--ink)}
.site .btn-ghost{border-color:rgba(255,255,255,.55);color:#fff}
.site .btn-ghost:hover{background:rgba(255,255,255,.12);color:#fff}
.cta{display:flex;flex-wrap:wrap;gap:12px;margin:0}

/* ---- шапка ---- */
.sh{position:relative;z-index:30;border-bottom:1px solid var(--line);background:var(--paper)}
.sh-in{display:flex;align-items:center;gap:28px;height:68px}
.site .sh-brand{display:inline-flex;flex-direction:column;align-items:flex-start;gap:0;color:var(--ink);font:700 22px/1 var(--serif);letter-spacing:-.01em}
.sh-brand svg{width:64px;height:8px;margin-top:2px;fill:none;stroke:var(--red);stroke-width:2;stroke-linecap:round}
.sh-nav{display:flex;gap:26px;margin-left:12px}
.site .sh-nav a{color:var(--ink-2);font-size:15.5px;padding:6px 0;border-bottom:1.5px solid transparent}
.site .sh-nav a:hover{color:var(--ink);text-decoration:none;border-color:var(--ink)}
.sh-act{margin-left:auto;display:flex;align-items:center;gap:18px}
.site .sh-login{color:var(--ink);font-weight:500}

/* ---- первый экран ---- */
.hero{position:relative;padding:56px 0 84px;overflow:hidden}
.hero::before,.art-hero::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);
  background-size:28px 28px;background-position:-1px -1px;
  -webkit-mask-image:linear-gradient(#000 0,#000 55%,transparent 100%);mask-image:linear-gradient(#000 0,#000 55%,transparent 100%)}
.hero-in{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.06fr);gap:56px;align-items:center}
.hero h1{margin:0 0 22px;font:650 clamp(36px,4.9vw,58px)/1.05 var(--serif);letter-spacing:-.02em}
.h1-main{display:block}
.h1-sub{display:block;margin-top:16px;font:400 clamp(20px,2.3vw,27px)/1.25 var(--serif);letter-spacing:0;color:var(--ink-2)}
.lead{margin:0 0 28px;max-width:33em;font-size:18px;color:var(--ink-2)}
.hero-note{margin:14px 0 0;font-size:14.5px;color:var(--ink-2)}

/* макет комнаты урока */
.rm{margin:0;background:#fff;border:1px solid var(--line);border-radius:16px;
  box-shadow:0 44px 70px -46px rgba(22,32,59,.55);overflow:hidden}
.rm-tabs{display:flex;gap:2px;padding:10px 10px 0;background:var(--paper-2);border-bottom:1px solid var(--line)}
.rm-tab{display:inline-flex;align-items:center;gap:5px;padding:8px 9px 9px;border-radius:9px 9px 0 0;font:500 12px/1 var(--sans);color:var(--ink-2);white-space:nowrap}
.rm-tab .ico{width:15px;height:15px;stroke-width:1.9}
.rm-tab.on{background:var(--card);color:var(--blue);box-shadow:0 1px 0 var(--card);margin-bottom:-1px;border:1px solid var(--line);border-bottom-color:var(--card)}
.rm-body{display:grid;grid-template-columns:minmax(0,1fr) 128px;gap:10px;padding:12px}
.rm-board{border:1px solid var(--line);border-radius:10px;overflow:hidden;
  background-color:#fff;
  background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);
  background-size:20px 20px}
.rm-board svg{display:block;width:100%;height:auto}
.rm-board .ax{fill:none;stroke:var(--ink-2);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.rm-board .curve{fill:none;stroke:var(--blue);stroke-width:3.4;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;animation:draw 1.6s .5s cubic-bezier(.5,0,.2,1) forwards}
.rm-board .ring{fill:none;stroke:var(--red);stroke-width:2.4;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;animation:draw .6s 2.1s ease-out forwards}
.rm-board .ring.r2{animation-delay:2.5s}
.rm-board .hw{font-family:var(--hand);fill:var(--ink)}
.rm-board .k{font-size:15px;fill:var(--ink-2)}
.rm-board .red{fill:var(--red)}
.rm-board .tick{font-size:17px;opacity:0;animation:fade .4s 2.4s forwards}
.rm-board .tick:nth-of-type(2){animation-delay:2.8s}
.rm-board .formula{font-size:23px;opacity:0;animation:fade .6s 1.9s forwards}
.rm-board .answer{font-size:19px;opacity:0;animation:fade .6s 3s forwards}
.rm-board .cursor{opacity:0;animation:fade .5s 3.3s forwards}
.rm-board .cursor path{fill:var(--blue)}
.rm-board .cursor rect{fill:var(--blue)}
.rm-board .cursor text{fill:#fff;font:500 11px var(--sans)}
.rm-side{display:flex;flex-direction:column;gap:8px;min-width:0;min-height:0}
.rm-tile{position:relative;flex:1 1 0;min-height:0;border-radius:9px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.rm-a{background:#D7E2FA}
.rm-b{background:#F9E0D8}
.rm-face{width:44px;height:44px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;font:600 20px var(--serif);color:var(--ink)}
.rm-name{position:absolute;left:6px;bottom:6px;max-width:calc(100% - 12px);padding:2px 8px;border-radius:999px;background:rgba(22,32,59,.78);color:#fff;font-size:11px;line-height:1.5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rm-chat{grid-column:1/-1;display:flex;align-items:flex-end;justify-content:space-between;gap:10px}
.rm-chat p{margin:0;padding:7px 11px;border-radius:12px;font-size:12px;line-height:1.35;max-width:48%}
.rm-in{background:var(--paper-2);color:var(--ink);border-bottom-left-radius:3px}
.rm-out{background:var(--blue);color:var(--on-accent);border-bottom-right-radius:3px}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes fade{to{opacity:1}}

/* ---- секции ---- */
.sec{padding:96px 0}
.sec-tint{background:var(--paper-2)}
.sec h2,.art-sec h2{margin:0 0 18px;font:650 clamp(28px,3.4vw,40px)/1.12 var(--serif);letter-spacing:-.015em}
.sec-lead{margin:0 0 40px;max-width:38em;font-size:18px;color:var(--ink-2)}

.inside{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:72px;align-items:start}
.inside-intro{position:sticky;top:32px}
.inside-intro p{margin:0;color:var(--ink-2);max-width:30em}
.inside-intro h3{margin:34px 0 8px;font:650 21px/1.25 var(--serif)}
.defs{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 40px}
.defs li{padding:22px 0 26px;border-top:1.5px solid var(--ink)}
.defs .ico{color:var(--blue);margin-bottom:12px}
.defs h3{margin:0 0 6px;font:650 19px/1.25 var(--serif)}
.defs p{margin:0;font-size:15.5px;color:var(--ink-2)}

/* полка тетрадей: ссылки на статьи */
.shelf{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px 28px}
.site .nb{--tone:var(--blue);position:relative;display:flex;flex-direction:column;gap:14px;min-height:232px;height:100%;
  padding:20px 20px 18px 38px;border-radius:3px 12px 12px 3px;background:var(--tone);color:#fff;text-decoration:none;
  box-shadow:0 1px 0 rgba(0,0,0,.2),0 14px 22px -16px rgba(22,32,59,.6)}
.site .nb:hover{text-decoration:none;color:#fff;filter:brightness(1.08)}
.nb::before{content:"";position:absolute;left:0;top:0;bottom:0;width:18px;border-radius:3px 0 0 3px;background:rgba(0,0,0,.24)}
.nb::after{content:"";position:absolute;left:6px;top:20px;bottom:20px;width:6px;
  background:radial-gradient(circle,rgba(255,255,255,.75) 2.2px,transparent 2.6px) 0 0/6px 22px repeat-y}
.shelf li:nth-child(3n+1) .nb{transform:rotate(-.8deg)}
.shelf li:nth-child(3n+2) .nb{transform:rotate(.5deg)}
.shelf li:nth-child(3n) .nb{transform:rotate(-.3deg)}
.nb-label{display:block;overflow-wrap:anywhere;padding:12px 14px;border-radius:3px;background:#fff;color:var(--on-hi);font:650 21px/1.2 var(--serif)}
.nb-teaser{font-size:16px;line-height:1.45}
.nb-link{margin-top:auto;font-size:14px;opacity:.9;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.site .nb.nb-blue{--tone:#2342C7}.site .nb.nb-green{--tone:#1F6B52}.site .nb.nb-ink{--tone:#1D2748}
.site .nb.nb-red{--tone:#B8322B}.site .nb.nb-ochre{--tone:#8F5A0F}.site .nb.nb-plum{--tone:#5B3F86}

.aud{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 72px;align-items:start}
.aud h3{margin:0 0 10px;font:650 28px/1.2 var(--serif)}
.aud p{margin:0;max-width:30em;color:var(--ink-2)}
.aud .sticky-note{grid-column:1/-1;justify-self:start;max-width:27em;margin:20px 0 0;padding:18px 22px 20px;background:var(--hi);color:var(--on-hi);
  font:400 22px/1.4 var(--hand);transform:rotate(-1.2deg);box-shadow:0 10px 16px -12px rgba(22,32,59,.5)}

.steps{list-style:none;counter-reset:step;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px}
.steps li{counter-increment:step;position:relative;padding-top:6px}
.steps li::before{content:counter(step);display:block;margin-bottom:8px;padding-bottom:14px;font:400 72px/1.1 var(--hand);color:var(--red)}
.steps h3{margin:0 0 6px;font:650 21px/1.25 var(--serif)}
.steps p{margin:0;color:var(--ink-2);max-width:20em}

.how-help{margin-top:44px;padding-top:28px;border-top:1.5px solid var(--ink)}
.how-help-text{margin:0 0 16px;font-size:18px;color:var(--ink-2)}
.faq{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:72px;align-items:start}
.faq h2{margin:0}
.faq-list details{border-top:1.5px solid var(--ink);padding:0}
.faq-list details:last-child{border-bottom:1.5px solid var(--ink)}
.faq-list summary{position:relative;display:block;padding:20px 44px 20px 0;cursor:pointer;list-style:none;font:650 19px/1.35 var(--serif)}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::before,.faq-list summary::after{content:"";position:absolute;right:6px;top:50%;width:16px;height:2px;margin-top:-1px;background:var(--blue);transition:transform .2s}
.faq-list summary::after{transform:rotate(90deg)}
.faq-list details[open] summary::after{transform:rotate(0)}
.faq-list p{margin:0;padding:0 44px 22px 0;color:var(--ink-2)}

/* ---- финал и подвал ---- */
.final{position:relative;padding:88px 0;background:var(--night);color:#fff;overflow:hidden}
.final::before{content:"";position:absolute;inset:0;pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px);background-size:28px 28px}
.final-in{position:relative}
.final h2{margin:0 0 10px;font:650 clamp(30px,4vw,46px)/1.1 var(--serif);letter-spacing:-.015em;color:#fff}
.final p{margin:0 0 28px;font-size:18px;color:#cdd6f2}
.sf{background:var(--night);color:#cdd6f2;border-top:1px solid rgba(255,255,255,.14);padding:44px 0 56px}
.sf-in{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,4fr) minmax(0,3fr) minmax(0,3fr);gap:40px}
.sf-title{margin:0 0 8px;font:650 20px/1.25 var(--serif);color:#fff}
.sf-text{margin:0;font-size:15px;max-width:26em}
.sf-head{margin:0 0 10px;font-weight:600;color:#fff;font-size:15px}
.sf ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px}
.site .sf a{color:#cdd6f2;font-size:15px;text-decoration:underline;text-decoration-color:rgba(205,214,242,.4);text-underline-offset:3px}
.site .sf a:hover{color:#fff;text-decoration-color:#fff}

/* ---- страницы-статьи ---- */
.art-hero{position:relative;padding:28px 0 76px;overflow:hidden}
.art-in{position:relative;z-index:1}
.crumbs{margin:0 0 34px;font-size:14.5px;color:var(--ink-2)}
.site .crumbs a{color:var(--ink-2);text-decoration:underline;text-underline-offset:3px}
.art-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:64px;align-items:center}
.art-hero h1{margin:0 0 22px;font:650 clamp(34px,4.6vw,54px)/1.07 var(--serif);letter-spacing:-.02em}
.art-hero .nb{min-height:230px;transform:rotate(1.6deg);cursor:default}
.art-hero .nb-label{font-size:24px;display:flex;align-items:center;gap:12px}
.art-hero .nb-label .ico{color:var(--blue)}
.art-sec{padding:72px 0 0}
.art-sec:last-of-type{padding-bottom:24px}
.art-sec h2{margin-bottom:24px}
.art-sec .defs,.art-sec .steps,.art-cta{max-width:900px}
.art-sec .prose{margin:0 0 14px;max-width:40em;font-size:18px;color:var(--ink-2)}
.art-sec .defs{grid-template-columns:repeat(2,minmax(0,1fr))}
.art-sec .defs li{padding-top:18px}
.art-sec .steps{grid-template-columns:repeat(2,minmax(0,1fr));gap:34px 48px}
.art-sec .steps li::before{font-size:58px}
.art-sec .faq-list{max-width:760px}
.related{padding-bottom:88px}
.art-cta{margin-top:72px;padding:44px clamp(22px,4vw,48px);background:var(--night);color:#fff;border-radius:16px}
.art-cta h2{margin:0 0 8px;color:#fff}
.art-cta p{margin:0 0 24px;color:#cdd6f2}

/* ---- адаптив ---- */
@media (max-width:1020px){
  .hero-in{grid-template-columns:1fr;gap:44px}
  .hero{padding:40px 0 64px}
  .rm{max-width:640px}
  .inside,.faq{grid-template-columns:1fr;gap:36px}
  .inside-intro{position:static}
  .shelf{grid-template-columns:repeat(2,minmax(0,1fr))}
  .art-grid{grid-template-columns:1fr;gap:36px}
  .art-hero .nb{max-width:320px;min-height:200px}
  .sf-in{grid-template-columns:repeat(3,minmax(0,1fr))}
  .sf-in .sf-col:first-child{grid-column:1/-1}
}
@media (max-width:820px){
  .sh-nav{display:none}
  .sh-in{height:60px}
  .sec{padding:64px 0}
  .aud{grid-template-columns:1fr;gap:28px}
  .steps{grid-template-columns:1fr;gap:26px}
  .art-sec .steps{grid-template-columns:1fr}
}
@media (max-width:620px){
  html.site body{font-size:16.5px}
  .defs,.art-sec .defs{grid-template-columns:1fr}
  .shelf{gap:22px 16px}
  .site .nb{min-height:188px;padding:16px 14px 14px 30px;gap:10px}
  .nb::before{width:14px}
  .nb::after{left:4px;width:6px}
  .nb-label{font-size:18px;padding:9px 10px}
  .nb-teaser{font-size:14.5px}
  .nb-link{font-size:13px}
  .rm-body{grid-template-columns:minmax(0,1fr) 96px;padding:8px;gap:8px}
  .rm-tabs{padding:8px 8px 0;overflow:hidden}
  .rm-tab{padding:7px 9px 8px}
  .rm-tab:not(.on) .rm-tab-text{display:none}
  .rm-face{width:32px;height:32px;font-size:15px}
  .rm-name{font-size:10px}
  .rm-chat p{font-size:11px;padding:6px 9px;max-width:80%}
  .sh-act{gap:12px}
  .sh-login{display:none}
  .cta .btn{flex:1 1 100%}
  .sf-in{grid-template-columns:1fr}
  .final{padding:64px 0}
}
@media (max-width:480px){
  .shelf{grid-template-columns:1fr}
  .site .nb{min-height:0}
}
@media (max-width:420px){
  .rm-tab:not(.on) .ico{display:none}
  .rm-chat .rm-in{display:none}
  .rm-body{grid-template-columns:minmax(0,1fr) 80px}
}
@media (prefers-reduced-motion:reduce){
  html.site{scroll-behavior:auto}
  .rm-board .curve,.rm-board .ring{animation:none;stroke-dashoffset:0}
  .rm-board .tick,.rm-board .formula,.rm-board .answer,.rm-board .cursor{animation:none;opacity:1}
}

/* ---- вход, регистрация, сброс пароля ---- */
html.site-auth body{background-color:var(--paper);
  background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);
  background-size:28px 28px;background-position:-1px -1px;min-height:100vh}
.site-auth main{padding:48px 16px 80px}
.site-auth .card{max-width:520px;margin:0 auto;padding:30px 30px 26px;background:var(--card);border:1px solid var(--line);border-radius:16px;
  box-shadow:0 40px 60px -46px rgba(22,32,59,.5);color:var(--ink)}
.site-auth .card h1{margin:0 0 18px;font:650 32px/1.15 var(--serif);letter-spacing:-.015em}
.site-auth .card h2{font:650 22px/1.25 var(--serif)}
.site-auth .card p{color:var(--ink)}
.site-auth .card label{display:block;margin-bottom:4px;font-weight:500;font-size:15px}
.site-auth .stack input,.site-auth .stack select,.site-auth .stack textarea{padding:11px 13px;background:var(--field);color:var(--ink);border:1.5px solid var(--line);border-radius:10px;font-size:16px}
.site-auth .stack input:focus,.site-auth .stack select:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px var(--ring)}
.site-auth .card .helptext,.site-auth .card form p span.helptext{display:block;margin-top:4px;font-size:13.5px;color:var(--ink-2)}
.site-auth .card ul{color:var(--ink-2);font-size:13.5px;line-height:1.5;padding-left:20px}
.site-auth .card ul.errorlist{list-style:none;margin:4px 0 0;padding:0;color:var(--bad-ink);font-size:14px;font-weight:500}
.site-auth .card button[type=submit]{padding:13px 24px;border-radius:10px;background:var(--blue);color:var(--on-accent);font:600 16px var(--sans)}
.site-auth .card button[type=submit]:hover{background:var(--blue-d)}
.site-auth .muted{color:var(--ink-2)}
.site-auth .social-divider{color:var(--ink-2)}
.site-auth .social-btn{background:var(--card);color:var(--ink);border-color:var(--line)}
.site-auth .social-btn:hover{background:var(--paper-2);border-color:var(--blue)}
@media (max-width:620px){
  .site-auth main{padding:28px 14px 56px}
  .site-auth .card{padding:22px 18px 20px}
}
