.page-transition{animation:page-enter .35s ease both}@keyframes page-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.page-transition{animation:none}}.image.featured .image-fallback{display:flex;align-items:center;justify-content:center;width:100%;height:300px;background:#f0f0f0;color:#bbb;font-size:3em}body.dark-mode .image.featured .image-fallback{background:#1e2a45;color:#555}.double-rule{height:10px;border:0;border-top:solid 2px #e5e5e5;box-shadow:inset 0 8px #fff,inset 0 10px #e5e5e5;margin:3.5em 0 0}body.dark-mode .double-rule{border-top-color:#3d3d3d;box-shadow:inset 0 8px #111,inset 0 10px #3d3d3d}.wheel-stage{position:relative;width:100%;max-width:260px;margin:.6em auto 0}.wheel-svg{display:block;width:100%;height:auto;filter:drop-shadow(0 2px 6px rgba(0,0,0,.25))}.wheel-pointer{position:absolute;top:-4px;left:50%;transform:translate(-50%);width:0;height:0;border-left:11px solid transparent;border-right:11px solid transparent;border-top:18px solid #d52349;z-index:2;filter:drop-shadow(0 1px 1px rgba(0,0,0,.35))}.wheel-result strong{color:#d52349}body.dark-mode .wheel-result strong{color:#ff6b81}.wheel-result-link,.wheel-result-link:hover,.wheel-result-link:active{background:none;box-shadow:none}.wheel-result-link{color:inherit!important;text-transform:none;letter-spacing:normal;font-weight:inherit;font-size:1em;padding:.3em .6em;cursor:pointer}.wheel-result-link:hover strong{text-decoration:underline}.wheel-result-link:focus-visible{outline:2px solid #d52349;outline-offset:2px}.wheel-result-hint{display:block;font-size:.8em;color:#888;margin-top:.2em}.wheel-anchor{scroll-margin-top:4em}.wheel-target{animation:wheel-flash 1.8s ease-out;border-radius:4px}@keyframes wheel-flash{0%,35%{background-color:#d523492e}to{background-color:transparent}}.video-modal-overlay{position:fixed;inset:0;width:100vw;height:100vh;z-index:3000;display:flex;align-items:center;justify-content:center;padding:1.5em;background:#000000c7}.video-modal-box{width:100%;max-width:900px;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 12px 44px #00000073}.video-modal-head{display:flex;align-items:center;justify-content:space-between;gap:1em;padding:.85em 1.2em;border-bottom:1px solid #eee}.video-modal-title{margin:0;font-size:1em}.video-modal-close{background:none;border:none;box-shadow:none;cursor:pointer;padding:0 .2em;font-size:1.7em;line-height:1;color:#888;min-width:auto;height:auto}.video-modal-close:hover{background:none;color:#d52349}.video-modal-video{display:block;width:100%;min-height:240px;max-height:76vh;background:#000}body.dark-mode .video-modal-box{background:#1b1b1b}body.dark-mode .video-modal-head{border-bottom-color:#2f2f2f}body.dark-mode .video-modal-title{color:#efefef}.soft-panel{background:#fafafa;border:1px solid #eee;border-radius:6px}body.dark-mode .soft-panel{background:#1b1b1b;border-color:#2f2f2f}body.dark-mode .soft-panel h3,body.dark-mode .soft-panel h4{color:#efefef}body.dark-mode .soft-panel p{color:#a0a0a0}.tag-chip{display:inline-block;background-color:#eee;color:#444;padding:2px 10px;border-radius:15px;font-size:.8em;margin-bottom:10px}body.dark-mode .tag-chip{background-color:#2a2a2a;color:silver}#nav ul li ul li a{border-bottom:0!important}.search-results-count{font-size:.85em;color:#999;margin-top:8px}.terminal-container{font-family:Courier New,Courier,monospace;font-weight:700;color:#444;min-height:4em;line-height:1.5em;margin-top:1em;white-space:pre-wrap}.cursor{display:inline-block;width:10px;height:1em;background-color:#444;vertical-align:middle;animation:blink 1s infinite}@keyframes blink{0%{opacity:0}50%{opacity:1}to{opacity:0}}.footer-privacy,.footer-license{font-size:.8em;color:#999;margin:.3em 0 0;text-align:center}.footer-license a{color:#999;text-decoration:underline}.about-contacts{list-style:none;padding:0;margin:0;display:grid;grid-template-rows:repeat(2,auto);grid-auto-flow:column;grid-auto-columns:auto;column-gap:2em;row-gap:.9em}.about-contacts li{display:flex;align-items:center;border:0;padding:0}.about-contacts li a,.about-contacts li span{overflow-wrap:anywhere}@media screen and (max-width:980px){.about-contacts{grid-auto-flow:row;grid-template-rows:none;grid-template-columns:repeat(2,minmax(0,1fr))}}@media screen and (max-width:736px){.about-contacts{grid-template-columns:minmax(0,1fr)}}.settings-bar{position:fixed;bottom:20px;right:20px;display:flex;flex-direction:column;gap:8px;z-index:99999}.settings-btn{width:48px;height:48px;border-radius:50%;border:2px solid #ed786a;background:#ed786a;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 10px #0003;transition:all .2s ease;padding:0;line-height:1}.settings-btn:hover{background:#fd887a;border-color:#fd887a;box-shadow:0 4px 14px #0000004d}.settings-pill{font-family:inherit}.settings-btn .lang-label{font-weight:700;font-size:.9em;letter-spacing:1px}.settings-btn .icon{margin:0;padding:0;font-size:1.1em}body.dark-mode .box,body.dark-mode section,body.dark-mode article,body.dark-mode #main,body.dark-mode #features,body.dark-mode #footer,body.dark-mode #copyright{border-color:transparent!important;box-shadow:none!important}body.dark-mode{background:#111!important;color:#efefef!important}body.dark-mode #page-wrapper{background:#111}body.dark-mode #header{background:#1a1a1a}body.dark-mode #header h1 a{color:#ed786a}body.dark-mode #header .terminal-container{color:#efefef}body.dark-mode #header>.container{border-bottom-color:#3d3d3d;box-shadow:inset 0 -8px #1a1a1a,inset 0 -10px #3d3d3d}body.dark-mode #nav ul li a span{color:#d4d4d4}body.dark-mode #nav ul li a:hover span{color:#fff}body.dark-mode #features{background:#111;border-top-color:transparent}body.dark-mode #features h2,body.dark-mode #features h3,body.dark-mode #features header h3{color:#efefef}body.dark-mode #features p{color:#a0a0a0}body.dark-mode #banner{background:#1e1e1e;border-top-color:#3d3d3d;border-bottom-color:#3d3d3d;box-shadow:inset 0 -8px #1e1e1e,inset 0 8px #1e1e1e}body.dark-mode .image{border-color:#2a2a2a!important}body.dark-mode #main{background:#111}body.dark-mode h1,body.dark-mode h2,body.dark-mode h3,body.dark-mode h4,body.dark-mode h5,body.dark-mode h6{color:#efefef}body.dark-mode h2 strong{color:#ff6b81}body.dark-mode p,body.dark-mode li,body.dark-mode span{color:#a0a0a0}body.dark-mode a{color:#ff6b81}body.dark-mode .box{border-color:transparent;box-shadow:none!important}body.dark-mode .box.post,body.dark-mode .box.highlight,body.dark-mode .box.feature,body.dark-mode .box.excerpt{background:#111}body.dark-mode .button{background:#e94560;color:#fff!important;border-color:#e94560}body.dark-mode .button:hover{background:#ff6b81;border-color:#ff6b81}body.dark-mode .button.alt{background:transparent;border-color:#3a3a3a;color:#a0a0a0!important}body.dark-mode .button.alt:hover{border-color:#ff6b81;color:#ff6b81!important}body.dark-mode input[type=text],body.dark-mode input[type=email],body.dark-mode input[type=search],body.dark-mode textarea,body.dark-mode select{background:#222!important;color:#efefef!important;border-color:#2a2a2a!important}body.dark-mode input::placeholder{color:#555!important}body.dark-mode hr,body.dark-mode .divided li,body.dark-mode #sidebar>section,body.dark-mode #sidebar>article,body.dark-mode #footer,body.dark-mode #copyright{border-color:#3d3d3d}body.dark-mode hr{border-top-color:#3d3d3d}body.dark-mode #sidebar>section,body.dark-mode #sidebar>article,body.dark-mode #content>section,body.dark-mode #content>article{border-top-color:#3d3d3d;box-shadow:inset 0 8px #111,inset 0 10px #3d3d3d!important}body.dark-mode #sidebar>section:first-child,body.dark-mode #sidebar>article:first-child,body.dark-mode #content>section:first-child,body.dark-mode #content>article:first-child{box-shadow:none!important}body.dark-mode #footer{background:#111}body.dark-mode #copyright .links li,body.dark-mode .footer-privacy,body.dark-mode .footer-license,body.dark-mode .footer-license a{color:#525252}body.dark-mode .settings-btn{background:#e94560;border-color:#e94560;color:#fff}body.dark-mode .settings-btn:hover{background:#ff6b81;border-color:#ff6b81}body.dark-mode #nav ul li ul{background-color:#1a1a1a!important}body.dark-mode #nav ul li ul li a{color:#d4d4d4!important}body.dark-mode #navPanel{background:#0a0a0a;border-right-color:#2a2a2a}body.dark-mode #titleBar{background:#1a1a1a}body.dark-mode #titleBar .toggle:before{background:#1a1a1ae6;color:#d4d4d4}body.dark-mode .image.featured img{opacity:.85}body.dark-mode .cursor{background-color:#efefef}body.dark-mode ::-webkit-scrollbar{width:8px}body.dark-mode ::-webkit-scrollbar-track{background:#111}body.dark-mode ::-webkit-scrollbar-thumb{background:#3a3a3a;border-radius:4px}.page-loading{min-height:100vh}.hw-table{width:100%;table-layout:fixed;border-collapse:collapse;margin:1.5em 0 .5em}.hw-table th,.hw-table td{padding:.7em .6em;text-align:left;vertical-align:top;overflow-wrap:anywhere;word-break:break-word;border-bottom:1px solid #e5e5e5}.hw-table th{font-weight:600}.hw-table th:nth-child(1){width:22%}.hw-table th:nth-child(3),.hw-table th:nth-child(4){width:20%}.hw-row{cursor:pointer}.hw-row:hover{background:#d523490f}body.dark-mode .hw-table th,body.dark-mode .hw-table td{border-bottom-color:#2a2a2a}.hw-note{font-size:.85em;color:#888}.hw-dates{display:flex;flex-wrap:wrap;gap:.4em 1.5em}.hw-bottom-actions{display:flex;flex-wrap:wrap;gap:.8em 1em;margin-top:1.5em}.hw-bottom-actions .button{margin:0}.hw-title h2:focus{outline:none}.hw-title h2:focus-visible{outline:2px solid #d52349;outline-offset:4px}@media screen and (max-width:736px){.hw-table thead{display:none}.hw-table,.hw-table tbody,.hw-table tr,.hw-table td{display:block;width:100%}.hw-table tr{border-bottom:1px solid #e5e5e5;padding:.6em 0}body.dark-mode .hw-table tr{border-bottom-color:#2a2a2a}.hw-table td{border:0;padding:.25em 0}.hw-table td:before{content:attr(data-label) ": ";font-weight:600}}.hw1-section{margin-top:2.5em}.hw1-section h3{margin-bottom:.6em}.hw1-section h4{margin:1.2em 0 .4em}.hw1-note{font-size:.85em;color:#888}.hw1-controls{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.8em 1.2em;margin:.5em 0 1.2em}.hw1-controls label{display:flex;flex-direction:column;gap:.3em;font-size:.85em;font-weight:600;min-width:0;max-width:100%}.hw1-controls select,.hw1-controls input{max-width:100%;padding:.45em .6em;border:1px solid #ccc;border-radius:5px;background:#f9f9f9;font-size:1em;font-weight:400}.hw1-controls input{width:6em}.hw1-buttons{display:flex;flex-wrap:wrap;gap:.5em}.hw1-buttons .button{padding:.6em 1.4em}body.dark-mode .hw1-controls select,body.dark-mode .hw1-controls input{background:#222;color:#efefef;border-color:#2a2a2a}.hw1-chips{display:flex;flex-wrap:wrap;gap:.35em}.hw1-chip{font-family:monospace;font-size:.85em;padding:.1em .5em;border-radius:4px;border:2px solid transparent;background:#0000000d;color:#888}.hw1-chip.in-subgroup{background:#5c6bc026;color:inherit}.hw1-chip.is-g{border-color:#f0a500}.hw1-chip.is-q{border-color:#d52349}body.dark-mode .hw1-chip{background:#ffffff0f}body.dark-mode .hw1-chip.in-subgroup{background:#7986cb40}.hw1-table{width:100%;table-layout:fixed;border-collapse:collapse;margin:.5em 0 1em;font-size:.95em}.hw1-table th,.hw1-table td{padding:.45em .5em;text-align:left;vertical-align:top;overflow-wrap:anywhere;border-bottom:1px solid #e5e5e5}.hw1-summary th{width:45%;font-weight:600}body.dark-mode .hw1-table th,body.dark-mode .hw1-table td{border-bottom-color:#2a2a2a}.hw1-key{display:flex;flex-direction:column;gap:.2em;margin:1em 0;padding:1em 1.2em;border-left:4px solid #d52349;background:#d523490f}.hw1-key span{font-size:.8em;letter-spacing:2px;font-weight:600}.hw1-key strong{font-family:monospace;font-size:1.3em;color:#d52349;overflow-wrap:anywhere}body.dark-mode .hw1-key strong{color:#ff6b81}.hw1-bits{font-family:monospace;font-size:1.3em;letter-spacing:.15em;margin:0 0 .6em}.hw1-bit{padding:0 .15em;border-radius:3px}.hw1-bit.is-current{background:#d52349;color:#fff}.hw1-canvas{display:block;width:100%;max-width:100%}.hw1-anim{max-width:560px;margin:0 auto;border-radius:6px}.hw1-caption{min-height:3.2em;font-size:.9em;margin-top:.6em;overflow-wrap:anywhere}.hw1-charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1em 1.5em}.hw1-figure{position:relative;margin:0;min-width:0}.hw1-figure figcaption{font-size:.8em;color:#888;margin-top:.3em}.course-link,.course-link:hover{color:#d52349;border-bottom:1px solid transparent}.course-link:hover{border-bottom-color:currentColor}body.dark-mode .course-link,body.dark-mode .course-link:hover{color:#ff6b81}.hw-title{display:flex;flex-wrap:wrap;align-items:center;gap:.6em 1.2em;margin-bottom:1.5em}.hw-title h2{margin:0}.hw-index-button{padding:.7em 1.6em}html.hw-index-open{overflow:hidden;scrollbar-gutter:stable}dialog.hw-index{width:min(36em,calc(100vw - 2em));max-width:none;max-height:min(85vh,48em);padding:0;border:0;border-radius:8px;background:#fff;color:#444;box-shadow:0 12px 44px #00000073;overflow:hidden}dialog.hw-index[open]{display:flex;flex-direction:column}dialog.hw-index::backdrop{background:#000000ad}.hw-index-box{display:flex;flex-direction:column;flex:1;min-height:0}.hw-index-head{display:flex;align-items:center;justify-content:space-between;gap:1em;padding:.85em 1.2em;border-bottom:1px solid #eee}.hw-index-head h4{margin:0;font-size:1em;color:#555}dialog.hw-index .hw-index-close,dialog.hw-index .hw-index-close:hover{background:none;border:none;box-shadow:none;cursor:pointer;padding:0 .2em;font-size:1.7em;line-height:1;color:#888!important;min-width:auto;height:auto;letter-spacing:normal}dialog.hw-index .hw-index-close:hover{color:#d52349!important}.hw-index-body{overflow-y:auto;min-height:0;overscroll-behavior:contain}dialog.hw-index .hw-index-list{list-style:none;margin:0;padding:.4em 0 .8em}dialog.hw-index .hw-index-list li{margin:0;padding:0;border:0}dialog.hw-index .hw-index-list button,dialog.hw-index .hw-index-list button:hover,dialog.hw-index .hw-index-list button:active{display:block;width:100%;margin:0;padding:.5em 1.2em;border:0;border-radius:0;background:none;box-shadow:none;color:#444!important;font-family:inherit;font-size:.95em;font-weight:400;letter-spacing:normal;line-height:1.4;text-align:left;text-transform:none;cursor:pointer}dialog.hw-index .hw-index-list button:hover,dialog.hw-index .hw-index-list button:focus-visible{background:#d5234914;color:#d52349!important}dialog.hw-index .hw-index-list .hw-index-level-0 button{font-weight:600;margin-top:.3em}dialog.hw-index .hw-index-list .hw-index-level-1 button{padding-left:2.2em}dialog.hw-index .hw-index-list .hw-index-level-2 button{padding-left:3.4em;font-size:.88em}body.dark-mode dialog.hw-index{background:#1b1b1b;color:#d4d4d4}body.dark-mode .hw-index-head{border-bottom-color:#2f2f2f}body.dark-mode .hw-index-head h4{color:#efefef}body.dark-mode dialog.hw-index .hw-index-list button{color:#d4d4d4!important}body.dark-mode dialog.hw-index .hw-index-list button:hover,body.dark-mode dialog.hw-index .hw-index-list button:focus-visible{background:#ff6b811a;color:#ff6b81!important}.hw1-anchor{scroll-margin-top:1.5rem}@media screen and (max-width:980px){.hw1-anchor{scroll-margin-top:calc(44px + 1rem)}}.hw1-anchor:focus{outline:none}.hw1-anchor:focus-visible{outline:2px solid #d52349;outline-offset:4px}.hw-index-target{animation:wheel-flash 1.8s ease-out;border-radius:4px}@media(prefers-reduced-motion:reduce){.hw-index-target{animation:none}}.hw1-section h5{margin:2em 0 .6em;font-size:.95em;letter-spacing:1px}.hw1-section h6{margin:.4em 0;font-size:.85em;letter-spacing:1px}.hw1-original{margin:0 0 2em}.hw1-original summary{cursor:pointer;font-weight:600;margin-bottom:.6em}.hw1-original blockquote{margin:0;padding:.9em 1.2em;font-style:normal;font-size:.92em;background:#00000008}.hw1-original blockquote p,.hw1-original blockquote ul{margin-bottom:.9em;text-align:left}.hw1-original blockquote li{margin:.2em 0}body.dark-mode .hw1-original blockquote{background:#ffffff0a;border-left-color:#333}.hw1-field-error{color:#c62828;font-size:.85em}body.dark-mode p.hw1-field-error{color:#ff8a80}.hw1-controls input[aria-invalid=true]{border-color:#c62828;outline-color:#c62828}.hw1-badge-line{display:flex;flex-wrap:wrap;align-items:center;gap:.5em 1em;padding:.6em .9em;border-radius:5px;font-size:.9em;text-align:left}.hw1-badge-line.is-task{background:#3fa7961f}.hw1-badge-line.is-custom{background:#f0a50024}.hw1-badge-line .hw1-restore{padding:.55em 1.3em}.hw1-formulas,.hw1-output{font-family:monospace;font-size:.85em;line-height:1.55;padding:.8em 1em;border-radius:5px;background:#0000000a;overflow-x:auto;white-space:pre;margin:0 0 1.5em}.hw1-output{max-height:28em;overflow-y:auto}body.dark-mode .hw1-formulas,body.dark-mode .hw1-output{background:#ffffff0d;color:#d4d4d4}.hw1-table-title{margin:1em 0 .4em;text-align:left}.hw1-scroll{max-height:22em;overflow-y:auto;margin:0 0 1.5em;border:1px solid #e5e5e5;border-radius:5px}body.dark-mode .hw1-scroll{border-color:#2a2a2a}.hw1-compact{margin:0;font-family:monospace}.hw1-compact thead th{position:sticky;top:0;background:#878787}.hw1-compact tr.is-empty td{color:#aaa}.hw1-figure-wide{margin:.5em 0 1.5em}.hw1-uniformity{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.5em 1.8em;margin-bottom:1.5em}.hw1-coord{min-width:0}.hw1-test{margin:.8em 0;padding:.3em 0 .3em .9em;border-left:4px solid #999}.hw1-test.is-valid,.hw1-test.is-descriptive{border-left-color:#2e7d6b}.hw1-test.is-invalid{border-left-color:#c77700}.hw1-test p{margin:0 0 .45em;text-align:left}.hw1-badge{display:inline-block;padding:.15em .6em;border-radius:3px;font-size:.72em;font-weight:700;letter-spacing:1px;vertical-align:middle;color:#fff;background:#777}.hw1-badge.is-valid,.hw1-badge.is-descriptive{background:#2e7d6b}.hw1-badge.is-invalid{background:#b26a00}body.dark-mode span.hw1-badge{color:#fff}.hw1-reasons{margin:.2em 0 .6em;font-size:.9em}.hw1-reasons li{margin:.3em 0}.hw1-pending{font-style:italic}.hw1-discussion-table th[data-label]{font-weight:600}@media screen and (max-width:736px){.hw1-discussion-table thead{display:none}.hw1-discussion-table,.hw1-discussion-table tbody,.hw1-discussion-table tr,.hw1-discussion-table th,.hw1-discussion-table td{display:block;width:100%}.hw1-discussion-table tr{padding:.6em 0}.hw1-discussion-table th,.hw1-discussion-table td{border:0;padding:.25em 0}.hw1-discussion-table td:before{content:attr(data-label) ": ";font-weight:600}}.hw1-download .button{display:block;margin-top:.8em;padding-left:1em;padding-right:1em;text-align:center;white-space:normal}.hw2 code{font-family:monospace;font-size:.92em;overflow-wrap:anywhere}.hw2 .hw1-formulas{white-space:pre-wrap;overflow-wrap:anywhere}.hw2-fields{margin:0 0 1em}.hw2-mnemonic{display:flex;flex-direction:column;gap:.3em;font-size:.85em;font-weight:600}.hw2-mnemonic textarea{width:100%;min-height:4.6em;padding:.6em .7em;border:1px solid #ccc;border-radius:5px;background:#f9f9f9;font-family:monospace;font-size:1.1em;font-weight:400;line-height:1.5;resize:vertical}.hw2-mnemonic textarea[aria-invalid=true]{border-color:#c62828;outline-color:#c62828}.hw2-fields .hw1-buttons{margin:.6em 0 .4em}.hw1-controls .hw2-passphrase input,.hw1-controls .hw2-path input{width:24em;font-family:monospace}.hw1-controls .hw2-index input{width:6em}.hw2-checker label{flex:1 1 100%}.hw1-controls.hw2-checker input{width:100%;font-family:monospace}.hw2-check{font-size:.9em;text-align:left;overflow-wrap:anywhere}.hw2-check.is-ok{color:#2e7d6b}.hw2-check.is-bad{color:#c62828}body.dark-mode p.hw2-check.is-ok{color:#4fb39c}body.dark-mode p.hw2-check.is-bad{color:#ff8a80}.hw2-stale{margin:.4em 0 .8em;padding:.4em .8em;border-radius:4px;font-size:.85em;background:#f0a50024;text-align:left}.hw2-far{content-visibility:auto;contain-intrinsic-size:auto 2500px}.hw2-stale-note{display:none}.is-stale .hw2-stale-note{display:block}.hw2-flow{margin:1em 0 1.5em}.hw2-flow figcaption{font-size:.85em;font-weight:600;margin-bottom:.6em}.hw2-flow ol{list-style:none;margin:0;padding:0;max-width:34em}.hw2-flow li{margin:0;padding:0}.hw2-flow li.hw2-flow-node{display:flex;flex-direction:column;gap:.15em;padding:.55em .9em;border:1px solid #e0e0e0;border-radius:6px;background:#00000005}.hw2-flow-node span{font-size:.78em;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:#888}.hw2-flow-node:last-child{border-color:#d52349;background:#d523490f}.hw2-flow li.hw2-flow-arrow{padding-left:1.2em}.hw2 .hw2-flow-arrow button,.hw2 .hw2-flow-arrow button:hover{display:inline-block;margin:.15em 0;padding:.2em .4em;border:0;background:none;box-shadow:none;color:#d52349!important;font:inherit;font-size:.85em;font-weight:600;letter-spacing:0;text-transform:none;text-align:left;line-height:1.4;height:auto;cursor:pointer}.hw2 .hw2-flow-arrow button:hover,.hw2 .hw2-flow-arrow button:focus-visible{text-decoration:underline}body.dark-mode .hw2-flow-node{border-color:#2a2a2a;background:#ffffff08}body.dark-mode .hw2-flow-node:last-child{border-color:#ff6b81;background:#ff6b8112}body.dark-mode .hw2 .hw2-flow-arrow button{color:#ff6b81!important}.hw2-value{margin:.4em 0 .8em;text-align:left}.hw2-value-label{display:block;font-size:.8em;font-weight:600;color:#888}.hw2-value code{display:block;padding:.35em .6em;border-radius:4px;background:#0000000a;line-height:1.5}.hw2-value.is-muted code{color:#888}.hw2-value mark{background:#d5234924;color:inherit;border-radius:2px}.hw2-dropped{color:#999}body.dark-mode .hw2-value code{background:#ffffff0d;color:#d4d4d4}body.dark-mode .hw2-value mark{background:#ff6b8133}body.dark-mode span.hw2-dropped{color:#666}.hw2-bits{display:flex;flex-wrap:wrap;gap:.2em .7em;font-family:monospace;font-size:.9em;text-align:left}.hw2-bits mark{padding:0 .1em;border-radius:2px;background:#d52349;color:#fff}.hw2-words tr.is-unknown td{color:#c62828}body.dark-mode .hw2-words tr.is-unknown td{color:#ff8a80}.hw2-roles{margin:0 0 1em;text-align:left}.hw2-roles li{margin:.3em 0}.hw2-roles code{font-weight:700;margin-right:.3em}.hw2-compare tr.is-current{background:#d523490f}body.dark-mode .hw2-compare tr.is-current{background:#ff6b8112}.hw2-grid{display:flex;flex-wrap:wrap;gap:3px;margin:.4em 0 .6em;font-family:monospace}.hw2-grid span{display:flex;flex-direction:column;align-items:center;min-width:1.7em;padding:.15em .1em;border-radius:3px;background:#0000000a;line-height:1.3}.hw2-grid b{font-size:1.05em}.hw2-grid small{font-size:.75em;color:#888}.hw2-grid span.is-digit{color:#aaa}.hw2-grid span.is-upper{background:#d52349;color:#fff}.hw2-grid span.is-upper b,.hw2-grid span.is-upper small{color:#fff}.hw2-grid b{color:inherit}body.dark-mode .hw2-grid span{background:#ffffff0d;color:#d4d4d4}body.dark-mode .hw2-grid span.is-digit{color:#666}body.dark-mode .hw2-grid span.is-upper{background:#b31b3b;color:#fff}body.dark-mode .hw2-grid span.is-upper b,body.dark-mode .hw2-grid span.is-upper small{color:#fff}.hw2-details{margin:.5em 0 1.5em}.hw2-details summary{cursor:pointer;font-weight:600;margin-bottom:.5em}.hw2-vectors td.is-ok,.hw2-accounts td.is-ok{color:#2e7d6b;font-weight:700}.hw2-vectors td.is-bad,.hw2-accounts td.is-bad{color:#c62828;font-weight:700}body.dark-mode .hw2-vectors td.is-ok span,body.dark-mode .hw2-accounts td.is-ok{color:#4fb39c}.hw2-steps{margin:0 0 1em;text-align:left}.hw2-steps li{margin:.4em 0}.hw2-tests{margin:.5em 0 1.2em}.hw2-structure{padding:.5em .8em;border-left:4px solid #5c6bc0;background:#5c6bc014;text-align:left}body.dark-mode .hw2-structure{border-left-color:#7986cb;background:#7986cb1a}.hw2-summary tr.is-rejected{background:#f0a50024}.hw2-legend{display:flex;flex-wrap:wrap;gap:.4em 1.2em;font-size:.85em}.hw2-legend span:before{content:"";display:inline-block;width:.8em;height:.8em;margin-right:.4em;border-radius:2px;vertical-align:-.05em}.hw2-legend-task:before{background:#d52349}.hw2-legend-context:before{background:#bbb}.hw2-timeline{list-style:none;margin:.8em 0 1.5em;padding:0;border-left:2px solid #e0e0e0}.hw2-timeline li{position:relative;display:grid;grid-template-columns:6.5em 1fr;gap:.2em 1em;margin:0;padding:.5em 0 .5em 1.1em;text-align:left}.hw2-timeline li:before{content:"";position:absolute;left:-7px;top:.95em;width:12px;height:12px;border-radius:50%;background:#bbb}.hw2-timeline li.is-task:before{background:#d52349}.hw2-year{font-family:monospace;font-weight:700;padding-top:.1em}.hw2-timeline li.is-task .hw2-year,.hw2-timeline li.is-task strong{color:#d52349}.hw2-timeline p{margin:.2em 0 0}body.dark-mode .hw2-timeline{border-left-color:#2a2a2a}body.dark-mode .hw2-timeline li.is-task .hw2-year,body.dark-mode .hw2-timeline li.is-task strong{color:#ff6b81}body.dark-mode .hw2-timeline li.is-context:before,body.dark-mode .hw2-legend-context:before{background:#555}@media screen and (max-width:736px){.hw2-timeline li{grid-template-columns:1fr}.hw1-controls .hw2-passphrase,.hw1-controls .hw2-path,.hw1-controls .hw2-preset{flex:1 1 100%}.hw1-controls .hw2-passphrase input,.hw1-controls .hw2-path input,.hw1-controls .hw2-preset select{width:100%}}@media screen and (min-width:737px){.hw2-levels th:nth-child(1){width:18%}.hw2-levels th:nth-child(2){width:22%}.hw2-compare th:nth-child(1){width:24%}.hw2-compare th:nth-child(2){width:28%}.hw2-vectors th:nth-child(1){width:34%}.hw2-vectors th:nth-child(3){width:10%}.hw2-accounts th:nth-child(1){width:16%}.hw2-accounts th:nth-child(2){width:26%}.hw2-accounts th:nth-child(4){width:16%}.hw2-summary th:nth-child(1){width:16%}.hw2-summary th:nth-child(3),.hw2-summary th:nth-child(4){width:15%}.hw2-categories th:nth-child(1){width:17%}.hw2-why th:nth-child(1){width:20%}.hw2-sha th:nth-child(1){width:16%}}.hw1-controls .hw2a-key input{width:11em;font-family:monospace}.hw1-controls .hw2a-shift input{width:4em}.hw2a-message{margin-top:.4em}.hw2a-nonces{display:flex;flex-wrap:wrap;align-items:center;gap:.5em;margin:.9em 0 .2em}.hw2a-nonces-label{margin-right:.3em;font-size:.85em;font-weight:600}.hw2a-nonces .button{padding:.55em 1.3em}.hw2a-nonces .button.alt[aria-pressed=true]{background:#d52349}body.dark-mode .hw2a-nonces .button.alt[aria-pressed=true]{background:#e94560;border-color:#e94560;color:#fff!important}.hw2a-cipher-now{margin:.6em 0 .3em;font-size:.9em;overflow-wrap:anywhere}.hw2a-cipher-now .hw2a-flash{border-radius:4px;animation:wheel-flash 1.8s ease-out}@media(prefers-reduced-motion:reduce){.hw2a-cipher-now .hw2a-flash{animation:none}}.hw2a-subst{display:flex;flex-direction:column;gap:2px;max-width:100%;margin:.2em 0 1em;overflow-x:auto;font-family:monospace}.hw2a-subst-row{display:flex;gap:2px}.hw2a-subst-row span{flex:0 0 auto;min-width:1.6em;padding:.15em .1em;border-radius:3px;background:#0000000a;text-align:center}.hw2a-subst-row.is-cipher span{background:#d523491a;color:#d52349;font-weight:700}.hw2a-subst-row .hw2a-subst-head,.hw2a-subst-row.is-cipher .hw2a-subst-head{min-width:4.6em;background:transparent;color:#888;font-family:inherit;font-size:.8em;font-weight:600;text-align:left}body.dark-mode .hw2a-subst-row span{background:#ffffff0d;color:#d4d4d4}body.dark-mode .hw2a-subst-row.is-cipher span{background:#ff6b811f;color:#ff6b81}body.dark-mode .hw2a-subst-row .hw2a-subst-head,body.dark-mode .hw2a-subst-row.is-cipher .hw2a-subst-head{background:transparent;color:#888}.hw2a-legend{display:flex;flex-wrap:wrap;gap:.3em 1em;margin:.4em 0 0;padding:0;list-style:none;font-size:.8em;color:#888}.hw2a-legend li{margin:0;padding:0}.hw2a-legend span{display:inline-block;width:1.4em;height:0;margin-right:.4em;border-top:3px solid;vertical-align:middle}.hw2a-legend span.is-dashed{border-top-style:dashed}.hw2a-blocks td{white-space:nowrap}.hw2a-candidates tr.is-current,.hw2a-chapters tr.is-test{background:#d523490f}body.dark-mode .hw2a-candidates tr.is-current,body.dark-mode .hw2a-chapters tr.is-test{background:#ff6b8112}@media screen and (max-width:736px){.hw2a-subst-row span{min-width:1.35em}}@media screen and (min-width:737px){.hw2a-roles th:nth-child(1){width:18%}.hw2a-compare th:nth-child(1){width:15%}.hw2a-chapters th:nth-child(1){width:8%}.hw2a-chapters th:nth-child(3){width:14%}.hw2a-chapters th:nth-child(4){width:16%}.hw2a-ciphers th:nth-child(1){width:34%}.hw2a-models th:nth-child(1){width:24%}.hw2a-candidates th:nth-child(1){width:6%}.hw2a-candidates th:nth-child(2){width:18%}.hw2a-candidates th:nth-child(3){width:16%}.hw2a-thresholds th:nth-child(1){width:40%}.hw2a-fits th:nth-child(1){width:30%}.hw2a-extrapolation th:nth-child(1){width:12%}.hw2a-differences th:nth-child(1){width:20%}.hw2a-weaknesses th:nth-child(1){width:17%}.hw2a-weaknesses th:nth-child(2){width:14%}.hw2a-summary th:nth-child(5){width:18%}}.hw3-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(15em,1fr));gap:.2em 1.5em;margin:.8em 0 .4em}.hw3-field label{display:block;margin-bottom:.3em;font-size:.85em;font-weight:600}.hw3-field-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5em}.hw3-field input{width:9em;max-width:100%;padding:.45em .6em;border:1px solid #ccc;border-radius:5px;background:#f9f9f9;font-family:monospace;font-size:1em}.hw3-field input[aria-invalid=true]{border-color:#c62828}.hw3-field .button{padding:.5em 1.1em}.hw3-field p{margin:.3em 0 .7em}body.dark-mode .hw3-field input{background:#222;color:#efefef;border-color:#2a2a2a}.hw3-choices{display:flex;flex-wrap:wrap;align-items:center;gap:.5em;margin:.5em 0}.hw3-choices-label{min-width:6em;margin-right:.3em;font-size:.85em;font-weight:600}.hw3-choices .button{padding:.5em 1.2em}.hw3-choices .button.alt[aria-pressed=true]{background:#d52349}body.dark-mode .hw3-choices .button.alt[aria-pressed=true]{background:#e94560;border-color:#e94560;color:#fff!important}.hw3-sweep-controls{margin:.8em 0 .6em}.hw3-slider-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.6em 1.2em;margin:.5em 0 1em}.hw3-slider{display:flex;flex:1 1 16em;flex-direction:column;gap:.35em;max-width:30em}.hw3-slider label{font-size:.85em;font-weight:600}.hw3-slider input[type=range]{-webkit-appearance:auto;appearance:auto;width:100%;height:auto;padding:0;border:0;background:none;box-shadow:none;accent-color:#d52349}.hw3-slider-row .button{padding:.5em 1.4em}.hw3-anim-controls{margin:.6em 0 .2em}.hw3-anim-buttons{margin:.5em 0 .8em}.hw3-anim{width:100%;max-width:100%;border-radius:6px}.hw3-figure-note,.hw3-stats{margin:.4em 0 0;font-size:.85em;text-align:left;overflow-wrap:anywhere}.hw3-stats{margin-bottom:1em}.hw3-over{color:#c62828}body.dark-mode .hw3-over{color:#ff8a80}.hw3-interval{display:block;color:#888;font-size:.85em}.hw3-choices .button,.hw3-choice thead th,.hw3-models thead th,.hw3-moments thead th,.hw3-lln thead th,.hw3-drift thead th{text-transform:none;letter-spacing:.02em}@media screen and (min-width:737px){.hw3-models th:nth-child(1){width:18%}.hw3-quantities th:nth-child(1){width:12%}.hw3-quantities th:nth-child(2),.hw3-quantities th:nth-child(3),.hw3-quantities th:nth-child(4){width:13%}.hw3-fits th:nth-child(1){width:22%}.hw3-fits th:nth-child(4){width:14%}.hw3-checks th:nth-child(1){width:38%}.hw3-checks th:nth-child(3){width:10%}.hw3-summary th:nth-child(1){width:16%}.hw3-summary th:nth-child(3),.hw3-summary th:nth-child(4){width:14%}.hw3-summary th:nth-child(5){width:18%}}canvas.has-tip{cursor:crosshair}.chart-mark{position:absolute;box-sizing:border-box;border:2px solid #d52349;background:#d523491f;pointer-events:none}.chart-mark.is-thin{border-width:1px}.chart-tip{position:absolute;z-index:5;max-width:min(20em,90%);padding:.35em .6em;border-radius:4px;background:#191919eb;color:#fff;font-size:.78em;line-height:1.4;text-align:left;white-space:pre-line;pointer-events:none;box-shadow:0 2px 8px #00000040}body.dark-mode .chart-tip{background:#ebebebf2;color:#111}body.dark-mode .chart-mark{border-color:#ff6b81;background:#ff6b8124}.hw-theory-link{display:block;width:fit-content;margin:4em 0 1.2em;font-size:.85em}.hw-theory-link:before{margin-right:.4em}.th-page .th-section{margin-top:2.5em}.th-page .th-subsection{margin-top:1.5em}.th-list{margin:0 0 1.5em 1.2em}.th-list li{margin-bottom:.4em}.th-note{padding:.6em .9em;border-radius:5px;background:#3fa7961f;font-size:.95em}.th-outline{list-style:none;margin:0 0 1.5em;padding:0}.th-outline li{display:grid;grid-template-columns:4em 1fr;gap:.1em .8em;padding:.7em 0;border-bottom:1px solid rgba(0,0,0,.08)}.th-outline .th-time{grid-row:span 2;font-family:monospace;color:#d52349}.th-qa details{margin-bottom:.6em;padding:.6em .9em;border:1px solid rgba(0,0,0,.12);border-radius:5px}.th-qa summary{cursor:pointer;font-weight:600}.th-qa details p{margin:.6em 0 0}.th-answer-label{font-weight:600;color:#d52349}body.dark-mode .th-outline li{border-bottom-color:#ffffff1a}body.dark-mode .th-qa details{border-color:#ffffff26}body.dark-mode .th-outline .th-time,body.dark-mode .th-answer-label{color:#ff6b81}.hw-filter{display:flex;flex-wrap:wrap;align-items:center;gap:.5em;margin:.2em 0 1em}.hw-filter-label{margin-right:.3em;font-size:.85em;font-weight:600}.hw-filter .button.alt[aria-pressed=true]{background:#d52349}body.dark-mode .hw-filter .button.alt[aria-pressed=true]{background:#e94560;border-color:#e94560;color:#fff!important}.lab-text{font-family:monospace;font-size:.8em;line-height:1.45;padding:1em;border-radius:5px;background:#0000000a;overflow-x:auto;white-space:pre;tab-size:8;margin:0 0 1.5em}.lab-file-name{font-family:monospace;font-size:.9em}.lab-file-box .button{margin:0 .4em .6em 0}.lab-readme{margin:1.5em 0 2.5em;padding:1em 1.2em;border:1px solid rgba(0,0,0,.12);border-radius:5px}.lab-readme-section{margin-top:2.5em}.lab-readme-section h3{margin-bottom:.8em}.lab-readme-list{margin:0 0 1.5em 1.2em}.lab-readme-table code,.lab-readme-list code,.lab-readme p code{font-size:.9em}.lab-table th:nth-child(1){width:38%}body.dark-mode .lab-text{background:#ffffff0d}body.dark-mode .lab-readme{border-color:#ffffff26}.lab-doc p,.lab-doc li{text-align:left}.lab-doc .lab-heading{margin:2.2em 0 .8em}.lab-doc h4.lab-heading{margin:1.6em 0 .6em}.lab-banner{font-family:monospace;font-size:clamp(.3rem,1.02vw,.6rem);line-height:1.2;color:#d52349;background:none;border:0;padding:0;overflow:hidden;white-space:pre;margin:1.5em 0 .6em}@media screen and (max-width:600px){.lab-banner{display:none}}.lab-author{font-family:monospace;font-size:.85em;color:#888;margin:0 0 1.5em}.lab-doc p code,.lab-doc li code,.lab-cmds code{padding:.1em .35em;border-radius:4px;background:#0000000f;font-family:monospace;font-size:.85em;overflow-wrap:anywhere}.lab-sep{margin:2em 0;border:0;border-top:1px dashed rgba(0,0,0,.25)}.lab-list{margin:0 0 1.5em 1.4em}.lab-list li{margin-bottom:.4em}.lab-list .lab-list{margin:.4em 0 .2em 1.2em}.lab-goal{margin:0 0 1.5em;padding:.8em 1em .1em;border-left:3px solid #d52349;border-radius:0 5px 5px 0;background:#d523490f}.lab-term{font-family:monospace;font-size:.8em;line-height:1.5;padding:.9em 1.1em;border:1px solid #16181d;border-radius:6px;background:#16181d;color:#c9d1d9;overflow-x:auto;white-space:pre;tab-size:8;margin:0 0 1.5em}.lab-prompt{color:#ff6b81}.lab-cmd{color:#fff;font-weight:700}.lab-note{color:#e3b341;font-style:italic}.lab-comment{color:#8b949e;font-style:italic}.lab-code{margin:0 0 1.5em}.lab-code figcaption{margin:0 0 .3em;font-family:monospace;font-size:.8em;color:#888}.lab-code pre{margin:0;padding:.8em 1em;border:1px solid rgba(0,0,0,.08);border-radius:5px;background:#00000009;font-family:monospace;font-size:.8em;line-height:1.5;overflow-x:auto;white-space:pre;tab-size:8}.lab-analysis{margin:0 0 1.8em;padding:1em 1.2em .3em;border-left:4px solid #3fa796;border-radius:0 6px 6px 0;background:#3fa79612}.lab-subhead{margin:1.6em 0 .6em;font-weight:700}.lab-analysis-label{margin:0 0 .8em;font-family:monospace;font-size:.75em;letter-spacing:1px;text-transform:uppercase;color:#2f7f72}.lab-cmds{width:100%;margin:0 0 1.5em;border-collapse:collapse}.lab-cmds th,.lab-cmds td{padding:.55em .7em;border-bottom:1px solid rgba(0,0,0,.08);text-align:left;vertical-align:top}.lab-cmds td:first-child{width:40%}.lab-cmds code{white-space:pre-wrap;overflow-wrap:anywhere;font-size:.85em}@media screen and (max-width:736px){.lab-cmds thead{display:none}.lab-cmds tr,.lab-cmds td{display:block;width:auto!important}.lab-cmds td:first-child{padding-bottom:.15em;border-bottom:0}}body.dark-mode .lab-banner{color:#e94560}body.dark-mode .lab-doc p code,body.dark-mode .lab-doc li code,body.dark-mode .lab-cmds code{background:#ffffff14}body.dark-mode .lab-sep{border-top-color:#ffffff40}body.dark-mode .lab-goal{border-left-color:#e94560;background:#e9456014}body.dark-mode .lab-term{border-color:#2a2a2a;background:#0d1014}body.dark-mode .lab-prompt{color:#ff6b81}body.dark-mode .lab-cmd{color:#fff}body.dark-mode .lab-note{color:#e3b341}body.dark-mode .lab-comment{color:#8b949e}body.dark-mode .lab-code pre{border-color:#ffffff1a;background:#ffffff0d;color:#d4d4d4}body.dark-mode .lab-analysis{border-left-color:#4fc3ad;background:#3fa7961a}body.dark-mode .lab-analysis-label{color:#5fd3bf}body.dark-mode .lab-cmds th,body.dark-mode .lab-cmds td{border-bottom-color:#ffffff1a}
