
.vl3d{background:#113335;color:#FDFBF3;padding:clamp(44px,5vw,80px) clamp(16px,3vw,48px);font-family:'Poppins',system-ui,sans-serif;width:100vw;max-width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);overflow-x:hidden;}
.vl3d *{box-sizing:border-box;}
.vl3d-wrap{max-width:1720px;margin:0 auto;}
.vl3d-head{text-align:center;margin-bottom:clamp(28px,4vw,48px);}
.vl3d-eyebrow{font:500 11px/1 'IBM Plex Mono',monospace;letter-spacing:.28em;text-transform:uppercase;color:#C9A227;margin-bottom:16px;}
.vl3d-head h2{font-size:clamp(24px,3.4vw,38px);font-weight:300;letter-spacing:-.02em;margin:0;color:#FDFBF3;}
.vl3d-head h2 b{font-weight:600;}
.vl3d-head p{margin:14px auto 0;max-width:60ch;font-size:14.5px;font-weight:300;line-height:1.7;color:rgba(250,249,244,.62);}
.vl3d-grid{display:grid;grid-template-columns:minmax(0,2.6fr) minmax(340px,0.9fr);gap:clamp(18px,2vw,28px);align-items:stretch;}
.vl3d-stage{position:relative;background:linear-gradient(180deg,#FDFBF3 0%,#F7F3E8 62%,#F7F3E8 100%);border:1px solid rgba(201,162,39,.35);border-radius:4px;height:auto;min-height:760px;overflow:hidden;}
.vl3d-stage canvas{display:block;position:absolute;inset:0;width:100%;height:100%;}
.vl3d-views{position:absolute;left:14px;top:14px;display:flex;gap:6px;}
.vl3d-views button{background:rgba(255,255,255,.86);border:1px solid rgba(18,63,58,.2);color:#113335;font:500 10px 'IBM Plex Mono',monospace;letter-spacing:.12em;text-transform:uppercase;padding:8px 13px;border-radius:3px;cursor:pointer;}
.vl3d-views button[aria-pressed='true']{background:#113335;border-color:#113335;color:#F2D479;}
.vl3d-reset{position:absolute;right:14px;top:14px;background:rgba(255,255,255,.86);border:1px solid rgba(18,63,58,.2);color:#113335;font:500 10px 'IBM Plex Mono',monospace;letter-spacing:.12em;text-transform:uppercase;padding:8px 12px;border-radius:3px;cursor:pointer;}
.vl3d-reset:hover{background:#C9A227;border-color:#C9A227;}
.vl3d-note{position:absolute;left:18px;bottom:14px;pointer-events:none;}
.vl3d-note b{display:block;font:600 12px 'IBM Plex Mono',monospace;letter-spacing:.14em;text-transform:uppercase;color:#113335;}
.vl3d-note span{display:block;margin-top:5px;font:400 10px 'IBM Plex Mono',monospace;letter-spacing:.1em;text-transform:uppercase;color:rgba(18,63,58,.5);}
.vl3d-hint{position:absolute;right:16px;bottom:14px;font:400 10.5px/1 'IBM Plex Mono',monospace;letter-spacing:.08em;color:rgba(18,63,58,.45);pointer-events:none;}
.vl3d-panel{background:rgba(250,249,244,.04);border:1px solid rgba(250,249,244,.1);border-radius:4px;padding:clamp(20px,2.4vw,28px);}
.vl3d-step{display:flex;align-items:baseline;gap:10px;margin:22px 0 11px;}
.vl3d-step:first-child{margin-top:0;}
.vl3d-no{font:500 10px 'IBM Plex Mono',monospace;color:#C9A227;letter-spacing:.1em;}
.vl3d-step h3{font-size:13px;font-weight:600;margin:0;color:#FDFBF3;}
.vl3d-step em{margin-left:auto;font-style:normal;font-size:11.5px;color:rgba(250,249,244,.62);}
.vl3d-opts{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;}
.vl3d-opts.four{grid-template-columns:repeat(4,1fr);}
.vl3d-opts button{background:transparent;border:1px solid rgba(250,249,244,.18);color:#FDFBF3;font:400 12px 'Poppins',sans-serif;padding:9px 5px;border-radius:3px;cursor:pointer;transition:.18s;line-height:1.35;}
.vl3d-opts button small{display:block;font-size:9.5px;color:rgba(250,249,244,.45);margin-top:2px;}
.vl3d-opts button:hover{border-color:rgba(201,162,39,.6);}
.vl3d-opts button[aria-pressed='true']{background:rgba(201,162,39,.16);border-color:#C9A227;color:#F2D479;}
.vl3d-opts button[aria-pressed='true'] small{color:rgba(242,212,121,.7);}
.vl3d-cats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:10px;}
.vl3d-cats button{background:transparent;border:1px solid rgba(250,249,244,.16);color:rgba(250,249,244,.7);font:500 9.5px 'IBM Plex Mono',monospace;letter-spacing:.08em;text-transform:uppercase;padding:8px 4px;border-radius:3px;cursor:pointer;transition:.18s;}
.vl3d-cats button:hover{border-color:rgba(201,162,39,.6);}
.vl3d-cats button[aria-pressed='true']{background:#C9A227;border-color:#C9A227;color:#113335;}
.vl3d-sw{display:grid;grid-template-columns:repeat(4,1fr);gap:10px 8px;}
.vl3d-sw button{display:flex;flex-direction:column;align-items:center;gap:6px;background:none;border:none;padding:0;cursor:pointer;}
.vl3d-sw button i{display:block;width:100%;height:42px;border-radius:3px;border:1px solid rgba(250,249,244,.28);transition:.18s;}
.vl3d-sw button u{font:500 9.5px 'IBM Plex Mono',monospace;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;color:rgba(250,249,244,.55);line-height:1.25;text-align:center;}
.vl3d-sw button:hover i{border-color:rgba(201,162,39,.7);}
.vl3d-sw button[aria-pressed='true'] i{border-color:#C9A227;box-shadow:0 0 0 2px rgba(201,162,39,.45);}
.vl3d-sw button[aria-pressed='true'] u{color:#F2D479;}
.vl3d-qty{display:flex;align-items:center;gap:8px;}
.vl3d-qty button{width:34px;height:34px;background:transparent;border:1px solid rgba(250,249,244,.2);color:#FDFBF3;font-size:16px;border-radius:3px;cursor:pointer;}
.vl3d-qty button:hover{border-color:#C9A227;}
.vl3d-qty input{width:78px;height:34px;background:rgba(0,0,0,.18);border:1px solid rgba(250,249,244,.2);color:#FDFBF3;text-align:center;font:500 13px 'Poppins',sans-serif;border-radius:3px;}
.vl3d-qty span{font:400 11px 'IBM Plex Mono',monospace;letter-spacing:.1em;text-transform:uppercase;color:rgba(250,249,244,.5);}
.vl3d-sum{margin-top:24px;padding-top:18px;border-top:1px solid rgba(250,249,244,.12);display:grid;grid-template-columns:auto 1fr;gap:8px 16px;font-size:12.5px;}
.vl3d-sum dt{color:rgba(250,249,244,.55);margin:0;}
.vl3d-sum dd{margin:0;text-align:right;font-weight:500;}
.vl3d-acts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:20px;}
.vl3d-acts button{padding:12px 8px;border-radius:3px;font:600 12.5px 'Poppins',sans-serif;cursor:pointer;border:1px solid #C9A227;}
.vl3d-add{background:transparent;color:#F2D479;}
.vl3d-add:hover{background:rgba(201,162,39,.16);}
.vl3d-quote{background:#C9A227;color:#113335;}
.vl3d-quote:hover{background:#C9A227;}
.vl3d-list{margin-top:18px;border-top:1px solid rgba(250,249,244,.12);padding-top:16px;}
.vl3d-list h4{font:500 10px 'IBM Plex Mono',monospace;letter-spacing:.16em;text-transform:uppercase;color:#C9A227;margin:0 0 10px;}
.vl3d-item{display:flex;gap:10px;align-items:flex-start;font-size:12px;padding:9px 0;border-bottom:1px solid rgba(250,249,244,.08);}
.vl3d-item p{margin:0;flex:1;line-height:1.5;}
.vl3d-item p b{display:block;font-weight:600;}
.vl3d-item p span{color:rgba(250,249,244,.55);font-size:11px;}
.vl3d-item button{background:none;border:none;color:rgba(250,249,244,.45);cursor:pointer;font-size:15px;line-height:1;padding:0 2px;}
.vl3d-item button:hover{color:#C9A227;}
.vl3d-empty{font-size:11.5px;color:rgba(250,249,244,.4);}
.vl3d-toast{margin-top:12px;font:400 11.5px 'Poppins',sans-serif;color:#F2D479;min-height:16px;}
.vl3d-hex{display:flex;align-items:center;gap:10px;margin-top:12px;}
.vl3d-hex label{font:500 9.5px 'IBM Plex Mono',monospace;letter-spacing:.14em;text-transform:uppercase;color:rgba(250,249,244,.5);}
.vl3d-hex input[type='color']{width:34px;height:26px;padding:0;border:1px solid rgba(250,249,244,.25);border-radius:3px;background:none;cursor:pointer;}
.vl3d-hex code{margin-left:auto;font:500 11px 'IBM Plex Mono',monospace;letter-spacing:.08em;color:#F2D479;}
.vl3d-proj{position:absolute;right:110px;top:14px;background:rgba(255,255,255,.86);border:1px solid rgba(18,63,58,.2);color:#113335;font:500 10px 'IBM Plex Mono',monospace;letter-spacing:.12em;text-transform:uppercase;padding:8px 12px;border-radius:3px;cursor:pointer;}
.vl3d-proj:hover{background:#C9A227;border-color:#C9A227;}
.vl3d-fallback{padding:28px;text-align:center;font-size:13px;color:rgba(18,63,58,.6);}
@media(max-width:1100px){.vl3d-grid{grid-template-columns:1fr;}}@media(max-width:900px){.vl3d-stage{height:440px;min-height:440px;}}

/* Responsive studio and independently readable configuration controls. */
.vl3d-grid{grid-template-columns:minmax(0,1.65fr) minmax(340px,1fr);align-items:start;gap:24px;}
.vl3d-head{text-align:left;margin-bottom:28px;max-width:800px;}
.vl3d-head h2{font-family:Poppins,system-ui,sans-serif;font-size:clamp(30px,4vw,52px);line-height:1.12;font-weight:500;}
.vl3d-head p{margin:16px 0 0;color:rgba(253,251,243,.8);max-width:62ch;}
.vl3d-stage{height:680px;min-height:0;position:sticky;top:90px;}
.vl3d-stage canvas{touch-action:pan-y;cursor:grab;}
.vl3d-stage canvas:active{cursor:grabbing;}
.vl3d-panel{max-height:680px;overflow:auto;scrollbar-width:thin;scrollbar-color:#C9A227 #113335;overscroll-behavior:contain;padding:22px;}
.vl3d-toolbar{position:absolute;top:14px;left:14px;right:14px;display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.vl3d-toolbar .vl3d-views{position:static;display:flex;gap:5px;margin-right:auto;}
.vl3d-toolbar .vl3d-proj,.vl3d-toolbar .vl3d-reset{position:static;padding:9px 10px;font-size:9px;}
.vl3d-toolbar #vl3dSpin{min-width:115px;}
.vl3d-note{left:20px;right:20px;bottom:38px;}
.vl3d-note b{font-size:13px;letter-spacing:.05em;}
.vl3d-note span{line-height:1.5;color:#22302D;}
.vl3d-hint{left:20px;right:auto;bottom:16px;color:#113335;font-size:10px;}
.vl3d button:focus-visible,.vl3d input:focus-visible,.vl3d canvas:focus-visible{outline:2px solid #F2D479;outline-offset:3px;}
.vl3d-opts button{padding:10px 8px;text-align:left;}
.vl3d-opts.four button{text-align:center;}
.vl3d-opts button small{color:rgba(253,251,243,.74);font-size:10px;}
.vl3d-opts button[aria-pressed=true] small{color:#F2D479;}
.vl3d-step em{color:rgba(253,251,243,.8);font-size:10px;}
.vl3d-sw button u,.vl3d-sum dt,.vl3d-empty,.vl3d-hex label{color:rgba(253,251,243,.78);}
.vl3d-acts button{font-size:11px;}
@media(max-width:1100px){.vl3d-grid{grid-template-columns:1fr;}.vl3d-stage{position:relative;top:auto;height:560px;}.vl3d-panel{max-height:none;overflow:visible;}}
@media(max-width:600px){.vl3d{padding:36px 16px;}.vl3d-stage{height:450px;min-height:450px;}.vl3d-toolbar{gap:5px;top:10px;left:10px;right:10px;}.vl3d-toolbar .vl3d-proj,.vl3d-toolbar .vl3d-reset{font-size:8px;padding:8px;}.vl3d-toolbar .vl3d-views{margin-right:0;}.vl3d-toolbar #vl3dSpin{min-width:100px;}.vl3d-panel{padding:18px;}.vl3d-note{left:14px;right:14px;}.vl3d-note b{font-size:11px;}.vl3d-note span{font-size:9px;}.vl3d-hint{left:14px;font-size:9px;}.vl3d-head p{font-size:13px;}}
@media(prefers-reduced-motion:reduce){.vl3d *{transition:none!important;}}

.vl3d .vl3d-toolbar button:hover,.vl3d .vl3d-toolbar button:focus{background:#C9A227;color:#113335;border-color:#C9A227;}
