.app-shell{--continue-button-font-size: clamp(16px, 3.8vw, 20px);--continue-button-font-size-mobile: 18px;position:fixed;inset:0;background:#f3f2f8;overflow:clip}.app-limited-notification{position:fixed;top:calc(12px + var(--app-safe-top, 0px));left:50%;transform:translate(-50%);width:calc(100% - 64px);z-index:9999;padding:12px 14px;background:#fde06aed;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-radius:20px;display:flex;align-items:center;gap:11px;box-shadow:0 4px 20px #a06e002e,0 1px 4px #00000014;animation:app-notification-drop .36s cubic-bezier(.34,1.56,.64,1) both;color:#7c4f00}.app-limited-notification-icon{flex-shrink:0;margin-top:0;display:flex;align-items:center;justify-content:center;color:#7c4f00}.app-limited-notification-body{flex:1;min-width:0}.app-limited-notification-title{margin:0;font-family:Nunito,sans-serif;font-size:14px;font-weight:800;line-height:1.25;color:#5c3700}.app-limited-notification-text{margin:2px 0 0;font-family:Radio Canada,sans-serif;font-size:13px;font-weight:400;line-height:1.4;color:#7c4f00}.app-limited-notification-close{flex-shrink:0;margin-top:0;padding:4px;background:none;border:none;cursor:pointer;color:#7c4f00;opacity:.7;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:opacity .15s;-webkit-tap-highlight-color:transparent}.app-limited-notification-close:hover{opacity:1}@keyframes app-notification-drop{0%{opacity:0;transform:translate(-50%) translateY(-72px) scale(.94)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}@keyframes app-notification-dismiss{0%{opacity:1;transform:translate(-50%) translateY(0) scale(1)}to{opacity:0;transform:translate(-50%) translateY(-48px) scale(.92)}}.app-limited-notification--error{background:#ffd2d2f2;box-shadow:0 4px 20px #b4282829,0 1px 4px #00000014;color:#9b1c1c}.app-limited-notification--error .app-limited-notification-title{color:#7f1d1d}.app-limited-notification--error .app-limited-notification-text,.app-limited-notification--error .app-limited-notification-close{color:#9b1c1c}.app-limited-notification--closing{animation:app-notification-dismiss .3s cubic-bezier(.4,0,1,1) forwards}@media(prefers-reduced-motion:reduce){.app-limited-notification,.app-limited-notification--closing{animation:none}}.startup-screen{position:fixed;inset:0;isolation:isolate;display:flex;flex-direction:column;align-items:center;padding:calc(24px + var(--app-safe-top)) calc(18px + var(--app-safe-right)) calc(30px + var(--app-safe-bottom)) calc(18px + var(--app-safe-left));color:#22222d;background:#f3f2f8;overflow:clip}.startup-screen.is-exiting{position:fixed;inset:0;z-index:40;pointer-events:none;animation:startup-exit-up .62s cubic-bezier(.76,0,.24,1) forwards;will-change:transform}.startup-background{position:absolute;left:0;bottom:0;width:100%;height:min(72vh,640px);object-fit:fill;object-position:center top;opacity:1;z-index:0;animation:startup-background-reveal .9s ease-out both;pointer-events:none}.startup-content,.startup-status{position:relative;z-index:1}.startup-content{flex:1 1 auto;width:100%;display:flex;align-items:center;justify-content:center;text-align:center}.startup-title{margin:0;font-family:Radio Canada,sans-serif;font-size:clamp(32px,7.2vw,44px);font-weight:700;line-height:1.05;letter-spacing:.01em;animation:startup-title-rise .62s cubic-bezier(.22,1,.36,1) both}.startup-status{width:100%;display:flex;flex-direction:column;align-items:center;gap:12px;padding-bottom:8px}.startup-spinner{width:28px;height:28px;border-radius:50%;border:2.5px solid rgba(27,110,234,.18);border-top-color:#1b6eea;animation:startup-spin .92s linear infinite}.startup-status-text{margin:0;min-height:20px;font-family:Nunito,sans-serif;font-size:16px;font-weight:800;line-height:1.2;color:#22222db8;animation:startup-status-fade .22s ease}.startup-notice{margin:0;max-width:320px;text-align:center;font-family:Radio Canada,sans-serif;font-size:13px;line-height:1.35}.startup-notice-error{color:#c32c2cf0}@keyframes startup-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes startup-background-reveal{0%{opacity:0;transform:translateY(18px) scale(1.03)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes startup-title-rise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes startup-status-fade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes startup-exit-up{0%{transform:translateY(0)}to{transform:translateY(-110%)}}@media(prefers-reduced-motion:reduce){.startup-background,.startup-title,.startup-status-text,.startup-spinner,.startup-screen.is-exiting{animation:none}}
