:root{--paper:#f3eee4;--card:#fffdf8;--ink:#18251f;--green:#155c48;--muted:#65716b;--line:#ddd3c3;--gold:#edae49;--purple:#693b70;--blue:#276b86;--rust:#a34f35}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:"Leelawadee UI","Noto Sans Thai",system-ui,sans-serif}.shell{max-width:1280px;margin:auto;padding:20px}nav{display:flex;justify-content:space-between;margin-bottom:28px}a{color:var(--green);font-weight:800;text-decoration:none}header{display:grid;grid-template-columns:1.5fr .7fr;gap:42px;margin:25px 0 30px}h1,h2{font-family:"Noto Serif Thai","Iowan Old Style",Georgia,serif}h1{font-size:clamp(3rem,7vw,6.8rem);line-height:.88;margin:10px 0 18px;letter-spacing:-.055em}header p{max-width:760px;color:var(--muted);line-height:1.7}header aside{border-left:1px solid var(--line);padding-left:28px}header aside strong{font:700 1.8rem Georgia,serif;color:var(--green)}.eyebrow{font-size:.7rem;font-weight:900;letter-spacing:.14em;color:var(--green)}main{display:grid;grid-template-columns:330px 1fr;gap:16px}.panel{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:20px;box-shadow:0 6px 18px #3b34270b}.controls{grid-row:span 2}.controls h2,.panel h2{margin:3px 0 16px;font-size:1.8rem}.controls label{display:grid;gap:6px;margin:12px 0;font-size:.75rem;font-weight:850;color:var(--green)}input,select,button{width:100%;padding:11px;border:1px solid var(--line);border-radius:10px;background:#fff;font:inherit}.pair{display:grid;grid-template-columns:1fr 1fr;gap:8px}fieldset{display:grid;gap:8px;margin:16px 0;padding:13px;border:1px solid var(--line);border-radius:12px}fieldset label{display:flex;align-items:center;gap:8px;margin:0;color:var(--ink)}fieldset input{width:auto;accent-color:var(--green)}button{border:0;background:var(--green);color:#fff;font-weight:900;cursor:pointer;box-shadow:0 4px 0 #0c3b2e}button:active{transform:translateY(3px);box-shadow:0 1px 0 #0c3b2e}button:disabled{opacity:.55;cursor:wait}.budget{padding:12px;margin:14px 0;background:#f2eadb;border-radius:10px}.budget small,.budget strong{display:block}.board-panel{min-width:0}.section-head{display:flex;align-items:start;justify-content:space-between;gap:15px}.section-head h2{margin-top:3px}.section-head>span{padding:7px 10px;border-radius:999px;background:#eee4d2;color:var(--green);font-weight:900}.board{display:grid;grid-template-columns:repeat(9,1fr);max-width:650px;aspect-ratio:1;margin:5px auto 16px;border:3px solid var(--ink);border-radius:10px;overflow:hidden}.cell{display:grid;place-items:center;position:relative;background:#fffdf8;border-right:1px solid #cfc5b5;border-bottom:1px solid #cfc5b5;font:700 clamp(1rem,2vw,1.75rem) Georgia,serif}.cell:nth-child(3n){border-right:3px solid var(--ink)}.cell:nth-child(9n){border-right:0}.cell:nth-child(n+19):nth-child(-n+27),.cell:nth-child(n+46):nth-child(-n+54){border-bottom:3px solid var(--ink)}.cell.clue{background:#eee5d5;color:#17241e}.cell.missing{color:#9e8e76}.cell.solved{background:#e5f2ec;color:var(--green)}.prime-proof{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}.prime-proof span,.prime-proof b{padding:5px 8px;border-radius:7px;background:#f0e7d8;font:700 .68rem ui-monospace,monospace}.prime-proof b{background:var(--green);color:#fff}.muted{color:var(--muted);line-height:1.6}.results,.progress,.lesson{grid-column:1/-1}.result-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.result-card{padding:14px;border:1px solid var(--line);border-radius:13px;background:#f8f4ec}.result-card b,.result-card small{display:block}.result-card strong{display:block;font:800 2rem Georgia,serif;margin:8px 0;color:var(--green)}.result-card.solved{background:#e5f2ec;border-color:#9fc8b8}.table-wrap{overflow:auto;margin-top:16px}table{width:100%;border-collapse:collapse;font-size:.78rem}th,td{text-align:left;padding:10px;border-bottom:1px solid var(--line)}th{color:var(--green)}td button{width:auto;padding:6px 10px;box-shadow:none}.chart-wrap{overflow:auto}#chart{min-width:720px;width:100%;height:auto;background:#fbf8f1;border-radius:12px}.legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:10px}.legend span{font-size:.75rem;font-weight:800}.legend i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px}.lesson{display:grid;grid-template-columns:1fr 1fr;gap:28px}.lesson p{color:var(--muted);line-height:1.7}.lesson code{color:var(--purple);font-weight:800}#status{font-size:.75rem;color:var(--muted)}@media(max-width:850px){header,main,.lesson{grid-template-columns:1fr}.controls{grid-row:auto}.results,.progress,.lesson{grid-column:auto}.result-cards{grid-template-columns:1fr 1fr}h1{font-size:3.4rem}}@media(max-width:520px){.shell{padding:12px}.panel{padding:14px;border-radius:15px}.result-cards{grid-template-columns:1fr}.pair{grid-template-columns:1fr}.cell{font-size:1rem}header aside{border-left:0;border-top:1px solid var(--line);padding:18px 0 0}}
.mo-archive-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.mo-archive-groups article{padding:16px;border:1px solid var(--line);border-radius:14px;background:#f8f3e9}.mo-archive-groups h3,.mo-archive-groups p{margin:0 0 9px}.mo-points{display:flex;flex-wrap:wrap;gap:7px}.mo-points button{display:grid;grid-template-columns:auto auto auto auto auto;align-items:baseline;gap:3px;width:auto;padding:7px 9px;border-radius:10px;background:#fff;border:1px solid #b9aa91;color:var(--green);box-shadow:none}.mo-points button:hover,.mo-points button:focus{background:#e7f1eb;border-color:var(--green);transform:translateY(-1px)}.mo-points button b{font-size:1rem}.mo-points button span{font-size:.62rem;color:var(--muted)}.mo-points button i{font-style:normal;color:#aa6841}
.evaluation-methods{margin:13px 0;padding:13px;border:1px solid var(--line);border-radius:13px;background:#f6f0e4}.evaluation-methods legend{padding:0 6px;font-weight:900;color:var(--green)}.evaluation-methods>label{align-items:flex-start!important}.evaluation-methods span,.evaluation-methods small{display:block}.evaluation-methods small{margin-top:2px;color:var(--muted);font-weight:600;line-height:1.35}

/* Compact experiment hierarchy: puzzle → budget → objectives → algorithms → parameters → run. */
.controls>.algorithm-picker{display:block;margin:.55rem 0;padding:.15rem 0;border:0;border-radius:0}.algorithm-picker>legend{width:100%;margin:0 0 .3rem;padding:0;color:var(--green);font-size:.78rem;font-weight:900}.algorithm-group{margin:0;border-bottom:1px solid var(--line)}.algorithm-group:last-child{border-bottom:0}.algorithm-group>summary,.evaluation-picker>summary,.parameter-card>summary{cursor:pointer;padding:.58rem .1rem;color:var(--green);font-size:.75rem;font-weight:900;list-style-position:inside}.algorithm-options{display:grid;grid-template-columns:1fr 1fr;gap:.08rem .45rem;padding:0 .15rem .5rem}.controls .algorithm-options label{min-width:0;margin:0;padding:.25rem 0;border:0;background:transparent;color:var(--ink);font-size:.7rem;line-height:1.2}.evaluation-picker{margin:.35rem 0;border-bottom:1px solid var(--line)}.evaluation-picker>.evaluation-methods{display:grid;grid-template-columns:1fr 1fr;gap:.25rem .5rem;margin:0;padding:.15rem .1rem .55rem;border:0;border-radius:0;background:transparent}.controls .evaluation-methods>label{min-width:0;margin:0;padding:.2rem 0}.evaluation-methods small{font-size:.64rem}.controls>.budget{margin:.5rem 0;padding:.65rem .75rem}.parameter-card{margin:.4rem 0;border:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);border-radius:0;background:transparent}.parameter-card>.parameter-grid{padding:.25rem 0 .65rem}.parameter-grid>fieldset{margin:.35rem 0;padding:.65rem}.controls #run{margin-top:.65rem}.controls .obvious-toggle{margin:.45rem 0}.controls>h2{margin-bottom:.7rem}@media(max-width:520px){.algorithm-options,.evaluation-picker>.evaluation-methods{grid-template-columns:1fr}}
.objective-functions>summary{list-style:none!important;cursor:default!important}.objective-functions>summary::-webkit-details-marker{display:none}.objective-functions>summary b,.objective-functions>summary small{display:block}.objective-functions>summary b{font-size:.8rem}.objective-functions>summary small{margin-top:.15rem;color:var(--muted);font-size:.64rem;font-weight:600}.objective-functions>.evaluation-methods{padding-top:.3rem}

/* Stable fallback layout: no JavaScript reconstruction of control groups. */
.controls>fieldset{display:grid!important;grid-template-columns:1fr 1fr;gap:.2rem .55rem;margin:.65rem 0;padding:.65rem .7rem;border:0!important;border-top:1px solid var(--line)!important;border-bottom:1px solid var(--line)!important;border-radius:0!important;background:transparent!important}.controls>fieldset>legend{grid-column:1/-1;padding:0 .25rem;color:var(--green);font-size:.78rem;font-weight:900}.controls>fieldset>label{min-width:0;margin:0!important;padding:.22rem 0!important;border:0!important;background:transparent!important;font-size:.69rem!important;line-height:1.2}.controls>.evaluation-methods{grid-template-columns:1fr 1fr!important}.controls>.evaluation-methods>label{align-items:flex-start!important}.algorithm-family-label{grid-column:1/-1;margin:.35rem 0 0;padding-top:.4rem;border-top:1px dashed var(--line);color:#9c3f45;font-size:.7rem;font-weight:900}.controls>.algorithm-picker,.controls>.evaluation-picker{display:none!important}@media(max-width:520px){.controls>fieldset,.controls>.evaluation-methods{grid-template-columns:1fr!important}}
