:root{color:#17201b;background:#f7f6ef;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px}button,input,textarea{font:inherit}button:focus-visible,input:focus-visible,textarea:focus-visible,a:focus-visible{outline:3px solid #0f766e;outline-offset:3px}.app-shell{min-height:100vh}.topbar{align-items:center;background:#f7f6eff0;border-bottom:1px solid #dad7c8;display:flex;gap:24px;justify-content:space-between;padding:14px clamp(16px,4vw,36px);position:sticky;top:0;z-index:10}.brand,.topbar nav a,.topbar nav span{align-items:center;color:inherit;display:inline-flex;gap:8px;text-decoration:none}.brand{font-weight:800}.brand__mark{align-items:center;background:#12372f;border-radius:6px;color:#f9faf7;display:inline-flex;font-size:.8rem;height:32px;justify-content:center;width:42px}.topbar nav{display:flex;gap:8px}.topbar nav a,.topbar nav span{border-radius:6px;padding:8px 10px}.topbar nav a[aria-current=page]{background:#d8eee7;color:#0f4f45}.topbar nav span{color:#747066}.part-page{display:grid;gap:clamp(18px,3vw,32px);grid-template-columns:minmax(220px,300px) minmax(0,1fr);padding:clamp(18px,4vw,36px)}.lesson-rail{align-self:start;position:sticky;top:88px}.lesson-rail h1{font-size:clamp(1.8rem,3vw,2.8rem);line-height:1.05;margin:8px 0 24px}.lesson-rail nav{display:grid;gap:8px}.part-switcher{display:grid;gap:8px;margin-bottom:14px}.part-switcher--next{margin-bottom:0;margin-top:14px}.part-switcher button{align-items:start;background:#fffefa;border:1px solid #dedaca;border-radius:8px;color:#263029;display:grid;gap:3px;justify-content:stretch;min-height:auto;padding:11px 12px;text-align:left}.part-switcher button[aria-current=page]{background:#12372f;border-color:#12372f;color:#fff}.part-switcher span{color:#0f766e;font-size:.76rem;font-weight:850;text-transform:uppercase}.part-switcher button[aria-current=page] span{color:#d8eee7}.part-switcher strong{font-size:.94rem;line-height:1.25}.lesson-rail a{background:#fffefa;border:1px solid #dedaca;border-radius:8px;color:#263029;display:grid;gap:4px;padding:12px;text-decoration:none}.lesson-rail a span{color:#0f766e;font-size:.78rem;font-weight:800}.playground-stack{display:grid;gap:18px}.intro-panel,.lab-surface,.block-library{background:#fffefa;border:1px solid #dedaca;border-radius:8px;padding:clamp(16px,3vw,24px)}.intro-panel{align-items:start;display:grid;gap:18px;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr)}.intro-panel h2,.section-heading h2{font-size:clamp(1.35rem,2.5vw,2rem);line-height:1.12;margin:4px 0 0}.eyebrow{color:#0f766e;font-size:.78rem;font-weight:850;letter-spacing:0;margin:0;text-transform:uppercase}.section-heading{margin-bottom:16px}.lab-grid{display:grid;gap:16px;grid-template-columns:minmax(0,1.05fr) minmax(280px,.95fr)}.control-panel,.result-panel,.attack-panel,.byte-inspector,.mini-lab{background:#f8faf8;border:1px solid #d8ded7;border-radius:8px}.control-panel,.result-panel,.attack-panel{display:grid;gap:14px;padding:16px}label{color:#263029;display:grid;font-size:.9rem;font-weight:750;gap:8px}input,textarea{background:#fff;border:1px solid #bbc8c0;border-radius:6px;color:#17201b;min-width:0;padding:10px 12px;width:100%}textarea{resize:vertical}button{align-items:center;background:#12372f;border:0;border-radius:6px;color:#fff;cursor:pointer;display:inline-flex;font-weight:800;justify-content:center;min-height:42px;padding:10px 14px}button:disabled{cursor:not-allowed;opacity:.45}.button-secondary{background:#e8efeb;color:#12372f}.lesson-button{align-items:start;background:#fffefa;border:1px solid #dedaca;border-radius:8px;color:#263029;display:grid;grid-template-columns:auto minmax(0,1fr) auto;font-weight:700;gap:4px 10px;justify-items:stretch;justify-content:stretch;min-height:auto;padding:12px;text-align:left;width:100%}.lesson-button[aria-current=step]{background:#d8eee7;border-color:#8dc8bd;color:#0f4f45}.lesson-button__number{color:#0f766e;font-size:.78rem;font-weight:850}.lesson-button__title{color:inherit;font-size:.94rem;font-weight:750;grid-column:2;line-height:1.25}.lesson-button__meta{color:#7a766d;font-size:.8rem;font-weight:750;grid-column:2;line-height:1.25}.lesson-button__check,.lesson-button__lab-check{align-items:center;background:#12372f;border-radius:999px;color:#fff;display:inline-flex;grid-column:3;grid-row:1 / span 2;height:24px;justify-content:center;margin-top:1px;width:24px}.lesson-button__lab-check{grid-row:1 / span 3}.lab-rail-nav{display:grid;gap:10px}.lab-section-item{display:grid;gap:8px}.lesson-button--lab-section:disabled{background:#edede7;border-color:#d5d2c7;color:#807c72;opacity:1}.lab-section-item--active .lesson-button--lab-section:not(:disabled){background:#eaf6f2;border-color:#8dc8bd}.lab-session-list{display:grid;gap:7px;padding-left:16px}.lab-session-button{align-items:center;background:#fffefa;border:1px solid #dedaca;color:#263029;display:grid;gap:10px;grid-template-columns:minmax(0,1fr) auto;justify-content:stretch;min-height:62px;padding:10px 11px;text-align:left;width:100%}.lab-session-button[aria-current=page]{background:#12372f;border-color:#12372f;color:#fff}.lab-session-button span:first-child{display:grid;gap:3px;min-width:0}.lab-session-button strong,.lab-session-button small{overflow-wrap:anywhere}.lab-session-button strong{font-size:.92rem}.lab-session-button small{color:inherit;font-size:.78rem;font-weight:650;line-height:1.25;opacity:.72}.lab-session-button__check{align-items:center;background:#12372f;border-radius:999px;color:#fff;display:inline-flex;height:24px;justify-content:center;width:24px}.lab-session-button[aria-current=page] .lab-session-button__check{background:#fff;color:#12372f}.intro-panel--quiet{align-items:center}.intro-panel--quiet p:not(.eyebrow){color:#435047;line-height:1.55;margin:0}.lesson-player{background:#fffefa;border:1px solid #dedaca;border-radius:8px;padding:clamp(16px,3vw,24px)}.step-progress{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:16px 0 0;padding:0}.step-progress li{display:inline-flex}.step-progress button{align-items:center;background:#f2f4ee;border:1px solid #d8ded7;border-radius:999px;color:#536159;display:inline-flex;font-size:.85rem;font-weight:750;gap:7px;min-height:34px;padding:6px 10px}.step-progress button[aria-current=step]{background:#12372f;border-color:#12372f;color:#fff}.step-progress button:disabled{background:#f6f6f1;color:#9a978c;opacity:1}.step-progress span{align-items:center;background:#ffffffc2;border-radius:999px;color:#12372f;display:inline-flex;font-size:.74rem;height:20px;justify-content:center;width:20px}.step-progress svg{stroke-width:3}.lesson-stage{display:grid;gap:16px;grid-template-columns:minmax(0,1fr) minmax(260px,.42fr)}.tutor-card,.coach-panel,.reference-drawer{background:#f8faf8;border:1px solid #d8ded7;border-radius:8px}.tutor-card{display:grid;gap:16px;padding:clamp(16px,3vw,22px)}.coach-panel{align-self:start;display:grid;gap:12px;padding:14px}.step-copy{display:grid;gap:8px}.step-copy h3{font-size:clamp(1.25rem,2vw,1.65rem);line-height:1.18;margin:0}.step-copy p{color:#435047;line-height:1.55;margin:0}.single-result{background:#fff;border:1px solid #d8ded7;border-radius:8px;display:grid;gap:8px;padding:16px}.single-result span{color:#0f766e;font-size:.78rem;font-weight:850;text-transform:uppercase}.single-result output{color:#17201b;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:clamp(1.2rem,3vw,2rem);overflow-wrap:anywhere}.byte-slots{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:4px 0 0;padding:0}.byte-slots li{background:#eef5f1;border:1px solid #cbd9d2;border-radius:6px;color:#33433a;font-size:.86rem;font-weight:800;padding:8px 10px}.single-result--warning{background:#fff4df;border-color:#e7c170}.tutor-controls{display:flex;gap:10px;justify-content:space-between}.tutor-controls button{gap:6px}.reference-drawer{padding:0}.reference-drawer summary{cursor:pointer;font-weight:850;padding:14px 16px}.reference-drawer[open]{padding-bottom:16px}.reference-drawer[open]>*:not(summary){margin:0 16px}.byte-inspector{overflow:hidden}.byte-inspector__header{align-items:center;background:#edf5f1;display:flex;justify-content:space-between;padding:12px 14px}.byte-inspector h3,.feedback h3,.attack-panel h3{font-size:1rem;margin:0}.byte-inspector__header span{color:#536159;font-size:.85rem}.byte-grid{display:grid;gap:1px;grid-template-columns:repeat(2,minmax(0,1fr));margin:0}.byte-grid div{background:#fff;min-width:0;padding:12px 14px}.byte-grid__wide{grid-column:1 / -1}dt{color:#536159;font-size:.75rem;font-weight:800;margin-bottom:5px;text-transform:uppercase}dd{margin:0}.byte-grid dd,.operation-line output{font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;overflow-wrap:anywhere}.mini-lab{display:grid;gap:10px;padding:14px}.mini-lab--strong{background:#fff9ed;border-color:#e8c983}.field-error{background:#fff1f1;border:1px solid #e4a7a7;border-radius:6px;color:#8c1d18;margin:0;padding:10px 12px}.field-success{background:#edf8ef;border:1px solid #abd8b3;border-radius:6px;color:#185b2c;margin:0;padding:10px 12px}.field-note{color:#33433a;margin:0;overflow-wrap:anywhere}.field-note--warning{background:#fff4df;border:1px solid #e7c170;border-radius:6px;padding:10px 12px}.feedback{align-items:start;border-radius:8px;display:grid;gap:10px;grid-template-columns:auto 1fr;padding:13px}.feedback p{margin:4px 0 0}.feedback--info{background:#ecf5ff;border:1px solid #bad7f3}.feedback--success{background:#eef8eb;border:1px solid #b9ddb2}.feedback--warning{background:#fff4df;border:1px solid #e7c170}.two-column-controls,.attack-controls{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.attack-controls{grid-template-columns:repeat(3,minmax(0,1fr))}.operation-stack{display:grid;gap:8px}.operation-line{align-items:start;background:#fff;border:1px solid #d8ded7;border-radius:6px;display:grid;gap:8px;grid-template-columns:minmax(180px,.9fr) minmax(0,1.1fr);padding:10px 12px}.operation-line code{color:#0f4f45;overflow-wrap:anywhere}.attack-panel{background:#fdf7ec;border-color:#e1c992;margin-top:16px}.operation-stack--attack .operation-line{border-color:#e4c986}.attack-panel p{margin:0}.lab-callout{align-items:center;background:#eef6ff;border:1px solid #bdd8f0;border-radius:8px;display:flex;gap:14px;justify-content:space-between;padding:14px}.lab-callout button{flex-shrink:0;white-space:nowrap}.lab-callout h3,.attack-session-panel h3{font-size:1.05rem;margin:3px 0 4px}.lab-callout p,.attack-session-panel p{color:#33433a;margin:0}.lab-player{display:grid;gap:18px}.lab-selector{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.lab-selector button{align-items:start;background:#f8faf8;border:1px solid #d8ded7;color:#263029;display:grid;gap:4px;justify-content:stretch;min-height:74px;text-align:left}.lab-selector button[aria-current=page]{background:#12372f;border-color:#12372f;color:#fff}.lab-selector span{font-weight:850}.lab-selector small{color:inherit;opacity:.72}.manual-xor-lab{display:grid;gap:16px}.lab-brief{max-width:72ch}.xor-flow{align-items:stretch;display:grid;gap:14px;grid-template-columns:minmax(170px,.55fr) 34px minmax(360px,1.35fr) 34px minmax(220px,.75fr)}.xor-sources{display:grid;gap:12px}.source-block,.xor-workspace,.xor-output-block,.attack-session-panel{background:#fff;border:1px solid #d8ded7;border-radius:8px}.source-block{align-content:start;display:grid;gap:8px;padding:14px}.source-block span,.xor-output-block span{color:#0f766e;font-size:.78rem;font-weight:850;text-transform:uppercase}.source-block strong{font-size:1.35rem}.source-block code,.xor-workspace code,.xor-output-block output{font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;overflow-wrap:anywhere}.flow-connector{align-self:center;height:2px;position:relative}.flow-connectors{align-self:stretch;display:grid;gap:12px}.flow-connector:before{background:#8aa39a;content:"";height:2px;left:0;position:absolute;right:6px;top:50%;transform:translateY(-50%)}.flow-connector:after{border-bottom:6px solid transparent;border-left:8px solid #8aa39a;border-top:6px solid transparent;content:"";position:absolute;right:0;top:50%;transform:translateY(-50%)}.xor-workspace{display:grid;gap:13px;padding:16px}.xor-workspace__header{align-items:center;display:flex;gap:12px;justify-content:space-between}.xor-workspace__header span{color:#12372f;font-size:1.15rem;font-weight:900}.xor-workspace__header code{color:#536159;font-size:.84rem}.bit-row{display:grid;gap:8px}.bit-row__label{color:#33433a;font-size:.85rem;font-weight:850}.bit-cells{display:grid;gap:5px;grid-template-columns:repeat(16,minmax(0,1fr))}.bit-cell,.bit-input{align-items:center;aspect-ratio:1;border-radius:6px;display:inline-flex;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.9rem;font-weight:850;justify-content:center;min-height:30px;min-width:0;padding:0;text-align:center}.bit-cell{background:#eef5f1;border:1px solid #cbd9d2;color:#17201b}.bit-input{background:#fff;border:1px solid #9daaa3;color:#17201b;width:100%}.bit-input--correct{background:#edf8ef;border-color:#57a669;color:#185b2c}.bit-input--incorrect{background:#fff1f1;border-color:#d96262;color:#8c1d18}.xor-output-block{align-content:start;display:grid;gap:8px;padding:14px}.xor-output-block output{background:#f8faf8;border:1px solid #d8ded7;border-radius:6px;min-height:42px;padding:10px 12px}.xor-output-block p{color:#536159;font-size:.9rem;line-height:1.45;margin:4px 0 0}.key-reuse-lab,.channel-lab,.ciphertext-tamper-lab{display:grid;gap:16px}.tamper-scenario{display:grid;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr))}.tamper-scenario>div{background:#f8faf8;border:1px solid #d8ded7;border-radius:8px;display:grid;gap:5px;padding:12px}.tamper-scenario span{color:#0f766e;font-size:.74rem;font-weight:850;text-transform:uppercase}.tamper-scenario strong{color:#17201b;overflow-wrap:anywhere}.tamper-stage{align-items:start;display:grid;gap:14px;grid-template-columns:minmax(0,1.4fr) minmax(280px,.72fr)}.tamper-byte-grid{display:grid;gap:7px;grid-template-columns:repeat(6,minmax(0,1fr))}.tamper-byte{background:#fff;border:1px solid #cfd8d1;color:#17201b;display:grid;gap:3px;min-width:0;padding:8px 5px;text-align:center}.tamper-byte:hover,.tamper-byte:focus-visible,.tamper-byte[aria-pressed=true]{border-color:#0f766e;box-shadow:0 0 0 3px #0f766e24}.tamper-byte--changed{background:#fff4df;border-color:#d79c26}.tamper-byte span{color:#536159;font-size:.68rem;font-weight:850;text-transform:uppercase}.tamper-byte strong,.tamper-byte code{font-family:SFMono-Regular,Consolas,Liberation Mono,monospace}.tamper-byte strong{font-size:1rem}.tamper-byte code{color:#536159;font-size:.66rem;overflow:hidden}.tamper-bit-picker{border:1px solid #d8ded7;border-radius:8px;display:grid;gap:10px;margin:0;padding:12px}.tamper-bit-picker legend{color:#33433a;font-size:.86rem;font-weight:800;padding:0 5px}.tamper-bit-picker>div{display:grid;gap:7px;grid-template-columns:repeat(8,minmax(0,1fr))}.tamper-bit{background:#fff;border:1px solid #cfd8d1;color:#17201b;display:grid;gap:3px;min-width:0;padding:7px 3px}.tamper-bit:hover,.tamper-bit:focus-visible{border-color:#0f766e}.tamper-bit--flipped{background:#fff4df;border-color:#d79c26;box-shadow:inset 0 0 0 2px #d79c26}.tamper-bit span,.tamper-bit small{font-size:.64rem;line-height:1.1}.tamper-bit strong{font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:1rem}.tamper-actions{display:flex;flex-wrap:wrap;gap:10px}.tamper-hints{background:#fff;border:1px solid #e7c170;border-radius:8px;display:grid;gap:8px;padding:12px}.tamper-hints p,.tamper-success-explanation p{margin:0}.tamper-success-explanation{background:#edf8ef;border:1px solid #abd8b3;border-radius:8px;display:grid;gap:10px;padding:14px}.channel-stage{align-items:start;display:grid;gap:14px;grid-template-columns:minmax(0,1.45fr) minmax(280px,.75fr)}.channel-pipeline{align-items:stretch;display:grid;gap:10px;grid-template-columns:minmax(0,.82fr) repeat(3,minmax(0,1fr)) minmax(0,.82fr);min-width:0}.channel-endpoint,.channel-block,.channel-empty-slot{border:1px solid #d8ded7;border-radius:8px;min-height:132px;min-width:0;padding:10px}.channel-endpoint{align-content:center;background:#f8faf8;display:grid;gap:6px}.channel-endpoint span,.channel-block span,.channel-empty-slot span{color:#0f766e;font-size:.72rem;font-weight:850;text-transform:uppercase}.channel-endpoint strong,.channel-block strong,.channel-empty-slot strong{color:#17201b;overflow-wrap:anywhere;line-height:1.18}.channel-block{align-content:start;background:#edf8ef;border-color:#abd8b3;display:grid;gap:8px}.channel-block p{color:#33433a;font-size:.88rem;line-height:1.35;margin:0}.channel-block__actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:2px}.channel-empty-slot{background:#fff;color:#536159;cursor:pointer;display:grid;gap:6px;text-align:left}.channel-empty-slot:hover,.channel-empty-slot:focus-visible{border-color:#0f766e;box-shadow:0 0 0 3px #0f766e24}.channel-block-picker{background:#f8faf8;border:1px solid #d8ded7;border-radius:8px;display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr));min-width:0;padding:12px}.channel-block-picker p{color:#33433a;grid-column:1 / -1;margin:0}.channel-block-picker button{align-items:start;background:#fff;border:1px solid #d8ded7;color:#17201b;display:grid;gap:4px;justify-items:start;min-height:82px;min-width:0;padding:12px;text-align:left;width:100%}.channel-block-picker button:hover,.channel-block-picker button:focus-visible{border-color:#0f766e}.channel-block-picker small{color:#536159;font-size:.82rem;font-weight:700;line-height:1.35}.channel-block-picker span{font-size:.98rem;line-height:1.18}.channel-block-picker span,.channel-block-picker small{min-width:0;overflow-wrap:anywhere}.channel-send-controls{align-items:end;background:#fff9ed;border:1px solid #e8c983;border-radius:8px;display:grid;gap:12px;grid-template-columns:minmax(0,1fr) auto;min-width:0;padding:12px}.channel-send-message{color:#33433a;display:grid;gap:6px;font-size:.86rem;font-weight:800;min-width:0}.channel-send-message span{color:#0f766e;font-size:.78rem;font-weight:850;text-transform:uppercase}.channel-send-message strong{color:#17201b;font-size:1rem;overflow-wrap:anywhere}.channel-event{display:grid;gap:10px}.channel-event-row{background:#fff;border:1px solid #d8ded7;border-radius:8px;display:grid;gap:6px;padding:12px}.channel-event-row span{color:#0f4f45;font-size:.78rem;font-weight:850;text-transform:uppercase}.channel-event-row p{color:#17201b;line-height:1.45;margin:0;overflow-wrap:anywhere}.channel-event--modified,.channel-event--readable,.channel-event--replayed{background:#fff4df;border:1px solid #e7c170;border-radius:8px;padding:10px}.channel-event--safe{background:#edf8ef;border:1px solid #abd8b3;border-radius:8px;padding:10px}.attack-check-grid{display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr))}.attack-check{background:#fff;border:1px solid #d8ded7;border-radius:8px;display:grid;gap:10px;padding:14px}.attack-check h3{font-size:1rem;margin:0}.attack-check p{color:#33433a;line-height:1.45;margin:0}.attack-check--works{background:#fff4df;border-color:#e7c170}.attack-check--blocked{background:#edf8ef;border-color:#abd8b3}.lab-brief--attack{background:#fff9ed;border:1px solid #e8c983;border-radius:8px;max-width:none;padding:16px}.key-reuse-stage{display:grid;gap:14px;grid-template-columns:minmax(0,1fr) minmax(320px,.86fr)}.attack-session-panel{display:grid;gap:12px;min-width:0;padding:16px}.attack-session-panel--work{background:#f8faf8;align-self:start;display:flex;flex-direction:column;gap:10px}.attack-session-panel--work .binary-byte-inputs+.field-note,.attack-session-panel--work .binary-byte-inputs+.field-error,.attack-session-panel--work .binary-byte-inputs+.field-success{margin-top:0}.attack-session-panel--warning{background:#fff4df;border-color:#e7c170}.binary-packet-row{background:#f8faf8;border:1px solid #d8ded7;border-radius:6px;display:grid;gap:7px;padding:11px 12px}.binary-packet-row span{color:#0f766e;font-size:.76rem;font-weight:850;text-transform:uppercase}.binary-packet-row code{color:#17201b;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;overflow-wrap:anywhere}.binary-packet-comparison{background:#f8faf8;border:1px solid #d8ded7;border-radius:6px;display:grid;overflow:hidden}.binary-packet-comparison__row{display:grid;gap:5px;padding:8px 12px 9px}.binary-packet-comparison__row+.binary-packet-comparison__row{border-top:1px solid #d8ded7}.binary-packet-comparison__row span{color:#0f766e;font-size:.74rem;font-weight:850;text-transform:uppercase}.binary-packet-comparison__row code{color:#17201b;display:block;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.95rem;overflow-x:auto;white-space:nowrap}.binary-byte-inputs{border:0;display:grid;gap:10px;margin:0;padding:0}.binary-byte-inputs legend{color:#33433a;font-size:.85rem;font-weight:850;margin-bottom:8px;padding:0}.binary-byte-inputs__grid{display:grid;gap:8px;grid-template-columns:repeat(3,minmax(0,1fr))}.binary-byte-input{font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.76rem;font-weight:850;height:34px;letter-spacing:0;line-height:1;min-height:34px;padding:5px 4px;text-align:center}.binary-byte-input:focus{box-shadow:inset 0 0 0 3px #0f766e;outline:0}.binary-byte-input--correct{background:#edf8ef;border-color:#57a669;color:#185b2c}.binary-byte-input--incorrect{background:#fff1f1;border-color:#d96262;color:#8c1d18}.locked-note{background:#f1f4ef;border:1px solid #d8ded7;border-radius:6px;padding:10px 12px}@media(max-width:980px){.part-page,.intro-panel,.lab-grid,.lesson-stage,.xor-flow,.key-reuse-stage,.channel-stage,.tamper-stage,.attack-check-grid{grid-template-columns:1fr}.lesson-rail{position:static}.lesson-rail nav{grid-template-columns:repeat(2,minmax(0,1fr))}.flow-connector,.flow-connectors{display:none}.channel-pipeline{align-items:stretch;grid-template-columns:1fr}.channel-endpoint,.channel-block,.channel-empty-slot{min-height:0}.tamper-byte-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:680px){.topbar{align-items:stretch;flex-direction:column}.topbar nav{overflow-x:auto}.lesson-rail nav,.two-column-controls,.attack-controls,.lab-selector,.channel-block-picker,.channel-send-controls,.tamper-scenario,.byte-grid,.operation-line{grid-template-columns:1fr}.lab-callout{align-items:stretch;flex-direction:column}.bit-cells{grid-template-columns:repeat(8,minmax(0,1fr))}.binary-byte-inputs__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tamper-bit-picker>div{grid-template-columns:repeat(4,minmax(0,1fr))}}
