@font-face { font-family: "Montserrat SemiBold"; src: url("Montserrat-SemiBold.ttf") format("truetype"); font-weight: 600; font-style: normal; font-display: block; }
html, body { width: 100%; height: 100%; }
* { box-sizing: border-box; }
body { padding: 0; margin: 0; background: #03110f; color: #f4fff4; font-family: "Montserrat SemiBold", Montserrat, Arial, Helvetica, sans-serif; font-weight: 600; }
#tifoxr-auth-shell { position: relative; min-height: 100%; display: grid; grid-template-rows: auto minmax(0, 1fr) auto; overflow: hidden; padding: clamp(24px, 4vw, 64px) clamp(22px, 7vw, 92px) 28px; background: #03110f; isolation: isolate; }
#tifoxr-auth-shell[hidden] { display: none; }
#tifoxr-auth-shell::before { content: ""; position: absolute; inset: 0; z-index: -3; background-image: linear-gradient(rgba(102, 187, 81, 0.28) 1px, transparent 1px), linear-gradient(90deg, rgba(102, 187, 81, 0.28) 1px, transparent 1px); background-size: 72px 72px; opacity: 0.75; }
#tifoxr-auth-shell::after { content: ""; position: absolute; inset: 0; z-index: -4; background: radial-gradient(circle at 5% 73%, rgba(30, 148, 70, 0.45) 0 0, rgba(30, 148, 70, 0.34) 0 20%, transparent 20.5%), radial-gradient(circle at 91% 36%, rgba(83, 161, 58, 0.28) 0 0, rgba(83, 161, 58, 0.26) 0 17%, transparent 17.5%), radial-gradient(circle at 74% 72%, rgba(27, 87, 53, 0.35), transparent 24%), linear-gradient(125deg, rgba(5, 34, 31, 0.95), rgba(2, 17, 15, 0.98) 52%, rgba(2, 10, 18, 0.98)); }
.tifoxr-auth-decor { position: absolute; inset: 0; z-index: -1; pointer-events: none; overflow: hidden; }
.tifoxr-auth-decor span { position: absolute; display: block; pointer-events: none; }
.tifoxr-orb { border-radius: 999px; background: rgba(64, 151, 48, 0.28); }
.tifoxr-orb-left { width: 440px; height: 440px; left: -180px; bottom: 1%; }
.tifoxr-orb-right { width: 430px; height: 430px; right: -92px; top: 20%; }
.tifoxr-line { height: 22px; background: rgba(108, 199, 72, 0.32); }
.tifoxr-line-top { width: 38%; right: 4%; top: 24%; }
.tifoxr-line-bottom { width: 37%; left: 3%; bottom: 15%; }
.tifoxr-slash { height: 22px; border-radius: 1px; transform-origin: center; background: rgba(31, 151, 64, 0.43); }
.tifoxr-slash-left { width: 33%; left: -5%; top: 34%; transform: rotate(17deg); }
.tifoxr-slash-right { width: 41%; right: -7%; bottom: 10%; transform: rotate(-16deg); }
.tifoxr-slash-gray { width: 38%; right: -1%; bottom: 25%; transform: rotate(-16deg); background: rgba(190, 197, 199, 0.34); }
.tifoxr-auth-header, .tifoxr-auth-layout, .tifoxr-auth-footer { position: relative; z-index: 1; width: min(100%, 1600px); margin-left: auto; margin-right: auto; }
.tifoxr-auth-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 32px; }
.tifoxr-auth-brand { display: flex; align-items: center; gap: 8px; color: #9cff7b; font-family: "Montserrat SemiBold", Montserrat, Arial, Helvetica, sans-serif; font-size: clamp(28px, 2.3vw, 42px); font-weight: 900; letter-spacing: -0.04em; line-height: 1; text-shadow: 0 0 22px rgba(93, 255, 86, 0.16); }
.tifoxr-auth-brand img { width: clamp(74px, 6vw, 116px); height: clamp(74px, 6vw, 116px); object-fit: cover; box-shadow: 0 14px 34px rgba(0, 0, 0, 0.35); }
.tifoxr-auth-brand sup { font-size: 0.32em; margin-left: 2px; vertical-align: super; }
.tifoxr-auth-build { margin-top: clamp(22px, 4vw, 48px); text-align: right; font-family: "Montserrat SemiBold", Montserrat, Arial, Helvetica, sans-serif; letter-spacing: 0.02em; }
.tifoxr-auth-build span { display: block; color: rgba(244, 248, 245, 0.92); font-size: clamp(13px, 1vw, 18px); font-weight: 800; }
.tifoxr-auth-build strong { display: block; margin-top: 10px; color: #80f26c; font-size: clamp(11px, 0.8vw, 14px); font-weight: 900; }
.tifoxr-auth-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(390px, 520px); align-items: center; gap: clamp(42px, 8vw, 142px); padding: clamp(46px, 7vh, 96px) 0; }
.tifoxr-auth-hero { max-width: 860px; }
.tifoxr-auth-eyebrow { margin: 0 0 22px; color: #80f26c; font-family: "Montserrat SemiBold", Montserrat, Arial, Helvetica, sans-serif; font-size: clamp(16px, 1.2vw, 22px); font-weight: 900; letter-spacing: 0.02em; }
.tifoxr-auth-hero h1 { margin: 0; max-width: 920px; color: #f8fbf8; font-family: "Montserrat SemiBold", Montserrat, Arial, Helvetica, sans-serif; font-size: clamp(42px, 4.7vw, 72px); font-weight: 900; line-height: 1.15; letter-spacing: 0.055em; text-shadow: 0 7px 24px rgba(0, 0, 0, 0.18); }
.tifoxr-auth-lede { max-width: 880px; margin: 28px 0 0; color: rgba(230, 241, 236, 0.78); font-family: "Montserrat SemiBold", Montserrat, Arial, Helvetica, sans-serif; font-size: clamp(18px, 1.45vw, 25px); font-weight: 800; line-height: 1.35; letter-spacing: 0.01em; }
.tifoxr-auth-pills { display: flex; flex-wrap: wrap; gap: 10px; padding: 0; margin: 30px 0 0; list-style: none; }
.tifoxr-auth-pills li { padding: 8px 12px; border: 2px solid rgba(134, 226, 101, 0.35); border-radius: 13px; background: rgba(101, 160, 72, 0.72); color: #f5fff0; font-family: "Montserrat SemiBold", Montserrat, Arial, Helvetica, sans-serif; font-size: clamp(13px, 1vw, 18px); font-weight: 900; letter-spacing: 0.035em; box-shadow: inset 0 -4px 0 rgba(0, 0, 0, 0.12); }
.tifoxr-auth-card { width: 100%; padding: 18px; border: 2px solid #54c840; border-radius: 20px; background: rgba(73, 131, 53, 0.86); box-shadow: 0 28px 60px rgba(0, 0, 0, 0.34), inset 0 -8px 0 rgba(0, 0, 0, 0.16); }
.tifoxr-auth-card-inner { min-height: 400px; padding: clamp(32px, 3vw, 48px); border-radius: 15px; background: rgba(1, 27, 16, 0.98); box-shadow: inset 0 1px 0 rgba(95, 209, 77, 0.08); }
.tifoxr-auth-card h2 { margin: 0 0 20px; color: #f7faf7; font-family: "Montserrat SemiBold", Montserrat, Arial, Helvetica, sans-serif; font-size: clamp(34px, 2.9vw, 47px); font-weight: 900; line-height: 1.08; letter-spacing: 0.06em; }
.tifoxr-auth-card p { margin: 0; color: rgba(214, 225, 230, 0.78); font-family: "Montserrat SemiBold", Montserrat, Arial, Helvetica, sans-serif; font-size: clamp(17px, 1.2vw, 23px); font-weight: 800; line-height: 1.24; letter-spacing: 0.01em; }
.tifoxr-auth-actions { display: grid; gap: 12px; margin-top: 26px; }
.tifoxr-auth-button { min-height: 68px; width: 100%; border: 0; border-radius: 14px; cursor: pointer; display: flex; align-items: center; justify-content: center; gap: 22px; padding: 10px 24px; font-family: "Montserrat SemiBold", Montserrat, Arial, Helvetica, sans-serif; font-size: clamp(22px, 1.7vw, 31px); font-weight: 900; letter-spacing: 0.055em; line-height: 1.08; transition: transform 140ms ease, filter 140ms ease, opacity 140ms ease; }
.tifoxr-auth-button:hover:not(:disabled) { transform: translateY(-1px); filter: brightness(1.05); }
.tifoxr-auth-button:disabled { cursor: wait; opacity: 0.68; transform: none; }
.tifoxr-auth-button-primary { background: #22e906; color: #021007; box-shadow: 0 8px 0 rgba(7, 104, 6, 0.72), 0 18px 28px rgba(0, 0, 0, 0.34); }
.tifoxr-auth-button-secondary { background: #000; color: #f8fbf8; box-shadow: 0 8px 0 rgba(0, 0, 0, 0.55), 0 18px 28px rgba(0, 0, 0, 0.28); }
.tifoxr-microsoft-mark { flex: 0 0 auto; width: 30px; height: 30px; display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr; gap: 2px; }
.tifoxr-microsoft-mark span:nth-child(1) { background: #f25022; }
.tifoxr-microsoft-mark span:nth-child(2) { background: #7fba00; }
.tifoxr-microsoft-mark span:nth-child(3) { background: #00a4ef; }
.tifoxr-microsoft-mark span:nth-child(4) { background: #ffb900; }
.tifoxr-auth-note { margin-top: 32px !important; color: rgba(224, 233, 237, 0.73) !important; font-size: clamp(13px, 0.95vw, 17px) !important; line-height: 1.35 !important; }
.tifoxr-auth-footer { display: flex; align-items: center; justify-content: space-between; gap: 24px; color: rgba(238, 244, 241, 0.78); font-family: "Montserrat SemiBold", Montserrat, Arial, Helvetica, sans-serif; font-size: clamp(13px, 0.9vw, 17px); font-weight: 800; }
.tifoxr-auth-links { display: inline-flex; align-items: center; gap: 5px; white-space: nowrap; }
.tifoxr-auth-footer a { color: rgba(238, 244, 241, 0.88); text-decoration: none; }
.tifoxr-auth-footer a:hover { color: #80f26c; }
.tifoxr-loading-shell { position: fixed; inset: 0; z-index: 20; display: grid; grid-template-rows: auto minmax(0, 1fr) auto; overflow: hidden; isolation: isolate; padding: clamp(30px, 4.8vw, 54px) clamp(28px, 7vw, 96px) 28px; color: #f5fff2; background: #000c08; opacity: 1; transition: opacity 180ms ease; }
.tifoxr-loading-shell[hidden] { display: none; }
.tifoxr-loading-shell-hiding { opacity: 0; pointer-events: none; }
.tifoxr-loading-shell::before { content: ""; position: absolute; inset: 0; z-index: -3; background: linear-gradient(90deg, rgba(33, 132, 23, 0.58) 0 5.25%, transparent 5.25% 93.65%, rgba(34, 129, 22, 0.64) 93.65% 100%), linear-gradient(108deg, rgba(0, 13, 11, 0.96) 0%, rgba(0, 6, 6, 0.98) 46%, rgba(0, 4, 7, 0.98) 100%); }
.tifoxr-loading-shell::after { content: ""; position: absolute; inset: 0; z-index: -2; background-image: linear-gradient(rgba(77, 216, 54, 0.22) 1px, transparent 1px), linear-gradient(90deg, rgba(77, 216, 54, 0.22) 1px, transparent 1px); background-size: 84px 84px; opacity: 0.82; }
.tifoxr-loading-header, .tifoxr-loading-main, .tifoxr-loading-footer { position: relative; z-index: 1; width: min(100%, 1660px); margin-left: auto; margin-right: auto; }
.tifoxr-loading-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 28px; }
.tifoxr-loading-brand { display: flex; align-items: center; gap: 12px; min-width: 0; color: #93ff78; font-size: clamp(27px, 2.45vw, 42px); line-height: 1; letter-spacing: -0.045em; text-shadow: 0 0 19px rgba(123, 255, 104, 0.14); }
.tifoxr-loading-gms-logo { width: clamp(70px, 5.2vw, 100px); height: auto; object-fit: contain; flex: 0 0 auto; }
.tifoxr-loading-tifo-logo { width: clamp(76px, 5.3vw, 108px); height: clamp(76px, 5.3vw, 108px); object-fit: cover; flex: 0 0 auto; box-shadow: 0 12px 28px rgba(0, 0, 0, 0.34); }
.tifoxr-loading-build { margin-top: clamp(24px, 3vw, 42px); text-align: right; }
.tifoxr-loading-build span { display: block; color: rgba(245, 248, 246, 0.88); font-size: clamp(13px, 1.04vw, 18px); letter-spacing: 0.01em; }
.tifoxr-loading-build strong { display: block; margin-top: 10px; color: #85ff68; font-size: clamp(10px, 0.82vw, 13px); letter-spacing: 0.01em; }
.tifoxr-loading-main { display: grid; place-items: center; min-height: 0; padding: 42px 0 54px; }
.tifoxr-loading-card { width: min(90vw, 640px); min-height: min(45vh, 476px); padding: 16px; border-radius: 5px; background: rgba(30, 130, 20, 0.84); box-shadow: 0 24px 46px rgba(0, 0, 0, 0.28), inset 0 -7px 0 rgba(0, 0, 0, 0.12); }
.tifoxr-loading-card-inner { position: relative; min-height: 432px; display: flex; flex-direction: column; align-items: center; padding: 34px 40px 30px; border: 2px solid rgba(119, 255, 85, 0.62); border-radius: 4px; background: linear-gradient(180deg, rgba(42, 83, 39, 0.76), rgba(10, 62, 4, 0.88) 30%, rgba(9, 58, 4, 0.9)); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), inset 0 0 36px rgba(12, 55, 7, 0.48); }
.tifoxr-loading-eyebrow { margin: 0 0 14px; color: #9bff73; font-size: clamp(13px, 0.95vw, 17px); letter-spacing: 0.2em; text-align: center; }
.tifoxr-loading-card h1 { width: min(100%, 520px); margin: 0; color: #f7fff5; font-size: clamp(25px, 2.05vw, 34px); line-height: 1.16; letter-spacing: 0.02em; text-align: center; }
.tifoxr-loading-copy { margin: 26px 0 0; color: rgba(222, 233, 224, 0.86); font-size: clamp(13px, 0.95vw, 16px); line-height: 1.35; text-align: center; }
.tifoxr-loading-label { margin: 26px 0 10px; color: rgba(239, 255, 231, 0.92); font-size: clamp(16px, 1.12vw, 19px); line-height: 1; text-align: center; }
.tifoxr-loading-progress { position: relative; width: min(100%, 520px); height: 16px; overflow: hidden; border-radius: 4px; background: rgba(0, 8, 2, 0.94); }
.tifoxr-loading-progress-glow, .tifoxr-loading-progress-fill, .tifoxr-loading-progress-shimmer { position: absolute; left: 0; top: 0; bottom: 0; border-radius: 4px; transform: translateX(-110%); animation: tifoxr-loading-sweep 2.8s linear infinite; }
.tifoxr-loading-progress-glow { width: 34%; background: rgba(109, 255, 70, 0.28); filter: blur(1px); }
.tifoxr-loading-progress-fill { width: 26%; background: #63f043; box-shadow: 0 0 10px rgba(102, 255, 74, 0.22); }
.tifoxr-loading-progress-shimmer { width: 11%; background: rgba(209, 255, 181, 0.56); animation-duration: 2.8s; animation-delay: 0.28s; }
.tifoxr-loading-stage { margin: 20px 0 0; color: rgba(224, 238, 224, 0.8); font-size: clamp(13px, 0.92vw, 16px); text-align: center; }
.tifoxr-loading-footer { display: grid; place-items: center; min-height: 24px; color: rgba(220, 230, 222, 0.66); font-size: clamp(10px, 0.72vw, 13px); text-align: center; }
@keyframes tifoxr-loading-sweep {
  0% { transform: translateX(-120%); }
  100% { transform: translateX(390%); }
}
@media (max-width: 1080px) {
  #tifoxr-auth-shell { overflow: auto; }
  .tifoxr-auth-layout { grid-template-columns: 1fr; justify-items: center; text-align: center; padding: 42px 0; }
  .tifoxr-auth-hero { max-width: 820px; }
  .tifoxr-auth-pills { justify-content: center; }
  .tifoxr-auth-card { max-width: 560px; text-align: left; }
}
@media (max-width: 720px) {
  #tifoxr-auth-shell { padding: 22px 18px; }
  .tifoxr-auth-header, .tifoxr-auth-footer { align-items: center; flex-direction: column; text-align: center; }
  .tifoxr-auth-build { margin-top: 8px; text-align: center; }
  .tifoxr-auth-brand { flex-direction: column; gap: 10px; }
  .tifoxr-auth-card { padding: 10px; }
  .tifoxr-auth-card-inner { min-height: 0; padding: 28px 20px; text-align: center; }
  .tifoxr-auth-button { min-height: 60px; gap: 14px; padding-left: 16px; padding-right: 16px; }
  .tifoxr-auth-footer { gap: 10px; }
  .tifoxr-loading-shell { overflow: auto; padding: 22px 18px; }
  .tifoxr-loading-header { align-items: center; flex-direction: column; text-align: center; }
  .tifoxr-loading-brand { justify-content: center; flex-wrap: wrap; }
  .tifoxr-loading-build { margin-top: 4px; text-align: center; }
  .tifoxr-loading-main { padding: 28px 0 30px; }
  .tifoxr-loading-card { width: min(100%, 520px); min-height: 0; padding: 10px; }
  .tifoxr-loading-card-inner { min-height: 360px; padding: 28px 20px 24px; }
}
#unity-container { display: none; position: fixed; width: 100%; height: 100%; }
#unity-canvas { width: 100%; height: 100%; background: #000000 }
#unity-loading-bar { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); display: none }
#unity-progress-bar-empty { margin-left: auto; margin-right: auto; width: 141px; height: 18px; margin-top: 0; background: url('progress-bar-empty-dark.png') no-repeat center }
#unity-progress-bar-full { width: 0%; height: 18px; margin-top: 0; background: url('progress-bar-full-dark.png') no-repeat center }
#unity-warning { position: absolute; left: 50%; top: 5%; transform: translate(-50%); background: white; padding: 10px; display: none }
