#fab-portal{position:absolute;inset:0;overflow:hidden;isolation:isolate;background:radial-gradient(ellipse at 50% 48%,#09241788,transparent 55%);opacity:0;transition:opacity .7s ease}
#fab-portal[hidden]{display:none}
html[data-fab-loading] #fab-app{visibility:hidden}
#fab-portal{contain:paint;transform:translateZ(0)}
#fab-globe{z-index:0;transform:translateZ(0)}
.fab-portal-logo,.fab-portal-caption,.fab-portal-menu{z-index:2;will-change:transform}
#fab-intro[data-phase="portal"] #fab-portal{opacity:1}
#fab-intro[data-phase="portal"]>.fab-intro-scene,#fab-intro[data-phase="portal"]>.fab-intro-controls{opacity:0;visibility:hidden;transition:opacity .5s,visibility .5s}
#fab-intro[data-phase="portal"] .fab-atmosphere{opacity:.5;transition:opacity 1s}
#fab-intro[data-phase="portal"] .fab-intro-brand{opacity:.55}
#fab-globe{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.fab-portal-logo{position:absolute;left:50%;top:5.5%;width:min(320px,48vw,39vh);transform:translateX(-50%);filter:drop-shadow(0 0 15px #64ff8f20)}
.fab-portal-logo img{display:block;width:100%;height:auto}
#fab-intro[data-phase="portal"] .fab-portal-logo{animation:fab-cyber-appear 1.1s ease-out both}
.fab-portal-logo:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 45%,#93ffb750 49%,transparent 53%);opacity:0;animation:fab-cyber-scan 1.2s .1s ease-out}
.fab-portal-caption{position:absolute;top:78%;left:20px;right:20px;text-align:center;color:#7eaa91;font-size:9px;letter-spacing:.34em;text-transform:uppercase;margin:0;transition:opacity .5s}
.fab-portal-menu{position:absolute;bottom:max(5.5vh,24px);left:50%;transform:translate(-50%,16px);display:grid;grid-template-columns:1.65fr 1.65fr 1fr 1fr;gap:12px;width:min(620px,calc(100% - 48px));opacity:0;visibility:hidden;transition:opacity .7s ease,transform .7s ease,visibility .7s}
#fab-portal[data-assembled="true"] .fab-portal-menu{opacity:1;transform:translate(-50%,0);visibility:visible}
#fab-portal[data-assembled="true"] .fab-portal-caption{color:#b8cbbf}
#fab-portal .fab-portal-menu button,#fab-portal .fab-portal-menu a{box-sizing:border-box;position:relative;display:flex;align-items:center;justify-content:center;gap:12px;min-height:62px;border:1px solid #4478588c;background:linear-gradient(145deg,#183725c2,#050d0acc);box-shadow:inset 0 1px #b7f6ce12;color:#daeee0;text-decoration:none;font:500 11px/1 system-ui,sans-serif;letter-spacing:.25em;border-radius:3px;padding:12px;cursor:pointer;transition:border-color .2s,background .2s,box-shadow .2s}
#fab-portal .fab-portal-menu button:first-child{background:linear-gradient(145deg,#27543a,#0b2016);border-color:#92cb9e80;color:#eaffed}
#fab-portal .fab-portal-menu button:hover:not(:disabled),#fab-portal .fab-portal-menu a:hover{border-color:#a1e6b7;background:#183e28;box-shadow:0 0 24px #46ff811c,inset 0 1px #c4ffdf33}
#fab-portal .fab-portal-menu button:disabled{color:#637b6c;background:#09100db3;border-color:#2d493980;cursor:default;font-size:19px;font-weight:300}
.fab-portal-menu svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}
#fab-portal .fab-portal-menu button:focus-visible,#fab-portal .fab-portal-menu a:focus-visible{outline:2px solid #b0f5c7;outline-offset:5px}
.fab-globe-fallback{position:absolute;left:50%;top:51%;width:min(47vh,70vw);aspect-ratio:1;transform:translate(-50%,-50%);border:1px dotted #81efb7;border-radius:50%;box-shadow:inset 0 0 45px #65ff9c0a,0 0 40px #65ff9c12;display:none}
#fab-globe[data-fallback="true"]+.fab-globe-fallback{display:block}
@keyframes fab-cyber-appear{0%{opacity:0;clip-path:inset(0 0 100% 0);filter:brightness(2) drop-shadow(3px 0 #5dffa1)}25%{opacity:1;clip-path:inset(0 0 65% 0)}29%{clip-path:inset(18% 0 48% 0)}33%{clip-path:inset(0 0 50% 0)}60%{clip-path:inset(0 0 15% 0);filter:brightness(1.3)}to{opacity:1;clip-path:inset(0);filter:drop-shadow(0 0 15px #64ff8f20)}}
@keyframes fab-cyber-scan{0%{opacity:.6;transform:translateY(-45%)}to{opacity:0;transform:translateY(45%)}}
@media(max-width:600px){.fab-portal-logo{top:10%;width:min(250px,65vw)}.fab-portal-menu{gap:8px;bottom:7vh;grid-template-columns:1.5fr 1.5fr .8fr .8fr;width:calc(100% - 36px)}#fab-portal .fab-portal-menu button,#fab-portal .fab-portal-menu a{min-height:58px;font-size:9px;letter-spacing:.13em;padding:8px;gap:6px}.fab-portal-menu svg{width:14px;height:14px}.fab-portal-caption{top:79%;font-size:8px;letter-spacing:.22em}}
@media(max-height:480px){.fab-portal-logo{top:4%;width:29vh}.fab-portal-caption{top:78%;font-size:8px}.fab-portal-menu{bottom:12px;width:min(500px,70vw)}#fab-portal .fab-portal-menu button,#fab-portal .fab-portal-menu a{min-height:42px}.fab-portal-menu svg{width:14px;height:14px}}
@media(prefers-reduced-motion:reduce){#fab-portal,#fab-portal *{animation:none!important;transition:none!important}}
