/* ── Brand and layout tokens ───────────────────────────────────────────── */
    :root {
      color-scheme: light;
      --ink: #102953;
      --body: #344e72;
      --muted: #526b8c;
      --cyan: #00aee0;
      --blue: #1666ee;
      --line: rgba(255, 255, 255, .82);
      --font: 'Inter', 'Segoe UI', Arial, 'Noto Sans Thai', Tahoma, sans-serif;
      --thai: 'Noto Sans Thai', 'Leelawadee UI', Tahoma, sans-serif;
      --pointer-x: 0px;
      --pointer-y: 0px;
      --glass-radius: 32px;
    }
    *, *::before, *::after { box-sizing: border-box; }
    html { min-height: 100%; background: #e5edf8; -webkit-text-size-adjust: 100%; }
    body { margin: 0; min-width: 320px; min-height: 100vh; min-height: 100svh; font-family: var(--font); color: var(--ink); font-size: 15px; line-height: 1.55; -webkit-font-smoothing: antialiased; }
    button, input { font: inherit; }
    button { -webkit-tap-highlight-color: transparent; }
    button:not(:disabled) { cursor: pointer; }
    button:disabled { cursor: wait; }
    button, input { touch-action: manipulation; }
    svg { display: block; flex-shrink: 0; }
    img { display: block; max-width: 100%; }
    [lang="th"] { font-family: var(--thai); font-weight: 400; letter-spacing: 0; line-height: 1.85; }
    [lang="zh-Hans"] { font-family: 'Noto Sans SC', 'Microsoft YaHei', 'PingFang SC', sans-serif; letter-spacing: .03em; }
    [hidden] { display: none !important; }
    :focus-visible { outline: 3px solid #087eae; outline-offset: 5px; }
    ::selection { background: rgba(0, 174, 224, .2); color: #05255a; }
    .icon { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.65; stroke-linecap: round; stroke-linejoin: round; }
    .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
    .skip-link { position: fixed; left: 24px; top: -70px; z-index: 30; padding: 12px 18px; border-radius: 10px; background: white; color: #075f99; }
    .skip-link:focus { top: 18px; }

    /* ── Architecture, light, and a very quiet orbital animation ───────────── */
    .atmosphere { position: fixed; inset: 0; z-index: -1; overflow: hidden; background: #dceaff; pointer-events: none; }
    .parallax-world { position: absolute; inset: -20px; transform: translate3d(var(--pointer-x), var(--pointer-y), 0); transition: transform 1.2s cubic-bezier(.2,.65,.3,1); }
    .office { position: absolute; inset: 0; background-image: url("../img/login-office.71186b724fb6.jpg"); background-size: cover; background-position: center; }
    .wash { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(245,249,255,.23), rgba(238,247,255,.35) 43%, rgba(221,232,255,.1)), linear-gradient(0deg, rgba(226,238,255,.66), transparent 30%, transparent 75%, rgba(247,249,255,.28)); }
    .atmosphere::after { content: ''; position: absolute; inset: 0; background: radial-gradient(ellipse at 32% 43%, rgba(250,253,255,.5), transparent 49%), radial-gradient(ellipse at 64% 87%, rgba(183,168,255,.2), transparent 45%); }
    .ambient { position: absolute; border-radius: 50%; opacity: .76; will-change: transform; }
    .ambient-cyan { left: 40%; top: 9%; width: 550px; height: 550px; background: radial-gradient(circle, rgba(57,219,255,.31), rgba(149,231,255,.12) 45%, transparent 69%); animation: float-cyan 22s ease-in-out infinite alternate; }
    .ambient-lilac { width: 580px; height: 580px; right: 1%; bottom: -24%; background: radial-gradient(circle, rgba(193,150,255,.4), rgba(238,190,255,.1) 47%, transparent 70%); animation: float-lilac 28s ease-in-out infinite alternate; }
    .ambient-pearl { width: 610px; height: 610px; left: -6%; top: -27%; background: radial-gradient(circle, rgba(255,247,255,.91), transparent 68%); animation: float-pearl 26s ease-in-out infinite alternate; }
    .orbit-field { position: fixed; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; opacity: .85; }
    .orbit-art { position: absolute; width: 1360px; height: 820px; left: calc(50% - 555px); top: calc(50% - 410px); overflow: visible; }
    .orbit-path { fill: none; stroke: url(#orbit-gradient); stroke-width: 1.25; }
    .orbit-soft { fill: none; stroke: #a6f7ff; stroke-width: 7; opacity: .12; filter: blur(3px); }
    .orbit-traveler { offset-path: path('M 178 52 C 30 -32 113 203 583 425 C 1043 642 1290 621 1175 468 C 1063 316 321 86 178 52 Z'); animation: orbit-journey 48s linear infinite; }
    .orbit-traveler.second { animation-delay: -23s; }
    .orbit-glow { fill: #b8faff; opacity: .3; }
    .orbit-point { fill: #f8ffff; }
    .dust { position: absolute; border-radius: 50%; width: 5px; height: 5px; background: #fff; box-shadow: 0 0 14px 5px rgba(200,252,255,.55); animation: dust-drift 10s ease-in-out infinite alternate; }
    .dust.one { left: 17%; top: 29%; opacity: .6; }
    .dust.two { left: 46%; top: 78%; width: 3px; height: 3px; animation-delay: -4s; }
    .dust.three { left: 85%; top: 20%; width: 4px; height: 4px; animation-delay: -7s; }
    @keyframes float-cyan { to { transform: translate3d(-65px,45px,0) scale(1.12); } }
    @keyframes float-lilac { to { transform: translate3d(-90px,-45px,0) scale(.91); } }
    @keyframes float-pearl { to { transform: translate3d(65px,30px,0); } }
    @keyframes orbit-journey { to { offset-distance: 100%; } }
    @keyframes dust-drift { to { transform: translate3d(9px,-22px,0); opacity: .25; } }

    /* ── Frame ───────────────────────────────────────────────────────────── */
    .page { min-height: 100vh; min-height: 100svh; position: relative; display: grid; grid-template-rows: auto 1fr auto; padding: 28px 48px 24px; }
    .topbar, .footer { display: flex; align-items: center; justify-content: space-between; gap: 20px; position: relative; z-index: 2; }
    .topbar { min-height: 34px; }
    .top-label { display: flex; align-items: center; gap: 17px; color: #466283; font-size: 10px; font-weight: 600; letter-spacing: .22em; }
    .top-label::after { content: ''; width: 31px; height: 1px; background: #738dab; opacity: .6; }
    .top-tools { display: flex; align-items: center; gap: 21px; }
    .private-label { display: flex; align-items: center; gap: 7px; font-size: 11px; color: #455f80; }
    .private-label .icon { width: 13px; height: 13px; }
    .workspace { position: relative; z-index: 1; width: min(1100px,100%); justify-self: center; align-self: center; display: grid; grid-template-columns: minmax(0,1fr) 510px; gap: clamp(62px,6.5vw,112px); align-items: center; margin: 38px 0 34px; }
    .brand { position: relative; min-width: 0; padding: 12px 0 15px; }
    html[data-enhanced="true"] .brand { animation: reveal .9s cubic-bezier(.2,.7,.2,1) both; }
    .logo { width: 206px; height: auto; }
    .eyebrow { margin: 23px 0 16px; color: #516f96; font-size: 10px; line-height: 1.6; font-weight: 600; letter-spacing: .3em; }
    h1 { margin: 0; font-size: clamp(40px,3.36vw,55px); font-weight: 650; letter-spacing: -.052em; line-height: 1.1; color: #102651; }
    h1 .headline-line { white-space: nowrap; }
    h1 .accent { color: #009fd8; }
    .intro { margin: 18px 0 0; font-size: 15px; line-height: 1.75; color: var(--body); font-weight: 450; max-width: 370px; letter-spacing: -.014em; }
    .company { margin-top: 27px; color: #324d72; font-style: normal; font-size: 12px; line-height: 1.85; }
    .company::before { content: ''; display: block; width: 34px; height: 3px; background: linear-gradient(90deg,#02b6e5,#1478f7); margin-bottom: 18px; border-radius: 5px; }
    .company-name-en { font-size: 12px; font-weight: 550; letter-spacing: -.015em; }
    .company [lang="th"] { font-size: 13.5px; font-weight: 450; }
    .company [lang="zh-Hans"] { font-size: 12px; }
    .location { display: flex; align-items: center; gap: 5px; margin-top: 4px; font-size: 11px; color: #4c6689; }
    .location .icon { width: 12px; height: 12px; }
    .features { display: grid; grid-template-columns: repeat(3,1fr); gap: 9px; margin-top: 31px; }
    .feature { display: flex; align-items: center; gap: 9px; min-height: 63px; padding: 11px 12px; border: 1px solid rgba(255,255,255,.65); border-radius: 13px; background: linear-gradient(130deg,rgba(255,255,255,.49),rgba(255,255,255,.18)); box-shadow: 0 6px 20px rgba(87,128,187,.03), inset 0 1px rgba(255,255,255,.25); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }
    .feature .icon { width: 24px; height: 24px; color: #029de1; stroke-width: 1.5; }
    .feature-label { display: block; font-size: 9px; font-weight: 650; letter-spacing: .07em; }
    .feature [lang="th"] { display: block; font-size: 10px; color: #4e6a8e; white-space: nowrap; margin-top: 1px; }

    /* ── Frosted form with independent rim, depth, and reflected light ─────── */
    .login-area { position: relative; }
    html[data-enhanced="true"] .login-area { animation: reveal .95s .1s cubic-bezier(.2,.7,.2,1) both; }
    .login-area::before { content: ''; position: absolute; z-index: -1; left: 8%; right: 6%; height: 45px; bottom: 4px; border-radius: 50%; background: linear-gradient(90deg,rgba(0,212,255,.29),rgba(49,112,240,.18),rgba(203,136,251,.34)); filter: blur(19px); }
    .card-frame { position: relative; border-radius: var(--glass-radius); padding: 2px; isolation: isolate; background: transparent; box-shadow: 0 28px 75px -22px rgba(50,79,144,.26), 0 3px 8px rgba(41,101,186,.055), -5px 1px 19px -5px rgba(108,234,255,.7), 4px 13px 22px -11px rgba(235,173,255,.8); }
    .card-frame::after { content: ''; position: absolute; inset: 0; border-radius: inherit; padding: 2px; z-index: 3; pointer-events: none; background: linear-gradient(135deg,rgba(255,255,255,.99),rgba(224,250,255,.86) 26%,rgba(255,255,255,.45) 51%,rgba(255,255,255,.95) 74%,rgba(219,186,255,.98)); -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0); -webkit-mask-composite: xor; mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0); mask-composite: exclude; }
    .card-frame::before { content: ''; pointer-events: none; position: absolute; inset: -12px -13px -13px -13px; z-index: -1; border: 1px solid rgba(238,252,255,.53); border-radius: calc(var(--glass-radius) + 12px); background: linear-gradient(130deg,rgba(140,227,255,.07),transparent 45%,rgba(230,202,255,.08)); box-shadow: inset 0 1px 0 rgba(255,255,255,.12); }
    .login-card { position: relative; overflow: hidden; border-radius: calc(var(--glass-radius) - 2px); background: linear-gradient(120deg,rgba(249,253,255,.69),rgba(244,248,255,.54) 47%,rgba(232,237,255,.5)); backdrop-filter: blur(26px) saturate(130%); -webkit-backdrop-filter: blur(26px) saturate(130%); box-shadow: inset 0 0 0 1px rgba(255,255,255,.33), inset 0 2px 6px rgba(255,255,255,.6); }
    .login-card::before { content: ''; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(ellipse at 0 100%,rgba(107,231,255,.13),transparent 47%),radial-gradient(ellipse at 100% 100%,rgba(215,164,255,.22),transparent 43%); }
    .card-glint { position: absolute; pointer-events: none; height: 2px; width: 74px; background: linear-gradient(90deg,transparent,#fff,transparent); box-shadow: 0 0 15px #e8ffff; left: 18%; top: 0; animation: rim-light 16s ease-in-out infinite alternate; }
    .card-content { position: relative; padding: 39px 41px 35px; }
    .access-kicker { display: flex; justify-content: space-between; align-items: center; gap: 12px; color: #345171; font-size: 9px; font-weight: 650; letter-spacing: .25em; line-height: 1.6; }
    .access-kicker .icon { width: 17px; height: 17px; opacity: .68; }
    h2 { margin: 15px 0 7px; color: #102752; font-size: 31px; line-height: 1.24; letter-spacing: -.042em; font-weight: 650; }
    h2 .brand-accent { color: #116ae8; }
    .thai-heading { margin: 0; color: #324f76; font-size: 14px; }
    .form-intro { color: #516b8c; font-size: 12px; margin: 3px 0 0; line-height: 1.7; }
    .login-form { margin-top: 26px; }
    .field + .field { margin-top: 18px; }
    .field label { display: block; margin-bottom: 8px; font-size: 12px; font-weight: 550; color: #2e476a; }
    .field label .separator { color: #7086a2; font-weight: 400; padding: 0 4px; }
    .field label [lang="th"] { font-size: 12px; font-weight: 450; }
    .input-shell { position: relative; display: flex; align-items: center; min-height: 54px; border: 1px solid rgba(255,255,255,.99); border-radius: 11px; background: linear-gradient(110deg,rgba(255,255,255,.51),rgba(255,255,255,.23)); box-shadow: inset 0 1px 2px rgba(90,139,194,.055),0 2px 5px rgba(54,94,143,.02); transition: background .2s,border-color .2s,box-shadow .2s; }
    .input-shell > .icon { position: absolute; left: 15px; width: 19px; height: 19px; color: #537398; pointer-events: none; transition: color .2s; }
    .input-shell input { min-width: 0; display: block; width: 100%; height: 54px; padding: 13px 16px 13px 46px; font-size: 14px; color: #17365c; border: 0; border-radius: inherit; background: transparent; outline: none; box-shadow: none; appearance: none; -webkit-appearance: none; }
    .input-shell input::placeholder { color: #607b9c; opacity: 1; font-size: 13px; }
    .input-shell:focus-within { background: rgba(255,255,255,.7); border-color: #4babe7; box-shadow: 0 0 0 3px rgba(6,153,215,.13),0 4px 16px rgba(21,124,186,.035); }
    .input-shell:focus-within > .icon { color: #008aca; }
    .input-shell input:focus-visible { outline: none; }
    .input-shell.has-error { border-color: #bf5361; box-shadow: 0 0 0 3px rgba(166,45,74,.07); }
    input:-webkit-autofill { -webkit-text-fill-color: #17365c; transition: background-color 99999s; caret-color: #17365c; }
    #id_password { padding-right: 52px; }
    #id_password::-ms-reveal, #id_password::-ms-clear { display: none; }
    .password-toggle { position: absolute; right: 4px; top: 5px; display: grid; place-items: center; width: 44px; height: 44px; border: 0; background: transparent; color: #4e6f95; border-radius: 8px; }
    .password-toggle:hover { color: #087fac; background: rgba(255,255,255,.4); }
    .password-toggle .icon { width: 19px; height: 19px; }
    .field-error { color: #973b4c; font-size: 11px; line-height: 1.55; margin: 7px 1px 0; }
    .caps-warning { display: flex; align-items: center; gap: 6px; font-size: 11px; color: #71541a; margin-top: 9px; }
    .caps-warning .icon { width: 13px; height: 13px; }
    .submit-button { position: relative; display: flex; align-items: center; justify-content: center; gap: 9px; width: 100%; min-height: 53px; border: 1px solid rgba(22,145,255,.35); border-radius: 11px; overflow: hidden; margin-top: 25px; padding: 14px 44px; color: #fff; background: linear-gradient(105deg,#009cda 0%,#1274f5 53%,#577eff 100%); box-shadow: 0 6px 17px rgba(20,117,239,.18),inset 0 1px 0 rgba(255,255,255,.23),inset 0 -1px 0 rgba(14,78,196,.15); font-size: 14px; font-weight: 600; transition: transform .2s,box-shadow .2s,filter .2s; }
    .submit-button::before { content: ''; position: absolute; inset: 0; background: linear-gradient(100deg,transparent 20%,rgba(255,255,255,.16) 50%,transparent 80%); transform: translateX(-100%); transition: transform .65s; pointer-events: none; }
    .submit-button:hover:not(:disabled) { transform: translateY(-1px); filter: saturate(1.1); box-shadow: 0 9px 22px rgba(20,117,239,.26),inset 0 1px 0 rgba(255,255,255,.3); }
    .submit-button:hover::before { transform: translateX(100%); }
    .submit-button:active:not(:disabled) { transform: translateY(0); }
    .submit-button:disabled { opacity: .75; }
    .submit-button > .icon { position: absolute; right: 19px; top: 50%; transform: translateY(-50%); width: 19px; height: 19px; transition: right .2s; }
    .submit-button:hover:not(:disabled) > .icon { right: 15px; }
    .spinner { width: 15px; height: 15px; border: 2px solid rgba(255,255,255,.35); border-top-color: white; border-radius: 50%; animation: spin .65s linear infinite; }
    .security-note { position: relative; display: flex; align-items: center; gap: 12px; overflow: hidden; padding: 14px 16px 14px 19px; border: 1px solid rgba(255,255,255,.64); border-radius: 10px; margin-top: 19px; background: linear-gradient(110deg,rgba(230,250,255,.53),rgba(244,236,255,.44)); }
    .security-note::before { content: ''; width: 3px; position: absolute; top: 0; bottom: 0; left: 0; background: linear-gradient(#05b8e7,#1473ed); }
    .security-note > .icon { width: 23px; height: 25px; color: #087bef; }
    .security-en { margin: 0; font-size: 11px; font-weight: 500; line-height: 1.7; color: #365578; }
    .security-th { margin: 2px 0 0; font-size: 10.5px; color: #516987; }
    .form-message { margin: 16px 0 0; padding: 12px 14px; background: rgba(250,253,255,.76); border: 1px solid rgba(133,177,217,.5); border-radius: 10px; color: #375579; font-size: 12px; line-height: 1.65; overflow-wrap: anywhere; }
    .form-message.error { color: #8b3345; border-color: rgba(190,101,120,.45); }
    .form-message .errorlist { margin: 0; padding: 0; list-style: none; }
    .access-note { display: flex; justify-content: center; align-items: center; gap: 6px; margin: 20px 0 0; color: #4f6686; font-size: 9px; letter-spacing: .015em; text-align: center; }
    .access-note .icon { width: 11px; height: 11px; }
    .mobile-company { display: none; }
    .footer { color: #4c698d; font-size: 9px; }
    .footer-tagline { display: flex; align-items: center; gap: 17px; font-weight: 500; font-size: 9px; letter-spacing: .24em; }
    .footer-tagline::before { content: ''; width: 31px; height: 1px; background: rgba(84,118,155,.55); }
    .footer-meta { display: flex; gap: 12px; align-items: center; letter-spacing: .035em; }
    .footer-meta .dot { width: 3px; height: 3px; border-radius: 50%; background: #6e8dac; }
    @keyframes reveal { from { opacity: 0; transform: translate3d(0,15px,0); } to { opacity: 1; transform: translate3d(0,0,0); } }
    @keyframes rim-light { from { transform: translateX(0); opacity: .6; } to { transform: translateX(225px); opacity: 1; } }
    @keyframes spin { to { transform: rotate(360deg); } }

    /* ── Responsive, background-tab, and contrast fallbacks ──────────────── */
    html[data-page-hidden="true"] .ambient, html[data-page-hidden="true"] .orbit-traveler, html[data-page-hidden="true"] .dust, html[data-page-hidden="true"] .card-glint { animation-play-state: paused; }
    @supports not ((backdrop-filter: blur(10px)) or (-webkit-backdrop-filter: blur(10px))) { .login-card { background: rgba(239,247,255,.93); } .feature { background: rgba(255,255,255,.67); } }
    @media (min-width: 1600px) { .workspace { width: 1150px; grid-template-columns: minmax(0,1fr) 550px; gap: 105px; } .card-content { padding: 44px 45px 39px; } .logo { width: 222px; } h1 { font-size: 55px; } .login-form { margin-top: 30px; } .field + .field { margin-top: 21px; } .input-shell, .input-shell input { min-height: 57px; } .password-toggle { top: 6px; } .submit-button { min-height: 56px; margin-top: 28px; } .features { margin-top: 34px; } }
    @media (max-width: 1180px) and (min-width: 851px) { .page { padding: 24px 34px 22px; } .workspace { grid-template-columns: minmax(0,1fr) 435px; gap: 44px; } h1 { font-size: clamp(32px,3.8vw,43px); } .card-content { padding: 33px 30px 30px; } .logo { width: 180px; } .eyebrow { letter-spacing: .24em; font-size: 9px; } .intro { font-size: 13px; } .feature { padding: 10px 8px; gap: 7px; } .feature .icon { width: 20px; height: 20px; } .feature-label { font-size: 8px; } .feature [lang="th"] { font-size: 9px; } .company-name-en { font-size: 9px; } .company [lang="th"] { font-size: 11px; } .features { gap: 6px; } .thai-heading { font-size: 12px; } }
    @media (max-height: 800px) and (min-width: 851px) { .page { padding-top: 18px; padding-bottom: 16px; } .workspace { margin: 26px 0 23px; } .card-content { padding-top: 30px; padding-bottom: 29px; } .logo { width: 174px; } .eyebrow { margin-top: 18px; margin-bottom: 12px; } h1 { font-size: clamp(34px,3.45vw,49px); } .intro { margin-top: 14px; font-size: 13px; } .company { margin-top: 20px; } .company::before { margin-bottom: 12px; } .features { margin-top: 23px; min-height: 57px; } .feature { min-height: 57px; } .login-form { margin-top: 23px; } h2 { font-size: 29px; margin-top: 11px; } .access-note { margin-top: 17px; } }
    @media (max-height: 740px) and (min-width: 851px) { .page { padding-top: 14px; padding-bottom: 12px; } .workspace { margin-top: 16px; margin-bottom: 15px; } .card-content { padding-top: 27px; padding-bottom: 25px; } .access-note { margin-top: 15px; } }
    @media (max-width: 850px) { .page { padding: 21px 25px 21px; } .topbar { min-height: 36px; } .top-label { font-size: 9px; letter-spacing: .17em; gap: 11px; } .top-label::after { width: 20px; } .private-label { display: none; } .workspace { width: min(510px,100%); grid-template-columns: 1fr; gap: 29px; margin: 34px 0 36px; } .brand { padding: 0; text-align: center; } .logo { width: 135px; margin: 0 auto; } .eyebrow { margin: 17px 0 12px; font-size: 8px; letter-spacing: .25em; } h1 { font-size: 39px; line-height: 1.12; } .intro { max-width: 330px; font-size: 13px; margin: 13px auto 0; } .company, .features { display: none; } .card-content { padding: 31px 32px 29px; } .login-card { backdrop-filter: blur(20px) saturate(120%); -webkit-backdrop-filter: blur(20px) saturate(120%); background-color: rgba(236,245,255,.2); } .mobile-company { display: block; margin: -2px auto 0; text-align: center; color: #466282; font-size: 10px; line-height: 1.85; font-style: normal; } .mobile-company [lang="th"] { font-size: 11px; } .mobile-company [lang="zh-Hans"] { font-size: 11px; } .footer { justify-content: center; } .footer-meta { display: none; } .footer-tagline { font-size: 8px; } .orbit-art { left: calc(50% - 720px); top: 110px; opacity: .55; } .office { background-position: 40% center; } .wash { background: linear-gradient(110deg,rgba(245,250,255,.45),rgba(225,239,255,.5)); } .ambient { opacity: .55; } }
    @media (max-width: 420px) { :root { --glass-radius: 25px; } .page { padding-left: 23px; padding-right: 23px; } .top-tools { gap: 0; } .top-label { font-size: 8px; } .workspace { margin-top: 28px; gap: 28px; } .logo { width: 122px; } h1 { font-size: 35px; } .intro { font-size: 12px; } .card-content { padding: 28px 23px 25px; } h2 { font-size: 28px; } .access-kicker { font-size: 8px; letter-spacing: .2em; } .thai-heading { font-size: 11px; } .form-intro { font-size: 11px; } .login-form { margin-top: 23px; } .input-shell input { font-size: 16px; } .input-shell input::placeholder { font-size: 12px; } .security-note { gap: 9px; padding: 12px 10px 12px 14px; } .security-en { font-size: 9px; } .security-th { font-size: 9px; } .security-note > .icon { width: 21px; } .access-note { font-size: 8px; } .card-frame::before { inset: -8px; border-radius: calc(var(--glass-radius) + 8px); } }
    @media (max-width: 360px) { .page { padding-left: 18px; padding-right: 18px; } h1 { font-size: 31px; } .card-content { padding-left: 19px; padding-right: 19px; } h2 { font-size: 26px; } .thai-heading { font-size: 10px; } }
    @media (forced-colors: active) { .atmosphere, .orbit-field { display: none; } .card-frame, .login-card, .feature, .input-shell, .security-note { border: 1px solid CanvasText; background: Canvas; box-shadow: none; } .submit-button { border: 2px solid ButtonText; color: ButtonText; background: ButtonFace; } .logo { forced-color-adjust: none; } }

/* Respect the operating system's accessibility preference; normal motion stays on. */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .parallax-world { transform: none; }
}

