@font-face{font-family:Ethnocentric;src:url("/assets/fonts/ethnocentric-6bdaeff7fe.otf") format("opentype");font-weight:300;font-style:normal;font-display:swap}
html[lang="vi"] body{font-family:"Noto Sans","Segoe UI",Arial,sans-serif}
:root{color-scheme:dark;--bg:#050814;--panel:#0b1020;--line:rgba(117,173,255,.25);--text:#eef6ff;--muted:#a5b4cb;--cyan:#35e7ff;--indigo:#637cff;--violet:#8b6cf7}
*{box-sizing:border-box}body{margin:0;min-height:100vh;padding:0 22px 34px;overflow-x:hidden;background:radial-gradient(circle at 12% 16%,rgba(53,231,255,.13),transparent 30%),radial-gradient(circle at 88% 78%,rgba(139,108,247,.17),transparent 34%),var(--bg);color:var(--text);font-family:Inter,"Segoe UI",Arial,sans-serif}
body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.18;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:44px 44px;mask-image:linear-gradient(to bottom,black,transparent 82%)}
.swift-auth-shell{position:relative;width:min(1180px,100%);margin:0 auto}.swift-auth-header{display:flex;align-items:center;justify-content:space-between;gap:1.4rem;min-height:84px}.swift-auth-brand{display:inline-flex;align-items:center;gap:.72rem;text-decoration:none}.swift-auth-brand img{width:44px;height:44px;object-fit:contain;filter:drop-shadow(0 0 16px rgba(53,231,255,.38))}.swift-auth-brand-name,.auth-story-brand{font-family:Ethnocentric,Inter,sans-serif;font-weight:300;letter-spacing:.09em;text-transform:uppercase;background:linear-gradient(100deg,#fff 0%,#fff 15%,var(--cyan) 46%,var(--violet) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}.swift-auth-nav{display:flex;align-items:center;gap:1rem}.swift-auth-nav a{color:var(--muted);font-size:.875rem;font-weight:700;text-decoration:none;transition:.2s}.swift-auth-nav a:hover,.swift-auth-nav a:focus-visible{color:var(--cyan)}.swift-auth-back{padding:.62rem .92rem;border:1px solid rgba(53,231,255,.38);border-radius:999px;color:var(--text)!important;background:rgba(53,231,255,.06)}
.auth-stage{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,470px);min-height:calc(100vh - 126px);overflow:hidden;border:1px solid var(--line);border-radius:28px;background:linear-gradient(145deg,rgba(11,16,32,.9),rgba(5,8,20,.82));box-shadow:0 35px 110px rgba(0,0,0,.52),inset 0 1px 0 rgba(255,255,255,.07);backdrop-filter:blur(18px)}
.auth-story{position:relative;display:flex;flex-direction:column;justify-content:space-between;min-height:640px;padding:clamp(34px,6vw,72px);overflow:hidden}.auth-story:after{content:"";position:absolute;width:440px;height:440px;right:-150px;bottom:-160px;border:1px solid rgba(53,231,255,.22);border-radius:50%;box-shadow:0 0 0 60px rgba(99,124,255,.055),0 0 0 120px rgba(139,108,247,.035)}.auth-kicker{margin:0 0 18px;color:var(--cyan);font-size:.75rem;font-weight:850;letter-spacing:.18em;text-transform:uppercase}.auth-story-brand{font-size:clamp(2rem,5vw,4.7rem);line-height:1.02}.auth-story h1{max-width:720px;margin:24px 0 16px;font-size:clamp(2rem,4.3vw,4rem);line-height:1.06;letter-spacing:-.035em}.auth-story-copy{max-width:620px;margin:0;color:var(--muted);font-size:clamp(1rem,1.5vw,1.15rem);line-height:1.75}.auth-assurance{position:relative;z-index:1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:44px}.auth-assurance span{padding:14px;border:1px solid rgba(117,173,255,.16);border-radius:14px;background:rgba(8,14,29,.6);color:#dce9f8;font-size:.8rem;line-height:1.45}.auth-home-actions{position:relative;z-index:1;display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.auth-home-actions a{padding:.7rem 1rem;border-radius:999px;color:var(--text);font-size:.84rem;font-weight:750;text-decoration:none}.auth-home-primary{border:1px solid rgba(53,231,255,.45);background:rgba(53,231,255,.1)}.auth-home-secondary{border:1px solid rgba(255,255,255,.14)}
.auth-panel-wrap{display:grid;align-items:center;padding:clamp(24px,4vw,50px);border-left:1px solid var(--line);background:linear-gradient(180deg,rgba(10,18,37,.78),rgba(7,11,24,.94))}.auth-panel{width:100%;max-width:430px;margin:auto}.auth-panel-eyebrow{margin:0 0 8px;color:var(--cyan);font-size:.72rem;font-weight:850;letter-spacing:.15em;text-transform:uppercase}.auth-panel h2{margin:0;font-size:clamp(1.7rem,3vw,2.35rem)}.auth-panel-lede{margin:10px 0 24px;color:var(--muted);line-height:1.6}.auth-status{margin:0 0 14px;padding:11px 13px;border:1px solid rgba(53,231,255,.22);border-radius:12px;background:rgba(53,231,255,.07);color:#dffaff;font-size:.84rem;line-height:1.45}.auth-status[hidden]{display:none}.auth-status-error{border-color:rgba(248,113,113,.42);background:rgba(75,14,25,.4);color:#ffd1d8}.auth-google,.auth-submit{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:50px;border:0;border-radius:14px;font:800 .92rem/1 Inter,"Segoe UI",sans-serif;cursor:pointer;transition:transform .18s,box-shadow .18s}.auth-google{border:1px solid rgba(255,255,255,.18);background:#f7fbff;color:#111827}.google-mark{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:linear-gradient(135deg,#4285f4 0 45%,#34a853 45% 62%,#fbbc05 62% 78%,#ea4335 78%);color:#fff;font-weight:900}.auth-google:hover,.auth-submit:hover{transform:translateY(-2px)}.auth-divider{display:flex;align-items:center;gap:12px;margin:20px 0;color:#73829a;font-size:.75rem;text-transform:uppercase;letter-spacing:.1em}.auth-divider:before,.auth-divider:after{content:"";height:1px;flex:1;background:rgba(255,255,255,.1)}.auth-form{display:grid;gap:15px}.auth-form label{display:grid;gap:7px;color:#cbd7e7;font-size:.8rem;font-weight:750}.auth-form input{width:100%;min-height:50px;border:1px solid rgba(117,173,255,.23);border-radius:13px;background:rgba(3,8,20,.76);padding:0 14px;color:var(--text);font:500 1rem Inter,"Segoe UI",sans-serif;outline:none}.auth-form input:focus{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(53,231,255,.11)}.auth-submit{margin-top:3px;background:linear-gradient(115deg,#20cde8,#637cff 58%,#8b6cf7);color:#fff;box-shadow:0 14px 32px rgba(71,106,255,.25)}button:disabled,input:disabled{cursor:wait;opacity:.62}.auth-reset{display:block;margin:15px auto 0;border:0;background:none;color:var(--cyan);font:750 .82rem Inter,sans-serif;cursor:pointer}.auth-switch{text-align:center;margin:22px 0 0;color:var(--muted);font-size:.86rem}.auth-switch a{color:var(--cyan);font-weight:800}.auth-trust{display:flex;gap:8px;align-items:flex-start;margin:22px 0 0;color:#8291aa;font-size:.75rem;line-height:1.5}.auth-trust:before{content:"✓";color:var(--cyan);font-weight:900}
@media(max-width:900px){.auth-stage{grid-template-columns:1fr}.auth-story{min-height:auto;padding:36px}.auth-assurance{grid-template-columns:1fr 1fr}.auth-panel-wrap{border-left:0;border-top:1px solid var(--line);padding:36px}.auth-story:after{opacity:.55}.swift-auth-nav a:not(.swift-auth-back){display:none}}
@media(max-width:560px){body{padding:0 14px 22px}.swift-auth-header{min-height:72px}.swift-auth-brand img{width:38px;height:38px}.swift-auth-brand-name{font-size:.94rem}.auth-stage{border-radius:20px}.auth-story,.auth-panel-wrap{padding:26px 20px}.auth-assurance{grid-template-columns:1fr}.auth-story h1{font-size:2rem}.auth-story-brand{font-size:1.65rem}.swift-auth-back{font-size:.78rem}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* Compact Google-only authentication layout. */
.auth-stage{width:min(820px,100%);grid-template-columns:minmax(0,1fr) minmax(300px,360px);min-height:auto;border-radius:22px}
.auth-story{min-height:520px;padding:clamp(28px,4vw,48px)}
.auth-story-brand{font-size:clamp(1.7rem,4vw,3.6rem)}
.auth-story h1{max-width:520px;margin:18px 0 12px;font-size:clamp(1.8rem,3.5vw,3rem)}
.auth-story-copy{max-width:500px;font-size:clamp(.9rem,1.2vw,1rem);line-height:1.6}
.auth-assurance{grid-template-columns:1fr;margin-top:28px;gap:8px}
.auth-assurance span{padding:10px 12px;font-size:.75rem}
.auth-panel-wrap{padding:clamp(24px,4vw,38px)}
.auth-panel h2{font-size:clamp(1.55rem,2.6vw,2rem)}
.auth-panel-lede{margin-bottom:20px;font-size:.9rem}
.auth-divider,.auth-form,.auth-reset{display:none}
.auth-google{min-height:48px;font-size:.86rem}
.auth-switch{margin-top:18px;font-size:.8rem}
.auth-trust{margin-top:18px;font-size:.7rem}
@media(max-width:900px){.auth-stage{grid-template-columns:1fr}.auth-story{min-height:auto;padding:28px 30px}.auth-panel-wrap{border-top:1px solid var(--line);border-left:0;padding:28px 30px}.auth-panel{max-width:420px}}
@media(max-width:560px){body{padding:0 12px 18px}.swift-auth-header{min-height:64px}.swift-auth-nav a:not(.swift-auth-back){display:none}.swift-auth-back{font-size:.75rem;padding:.5rem .7rem}.auth-stage{border-radius:18px}.auth-story,.auth-panel-wrap{padding:22px 18px}.auth-story h1{font-size:1.85rem}.auth-story-brand{font-size:1.55rem}.auth-assurance{grid-template-columns:1fr 1fr}.auth-assurance span{font-size:.7rem}.auth-panel-wrap{padding-top:24px}}

/* Accessible typography baseline: keep readable controls and supporting copy at 16px. */
body{font-size:1rem}
.swift-auth-nav a,.swift-auth-back,.auth-kicker,.auth-assurance span,.auth-home-actions a,.auth-panel-eyebrow,.auth-status,.auth-divider,.auth-form label,.auth-reset,.auth-switch,.auth-trust,.auth-panel-lede,.auth-story-copy{font-size:1rem}
.swift-auth-nav a,.swift-auth-back,.auth-home-actions a,.auth-reset{min-height:48px;display:inline-flex;align-items:center;justify-content:center}
.auth-google,.auth-submit{font-size:1rem}
.auth-form input{font-size:1rem}
@media(max-width:560px){.swift-auth-back,.swift-auth-nav a{font-size:1rem}.auth-story-copy,.auth-assurance span,.auth-panel-lede,.auth-google,.auth-switch,.auth-trust{font-size:1rem}.auth-assurance span{min-height:48px;display:flex;align-items:center}.auth-home-actions a{font-size:1rem}}

/* Compact page scale: preserve 16px reading and control targets. */
.swift-auth-header { min-height: 66px; }
.auth-stage { min-height: calc(100vh - 96px); border-radius: 20px; }
.auth-story { min-height: 500px; padding: clamp(26px, 3.4vw, 40px); }
.auth-story-brand { font-size: clamp(1.5rem, 3vw, 2.5rem); }
.auth-story h1 { margin: 13px 0 10px; font-size: clamp(1.65rem, 2.7vw, 2.45rem); }
.auth-story-copy { line-height: 1.6; }
.auth-assurance { margin-top: 24px; }
.auth-panel-wrap { padding: clamp(22px, 2.8vw, 32px); }
.auth-panel h2 { font-size: clamp(1.4rem, 2vw, 1.75rem); }
.auth-panel-lede { margin-bottom: 16px; }

@media(max-width:560px){
  .swift-auth-header { min-height: 64px; }
  .auth-stage { min-height: auto; }
  .auth-story,.auth-panel-wrap { padding: 19px 16px; }
  .auth-story-brand { font-size: 1.4rem; }
  .auth-story h1 { font-size: 1.65rem; }
}
.auth-provider-stack{display:grid;gap:10px}.auth-facebook{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:48px;border:1px solid rgba(96,165,250,.45);border-radius:14px;background:linear-gradient(135deg,#0d3f91,#1877f2);color:#fff;font:800 1rem/1 Inter,"Segoe UI",sans-serif;cursor:pointer;box-shadow:0 10px 24px rgba(24,119,242,.18);transition:transform .18s,box-shadow .18s}.auth-facebook:hover,.auth-facebook:focus-visible{outline:0;transform:translateY(-2px);box-shadow:0 14px 28px rgba(24,119,242,.3)}.facebook-mark{display:grid;place-items:end center;width:24px;height:24px;border-radius:50%;background:#fff;color:#1877f2;font:900 25px/23px Arial,sans-serif}.auth-panel{max-width:350px}.auth-panel-lede{max-width:31ch}.auth-trust{margin-top:16px}@media(max-width:560px){.auth-provider-stack{gap:9px}.auth-google,.auth-facebook{min-height:46px;font-size:.9rem}}
@media(max-width:560px){.auth-panel-wrap{order:1}.auth-story{order:2;min-height:0}.auth-story:after{opacity:.35}.auth-assurance{grid-template-columns:1fr 1fr}.auth-story-copy{margin-bottom:4px}}
.auth-stage{width:min(760px,100%);grid-template-columns:1fr;min-height:0;border-radius:22px;background:linear-gradient(150deg,rgba(10,17,35,.98),rgba(4,8,19,.98));box-shadow:0 30px 100px rgba(0,0,0,.55),inset 0 1px 0 rgba(255,255,255,.08)}.auth-story{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:26px;min-height:0;padding:32px 34px;border-bottom:1px solid var(--line);background:radial-gradient(circle at 82% 10%,rgba(53,231,255,.12),transparent 38%),linear-gradient(120deg,rgba(17,29,58,.94),rgba(8,13,29,.68))}.auth-story:after{width:290px;height:290px;right:-185px;bottom:-218px}.auth-kicker{margin:0 0 11px;font-size:.7rem}.auth-story-brand{font-size:clamp(1.35rem,3vw,2rem)}.auth-story h1{max-width:19ch;margin:11px 0 8px;font-size:clamp(1.55rem,3vw,2.15rem);line-height:1.05}.auth-story-copy{max-width:52ch;font-size:.88rem;line-height:1.55}.auth-assurance{grid-template-columns:1fr;min-width:166px;margin:0;gap:7px}.auth-assurance span{padding:9px 10px;border-radius:10px;font-size:.68rem}.auth-panel-wrap{padding:26px 34px 30px;border-left:0;background:linear-gradient(180deg,rgba(6,11,26,.38),rgba(5,9,20,.78))}.auth-panel{max-width:none;margin:0;padding:0}.auth-panel-eyebrow{margin-bottom:6px;font-size:.7rem}.auth-panel h2{font-size:1.55rem}.auth-panel-lede{margin:7px 0 17px;font-size:.88rem}.auth-status{margin-bottom:10px}.auth-provider-stack{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.auth-google,.auth-facebook{min-height:50px;border-radius:12px;font-size:.86rem}.auth-switch{text-align:left;margin:15px 0 0}.auth-trust{max-width:58ch;margin-top:13px;font-size:.73rem}@media(max-width:640px){.auth-stage{width:100%;border-radius:18px}.auth-story{display:block;padding:23px 20px}.auth-story:after{opacity:.3}.auth-story h1{max-width:20ch;font-size:1.48rem}.auth-story-copy{font-size:.84rem}.auth-assurance{display:none}.auth-panel-wrap{padding:22px 20px 24px}.auth-panel h2{font-size:1.42rem}.auth-provider-stack{grid-template-columns:1fr}.auth-google,.auth-facebook{min-height:47px}.auth-switch{margin-top:14px}.auth-trust{font-size:.71rem}}@media(max-width:560px){.auth-panel-wrap{order:1}.auth-story{order:2}}
.auth-stage{width:min(940px,100%);grid-template-columns:minmax(280px,.82fr) minmax(390px,1.18fr);min-height:570px;border-radius:24px;background:linear-gradient(145deg,rgba(13,20,39,.96),rgba(4,8,20,.98));box-shadow:0 28px 90px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,255,255,.08)}.auth-story{min-height:570px;padding:42px 38px;background:linear-gradient(165deg,rgba(10,18,38,.78),rgba(5,9,21,.28))}.auth-story:after{width:350px;height:350px;right:-185px;bottom:-175px}.auth-kicker{margin-bottom:14px;font-size:.72rem}.auth-story-brand{font-size:clamp(1.6rem,3vw,2.45rem)}.auth-story h1{max-width:13ch;margin:15px 0 12px;font-size:clamp(1.65rem,2.7vw,2.35rem);line-height:1.04}.auth-story-copy{max-width:30ch;font-size:.92rem}.auth-assurance{margin-top:30px;gap:8px}.auth-assurance span{padding:10px 11px}.auth-panel-wrap{position:relative;padding:28px;background:radial-gradient(circle at 100% 5%,rgba(99,124,247,.18),transparent 42%),linear-gradient(180deg,rgba(8,14,31,.82),rgba(5,9,21,.96))}.auth-panel{max-width:390px;padding:27px;border:1px solid rgba(117,173,255,.24);border-radius:18px;background:rgba(7,13,29,.64);box-shadow:0 20px 45px rgba(0,0,0,.24),inset 0 1px 0 rgba(255,255,255,.045)}.auth-panel-eyebrow{margin-bottom:7px}.auth-panel h2{font-size:1.7rem}.auth-panel-lede{margin:9px 0 19px;font-size:.9rem}.auth-provider-stack{gap:9px}.auth-google,.auth-facebook{min-height:47px;border-radius:12px;font-size:.9rem}.auth-switch{margin-top:15px}.auth-trust{margin-top:15px;font-size:.76rem}@media(max-width:760px){.auth-stage{grid-template-columns:1fr;min-height:0}.auth-panel-wrap{border-left:0;border-top:1px solid var(--line)}.auth-story{min-height:0;padding:28px}.auth-panel{max-width:440px}}@media(max-width:560px){.auth-stage{width:100%;border-radius:18px}.auth-panel-wrap{padding:16px}.auth-panel{padding:21px 18px}.auth-story{padding:22px 18px}.auth-story h1{max-width:18ch;font-size:1.5rem}.auth-story-copy{font-size:.86rem}.auth-assurance{margin-top:18px}.auth-assurance span{font-size:.68rem}.auth-trust{font-size:.72rem}}
