.auth-gate{position:fixed;inset:0;overflow-y:auto;display:flex;align-items:safe center;justify-content:center;padding:max(var(--space-page),env(safe-area-inset-top,0px)) max(var(--space-page),env(safe-area-inset-right,0px)) max(var(--space-page),env(safe-area-inset-bottom,0px)) max(var(--space-page),env(safe-area-inset-left,0px));box-sizing:border-box;background:radial-gradient(circle at top,color-mix(in srgb,var(--color-accent) 12%,transparent) 0%,transparent 30%),radial-gradient(circle at bottom,color-mix(in srgb,var(--color-accent-strong) 14%,transparent) 0%,transparent 35%),var(--color-bg);color:var(--color-text)}.auth-gate__card{width:min(100%,30rem);display:flex;flex-direction:column;gap:1rem;padding:var(--space-card);border-radius:var(--radius-card);border:1px solid var(--color-border);background:var(--color-surface-overlay);box-shadow:var(--shadow-card);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.auth-gate__eyebrow{margin:0;color:var(--color-text-muted)}.auth-gate__title{margin:0}.auth-gate__body{margin:0;color:var(--color-text-muted)}.auth-gate__card h1{margin:0;font-size:1.5rem}.auth-gate__card p{margin:0;color:var(--color-text-muted)}.auth-gate__form{gap:1.25rem}.auth-gate__copy{display:flex;flex-direction:column;gap:.5rem}.auth-gate__brand{display:flex;align-items:center;gap:1rem}.auth-gate__mark{width:52px;height:52px;flex-shrink:0;object-fit:contain}.auth-gate__field{display:flex;flex-direction:column;gap:.5rem;font-size:.95rem;color:var(--color-text-muted)}.auth-gate__field input{border:1px solid var(--color-border-strong);border-radius:var(--radius-control);padding:var(--space-control-y) var(--space-control-x);background:var(--color-surface-strong);color:var(--color-text);font:inherit;font-size:max(16px,1rem)}.auth-gate__field input:focus{outline:2px solid color-mix(in srgb,var(--color-accent) 50%,transparent);outline-offset:2px}.auth-gate__form button{width:100%}.auth-gate__hint a,.auth-gate__link{color:var(--color-link);text-decoration:underline}.auth-gate__actions{display:flex;flex-direction:column;align-items:flex-start;gap:.75rem;margin:0}.auth-gate__link--secondary{opacity:.88}.auth-gate__error{padding:var(--space-control-y) var(--space-control-x);border-radius:var(--radius-control);border:1px solid color-mix(in srgb,var(--color-danger) 35%,transparent);background:color-mix(in srgb,var(--color-danger) 10%,transparent);color:var(--color-danger-text)}.auth-gate--zen{background:radial-gradient(circle at 20% 15%,rgba(255,255,255,.22),transparent 35%),var(--color-bg);color:var(--color-text);font-family:var(--zen-font-family-mono)}.auth-gate--zen .auth-gate__card{width:min(100%,34rem);gap:1.25rem;padding:40px 38px;border-radius:28px;border:1px solid var(--color-border);background:var(--color-surface-soft);box-shadow:var(--shadow-card);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.auth-gate--zen .auth-gate__copy{gap:.75rem}.auth-gate--zen .auth-gate__brand{gap:18px;align-items:center}.auth-gate--zen .auth-gate__mark{width:58px;height:58px;opacity:.9}html[data-theme=dark] .auth-gate--zen .auth-gate__mark{filter:invert(88%) sepia(10%) saturate(271%) hue-rotate(356deg) brightness(101%) contrast(91%)}.auth-gate--zen .auth-gate__eyebrow{letter-spacing:.18em;text-transform:uppercase;font-size:var(--zen-text-eyebrow)}.auth-gate--zen .auth-gate__title{font-family:var(--zen-font-family-display);font-size:var(--zen-text-display-sm);line-height:1.05;font-weight:500}.auth-gate--zen .auth-gate__body,.auth-gate--zen .auth-gate__hint,.auth-gate--zen .auth-gate__field{color:var(--color-text-muted);font-size:var(--zen-text-caption);line-height:1.7}.auth-gate--zen .auth-gate__field{gap:10px}.auth-gate--zen .auth-gate__field span{text-transform:uppercase;letter-spacing:.14em;font-size:var(--zen-text-eyebrow)}.auth-gate--zen .auth-gate__field input{border:1px solid var(--color-border);border-radius:999px;padding:12px 16px;background:transparent;color:var(--color-text);font:inherit;font-size:max(16px,1rem)}.auth-gate--zen .auth-gate__field input::placeholder{color:var(--color-text-subtle)}.auth-gate--zen .auth-gate__field input:focus{outline:1px solid var(--color-border-strong);outline-offset:2px}.auth-gate--zen .auth-gate__form button{width:100%;border-radius:999px;border:1px solid var(--color-border);padding:12px 18px;background:var(--color-text);color:var(--color-bg);font:var(--zen-font-button);letter-spacing:.06em;box-shadow:none;transition:transform .15s ease,opacity .15s ease,background .15s ease}.auth-gate--zen .auth-gate__form button:hover:not([disabled]){transform:translateY(-1px);opacity:.9;box-shadow:none}.auth-gate--zen .auth-gate__form button[disabled]{opacity:.64}.auth-gate--zen .auth-gate__hint,.auth-gate--zen .auth-gate__link{color:var(--color-text-muted)}.auth-gate--zen .auth-gate__hint a,.auth-gate--zen .auth-gate__link{color:var(--color-text);text-decoration:none;border-bottom:1px solid var(--color-border-strong);width:fit-content}.auth-gate--zen .auth-gate__actions{gap:10px}.auth-gate--zen .auth-gate__error{border-radius:20px;border-color:#c444442e;background:#5c1414e0;color:#fff}@media(max-width:640px){.auth-gate__brand{gap:.75rem}.auth-gate--zen .auth-gate__card{padding:32px 26px}.auth-gate--zen .auth-gate__mark{width:46px;height:46px}}@media(max-height:480px){.auth-gate{padding:16px}.auth-gate--zen .auth-gate__card{padding:20px 22px;gap:.6rem}.auth-gate--zen .auth-gate__copy{gap:.4rem}.auth-gate--zen .auth-gate__brand{gap:12px}.auth-gate--zen .auth-gate__mark{width:38px;height:38px}.auth-gate--zen .auth-gate__body{font-size:12px;line-height:1.5}.auth-gate--zen .auth-gate__form{gap:.55rem}.auth-gate--zen .auth-gate__field{gap:4px}.auth-gate--zen .auth-gate__field input{padding:8px 14px}.auth-gate--zen .auth-gate__form button{padding:9px 16px}.auth-gate--zen .auth-gate__hint{font-size:11px;line-height:1.45}}.zen-calibration{position:fixed;inset:0;display:grid;place-items:center;pointer-events:auto;color:var(--zen-text, #f2ecdc);background:transparent;animation:zen-calibration-fade-in .32s ease-out both}.zen-calibration.is-exiting{animation:zen-calibration-fade-out .48s ease-in both}@keyframes zen-calibration-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes zen-calibration-fade-out{0%{opacity:1}to{opacity:0}}@media(prefers-reduced-motion:reduce){.zen-calibration,.zen-calibration.is-exiting{animation:none}}.zen-calibration-cancel{position:fixed;top:max(22px,env(safe-area-inset-top,0px));right:max(22px,env(safe-area-inset-right,0px));z-index:30;pointer-events:auto}@media(max-width:640px){.zen-calibration-cancel{top:max(12px,env(safe-area-inset-top,0px));right:max(12px,env(safe-area-inset-right,0px))}}@media(max-height:480px){.zen-calibration-cancel{top:max(8px,env(safe-area-inset-top,0px));right:max(8px,env(safe-area-inset-right,0px))}}.zen-calibration-toast{position:fixed;top:clamp(24px,6vh,64px);left:50%;transform:translate(-50%);z-index:40;padding:10px 18px;border-radius:999px;background:#141418b8;color:var(--zen-text, #f2ecdc);font-size:var(--zen-text-body);letter-spacing:.04em;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);box-shadow:0 8px 24px #00000038;pointer-events:none;animation:zen-calibration-toast 2.2s ease-out both}@keyframes zen-calibration-toast{0%{opacity:0;transform:translate(-50%,-8px)}12%{opacity:1;transform:translate(-50%)}82%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,-4px)}}@media(prefers-reduced-motion:reduce){.zen-calibration-toast{animation:none;opacity:1}}.zen-calibration-stage{position:relative;width:min(480px,var(--zen-canvas-size));aspect-ratio:1}.zen-calibration-enso{position:absolute;inset:0;border-radius:50%;overflow:hidden}.zen-calibration-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scaleX(-1);filter:blur(10px) saturate(.65) brightness(.65);opacity:.55;z-index:1}.zen-calibration-mask-slot{position:absolute;inset:0;z-index:2;display:flex;align-items:center;justify-content:center}.zen-calibration-mask-default{position:absolute;inset:0;background:radial-gradient(circle at center,#14141840,#14141859 60%,#14141800)}.zen-calibration-arc{position:absolute;inset:0;width:100%;height:100%;z-index:20;color:var(--zen-accent, #f2ecdc);pointer-events:none}.zen-calibration-copy{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:82%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:0 10px;box-sizing:border-box;text-align:center;z-index:20;pointer-events:none}.zen-calibration-copy button{pointer-events:auto}.zen-calibration-eyebrow{font-family:var(--zen-font-family-mono);font-size:var(--zen-text-eyebrow);letter-spacing:.18em;text-transform:uppercase;opacity:.6;margin:0}.zen-calibration-title{font-family:var(--zen-font-family-display);margin:0;font-weight:500;font-size:var(--zen-text-display-sm);line-height:1.2;overflow-wrap:break-word;width:100%}.zen-calibration-message{font-family:var(--zen-font-family-mono);margin:0;max-width:100%;opacity:.8;font-size:var(--zen-text-body);line-height:1.55;overflow-wrap:break-word}.zen-calibration-countdown{font-family:var(--zen-font-family-display);margin:4px 0 0;font-size:var(--zen-text-display-sm);font-variant-numeric:tabular-nums;opacity:.9}.zen-calibration-progress-text{font-family:var(--zen-font-family-mono);margin:0;font-size:var(--zen-text-caption);letter-spacing:.08em;opacity:.55}.zen-calibration-status{margin:4px 0 0;font-size:var(--zen-text-caption);letter-spacing:.06em;opacity:.5;font-style:italic}@media(max-width:640px){.zen-calibration-copy{width:70%;gap:10px;padding:0 12px}}.zen-onboarding-root{position:absolute;inset:0;pointer-events:none}.zen-onboarding-inner{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:var(--zen-content-size);height:var(--zen-content-size);padding:24px;pointer-events:none;transition:top .9s ease}@media(max-width:640px){.zen-onboarding-bell-slot{top:16px;height:40px}}.zen-onboarding-bell-slot{position:absolute;top:24px;left:0;right:0;height:52px;display:flex;align-items:center;justify-content:center}.zen-onboarding-bell-anim{color:var(--zen-text);animation:zen-onboarding-bell-pulse 2.8s ease-out both}.zen-onboarding-stack{display:flex;flex-direction:column;height:100%;width:100%;padding-bottom:12px;pointer-events:none}.zen-onboarding-stack:before{content:"";display:block;flex:none;min-height:48px}@media(max-width:640px){.zen-onboarding-stack:before{min-height:16px}.zen-onboarding-action-area{min-height:40px}.zen-onboarding-caption-wrapper{justify-content:flex-end;padding-bottom:8px}}@media(max-height:480px){.zen-onboarding-stack:before{min-height:16px}.zen-onboarding-action-area{min-height:36px}.zen-onboarding-caption-wrapper{justify-content:flex-end;padding-bottom:8px}}.zen-onboarding-caption-wrapper{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;padding:0}.zen-onboarding-caption{position:relative;width:100%;min-height:4em;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;pointer-events:none}.zen-onboarding-caption-slot{width:100%;text-align:center;animation:zen-caption-fade-in 1.4s ease both}.zen-onboarding-caption-slot.is-leaving{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;pointer-events:none;animation:zen-caption-fade-out 1.4s ease both}.zen-onboarding-caption-slot:not(.is-leaving){animation-delay:.7s}.zen-onboarding-caption-primary{font-family:var(--zen-font-family-display);font-size:var(--zen-text-display-sm);line-height:1.18;font-weight:500;color:var(--zen-text);margin:0 0 10px}.zen-onboarding-caption-sub{font-size:var(--zen-text-captions);color:var(--zen-muted);line-height:1.5;margin:0}.zen-onboarding-action-area{flex:none;display:flex;align-items:center;justify-content:center;min-height:28px;pointer-events:none}.zen-onboarding-action-row{display:flex;flex-direction:row;align-items:center;gap:12px;pointer-events:auto;animation:zen-caption-fade-in 1.4s ease both}.zen-onboarding-action-row>button{white-space:nowrap;flex-shrink:0}.zen-onboarding-action-area .zen-primary-button,.zen-onboarding-action-area .zen-secondary-button{pointer-events:auto;animation:zen-caption-fade-in 1.4s ease both}@keyframes zen-caption-fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes zen-caption-fade-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-4px)}}@keyframes zen-onboarding-bell-pulse{0%{opacity:0;transform:scale(.6)}12%{opacity:1;transform:scale(1.15)}30%{opacity:1;transform:scale(1)}75%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1)}}@media(prefers-reduced-motion:reduce){.zen-onboarding-caption-slot,.zen-onboarding-caption-slot.is-leaving,.zen-onboarding-action-row,.zen-onboarding-action-area .zen-primary-button,.zen-onboarding-action-area .zen-secondary-button,.zen-onboarding-skip,.zen-onboarding-bell-anim{animation:none!important}.zen-onboarding-pomodoro-overlay,.zen-onboarding-pomodoro-overlay.is-visible{transition:opacity 0s,visibility 0s,transform 0s;transform:translate(-50%,-50%)}.zen-onboarding-stats,.zen-onboarding-stats.is-visible,.zen-onboarding-stats-caption,.zen-onboarding-stats-caption.is-visible{transition:opacity 0s,visibility 0s}.demo-zen-app[data-ui-mode=onboarding] .zen-canvas-shell.ui-fadeable{transition-duration:0s}.zen-onboarding-inner{transition:none}}.zen-onboarding-pomodoro-overlay{position:absolute;left:50%;top:50%;display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;opacity:0;transform:translate(-50%,calc(-50% + 6px));transition:opacity 1.4s ease,transform 1.4s ease,visibility 0s linear 1.4s;visibility:hidden;pointer-events:none;z-index:5}.zen-onboarding-pomodoro-overlay.is-visible{opacity:1;transform:translate(-50%,-50%);visibility:visible;pointer-events:auto;transition:opacity 1.4s ease,transform 1.4s ease,visibility 0s linear 0s}.demo-zen-app[data-ui-mode=onboarding] .zen-canvas-shell.ui-fadeable{transition-duration:1.4s}.zen-onboarding-skip{pointer-events:auto;animation:zen-caption-fade-in 1.4s ease both;order:-1}.zen-onboarding-skip:hover{border-color:var(--zen-text)}.zen-onboarding-stats{gap:0;flex-direction:column;align-items:center;opacity:0;transition:opacity 1.4s ease,visibility 0s linear 1.4s;visibility:hidden;pointer-events:none;z-index:2}.zen-onboarding-stats.is-visible{opacity:1;visibility:visible;transition:opacity 1.4s ease,visibility 0s linear 0s}.zen-onboarding-stats .zen-session-stats{position:static;inset:auto;transform:none}.zen-onboarding-stats-caption{width:min(520px,75vw);margin-bottom:16px;text-align:center;opacity:0;transition:opacity 1.4s ease}.zen-onboarding-stats-caption.is-visible{opacity:1}.zen-onboarding-stats-caption .zen-onboarding-caption-primary{font-family:inherit;font-size:clamp(12px,2.2vmin,26px);line-height:1.5;font-weight:400;color:var(--zen-muted);margin:0}@media(max-height:480px){.zen-onboarding-stats{align-items:flex-start}.zen-onboarding-stats-caption{width:min(260px,30vw);text-align:left;margin-bottom:14px;align-self:stretch}.zen-onboarding-stats-caption .zen-onboarding-caption{align-items:flex-start;min-height:0}.zen-onboarding-stats-caption .zen-onboarding-caption-slot{text-align:left}}.pwa-banner{position:fixed;inset:auto 1rem 1rem;margin-inline:auto;max-width:28rem;display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-radius:.75rem;background:var(--color-bg-elevated, #1a1918);color:var(--color-text, #e8e0d4);box-shadow:var(--shadow-card, 0 8px 24px rgba(0, 0, 0, .35));border:1px solid var(--color-border, transparent);font-family:var(--font-family-base, system-ui, sans-serif);font-size:.875rem;z-index:1000}.pwa-banner__message{flex:1 1 12rem;min-width:0}.pwa-banner__actions{display:flex;gap:.5rem;flex:0 0 auto}.pwa-banner__primary,.pwa-banner__secondary{appearance:none;border:none;border-radius:999px;padding:.4rem .9rem;font:inherit;cursor:pointer}.pwa-banner__primary{background:var(--color-text, #e8e0d4);color:var(--color-bg, #121210)}.pwa-banner__secondary{background:transparent;color:inherit;border:1px solid currentColor;opacity:.8}.pwa-banner__primary:focus-visible,.pwa-banner__secondary:focus-visible{outline:2px solid currentColor;outline-offset:2px}
