/* Fixed hit area: only the inner wireframe changes shape. */
.btn-advanced-entry{position:relative;display:inline-block;width:194px;height:52px;flex-shrink:0;vertical-align:middle;padding:0;border:0;border-radius:9px;background:transparent;color:#dff5e7;cursor:pointer;perspective:560px;isolation:isolate}
.adv-entry-object{position:absolute;left:50%;top:3px;width:194px;height:46px;margin-left:-97px;transform-style:preserve-3d;animation:adv-entry-fold 14s ease-in-out infinite}
.adv-entry-face{position:absolute;inset:0;border:1px solid #80bf9e;border-radius:8px;background:rgba(16,40,30,.94);box-shadow:0 0 12px #74bd9820;backface-visibility:visible}
.adv-entry-front{animation:adv-entry-front 14s ease-in-out infinite}
.adv-entry-side{opacity:0;animation:adv-entry-depth 14s ease-in-out infinite;background:rgba(20,48,36,.3);border-color:#438b65;border-radius:2px}
.adv-entry-back{transform:rotateY(180deg) translateZ(23px)}.adv-entry-right{transform:rotateY(90deg) translateZ(23px)}.adv-entry-left{transform:rotateY(-90deg) translateZ(23px)}.adv-entry-top{transform:rotateX(90deg) translateZ(23px)}.adv-entry-bottom{transform:rotateX(-90deg) translateZ(23px)}
.adv-entry-glyph{position:absolute;left:12px;top:11px;width:22px;height:22px;color:#a2e1bc}
.adv-entry-copy{position:absolute;left:46px;top:6px;width:138px;text-align:left;white-space:nowrap;animation:adv-entry-copy 14s ease-in-out infinite}
.adv-entry-copy strong{display:block;font-size:12px;line-height:1.6;font-weight:700;color:#e0f6e6}.adv-entry-copy small{display:block;font-size:9px;line-height:1.4;color:#b5d4c1;letter-spacing:.04em}
.btn-advanced-entry:hover .adv-entry-object,.btn-advanced-entry:focus-visible .adv-entry-object,.btn-advanced-entry:hover .adv-entry-face,.btn-advanced-entry:focus-visible .adv-entry-face,.btn-advanced-entry:hover .adv-entry-copy,.btn-advanced-entry:focus-visible .adv-entry-copy{animation:none}
.btn-advanced-entry:hover .adv-entry-front{border-color:#b9f2ce;background:#1a4832;box-shadow:0 0 14px #76c59b35}
.btn-advanced-entry:focus-visible{outline:3px solid #417d60;outline-offset:4px}
body:has(dialog[open]) .btn-advanced-entry *, .workspace[inert] .btn-advanced-entry *{animation-play-state:paused}
@keyframes adv-entry-fold{0%,66%,96%,100%{width:194px;margin-left:-97px;transform:rotateX(0) rotateY(0)}74%,79%{width:46px;margin-left:-23px;transform:rotateX(-18deg) rotateY(-32deg)}86%{width:46px;margin-left:-23px;transform:rotateX(-18deg) rotateY(32deg)}}
@keyframes adv-entry-front{0%,66%,96%,100%{transform:translateZ(0);border-radius:8px}74%,86%{transform:translateZ(23px);border-radius:2px;border-color:#438b65;background:rgba(16,40,30,.58)}}
@keyframes adv-entry-depth{0%,69%,93%,100%{opacity:0}75%,86%{opacity:1}}
@keyframes adv-entry-copy{0%,66%,96%,100%{opacity:1;transform:translateX(0)}71%,90%{opacity:0;transform:translateX(8px)}}
@media(prefers-reduced-motion:reduce){.btn-advanced-entry *{animation:none!important}}

/* First-use guide, also available from the existing help button. */
.welcome-guide{width:850px;background:#f7f7f1;color:#263e32}
.welcome-guide .dialog-head{padding:24px 28px 16px;align-items:flex-start}.welcome-guide .eyebrow{font-size:10px;letter-spacing:.08em;color:#647a6b}.welcome-guide .dialog-head h2{font-size:26px;line-height:1.4;margin:6px 0}.welcome-guide .dialog-head p{font-size:12px;color:#69796d;margin:0;line-height:1.7}.welcome-guide .btn-icon{flex-shrink:0}
.welcome-guide #guideTitle:focus{outline:none}
.welcome-body{padding:0 28px 18px}.welcome-basics h3{font-size:13px;margin:0 0 12px;font-weight:600}.welcome-basics h3>span{font-size:10px;font-weight:500;border:1px solid #b9c7b9;border-radius:4px;padding:3px 6px;margin-right:7px;color:#54745d}
.welcome-basic-steps{list-style:none;padding:0;margin:0 0 22px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.welcome-basic-steps li{display:flex;align-items:flex-start;gap:8px}.welcome-basic-steps b{font-size:12px;font-weight:500;color:#8b9d87;line-height:1.8}.welcome-basic-steps strong{font-size:12px;line-height:1.8}.welcome-basic-steps p{font-size:11px;line-height:1.8;color:#627264;margin:3px 0 0}
.welcome-advanced{border:1px solid #527f64;border-radius:12px;overflow:hidden;background:#13291e;color:#e1f0e3;box-shadow:0 8px 22px #213a2912}
.welcome-advanced-hero{display:grid;grid-template-columns:1fr 1fr;align-items:center;padding:22px 24px 12px;gap:12px;background:radial-gradient(ellipse at 85% 20%,#274b35 0,transparent 70%)}
.welcome-3d-tag{font-size:9px;color:#9dd3ac;letter-spacing:.08em}.welcome-advanced h3{font-size:25px;line-height:1.45;letter-spacing:.04em;margin:8px 0 10px;font-weight:500}.welcome-advanced-copy p{font-size:12px;line-height:1.85;margin:0;color:#c3d7c7}.welcome-advanced-copy .welcome-optional{font-size:10px;color:#9ab7a1;margin-top:8px}
.welcome-wire-scene{margin:0;min-width:0}.welcome-wire-scene svg{display:block;width:100%;height:auto}.welcome-wire-scene figcaption{font-size:9px;text-align:center;color:#93b09b;margin-top:-5px}
.welcome-3d-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));list-style:none;padding:0;margin:10px 24px 0;border-top:1px solid #3b5a44}.welcome-3d-steps li{position:relative;padding:14px 9px 5px 0}.welcome-3d-steps li+li{padding-left:14px;border-left:1px solid #3b5a44}.welcome-3d-steps span{font-size:10px;border:1px solid #719f7c;border-radius:50%;display:inline-grid;place-items:center;width:19px;height:19px;margin-right:5px;color:#b5dcc0}.welcome-3d-steps strong{font-size:12px;font-weight:500}.welcome-3d-steps p{font-size:10px;line-height:1.8;color:#acc6b3;margin:6px 0 0}.welcome-3d-note{font-size:10px;line-height:1.8;color:#a8c4b0;margin:12px 24px 18px}.welcome-3d-note span{display:block;color:#d1dfbd;margin-top:3px}
.welcome-details{margin-top:16px;border-bottom:1px solid #d8e0d5;padding-bottom:12px}.welcome-details summary{cursor:pointer;font-size:11px;color:#54745d;line-height:1.8}.welcome-details .guide-note{padding:0;font-size:11px;line-height:1.8;margin:10px 0}.welcome-save-note{font-size:10px;line-height:1.8;color:#758273;margin:12px 0 0}
.welcome-guide .welcome-foot{padding:17px 28px;background:#ecf0e7;gap:12px}.welcome-foot>span{font-size:10px;line-height:1.8}.welcome-actions{display:flex;gap:10px;align-items:center}.welcome-actions .btn{font-size:12px;min-height:40px;white-space:nowrap}.welcome-actions .welcome-open-3d{background:#173a28;color:#d3eeda;border:1px solid #528765}.welcome-actions .welcome-open-3d:hover{background:#254e36}.welcome-guide .guide-legal-links{padding:12px 28px;margin:0;gap:8px 16px}.welcome-guide .guide-legal-links button,.welcome-guide .guide-legal-links a{font-size:9px;color:#6c7b6b}
@media(max-width:700px){.welcome-guide{max-width:calc(100% - 20px);max-height:calc(100dvh - 20px)}.welcome-guide .dialog-head{padding:20px 18px 16px}.welcome-guide .dialog-head h2{font-size:21px}.welcome-body{padding:0 18px 16px}.welcome-basic-steps{grid-template-columns:1fr;gap:10px;margin-bottom:18px}.welcome-basic-steps p{margin-top:0}.welcome-advanced-hero{padding:18px 16px 4px;gap:0;grid-template-columns:1fr}.welcome-advanced h3{font-size:23px}.welcome-wire-scene{width:min(100%,290px);justify-self:center;margin-top:2px}.welcome-3d-steps{grid-template-columns:repeat(2,minmax(0,1fr));margin:14px 16px 0}.welcome-3d-steps li+li{border-left:0;padding-left:0}.welcome-3d-steps li:nth-child(even){border-left:1px solid #3b5a44;padding-left:14px}.welcome-3d-steps li:nth-child(n+3){border-top:1px solid #3b5a44;margin-top:8px}.welcome-3d-note{margin:12px 16px 18px}.welcome-guide .welcome-foot{padding:16px 18px}.welcome-actions{width:100%;flex-direction:column-reverse;align-items:stretch;gap:8px}.welcome-actions .btn{width:100%}.welcome-guide .guide-legal-links{padding:12px 18px}.btn-advanced-entry{margin:2px 0}}

.adv3d .adv-room-name-toggle{display:flex;align-items:center;gap:9px;margin:18px 0 6px;cursor:pointer}.adv3d .adv-room-name-toggle input{width:17px;height:17px;margin:0;flex-shrink:0;accent-color:#286c54}
.adv3d{--adv-bg:#f3f3ee;--adv-paper:#fff;--adv-ink:#253b32;--adv-muted:#59675f;--adv-line:#d4dcd5;--adv-accent:#286c54;color:var(--adv-ink);background:var(--adv-bg);font-size:13px;line-height:1.65;border-color:var(--adv-line);color-scheme:light}
.adv3d *{box-sizing:border-box}.adv3d [hidden]{display:none!important}.adv3d button,.adv3d input,.adv3d select{font:inherit}.adv3d button:disabled{opacity:.45;cursor:not-allowed}.adv3d button:focus-visible,.adv3d input:focus-visible,.adv3d select:focus-visible{outline:3px solid #68a58b;outline-offset:2px}
.adv3d button{cursor:pointer}.adv3d .adv-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:var(--adv-paper);border:1px solid #aebeb3;border-radius:7px;padding:8px 12px;color:var(--adv-ink)}
.adv3d .adv-btn:hover{background:#e7eee8}.adv3d .adv-primary{background:var(--adv-accent);border-color:var(--adv-accent);color:#fff}.adv3d .adv-primary:hover{background:#1c543f}.adv3d .adv-btn[aria-pressed=true]{background:#dcebe1;border-color:#44785d;color:#214c36}
.adv3d .adv-subtle{color:var(--adv-muted);font-size:12px}.adv3d h2{font-size:23px;line-height:1.35;margin:4px 0 10px}.adv3d h3{font-size:16px;margin:0 0 8px}.adv3d p{margin:0 0 10px}.adv3d .adv-kicker{color:#3c7157;font-size:11px;letter-spacing:.12em}.adv3d .adv-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.adv3d .adv-close{border:0;background:transparent;font-size:24px;line-height:1;padding:8px;color:var(--adv-muted)}
.adv3d-intro{width:780px;padding:26px}.adv3d-intro header{display:flex;justify-content:space-between;gap:16px}.adv3d-intro .adv-source{display:grid;grid-template-columns:180px minmax(0,1fr);gap:20px;align-items:center;margin:18px 0}.adv3d-intro canvas{width:100%;height:auto;border-radius:7px;background:#16251f}.adv3d-intro strong{display:block;overflow-wrap:anywhere}.adv3d-intro ol{list-style:none;counter-reset:adv-step;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:20px 0}.adv3d-intro li{counter-increment:adv-step;border-top:2px solid #96b3a0;padding:12px 4px 0}.adv3d-intro li::before{content:'0' counter(adv-step);display:block;font-size:12px;color:#417158;margin-bottom:5px}.adv3d-intro li strong{margin-bottom:6px}.adv3d-intro footer{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:22px;padding-top:18px;border-top:1px solid var(--adv-line)}.adv3d-intro .adv-check{display:flex;gap:8px;align-items:flex-start}.adv3d-intro .adv-check input{margin-top:5px}
.adv3d-work{width:calc(100vw - 32px);max-width:1660px;height:calc(100dvh - 32px);max-height:none;overflow:hidden;padding:0}
.adv3d-layout{display:flex;flex-direction:column;height:100%;min-height:0}.adv3d-head{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:16px 24px;background:var(--adv-paper);border-bottom:1px solid var(--adv-line)}.adv3d-head h2{font-size:19px;margin:0}.adv3d-head .adv-map-name{display:block;max-width:45vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px;color:var(--adv-muted)}
.adv3d-steps{display:flex;gap:6px;padding:12px 24px;background:#e8ede7;border-bottom:1px solid var(--adv-line)}.adv3d-steps button{display:flex;align-items:center;gap:9px;flex:1;text-align:left;padding:9px 12px;border:1px solid transparent;border-radius:6px;background:transparent;color:#5d6b61;min-width:0}.adv3d-steps button b{font-size:12px;font-weight:500;border:1px solid #aebcb0;display:grid;place-items:center;width:25px;height:25px;border-radius:50%;flex-shrink:0}.adv3d-steps button[aria-current=step]{background:white;color:#234c36;border-color:#94b29d}.adv3d-steps button[data-complete=true] b{background:#357254;color:#fff;border-color:#357254}
.adv3d-body{display:grid;grid-template-columns:300px minmax(0,1fr);flex:1;min-height:0}.adv3d-sidebar{padding:24px 20px;overflow:auto;border-right:1px solid var(--adv-line);background:#fafbf7}.adv3d-sidebar section+section{margin-top:22px}.adv3d-sidebar .adv-tools{display:flex;gap:6px;flex-wrap:wrap;margin:14px 0}.adv3d-sidebar .adv-tools button{padding:6px 9px;font-size:12px}.adv3d-sidebar label.adv-field{display:grid;gap:5px;margin-top:12px;font-size:12px;color:#536158}.adv3d-sidebar input[type=text],.adv3d-sidebar input[type=number],.adv3d-sidebar select{width:100%;padding:8px 9px;border:1px solid #acbcb0;border-radius:6px;background:#fff;color:#213b2d}.adv3d-sidebar input[type=range]{width:100%;accent-color:#317c58}.adv3d-sidebar .adv-selected{padding:14px;border-radius:8px;background:#edf2eb;margin-top:14px}.adv3d-sidebar .adv-delete{border:0;background:transparent;color:#974d3a;padding:6px 0;font-size:12px;margin-top:10px}
.adv3d-list{list-style:none;padding:0;margin:12px 0;display:grid;gap:5px;max-height:210px;overflow:auto}.adv3d-list button{width:100%;text-align:left;padding:9px 10px;border:1px solid #d6ded5;border-radius:6px;background:#fff;color:#405448;display:flex;justify-content:space-between;gap:8px;align-items:center}.adv3d-list button[aria-pressed=true]{border-color:#5f916f;background:#e6efe5}.adv3d-list span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.adv3d-list small{flex-shrink:0;color:#68796a;font-size:10px}.adv3d-empty{padding:16px 0;color:#738073;font-size:12px}.adv3d-note{padding:12px;border-left:3px solid #80a68a;background:#edf2e9;margin-top:16px;font-size:12px}.adv3d-issues{list-style:none;padding:0;margin:12px 0;display:grid;gap:8px;color:#9c3f2b;font-size:12px}.adv3d-issues li{padding:9px;background:#fff1e8;border-radius:5px}
.adv3d-main{min-width:0;min-height:0;display:flex;flex-direction:column;padding:18px 22px 12px;gap:12px}.adv3d-canvas-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.adv3d-canvas-head p{margin:0;font-size:13px}.adv3d-canvas-wrap{position:relative;flex:1;min-height:180px;border:1px solid #c6d0c8;border-radius:9px;overflow:hidden;background:#16241f}.adv3d-canvas-wrap canvas{display:block;width:100%;height:100%;touch-action:none}.adv3d-canvas-wrap .adv-canvas-caption{position:absolute;left:14px;top:12px;color:#d9e7dc;background:#172b22d9;border:1px solid #597165;padding:5px 9px;border-radius:5px;font-size:11px;pointer-events:none;max-width:calc(100% - 28px)}
.adv3d-status{font-size:12px;min-height:20px;color:#4c6353}.adv3d-playbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.adv3d-playbar input{flex:1;min-width:100px;accent-color:#377d58}.adv3d-playbar output{font-variant-numeric:tabular-nums;font-size:12px;color:#536658}.adv3d-foot{padding:12px 24px;border-top:1px solid var(--adv-line);background:var(--adv-paper);display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.adv3d-foot p{margin:0;font-size:11px;color:#647164}.adv3d-foot .adv-actions{flex-wrap:nowrap}.adv3d-export-progress{width:100%;accent-color:#397e58}.adv3d-busy{font-size:12px;color:#376247}.adv3d-work[data-busy=true] .adv3d-body{pointer-events:none;opacity:.7}
@media(max-width:1000px){.adv3d-body{grid-template-columns:260px minmax(0,1fr)}.adv3d-main{padding:14px}.adv3d-head{padding:14px}.adv3d-steps{padding:10px 14px}.adv3d-steps button{padding:6px;font-size:12px;gap:6px}.adv3d-sidebar{padding:18px 14px}}
@media(max-width:700px){.adv3d-work{width:100%;height:100dvh;max-width:100%;border-radius:0;margin:0}.adv3d-head{flex-wrap:wrap;gap:8px}.adv3d-head .adv-actions{gap:5px}.adv3d-head .adv-btn{font-size:11px;padding:6px 8px}.adv3d-head .adv-map-name{max-width:80vw}.adv3d-steps{gap:0;padding:8px}.adv3d-steps button{flex-direction:column;gap:4px;text-align:center;padding:4px 2px;font-size:10px}.adv3d-body{display:flex;flex-direction:column;overflow:auto}.adv3d-main{order:-1;flex-shrink:0;height:360px;padding:10px}.adv3d-canvas-wrap{min-height:220px}.adv3d-sidebar{overflow:visible;border-right:0;padding:18px}.adv3d-list{max-height:150px}.adv3d-foot{padding:10px;gap:8px}.adv3d-foot p{max-width:40%;font-size:10px}.adv3d-foot .adv-btn{padding:7px 9px;font-size:12px}.adv3d-intro{padding:20px;max-height:calc(100dvh - 24px)}.adv3d-intro .adv-source{grid-template-columns:120px minmax(0,1fr);gap:12px}.adv3d-intro ol{grid-template-columns:1fr;gap:10px}.adv3d-intro li{padding-top:8px}.adv3d-intro li::before{display:inline;margin-right:8px}.adv3d-intro li strong{display:inline}.adv3d-intro li p{margin:4px 0}.adv3d-intro h2{font-size:20px}}
