:root{--ink:#0f172a;--ink-soft:#475569;--line:#0f172a1f;--teal:#0d7377;--teal-soft:#ecfdf9;--paper:#f4f7f9;--radius:14px;--font-display:"Manrope", system-ui, sans-serif;--font-body:"IBM Plex Sans", system-ui, sans-serif}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%}body{font-family:var(--font-body);color:var(--ink);background:radial-gradient(ellipse 80% 60% at 0% 0%, #0d73771f, transparent 55%), var(--paper);margin:0}.shell{justify-content:center;align-items:center;min-height:100dvh;padding:1.25rem;display:flex}.shell.loading{background:var(--paper)}.login-shell{width:100%}.login-card{border-radius:calc(var(--radius) + 2px);border:1px solid var(--line);background:#fff;width:min(100%,420px);margin:0 auto;padding:2rem 1.75rem;box-shadow:0 18px 40px #0f172a14}.eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--teal);margin:0 0 .35rem;font-size:.72rem;font-weight:700}h1{font-family:var(--font-display);letter-spacing:-.03em;margin:0 0 .65rem;font-size:1.75rem}.lead{color:var(--ink-soft);margin:0 0 1.25rem;font-size:.92rem;line-height:1.55}.field{flex-direction:column;gap:.35rem;margin-bottom:.85rem;display:flex}.field span{color:var(--ink-soft);font-size:.78rem;font-weight:600}.field input{border:1.5px solid var(--line);width:100%;font:inherit;border-radius:10px;padding:.75rem .85rem;font-size:1rem}.field input:focus{border-color:var(--teal);outline:none;box-shadow:0 0 0 3px #0d73771f}.btn{width:100%;min-height:44px;font:inherit;cursor:pointer;border:none;border-radius:10px;justify-content:center;align-items:center;padding:.65rem 1rem;font-weight:700;display:inline-flex}.btn.primary{background:var(--teal);color:#fff}.btn.primary:disabled{opacity:.65;cursor:wait}.btn.ghost{color:var(--ink-soft);border:1.5px solid var(--line);background:0 0;margin-top:.55rem}.msg{margin:0 0 .75rem;font-size:.85rem}.msg.err{color:#b54a3a}.msg.ok{color:var(--teal)}.otp-sent{color:var(--ink-soft);margin:0 0 .85rem;font-size:.88rem}.video-shell{flex-direction:column;align-items:stretch;padding:0}.video-top{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffeb;justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 1.1rem;display:flex}.video-top .btn.ghost{width:auto;min-height:38px;margin:0;padding:.45rem .85rem}.video-stage{flex:1;justify-content:center;align-items:center;min-height:calc(100dvh - 64px);padding:1rem;display:flex}.video-wrap{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;width:min(100%,1100px);max-height:calc(100dvh - 96px);position:relative}.video-shield{z-index:2;pointer-events:none;position:absolute;inset:0}.demo-video{z-index:1;aspect-ratio:1280/618;object-fit:contain;border-radius:var(--radius);opacity:0;background:#000;width:100%;height:auto;max-height:calc(100dvh - 96px);transition:opacity .25s;display:block;position:relative;box-shadow:0 20px 48px #0f172a2e}.demo-video.is-ready{opacity:1}.video-loading,.video-error{z-index:4;border-radius:var(--radius);color:#fff;text-align:center;background:#0f172aeb;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;padding:1.25rem;display:flex;position:absolute;inset:0}.video-loading p,.video-error p{color:#ffffffe0;margin:0;font-size:.92rem;line-height:1.45}.video-error .btn.primary{width:auto;min-width:140px}.video-watermark{z-index:3;pointer-events:none;letter-spacing:.04em;color:#ffffff6b;text-shadow:0 1px 2px #0000008c;mix-blend-mode:soft-light;justify-content:flex-end;align-items:flex-end;padding:1rem 1.25rem;font-size:clamp(.65rem,1.6vw,.85rem);font-weight:600;display:flex;position:absolute;inset:0}.video-placeholder{text-align:center;border-radius:var(--radius);border:1px dashed var(--line);background:#fff;max-width:480px;padding:2rem 1.5rem}.video-placeholder h2{font-family:var(--font-display);margin:0 0 .5rem}.video-placeholder p{color:var(--ink-soft);margin:0;line-height:1.5}.video-placeholder .hint{margin-top:.75rem;font-size:.82rem}.spinner{border:3px solid #0d737726;border-top-color:var(--teal);border-radius:50%;width:36px;height:36px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=600px){.login-card{padding:1.5rem 1.15rem}.video-top{flex-wrap:wrap}.video-stage{align-items:stretch;min-height:calc(100dvh - 72px);padding:.65rem}.video-wrap{width:100%;min-height:min(56vw,100dvh - 120px);max-height:none}.demo-video{min-height:180px;max-height:calc(100dvh - 120px)}}
