.pv-page{--pv-accent:#7136de;--pv-ink:var(--bi-ink,#20232a);max-width:1440px;margin:auto;padding:120px 32px 70px;color:var(--pv-ink);font-family:Inter,system-ui,sans-serif}.pv-intro{display:flex;align-items:end;justify-content:space-between;gap:32px;margin-bottom:30px}.pv-intro h1{font-size:clamp(30px,4vw,52px);line-height:1.06;letter-spacing:-.045em;margin:12px 0 0;max-width:760px}.pv-intro p{font-size:16px;line-height:1.65;max-width:420px;margin:0}.pv-overline{font-size:11px;letter-spacing:.15em;font-weight:650;color:var(--pv-accent)}.pv{--pv-accent:#7136de;color:#20232a;background:#fff;border:1px solid #dcdfe6;border-radius:16px;overflow:hidden;font:14px/1.45 Inter,system-ui,sans-serif;position:relative;isolation:isolate}.pv *{box-sizing:border-box}.pv [hidden]{display:none!important}.pv button,.pv select,.pv input{font:inherit}.pv button{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid #dcdfe6;border-radius:9px;background:#fff;color:#20232a;min-height:40px;padding:9px 12px;cursor:pointer;line-height:1.2;touch-action:manipulation;text-decoration:none;box-shadow:none;transition:background .15s,color .15s}.pv button::before,.pv button::after{content:none}.pv button:hover{background:#eee8fc;color:#5525aa}.pv button[aria-pressed=true],.pv button[aria-expanded=true]{color:#6431c3;background:#eee6fc;border-color:#cdb9ee}.pv button:focus-visible,.pv canvas:focus-visible,.pv input:focus-visible,.pv select:focus-visible,.pv summary:focus-visible{outline:3px solid #8b4dff;outline-offset:3px}.pv button:disabled{opacity:.45;cursor:default}.pv button.pv-primary{background:#7136de;border-color:#7136de;color:#fff;font-weight:600;min-height:46px;padding:12px 18px}.pv button.pv-primary:hover{background:#5c26c0}.pv svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.pv-top{height:74px;display:flex;align-items:center;justify-content:space-between;padding:12px 20px;gap:16px;border-bottom:1px solid #e2e4e9;background:#fff;position:relative;z-index:5}.pv-identity{display:flex;gap:14px;align-items:center;min-width:0}.pv-identity strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600}.pv-mark{width:28px;height:28px;position:relative;flex-shrink:0;display:inline-block}.pv-mark i{width:20px;height:20px;position:absolute;left:0;top:0;background:#ff653f}.pv-mark i+i{background:#8b4dff;left:8px;top:8px;mix-blend-mode:multiply}.pv-top-actions{display:flex;gap:8px;align-items:center;flex-shrink:0}.pv-top-actions .pv-primary span{font-size:10px;opacity:.8;margin-left:12px}.pv-stage{position:relative;height:660px;min-height:400px;background:#edf0f5;overflow:hidden}.pv-stage>canvas{position:absolute;inset:0;display:block;width:100%;height:100%;touch-action:none}.pv-empty{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:26px;background:radial-gradient(ellipse at 50% 40%,#fff 0%,#f2f3f7 70%);pointer-events:none}.pv-empty>*{pointer-events:auto}.pv-empty h2{font-size:clamp(26px,3vw,39px);line-height:1.16;letter-spacing:-.03em;font-weight:600;margin:18px 0 12px;color:#20232a}.pv-empty p{margin:0 0 22px;color:#646b7a;font-size:15px;line-height:1.6}.pv-demo-choices{display:flex;gap:12px;align-items:stretch;justify-content:center;flex-wrap:wrap;margin-top:34px;max-width:570px}.pv-demo-choices>span{width:100%;font-size:12px;color:#737b8c;margin-bottom:4px}.pv-demo-choices button{flex:1;min-width:210px;justify-content:start;text-align:left;min-height:72px;padding:12px 18px;background:#ffffffd9}.pv-demo-choices svg{width:50px;height:42px;color:#7345b9;margin-right:5px}.pv-tools{position:absolute;z-index:4;left:50%;transform:translateX(-50%);bottom:18px;display:flex;gap:4px;padding:6px;border:1px solid #dce0e7;background:#fffffff5;border-radius:14px;box-shadow:0 5px 22px #1c254214;max-width:calc(100% - 32px);overflow-x:auto;scrollbar-width:thin;overscroll-behavior:contain}.pv-tools button{border:0;flex-direction:column;gap:5px;font-size:10px;min-width:64px;padding:9px 8px;white-space:nowrap;background:transparent}.pv-tools svg{width:22px;height:22px}.pv[data-loaded=false] .pv-tools{display:none}.pv-bottom{display:flex;justify-content:space-between;align-items:center;min-height:47px;padding:9px 18px;gap:12px;background:white;color:#626b7e;font-size:11px;border-top:1px solid #e2e4e9}.pv-bottom>div{display:flex;gap:8px}.pv-bottom button{min-height:28px;font-size:11px;padding:5px 9px;border:0;color:#6832cb}.pv-loading{position:absolute;z-index:8;inset:0;background:#f4f5f9f5;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:20px;padding:30px;text-align:center}.pv-loading>.pv-mark{margin:12px;transform:scale(1.4)}.pv-loading i{animation:pv-pulse 1.5s ease-in-out infinite alternate}.pv-loading i+i{animation-direction:alternate-reverse}.pv-loading>span:not(.pv-mark){font-size:12px;max-width:320px;color:#667085}.pv-error{position:absolute;z-index:9;left:50%;top:25px;transform:translateX(-50%);width:min(440px,calc(100% - 30px));padding:20px;background:#fff;border:1px solid #d49b9b;border-radius:12px;box-shadow:0 6px 30px #0001}.pv-error p{font-size:13px;margin:8px 0}.pv-error a{color:#7136de}.pv-panel{position:absolute;z-index:6;right:18px;top:18px;width:320px;max-width:calc(100% - 36px);max-height:calc(100% - 120px);background:#fff;border:1px solid #dce0e7;border-radius:13px;box-shadow:0 12px 45px #1c254225;overflow:hidden;display:flex;flex-direction:column}.pv-panel>header{display:flex;justify-content:space-between;align-items:center;padding:13px 15px;border-bottom:1px solid #e4e7ed;flex-shrink:0}.pv-panel h3{margin:0;font-size:16px;color:#20232a;letter-spacing:-.02em}.pv-panel>header button{padding:6px;border:0;min-height:32px}.pv-panel>header button span{display:none}.pv-panel-body{padding:16px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}.pv-panel input:not([type=range]):not([type=checkbox]),.pv-panel select{width:100%;background:#f5f6f8;border:1px solid #d8dce5;border-radius:7px;min-height:42px;padding:9px;color:#20232a}.pv-field{display:flex;flex-direction:column;gap:10px;margin-bottom:20px;color:#333b4a;font-size:13px}.pv input[type=range]{width:100%;accent-color:#7136de;min-height:32px;margin:0;cursor:pointer;touch-action:pan-y}.pv-panel .pv-inline{display:flex;gap:5px;margin:10px 0}.pv-inline button{font-size:11px;padding:6px;flex:1}.pv-inline svg{width:16px}.pv-panel details{border-bottom:1px solid #e8e9ee}.pv-panel summary{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 0;cursor:pointer;font-size:12px;font-weight:600}.pv-panel summary:before{content:'›';color:#8c7aa7;font-size:18px}.pv-panel details[open]>summary:before{transform:rotate(90deg)}.pv-panel summary>span{flex:1}.pv-panel summary button,.pv-layer-row>button:last-child{position:relative;border:0;min-width:32px;min-height:32px;padding:6px}.pv-layer-row{display:flex;align-items:center;gap:3px;padding:2px 0 2px 14px}.pv-layer-row>button:first-child{justify-content:start;text-align:left;flex:1;font-size:11px;padding:7px 3px;border:0;font-weight:400;min-height:30px}.pv-eye-slash{position:absolute;width:23px;height:1.5px;transform:rotate(45deg);background:currentColor}.pv-panel dl{margin:0}.pv-panel dt{font-size:12px;font-weight:600;margin-top:16px}.pv-panel dd{margin:6px 0 0;font-size:12px;color:#657084;line-height:1.6;overflow-wrap:anywhere}.pv-panel [data-info-name]{font-size:14px;overflow-wrap:anywhere}.pv-panel [data-info-content]>p{font-size:12px;color:#657084}.pv-choice{display:flex;flex-direction:column;gap:7px;margin-bottom:18px}.pv-choice button{justify-content:start;font-size:13px}.pv-selection{position:absolute;top:14px;left:14px;display:flex;align-items:center;flex-wrap:wrap;gap:4px;padding:6px 10px;background:#fffffff5;border:1px solid #e0dcec;border-radius:12px;z-index:4;max-width:calc(100% - 28px)}.pv-selection strong{font-size:12px;white-space:nowrap;margin-right:8px}.pv-selection button{font-size:10px;border:0;padding:7px;min-height:32px}.pv-selection svg{width:17px;height:17px}.pv-callouts{position:absolute;inset:0;pointer-events:none;z-index:3}.pv-callout{position:absolute;left:0;top:0;width:190px;pointer-events:auto;text-align:left;border-left:2px solid #7136de;padding:2px 0 2px 8px;filter:drop-shadow(0 1px 2px #fff);transition:transform .08s linear}.pv-callout button{display:block;text-align:left;font-size:12px;font-weight:600;padding:3px;border:none;border-radius:3px;min-height:25px;max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:#ffffffd9}.pv-callout button+button{font-size:10px;color:#6535ac;font-weight:500}.pv-measure{position:absolute;top:68px;left:14px;background:#fff;padding:10px 14px;border-radius:8px;z-index:4;font-size:12px;box-shadow:0 2px 12px #0001}.pv:fullscreen,.pv-expanded{width:100%;height:100%;border:0;border-radius:0;background:#edf0f5;display:flex;flex-direction:column}.pv:fullscreen .pv-stage,.pv-expanded .pv-stage{height:auto;flex:1;min-height:0}.pv:fullscreen .pv-top,.pv-expanded .pv-top{height:64px;flex-shrink:0}.pv:fullscreen .pv-bottom,.pv-expanded .pv-bottom{flex-shrink:0}.pv-expanded{position:fixed;inset:0;z-index:100000;height:100dvh}.pv-lock{overflow:hidden!important}.pv-drag:after{content:'Отпустите IFC или GLB';position:absolute;inset:6px;display:grid;place-items:center;background:#f2eafaf2;border:2px dashed #7136de;border-radius:12px;z-index:20;font-size:24px;pointer-events:none}.pv-editorial{margin-top:80px;border-top:1px solid var(--bi-line,#dddfe5);padding-top:40px;display:grid;grid-template-columns:1fr 1fr;gap:56px}.pv-editorial h2,.pv-faq h2{font-size:clamp(25px,3vw,38px);letter-spacing:-.035em;line-height:1.13;margin:0 0 24px}.pv-editorial p,.pv-editorial li,.pv-faq p{font-size:16px;line-height:1.7;color:var(--bi-muted,#626b7c)}.pv-editorial ul{padding-left:20px}.pv-editorial li{margin:12px 0}.pv-app{padding:28px;background:var(--bi-surface,#fff);border:1px solid var(--bi-line,#dddfe5);border-radius:12px}.pv-app article{padding:16px 0;border-bottom:1px solid var(--bi-line,#dddfe5)}.pv-app article:first-of-type{padding-top:0}.pv-app h3{font-size:19px;line-height:1.3;margin:8px 0}.pv-app span{color:var(--bi-accent,#7136de);font-size:11px;font-weight:600}.pv-app p{font-size:14px;margin:0}.pv-app>a{display:inline-flex;margin-top:24px;padding:14px 20px;border-radius:8px;background:#7136de;color:#fff;text-decoration:none;font-size:14px;font-weight:600}.pv-faq{max-width:850px;margin:70px auto 0}.pv-faq details{border-bottom:1px solid var(--bi-line,#dddfe5);padding:20px 0}.pv-faq summary{font-size:17px;cursor:pointer;font-weight:600}.pv-faq p{font-size:15px}.pv-links{display:flex;gap:24px;flex-wrap:wrap;margin-top:48px;font-size:14px}.pv-links a{color:var(--bi-accent,#7136de)}.pv-home-open{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px 0;margin:12px 0 26px;border-top:1px solid var(--bi-line,#dedfe6);border-bottom:1px solid var(--bi-line,#dedfe6)}.pv-home-open p{margin:0;font-size:15px;line-height:1.6}.pv-home-open a{background:#7136de;color:white!important;text-decoration:none!important;padding:14px 22px;border-radius:8px;white-space:nowrap;font-weight:600;font-size:14px}.pv-license-note{font-size:12px!important;color:var(--bi-muted,#657084)}
@keyframes pv-pulse{from{transform:translate(0,0)}to{transform:translate(5px,5px)}}
@media(max-width:760px){.pv-page{padding:100px 14px 45px}.pv-intro{display:block;margin:0 6px 24px}.pv-intro p{margin-top:18px;font-size:14px}.pv-intro h1{font-size:34px}.pv{border-radius:12px}.pv-top{height:65px;padding:9px 12px;gap:8px}.pv-top-actions .pv-primary{font-size:12px;padding:10px}.pv-top-actions .pv-primary span{display:none}.pv-identity{gap:8px}.pv-identity strong{font-size:11px;max-width:135px}.pv-mark{transform:scale(.8);width:25px}.pv-stage{height:640px;max-height:80svh;min-height:480px}.pv-empty{padding:24px 20px}.pv-empty h2{font-size:26px}.pv-empty p{font-size:13px}.pv-empty .pv-overline{font-size:9px}.pv-demo-choices{margin-top:22px;gap:8px}.pv-demo-choices button{min-width:100%;min-height:56px;padding:7px 14px;font-size:12px}.pv-demo-choices svg{height:32px;width:39px}.pv-tools{left:12px;right:12px;bottom:12px;transform:none;max-width:none;justify-content:start;border-radius:12px}.pv-tools button{min-width:54px;padding:8px 5px;font-size:9px}.pv-tools svg{width:20px;height:20px}.pv-bottom{display:block;font-size:10px;padding:10px 12px}.pv-bottom>div{margin-top:4px}.pv-panel{top:auto;bottom:86px;left:10px;right:10px;width:auto;max-width:none;max-height:55%}.pv-panel-body{padding:12px}.pv-selection{top:10px;left:10px;padding:5px;gap:2px}.pv-selection strong{font-size:10px}.pv-selection button{padding:6px}.pv-selection button span{display:none}.pv-callout{max-width:170px}.pv-callout button{max-width:155px;font-size:11px}.pv-editorial{grid-template-columns:1fr;gap:30px;margin:50px 6px 0;padding-top:30px}.pv-editorial p,.pv-editorial li{font-size:14px}.pv-app{padding:22px}.pv-faq{margin:45px 6px 0}.pv-faq summary{font-size:15px}.pv-faq p{font-size:14px}.pv-links{gap:15px}.pv-home-open{align-items:start;flex-direction:column;gap:14px}.pv-home-open a{align-self:stretch;text-align:center}.pv:fullscreen .pv-stage,.pv-expanded .pv-stage{max-height:none;min-height:0}.pv:fullscreen .pv-top,.pv-expanded .pv-top{height:55px}.pv:fullscreen .pv-bottom,.pv-expanded .pv-bottom{display:none}}
@media(max-height:550px) and (orientation:landscape){.pv:fullscreen .pv-tools,.pv-expanded .pv-tools{bottom:8px;left:8px;right:auto;transform:none}.pv:fullscreen .pv-tools button,.pv-expanded .pv-tools button{min-width:46px;padding:7px 4px}.pv:fullscreen .pv-tools span,.pv-expanded .pv-tools span{display:none}.pv:fullscreen .pv-panel,.pv-expanded .pv-panel{top:8px;bottom:60px;left:auto;right:8px;width:290px;max-height:none}.pv:fullscreen .pv-empty,.pv-expanded .pv-empty{padding:12px;flex-direction:row;gap:20px}.pv:fullscreen .pv-empty>.pv-overline,.pv-expanded .pv-empty>.pv-overline,.pv:fullscreen .pv-empty>p,.pv-expanded .pv-empty>p{display:none}.pv:fullscreen .pv-demo-choices,.pv-expanded .pv-demo-choices{margin-top:0;max-width:230px}.pv:fullscreen .pv-empty h2,.pv-expanded .pv-empty h2{font-size:22px}}
@media(prefers-reduced-motion:reduce){.pv *{animation:none!important;transition:none!important}}

/* A single file action: central before loading, header once a model is open. */
.pv[data-loaded="false"] .pv-top [data-v-action="open"]{display:none}

/* Visibility must win over flex layout from the viewer and the site theme. */
.pv .pv-callout[hidden],.pv [data-v-selection][hidden]{display:none!important}
.pv-callout-toggle{display:flex;align-items:center;gap:10px;min-height:44px;margin-bottom:8px;font-size:13px;cursor:pointer}.pv-callout-toggle input{width:18px;height:18px;accent-color:var(--pv-accent);margin:0}

.pv .pv-callout-toggle input[type=checkbox]{flex:0 0 18px;min-height:18px;padding:0;width:18px;height:18px}

.pv-selection button{flex-direction:column;gap:4px;min-width:48px;min-height:48px}.pv-selection button span{display:block;font-size:9px}.pv-selection strong{flex-basis:100%}@media(max-height:550px) and (orientation:landscape){.pv:fullscreen .pv-tools span,.pv-expanded .pv-tools span{display:block;font-size:9px}}

/* Three concise demo choices, scrollable on short mobile screens. */
.pv-demo-choices{max-width:860px}.pv-demo-choices button{flex:1 1 210px}.pv-empty{overflow-y:auto}
@media(max-width:700px){.pv-empty{justify-content:flex-start;padding-top:24px}.pv-empty h2{margin-top:10px}.pv-demo-choices{margin-top:16px;width:100%}.pv-demo-choices button{min-height:52px}.pv-tools{scrollbar-width:none}}

/* Solid annotation surfaces remain readable over both pale and dark geometry. */
.pv .pv-callout{width:196px;max-width:196px;padding:4px 10px;background:#fff;border:1px solid #dcdfe6;border-radius:10px;filter:none;transition:none}
.pv .pv-callout button{background:transparent;color:#20232a;width:100%;max-width:100%;min-height:40px;padding:7px 2px;white-space:normal;line-height:1.35;overflow-wrap:anywhere}
.pv .pv-callout button+button{color:#6431c3;font-size:12px;font-weight:600}
.pv .pv-callouts-control{position:absolute;right:12px;top:12px;z-index:4;flex-direction:column;gap:3px;width:52px;min-height:52px;padding:5px;font-size:10px}
.pv .pv-selection{max-width:calc(100% - 88px)}
.pv-panel summary{gap:3px}.pv-panel summary>span{min-width:0;overflow-wrap:anywhere}
.pv-panel summary button{min-width:40px;min-height:40px;padding:9px}
@media(pointer:coarse){.pv-panel summary button{min-width:44px;min-height:44px}.pv .pv-callout button{min-height:44px}}
@media(max-width:760px){.pv .pv-callouts-control{right:10px;top:10px}.pv .pv-selection{max-width:calc(100% - 80px)}.pv .pv-callout{max-width:180px}.pv .pv-callout button{font-size:12px}}

@media(max-width:760px){.pv .pv-selection{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));width:calc(100% - 80px)}.pv .pv-selection strong{grid-column:1/-1}.pv .pv-selection button{min-width:0;padding:6px 1px}.pv .pv-selection button span{font-size:8px;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}
