:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#14110c;background:#fff;font-synthesis:none;--navy:#1f3a5f;--muted:#565e64;--line:#d8dde1}
*{box-sizing:border-box}body{margin:0}a{color:var(--navy)}button,select{font:inherit}button,select,a{touch-action:manipulation}button{min-height:44px;min-width:44px;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--navy);cursor:pointer;padding:8px 10px}button:hover{border-bottom-color:var(--navy)}button:focus-visible,select:focus-visible,a:focus-visible,summary:focus-visible{outline:none;box-shadow:inset 0 -3px var(--navy)}.masthead{max-width:1600px;margin:auto;padding:22px 4%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:18px}.masthead a{font-family:"Iowan Old Style",Palatino,Georgia,serif;font-size:23px;text-decoration:none;font-weight:600;min-height:44px;display:flex;align-items:center}.masthead span{font-size:13px;color:var(--muted)}main{max-width:1600px;margin:auto;padding:26px 4% 40px}.intro{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:24px}h1,h2{font-family:"Iowan Old Style",Palatino,Georgia,serif;font-weight:400;letter-spacing:-.025em}h1{font-size:clamp(32px,4vw,50px);margin:0;line-height:1.12}.intro p{color:var(--muted);margin:0;font-size:16px}.studio{display:grid;grid-template-columns:minmax(230px,290px) minmax(0,1fr);gap:30px}.selection{min-width:0}.selection label{display:block;font-size:14px;color:var(--muted);margin-bottom:10px}select{width:100%;min-height:48px;color:var(--navy);background:#fff;border:0;border-bottom:2px solid var(--navy);border-radius:0;padding:8px 24px 8px 0;font-size:16px;text-overflow:ellipsis}h2{font-size:31px;margin:27px 0 12px;line-height:1.14}.selection p{line-height:1.65;font-size:16px;color:var(--muted);margin:10px 0 18px}.selection .preview-note{font-size:13px;border-top:1px solid var(--line);padding-top:18px;margin-top:28px}.selection nav{display:flex;flex-wrap:wrap;gap:10px 16px}.selection nav button{padding-left:0;padding-right:0;text-align:left}.selection nav button[aria-pressed="true"]{border-bottom:2px solid var(--navy);font-weight:600}.model-view{min-width:0}#stage{width:100%;height:min(69vh,760px);min-height:410px;background:#e8edf0;position:relative;overflow:hidden}#stage canvas{display:block;width:100%;height:100%;touch-action:none}#loading{position:absolute;inset:0;margin:0;display:flex;align-items:center;justify-content:center;color:var(--navy);padding:24px;text-align:center}#loading[hidden]{display:none}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding:9px 0}.toolbar span{color:var(--muted);font-size:13px}.toolbar>div{display:flex;gap:10px;flex-wrap:wrap}.status{min-height:20px;color:var(--muted);font-size:13px;margin:8px 0}details{border-top:1px solid var(--line);padding-top:14px;margin-top:24px;font-size:14px;color:var(--muted);line-height:1.7}summary{color:var(--navy);cursor:pointer;min-height:44px;max-width:max-content}details p,details ul{max-width:85ch}details li{margin:8px 0;overflow-wrap:anywhere}#geometry{font-variant-numeric:tabular-nums;font-size:12px}.model-view:fullscreen{background:#fff;padding:16px;display:flex;flex-direction:column}.model-view:fullscreen #stage{height:calc(100vh - 95px);min-height:0;flex:1}
@media(max-width:760px){.masthead{padding:10px 5%;gap:14px}.masthead a{font-size:20px}.masthead span{font-size:11px;max-width:85px;text-align:right}main{padding:20px 5%}.intro{margin-bottom:20px}.intro p{font-size:15px}.studio{display:flex;flex-direction:column;gap:16px}.selection label{display:none}.selection h2{font-size:28px;margin:20px 0 8px}.selection p{font-size:15px;margin:0 0 8px;line-height:1.5}.selection .preview-note{display:none}.selection nav{gap:4px 18px}#stage{height:54vh;min-height:355px;max-height:610px}.toolbar{gap:3px}.toolbar>div{gap:8px;justify-content:space-between;width:100%}.toolbar span{padding-top:5px}.toolbar button{font-size:14px}.status{font-size:12px}details{margin-top:20px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}
