@font-face{font-family:OptimaNova;src:url(/branding/fonts/OptimaNovaLTProRegular.otf)format("opentype");font-display:swap;font-weight:400;font-style:normal}@font-face{font-family:OptimaNova;src:url(/branding/fonts/OptimaNovaLTProMedium.otf)format("opentype");font-display:swap;font-weight:500;font-style:normal}@font-face{font-family:OptimaNova;src:url(/branding/fonts/OptimaNovaLTProBold.otf)format("opentype");font-display:swap;font-weight:700;font-style:normal}:root{--bg:#0a0a0a;--surface:#161616;--surface-elevated:#1e1e1e;--border:#ffffff14;--border-light:#ffffff24;--text-primary:#fff;--text-secondary:#8a8a8a;--text-tertiary:#555;--accent:#3d7dd9;--accent-hover:#4a8ae0;--success:#34c759;--warning:#ff9500;--error:#ff3b30;--font-ui:"Inter", system-ui, -apple-system, sans-serif;--font-body:"OptimaNova", system-ui, sans-serif;--ease-out:cubic-bezier(.4, 0, .2, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1)}*{box-sizing:border-box;margin:0;padding:0}::selection{background:#3d7dd940}body{background:var(--bg);color:var(--text-primary);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none;width:100vw;height:100vh;font-size:16px;overflow:hidden}.kiosk{justify-content:center;align-items:center;width:100vw;height:100vh;display:flex;position:relative;overflow:hidden}.screen{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:48px;display:flex;position:absolute;inset:0}.screen-enter-forward{animation:slideInRight .3s var(--ease-out) forwards}.screen-exit-forward{animation:slideOutLeft .3s var(--ease-out) forwards}.screen-enter-back{animation:slideInLeft .3s var(--ease-out) forwards}.screen-exit-back{animation:slideOutRight .3s var(--ease-out) forwards}@keyframes slideInRight{0%{opacity:0;filter:blur(4px);transform:translate(40px)}to{opacity:1;filter:blur();transform:translate(0)}}@keyframes slideOutLeft{0%{opacity:1;filter:blur();transform:translate(0)}to{opacity:0;filter:blur(4px);transform:translate(-40px)}}@keyframes slideInLeft{0%{opacity:0;filter:blur(4px);transform:translate(-40px)}to{opacity:1;filter:blur();transform:translate(0)}}@keyframes slideOutRight{0%{opacity:1;filter:blur();transform:translate(0)}to{opacity:0;filter:blur(4px);transform:translate(40px)}}.kiosk-title{letter-spacing:-.02em;margin-bottom:12px;font-size:36px;font-weight:700;line-height:1.2}.kiosk-subtitle{font-size:20px;font-family:var(--font-body);color:var(--text-secondary);max-width:480px;line-height:1.5}.kiosk-label{letter-spacing:.06em;text-transform:uppercase;color:var(--text-tertiary);font-size:13px;font-weight:600}.kiosk-btn{height:60px;font-family:var(--font-ui);cursor:pointer;transition:transform .1s var(--ease-out), background .12s, opacity .12s;-webkit-tap-highlight-color:transparent;border:none;border-radius:16px;justify-content:center;align-items:center;padding:0 32px;font-size:18px;font-weight:600;display:flex}.kiosk-btn:active{transform:scale(.97)}.kiosk-btn-primary{background:var(--accent);color:#fff;width:100%;max-width:400px}.kiosk-btn-primary:hover{background:var(--accent-hover)}.kiosk-btn-primary:disabled{opacity:.3;cursor:default;transform:none}.kiosk-btn-ghost{color:var(--text-secondary);border:1px solid var(--border);background:0 0;width:100%;max-width:400px}.kiosk-btn-ghost:hover{color:var(--text-primary);background:#ffffff0a}.kiosk-btn-success{background:var(--success);color:#fff;width:100%;max-width:400px}.kiosk-back{border:1px solid var(--border);height:44px;color:var(--text-secondary);font-family:var(--font-ui);cursor:pointer;background:0 0;border-radius:12px;align-items:center;gap:6px;padding:0 16px;font-size:15px;font-weight:500;transition:background .12s,color .12s;display:flex;position:absolute;top:32px;left:32px}.kiosk-back:active{transform:scale(.97)}.kiosk-back:hover{color:var(--text-primary);background:#ffffff0a}.welcome-screen{gap:0}.welcome-glow{filter:blur(60px);opacity:0;pointer-events:none;background:radial-gradient(circle,#36b8c80f 0%,#3d7dd905 40%,#0000 70%);border-radius:50%;width:400px;height:400px;transition:opacity 1.6s ease-out;position:absolute;top:50%;left:50%;transform:translate(-50%,-60%)}.welcome-glow-visible{opacity:1}.welcome-logo-wrap{opacity:0;width:120px;height:120px;margin-bottom:40px;transition:transform 1.2s cubic-bezier(.16,1,.3,1),opacity .8s ease-out;transform:scale(.95)}.welcome-logo-ready{opacity:1;transform:scale(1)}.welcome-logo-svg{width:100%;height:100%;overflow:visible}.logo-path-blue,.logo-path-cyan{stroke-dasharray:1200;stroke-dashoffset:1200px;transition:stroke-dashoffset 1s cubic-bezier(.4,0,.2,1),fill-opacity .5s ease-out .8s}.welcome-logo-ready .logo-path-blue{stroke-dashoffset:0;fill-opacity:1;transition-delay:.2s,.9s}.welcome-logo-ready .logo-path-cyan{stroke-dashoffset:0;fill-opacity:1;transition-delay:.35s,1s}.logo-path-overlap{transition:fill-opacity .4s ease-out}.welcome-logo-ready .logo-path-overlap{fill-opacity:1;transition-delay:1.1s}.welcome-logo-ready .welcome-logo-svg{animation:4s ease-in-out 2s infinite logoBreathe}@keyframes logoBreathe{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}.welcome-content{opacity:0;transition:opacity .6s ease-out,transform .6s cubic-bezier(.16,1,.3,1);transform:translateY(12px)}.welcome-content-visible{opacity:1;transition-delay:1.3s;transform:translateY(0)}.welcome-clinic{letter-spacing:.18em;text-transform:uppercase;color:var(--text-tertiary);margin-bottom:12px;font-size:13px;font-weight:600}.welcome-title{letter-spacing:-.025em;color:var(--text-primary);font-size:42px;font-weight:700;line-height:1.15}.welcome-cta{opacity:0;margin-top:48px;transition:opacity .5s ease-out,transform .5s cubic-bezier(.16,1,.3,1),box-shadow 2s ease-in-out;transform:translateY(8px)}.welcome-cta-visible{opacity:1;transition-delay:1.6s,1.6s,2.2s;animation:3s ease-in-out 2.5s infinite ctaGlow;transform:translateY(0)}@keyframes ctaGlow{0%,to{box-shadow:0 0 #3d7dd900,0 4px 20px #3d7dd900}50%{box-shadow:0 0 0 6px #3d7dd914,0 4px 24px #3d7dd91f}}.welcome-footer{color:var(--text-tertiary);letter-spacing:.06em;opacity:0;font-size:12px;transition:opacity .5s ease-out;position:absolute;bottom:36px}.welcome-footer-visible{opacity:1;transition-delay:1.8s}.identify-tabs{background:var(--surface);border-radius:14px;gap:4px;margin-bottom:32px;padding:4px;display:flex}.identify-tab{height:44px;color:var(--text-secondary);font-family:var(--font-ui);cursor:pointer;background:0 0;border:none;border-radius:10px;padding:0 24px;font-size:15px;font-weight:500;transition:background .12s,color .12s}.identify-tab-active{background:var(--surface-elevated);color:var(--text-primary)}.identify-input-wrap{width:100%;max-width:400px;margin-bottom:24px}.identify-input{border:2px solid var(--border);background:var(--surface);width:100%;height:64px;color:var(--text-primary);font-family:var(--font-ui);text-align:center;letter-spacing:.04em;-webkit-tap-highlight-color:transparent;border-radius:16px;outline:none;padding:0 20px;font-size:24px;font-weight:500;transition:border-color .16s}.identify-input:focus{border-color:var(--accent)}.identify-input-error{border-color:var(--error);animation:.3s shake}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}.identify-error-msg{color:var(--error);margin-top:8px;font-size:14px}.numpad{grid-template-columns:repeat(3,1fr);gap:10px;width:100%;max-width:320px;margin-top:16px;margin-bottom:24px;display:grid}.numpad-key{border:1px solid var(--border);background:var(--surface);height:60px;color:var(--text-primary);font-family:var(--font-ui);cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:14px;justify-content:center;align-items:center;font-size:22px;font-weight:500;transition:background 80ms,transform 80ms;display:flex}.numpad-key:active{background:var(--surface-elevated);transform:scale(.95)}.numpad-key-empty{cursor:default;background:0 0;border:none}.numpad-key-delete{color:var(--text-secondary);font-size:16px}.returning-profile{opacity:0;flex-direction:column;align-items:center;transition:opacity .5s ease-out,transform .6s cubic-bezier(.16,1,.3,1);display:flex;transform:translateY(12px)}.returning-profile-visible{opacity:1;transform:translateY(0)}.returning-icon-wrap{border:1px solid var(--border);background:#ffffff0a;border-radius:14px;justify-content:center;align-items:center;width:52px;height:52px;margin-bottom:20px;display:flex}.returning-greeting{letter-spacing:.14em;text-transform:uppercase;color:var(--text-tertiary);margin:0 0 8px;font-size:13px;font-weight:600}.returning-name{letter-spacing:-.02em;margin:0 0 6px;font-size:36px;font-weight:700}.returning-contact{color:var(--text-secondary);margin:0;font-size:15px}.returning-verify{opacity:0;width:100%;max-width:380px;margin-top:36px;transition:opacity .4s ease-out .3s,transform .4s cubic-bezier(.16,1,.3,1) .3s;transform:translateY(8px)}.returning-verify-visible{opacity:1;transform:translateY(0)}.returning-verify-label{color:var(--text-secondary);text-align:center;margin:0 0 16px;font-size:16px}.dob-inputs{gap:12px;display:flex}.dob-field{flex:1}.dob-field-year{flex:1.4}.dob-field-label{letter-spacing:.08em;text-transform:uppercase;color:var(--text-tertiary);text-align:center;margin-bottom:8px;font-size:11px;font-weight:600;display:block}.dob-input{border:1px solid var(--border-light);background:var(--surface);width:100%;height:56px;color:var(--text-primary);font-family:var(--font-ui);text-align:center;letter-spacing:.06em;-webkit-tap-highlight-color:transparent;border-radius:14px;outline:none;font-size:24px;font-weight:600;transition:border-color .16s}.dob-input:focus{border-color:var(--accent)}.dob-input-error{border-color:var(--error)!important}.dob-input::placeholder{color:var(--text-tertiary);font-size:18px;font-weight:400}.dob-error{text-align:center;color:var(--error);margin-top:12px;font-size:14px}.returning-actions{opacity:0;flex-direction:column;gap:12px;width:100%;max-width:400px;margin-top:28px;transition:opacity .4s ease-out,transform .4s cubic-bezier(.16,1,.3,1);display:flex;transform:translateY(8px)}.returning-actions-visible{opacity:1;transition-delay:.5s;transform:translateY(0)}.new-patient-fields{flex-direction:column;gap:16px;width:100%;max-width:400px;margin:24px 0;display:flex}.new-patient-input{border:1px solid var(--border);background:var(--surface);width:100%;height:56px;color:var(--text-primary);font-family:var(--font-ui);border-radius:14px;outline:none;padding:0 20px;font-size:20px;transition:border-color .16s}.new-patient-input:focus{border-color:var(--accent)}.new-patient-input::placeholder{color:var(--text-tertiary)}.reason-grid{grid-template-columns:repeat(2,1fr);gap:12px;width:100%;max-width:480px;margin:24px 0;display:grid}.reason-btn{border:2px solid var(--border);background:var(--surface);height:72px;color:var(--text-primary);font-family:var(--font-ui);cursor:pointer;text-align:center;-webkit-tap-highlight-color:transparent;border-radius:16px;justify-content:center;align-items:center;padding:0 20px;font-size:16px;font-weight:500;transition:border-color .12s,background .12s,transform 80ms;display:flex}.reason-btn:active{transform:scale(.97)}.reason-btn-selected{border-color:var(--accent);color:var(--accent);background:#3d7dd914}.confirm-details{width:100%;max-width:400px;margin-top:36px}.confirm-item{text-align:center;padding:20px 0}.confirm-label{letter-spacing:.1em;text-transform:uppercase;color:var(--text-tertiary);margin-bottom:6px;font-size:12px;font-weight:600;display:block}.confirm-value{color:var(--text-primary);font-size:20px;font-weight:500;display:block}.confirm-divider{background:var(--border);height:1px}.complete-screen{gap:0}.complete-glow{filter:blur(50px);opacity:0;pointer-events:none;background:radial-gradient(circle,#34c75914 0%,#0000 70%);border-radius:50%;width:300px;height:300px;animation:1s ease-out .3s forwards glowIn;position:absolute;top:50%;left:50%;transform:translate(-50%,-65%)}@keyframes glowIn{to{opacity:1}}.complete-check-wrap{opacity:0;width:112px;height:112px;margin-bottom:36px;animation:.6s cubic-bezier(.34,1.56,.64,1) .15s forwards checkAppear;position:relative;transform:scale(.8)}@keyframes checkAppear{to{opacity:1;transform:scale(1)}}.complete-check{width:100%;height:100%}.complete-check .check-bg{stroke:var(--success);stroke-width:1.5px;opacity:.08}.complete-check .check-ring{stroke:var(--success);stroke-width:2.5px;stroke-linecap:round;stroke-dasharray:340;stroke-dashoffset:340px;transform-origin:60px 60px;animation:1s cubic-bezier(.4,0,.2,1) .2s forwards ringDraw;transform:rotate(-90deg)}@keyframes ringDraw{to{stroke-dashoffset:0}}.complete-check .check-path{stroke:var(--success);stroke-width:4.5px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:72;stroke-dashoffset:72px;animation:.5s cubic-bezier(.34,1.56,.64,1) .9s forwards tickDraw}@keyframes tickDraw{to{stroke-dashoffset:0}}.complete-title{letter-spacing:-.02em;opacity:0;font-size:36px;font-weight:700;animation:.5s cubic-bezier(.16,1,.3,1) .9s forwards contentUp;transform:translateY(10px)}.complete-position{color:var(--accent);letter-spacing:-.02em;opacity:0;margin:24px 0 6px;font-size:56px;font-weight:700;animation:.5s cubic-bezier(.16,1,.3,1) 1.1s forwards contentUp;transform:translateY(10px)}.complete-wait{color:var(--text-secondary);opacity:0;margin-bottom:0;font-size:18px;animation:.5s cubic-bezier(.16,1,.3,1) 1.2s forwards contentUp}.complete-instruction{font-size:17px;font-family:var(--font-body);color:var(--text-tertiary);opacity:0;max-width:340px;margin-top:32px;line-height:1.6;animation:.5s cubic-bezier(.16,1,.3,1) 1.4s forwards contentUp}@keyframes contentUp{to{opacity:1;transform:translateY(0)}}.complete-app-note{color:var(--accent);opacity:0;margin-top:16px;font-size:14px;animation:.5s cubic-bezier(.16,1,.3,1) 1.6s forwards contentUp}.countdown-ring{opacity:0;width:36px;height:36px;animation:.4s ease-out 1.6s forwards fadeIn;position:absolute;bottom:36px}.countdown-ring circle{fill:none;stroke-width:2px}.countdown-ring .ring-bg{stroke:#ffffff0d}.countdown-ring .ring-progress{stroke:#fff3;stroke-dasharray:113;stroke-dashoffset:0;transform-origin:50%;stroke-linecap:round;transform:rotate(-90deg)}.timeout-overlay{z-index:100;animation:fadeIn .3s var(--ease-out);background:#000000b3;flex-direction:column;justify-content:center;align-items:center;gap:20px;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.timeout-text{color:var(--text-primary);font-size:22px;font-weight:600}.timeout-sub{color:var(--text-secondary);font-size:16px}.fade-in{animation:fadeIn .4s var(--ease-out) forwards;opacity:0}.fade-in-delay-1{animation-delay:.2s}.fade-in-delay-2{animation-delay:.4s}.fade-in-delay-3{animation-delay:.6s}
