.portal{position:fixed;inset:0;z-index:10010;display:flex;flex-direction:column;align-items:center;justify-content:safe center;gap:clamp(24px,5vh,56px);padding:24px 16px;overflow-y:auto;background:radial-gradient(ellipse 70% 55% at 50% 30%,#1b1036 0%,#07060f 60%,#000 100%);color:#fff;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;opacity:1;transition:opacity .35s ease}
.portal.portal-off{opacity:0;pointer-events:none}
.portal-logo{display:block;width:min(560px,82vw);max-height:26vh;object-fit:contain;flex:none}
.portal-tiles{display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(12px,2.5vw,24px);width:100%;max-width:1000px;flex:none}
.portal-tile{display:flex;flex-direction:column;align-items:center;gap:12px;width:clamp(116px,24vw,172px);padding:clamp(14px,2vw,22px) 10px clamp(12px,1.6vw,18px);border:1px solid rgba(255,255,255,.12);border-radius:20px;background:rgba(255,255,255,.05);color:#fff;text-decoration:none;font-size:clamp(14px,1.7vw,16px);font-weight:600;line-height:1.2;text-align:center;transition:transform .15s ease,background .15s ease,border-color .15s ease}
.portal-tile:hover,.portal-tile:focus-visible{transform:translateY(-3px);background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.32);outline:none}
.portal-tile img{display:block;width:clamp(72px,14vw,108px);height:clamp(72px,14vw,108px);object-fit:contain;border-radius:22%}
.portal-login{min-width:220px;padding:14px 44px;border:0;border-radius:999px;background:linear-gradient(90deg,#ff9f1c,#ff3d81 55%,#7b3dff);color:#fff;font:600 18px/1.2 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;letter-spacing:.02em;cursor:pointer;flex:none;box-shadow:0 8px 28px rgba(255,61,129,.35);transition:transform .15s ease,box-shadow .15s ease,filter .2s ease}
.portal-login:hover:not(:disabled),.portal-login:focus-visible{transform:translateY(-2px);box-shadow:0 12px 34px rgba(255,61,129,.55);outline:none}
.portal-login:disabled{filter:saturate(.25) brightness(.65);box-shadow:none;cursor:progress}
.portal-credit{flex:none;margin-top:-16px;color:rgba(255,255,255,.38);font-size:11px;text-decoration:none}
.portal-credit:hover{color:rgba(255,255,255,.7)}
@media (prefers-reduced-motion:reduce){.portal,.portal-tile,.portal-login{transition:none}}
