:root{
  --bg:#ECEEF3; --bg-2:#E3E6EE; --surface:#FFFFFF; --line:rgba(42,17,112,.12);
  --ink:#2A1170; --ink-2:#3B1D8F; --text:#1D1440; --muted:#5D587A;
  --lime:#DDF56B; --lime-2:#CDEB45; --violet:#7B3FE4; --violet-soft:rgba(123,63,228,.10);
  --radius-sm:6px; --radius-md:10px; --radius-lg:14px; --cut:22px;
  --font:'Manrope',system-ui,sans-serif; --mono:'JetBrains Mono',ui-monospace,monospace;
  --text-xs:clamp(.75rem,.72rem + .15vw,.85rem);
  --text-sm:clamp(.875rem,.85rem + .15vw,.95rem);
  --text-base:clamp(1rem,.97rem + .15vw,1.0625rem);
  --text-lg:clamp(1.125rem,1.05rem + .35vw,1.3rem);
  --text-xl:clamp(1.6rem,1.3rem + 1.4vw,2.4rem);
  --text-hero:clamp(2.4rem,1.6rem + 4vw,4.6rem);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--font);font-size:var(--text-base);line-height:1.6;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}
a{color:inherit}
img{max-width:100%;display:block}
.wrap{width:min(1160px,100% - 40px);margin-inline:auto}
.skip{position:absolute;left:-9999px;top:8px;background:var(--ink);color:#fff;padding:8px 14px;border-radius:var(--radius-sm);z-index:50}
.skip:focus{left:12px}
:focus-visible{outline:2px solid var(--violet);outline-offset:3px;border-radius:4px}
.accent{color:var(--violet)}
.mono{font-family:var(--mono)}
.mono-label{font-family:var(--mono);font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--violet);font-weight:700}

/* diagonal line decoration, как на референсе */
.lines{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.lines::before,.lines::after{content:"";position:absolute;width:140%;height:1px;right:-30%;transform-origin:right center}
.lines::before{top:36%;background:linear-gradient(90deg,transparent,rgba(123,63,228,.35),transparent);transform:rotate(-28deg);box-shadow:0 22px 0 rgba(123,63,228,.22),0 44px 0 rgba(123,63,228,.16),0 66px 0 rgba(205,235,69,.7),0 88px 0 rgba(123,63,228,.12),0 110px 0 rgba(123,63,228,.08)}
.lines::after{top:70%;background:linear-gradient(90deg,transparent,rgba(205,235,69,.8),transparent);transform:rotate(-28deg);box-shadow:0 22px 0 rgba(123,63,228,.16),0 44px 0 rgba(123,63,228,.1)}

/* header */
.top{position:sticky;top:0;z-index:20;background:rgba(236,238,243,.9);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.top__in{display:flex;align-items:center;gap:24px;height:64px}
.brand{display:flex;align-items:center;gap:10px;font-weight:800;letter-spacing:-.01em;color:var(--ink)}
.brand__mark{width:16px;height:16px;background:var(--violet);clip-path:polygon(0 0,100% 0,100% 55%,55% 100%,0 100%)}
.nav{display:flex;gap:22px;margin-left:auto;font-size:var(--text-sm)}
.nav a{text-decoration:none;color:var(--muted);font-weight:600} .nav a:hover{color:var(--ink)}

/* hero */
.hero{position:relative;overflow:hidden;padding:clamp(56px,8vw,110px) 0 clamp(48px,6vw,80px);background:linear-gradient(160deg,#F3F4F8,#E6E9F0 70%)}
.grid-bg{display:none}
.scan{display:none}
.hero__in{position:relative;display:grid;grid-template-columns:1.1fr 1fr;gap:40px;align-items:center}
.status{display:inline-flex;align-items:center;gap:10px;font-family:var(--mono);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--ink);background:var(--lime);padding:8px 16px 8px 14px;margin-bottom:24px;font-weight:700;clip-path:polygon(0 0,100% 0,calc(100% - 12px) 100%,0 100%)}
.status .mono{color:var(--ink-2);text-transform:none;letter-spacing:0;font-weight:500}
.dot{width:8px;height:8px;border-radius:50%;background:var(--violet);animation:blink 1.6s infinite}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.35}}
h1{font-size:var(--text-hero);line-height:1.02;letter-spacing:-.035em;font-weight:800;max-width:12ch;color:var(--ink)}
h1 .accent{color:var(--violet)}
.lead{font-size:var(--text-lg);color:var(--muted);max-width:40ch;margin-top:22px;line-height:1.5}
.when{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:28px}
.when .mono-label{color:var(--ink)}
.date-slot{display:inline-flex;align-items:center;min-height:56px;padding:10px 28px 10px 22px;background:var(--ink);color:#fff;font-weight:700;font-size:var(--text-lg);clip-path:polygon(0 0,100% 0,100% calc(100% - 16px),calc(100% - 16px) 100%,0 100%);position:relative}
.date-slot:empty{min-width:240px;background:var(--surface);outline:2px dashed var(--ink);outline-offset:-2px;clip-path:none;animation:pulse 2.4s ease-in-out infinite}
.date-slot.is-filled{animation:none}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(123,63,228,0)}50%{box-shadow:0 0 0 6px rgba(123,63,228,.16)}}

