/* Decorative opening; the app loads underneath and remains usable on failure. */
#tribo-intro{display:none;position:fixed;inset:0;z-index:2147483000;background:#0b0b0c;align-items:center;justify-content:center;pointer-events:none;user-select:none}
#tribo-intro.is-playing{display:flex;pointer-events:auto;animation:tribo-intro-exit .35s ease 1.5s forwards}
.tribo-intro-brand{display:flex;flex-direction:column;align-items:center;gap:24px;direction:ltr}
.tribo-intro-mark{position:relative;width:clamp(160px,38vw,280px);aspect-ratio:1}
.tribo-intro-mark img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.tribo-intro-line{clip-path:inset(0 100% 0 0);animation:tribo-intro-draw 1.05s cubic-bezier(.22,.61,.36,1) forwards,tribo-intro-outline-out .3s ease 1.15s forwards;filter:drop-shadow(0 0 9px #dfb96533)}
.tribo-intro-fill{opacity:0;animation:tribo-intro-fill .45s ease .8s forwards}
.tribo-intro-name{font:500 clamp(26px,5vw,38px)/1.2 Georgia,serif;letter-spacing:.22em;padding-inline-start:.22em;color:#dfb965;opacity:0;animation:tribo-intro-fill .35s ease .95s forwards}
@keyframes tribo-intro-draw{to{clip-path:inset(0 0 0 0)}}
@keyframes tribo-intro-fill{to{opacity:1}}
@keyframes tribo-intro-outline-out{to{opacity:0}}
@keyframes tribo-intro-exit{to{opacity:0;visibility:hidden;pointer-events:none}}
@media(prefers-reduced-motion:reduce){#tribo-intro.is-playing{display:none;animation:none}.tribo-intro-mark img,.tribo-intro-name{animation:none}}
