/* Quiet presentation chrome; the process is the primary surface. */
body { height:100vh; height:100dvh; min-height:0; overflow:hidden; }
header { flex-shrink:0; height:auto; min-height:64px; gap:14px; padding:10px 24px; flex-wrap:wrap; }
.brand { display:none; }
.a-hotkeys { flex-shrink:0; display:flex; flex-wrap:wrap; gap:3px 16px; width:min(1120px,calc(100% - 64px)); margin:0 auto; padding:5px 0 10px; color:var(--text-muted); font:10px/1.6 var(--font-sans); }
.a-hotkeys span { white-space:nowrap; }
header.a-links-header { justify-content:flex-end; min-height:52px; padding:10px 24px; }
.a-public-links { display:flex; align-items:center; justify-content:flex-end; gap:8px; }
.a-public-links a { display:block; padding:8px 12px; color:var(--text-muted); text-decoration:none; font:13px var(--font-sans); border-radius:3px; transition:background 180ms; }
.a-public-links a:hover { background:var(--surface-raised); }
.a-public-links a[href^='https://codeib.academy'], .action-link[href^='https://codeib.academy'] { color:var(--accent); font-weight:700; }
.a-public-links a[href^='https://codeib.academy'] { background:var(--accent-muted); }
.action-link[href^='https://codeib.academy'] { text-decoration:underline; text-underline-offset:4px; text-decoration-thickness:1px; }
.a-public-links a:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
.deck-controls { gap:10px; flex-wrap:wrap; }
main { width:min(1120px, calc(100% - 64px)); margin:0 auto; padding:0; flex:1; min-height:0; display:flex; flex-direction:column; }
.slide-viewport { padding:0; height:100%; min-height:0; max-width:none; border:0; background:transparent; overflow:hidden; }
.slide-viewport.active { display:flex; flex-direction:column; }
.a-slide-body { flex:1; min-height:0; overflow:auto; overscroll-behavior:contain; scrollbar-gutter:stable; padding:24px 0 20px; }
h1.slide-title { font-size:clamp(28px,3.8vw,46px); max-width:1020px; line-height:1.15; font-weight:600; letter-spacing:-1.6px; margin:16px 0 12px; }
h2.slide-subtitle { font-size:16px; max-width:850px; color:var(--text-muted); line-height:1.6; margin-bottom:20px; font-weight:400; }
.slide-meta { margin-bottom:0; border:0; padding-bottom:0; }
.slide-tag { color:var(--text-muted); font-size:11px; }
.a-presenter-profile { display:grid; grid-template-columns:210px minmax(0,1fr); gap:28px; align-items:center; margin:24px 0; }
.a-presenter-photo { display:block; width:210px; height:210px; object-fit:contain; border-radius:4px; }
.a-presenter-experience { font-size:18px; margin-bottom:20px; color:var(--text-muted); }
.a-presenter-experience strong { font-size:36px; font-weight:600; letter-spacing:-1px; color:var(--text); margin-right:8px; }
.a-presenter-career { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:26px; }
.a-career-step { position:relative; padding:13px 12px; border:1px solid var(--border); border-radius:4px; }
.a-career-step:not(:last-child)::after { content:'→'; position:absolute; right:-22px; top:19px; color:var(--text-faint); font-size:16px; }
.a-career-step h3 { font-size:14px; line-height:1.5; font-weight:600; margin-bottom:7px; }
.a-career-step p { font-size:12px; line-height:1.65; color:var(--text-muted); }
.a-presenter-cases { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin:24px 0 12px; }
.a-presenter-cases .a-presenter-case { display:block; padding:16px 0 0; border-top:1px solid var(--border); }
.a-presenter-case-kind { display:block; color:var(--text-faint); font-size:10px; margin-bottom:7px; }
.a-presenter-case .action-link { font-size:14px; line-height:1.5; font-weight:600; }
.a-presenter-case p { font-size:12px; line-height:1.7; color:var(--text-muted); margin-top:8px; }
.a-presenter-case .a-case-secondary-link { font-size:11px; font-weight:400; margin-top:8px; }
.a-scene[data-scene='presenter'] .a-viewport, .a-scene[data-scene='presenter'] .a-inspector,
.a-scene[data-scene='case'] .a-viewport, .a-scene[data-scene='case'] .a-inspector { display:none; }
.a-scene[data-scene='presenter']::before, .a-scene[data-scene='case']::before { display:none; }
.a-project-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin:28px 0 22px; }
.a-project-grid .a-project-card { position:relative; display:block; border:1px solid var(--border); border-radius:4px; background:var(--surface); transition:background 180ms; }
.a-project-card:hover { background:var(--surface-raised); }
.a-project-card .a-project-opener { position:relative; display:block; padding:22px; min-height:142px; color:var(--text); text-decoration:none; font-size:18px; line-height:1.4; }
.a-project-opener .link-text { display:block; padding-right:20px; }
.a-project-opener p { font-size:12px; line-height:1.65; color:var(--text-muted); margin-top:14px; }
.a-project-arrow { position:absolute; top:22px; right:18px; color:var(--text-faint); font-size:15px; }
.a-project-card .link-tools { padding:0 16px 12px; }
@media(max-width:850px) { .a-project-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:500px) { .a-project-grid { grid-template-columns:1fr; } }
@media(max-width:700px) {
  .a-presenter-profile { grid-template-columns:140px minmax(0,1fr); gap:18px; }
  .a-presenter-photo { width:140px; height:140px; }
  .a-presenter-experience { font-size:14px; margin-bottom:14px; }
  .a-presenter-experience strong { font-size:28px; }
  .a-presenter-profile { align-items:start; }
  .a-presenter-career { grid-template-columns:1fr; gap:24px; }
  .a-career-step:not(:last-child)::after { content:'↓'; right:auto; left:16px; top:auto; bottom:-24px; }
  .a-presenter-cases { grid-template-columns:1fr; gap:12px; }
}
@media(max-width:420px) { .a-presenter-profile { grid-template-columns:1fr; } }
.hero-speaker { margin:0 0 18px; }
.speaker-info strong { font-size:14px; }
.speaker-info p { font-size:12px; color:var(--text-muted); margin-top:3px; }
.slide-footer { flex:0 0 88px; height:88px; min-height:88px; overflow:auto; margin:0; padding:12px 0 16px; align-items:center; gap:12px 24px; }
.links-cluster { gap:8px 20px; }
.action-link { font-size:12px; }
.hint { max-width:390px; font-size:10px; text-align:right; }
.a-scene { padding-top:4px; }
.a-viewport { position:relative; width:100%; aspect-ratio:1000 / var(--a-stage-height,330); overflow:hidden; background-image:radial-gradient(var(--border) .65px, transparent .65px); background-size:20px 20px; border-top:1px solid var(--border); border-bottom:1px solid var(--border); }
.a-stage { position:absolute; width:1000px; height:340px; transform-origin:top left; }
.a-wires { position:absolute; inset:0; width:1000px; height:340px; }
.a-wires path { stroke:var(--border-focus); stroke-width:1.5; fill:none; }
.a-wires path.a-ai-wire { stroke:var(--accent); stroke-dasharray:4 5; }
.a-wires path.is-focused { stroke:var(--accent); }
.a-node { position:absolute; top:0; left:0; height:104px; padding:13px 15px; border:1px solid var(--border); background:var(--surface); border-radius:4px; color:var(--text); font-family:var(--font-sans); text-align:left; cursor:pointer; display:flex; flex-direction:column; gap:5px; transition:background 180ms,box-shadow 180ms; }
.a-node:hover { background:var(--surface-raised); box-shadow:0 6px 18px #0000000b; }
.a-node:focus-visible, .a-action:focus-visible { outline:2px solid var(--accent); outline-offset:4px; }
.a-node.is-focused::before { content:''; position:absolute; top:10px; left:-1px; width:3px; height:calc(100% - 20px); background:var(--accent); border-radius:2px; }
.a-node[data-kind='ai'] { background:var(--surface-raised); }
.a-node[data-kind='ai'] .a-node-index { color:var(--accent); }
.a-scene[data-mode='agent'] .a-ai-wire { stroke-dasharray:none; }
.a-node-index { font:10px var(--font-mono); color:var(--text-faint); }
.a-node[data-kind='source'], .a-node[data-kind='check'] { border-style:dashed; padding:10px 12px; gap:3px; }
.a-node[data-kind='source'] .a-node-title, .a-node[data-kind='check'] .a-node-title { font-size:13px; }
.a-node[data-kind='source'] .a-node-note, .a-node[data-kind='check'] .a-node-note { font-size:10px; }
.a-group { position:absolute; border:1px dashed var(--border); border-radius:4px; pointer-events:none; }
.a-group-label { position:absolute; top:-8px; left:12px; padding:0 8px; background:var(--bg); color:var(--text-muted); font:10px var(--font-sans); }
.is-editing .a-group-label { pointer-events:auto; }
.a-legend { font-size:10px; color:var(--text-muted); margin-top:9px; }
.a-scene .a-wires path.is-data { stroke:var(--border-focus); stroke-dasharray:3 5; stroke-width:1; }
.a-node-title { font-size:15px; font-weight:600; line-height:1.35; }
.a-node-note { font-size:11px; color:var(--text-muted); line-height:1.45; }
.a-packet { width:7px; height:7px; position:absolute; top:0; left:0; background:var(--accent); border-radius:2px; margin:-3px 0 0 -3px; pointer-events:none; }
.a-model-zone { position:absolute; top:177px; left:254px; width:260px; height:145px; border:1px dashed var(--border-focus); border-radius:4px; pointer-events:none; }
.a-model-zone span { position:absolute; right:10px; bottom:6px; font:9px var(--font-mono); color:var(--text-muted); }
.a-model-zone.is-local { top:5px; left:4px; width:990px; height:320px; }
.a-model-zone .a-zone-local, .a-model-zone.is-local .a-zone-cloud { display:none; }
.a-model-zone.is-local .a-zone-local { display:block; }
.a-captions { min-height:34px; margin:12px 0 0; display:flex; align-items:center; }
.a-caption { font-size:17px; line-height:1.5; max-width:1000px; }
.a-interaction { display:grid; grid-template-columns:1fr 1fr 1fr; gap:20px; border-top:1px solid var(--border); padding-top:12px; margin-top:12px; }
.a-interaction-label { display:block; color:var(--text-faint); font:10px var(--font-mono); margin-bottom:5px; }
.a-interaction-cell p { font-size:12px; line-height:1.5; }
.a-bridge { position:relative; margin:18px 0 6px 20px; padding:10px 20px; border-left:2px solid var(--accent); }
.a-bridge::before { content:''; position:absolute; top:-19px; left:-2px; width:45px; height:19px; border-top:1px solid var(--border-focus); border-left:1px solid var(--border-focus); border-radius:3px 0 0 0; }
.a-bridge-label { color:var(--text-faint); font:10px var(--font-mono); }
.a-bridge p { font-size:20px; margin-top:5px; }
.a-scene[data-phase='bridge'] .a-captions { display:none; }
.a-scene-controls { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-top:16px; }
.a-progress { color:var(--text-muted); font:10px var(--font-mono); margin-right:10px; min-width:155px; }
.a-action { padding:10px 15px; font:12px var(--font-sans); font-weight:600; border:1px solid var(--border); background:transparent; color:var(--text); border-radius:3px; cursor:pointer; transition:background 180ms,box-shadow 180ms; }
.a-action:hover:not(:disabled) { background:var(--surface-raised); box-shadow:0 3px 10px #00000008; }
.a-action[data-a-action='next'] { background:var(--surface-raised); }
.a-action:disabled { opacity:.35; cursor:default; }
.a-action[data-a-action='reset'] { margin-left:auto; color:var(--text-muted); border:0; font-weight:400; }
.a-inspector { margin-top:16px; font-size:12px; color:var(--text-muted); max-width:900px; }
.a-inspector summary { cursor:pointer; width:fit-content; padding:4px 0; }
.a-inspector p { padding:10px 0 0; line-height:1.7; }
.a-speaker-notes { display:none; margin-top:24px; padding:18px 20px; border:1px dashed var(--border-focus); border-radius:4px; }
.is-editing .a-speaker-notes { display:block; }
.a-speaker-notes h3 { color:var(--text-muted); font-size:12px; font-weight:400; margin-bottom:10px; }
.a-speaker-notes ul { padding-left:20px; font-size:14px; line-height:1.7; }
.is-editing .a-node { cursor:text; }
[hidden] { display:none !important; }
@media(max-width:1100px) { header,.deck-controls { justify-content:center; } }
@media(max-width:700px) {
  main, .a-hotkeys { width:calc(100% - 32px); }
  header { padding:10px 12px; gap:8px; }
  .deck-controls { gap:7px; }
  h1.slide-title { letter-spacing:-.8px; }
  h2.slide-subtitle { font-size:14px; }
  .a-slide-body { padding-top:20px; }
  .slide-num { display:none; }
  .a-viewport { aspect-ratio:auto; height:calc(var(--a-stage-height,340) * 1px); overflow-x:auto; }
  .a-stage { position:relative; }
  .a-scene::before { content:'схему можно прокрутить →'; display:block; margin-bottom:8px; color:var(--text-faint); font:10px var(--font-mono); }
  .a-caption { font-size:15px; }
  .a-interaction { grid-template-columns:1fr; gap:10px; }
  .a-progress { min-width:100%; }
  .a-action { padding:11px 12px; }
  .slide-footer { flex-basis:112px; height:112px; min-height:112px; align-items:flex-start; flex-direction:column; gap:6px; flex-wrap:nowrap; }
  .hint { text-align:left; }
}
@media(prefers-reduced-motion:reduce) { *, *::before { scroll-behavior:auto !important; transition:none !important; } }