/* terminal — тёмно-фиолетовая плашка */
.term{position:relative;background:var(--ink);border-radius:0;clip-path:polygon(0 0,calc(100% - var(--cut)) 0,100% var(--cut),100% 100%,var(--cut) 100%,0 calc(100% - var(--cut)));box-shadow:0 30px 70px rgba(42,17,112,.25);overflow:hidden;font-family:var(--mono);font-size:var(--text-sm)}
.term::before,.term::after{display:none}
.term__bar{display:flex;align-items:center;gap:7px;padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.12);color:rgba(255,255,255,.6);font-size:var(--text-xs)}
.term__bar i{width:10px;height:10px;border-radius:50%;background:rgba(255,255,255,.22)}
.term__bar i:first-child{background:var(--lime)}
.term__bar span{margin-left:8px}
.term__body{padding:22px 22px 26px;line-height:1.75;color:#EDEBFF;min-height:220px}
.term__body p{transition:opacity .35s}
.term__body .p{color:var(--lime)}
.term__body .warn{color:#FFB3C7;font-weight:700}
.is-hidden{opacity:0}
.caret{display:inline-block;width:10px;height:1.1em;background:var(--lime);vertical-align:-3px;margin-left:6px;animation:car 1s steps(1) infinite}
@keyframes car{50%{opacity:0}}

/* ticker */
.ticker{overflow:hidden;background:var(--ink)}
.ticker__track{display:flex;gap:56px;width:max-content;padding:16px 0;animation:tick 38s linear infinite;font-family:var(--mono);font-size:var(--text-sm);color:#fff;white-space:nowrap}
.ticker__track span::before{content:"◆ ";color:var(--lime)}
@keyframes tick{to{transform:translateX(-50%)}}

/* sections */
.section{position:relative;padding:clamp(56px,7vw,96px) 0}
.section--alt{background:var(--bg-2)}
h2{font-size:var(--text-xl);line-height:1.15;letter-spacing:-.02em;font-weight:800;margin-top:10px;max-width:22ch;color:var(--ink)}
h3{font-size:var(--text-lg);font-weight:800;line-height:1.3;color:var(--ink)}
.two{display:grid;grid-template-columns:1fr 1.15fr;gap:clamp(28px,5vw,72px);align-items:center}
.two--top{align-items:start}
.prose p+p{margin-top:14px}
.prose p{color:var(--text);max-width:62ch}
.muted{color:var(--muted);max-width:44ch;margin-top:14px}

/* program blocks */
.blocks{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:36px}
.block{position:relative;background:var(--surface);padding:30px 30px 26px;clip-path:polygon(0 0,100% 0,100% calc(100% - var(--cut)),calc(100% - var(--cut)) 100%,0 100%)}
.block__n{display:inline-block;font-family:var(--mono);font-weight:700;color:var(--ink);font-size:var(--text-sm);background:var(--lime);padding:3px 14px 3px 10px;clip-path:polygon(0 0,100% 0,calc(100% - 8px) 100%,0 100%)}
.block h3{font-size:var(--text-xl);line-height:1.15;letter-spacing:-.02em;margin-top:12px}
.block ul{list-style:none;margin-top:16px}
.block li{position:relative;padding:8px 0 8px 22px;color:var(--text);border-top:1px solid var(--line)}
.block li:first-child{border-top:none}
.block li::before{content:"›";position:absolute;left:2px;top:6px;color:var(--violet);font-weight:800}
.block--accent{background:var(--lime)}
.block--accent .block__n{background:var(--ink);color:var(--lime)}
.block--accent li{border-color:rgba(42,17,112,.15);font-weight:600}
.block--accent li::before{color:var(--ink)}
.block--wide{grid-column:1/-1}
.block--wide ul{columns:2;column-gap:40px}
.block--wide li{break-inside:avoid}

/* sharp questions */
.gaps{list-style:none;background:var(--surface);padding:8px 28px;clip-path:polygon(0 0,100% 0,100% calc(100% - var(--cut)),calc(100% - var(--cut)) 100%,0 100%)}
.gaps li{display:grid;grid-template-columns:56px 1fr;gap:12px;padding:18px 0;border-top:1px solid var(--line);font-weight:700;font-size:var(--text-lg);line-height:1.35;color:var(--ink)}
.gaps li:first-child{border-top:none}
.gaps b{font-family:var(--mono);color:var(--violet);font-size:var(--text-base);padding-top:3px}

/* courts */
.cases{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:36px}
.case{background:var(--surface);padding:24px;clip-path:polygon(0 0,100% 0,100% calc(100% - 16px),calc(100% - 16px) 100%,0 100%)}
.case--wide{grid-column:span 2;grid-row:span 2;display:flex;flex-direction:column;justify-content:flex-end;min-height:280px;background:var(--lime);clip-path:polygon(0 0,calc(100% - 40px) 0,100% 40px,100% 100%,0 100%)}
.case--wide h3{font-size:var(--text-xl);line-height:1.15;letter-spacing:-.02em}
.case--wide .case__geo{color:var(--ink)}
.case__geo{font-family:var(--mono);font-size:var(--text-xs);color:var(--violet);letter-spacing:.08em;text-transform:uppercase;font-weight:700}
.case h3{margin-top:10px}

/* audience */
.ticks{list-style:none;margin-top:16px}
.ticks li{position:relative;padding:12px 0 12px 30px;border-top:1px solid var(--line);color:var(--text);font-weight:600}
.ticks li:first-child{border-top:none}
.ticks li::before{content:"";position:absolute;left:2px;top:20px;width:12px;height:12px;background:var(--lime);border:2px solid var(--ink);clip-path:polygon(0 0,100% 0,100% 55%,55% 100%,0 100%)}
.ticks--grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:30px}
.ticks--grid li{background:var(--surface);border-top:none;padding:22px 24px 22px 54px;clip-path:polygon(0 0,100% 0,100% calc(100% - 16px),calc(100% - 16px) 100%,0 100%)}
.ticks--grid li::before{left:24px;top:28px}

/* speaker — фото + лаймовая плашка, как на референсе */
#speaker .two{gap:0;align-items:stretch;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr)}
.speaker__photo{position:relative;margin:0;overflow:hidden;aspect-ratio:875/662;width:100%;background:#d9d4f0}
.speaker__photo img{width:100%;height:100%;object-fit:cover}
.speaker__photo figcaption{display:none}
.speaker__plate{background:var(--lime);padding:clamp(28px,4vw,48px);display:flex;flex-direction:column;justify-content:center;clip-path:polygon(0 0,100% 0,100% calc(100% - 48px),calc(100% - 48px) 100%,0 100%)}
.speaker__plate .mono-label{color:var(--ink);font-family:var(--font);text-transform:none;letter-spacing:0;font-weight:600;font-size:var(--text-base)}
.speaker__plate h2{text-transform:uppercase;letter-spacing:.01em}
.role{color:var(--ink);font-weight:700;margin:10px 0 18px;font-size:var(--text-lg);line-height:1.4;max-width:40ch}
.speaker__plate .prose p{color:var(--ink-2)}

/* final */
.final{position:relative;overflow:hidden;padding:clamp(64px,8vw,110px) 0;background:var(--ink);color:#fff}
.final h2{font-size:clamp(2rem,1.4rem + 2.6vw,3.4rem);max-width:16ch;color:#fff}
.final .mono-label{color:var(--lime)}
.final .date-slot:empty{background:rgba(255,255,255,.06);outline-color:var(--lime)}
.final .lines::before{background:linear-gradient(90deg,transparent,rgba(221,245,107,.5),transparent)}
.when--final{margin:26px 0 0}

.foot{border-top:1px solid var(--line);padding:26px 0;font-size:var(--text-sm);color:var(--muted);background:var(--bg)}
.foot__in{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}

@media (max-width:900px){
  .hero__in,.two{grid-template-columns:1fr}
  #speaker .two{grid-template-columns:1fr}
  .blocks{grid-template-columns:1fr}
  .block--wide ul{columns:1}
  .cases{grid-template-columns:1fr 1fr}
  .term{max-width:560px}
}
@media (max-width:600px){
  .nav{display:none}
  .cases{grid-template-columns:1fr}
  .case--wide{grid-column:auto;grid-row:auto;min-height:0}
  .ticks--grid{grid-template-columns:1fr}
  .term__body{min-height:0;padding:18px}
  .status{font-size:.7rem}
  .date-slot{font-size:var(--text-base)}
  .gaps{padding:4px 18px}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.speakers{display:grid;gap:22px;margin-top:32px}
.speaker__name{font-size:var(--text-xl);line-height:1.1;letter-spacing:.01em;text-transform:uppercase;margin-top:6px}
.speaker__topics{margin-top:16px;font-family:var(--mono);font-size:var(--text-xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink)}
.speaker--v .speaker__plate{background:var(--ink)}
.speaker--v .speaker__plate .mono-label,.speaker--v .speaker__name,.speaker--v .role{color:#fff}
.speaker--v .speaker__plate .prose p{color:#D9D3F5}
.speaker--v .speaker__topics{color:var(--lime)}
.speaker--v .speaker__photo img{object-position:50% 25%}
