:root{color-scheme:light;--ink:#253d44;--muted:#596a6e;--line:#cdd6d5;--blue:#27637a;--paper:#fff;--wash:#f3f7f7}*{box-sizing:border-box}body{margin:0;background:#fff;color:var(--ink);font:16px/1.65 Arial,Helvetica,sans-serif}main{max-width:1280px;margin:auto;padding:40px 32px 60px}h1,h2,h3,p,figure{margin-top:0}h1,h2{font-family:Georgia,'Times New Roman',serif;font-weight:400;line-height:1.18}h1{font-size:clamp(34px,4.5vw,57px);letter-spacing:-.035em;margin-bottom:20px}h2{font-size:34px;margin-bottom:15px}h3{font-size:21px;line-height:1.25;margin-bottom:12px}p{margin-bottom:18px}.intro{font-size:19px;line-height:1.7;margin-bottom:28px}.topic-nav{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:25px 0 34px}.topic-nav summary{display:none}.nav-links{display:flex;gap:8px;flex-wrap:wrap;padding:8px 0}.nav-links a{padding:8px 14px;color:var(--ink);text-decoration:none;border-radius:3px}.nav-links a:hover{background:var(--wash)}a{color:var(--blue);text-underline-offset:4px}button,input,select{font:inherit}button,select{min-height:44px}button{cursor:pointer;border:1px solid #b7c6c8;border-radius:3px;background:white;color:var(--ink);padding:8px 13px;line-height:1.35}button:hover{background:#eaf0f1}button[aria-pressed=true]{background:#2b5261;color:white;border-color:#2b5261}button:focus-visible,a:focus-visible,summary:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid #aa7830;outline-offset:3px}input[type=range]{width:100%;accent-color:#356779;min-width:0;min-height:34px;cursor:pointer}input[type=number]{width:76px;padding:6px 8px;min-height:44px;border:1px solid #afbdc1;border-radius:3px;background:white;color:var(--ink)}input[aria-invalid=true]{border-color:#bb3428;outline:2px solid #bb3428}select{padding:6px 30px 6px 9px;border:1px solid #b7c6c8;border-radius:3px;background:white;color:var(--ink)}[hidden]{display:none!important}.small{font-size:14px;color:var(--muted)}.math{font-family:Georgia,'Times New Roman',serif;font-size:1.13em}.section{margin-top:54px;scroll-margin-top:20px}.studio{scroll-margin-top:16px;border:1px solid var(--line);background:#fff;overflow:hidden}.utility{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 20px;background:#f1f4f4;border-bottom:1px solid var(--line)}.rotation-link{display:flex;align-items:center;position:relative;gap:12px;cursor:pointer;min-height:46px}.rotation-link input{position:absolute;width:1px;height:1px;opacity:0}.switch-track{height:26px;width:44px;border-radius:18px;background:#a6b2b5;position:relative;flex-shrink:0}.switch-track:after{content:'';position:absolute;top:4px;left:4px;width:18px;height:18px;border-radius:50%;background:white;transition:transform .15s}.rotation-link input:checked+.switch-track{background:#32687b}.rotation-link input:checked+.switch-track:after{transform:translateX(18px)}.rotation-link input:focus-visible+.switch-track{outline:3px solid #aa7830;outline-offset:4px}.switch-copy{display:flex;flex-direction:column;line-height:1.5}.switch-copy strong{font-size:15px}.switch-copy small{font-size:13px;color:var(--muted)}.view-actions{display:flex;gap:8px}.view-actions button{display:flex;align-items:center;justify-content:center;gap:8px;font-size:14px;font-weight:bold}.view-actions [data-fullscreen]{background:#2b5261;color:white;border-color:#2b5261}.view-actions svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.paired-models{display:grid;grid-template-columns:1fr 1fr}.model-pane{min-width:0;padding:24px}.model-pane+.model-pane{border-left:1px solid var(--line)}.model-heading{display:flex;justify-content:space-between;gap:12px;align-items:baseline}.model-heading h2{font-size:29px;margin:0 0 8px}.model-heading p{font-size:13px;color:var(--muted);margin:0}.model-modes{display:flex;gap:6px;flex-wrap:wrap;margin:15px 0 6px}.model-modes button{font-size:13px;min-height:40px;padding:7px 11px}.viewport{height:350px;width:100%;position:relative;isolation:isolate;background:radial-gradient(ellipse at center,#f2f6f6 0,white 70%)}.viewport canvas{position:absolute;inset:0;width:100%;height:100%;touch-action:none}.fallback{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.ready .fallback{display:none}.local-panel{padding:12px 0 8px;border-top:1px solid var(--line);font-size:14px}.local-panel label{display:flex;justify-content:space-between;align-items:center;gap:14px}.range-ends{display:flex;justify-content:space-between;font-size:12px;color:var(--muted)}.view-help{font-size:13px;color:var(--muted);padding:12px 20px;background:#f8faf9;border-top:1px solid var(--line);margin:0}.dim-input{margin-top:12px}.dim-input label{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:14px;font-weight:bold}.dim-input .slider-row{display:flex;align-items:center;gap:14px}.dimension-controls{background:#f5f7f6;border-top:1px solid var(--line);padding:4px 15px 16px;margin:0 -4px}.preset-row{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px}.preset-row button{font-size:13px}.results{display:grid;grid-template-columns:1fr 1fr;margin-top:20px;gap:12px}.result{padding:16px;background:#edf4f5;border-top:3px solid #57909e;min-width:0}.result span{display:block;font-size:14px}.result strong{display:block;font-size:30px;line-height:1.35;white-space:normal}.result strong small{font-size:14px;font-weight:400}.result .math{font-size:17px;margin-top:8px}.result.cube-result{background:#fbf1e8;border-color:#b97c4f}.classification{padding:19px 22px;font-weight:bold;border-left:4px solid #ab743e;background:#fcf7ed;margin:20px 0 0}.classification.equal{border-color:#3b7663;background:#edf6ef}.unit-row{display:flex;justify-content:flex-end;align-items:center;gap:12px;margin:15px 0;font-size:14px}.fact-band{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);margin:25px 0}.fact-band>div{padding:20px;text-align:center}.fact-band>div+div{border-left:1px solid var(--line)}.fact-band strong{font-family:Georgia,serif;font-size:42px;line-height:1.2;display:block}.fact-band span{font-size:15px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:34px}.answer{padding:25px;border:1px solid var(--line);border-left:4px solid #498291}.answer h3{font-family:Georgia,serif;font-weight:400;font-size:27px}.answer p:last-child{margin-bottom:0}.formula-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px}.formula-column{padding:22px;background:#f4f7f7}.formula-column:last-child{background:#fcf6ef}.formula-row{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}.formula-row:last-child{border-bottom:0}.formula-row span{display:block}.formula-row strong{text-align:right;white-space:nowrap}.formula-row small{font-size:13px;font-weight:400}.table-wrap{border:1px solid var(--line);margin-top:25px}table{border-collapse:collapse;width:100%;table-layout:fixed}caption{font-weight:bold;text-align:left;padding:18px;background:#f3f6f5}th,td{text-align:left;padding:16px;border-bottom:1px solid var(--line);vertical-align:top}thead th{font-size:18px;background:#eef3f2}thead th:first-child{width:22%}tbody th{font-size:14px}td{font-size:15px}tr:last-child>*{border-bottom:0}.table-net{margin:0}.table-net svg{display:block;width:100%;height:auto;min-height:120px}.table-net figcaption{font-size:13px;margin-top:8px;color:var(--muted)}.table-net button{margin-top:10px;font-size:13px}.questions{display:grid;grid-template-columns:1fr 1fr;gap:0 35px}.questions details{border-bottom:1px solid var(--line);padding:16px 0}.questions summary{font-weight:bold;cursor:pointer;min-height:44px;align-content:center}.questions details p{margin:14px 0 4px}.featured{display:grid;grid-template-columns:250px 1fr;gap:38px;align-items:center;border-top:1px solid var(--line);padding-top:32px}.featured figure{margin:0}.featured img{width:100%;height:auto;display:block;border:1px solid #d9dcd4;box-shadow:0 5px 16px #253d4412}.featured h2{font-size:32px}.featured .pin{display:inline-flex;align-items:center;gap:8px;background:#ac2030;color:white;text-decoration:none;font-size:14px;font-weight:bold;padding:8px 14px;border-radius:4px}.featured .pin svg{width:17px;height:17px;fill:currentColor}.featured .image-open{display:inline-block;margin-left:17px;font-size:14px}.noscript{padding:18px;background:#fff6df}.studio:fullscreen{overflow:auto;background:#fff;max-width:none;padding:15px;width:100vw;height:100vh}.studio:fullscreen .viewport{height:calc(100vh - 340px);min-height:300px}.studio:fullscreen .dimension-controls,.studio:fullscreen .results{display:none}#status:empty{display:none}
/* The box comparison is a measured workbench with paired live answer sheets. */
.box-page .topic-title{max-width:none}.box-page .model-pane:nth-child(2) .viewport{background:radial-gradient(ellipse at center,#fbf3e8 0,white 70%)}.box-page .fact-band{background:#f8faf9}.dimension-equation{font:29px Georgia,serif;margin:20px 0;color:#315c66}.square-diagram{display:block;width:160px;height:110px;margin:8px auto 20px}
/* The polyhedra comparison is a face atlas, led by counts and duality. */
.poly-page{--blue:#326b5d;--wash:#f3f6ed;max-width:1320px}.poly-page .intro{padding-bottom:22px;border-bottom:1px solid var(--line)}.poly-page .studio{border:0;border-top:2px solid #315b50;background:#faf9f2}.poly-page .utility{background:#f0f1e9}.poly-page .model-pane{padding:25px 30px}.poly-page .viewport{height:395px;background:radial-gradient(ellipse at center,#edf1e9,transparent 70%)}.poly-page .model-pane:nth-child(2) .viewport{background:radial-gradient(ellipse at center,#f8eedf,transparent 70%)}.poly-page .view-help{background:#f0f1e9}.poly-page .model-modes button[aria-pressed=true]{background:#3d695c;border-color:#3d695c}.face-badge{width:42px;height:42px;flex-shrink:0}.poly-heading{display:flex;align-items:center;gap:13px;margin-bottom:12px}.poly-heading h2{font-size:30px;margin:0}.poly-heading p{font-size:14px;margin:3px 0 0;color:var(--muted)}.shape-counts{display:flex;justify-content:space-between;gap:12px;border-top:1px solid #cbd4ca;padding-top:16px}.shape-counts span{font-size:14px}.shape-counts b{font-family:Georgia,serif;font-size:31px;margin-right:5px}.scale-strip{display:grid;grid-template-columns:1fr 1fr;gap:30px;background:#f4f5ef;padding:24px 30px;margin-top:0}.scale-strip h3{font-family:Georgia,serif;font-size:25px;font-weight:400}.scale-strip p{font-size:14px;margin-bottom:0}.basis-buttons{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.duality-section{display:grid;grid-template-columns:.95fr 1.05fr;gap:50px;align-items:center;padding:38px 0;border-bottom:1px solid var(--line)}.duality-map{width:100%;height:auto}.duality-section button{background:#355f50;color:white;border-color:#355f50}.poly-page .formula-column{background:#edf4ed;border-top:3px solid #568879}.poly-page .formula-column:last-child{background:#fcf1e3;border-color:#bf9462}.poly-page .results{grid-template-columns:1fr 1fr}.poly-page .result{border:0;background:transparent;padding:10px 0}.poly-page .result strong{font-size:29px}.poly-page .featured{grid-template-columns:1fr 300px;background:#faf8f0;padding:35px;border:0}.poly-page .featured figure{order:2}.poly-page .featured h2{font-size:37px}
@media(max-width:1000px){main{padding:30px 22px}.model-pane,.poly-page .model-pane{padding:20px 16px}.viewport{height:300px}.poly-page .viewport{height:330px}.model-heading{display:block}.model-modes{gap:5px}.model-modes button{padding:7px 8px}.duality-section{gap:28px}.result strong{font-size:26px}.shape-counts b{font-size:27px}.shape-counts span{font-size:12px}.formula-row{gap:10px}.formula-row strong{white-space:normal}.poly-heading h2{font-size:27px}}
@media(max-width:700px){main{padding:25px 16px 40px}h1{font-size:36px;letter-spacing:-.025em}h2{font-size:29px}.intro{font-size:17px;line-height:1.7}.topic-nav{border:1px solid var(--line);border-radius:4px;margin:22px 0}.topic-nav summary{display:flex;justify-content:space-between;padding:13px 16px;font-weight:bold;cursor:pointer}.topic-nav summary:after{content:'+';font-size:23px;line-height:1}.topic-nav[open] summary:after{content:'−'}.nav-links{display:grid;grid-template-columns:1fr;padding:0 12px 12px;gap:0}.nav-links a{border-top:1px solid #e0e6e2;padding:12px 4px;min-height:46px}.utility{display:block;padding:13px 16px}.rotation-link{margin-bottom:12px}.view-actions{display:grid;grid-template-columns:1fr 1fr}.view-actions button{min-height:46px;padding:8px}.paired-models{grid-template-columns:1fr}.model-pane,.poly-page .model-pane{padding:21px 16px}.model-pane+.model-pane{border-left:0;border-top:1px solid var(--line)}.viewport,.poly-page .viewport{height:330px}.model-heading{display:flex;align-items:center}.model-heading h2{font-size:28px}.model-heading p{max-width:100px;text-align:right;line-height:1.4}.model-modes{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.model-modes button{min-height:44px;font-size:13px}.results{gap:10px}.result strong{font-size:30px}.result strong small{font-size:13px}.result{padding:14px}.unit-row{justify-content:flex-start}.classification{font-size:15px;padding:16px}.section{margin-top:40px}.fact-band>div{padding:16px 8px}.fact-band strong{font-size:34px}.fact-band span{font-size:13px}.two-col,.formula-grid,.questions,.scale-strip,.duality-section{grid-template-columns:1fr;gap:20px}.answer{padding:20px}.formula-column{padding:19px}.table-wrap{border:0}table,tbody{display:block}thead{display:flex}thead tr{display:grid;grid-template-columns:1fr 1fr;width:100%}thead th:first-child{display:none}thead th{font-size:15px;padding:14px 9px;width:auto}tbody tr{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);border-top:0}tbody th{grid-column:1/-1;background:#f3f6f4;padding:10px 12px;border-bottom:0}td{padding:13px 10px;border-bottom:0;font-size:14px;overflow-wrap:anywhere}td+td{border-left:1px solid var(--line)}caption{display:block;font-size:14px;padding:12px 0;background:white}.table-net svg{min-height:90px}.table-net figcaption{font-size:12px}.table-net button{padding:7px;font-size:12px;width:100%}.featured,.poly-page .featured{grid-template-columns:125px 1fr;gap:20px;padding:23px 0;background:white;border-top:1px solid var(--line)}.poly-page .featured figure{order:0}.featured h2,.poly-page .featured h2{font-size:25px;margin-bottom:11px}.featured p{font-size:14px;line-height:1.6;margin-bottom:12px}.featured .image-open{display:block;margin:12px 0 0;font-size:13px}.shape-counts span{font-size:14px}.shape-counts b{font-size:30px}.scale-strip{padding:22px 16px;gap:12px}.scale-strip .dim-input{margin-top:0}.duality-section{padding:28px 0}.duality-map{max-width:470px;margin:auto}.poly-page .result strong{font-size:30px}.view-help{line-height:1.7}.studio:fullscreen{padding:0}.studio:fullscreen .viewport{height:340px}.studio:fullscreen .paired-models{grid-template-columns:1fr}}
@media(max-width:370px){h1{font-size:32px}.model-heading{display:block}.model-heading p{text-align:left;max-width:none}.viewport,.poly-page .viewport{height:285px}.featured,.poly-page .featured{grid-template-columns:105px 1fr;gap:15px}.result strong{font-size:26px}.shape-counts b{font-size:26px}.shape-counts span{font-size:12px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* Match each comparison column to its solid, including the mobile headers. */
.poly-page thead th:first-child {
  background: #e9eee8;
  color: #35463e;
}
.poly-page thead th:nth-child(2) {
  background: #355f50;
  color: #ffffff;
  border-top: 4px solid #8fb1a0;
}
.poly-page thead th:nth-child(3) {
  background: #965b2f;
  color: #ffffff;
  border-top: 4px solid #d8b383;
  border-left: 2px solid #ffffff;
}
