:root {
    color-scheme: dark;
    --portal-bg: #10121a;
    --portal-text: #f4f3f0;
    --portal-muted: #a2a4af;
    --portal-accent: #ff795e;
    --portal-line: rgba(255, 255, 255, .11);
}
html { min-height: 100%; background: var(--portal-bg); }
body.tlt-portal-page {
    min-height: 100vh;
    margin: 0;
    background: var(--portal-bg);
    color: var(--portal-text);
    font-family: 'Be Vietnam Pro', sans-serif;
    -webkit-font-smoothing: antialiased;
}
.tlt-portal-page *, .tlt-portal-page *::before, .tlt-portal-page *::after { box-sizing: border-box; }
.tlt-portal-page a { color: inherit; }
.portal-shell { position: relative; isolation: isolate; min-height: 100vh; overflow: hidden; padding: 34px max(28px, calc((100vw - 1120px) / 2)) 22px; }
.portal-shell::before { position: absolute; z-index: -2; inset: 0; background: radial-gradient(ellipse at 50% 0%, #262333 0, #171923 38%, #10121a 76%); content: ''; }
.portal-shell::after { position: absolute; z-index: -1; inset: 0; background-image: linear-gradient(rgba(255,255,255,.018) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.018) 1px, transparent 1px); background-size: 72px 72px; mask-image: linear-gradient(to bottom, black, transparent 75%); pointer-events: none; content: ''; }
.portal-glow { position: absolute; z-index: -1; width: 380px; height: 380px; border-radius: 50%; filter: blur(110px); opacity: .14; pointer-events: none; }
.portal-glow--one { top: 260px; left: -230px; background: #ff735e; }
.portal-glow--two { top: 520px; right: -250px; background: #637cf7; }
.portal-brand { display: flex; align-items: center; justify-content: space-between; min-height: 48px; }
.portal-brand__link { display: inline-flex; align-items: center; text-decoration: none; }
.portal-brand__logo { display: block; width: auto; max-width: 190px; max-height: 42px; object-fit: contain; }
.portal-brand__caption { color: #9294a0; font-size: 10px; font-weight: 700; letter-spacing: .19em; }
.portal-main { width: min(100%, 920px); margin: 50px auto 0; }
.portal-heading { margin-bottom: 50px; text-align: center; }
.portal-eyebrow, .portal-step { color: #ff977d; font-size: 10px; font-weight: 700; letter-spacing: .19em; }
.portal-eyebrow { display: inline-flex; align-items: center; gap: 9px; margin: 0 0 18px; }
.portal-eyebrow > span { width: 6px; height: 6px; border-radius: 50%; background: var(--portal-accent); box-shadow: 0 0 14px var(--portal-accent); }
.portal-heading h1 { margin: 0; color: var(--portal-text); font-size: clamp(38px, 6vw, 62px); font-weight: 600; letter-spacing: -.065em; line-height: 1.13; }
.portal-heading h1 em { color: #ff9278; font-style: normal; }
.portal-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 18px; }
.portal-section-heading h2, .portal-access h2 { margin: 6px 0 0; color: var(--portal-text); font-size: 20px; font-weight: 600; letter-spacing: -.035em; }
.portal-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 13px; }
.portal-card { position: relative; display: flex; min-height: 190px; flex-direction: column; justify-content: space-between; overflow: hidden; padding: 17px; border: 1px solid rgba(255,255,255,.1); border-radius: 14px; background: linear-gradient(145deg, rgba(255,255,255,.075), rgba(255,255,255,.025)); text-decoration: none; transition: transform .22s ease, border-color .22s ease, background .22s ease; }
.portal-card::before { position: absolute; top: -45px; right: -40px; width: 120px; height: 120px; border-radius: 50%; background: var(--card-glow); filter: blur(38px); opacity: .35; content: ''; transition: opacity .22s ease; }
.portal-card:hover { transform: translateY(-5px); border-color: color-mix(in srgb, var(--card-color) 65%, white 10%); background: linear-gradient(145deg, rgba(255,255,255,.105), rgba(255,255,255,.035)); }
.portal-card:hover::before { opacity: .65; }
.portal-card--coral { --card-color: #ff856e; --card-glow: #ff6045; }
.portal-card--blue { --card-color: #82a6ff; --card-glow: #4679ff; }
.portal-card--green { --card-color: #74d7b1; --card-glow: #32c98c; }
.portal-card--violet { --card-color: #c29aff; --card-glow: #945cff; }
.portal-card__topline, .portal-card__logo-wrap { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; }
.portal-card__logo-wrap { width: 100%; height: 52px; justify-content: center; overflow: hidden; border: 1px solid rgba(255,255,255,.11); border-radius: 13px; background: rgba(255,255,255,.07); }
.portal-card__logo { width: 100%; height: 100%; padding: 7px; object-fit: contain; }
.portal-card__mark { color: var(--card-color); font-size: 15px; font-weight: 800; letter-spacing: -.06em; }
.portal-card__content { position: relative; z-index: 1; display: grid; gap: 7px; margin: 10px 0 10px; }
.portal-card__name { color: #f7f6f4; font-size: 14px; font-weight: 700; line-height: 1.4; }
.portal-card__description { display: -webkit-box; overflow: hidden; color: #a7a8b1; font-size: 11px; line-height: 1.65; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.portal-divider { display: flex; align-items: center; gap: 16px; margin: 34px 0 30px; color: #777986; font-size: 9px; font-weight: 700; letter-spacing: .18em; }
.portal-divider::before, .portal-divider::after { height: 1px; flex: 1; background: var(--portal-line); content: ''; }
.portal-access { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 35px; padding: 23px 25px; border: 1px solid rgba(255,255,255,.11); border-radius: 14px; background: rgba(255,255,255,.035); }
.portal-access h2 { font-size: 18px; }
.portal-access__copy p { max-width: 360px; margin: 8px 0 0; color: var(--portal-muted); font-size: 11px; line-height: 1.7; }
.portal-form__field { display: flex; align-items: center; gap: 10px; min-height: 50px; padding: 5px 6px 5px 14px; border: 1px solid rgba(255,255,255,.15); border-radius: 9px; background: rgba(7,8,13,.42); transition: border-color .2s ease, box-shadow .2s ease; }
.portal-form__field:focus-within { border-color: rgba(255,146,120,.7); box-shadow: 0 0 0 3px rgba(255,121,94,.1); }
.portal-form__field.is-error { border-color: rgba(255,107,107,.75); }
.portal-form__lock { color: #a8a9b1; font-size: 18px; line-height: 1; }
.portal-form input { width: 100%; min-width: 0; padding: 8px 0; border: 0; outline: 0; background: transparent; color: #fff; font: inherit; font-size: 12px; }
.portal-form input::placeholder { color: #777985; opacity: 1; }
.portal-form__submit { display: grid; width: 38px; height: 38px; flex: 0 0 38px; place-items: center; border: 0; border-radius: 7px; background: var(--portal-accent); color: #20120f; cursor: pointer; font-size: 22px; line-height: 1; transition: background .2s ease, transform .2s ease; }
.portal-form__submit:hover { transform: translateX(2px); background: #ffa18b; }
.portal-form__message { min-height: 17px; margin: 9px 0 0; color: #8e909a; font-size: 10px; }
.portal-form__message.is-visible { color: #ff8b8b; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; clip-path: inset(50%); }
@media (max-width: 760px) {
    .portal-shell { padding: 24px 22px 18px; }
    .portal-main { margin-top: 58px; }
    .portal-heading { margin-bottom: 38px; }
    .portal-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .portal-card { min-height: 205px; }
    .portal-access { grid-template-columns: 1fr; gap: 18px; }
}
@media (max-width: 420px) {
    .portal-shell { padding-right: 16px; padding-left: 16px; }
    .portal-brand__logo { max-width: 150px; max-height: 36px; }
    .portal-brand__caption { font-size: 8px; }
    .portal-main { margin-top: 48px; }
    .portal-heading h1 { font-size: 37px; }
    .portal-lead { max-width: 290px; margin-right: auto; margin-left: auto; font-size: 12px; }
    .portal-section-heading h2 { font-size: 17px; }
    .portal-grid { gap: 9px; }
    .portal-card { min-height: 198px; padding: 13px; }
    .portal-card__logo-wrap { width: 46px; height: 46px; }
    .portal-card__name { font-size: 12px; }
    .portal-card__description { font-size: 10px; }
    .portal-access { padding: 19px 16px; }
}
@media (prefers-reduced-motion: reduce) {
    .tlt-portal-page *, .tlt-portal-page *::before, .tlt-portal-page *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
