.deck{max-width:1440px;margin:auto;min-height:100dvh;display:grid;grid-template-rows:auto 1fr auto;padding:26px 42px 12px}.deck-header{display:flex;align-items:start;justify-content:space-between;gap:25px;padding:0 0 14px}.deck-header h1{font-size:clamp(28px,3vw,39px)}.deck-header p{font-size:18px;color:var(--muted);margin:9px 0 0}.deck-header .home-link{font-size:14px;white-space:nowrap;margin-top:8px}.stage{display:flex;flex-direction:column;justify-content:center;min-height:470px;padding:15px 0;gap:15px;font-size:clamp(18px,1.65vw,24px);line-height:1.45}.stage>div{width:100%}.stage h2{font-size:27px;margin:0 0 15px}.stage h3{font-size:22px;margin:0 0 10px}.stage p{margin:.5em 0}.stage strong{color:var(--navy)}.stage .two,.two{display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:center}.stage .three,.three{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.stage .four,.four{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.stack{display:flex;flex-direction:column;gap:16px}.flow{display:flex;align-items:center;justify-content:center;gap:18px}.node{border:1px solid var(--line);border-radius:10px;padding:20px;background:var(--soft);text-align:center}.node.active,.active{background:#fff0bd;border-color:#c48d00}.node.frozen{background:#e8edf8}.node.updated{background:#e6f4ef;border-color:#46887b}.arrow{color:var(--navy);font-size:30px}.inactive{opacity:.3}.label{font-size:17px;font-weight:650;color:var(--muted)}.key{color:var(--navy);font-weight:750}.formula{font-size:29px;text-align:center;padding:18px;background:#f3f6fb;border-radius:8px;font-variant-numeric:tabular-nums;line-height:1.5}.big-number{font-size:58px;font-weight:750;color:var(--navy);letter-spacing:-.04em}.tokens{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.token{display:inline-flex;align-items:center;justify-content:center;min-width:46px;padding:10px 15px;border:1px solid #c2ccda;border-radius:5px;background:white}.token.active{background:#ffe6a3;border-color:#b78a1b}.strip{padding:15px 20px;background:#f0f4f8;font-size:20px;border-radius:6px}.stage-note{font-size:18px;line-height:1.55;padding:15px 20px;background:#fff5d8;color:#594010}.figure{margin:0;text-align:center}.figure img{max-height:360px;object-fit:contain}.figure figcaption{font-size:16px;color:var(--muted);margin-top:8px}.evidence-table{font-size:20px}.evidence-table th,.evidence-table td{padding:.6em}.matrix{display:grid;gap:4px;padding:12px;background:#e9eff9;border:1px solid #b9c8e2;border-radius:5px}.matrix i{background:#8ba8d5;min-height:12px;border-radius:2px}.cue-caption{margin-top:10px;min-height:72px;display:grid;grid-template-columns:125px 1fr;gap:18px;align-items:start;padding:16px 0;border-top:1px solid var(--line)}.cue-caption b{color:var(--navy);font-size:17px}.cue-caption p{font-size:19px;line-height:1.5;margin:0}.deck-foot{display:flex;gap:12px;align-items:center;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:12px;font-size:13px}.deck-foot .controls{margin-left:auto;display:flex;gap:8px;align-items:center}.deck-foot button{font-size:14px;padding:9px 13px}.deck-foot select{font-size:13px;max-width:175px}.evidence{font-size:13px;color:var(--muted);min-height:18px;margin-top:12px}.deck [hidden]{display:none!important}.modal{border:1px solid #bbc5d3;border-radius:12px;max-width:850px;width:calc(100% - 40px);max-height:85dvh;padding:0;color:var(--ink);box-shadow:0 20px 60px #00204c30}.modal::backdrop{background:#091b3b55}.modal-head{display:flex;gap:20px;align-items:center;padding:20px 26px;border-bottom:1px solid var(--line);position:sticky;top:0;background:white;z-index:2}.modal-head h2{font-size:25px;margin:0}.modal-head button{margin-left:auto}.modal-body{padding:24px 30px;font-size:18px;line-height:1.8}.modal-body h3{font-size:22px}.modal-body .reading-links{display:flex;gap:15px;flex-wrap:wrap;margin-top:22px}.progress{height:3px;background:#e9edf3;position:fixed;bottom:0;left:0;width:100%;pointer-events:none}.progress>i{height:3px;background:var(--navy);display:block;width:0}.device{border:2px solid #adc0d9;border-radius:9px;padding:14px;background:white}.device h3{font-size:20px;margin-bottom:14px}.state-bars{display:flex;flex-direction:column;gap:7px}.state-bar{font-size:15px;padding:8px 9px;color:#142943;background:#dce8f8;min-width:30%}.state-bar.grad{background:#fff0ba}.state-bar.opt{background:#dceddf}.device .local-data{font-size:15px;margin-top:12px;color:var(--muted)}.ledger{display:flex;gap:10px;align-items:end}.ledger>div{flex:1;padding:20px 12px;background:#e9eff8;text-align:center}.ledger>div b{font-size:40px;display:block}.ledger>div:nth-child(2){background:#fff0ba}.ledger>div:nth-child(3),.ledger>div:nth-child(4){background:#e2f1e6}.storage{border:2px solid #adc0d9;border-radius:8px;padding:20px;min-height:180px}.storage.fast{border-color:#b88b24;background:#fff9e8}.grid-table{display:grid;grid-template-columns:repeat(8,1fr);gap:4px;margin-top:15px}.grid-table i{height:24px;background:#c5d7ee}.grid-table i.hot{background:#fdb515}.block-map{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:center}.physical-blocks{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.physical-block{padding:16px 5px;background:#e9eef5;border:1px solid #b9c7d9;text-align:center;font-size:17px}.physical-block.used{background:#fff0b8;border-color:#ba8a00}.timeline{width:100%;font-size:20px}.timeline td,.timeline th{text-align:center}.slot-a{background:#d7e6fb}.slot-b{background:#e5efde}.slot-c{background:#fff0b8}.expert-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.expert{padding:20px 8px;border:1px solid var(--line);text-align:center;background:#f4f6f8}.expert.chosen{background:#fff0b8;border-color:#b58a13}.reading-state{background:var(--soft);padding:18px;border-radius:8px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(min-width:1000px) and (min-height:850px){.stage{min-height:590px}.figure img{max-height:420px}.deck{padding-top:35px}}@media(max-width:1000px){.deck{padding:22px 24px 15px}.stage{font-size:19px;min-height:440px}.stage .two{gap:20px}.stage .four{gap:10px}.big-number{font-size:46px}.formula{font-size:25px}.evidence-table{font-size:17px}.device{padding:10px}.state-bar{font-size:13px}.cue-caption{grid-template-columns:100px 1fr}.cue-caption p{font-size:17px}.deck-foot{gap:10px}}
@media(max-width:700px){.deck{display:block;padding:22px 18px 80px}.deck-header{display:block}.home-link{display:inline-block;margin-top:12px}.stage{min-height:0;padding:25px 0;font-size:18px}.stage .two,.stage .three,.stage .four{grid-template-columns:1fr}.stage .four.devices{grid-template-columns:repeat(2,1fr)}.flow{flex-wrap:wrap}.stage .figure img{max-height:400px}.cue-caption{display:block}.cue-caption b{display:block;margin-bottom:8px}.deck-foot .controls{width:100%;margin-left:0;justify-content:space-between}.ledger{flex-wrap:wrap}.ledger>div{min-width:40%}.timeline{font-size:15px}.timeline th,.timeline td{padding:8px}.block-map{grid-template-columns:1fr}.evidence-table{display:block;overflow:auto}.modal-body{padding:20px}.modal-head{padding:16px}.grid-table i{height:18px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
/* Lecture 05 final presentation hierarchy: one canvas, quiet bottom controls. */
.deck{max-width:none;width:100%;height:100dvh;min-height:720px;padding:24px 3vw 0;grid-template-rows:auto minmax(0,1fr) auto;gap:0}.deck-header{padding:0;display:block}.deck-header h1{font-size:clamp(30px,3.3vw,62px);font-weight:650;line-height:1.22;text-wrap:balance}.canvas-page{min-height:0;display:flex;flex-direction:column;justify-content:center;padding:16px 1.3vw 10px;overflow:auto}.stage{min-height:0;flex:1;width:100%;max-width:1600px;margin:auto;padding:16px 0;justify-content:center;font-size:clamp(19px,1.8vw,31px)}.stage h2{font-size:clamp(27px,2.3vw,42px)}.stage h3{font-size:clamp(22px,1.8vw,31px)}.stage .formula{font-size:clamp(23px,2.1vw,36px)}.stage .figure img{max-height:48vh}.cue-caption{display:block;min-height:0;padding:12px 0 4px;margin-top:8px;border-top:0;text-align:center}.cue-caption p{font-size:clamp(18px,1.4vw,25px);color:var(--navy)}.evidence{margin:3px 0 0;text-align:center;font-size:13px;min-height:18px}.deck-foot{margin:0 -3vw;padding:8px 2vw;display:flex;flex-wrap:nowrap;gap:16px;min-height:58px;font-size:14px}.nav-group{display:flex;align-items:center;gap:12px}.nav-middle{margin-left:auto;margin-right:auto}.deck-foot a{font-size:14px;text-decoration:none}.deck-foot button{border:0;font-size:14px;padding:10px 14px;white-space:nowrap}.deck-foot button.primary{padding:11px 25px;border-radius:4px}.deck-foot .controls{margin-left:0}#counter,#step-counter{font-size:13px;color:var(--muted);white-space:nowrap}#fullscreen{display:flex;align-items:center}.progress{height:2px}.progress>i{height:2px;background:var(--gold)}.index-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 32px}.index-grid h3{margin:.3em 0 .7em}.index-grid ul{padding-left:20px}.index-grid li{margin:.6em 0}.reading-links{display:flex;flex-direction:column;gap:18px}.modal-body .reading-links a{font-size:20px}.modal{max-width:1000px;border-radius:8px}.reading-diagram{font-size:17px;display:block;padding:24px 0;overflow:auto;min-height:0;max-width:100%}.reading-diagram .formula{font-size:22px}.reading-diagram h2,.reading-diagram h3{font-size:22px}.reading-cue{border-top:1px solid var(--line);padding-top:8px}.reading-cue details{margin:12px 0 24px}.reader:has(.reading-diagram){max-width:1080px}.reading-diagram .figure img{max-height:500px}.route-error{text-align:center;padding:40px}
@media(max-width:1100px){.deck{padding:20px 24px 0}.deck-foot{margin:0 -24px;padding:8px 16px;gap:10px}.nav-group{gap:6px}.deck-foot button{padding:9px 10px}.stage{font-size:19px}.stage h2{font-size:27px}.stage h3{font-size:22px}.stage .formula{font-size:24px}.caption{font-size:15px}.canvas-page{padding:12px 0}.stage-note{font-size:17px}}
@media(max-width:700px){.deck{height:auto;min-height:100dvh;display:block;padding:24px 18px 0}.deck-header h1{font-size:28px}.canvas-page{overflow:visible;padding:14px 0 22px}.stage{padding:16px 0}.deck-foot{margin:0 -18px;padding:10px 16px;flex-wrap:wrap;position:relative}.nav-middle{margin:0 0 0 auto}.deck-foot .controls{width:100%;justify-content:flex-end}.nav-group{gap:8px}.cue-caption{text-align:left;padding-top:16px}.evidence{text-align:left;font-size:12px}.index-grid{grid-template-columns:1fr}.stage .figure img{max-height:none}.modal-head h2{font-size:22px}.reading-diagram .two,.reading-diagram .three,.reading-diagram .four{grid-template-columns:1fr}.reading-diagram{overflow:visible}}
/* Notes scroll within the existing dialog; the classroom stop remains visible. */
.modal[open]{display:flex;flex-direction:column;overflow:hidden}.modal-head{flex:none}.modal-head>div{min-width:0}.modal-body{overflow:auto;min-height:0;overscroll-behavior:contain}.notes-position{font-size:14px;line-height:1.5;color:var(--muted);margin:9px 0 0}.notes-tools{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin:0 0 18px;font-size:15px}.notes-tools button{font-size:14px;padding:6px 10px}.notes-tools span{font-size:13px;color:var(--muted)}.modal-body .notes-cue{border-top:1px solid var(--line);margin:0}.modal-body .page-context{margin:0 0 16px}.modal-body .page-context summary{font-size:16px}.modal-body .page-more{margin:24px 0}.modal-body .reading-links{margin-top:28px;padding-top:20px;border-top:1px solid var(--line)}.modal-body .reading-links a{font-size:17px}.modal-body .katex-display{max-width:100%;overflow:auto}.modal-body .notes-cue-body{padding:0 4px 20px}.modal-body h3{font-size:21px}.modal-body .notes-cue-body p:last-child{margin-bottom:0}
