*{box-sizing:border-box}body{color:#f8fafc;background:radial-gradient(circle at 0 0,#38bdf82e,#0000 30%),radial-gradient(circle at 100% 0,#a855f729,#0000 30%),#080b14;margin:0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button{cursor:pointer}.app{min-height:100vh}.navbar{justify-content:space-between;align-items:center;width:min(1120px,100% - 32px);margin:0 auto;padding:24px 0;display:flex}.logo{letter-spacing:.03em;color:#38bdf8;align-items:center;gap:10px;font-size:1.4rem;font-weight:900;display:inline-flex}.logo-mark{filter:drop-shadow(0 6px 14px #38bdf838);flex:none;width:36px;height:36px}.nav-links{color:#cbd5e1;gap:18px;font-size:.95rem;display:flex}.nav-links a{transition:color .2s}.nav-links a:hover,.nav-links a.active{color:#38bdf8}.page-container{width:min(1120px,100% - 32px);margin:0 auto;padding:48px 0 80px}.site-footer{color:#94a3b8;text-align:center;width:min(1120px,100% - 32px);margin:0 auto;padding:0 0 32px;font-size:.85rem}.site-footer p{margin:0}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.hero{gap:56px;display:grid}.hero-content{max-width:820px}.eyebrow{color:#38bdf8;text-transform:uppercase;letter-spacing:.14em;font-size:.8rem;font-weight:800}h1{margin:16px 0;font-size:clamp(2.4rem,6vw,5rem);line-height:1}h2{margin-top:0}.hero-text,.page-header p{color:#cbd5e1;max-width:760px;font-size:1.15rem;line-height:1.7}.hero-buttons{flex-wrap:wrap;gap:14px;margin-top:28px;display:flex}.btn{border:none;border-radius:999px;padding:12px 20px;font-weight:800}.btn.primary{color:#fff;background:linear-gradient(135deg,#38bdf8,#a855f7)}.btn.secondary{color:#f8fafc;background:#0f172ae6;border:1px solid #94a3b859}.feature-grid,.lesson-grid{grid-template-columns:repeat(3,1fr);gap:18px;display:grid}.feature-card,.lesson-card,.demo-panel{background:#0f172ac7;border:1px solid #94a3b838;border-radius:24px;padding:24px;box-shadow:0 20px 80px #0000003d}.feature-card h3,.lesson-card h2{margin-top:0}.feature-card p,.lesson-card p,.demo-panel p{color:#cbd5e1;line-height:1.65}.badge{color:#7dd3fc;border:1px solid #38bdf866;border-radius:999px;margin-bottom:14px;padding:4px 10px;font-size:.75rem;font-weight:800;display:inline-block}.page-header{margin-bottom:32px}.demo-panel{max-width:100%}.formula-box{color:#7dd3fc;background:#020617;border:1px solid #38bdf859;border-radius:16px;margin-bottom:22px;padding:18px;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;overflow-x:auto}.controls{grid-template-columns:repeat(2,1fr);gap:18px;margin-bottom:22px;display:grid}label{color:#e2e8f0;gap:8px;font-weight:700;display:grid}input,select{color:#f8fafc;background:#020617;border:1px solid #94a3b859;border-radius:12px;padding:12px}.result-box,.explanation-box{background:#020617b8;border:1px solid #94a3b833;border-radius:18px;margin-top:22px;padding:20px}.answer-list{gap:12px;margin-top:20px;display:grid}.answer-button{text-align:left;color:#f8fafc;background:#020617b3;border:1px solid #94a3b84d;border-radius:14px;padding:14px}.answer-button:hover{border-color:#38bdf8}.security-note{color:#fde68a;background:#fbbf2414;border:1px solid #fbbf2459;border-radius:14px;margin-top:18px;margin-bottom:22px;padding:14px 16px;font-size:.95rem;line-height:1.6}.error-box{color:#fecaca;background:#f8717114;border:1px solid #f8717173;border-radius:14px;margin-bottom:18px;padding:14px 16px;font-size:.95rem}.truth-table{gap:8px;margin:18px 0;display:grid}.truth-row{color:#e2e8f0;background:#020617b3;border:1px solid #94a3b838;border-radius:12px;grid-template-columns:1fr 1fr 2fr;gap:12px;padding:12px 14px;display:grid}.truth-header{color:#7dd3fc;border-color:#38bdf859;font-weight:800}.inference-lab{margin-top:32px}.lab-controls,.probability-comparison{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:24px 0;display:grid}.key-model-picker{border:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:24px 0;padding:0;display:grid}.key-model-picker legend{color:#e2e8f0;grid-column:1/-1;margin-bottom:10px;font-weight:800}.key-model-option{cursor:pointer;background:#020617b3;border:1px solid #94a3b84d;border-radius:16px;align-items:flex-start;gap:12px;padding:16px;display:flex}.key-model-option:hover,.key-model-option.selected{background:#38bdf814;border-color:#38bdf8a6}.key-model-option:focus-within{outline-offset:3px;outline:2px solid #7dd3fc}.key-model-option input{accent-color:#38bdf8;margin:4px 0 0}.key-model-option span,.key-model-option small{display:block}.key-model-option small{color:#94a3b8;margin-top:7px;font-weight:400;line-height:1.5}.probability-comparison{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:stretch}.probability-card{background:#020617c2;border:1px solid #94a3b840;border-radius:18px;padding:20px}.probability-card h3{margin:8px 0 16px}.probability-card p{justify-content:space-between;gap:12px;display:flex}.posterior-card{border-color:#38bdf873}.comparison-label{color:#7dd3fc;letter-spacing:.08em;text-transform:uppercase;font-size:.78rem;font-weight:800}.comparison-arrow{color:#7dd3fc;align-self:center;font-size:1.8rem;font-weight:900}.probability-bar{background:#94a3b82e;border-radius:999px;height:8px;overflow:hidden}.probability-bar span{border-radius:inherit;background:linear-gradient(90deg,#38bdf8,#a855f7);height:100%;transition:width .25s;display:block}.lab-conclusion,.prediction-box{background:#22c55e14;border:1px solid #22c55e59;border-radius:16px;margin:24px 0;padding:18px}.lab-conclusion p{margin-bottom:0}.outcome-details{background:#02061773;border:1px solid #94a3b840;border-radius:16px;margin:24px 0}.outcome-details summary{color:#7dd3fc;cursor:pointer;padding:16px 18px;font-weight:800}.outcome-details summary:focus-visible,.answer-button:focus-visible,.inline-link:focus-visible{outline-offset:3px;outline:2px solid #7dd3fc}.outcome-table-wrap{padding:0 18px 18px;overflow-x:auto}.outcome-table{border-collapse:collapse;width:100%;min-width:540px}.outcome-table th,.outcome-table td{text-align:left;border-bottom:1px solid #94a3b833;padding:12px}.outcome-table th{color:#7dd3fc}.bayes-work{margin-top:28px}.bayes-work .formula-box{white-space:normal;margin-bottom:12px}.inline-link{color:#7dd3fc;text-underline-offset:3px;font-weight:800;text-decoration:underline}.prediction-box{background:#a855f714;border-color:#a855f766}.prediction-feedback{border-radius:12px;margin:16px 0 0;padding:14px}.prediction-feedback.correct{color:#bbf7d0;background:#22c55e1f}.prediction-feedback.incorrect{color:#fecaca;background:#f871711f}.lesson-card-link{transition:transform .2s,border-color .2s,box-shadow .2s;display:block}.lesson-card-link:hover{border-color:#38bdf88c;transform:translateY(-4px);box-shadow:0 24px 90px #38bdf81f}.lesson-card-top{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.resource-note{color:#cbd5e1;background:#38bdf814;border:1px solid #38bdf852;border-radius:16px;margin-bottom:32px;padding:18px 20px;line-height:1.65}.resource-note strong{color:#7dd3fc}.resource-toolbar{background:#0f172ab8;border:1px solid #94a3b838;border-radius:18px;grid-template-columns:minmax(240px,1.5fr) minmax(220px,1fr) auto;align-items:end;gap:16px;margin-bottom:40px;padding:20px;display:grid}.resource-toolbar label{color:#cbd5e1;gap:8px;font-size:.85rem;font-weight:800;display:grid}.resource-toolbar input,.resource-toolbar select{color:#f8fafc;background:#020617;border:1px solid #94a3b859;border-radius:10px;width:100%;min-height:46px;padding:10px 12px}.resource-toolbar input:focus,.resource-toolbar select:focus{outline-offset:2px;border-color:#38bdf8;outline:2px solid #38bdf84d}.resource-count{color:#cbd5e1;white-space:nowrap;text-align:center;background:#02061799;border-radius:10px;min-width:130px;margin:0;padding:12px 14px}.resource-count strong{color:#7dd3fc}.resource-groups{gap:44px;display:grid}.resource-group{gap:20px;display:grid}.resource-group-heading{justify-content:space-between;align-items:flex-end;gap:24px;display:flex}.resource-group-heading h2{margin-bottom:8px}.resource-group-heading p{color:#cbd5e1;max-width:720px;margin:0;line-height:1.65}.resource-lesson-links{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.resource-lesson-links a{color:#7dd3fc;white-space:nowrap;background:#38bdf814;border:1px solid #38bdf84d;border-radius:999px;padding:6px 10px;font-size:.78rem;font-weight:800}.resource-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;display:grid}.resource-card{background:#0f172ac7;border:1px solid #94a3b838;border-radius:20px;flex-direction:column;min-height:250px;padding:22px;transition:transform .2s,border-color .2s;display:flex;box-shadow:0 20px 80px #0003}.resource-card:hover{border-color:#38bdf88c;transform:translateY(-3px)}.resource-card:focus-visible,.resource-lesson-links a:focus-visible{outline-offset:3px;outline:2px solid #7dd3fc}.resource-card h3{margin:12px 0 8px;font-size:1.15rem}.resource-card p{color:#cbd5e1;margin:0 0 20px;line-height:1.6}.resource-type{color:#d8b4fe;letter-spacing:.08em;text-transform:uppercase;align-self:flex-start;font-size:.75rem;font-weight:900}.resource-provider{color:#7dd3fc;margin-top:auto;font-size:.85rem;font-weight:800}.resource-empty{color:#cbd5e1;text-align:center;background:#0f172ab8;border:1px solid #94a3b838;border-radius:20px;padding:48px 24px}.resource-empty h2{color:#f8fafc}.status-pill{color:#94a3b8;white-space:nowrap;border:1px solid #94a3b84d;border-radius:999px;padding:4px 10px;font-size:.72rem;font-weight:800}.status-pill.available{color:#86efac;background:#22c55e14;border-color:#22c55e66}.locked-card{opacity:.72}.mode-toggle{flex-wrap:wrap;gap:12px;margin-bottom:28px;display:flex}.mode-button{color:#cbd5e1;background:#020617b8;border:1px solid #94a3b859;border-radius:999px;padding:12px 18px;font-weight:800}.mode-button:hover,.mode-button.active{color:#7dd3fc;background:#38bdf814;border-color:#38bdf8a6}.mode-section{margin-top:12px}.mode-header{margin-bottom:22px}.mode-header p{color:#cbd5e1;line-height:1.7}.flow-diagram{gap:22px;margin:26px 0;padding:8px 0 16px;display:grid;overflow-x:auto}.flow-row{background:#02061759;border:1px solid #94a3b82e;border-radius:20px;align-items:center;gap:12px;width:max-content;min-width:900px;padding:14px;display:flex}.flow-box{text-align:center;color:#f8fafc;background:#020617c2;border:1px solid #94a3b847;border-radius:16px;min-width:130px;padding:14px 12px;font-weight:800;line-height:1.35;box-shadow:0 12px 40px #00000038}.flow-arrow{color:#7dd3fc;font-size:1.4rem;font-weight:900}.iv-box{color:#d8b4fe;border-color:#a855f773}.xor-box{color:#7dd3fc;border-color:#38bdf873}.cipher-box{color:#86efac;border-color:#22c55e73}.output-box{color:#fde68a;border-color:#fbbf2473}.pad-box{color:#f9a8d4;border-color:#f472b673}.warning-box{background:#7f1d1d38;border:1px solid #f8717159;border-radius:18px;margin-top:22px;padding:20px}.warning-box p{color:#fecaca;line-height:1.65}.concept-grid{grid-template-columns:repeat(3,1fr);gap:18px;margin:24px 0;display:grid}.concept-card{background:#020617b8;border:1px solid #94a3b838;border-radius:18px;padding:18px}.concept-card h3{color:#7dd3fc;margin-top:0}.concept-card p{color:#cbd5e1;line-height:1.65}.learning-callout{background:#38bdf814;border:1px solid #38bdf859;border-radius:18px;margin:24px 0;padding:20px}.learning-callout h2{color:#7dd3fc;margin-top:0}.learning-callout p{color:#cbd5e1;line-height:1.65}.ctr-stage{grid-template-columns:repeat(5,minmax(150px,1fr));gap:14px;margin:28px 0;padding-bottom:12px;display:grid;overflow-x:auto}.stage-column{align-content:start;gap:12px;min-width:150px;display:grid}.stage-column h3{color:#f8fafc;margin:0;font-size:.95rem}.lesson-steps{color:#cbd5e1;padding-left:22px;line-height:1.8}.lesson-steps li{margin-bottom:8px}.otp-input-grid,.cipher-comparison{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:24px 0;display:grid}.input-hint,.input-error{font-weight:400}.input-hint{color:#94a3b8}.input-error{color:#fca5a5}input[aria-invalid=true]{border-color:#f87171bf}.pad-control{color:#e2e8f0;align-content:start;gap:8px;font-weight:700;display:grid}.pad-control code{color:#f8fafc;letter-spacing:.12em;background:#020617;border:1px solid #94a3b859;border-radius:12px;padding:12px;font-size:1rem}.pad-control .btn{justify-self:start;margin-top:4px}.step-tabs{flex-wrap:wrap;gap:12px;margin:26px 0 18px;display:flex}.walkthrough-step,.reuse-results{margin-top:20px}.xor-stack{width:max-content;min-width:min(100%,610px);max-width:100%;margin:18px 0 24px;padding:4px 4px 12px;overflow-x:auto}.bit-row{grid-template-columns:72px 24px repeat(8,42px);align-items:center;gap:6px;width:max-content;min-width:100%;margin:7px 0;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;display:grid}.bit-label{color:#cbd5e1;font-weight:800}.bit-operator{color:#7dd3fc;text-align:center;font-size:1.2rem;font-weight:900}.bit-cells{display:contents}.bit-cell{color:#f8fafc;background:#020617cc;border:1px solid #94a3b84d;border-radius:9px;place-items:center;min-height:42px;font-weight:800;display:grid}.bit-row.result .bit-cell{color:#7dd3fc;background:#38bdf81a;border-color:#38bdf88c}.bit-divider{border-top:2px solid #38bdf880;width:456px;max-width:calc(100% - 4px);margin-left:102px}.success-callout{color:#bbf7d0;background:#22c55e14;border:1px solid #22c55e66;border-radius:14px;padding:14px 16px}.cipher-comparison .probability-card{overflow-x:auto}.cipher-comparison .bit-row{grid-template-columns:42px repeat(8,30px)}.cipher-comparison .bit-operator{display:none}.cipher-comparison .bit-cell{min-height:34px}.reuse-results .warning-box h3,.reuse-results .learning-callout h3{margin-top:0}.otp-rules{color:#cbd5e1;gap:10px;padding-left:22px;line-height:1.65;display:grid}.otp-rules strong{color:#f8fafc}.lesson-navigation{flex-wrap:wrap;justify-content:flex-end;gap:12px;margin-top:28px;display:flex}.lesson-navigation .btn{display:inline-block}.cpa-round-header{background:#38bdf80f;border:1px solid #38bdf859;border-radius:18px;justify-content:space-between;align-items:center;gap:20px;padding:18px;display:flex}.cpa-round-header p{margin:6px 0 0}.cpa-round-header .btn{flex:none}.cpa-candidate-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:24px 0;display:grid}input:disabled{opacity:.7;cursor:not-allowed}button:disabled{cursor:not-allowed;opacity:.55}.oracle-controls{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:14px;margin:22px 0;display:grid}.oracle-controls .btn{margin-top:29px}.query-history{margin-top:26px}.query-history h3{margin-bottom:12px}.query-history .outcome-table-wrap{padding:0}.query-history code,.cpa-reveal code{color:#7dd3fc;letter-spacing:.08em;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace}.empty-state{text-align:center;border:1px dashed #94a3b84d;border-radius:14px;padding:16px}.cpa-challenge{border-color:#a855f773}.challenge-ciphertext{color:#d8b4fe;background:#a855f71a;border:1px solid #a855f780;border-radius:16px;margin:22px 0;padding:20px;font-size:clamp(1.1rem,3vw,1.45rem);font-weight:900}.challenge-ciphertext code{color:#f5d0fe;letter-spacing:.12em;margin-left:10px}.guess-picker{border:0;flex-wrap:wrap;gap:12px;padding:0;display:flex}.guess-picker legend{color:#e2e8f0;width:100%;margin-bottom:12px;font-weight:800}.cpa-reveal{border-color:#22c55e66}.candidate-ciphertexts{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:22px 0;display:grid}.candidate-ciphertexts>div{background:#020617b8;border:1px solid #94a3b840;border-radius:14px;gap:8px;min-width:0;padding:16px;display:grid}.candidate-ciphertexts span{color:#94a3b8;text-transform:uppercase;font-size:.8rem;font-weight:800}.candidate-ciphertexts code{overflow-x:auto}.candidate-ciphertexts .challenge-match{background:#38bdf814;border-color:#38bdf88c}.mac-bit-demo{gap:10px;margin:24px 0;padding-bottom:10px;display:grid;overflow-x:auto}.mac-bit-row{grid-template-columns:140px repeat(8,44px);align-items:center;gap:7px;width:max-content;min-width:100%;display:grid}.mac-bit-row>span{color:#cbd5e1;font-weight:800}.mac-bit-cells{display:contents}.mac-bit{color:#f8fafc;background:#020617cc;border:1px solid #94a3b84d;border-radius:9px;place-items:center;min-height:44px;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-weight:800;display:grid}.mac-bit.changed{color:#fecaca;background:#f8717124;border-color:#f87171bf;box-shadow:0 0 0 2px #f871711f}.bit-button{cursor:pointer;width:44px;padding:0}.bit-button:hover,.bit-button:focus-visible{outline-offset:2px;border-color:#38bdf8;outline:2px solid #38bdf8a6}.interactive-row{border-top:1px solid #94a3b833;border-bottom:1px solid #94a3b833;margin:8px 0;padding:10px 0}.authenticated-packet{gap:14px;margin:24px 0;display:grid}.authenticated-packet>div{background:#020617b8;border:1px solid #94a3b840;border-radius:14px;gap:8px;padding:16px;display:grid}.authenticated-packet span{color:#94a3b8;letter-spacing:.06em;text-transform:uppercase;font-size:.8rem;font-weight:800}.authenticated-packet code{color:#7dd3fc;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace}.authenticated-packet em{color:#cbd5e1}.mac-tag{overflow-wrap:anywhere;font-size:.82rem;line-height:1.6}.verification-result{min-height:64px;margin-top:18px}.verification-result .success-callout{color:#bbf7d0}.verification-result .mac-bit-row{grid-template-columns:140px repeat(8,36px);margin-top:14px;overflow-x:auto}.verification-result .mac-bit{min-height:36px}.hash-input-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:24px 0;display:grid}.hash-results{gap:14px;margin-top:22px;display:grid}.digest-display{background:#020617b8;border:1px solid #94a3b840;border-radius:14px;gap:9px;min-width:0;padding:16px;display:grid}.digest-display span{color:#94a3b8;overflow-wrap:anywhere;text-transform:uppercase;font-size:.8rem;font-weight:800}.digest-display code{color:#7dd3fc;overflow-wrap:anywhere;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.82rem;line-height:1.6}.avalanche-result{background:#a855f714;border:1px solid #a855f766;border-radius:16px;padding:18px}.avalanche-result strong{color:#e9d5ff;font-size:1.15rem}.avalanche-result p{margin-bottom:0}.collision-status{min-height:40px;margin-top:20px}.collision-result{background:#38bdf812;border:1px solid #38bdf866;border-radius:16px;gap:14px;padding:18px;display:grid}.collision-result>p{margin:0}.collision-result>p code{color:#7dd3fc;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace}.hash-goals-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:24px;display:grid}.hash-goals-grid article{background:#0206178c;border:1px solid #94a3b838;border-radius:14px;padding:17px}.hash-goals-grid h3{color:#7dd3fc;margin:0}.hash-goals-grid p{margin-bottom:0}.probability-controls{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:24px 0;display:grid}.dice-legend{color:#cbd5e1;flex-wrap:wrap;gap:12px 20px;margin:20px 0 12px;font-size:.9rem;display:flex}.dice-legend span{align-items:center;gap:8px;display:inline-flex}.legend-swatch{border:1px solid #94a3b866;border-radius:4px;width:14px;height:14px}.legend-swatch.match{background:#22c55e59;border-color:#22c55eb3}.legend-swatch.possible{background:#38bdf824;border-color:#38bdf88c}.legend-swatch.excluded{opacity:.55;background:#94a3b814}.grid-axis-note{margin-bottom:10px;font-size:.9rem}.dice-grid-wrap{padding:3px 3px 12px;overflow-x:auto}.dice-grid{grid-template-columns:repeat(6,minmax(76px,1fr));gap:8px;min-width:550px;display:grid}.dice-outcome{text-align:center;background:#38bdf814;border:1px solid #38bdf866;border-radius:11px;place-content:center;gap:4px;min-height:64px;transition:opacity .2s,border-color .2s,background .2s;display:grid}.dice-outcome strong{color:#e2e8f0;font-size:.9rem}.dice-outcome small{color:#94a3b8}.dice-outcome.match{background:#22c55e2e;border-color:#22c55ebf;box-shadow:inset 0 0 0 1px #22c55e2e}.dice-outcome.match strong,.dice-outcome.match small{color:#bbf7d0}.dice-outcome.excluded{opacity:.42;background:#94a3b80a;border-color:#94a3b829}.probability-counts{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:24px 0;display:grid}.probability-counts article{background:#020617a6;border:1px solid #94a3b83d;border-radius:14px;gap:7px;padding:17px;display:grid}.probability-counts span,.probability-counts small{color:#94a3b8}.probability-counts span{letter-spacing:.06em;text-transform:uppercase;font-size:.78rem;font-weight:800}.probability-counts strong{color:#f8fafc;font-size:1.35rem}.probability-counts .fraction-card{background:#38bdf814;border-color:#38bdf880}.probability-counts .fraction-card strong{color:#7dd3fc}.probability-formula{white-space:normal}.practice-toolbar{border-bottom:1px solid #94a3b833;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:20px;margin-bottom:28px;padding-bottom:24px;display:grid}.practice-score{background:#38bdf812;border:1px solid #38bdf859;border-radius:14px;gap:5px;min-width:170px;padding:12px 16px;display:grid}.practice-score span{color:#94a3b8;text-transform:uppercase;font-size:.75rem;font-weight:800}.practice-score strong{color:#7dd3fc}.quiz-card{max-width:850px;margin:0 auto}.quiz-progress-row{grid-template-columns:minmax(0,1fr) minmax(180px,300px);align-items:center;gap:20px;margin-bottom:24px;display:grid}.quiz-progress-row .badge{margin-bottom:6px}.quiz-progress-row p{margin:0}.quiz-progress-row progress{accent-color:#38bdf8;border:0;border-radius:999px;width:100%;height:12px;overflow:hidden}.quiz-options .answer-button{justify-content:space-between;align-items:center;gap:16px;display:flex}.quiz-options .answer-button strong{text-transform:uppercase;flex:none;font-size:.78rem}.quiz-options .answer-button:disabled{cursor:default;opacity:1}.quiz-options .correct-answer{color:#bbf7d0;background:#22c55e1f;border-color:#22c55eb3}.quiz-options .incorrect-answer{color:#fecaca;background:#f871711a;border-color:#f87171a6}.quiz-explanation{border-color:#38bdf866}.quiz-results{max-width:850px;margin:0 auto}.quiz-results>h2{margin-bottom:12px;font-size:clamp(2rem,5vw,3.5rem)}.missed-question-list{gap:14px;margin:26px 0;display:grid}.missed-question-list>h3{margin-bottom:0}.missed-question-list article{background:#f871710f;border:1px solid #f871714d;border-radius:16px;padding:18px}.missed-question-list h4{color:#f8fafc;margin:0 0 12px;font-size:1rem;line-height:1.5}.missed-question-list p{margin:6px 0}.missed-question-list .inline-link{margin-top:8px;display:inline-block}.attack-warmup,.reused-pad-challenge{margin-top:28px}.reused-pad-challenge{border-color:#a855f766}.mission-brief{background:#a855f714;border:1px solid #a855f766;border-radius:16px;margin:20px 0;padding:18px}.mission-brief h3,.mission-brief p{margin-top:0}.mission-brief p{margin-bottom:0}.intercept-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:22px 0;display:grid}.intercept-grid article,.xor-output{background:#020617bf;border:1px solid #94a3b83d;border-radius:14px;gap:9px;min-width:0;padding:16px;display:grid}.intercept-grid span,.xor-output span,.candidate-output>span{color:#94a3b8;letter-spacing:.06em;text-transform:uppercase;font-size:.78rem;font-weight:800}.intercept-grid code,.xor-output code{color:#7dd3fc;overflow-wrap:anywhere;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.8rem;line-height:1.6}.attack-workbench{background:#38bdf80d;border:1px solid #38bdf859;border-radius:18px;margin:28px 0;padding:20px}.workbench-heading{justify-content:space-between;align-items:center;gap:18px;margin-bottom:18px;display:flex}.workbench-heading .eyebrow,.workbench-heading h3{margin:0}.workbench-heading h3{margin-top:7px}.xor-output{border-color:#38bdf866;margin-bottom:20px}.workbench-controls{grid-template-columns:minmax(180px,.7fr) minmax(0,1.3fr);gap:16px;margin:20px 0;display:grid}.offset-controls{border:1px solid #94a3b840;border-radius:14px;grid-template-columns:auto minmax(140px,1fr) auto 86px;align-items:center;gap:10px;margin:20px 0;padding:16px;display:grid}.offset-controls legend{color:#e2e8f0;padding:0 8px;font-weight:800}.offset-controls input[type=range]{accent-color:#38bdf8;width:100%;padding:0}.offset-button{color:#f8fafc;background:#020617;border:1px solid #94a3b859;border-radius:10px;width:42px;min-height:42px;font-size:1.2rem;font-weight:900}.offset-button:hover:not(:disabled),.offset-button:focus-visible{border-color:#38bdf8}.offset-number{width:86px}.candidate-output{background:#020617a6;border:1px solid #94a3b840;border-radius:14px;gap:12px;min-height:100px;padding:17px;display:grid}.candidate-text{color:#86efac;overflow-wrap:anywhere;white-space:pre-wrap;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:1rem;line-height:1.7}.candidate-byte-grid{gap:6px;padding-bottom:8px;display:flex;overflow-x:auto}.candidate-byte-grid>span{text-align:center;background:#22c55e14;border:1px solid #22c55e66;border-radius:9px;flex:0 0 48px;place-content:center;gap:4px;min-height:54px;display:grid}.candidate-byte-grid small{color:#94a3b8;font-size:.65rem}.candidate-byte-grid strong{color:#bbf7d0;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace}.candidate-byte-grid .nonprintable{background:#f871711a;border-color:#f871718c}.candidate-byte-grid .nonprintable strong{color:#fecaca;font-size:.72rem}.candidate-key{margin:0;font-size:.82rem}.hint-panel{background:#fbbf2412;border:1px solid #fbbf2459;border-radius:16px;margin:24px 0;padding:18px}.hint-panel h3{margin-top:0}.hint-panel ol{color:#fde68a;gap:10px;padding-left:24px;line-height:1.6;display:grid}.codeword-submission{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:14px;margin:24px 0;display:grid}.worked-solution{background:#22c55e14;border:1px solid #22c55e73;border-radius:18px;margin-top:22px;padding:20px}.worked-solution h3{color:#bbf7d0;font-size:1.45rem}.worked-solution .formula-box{white-space:normal}@media (width<=900px){.feature-grid,.lesson-grid,.resource-grid{grid-template-columns:repeat(2,1fr)}.navbar{flex-direction:column;align-items:flex-start;gap:18px}.nav-links{flex-wrap:wrap}.concept-grid{grid-template-columns:1fr}.resource-toolbar{grid-template-columns:1fr 1fr}.resource-count{grid-column:1/-1}.ctr-stage{grid-template-columns:repeat(5,150px)}}@media (width<=780px){.feature-grid,.lesson-grid,.resource-grid,.controls,.lab-controls,.key-model-picker,.probability-comparison{grid-template-columns:1fr}.resource-group-heading{flex-direction:column;align-items:flex-start}.resource-lesson-links{justify-content:flex-start}.resource-card{min-height:0}.resource-toolbar{grid-template-columns:1fr}.resource-count{grid-column:auto}.otp-input-grid,.cipher-comparison,.cpa-candidate-grid,.candidate-ciphertexts,.oracle-controls,.hash-input-grid,.hash-goals-grid,.probability-controls,.probability-counts,.practice-toolbar,.quiz-progress-row{grid-template-columns:1fr}.practice-score{min-width:0}.intercept-grid,.workbench-controls,.codeword-submission{grid-template-columns:1fr}.workbench-heading{flex-direction:column;align-items:stretch}.workbench-heading .btn,.codeword-submission .btn{width:100%}.offset-controls{grid-template-columns:auto minmax(90px,1fr) auto}.offset-number{grid-column:1/-1;width:100%}.cpa-round-header{flex-direction:column;align-items:stretch}.cpa-round-header .btn{width:100%}.oracle-controls .btn{width:100%;margin-top:0}.comparison-arrow{justify-self:center;transform:rotate(90deg)}.page-container{padding-top:28px}.truth-row{grid-template-columns:1fr}.flow-row{min-width:780px}.flow-box{min-width:110px;font-size:.9rem}.bit-row{grid-template-columns:58px 20px repeat(8,34px)}.bit-divider{width:368px;margin-left:84px}.lesson-navigation{justify-content:stretch}.lesson-navigation .btn{text-align:center;width:100%}.mac-bit-row{grid-template-columns:112px repeat(8,36px)}.mac-bit{min-height:36px}.bit-button{width:36px}}
