/* The Natural Numbers chapter inherits the editorial language of Chapter 1. */
@import url('chapter-one.css');
.hero{min-height:640px}.hero-content{max-width:1060px}.hero h1{font-size:clamp(47px,6.5vw,98px)}.hero .lead{max-width:730px}.hero-meta{display:flex;flex-wrap:wrap;gap:9px;margin:26px 0}.hero-meta span{font-size:11px;letter-spacing:.09em;font-weight:800;color:#daf6ef;border:1px solid #7badab80;border-radius:30px;padding:6px 11px}.hero-image{background-position:center 44%;opacity:.47}.hero:after{background:linear-gradient(90deg,#071824 2%,#071824ef 38%,#07182450 100%)}.reading-layout{grid-template-columns:240px minmax(0,840px)}.prose-section{padding-top:44px}.prose-section h2{max-width:850px}.prose-section code{font-size:.9em;color:#116b63;background:#e9f1ed;padding:2px 5px;border-radius:4px}.prose-section .pull{font:700 clamp(28px,3.5vw,42px)/1.22 'Space Grotesk';letter-spacing:-.04em;border-left:5px solid #54bfae;padding:12px 25px;margin:32px 0}.grid-nat{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:32px 0}.nat-card{border:1px solid #dce7e2;border-radius:10px;background:#eff4ef;padding:20px 6px;text-align:center;min-width:0}.nat-card .digit{font:700 15px 'Space Grotesk';color:#47776c}.nat-card code{display:block;margin-top:10px;overflow-wrap:anywhere;background:transparent;color:#153b38;font-size:clamp(12px,1.35vw,17px)}.note{margin:28px 0;background:#122735;color:#d5f5ec;border-radius:9px;padding:24px;font:16px/1.8 ui-monospace,SFMono-Regular,Consolas,monospace}.note code{color:#d5f5ec;background:transparent;padding:0}.prose-section .tip{padding:20px 24px;background:#e8f4ed;border-left:4px solid #5ab7a2;border-radius:6px;margin:28px 0}.prose-section details{border:1px solid #d9e6df;padding:15px 18px;border-radius:9px;background:#eff4ef;margin:20px 0}.prose-section summary{cursor:pointer;font-weight:700}.playground-section{padding-bottom:80px}.lab{background:#eff4ef;border:1px solid #d4e6dc;border-radius:12px;padding:clamp(18px,3vw,32px);margin-top:20px}.lab .eyebrow{color:#087f71}.lab h2{font-size:clamp(31px,4vw,50px);margin:10px 0 17px}.lab-intro{color:#465e5b;line-height:1.7}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:26px 0 23px}.tabs button{border:1px solid #aac7bd;border-radius:25px;background:white;color:#215e55;padding:10px 16px;cursor:pointer;font-size:13px;font-weight:800}.tabs button[aria-selected="true"]{background:#0b756b;color:white;border-color:#0b756b}.workspace{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);gap:18px}.panel{min-width:0}.panel label,.panel h3{display:block;margin:0 0 8px;font-size:14px;font-weight:800}.editor,.query{display:block;width:100%;font:14px/1.65 ui-monospace,SFMono-Regular,Consolas,monospace;background:#122735;border:1px solid #36515c;color:#f2faf7;border-radius:7px;padding:14px;resize:vertical;tab-size:2}.editor{min-height:275px}.query{min-height:65px}.output{background:#122735;color:#d6f7ef;white-space:pre-wrap;overflow:auto;min-height:140px;max-height:300px;border-radius:7px;padding:15px;font:14px/1.7 ui-monospace,SFMono-Regular,Consolas,monospace}.actions{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.btn{cursor:pointer;border:1px solid #b2cbc2;border-radius:7px;background:white;color:#166c60;font:800 13px 'DM Sans',sans-serif;padding:11px 14px}.btn.primary{color:white;background:#0b766b;border-color:#0b766b}.btn:disabled{opacity:.48;cursor:not-allowed}.status{font-size:12px;line-height:1.5;color:#5a7770;min-height:20px}.challenge{background:#fff;border:1px solid #d4e5dc;border-radius:8px;padding:21px;margin-top:24px}.challenge h3{font-size:22px;margin:0 0 8px}.challenge p{font-size:15px;line-height:1.7}.feedback{font-size:14px;white-space:pre-wrap;min-height:22px}.feedback.ok{color:#116b4f}.feedback.bad{color:#a8392c}.lab .tip{background:#e7f3ed;color:#2f655d;border-left:3px solid #0d8d7c;padding:12px 16px;border-radius:4px}.lab .tip[hidden]{display:none}.prose-section a{font-weight:700}.prose-section a:hover{color:#07584e}button:focus-visible,textarea:focus-visible{outline:3px solid #e9a33e;outline-offset:3px}#mission-intro{font-size:16px;line-height:1.65}#mission-panel{min-width:0}@media(max-width:1100px){.reading-layout{grid-template-columns:200px minmax(0,1fr);gap:35px}.workspace{grid-template-columns:1fr}}@media(max-width:900px){.reading-layout{display:block}.hero{min-height:590px}.hero-content{padding:75px 28px}}@media(max-width:560px){.hero{min-height:620px}.hero h1{font-size:clamp(44px,11.5vw,66px)}.grid-nat{grid-template-columns:repeat(2,minmax(0,1fr))}.tabs button{width:100%;text-align:left}.lab{padding:16px}.prose-section .pull{padding-left:17px}}
/* Sudoku chapter: visual continuity with the Natural Numbers chapter */
.sudoku-hero{background:#112734;min-height:620px;position:relative;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr);align-items:center;gap:32px;padding-right:5vw}
.sudoku-hero .hero-content{position:relative;z-index:1}.sudoku-hero h1{font-size:clamp(3.4rem,6.4vw,6.7rem)}.hero-sudoku{display:flex;flex-direction:column;align-items:center;gap:18px;transform:rotate(3deg);filter:drop-shadow(0 20px 22px rgba(0,0,0,.25))}.hero-sudoku-grid{display:grid;grid-template-columns:repeat(9,1fr);background:#eeeadd;border:4px solid #a4d2bd;width:min(100%,360px);aspect-ratio:1}.hero-cell{display:grid;place-items:center;background:#f6f5ed;color:#183642;font-size:clamp(.7rem,1.4vw,1.1rem);font-weight:700;border-right:1px solid #c4cfc8;border-bottom:1px solid #c4cfc8}.hero-cell:nth-child(3n){border-right:2px solid #163846}.hero-cell:nth-child(9n){border-right:none}.hero-cell:nth-child(n+19):nth-child(-n+27),.hero-cell:nth-child(n+46):nth-child(-n+54){border-bottom:2px solid #163846}.hero-sudoku-caption{color:#c7e2d9;font-size:14px;letter-spacing:.08em}.code-note code{white-space:normal;line-height:1.9}.sudoku-lab .lab-intro{max-width:850px}.sudoku-workspace{display:grid;grid-template-columns:minmax(230px,.77fr) minmax(320px,1.23fr);gap:28px}.sudoku-board-column{min-width:0}.sudoku-editor-column{min-width:0}.board-title,.board-actions{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px}.board-title span{font-size:12px;color:#617b79}.sudoku-board{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));border:3px solid #183642;aspect-ratio:1;background:white}.sudoku-cell{border:0;border-right:1px solid #c8d4d0;border-bottom:1px solid #c8d4d0;display:grid;place-items:center;font-weight:700;font-size:clamp(.9rem,1.5vw,1.5rem);color:#153341;background:#fff}.sudoku-cell.given{background:#edf4ee;color:#0d7566}.sudoku-cell.solution{color:#273949;font-weight:600}.sudoku-cell:nth-child(3n){border-right:3px solid #183642}.sudoku-cell:nth-child(9n){border-right:0}.sudoku-cell:nth-child(n+19):nth-child(-n+27),.sudoku-cell:nth-child(n+46):nth-child(-n+54){border-bottom:3px solid #183642}.sudoku-cell:nth-child(n+73){border-bottom:0}.sudoku-editor-column label{display:block;font-weight:700;margin:7px 0}.sudoku-code{height:380px;min-height:330px;font-size:13px;line-height:1.55}.sudoku-editor-column .query{min-height:84px}.sudoku-editor-column .output{min-height:160px;white-space:pre-wrap;overflow-wrap:anywhere;max-height:290px;overflow:auto}.lab-status{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:#e2eee8;padding:10px 14px;border-radius:8px;margin-bottom:18px}.lab-status small{color:#516e67}.engine-dot{width:11px;height:11px;background:#a7b1b0;border-radius:50%;display:inline-block}.engine-dot.ok{background:#188e69}.engine-dot.bad{background:#d05c4c}.mission-cards{display:grid;gap:18px}.mission{background:#f2f6f2;border-left:4px solid #64baa7;padding:18px 22px;border-radius:8px}.mission small{color:#31796b;font-weight:800}.mission h3{margin:8px 0}.lab-tip{padding:14px 0;color:#51716a;font-size:14px}.sudoku-lab a{color:#087969}.sudoku-board-column .status{font-size:13px}.sudoku-editor-column .actions{flex-wrap:wrap}.sudoku-editor-column .actions .btn{min-height:42px}.source-links{font-size:15px}
@media(max-width:960px){.sudoku-hero{grid-template-columns:1fr;padding:5rem 6vw 3rem}.hero-sudoku{transform:none}.hero-sudoku-grid{width:290px}.sudoku-workspace{grid-template-columns:1fr}.sudoku-board{max-width:420px}.sudoku-hero .hero-content{padding:0}}
@media(max-width:560px){.sudoku-hero{padding:4rem 5vw 3rem}.sudoku-hero h1{font-size:3.4rem}.hero-sudoku-grid{width:245px}.sudoku-cell{font-size:1rem}.sudoku-lab{padding:16px}.sudoku-code{font-size:12px}}
