/* Eight-colour palette. Local fonts only, square geometry, no animation. */
:root{font-family:'Courier New',Consolas,monospace;font-synthesis:none;color:#eef2da;background:#101410;--bg:#101410;--paper:#1c241c;--surface:#303c30;--muted:#8c9c7c;--text:#eef2da;--accent:#b4f46c;--line:#586c4c;--warning:#f4b46c;color-scheme:dark}
*{box-sizing:border-box}body{margin:0}button,input,a,summary{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button,.button{border:2px solid var(--accent);border-radius:0;background:var(--accent);color:var(--bg);padding:13px 17px;cursor:pointer;font-size:13px;font-weight:700;line-height:1.5;text-decoration:none;display:inline-block;box-shadow:3px 3px 0 var(--surface)}button:hover,.button:hover{background:var(--text);border-color:var(--text);color:var(--bg)}button:disabled{color:var(--muted);border-color:var(--surface);background:var(--paper);box-shadow:none;cursor:default}.secondary{background:transparent;color:var(--accent);border-color:var(--line)}.text-button{background:none;color:var(--muted);border-color:transparent;box-shadow:none}a{color:var(--accent)}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px dashed var(--warning);outline-offset:5px}input{min-width:0;width:100%;border:2px solid var(--line);border-radius:0;background:var(--bg);padding:13px;color:var(--text);font-size:16px}input:focus{outline:2px solid var(--accent);outline-offset:2px}input::placeholder{color:var(--muted)}h1,h2,p{margin-top:0}h1{font-size:clamp(28px,3.4vw,46px);line-height:1.16;letter-spacing:-1.5px;font-weight:700;margin-bottom:25px}h2{font-size:17px;line-height:1.5}p{line-height:1.8}small{font-size:11px;line-height:1.7}em{font-style:normal;color:var(--accent)}.site-header{max-width:1320px;margin:auto;padding:27px 42px;border-bottom:2px solid var(--line);display:flex;align-items:center;gap:30px}.brand{display:flex;align-items:center;gap:15px;text-decoration:none;font-size:11px;line-height:1.6;letter-spacing:1px;font-weight:700;color:var(--text)}.brand-mark{position:relative;display:block;width:36px;height:36px;flex-shrink:0}.brand-mark i{position:absolute;width:16px;height:16px;border:3px solid var(--text)}.brand-mark i:after{content:'';position:absolute;inset:3px;background:var(--accent)}.brand-mark i:nth-child(1){top:0;left:0}.brand-mark i:nth-child(2){top:0;right:0}.brand-mark i:nth-child(3){bottom:0;left:0}.brand-mark:after{content:'';position:absolute;bottom:0;right:0;width:6px;height:6px;background:var(--accent);box-shadow:-8px 0 0 var(--accent),0 -8px 0 var(--accent)}.header-note,.edition,.eyebrow,.section-label,.footer-note{font-size:10px;letter-spacing:1.3px;line-height:1.8}.header-note{margin-left:auto;color:var(--muted)}.edition{border:1px solid var(--line);padding:6px 10px;color:var(--accent)}.layout{max-width:1240px;margin:42px auto 0;padding:0 40px;display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:28px;align-items:start}.section-label{display:flex;justify-content:space-between;gap:12px;margin:0 0 15px;color:var(--muted)}.panel{background:var(--paper);border:2px solid var(--line);border-radius:0;padding:36px;box-shadow:6px 6px 0 var(--surface)}.eyebrow{display:block;color:var(--accent);margin-bottom:22px;font-weight:700}.eyebrow:before{content:'■ ';font-size:9px}.intro{color:var(--text);font-size:14px;line-height:1.9}.bureau-note{margin:27px 0;padding:18px 20px;border-left:4px solid var(--warning);background:var(--bg)}.bureau-note span{font-size:10px;letter-spacing:1px;color:var(--warning)}.bureau-note p{margin:10px 0 0;font-size:13px;color:var(--muted)}.instructions{padding-left:23px;font-size:13px;line-height:2.3;margin-bottom:28px}.inline-form,.answer-form{margin-top:27px}.inline-form label,.answer-form label{display:block;font-size:12px;line-height:1.7;margin-bottom:10px;color:var(--muted)}.input-row{display:flex;gap:10px}.input-row button{flex-shrink:0}.sidebar{padding-top:33px}.dossier{padding:24px}.progress-title{display:flex;justify-content:space-between;align-items:center}.progress-title h2{font-size:19px;margin:0}.progress-title>span{font-size:30px;font-weight:700;color:var(--accent)}.progress-title small{color:var(--muted);font-size:16px}.progress-track{height:10px;background:var(--bg);margin-top:18px;border:1px solid var(--line)}.progress-track span{display:block;height:100%;background:repeating-linear-gradient(90deg,var(--accent) 0,var(--accent) 6px,var(--paper) 6px,var(--paper) 8px);width:0}.step-1 span{width:16.666%}.step-2 span{width:33.333%}.step-3 span{width:50%}.step-4 span{width:66.666%}.step-5 span{width:83.333%}.step-6 span{width:100%}.cards{list-style:none;padding:0;margin:17px 0 22px}.cards li{display:flex;align-items:center;gap:10px;padding:17px 0;border-bottom:1px solid var(--surface);font-size:11px;color:var(--muted)}.card-index{font-size:10px;color:var(--muted)}.cards li div{flex:1}.cards small{display:block;font-size:8px;letter-spacing:.4px;margin-top:6px}.cards a{text-decoration:none;line-height:1.6}.cards a:hover{text-decoration:underline}.cards strong{font-size:22px;font-weight:700}.cards .collected{color:var(--accent)}.full{display:block;text-align:center}.transfer{padding:29px 4px}.transfer .eyebrow{margin-bottom:11px}.transfer p{font-size:12px;color:var(--muted);margin-bottom:13px;overflow-wrap:anywhere}.transfer p strong{color:var(--text)}.transfer-code{display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px dashed var(--line);padding:11px;background:var(--paper)}.transfer-code code{font-family:inherit;font-size:16px;letter-spacing:1px;color:var(--accent)}.icon-button{border:0;background:none;color:var(--accent);font-size:10px;padding:7px 2px;box-shadow:none}.transfer>small{display:block;color:var(--muted);margin:12px 0 18px}.transfer .input-row{flex-wrap:wrap}.transfer .input-row button{width:100%}details{border-top:1px solid var(--line);padding:15px 0}summary{cursor:pointer;font-size:12px;line-height:1.7;color:var(--accent)}details p{font-size:13px;margin:15px 0 0}.hints{margin-top:27px}.feedback{font-size:13px;color:var(--warning);margin:20px 0 0;line-height:1.8}.feedback:empty{display:none}.good{color:var(--accent)}.footer-note{padding:26px 0 40px;color:var(--muted);font-size:9px}.cipher{font-size:48px;letter-spacing:13px;padding:24px 12px 24px 25px;background:var(--bg);border:2px solid var(--line);text-align:center;color:var(--accent);margin-top:28px}.alphabet{font-size:14px;line-height:2;letter-spacing:3px;margin:20px 0 7px;text-align:center;overflow-wrap:anywhere}.caption{font-size:12px;color:var(--muted);line-height:1.8}.windows{display:grid;gap:17px;margin-top:28px}.window-choice{text-align:left;padding:0;overflow:hidden}.window-bar{display:flex;justify-content:space-between;background:var(--surface);padding:10px 15px;color:var(--muted);font-size:9px;letter-spacing:3px}.window-bar strong{color:var(--text);letter-spacing:1px;font-size:10px}.window-text{display:block;padding:22px 15px;font-size:17px;line-height:1.6}.window-select{display:block;padding:0 15px 15px;font-size:11px}.requirements{padding-left:21px;line-height:1.9;font-size:14px}.requirements li{padding:5px 0}.requirements strong{color:var(--accent)}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px}.bridge-top{display:flex;justify-content:space-between;gap:12px;background:var(--bg);border:1px solid var(--line);padding:16px;font-size:12px;margin-top:25px}.bridge-top strong{color:var(--accent)}.banks{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:18px}.bank{padding:18px 12px;background:var(--bg);border:1px solid var(--line);min-height:190px}.bank .eyebrow{font-size:9px}.people{display:flex;gap:9px;flex-wrap:wrap}.person{padding:10px;font-size:11px}.person .pixel-person{display:block;margin:2px auto 8px;width:4px;height:4px;background:currentColor;box-shadow:4px 0 0 currentColor,0 4px 0 currentColor,4px 4px 0 currentColor,-4px 12px 0 currentColor,0 12px 0 currentColor,4px 12px 0 currentColor,8px 12px 0 currentColor,-4px 16px 0 currentColor,0 16px 0 currentColor,4px 16px 0 currentColor,8px 16px 0 currentColor,0 20px 0 currentColor,4px 20px 0 currentColor,0 24px 0 currentColor,4px 24px 0 currentColor,-4px 28px 0 currentColor,8px 28px 0 currentColor;height:34px}.person.selected{background:var(--accent);color:var(--bg);border-color:var(--accent)}.move-log{font-size:11px;line-height:2.1;padding-left:20px;color:var(--muted)}.order-slots{display:flex;gap:9px;margin:25px 0}.order-slots span{flex:1;border:2px dashed var(--line);background:var(--bg);min-width:0;text-align:center;padding:18px 0;font-size:28px;color:var(--accent)}.tile{min-width:50px;font-size:20px}.route-current{margin:22px 0 14px;background:var(--bg);border:1px solid var(--line);padding:20px}.route-current h2{font-size:23px;margin:0}.route-current .eyebrow{margin-bottom:10px}.route-path{font-size:11px;line-height:2;color:var(--muted);margin-bottom:20px}.route-links{display:grid;gap:13px}.route-links button{text-align:left}.map li{font-size:12px;line-height:1.9;padding:5px 0}.map ul{padding-left:18px}.success-box{padding:27px;background:var(--bg);margin-top:25px;border:2px dashed var(--accent)}.success-box .eyebrow{margin-bottom:11px}.reward-code{font-size:70px;font-weight:700;color:var(--accent);margin:18px 0}.success-box p{font-size:13px}.sequence{display:flex;align-items:center;justify-content:space-between;gap:4px;background:var(--bg);border:2px solid var(--line);padding:22px 12px;margin:28px 0;font-size:clamp(20px,3vw,30px);color:var(--accent)}.sequence b{font-size:16px;font-weight:400}.final-answer{font-size:clamp(45px,6vw,76px);font-weight:700;letter-spacing:-3px;color:var(--accent);margin-bottom:28px}.final-answer span{display:block;font-size:10px;font-weight:400;letter-spacing:3px;margin-top:15px}.final-panel h1{font-size:32px}.final-panel hr{border:0;border-top:2px dashed var(--line);margin:30px 0}.signature{font-size:18px;color:var(--accent);margin:25px 0 35px}.signature:before{content:'> '}.standalone{max-width:620px;margin:12vh auto;padding:35px}.loading{padding:40px;font-size:14px;text-align:center}
@media(min-width:1500px){.layout{margin-top:62px}}@media(max-width:1000px){.layout{grid-template-columns:minmax(0,1fr) 290px;gap:22px;padding:0 25px}.panel{padding:28px}.dossier{padding:21px}.header-note{display:none}.edition{margin-left:auto}.input-row{flex-wrap:wrap}.input-row button{width:100%}.transfer-code code{font-size:14px}}@media(max-width:740px){.site-header{padding:20px 16px;gap:10px}.edition{font-size:8px;letter-spacing:0;padding:6px}.brand{font-size:9px;letter-spacing:.5px}.layout{display:flex;flex-direction:column;margin-top:25px;padding:0 16px;gap:0}.main-column,.sidebar{width:100%}.sidebar{padding-top:0}.section-label{font-size:8px;letter-spacing:.3px}.panel{padding:25px 20px;box-shadow:4px 4px 0 var(--surface)}h1{font-size:32px;letter-spacing:-1px}.intro{font-size:13px}.footer-note{padding:20px 0 25px;font-size:8px}.transfer{padding:28px 5px 40px}.transfer-code code{font-size:18px}.dossier{padding:24px}.banks{gap:10px}.bank{padding:15px 8px}.bank .eyebrow{letter-spacing:0}.person{padding:9px 7px}.bridge-top{font-size:11px;padding:12px}.sequence{font-size:23px;padding:20px 9px}.standalone{margin:30px 16px}.order-slots{gap:7px}.order-slots span{font-size:24px}.success-box{padding:22px}.final-answer{font-size:52px}.tile{min-width:44px;padding:10px}.window-text{font-size:15px}.final-panel h1{font-size:28px}.section-label span:last-child{max-width:52%;text-align:right}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
/* Pixel avatar: reserve the complete sprite height before the text label. */
.person .pixel-person{position:relative;height:36px;width:20px;background:none;box-shadow:none}
.person .pixel-person:before{content:'';position:absolute;top:0;left:8px;width:4px;height:4px;background:currentColor;box-shadow:4px 0 0 currentColor,0 4px 0 currentColor,4px 4px 0 currentColor,-4px 12px 0 currentColor,0 12px 0 currentColor,4px 12px 0 currentColor,8px 12px 0 currentColor,-4px 16px 0 currentColor,0 16px 0 currentColor,4px 16px 0 currentColor,8px 16px 0 currentColor,0 20px 0 currentColor,4px 20px 0 currentColor,0 24px 0 currentColor,4px 24px 0 currentColor,-4px 28px 0 currentColor,8px 28px 0 currentColor}
