:root{--blue:#1928cf;--ink:#151935;--accent:#e94f2d;--line:#d8dbea;--pale:#f3f5ff}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:2rem}body{margin:0;background:#fff;color:var(--ink);font:17px/1.6 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}a{color:inherit}button,input{font:inherit}button,a,input,summary{touch-action:manipulation}button,a:focus-visible,input:focus-visible,summary:focus-visible{outline-offset:5px}a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid var(--accent)}.masthead{max-width:1280px;margin:auto;padding:25px 42px;display:flex;align-items:center;justify-content:space-between;gap:25px}.wordmark{text-decoration:none;font-weight:800;font-size:15px;letter-spacing:.06em}.wordmark span{display:block;font-size:10px;letter-spacing:.09em;font-weight:500;margin-top:3px}.quiet-link{font-size:14px;text-underline-offset:5px;white-space:nowrap}.hero{background:var(--blue);color:#fff;padding:72px max(42px,calc((100vw - 1196px)/2));display:grid;grid-template-columns:1.13fr .87fr;gap:65px;align-items:center;overflow:hidden}.eyebrow{font:12px/1.5 ui-monospace,Consolas,monospace;letter-spacing:.1em;font-weight:700;margin:0 0 25px}h1,h2,h3{font-family:Georgia,"Times New Roman",serif;font-weight:400;line-height:1.02;letter-spacing:-.045em;margin:0}h1{font-size:clamp(64px,7.8vw,110px)}h1 em{font-weight:400;color:#cbd0ff}h2{font-size:clamp(35px,4vw,56px)}h3{font-size:42px}.intro{font-size:19px;max-width:520px;margin:30px 0}.actions{display:flex;align-items:center;gap:21px;flex-wrap:wrap}.button{display:inline-flex;justify-content:center;align-items:center;gap:28px;min-height:51px;padding:13px 23px;border:1px solid var(--blue);background:var(--blue);color:#fff;text-decoration:none;font-size:15px;font-weight:700;cursor:pointer;border-radius:0}.button:hover{background:#0f199d}.button.light{background:#fff;color:var(--blue);border-color:#fff}.button.light:hover{background:#e3e7ff}.download-link{font-size:14px;text-underline-offset:5px}.hero-note{font-size:13px;color:#d2d6ff;margin:23px 0 0}.chart{background:#fff;color:var(--blue);transform:rotate(2deg);box-shadow:15px 15px 0 #080f7133;max-width:480px;position:relative}.chart-top,.chart-bottom{padding:18px 24px;display:flex;justify-content:space-between;font:11px ui-monospace,Consolas,monospace;letter-spacing:.05em}.chart-top{border-bottom:1px solid var(--line)}.chart-bottom{border-top:1px solid var(--line);align-items:center}.chart-bottom strong{font-size:24px}.chart svg{width:100%;display:block}.instructions{max-width:1196px;margin:auto;padding:74px 0}.instruction-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:23px}.instruction-grid p{font-size:15px;color:#535771;margin:0}.instruction-grid strong{display:block;color:var(--ink);margin-bottom:9px;font-size:16px}.case-section{max-width:1196px;margin:0 auto;display:grid;grid-template-columns:180px 1fr;gap:65px;border-top:1px solid var(--line);padding:68px 0}.section-marker{font:70px/1 Georgia,serif;color:var(--blue)}.section-marker span{font:11px/1.7 ui-monospace,Consolas,monospace;display:block;letter-spacing:.12em;margin-top:20px}.case-content{max-width:800px}.case-content>p{max-width:670px}.case-content .eyebrow{color:var(--blue)}.buoys{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin:29px 0}.buoys>div{border:1px solid var(--blue);text-align:center;padding:18px 7px 12px}.buoys span{display:block;font:11px ui-monospace,Consolas,monospace;letter-spacing:.04em}.buoys strong{display:block;font:52px/1.4 Georgia,serif;color:var(--blue)}.paper-note{background:var(--pale);border-left:3px solid var(--blue);padding:25px 29px;margin:25px 0}.paper-note .eyebrow{margin-bottom:14px}.paper-note ol{padding-left:20px;margin:0}.paper-note li{margin:9px 0;font-size:16px}.answer-row{display:flex;gap:10px;flex-wrap:wrap}label{display:block;font-weight:650;font-size:14px;margin:27px 0 9px}input{width:215px;min-width:0;border:1px solid #9298b8;background:#fff;padding:10px 14px;border-radius:0;color:var(--ink)}#route-code{letter-spacing:.17em;font-family:ui-monospace,Consolas,monospace}.feedback{min-height:26px;font-size:14px;margin:10px 0 18px}.feedback.error{color:#a32912}.feedback.success{color:#1323b8}details{border-top:1px solid var(--line);padding:18px 0;font-size:15px}summary{cursor:pointer;font-weight:650;width:fit-content}details p{max-width:670px}.cipher-wrap{overflow-x:auto;margin:30px 0}.cipher{border-collapse:collapse;width:100%;text-align:center;font:18px/1.3 ui-monospace,Consolas,monospace;min-width:440px}.cipher caption{text-align:left;font:12px system-ui,sans-serif;padding-bottom:12px;color:#555b76}.cipher th,.cipher td{padding:14px 8px;border:1px solid var(--line)}.cipher thead{background:var(--blue);color:white}.cipher th:first-child{font-size:12px}.cipher tbody th{background:var(--pale);color:var(--blue)}.ending{background:var(--blue);color:white;padding:35px;margin:25px 0}.ending .eyebrow{color:#d2d6ff}.ending[hidden]{display:none}.ending p{font-size:15px}.text-button{border:0;border-bottom:1px solid currentColor;background:transparent;color:inherit;padding:0;cursor:pointer;font-size:14px}.closing{background:var(--pale);padding:65px max(42px,calc((100vw - 1196px)/2))}.closing p{max-width:610px}.closing details{max-width:800px;margin-top:32px}footer{max-width:1196px;margin:auto;padding:38px 0 45px;color:#5b607a;display:grid;grid-template-columns:1fr 1.2fr .8fr;gap:35px}footer p{font-size:12px;line-height:1.6;margin:0}@media(max-width:1280px){.instructions,.case-section,footer{margin-left:42px;margin-right:42px}}@media(max-width:850px){.hero{gap:35px;padding-top:50px;padding-bottom:50px}h1{font-size:72px}.hero .intro{font-size:16px}.actions{gap:15px}.chart-top,.chart-bottom{padding:14px}.case-section{grid-template-columns:100px 1fr;gap:28px}.instruction-grid{gap:23px}.cipher th,.cipher td{padding:12px 7px}}@media(max-width:640px){.masthead{padding:19px 22px}.wordmark{font-size:12px}.wordmark span{font-size:8px;letter-spacing:0}.quiet-link{font-size:12px}.hero{padding:42px 22px;grid-template-columns:1fr;gap:40px}.hero-copy{max-width:520px}h1{font-size:76px}.hero .intro{font-size:17px}.chart{max-width:310px;justify-self:center;transform:rotate(1.5deg)}.chart svg{max-height:240px}.instructions,.case-section,footer{margin-left:22px;margin-right:22px}.instructions{padding:48px 0}.instruction-grid{grid-template-columns:1fr;gap:21px;margin-top:27px}.case-section{grid-template-columns:1fr;gap:25px;padding:44px 0}.section-marker{font-size:38px;display:flex;align-items:center;gap:18px}.section-marker span{margin-top:0}.buoys{gap:5px}.buoys span{font-size:9px}.buoys strong{font-size:40px}.buoys>div{padding:12px 3px}.paper-note{padding:20px}.paper-note li{font-size:15px}.answer-row input{flex:1;width:100%;min-width:150px}.answer-row button{flex:1}.closing{padding:45px 22px}footer{grid-template-columns:1fr;gap:16px}.ending{padding:26px}.eyebrow{font-size:11px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@media print{.masthead,.hero,.instructions,.closing,footer,form,details,.section-marker,.ending{display:none!important}.case-section{display:block;border:0;margin:0;padding:0;break-after:page}.case-content{max-width:none}body{font-size:12pt}.paper-note{background:white}.cipher{min-width:0}.case-section h2{font-size:28pt}.buoys strong{font-size:30pt}}
/* Let the cipher scroll inside its grid column on narrow screens. */
.case-content{min-width:0}
@media(max-width:640px){.cipher{min-width:0;font-size:15px}.cipher th,.cipher td{padding:11px 3px}}
