@font-face{font-family:Source Serif;src:url('../fonts/SourceSerifPro-Regular.otf')}@font-face{font-family:Source Serif;src:url('../fonts/SourceSerifPro-Semibold.otf');font-weight:600}
:root{--spruce:#02463a;--tint:#386c66;--stone:#f7f5f2;--border:#d5dfda;--ink:#263934;--muted:#69625d;--surface:#fff;--radius:7px}
*{box-sizing:border-box}body{margin:0;background:var(--stone);color:var(--ink);font-family:'Segoe UI',Arial,sans-serif;font-size:14px;line-height:1.5}button,select,input{font:inherit}button,select{min-height:40px;border:1px solid var(--border);border-radius:5px;background:white;color:var(--ink)}button{padding:9px 16px;cursor:pointer;font-weight:600}button:hover{border-color:var(--tint);background:#f3f7f4}button:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid #85be00;outline-offset:3px}button[aria-pressed=true],button.primary{background:var(--spruce);color:white;border-color:var(--spruce)}button:disabled,select:disabled{opacity:.6;cursor:wait}a{color:var(--spruce)}.brand-header{display:flex;align-items:center;gap:24px;padding:20px 36px;background:white;border-bottom:1px solid var(--border);min-height:81px}.brand-header img{width:245px;height:auto;display:block}.brand-header strong{padding-left:24px;border-left:1px solid #8a9d96;font:600 25px/1.2 'Source Serif',Georgia,serif;color:var(--spruce)}.app-nav{display:flex;gap:28px;padding:0 36px;background:white;border-bottom:1px solid var(--border);overflow-x:auto}.app-nav a{padding:16px 8px 14px;white-space:nowrap;text-decoration:none;color:#3d3936;border-bottom:3px solid transparent}.app-nav a[aria-current=page]{border-bottom-color:var(--spruce);font-weight:700;color:var(--spruce)}main{padding:24px 36px 30px;max-width:1800px;margin:auto}.page-heading{margin-bottom:18px}.page-heading h1{font:600 36px/1.2 'Source Serif',Georgia,serif;color:var(--spruce);margin:0 0 4px}.page-heading p{margin:0;font-size:16px;color:var(--muted)}.viewer-layout{display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:18px;align-items:stretch}.canvas-panel{min-width:0;background:white;border:1px solid var(--border);border-radius:var(--radius);padding:7px;display:flex;flex-direction:column}.viewport{position:relative;width:100%;flex:1;min-height:565px;background:var(--stone);border-radius:4px;overflow:hidden}.viewport canvas{display:block;width:100%;height:100%;touch-action:none}.canvas-footer{padding:10px 8px 6px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.canvas-footer small{margin-left:auto;color:var(--muted);font-size:12px}.controls{padding:22px 26px;background:white;border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;gap:18px;min-width:0}.field{display:flex;flex-direction:column;gap:5px}.field label,.section-label{font-weight:700;font-size:14px;color:#292f2c}.field select{width:100%;padding:6px 10px}.height-value{margin:0;padding:8px 12px;border:1px solid #e0e3df;background:#f2f2f0;border-radius:5px;min-height:40px}.assembly-tools{border-top:1px solid #dfe4e0;padding-top:18px}.view-presets{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:16px}.view-presets button{font-size:13px;padding:8px}.slider-row{display:flex;align-items:center;gap:12px;margin-top:8px}.slider-row input{width:100%;accent-color:var(--spruce)}.slider-row output{min-width:36px;text-align:right;font-size:13px}.parts{border-top:1px solid #dfe4e0;padding-top:16px}.parts h2{font-size:14px;margin:0 0 7px}.part-list{list-style:none;padding:0;margin:0;display:grid;gap:6px}.part-list button{width:100%;text-align:left;font-weight:500;font-size:13px;display:flex;align-items:center;justify-content:space-between;padding:8px 12px;min-height:37px}.part-list button span:last-child{font-size:11px;color:var(--muted)}.part-list button[aria-pressed=true] span:last-child{color:white}.show-all{width:100%;margin-top:8px;min-height:37px;font-size:13px}.model-note{font-size:12px;color:var(--muted);margin:0}.status{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:35px;text-align:center;background:rgba(247,245,242,.94);z-index:2;color:var(--spruce);font-size:15px}.status[hidden]{display:none}.status.error{color:#872a22}.model-caption{font-size:12px;color:var(--muted);margin:14px 0 0}.help-note{font-size:12px;color:var(--muted);margin:8px 0 0}.display-tools{border-top:1px solid var(--border);padding-top:18px}.display-tools p{font-size:12px;color:var(--muted);margin:6px 0 0}[hidden]{display:none!important}.embedded main{padding:0;max-width:none}.embedded .viewport{min-height:590px}.embedded .viewer-layout{min-height:740px}.display-mode .viewport{min-height:590px}.display-mode .controls{justify-content:flex-start}.copyright{font-size:11px;color:var(--muted);margin:16px 0 0}
@media(min-width:1600px){.viewport{min-height:660px}.viewer-layout{grid-template-columns:minmax(0,1fr) 365px}}
@media(max-width:1050px){main{padding:24px}.brand-header{padding:20px 24px}.app-nav{padding:0 24px;gap:14px}.viewer-layout{grid-template-columns:minmax(0,1fr) 300px}.controls{padding:20px}.viewport{min-height:590px}.canvas-footer small{width:100%;margin:0}}
@media(max-width:760px){.brand-header{padding:18px 20px;gap:14px}.brand-header img{width:180px}.brand-header strong{font-size:18px;padding-left:14px}.app-nav{padding:0 12px;gap:12px;font-size:13px}.app-nav a{padding:12px 6px}main{padding:20px 16px}.page-heading h1{font-size:30px}.page-heading p{font-size:14px}.viewer-layout{grid-template-columns:1fr;gap:14px}.viewport,.embedded .viewport,.display-mode .viewport{min-height:410px;height:410px;flex:auto}.canvas-footer{padding:10px 4px 4px}.canvas-footer button{padding:8px 14px;font-size:13px}.canvas-footer small{font-size:11px}.controls{padding:20px;gap:14px}.part-list{grid-template-columns:1fr 1fr}.part-list button{height:100%;gap:8px}.embedded .viewer-layout{min-height:0}.embedded main{padding:0}.copyright{padding:0 4px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
.part-list{max-height:248px;overflow-y:auto;padding-right:2px}.controls{gap:16px}.model-note{font-size:11px;line-height:1.5}.canvas-panel .viewport{min-height:565px}.embedded .canvas-panel .viewport{min-height:590px}@media(max-width:760px){.part-list{max-height:none;overflow:visible;padding:0}.canvas-panel .viewport,.embedded .canvas-panel .viewport{min-height:410px}}
.part-list{max-height:202px}.controls{gap:14px}@media(max-width:760px){.part-list{max-height:none}}

main > .model-note{margin-top:5px;max-width:800px}

@media(max-width:760px){.studio-assistant-launcher{width:46px!important;height:46px!important;min-height:46px!important;padding:0!important;border-radius:50%!important;right:10px!important;bottom:10px!important}.studio-assistant-launcher span{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}}

/* Keep the WebGL drawing buffer out of intrinsic grid sizing. */
.viewport canvas{position:absolute;inset:0}

/* The combined tool keeps camera AR as an optional phone-only action. */
.page-heading{display:flex;align-items:center;justify-content:space-between;gap:24px}.phone-ar-entry{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex-shrink:0}.phone-ar-entry small{font-size:12px;color:var(--muted);text-align:right}.phone-ar-button:disabled{cursor:not-allowed;opacity:.55}@media(max-width:900px){.page-heading{align-items:flex-start;flex-direction:column;gap:14px}.phone-ar-entry{align-items:flex-start}.phone-ar-entry small{text-align:left}}
