.geometry-page{--lab-ink:#30272c;--lab-plum:#7c3453;--lab-soft:#f4ede8;max-width:1040px;margin:0 auto;padding:clamp(1rem,4vw,3rem);color:var(--lab-ink)}
.geometry-page h1{font:clamp(2.2rem,6vw,4rem)/1.04 Georgia,serif;max-width:18ch;margin:.25em 0 .35em}
.geometry-page h2{font:1.45rem/1.2 Georgia,serif}
.geometry-page p{line-height:1.6}
.geometry-page .eyebrow{font-size:.78rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--lab-plum)}
.geometry-lede{max-width:72ch;font-size:1.08rem}
.geometry-tool{display:grid;grid-template-columns:minmax(210px,260px) minmax(0,1fr);gap:1rem 1.5rem;margin:2rem 0;padding:clamp(.8rem,2.5vw,1.4rem);background:#fff;border:1px solid #ded4cd;border-radius:1rem;box-shadow:0 12px 34px #34232c10}
.geometry-controls{grid-column:1;grid-row:1 / span 3;display:flex;align-items:stretch;flex-direction:column;gap:.65rem}
.geometry-controls label{font-size:.9rem;font-weight:650;margin-top:.35rem}
.geometry-controls input[type=range]{width:100%;accent-color:var(--lab-plum)}
.geometry-controls select,.geometry-file,.geometry-secondary{font:inherit;border:1px solid #cdbfc4;border-radius:.65rem;background:#fff;color:var(--lab-ink);padding:.7rem .8rem}
.geometry-file{display:flex;gap:.6rem;flex-direction:column;cursor:pointer}
.geometry-file input{max-width:100%;font-size:.84rem}
.geometry-secondary{cursor:pointer;text-align:center;font-weight:650}
.geometry-secondary:hover,.geometry-secondary:focus-visible{border-color:var(--lab-plum);outline:2px solid #7c345344;outline-offset:2px}
.geometry-stage-wrap{position:relative;min-width:0;grid-column:2;grid-row:1 / span 2;background:#251f23;border-radius:.7rem;overflow:hidden;min-height:220px;align-self:start}
#geometry-canvas{position:relative;z-index:2;display:block;width:100%;aspect-ratio:1;object-fit:contain;touch-action:manipulation;cursor:crosshair}
#geometry-sample-preview{position:absolute;z-index:1;inset:0;width:100%;height:100%;object-fit:cover}
#geometry-sample-preview[hidden]{display:none}
.geometry-placeholder{position:absolute;inset:0;margin:0;padding:1.25rem;display:grid;place-items:center;text-align:center;color:#fff;background:#251f23dd;line-height:1.5}
.geometry-placeholder[hidden]{display:none}
.geometry-live,.geometry-result{grid-column:2;margin:.1rem 0;padding:.8rem 1rem;background:var(--lab-soft);border-radius:.65rem;font-size:.95rem}
.geometry-photo-label{grid-column:2;margin:0;font-size:.85rem;color:#665860}
.geometry-measurements{grid-column:2;padding:0 1rem 1rem;border:1px solid #e4d9d4;border-radius:.75rem}
.geometry-measurements h2{margin-bottom:.35rem}
.geometry-measurements p{margin:.45rem 0}
.geometry-note{margin:2rem 0;padding:1rem 1.25rem;background:#f8f5f2;border-left:3px solid var(--lab-plum);max-width:76ch}
.geometry-note h2{margin:.2rem 0}
.geometry-note p{font-size:.94rem}
@media(max-width:680px){.geometry-page{padding:1rem}.geometry-tool{grid-template-columns:1fr;gap:.8rem}.geometry-controls{grid-column:1;grid-row:auto;display:grid;grid-template-columns:1fr 1fr;align-items:end}.geometry-controls>label,.geometry-controls>input,.geometry-controls>select{grid-column:1 / -1}.geometry-controls>button{min-height:44px}.geometry-stage-wrap,.geometry-live,.geometry-photo-label,.geometry-result,.geometry-measurements{grid-column:1;grid-row:auto}.geometry-stage-wrap{min-height:0;order:-1}#geometry-canvas{aspect-ratio:1}.geometry-controls input[type=file]{font-size:.78rem}}
@media(prefers-reduced-motion:reduce){.geometry-page *{scroll-behavior:auto!important}}
