/* stand.css — the 3D hero of an NDT Virtual Exhibition Stand page (partials/stand-3d.php + stand.js), 2026-09-13 */
.ndti-stand3d{--sg:#44A047;--sgold:#d9a521;--navy:#0b1620;--grey:#9aa7b3;position:relative;width:100vw;margin:0 calc(50% - 50vw) 0;background:#0e1a24;color:#fff}
.ndti-stand3d__stage{position:relative;width:100%;height:clamp(440px,60vh,760px);overflow:hidden;outline:none;touch-action:pan-y;user-select:none;-webkit-user-select:none;view-transition-name:ndti-stage}
.ndti-stand3d__stage:focus-visible{box-shadow:inset 0 0 0 3px var(--sg)}
.ndti-stand3d__stage:fullscreen{height:100%}
.ndti-stand3d__stage canvas{display:block;width:100%;height:100%;opacity:0;transition:opacity .8s ease}
.ndti-stand3d__stage.is-ready canvas{opacity:1}
.ndti-stand3d__stage.is-hover canvas{cursor:pointer}
.ndti-stand3d__stage.is-drag canvas{cursor:grabbing}
.ndti-stand3d__poster{position:absolute;inset:0;z-index:2;display:flex;align-items:center;justify-content:center;background:radial-gradient(120% 90% at 50% 100%,#1d4a2c 0%,#173026 38%,#0b1620 78%);background-size:cover;background-position:center;transition:opacity .6s ease}
.ndti-stand3d__poster::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,22,32,.55),rgba(11,22,32,.9));backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.ndti-stand3d__poster-in{position:relative;display:flex;align-items:center;gap:12px;font-weight:700;font-size:15px;background:rgba(11,22,32,.55);padding:12px 18px;border-radius:999px}
.ndti-stand3d__spinner{width:18px;height:18px;border-radius:50%;border:2.5px solid rgba(255,255,255,.25);border-top-color:var(--sg);animation:ndti-stand3d-spin .9s linear infinite}
@keyframes ndti-stand3d-spin{to{transform:rotate(360deg)}}
.ndti-stand3d__stage.is-ready .ndti-stand3d__poster{opacity:0;pointer-events:none}
.ndti-stand3d__stage.is-failed .ndti-stand3d__spinner{display:none}
.ndti-stand3d__back{position:absolute;left:max(16px,calc(50vw - 600px + 10px));top:16px;z-index:4;background:rgba(11,22,32,.62);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.14);color:#fff;text-decoration:none;font-weight:700;font-size:13px;padding:9px 14px;border-radius:999px;transition:background .15s ease}
.ndti-stand3d__back:hover{background:rgba(68,160,71,.85);color:#fff}
.ndti-stand3d__ui{position:absolute;right:max(16px,calc(50vw - 600px + 10px));top:16px;z-index:4;display:flex;gap:6px;background:rgba(11,22,32,.62);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.14);border-radius:14px;padding:5px}
.ndti-stand3d__btn{appearance:none;border:0;background:transparent;color:#e6edf2;font:inherit;font-weight:700;font-size:13px;line-height:1;padding:8px 11px;border-radius:9px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:background .15s ease}
.ndti-stand3d__btn:hover{background:rgba(255,255,255,.12)}
.ndti-stand3d__btn.is-on{background:var(--sg);color:#fff}
.ndti-stand3d__hint{position:absolute;right:max(16px,calc(50vw - 600px + 10px));bottom:88px;z-index:3;margin:0;font-size:12px;color:rgba(230,237,242,.7);text-shadow:0 1px 2px rgba(0,0,0,.5);pointer-events:none}
.ndti-stand3d__tip{position:absolute;z-index:5;pointer-events:none;background:rgba(11,22,32,.9);color:#fff;font-size:13px;font-weight:700;padding:7px 11px;border-radius:9px;transform:translate(-50%,calc(-100% - 14px));white-space:nowrap;box-shadow:0 8px 20px -8px rgba(0,0,0,.6)}
.ndti-stand3d__tip small{display:block;font-weight:600;opacity:.75;font-size:11px;margin-top:2px}
/* the identity card straddling the bottom edge of the stage */
.ndti-stand3d__id{--sg:#44A047;--sgold:#d9a521;--navy:#0b1620;--grey:#9aa7b3}   /* the card is a sibling of .ndti-stand3d, not a child: without its own variables the tier badge was transparent (white EXHIBITOR text on white) */
.ndti-stand3d__id{position:relative;z-index:3;margin:-76px 0 26px}
.ndti-stand3d__card{background:#fff;color:var(--navy);border-radius:22px;padding:20px 24px;display:flex;gap:20px;align-items:center;flex-wrap:wrap;box-shadow:0 24px 50px -24px rgba(11,22,32,.55);border:1px solid #e3e9ee;animation:ndti-stand3d-rise .7s cubic-bezier(.2,.8,.2,1) both}
@keyframes ndti-stand3d-rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.ndti-stand3d__logo{width:96px;height:96px;border-radius:20px;background:#fff;border:1px solid #e3e9ee;object-fit:contain;padding:8px;box-sizing:border-box;flex:0 0 auto}
.ndti-stand3d__txt{flex:1 1 360px;min-width:0}
.ndti-stand3d__kicker{font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:800;color:#57697a;display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:6px}
.ndti-stand3d__badge{display:inline-block;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;font-weight:800;padding:4px 9px;border-radius:999px;background:#16242f;color:#fff}
.ndti-stand3d__badge.is-sponsor{background:var(--sgold);color:#1d1a12}
.ndti-stand3d__badge.is-exhibitor{background:var(--sg)}
.ndti-stand3d__card h1{margin:0;font-size:clamp(24px,3vw,34px);line-height:1.1;letter-spacing:-.02em;font-weight:800;color:var(--navy)}
.ndti-stand3d__meta{margin-top:8px;font-size:13.5px;color:#57697a;font-weight:600;display:flex;flex-wrap:wrap;gap:4px 10px}
.ndti-stand3d__meta a{color:var(--navy);text-decoration:none;font-weight:700}
.ndti-stand3d__card p{margin:10px 0 0;font-size:15px;line-height:1.55;color:#33475a;max-width:70ch}
.ndti-stand3d__act{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.ndti-stand3d__act .ndti-btn{padding:12px 18px;font-size:14px}
.ndti-stand3d__act .ndti-btn--ghost{background:#f4f7f9}
.ndti-stand3d.is-entered .ndti-stand3d__card{animation-delay:.15s}
/* showcase items lit up when a poster board in the 3D stand is clicked */
.ndti-service.is-flash{animation:ndti-stand3d-flash 1.6s ease}
@keyframes ndti-stand3d-flash{0%{box-shadow:0 0 0 0 rgba(68,160,71,0)}20%{box-shadow:0 0 0 4px rgba(68,160,71,.55)}100%{box-shadow:0 0 0 0 rgba(68,160,71,0)}}
@media (max-width:760px){
  .ndti-stand3d__stage{height:clamp(380px,62vh,560px)}
  .ndti-stand3d__hint{display:none}
  .ndti-stand3d__back,.ndti-stand3d__ui{top:10px}
  .ndti-stand3d__id{margin:-40px 0 20px}
  .ndti-stand3d__card{padding:16px;gap:14px;border-radius:18px}
  .ndti-stand3d__logo{width:64px;height:64px;border-radius:14px}
  .ndti-stand3d__card p{display:none}
}
@media (prefers-reduced-motion:reduce){.ndti-stand3d__card{animation:none}.ndti-stand3d__stage canvas{transition:none}}

.ndti-stand3d__toast{position:absolute;left:50%;top:16px;z-index:6;transform:translate(-50%,-8px);background:rgba(11,22,32,.85);color:#fff;font-size:13px;font-weight:700;padding:9px 14px;border-radius:999px;opacity:0;transition:opacity .35s ease,transform .35s ease;pointer-events:none;backdrop-filter:blur(8px)}
.ndti-stand3d__toast.is-on{opacity:1;transform:translate(-50%,0)}
