*{box-sizing:border-box}body{margin:0;background:#f3f5f7;color:#1c252e;font:16px Arial,sans-serif}button,input,textarea,select{font:inherit}button{cursor:pointer}a,button,input,select,textarea{outline-offset:4px}header{height:86px;background:white;border-bottom:1px solid #e1e5e8;display:flex;align-items:center;justify-content:space-between;padding:0 5%;font-size:14px;color:#75808a}.brand{display:flex;gap:10px;align-items:center;text-decoration:none;font-weight:850;font-size:29px;letter-spacing:-1px;color:#18202a}.brand b{background:#c5f564;border-radius:9px;padding:0 7px;font-size:33px}.brand sup{font-size:13px}header small{background:#f3f5f7;padding:9px 13px;border-radius:20px}main{max-width:1320px;padding:42px 40px 24px;margin:auto}.intro{display:flex;align-items:center;justify-content:space-between;margin-bottom:30px}.eyebrow{font-size:12px;letter-spacing:2px;font-weight:700;color:#6b737c}h1{font-size:44px;letter-spacing:-2px;font-weight:650;margin:12px 0}h1 em{color:#718548;font-style:normal}p{color:#6d7580;line-height:1.6;margin:10px 0}aside{font:12px/2 monospace;color:#7d858c;text-align:right}nav{display:flex;gap:5px;background:#e8ecef;padding:6px;border-radius:12px;margin-bottom:24px;width:fit-content}nav button{border:0;background:transparent;padding:13px 22px;border-radius:8px;color:#646d77;font-weight:600;font-size:14px}nav button.active{background:white;color:#17202b;box-shadow:0 2px 5px #17202b10}nav small{font-size:10px;background:#dcf5b5;color:#4c662c;padding:4px 5px;margin-left:5px}.workspace{display:grid;grid-template-columns:1.08fr 1fr;gap:24px;align-items:start}.editor{padding:28px;background:white;border:1px solid #e0e5e9;border-radius:15px}h2{font-size:18px;font-weight:600;margin:0 0 22px;letter-spacing:-.3px;display:flex;align-items:center;gap:12px}h2 i{font-style:normal;border:1px solid #dce3e6;border-radius:50%;width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;font-size:12px;color:#68727c}.types{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:24px}.type{border:1px solid #e1e5e8;background:white;color:#69747c;padding:14px 4px;font-size:14px;border-radius:8px}.type.selected{border-color:#879b68;background:#f3f9e9;color:#334627}label{font-size:14px;font-weight:550;display:block;margin-bottom:16px}input:not([type=color]),textarea,select{display:block;width:100%;border:1px solid #dce2e7;border-radius:7px;padding:12px;background:#fff;color:#25313c;margin-top:8px;min-width:0}textarea{resize:vertical;min-height:100px;line-height:1.5}.second{padding-top:25px;margin-top:25px;border-top:1px solid #edf0f2}.twocol{display:grid;grid-template-columns:1fr 1fr;gap:16px}.color{display:flex;gap:10px;align-items:center;border:1px solid #dce2e7;padding:9px;border-radius:7px;margin-top:8px;height:46px;font-family:monospace;font-weight:400}input[type=color]{padding:0;width:28px;height:28px;border:0;background:none}.palettes{display:flex;align-items:center;gap:10px;font-size:12px;color:#747e86}.palettes button{width:22px;height:22px;border:3px solid white;outline:1px solid #dce2e7;border-radius:50%}.preview-panel{background:#e8eeed;border:1px solid #dce4e2;border-radius:15px;padding:24px 28px}.preview-heading{display:flex;justify-content:space-between;align-items:center;font:12px monospace;color:#52625f;letter-spacing:1px}.preview-heading span:last-child{border:1px solid #cad7d3;border-radius:4px;padding:5px 7px;font-size:10px}.preview-stage{height:330px;display:flex;align-items:center;justify-content:center;background-image:radial-gradient(#a7b7b5 1px,transparent 1px);background-size:17px 17px;margin:15px 0}.code-paper{background:white;border-radius:12px;padding:16px;box-shadow:0 14px 24px #374f4920;max-width:95%}#code{width:242px;max-width:100%;line-height:0}#code svg{width:100%;height:auto;max-height:280px}.caption{text-align:center}.caption h2{display:block;font-size:22px;margin:0}.caption p{font-size:14px}.downloads{display:flex;gap:10px;margin-top:22px}.downloads button{border:1px solid #c2cfcc;background:transparent;border-radius:7px;padding:15px 17px;font-size:14px;font-weight:650}.downloads .primary{border-color:#b5e45c;background:#c5f564;flex:1;color:#253814}button:disabled{opacity:.4;cursor:not-allowed}.bottom{display:flex;justify-content:space-between;margin-top:20px;font-size:12px;color:#6c7f78}.bottom button{background:none;border:0;font-size:12px;color:#364e44;text-decoration:underline}details{margin-top:20px;border-top:1px solid #d3ded9;padding-top:14px;font-size:12px;color:#657a70}summary{cursor:pointer}pre{white-space:pre-wrap;word-break:break-word;font:14px/1.6 monospace}#error{font-size:13px;color:#974826}.notice{padding:13px;background:#f2f7e8;color:#586740;font-size:13px;border-radius:7px;margin-bottom:18px}.reader-card{padding:40px;background:white;border-radius:15px;border:1px solid #dce2e7;max-width:760px;margin:auto}.reader-card h2{font-size:30px}.upload{background:#c5f564;padding:18px;border-radius:8px;margin:24px 0}#scanResult{padding:20px;background:#f4f6f7;min-height:100px}footer{display:flex;justify-content:space-between;margin-top:30px;color:#7a828c;font-size:12px;gap:20px}[hidden]{display:none!important}@media(max-width:850px){main{padding:28px 18px}aside,header>span{display:none}header{height:70px;padding:0 20px}h1{font-size:34px}.workspace{grid-template-columns:1fr}nav{width:100%;overflow-x:auto}nav button{white-space:nowrap;flex:1;padding:12px}nav small{display:none}.editor{padding:22px}.intro p{font-size:14px}footer{line-height:1.6}}@media(max-width:420px){h1{font-size:30px}nav button{font-size:12px;padding:10px 7px}.twocol{gap:10px}.preview-panel{padding:20px}header small{display:none}.types{grid-template-columns:repeat(3,1fr)}}
.pro-tag{font:10px monospace;background:#dff3be;color:#4e672d;padding:5px 7px;border-radius:4px;margin-left:auto}.preset-row{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:20px}.preset-row button,.small-button{background:white;color:#334527;border:1px solid #ccd8c0;border-radius:6px;padding:9px 12px;font-size:14px}.preset-row button:hover{background:#f0f8e5}#tuning details{font-size:15px;margin-top:0;padding:17px 0;border-color:#e1e6ea;color:#273b31}#tuning summary{font-weight:600}.tune-body{padding-top:20px}.hint{font-size:13px;line-height:1.5}#tuning input[type=range]{padding:0;border:0;accent-color:#709349;width:100%;height:25px}#tuning output{float:right;color:#5e7842;font-family:monospace}#tuning input[type=color]{display:block;width:100%;height:38px;margin-top:9px;border:1px solid #dce2e7;border-radius:5px}#logoFile{font-size:13px}.health{margin-top:24px;border-top:1px solid #c8d7d0;padding-top:20px}.health-title{display:flex;justify-content:space-between;align-items:center;font-size:12px;letter-spacing:.5px}.health-title span{padding:5px 8px;background:#dae3e0;border-radius:4px}.health-title .passed{background:#d8efbb;color:#375620}.health-title .failed{background:#f4dfcc;color:#844619}#scanCheck{font-size:14px;color:#435e50}.stats{font:12px/1.6 monospace;color:#415b4c}.preview-panel{position:sticky;top:22px}#code{width:280px}.preview-stage{min-height:340px;height:auto;padding:20px 0}@media(max-width:850px){.preview-panel{position:static}.workspace{display:flex;flex-direction:column}.editor,.preview-panel{width:100%}.preview-panel{order:-1}.preview-stage{min-height:240px}#code{width:220px}.intro{margin-bottom:20px}}@media(prefers-reduced-motion:no-preference){button{transition:background .15s,box-shadow .15s}}
/* Cookie Lab: an instrument bench, extending the Scanlab palette. */
header{background:#17232a;color:#c0d0d4;border-bottom:3px solid #c5f564}.brand{color:#f7faf5}.brand b{color:#17232a}.brand sup{font-size:11px;letter-spacing:0;font-weight:400;color:#b8ccbe}header small{background:#25383e;color:#d7e9d9}nav{width:100%;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}nav button{padding:13px 9px;text-align:left;white-space:normal}nav [data-lab]{color:#4d6146}nav [data-lab].active{background:#dff2bd;color:#233919}.lab-top{display:flex;justify-content:space-between;align-items:center;margin:32px 0 22px;gap:18px}.lab-top h2{font-size:30px;margin:10px 0}.lab-top p{margin:0;font-size:15px}.lab-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:24px;align-items:start}.lab-card{background:white;padding:28px;border:1px solid #dce3e5;border-radius:15px}.lab-result{background:#172b30;color:#e9f1e9;border:1px solid #263f44;border-radius:15px;padding:28px;position:sticky;top:22px;min-height:480px}.lab-result .preview-heading{color:#bacebe}.lab-result .preview-heading span:last-child{border-color:#496458}.lab-result p{color:#b3c8bd}.lab-result textarea{background:#102126;border-color:#48605c;color:#ddf4d7;min-height:260px;font:13px/1.7 monospace}.lab-result .notice{background:#293f35;color:#cde0bd}.lab-result .small-button{background:transparent;color:#deebdb;border-color:#67826c}.lab-switch{display:flex;gap:5px;background:#edf1eb;border-radius:8px;padding:5px;margin-bottom:24px}.lab-switch button{flex:1;border:0;background:transparent;padding:11px;border-radius:5px;color:#6a7868}.lab-switch button[aria-pressed=true]{background:white;color:#213726;box-shadow:0 2px 3px #21372615}.lab-actions{display:flex;gap:10px;flex-wrap:wrap;margin:15px 0}.lab-primary{background:#c5f564;color:#213b19;border:1px solid #b9e85e;padding:13px 20px;border-radius:7px;font-weight:600;font-size:15px}.lab-card>.lab-primary,#runLab,#runCipher{width:100%;margin-top:12px}.password-line{display:flex;align-items:stretch;gap:8px;margin-top:8px}.password-line input{margin:0;flex:1}.password-line button{flex:none}#labInput,#cipherInput{min-height:180px}#labStatus{font-size:14px;color:#4c673e;overflow-wrap:anywhere}#labEmpty{text-align:center;padding:55px 10px}#labEmpty h3{font-size:23px;font-weight:500}.lab-mark{font-size:80px;line-height:1;color:#c5f564}#noisePreview{display:block;width:100%;max-width:380px;aspect-ratio:1;object-fit:contain;image-rendering:pixelated;margin:24px auto;border-radius:8px}#resultInfo{overflow-wrap:anywhere}.file-button{cursor:pointer;border:1px solid #ccd8c0;border-radius:6px;padding:9px 12px;font-weight:400;margin:0;font-size:14px}.file-button input{font-size:12px;padding:5px;margin-top:6px;max-width:200px}.lab-card details{color:#47654c;font-size:14px}.lab-card details a{color:#365b28}.lab-card .notice{font-size:14px}#customSettings input[type=range]{padding:0;accent-color:#729645;height:22px;border:0}#customWeightOut{float:right;color:#6d874b}#customStats{font-family:monospace;background:#f1f6e9;padding:12px;border-radius:6px}.lab-card input[type=file]{font-size:14px}#unlockScanned{margin-top:10px}.lab-top .small-button{flex-shrink:0}@media(max-width:850px){.lab-grid{grid-template-columns:1fr}.lab-result{position:static;min-height:320px}.lab-top{align-items:start}.lab-top h2{font-size:26px}.lab-card,.lab-result{padding:22px}nav{grid-template-columns:repeat(4,minmax(0,1fr));overflow:visible}nav button{font-size:12px;padding:11px 7px}.brand{font-size:25px}}@media(max-width:470px){nav{grid-template-columns:repeat(2,minmax(0,1fr))}.lab-top{flex-direction:column}h1{font-size:32px}.brand sup{font-size:10px}.lab-result textarea{min-height:200px}}
