.cat-app{width:min(var(--max),calc(100% - 32px));margin:0 auto 2rem;display:grid;gap:1rem;color:var(--text);font-variant-numeric:tabular-nums}.cat-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr);gap:1rem;align-items:start}.cat-app .panel-line{padding:1.1rem;min-width:0}.cat-app h2{font-size:clamp(1.05rem,1.7vw,1.35rem);line-height:1.4;margin:.3rem 0 .9rem}.cat-app p,.cat-app li{line-height:1.65;color:var(--muted)}.cat-app .eyebrow{font-size:.7rem;color:var(--green);margin:0}.cat-canvas-wrap{position:relative;border:1px solid var(--line);background:#061012}.cat-canvas-wrap canvas{display:block;width:100%;height:410px;touch-action:none;cursor:grab}.cat-app :focus-visible{outline:2px solid var(--cyan);outline-offset:3px}.cat-fallback{position:absolute;inset:0;padding:1rem;background:#061012;overflow:auto}.cat-app [hidden]{display:none!important}.cat-help{font-size:.76rem;margin:.6rem 0}.cat-control{display:grid;gap:.3rem;margin:.8rem 0;color:var(--text);font-size:.85rem}.cat-control>span{display:flex;justify-content:space-between;gap:.5rem}.cat-control output{color:var(--cyan)}.cat-control input,.cat-control select{width:100%;min-width:0;min-height:44px;accent-color:var(--cyan)}.cat-control select{background:#0a1719;color:var(--text);border:1px solid var(--line);padding:.5rem}.cat-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin:.8rem 0}.cat-actions .button{flex:1;min-height:44px;font-size:.76rem;border-radius:0}.cat-status{border-left:2px solid var(--cyan);padding:.55rem;font-size:.85rem;min-height:48px}.cat-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem;margin:0}.cat-metrics>div{min-width:0;border:1px solid var(--line);padding:.75rem;background:#071113}.cat-metrics dt{color:var(--muted);font-size:.75rem}.cat-metrics dd{margin:.3rem 0 0;overflow-wrap:anywhere;font-size:1rem;color:var(--cyan)}.cat-notes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.cat-equation{font: .85rem/1.8 ui-monospace,monospace;color:var(--amber)!important;overflow-wrap:anywhere}.cat-app pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:28rem;overflow:auto;font-size:.8rem;line-height:1.65}.cat-app summary,.cat-download{display:block;min-height:44px;padding:.7rem;color:var(--cyan);cursor:pointer}.cat-app .cat-both{white-space:pre-line;color:var(--text);font-size:.84rem}.cat-app .cat-key{color:var(--amber);font-size:.8rem}.cat-app .chamber-status{margin:.7rem 0}.cat-app .chamber-status dd{overflow-wrap:anywhere}.cat-app ol{padding-left:1.3rem}.cat-app .cat-route{font-size:.72rem;color:var(--green)}@media(max-width:900px){.cat-layout{grid-template-columns:1fr}.cat-canvas-wrap canvas{height:400px}}@media(max-width:620px){.cat-app{width:calc(100% - 22px);gap:.7rem}.cat-app .panel-line{padding:.85rem}.cat-canvas-wrap canvas{height:300px}.cat-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.cat-notes{grid-template-columns:1fr}.cat-control>span{flex-wrap:wrap}.cat-actions .button{min-width:100px}.cat-app h2{font-size:1.05rem}}
body.page-catenoid-minimal-surface-observatory .lab-hero h1{font-size:clamp(2rem,4vw,3.15rem);line-height:1.12;letter-spacing:-.02em} @media(max-width:620px){body.page-catenoid-minimal-surface-observatory .lab-hero h1{font-size:clamp(1.75rem,7vw,2rem);line-height:1.25}}
