@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-wght-normal-ukD16Tqj.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2) format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/jetbrains-mono-latin-500-normal-BWZEU5yA.woff2) format("woff2")}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-serif:ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.table{display:table}.flex-shrink{flex-shrink:1}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rounded{border-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.p-1{padding:calc(var(--spacing) * 1)}.p-2{padding:calc(var(--spacing) * 2)}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.underline{text-decoration-line:underline}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.invert{--tw-invert:invert(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}}:root{--app-accent:#ff5247;--app-accent-nav:#ff5247;--app-accent-rgb:255, 82, 71;--app-on-accent:#3a0d09;--app-accent-glow:#ff524780;--app-accent-dim:#ff52471f;--app-success:var(--app-accent);--app-warn:#f59e0b;--app-danger:#d8453a;--app-on-media:#f4f4f7;--im-bg:#0a0a0c;--im-bg-2:#08080a;--im-text:#f4f4f7;--im-panel:#16181d;--im-panel-2:#1b1e25;--im-border:#ffffff14;--font-serif:"Fraunces Variable", ui-serif, Georgia, serif;--font-sans:"Inter Variable", system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, monospace}:root,:root[data-theme=light]{--app-bg:transparent;--app-bg-page:#fbf6ef;--app-bg-raise:#fff3e6;--app-modal-base:#fff3e6;--app-overlay-surface:var(--app-modal-base);--app-surface:transparent;--app-card:#ffffff8c;--app-border:#00000012;--app-text:#2a2622;--app-muted:#7c6d5e;--app-dim:#94856f;--app-warn-text:#b45309;--app-accent-text:#d8352a;--app-scrim:#2a262266;--app-ring-track:#00000012}:root[data-theme=dark]{--app-bg:transparent;--app-bg-page:#16181d;--app-bg-raise:#1b1e25;--app-modal-base:#1b1e25;--app-overlay-surface:var(--app-modal-base);--app-surface:transparent;--app-card:#ffffff0b;--app-border:#ffffff14;--app-text:#f4f4f7;--app-muted:#9b9aa6;--app-dim:#6e6d78;--app-warn-text:#f59e0b;--app-accent-text:#ff5247;--app-scrim:#0000008c;--app-ring-track:#ffffff17}*{box-sizing:border-box;touch-action:manipulation;margin:0;padding:0}img{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;pointer-events:none}.app-shell,.login-page,.pin-screen,.ob-screen,.admin-page,.photo-full{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}html,body,#app{background:var(--app-bg-page);min-height:100vh;color:var(--app-text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;overscroll-behavior:none;margin:0;overflow:hidden}.fz-serif{font-family:var(--font-serif)}.fz-mono{font-family:var(--font-mono)}.safe-top{padding-top:max(.75rem,env(safe-area-inset-top,0px))}.safe-top-header{padding-top:calc(3.5rem + max(.75rem,env(safe-area-inset-top,0px)))}.safe-bottom{padding-bottom:max(.5rem,env(safe-area-inset-bottom,0px))}.safe-bottom-nav{padding-bottom:calc(4.5rem + env(safe-area-inset-bottom,0px))}:is(button,[role=button]):focus-visible,[role=slider]:focus-visible,.settings-time-input:focus-visible,.modal-input:focus-visible{outline:2px solid var(--app-accent);outline-offset:2px}.app-locked{content-visibility:hidden}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#00000059;border-radius:2px}:root[data-theme=dark]::-webkit-scrollbar-thumb{background:#ffffff4d}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.page-content,.page-empty,.frames{animation:.15s ease-out fade-in}@keyframes fade-out{0%{opacity:1}to{opacity:0}}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-8px)}40%{transform:translate(8px)}60%{transform:translate(-6px)}80%{transform:translate(6px)}}@keyframes scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes slide-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:.2s ease-out fade-in}.animate-fade-out{animation:.2s ease-out forwards fade-out}.animate-shake{animation:.4s ease-out shake}.animate-scale-in{animation:.2s ease-out scale-in}.animate-slide-up{animation:.3s ease-out slide-up}@media(prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.login-page{background:var(--app-bg-page);justify-content:center;height:100svh;padding:32px 28px;display:flex;position:relative;overflow-y:auto}.login-glow{background:radial-gradient(circle,var(--app-accent-dim) 0%,transparent 70%);pointer-events:none;border-radius:50%;width:280px;height:280px;position:absolute;top:-104px;left:50%;transform:translate(-50%)}.login-content{opacity:0;width:100%;max-width:340px;margin:auto 0;transition:opacity .6s,transform .6s;transform:translateY(12px)}.login-content--visible{opacity:1;transform:translateY(0)}.login-brand{flex-direction:column;align-items:center;margin-bottom:40px;display:flex;position:relative}.login-logo-ring{border:1px solid var(--app-border);background:var(--app-accent-dim);border-radius:20px;justify-content:center;align-items:center;width:72px;height:72px;margin-bottom:20px;display:flex}.login-logo{opacity:.9;width:42px;height:42px;display:block}.login-title{color:var(--app-text);letter-spacing:-.5px;font-size:1.75rem;font-weight:700;line-height:1}.login-title-accent{color:var(--app-accent)}.login-subtitle{color:var(--app-muted);letter-spacing:.5px;margin-top:8px;font-size:.8rem}.login-form{flex-direction:column;gap:18px;display:flex}.login-label{color:var(--app-muted);text-transform:uppercase;letter-spacing:1.5px;margin-bottom:8px;padding-left:2px;font-size:.65rem;font-weight:600;display:block}.login-input-row{background:var(--app-bg);border:1px solid var(--app-border);border-radius:14px;align-items:center;height:52px;transition:border-color .2s,background .2s,box-shadow .2s;display:flex}.login-input-row:focus-within{border-color:var(--app-accent);box-shadow:0 0 0 3px var(--app-accent-dim)}.login-input-icon{width:44px;color:var(--app-dim);flex-shrink:0;justify-content:center;align-items:center;display:flex}.login-input-inner{height:100%;color:var(--app-text);-webkit-appearance:none;background:0 0;border:none;outline:none;flex:1;min-width:0;padding:0 14px 0 0;font-family:inherit;font-size:15px}.login-input-inner::placeholder{color:var(--app-dim)}.login-input-inner:-webkit-autofill{-webkit-box-shadow:0 0 0 1000px var(--app-bg-page) inset;-webkit-text-fill-color:var(--app-text);caret-color:var(--app-text);border-radius:14px;transition:background-color 9999s ease-out}.login-input-inner:-webkit-autofill:hover{-webkit-box-shadow:0 0 0 1000px var(--app-bg-page) inset;-webkit-text-fill-color:var(--app-text);caret-color:var(--app-text);border-radius:14px;transition:background-color 9999s ease-out}.login-input-inner:-webkit-autofill:focus{-webkit-box-shadow:0 0 0 1000px var(--app-bg-page) inset;-webkit-text-fill-color:var(--app-text);caret-color:var(--app-text);border-radius:14px;transition:background-color 9999s ease-out}.modal-input:-webkit-autofill{-webkit-box-shadow:0 0 0 1000px var(--app-bg-page) inset;-webkit-text-fill-color:var(--app-text);caret-color:var(--app-text);border-radius:14px;transition:background-color 9999s ease-out}.modal-input:-webkit-autofill:hover{-webkit-box-shadow:0 0 0 1000px var(--app-bg-page) inset;-webkit-text-fill-color:var(--app-text);caret-color:var(--app-text);border-radius:14px;transition:background-color 9999s ease-out}.modal-input:-webkit-autofill:focus{-webkit-box-shadow:0 0 0 1000px var(--app-bg-page) inset;-webkit-text-fill-color:var(--app-text);caret-color:var(--app-text);border-radius:14px;transition:background-color 9999s ease-out}.login-eye-btn{width:44px;height:100%;color:var(--app-dim);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.login-eye-btn:active{color:var(--app-muted)}.login-error{background:var(--app-danger);align-items:center;gap:10px;padding:12px 14px;display:flex}@supports (color:color-mix(in lab,red,red)){.login-error{background:color-mix(in srgb,var(--app-danger) 8%,transparent)}}.login-error{border:1px solid var(--app-danger)}@supports (color:color-mix(in lab,red,red)){.login-error{border:1px solid color-mix(in srgb,var(--app-danger) 20%,transparent)}}.login-error{color:var(--app-danger);border-radius:12px;font-size:.82rem;animation:.35s ease-out shake}.login-submit{cursor:pointer;background:var(--app-border);width:100%;height:52px;color:var(--app-dim);-webkit-tap-highlight-color:transparent;border:none;border-radius:14px;justify-content:center;align-items:center;gap:8px;margin-top:4px;font-family:inherit;font-size:15px;font-weight:600;transition:all .3s;display:flex}.login-submit--active{background:var(--app-accent);color:var(--app-on-accent);box-shadow:0 4px 24px var(--app-accent-dim)}.login-submit--active:active{transform:scale(.97)}.login-submit-text{letter-spacing:.2px}.login-submit-arrow{width:18px;height:18px;transition:transform .2s}.login-submit--active:active .login-submit-arrow{transform:translate(3px)}.login-spinner{border:2px solid #0000;border-top-color:currentColor;border-radius:50%;width:18px;height:18px;animation:.6s linear infinite login-spin}.login-toggle{text-align:center;color:var(--app-muted);margin-top:32px;font-size:.82rem}.login-toggle-btn{color:var(--app-accent);font-weight:600;font-size:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;padding:0;font-family:inherit}.login-toggle-btn:active{opacity:.7}.pin-screen{z-index:9999;background:var(--app-bg-page);justify-content:center;align-items:center;padding:0 24px;display:flex;position:fixed;inset:0}.pin-screen-inner{flex-direction:column;align-items:center;width:100%;max-width:300px;display:flex}.pin-header{text-align:center;flex-direction:column;align-items:center;margin-bottom:32px;display:flex}.pin-logo-wrap{justify-content:center;align-items:center;width:48px;height:48px;margin-bottom:16px;display:flex}.pin-logo{opacity:.85;width:36px;height:36px;display:block}.pin-title{font-family:var(--font-serif);color:var(--app-text);margin-bottom:6px;font-size:1.15rem;font-weight:600}.offline-icon{color:var(--app-muted);opacity:.5}.pin-subtitle{color:var(--app-muted);font-size:.82rem}.pin-subtitle--error{color:var(--app-danger)}.lock-signout{top:calc(10px + max(0px,env(safe-area-inset-top,0px)));right:calc(10px + max(0px,env(safe-area-inset-right,0px)));z-index:2;min-width:44px;min-height:44px;color:var(--app-dim);background:0 0;border:none;border-radius:22px;justify-content:center;align-items:center;gap:6px;padding:0 13px;transition:color .15s,background .15s;display:flex;position:absolute}.lock-signout--armed{color:var(--app-danger);background:var(--app-danger)}@supports (color:color-mix(in lab,red,red)){.lock-signout--armed{background:color-mix(in srgb,var(--app-danger) 10%,transparent)}}.lock-signout-label{font-size:.78rem;font-weight:600}.pin-dots{justify-content:center;gap:20px;margin-bottom:40px;display:flex}.pin-dot{border:2px solid var(--app-border);background:0 0;border-radius:50%;width:14px;height:14px;transition:all .15s}.pin-dot--filled{background:var(--app-accent);border-color:var(--app-accent);transform:scale(1.15)}.pin-dot--error{background:var(--app-danger);border-color:var(--app-danger);animation:.35s ease-out shake}.pin-dot--success{background:var(--app-success);border-color:var(--app-success);transform:scale(1.15)}.ob-screen{z-index:9999;background:var(--app-bg-page);-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;padding:0 28px;display:flex;position:fixed;inset:0}.ob-container{width:100%;max-width:340px}.ob-step{text-align:center;flex-direction:column;align-items:center;animation:.4s ease-out ob-enter;display:flex}.ob-step--back{animation:.4s ease-out ob-enter-back}@keyframes ob-enter{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}@keyframes ob-enter-back{0%{opacity:0;transform:translate(-30px)}to{opacity:1;transform:translate(0)}}.ob-icon-wrap{background:var(--app-accent-dim);border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;margin-bottom:24px;display:flex}.ob-icon-wrap--hero{width:80px;height:80px;margin-bottom:28px}.ob-icon-wrap--done{background:var(--app-accent)}.ob-icon{color:var(--app-accent);display:flex}.ob-icon-wrap--done .ob-icon{color:var(--app-on-accent)}.ob-title{font-family:var(--font-serif);color:var(--app-text);letter-spacing:-.5px;margin-bottom:12px;font-size:1.6rem;font-weight:600;line-height:1.15}.ob-desc{color:var(--app-muted);max-width:300px;font-size:.88rem;line-height:1.55}.ob-desc--sub{color:var(--app-dim);margin-top:10px;font-size:.82rem}.ob-hint{color:var(--app-warn-text);margin-top:8px;font-size:.78rem}.ob-dots{gap:8px;margin:28px 0;display:flex}.ob-error{color:var(--app-danger);text-align:center;margin-bottom:12px;font-size:.78rem}.ob-dot{background:var(--app-border);border-radius:50%;width:8px;height:8px;transition:all .3s}.ob-dot--active{background:var(--app-accent);border-radius:4px;width:24px}.ob-dot--done{background:var(--app-accent);opacity:.4}.ob-btn{cursor:pointer;-webkit-tap-highlight-color:transparent;border:none;border-radius:14px;justify-content:center;align-items:center;gap:8px;width:100%;height:52px;font-family:inherit;font-size:.92rem;font-weight:600;transition:opacity .15s,transform .1s;display:flex}.ob-btn:active{transform:scale(.98)}.ob-btn:disabled{opacity:.5;pointer-events:none}.ob-btn--primary{background:var(--app-accent);color:var(--app-on-accent)}.ob-btn--secondary{color:var(--app-accent);border:1px solid var(--app-accent);background:0 0;margin-top:10px}.ob-btn-icon{display:flex}.ob-back{color:var(--app-dim);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;margin-top:14px;padding:4px 12px;font-family:inherit;font-size:.82rem}.ob-back:active{color:var(--app-muted)}.ob-prefs{text-align:left;flex-direction:column;gap:24px;width:100%;margin-top:20px;display:flex}.ob-pref-group{flex-direction:column;display:flex}.ob-label{color:var(--app-muted);text-transform:uppercase;letter-spacing:1.2px;margin-bottom:10px;font-size:.72rem;font-weight:600}.ob-label-hint{color:var(--app-dim);margin-top:-6px;margin-bottom:10px;font-size:.75rem}.ob-time-row{align-items:center;gap:12px;display:flex}.ob-time-input{border:1px solid var(--app-border);background:var(--app-bg);height:44px;color:var(--app-text);text-align:center;appearance:none;border-radius:12px;flex:1;padding:0 12px;font-family:inherit;font-size:.9rem}.ob-time-input:focus{border-color:var(--app-accent);box-shadow:0 0 0 3px var(--app-accent-dim);outline:none}.ob-summary{background:var(--app-accent-dim);text-align:left;border-radius:14px;flex-direction:column;gap:12px;width:100%;margin-top:20px;padding:16px 20px;display:flex}.ob-summary-row{color:var(--app-text);align-items:center;gap:12px;font-size:.85rem;display:flex}.ob-summary-icon{color:var(--app-accent);display:flex}.pinpad{grid-template-columns:repeat(3,1fr);gap:14px;width:100%;max-width:280px;display:grid}.pinpad-key{aspect-ratio:1;background:var(--app-card);color:var(--app-text);cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;-webkit-user-select:none;user-select:none;border:none;border-radius:50%;justify-content:center;align-items:center;font-family:inherit;font-size:1.5rem;font-weight:500;transition:background .1s,transform .1s;display:flex}.pinpad-key:active{background:var(--app-border);transform:scale(.93)}.pinpad-key:disabled{opacity:.25;pointer-events:none}.pinpad-key--bio{color:var(--app-accent);background:0 0}.pinpad-key--bio:active{background:var(--app-border)}.pinpad-key--delete{color:var(--app-muted);background:0 0}.pinpad-key--delete:active{background:var(--app-border)}.cam-screen{z-index:100;background:var(--im-bg);color:var(--im-text);flex-direction:column;display:flex;position:fixed;inset:0;overflow:hidden}.cam-stage{justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.cam-frame{aspect-ratio:4/5;background:var(--im-panel);width:min(100vw,80vh);position:relative;overflow:hidden}.cam-video{object-fit:cover;width:100%;height:100%;transition:opacity .3s;position:absolute;inset:0}.cam-flash{z-index:12;background:var(--im-text);animation:.15s ease-out forwards cam-flash-anim;position:absolute;inset:0}@keyframes cam-flash-anim{0%{opacity:.8}to{opacity:0}}.cam-top{z-index:10;padding:12px 16px;padding-top:calc(12px + max(0px,env(safe-area-inset-top,0px)));grid-template-columns:1fr auto 1fr;align-items:center;display:grid;position:absolute;top:0;left:0;right:0}.cam-top>:first-child{justify-self:start}.cam-top>:last-child{justify-self:end}.cam-pill-btn{border:1px solid var(--im-border);background:var(--im-panel);border-radius:50%;width:44px;height:44px}@supports (color:color-mix(in lab,red,red)){.cam-pill-btn{background:color-mix(in srgb,var(--im-panel) 72%,transparent)}}.cam-pill-btn{-webkit-backdrop-filter:blur(12px);color:var(--im-text);cursor:pointer;-webkit-tap-highlight-color:transparent;justify-content:center;align-items:center;transition:transform .1s,background .1s;display:flex}.cam-pill-btn:active{background:var(--im-panel);transform:scale(.9)}@supports (color:color-mix(in lab,red,red)){.cam-pill-btn:active{background:color-mix(in srgb,var(--im-panel) 92%,transparent)}}.cam-day{font-family:var(--font-serif);color:var(--im-text);letter-spacing:.01em;text-shadow:0 1px 12px var(--im-bg);font-size:1.12rem;font-weight:500}@supports (color:color-mix(in lab,red,red)){.cam-day{text-shadow:0 1px 12px color-mix(in srgb,var(--im-bg) 70%,transparent)}}.cam-top-right{align-items:center;gap:8px;display:flex}.cam-ghost-toggle--on{color:var(--app-accent);border-color:var(--app-accent)}@supports (color:color-mix(in lab,red,red)){.cam-ghost-toggle--on{border-color:color-mix(in srgb,var(--app-accent) 55%,transparent)}}.cam-ghost-toggle--on{background:var(--app-accent)}@supports (color:color-mix(in lab,red,red)){.cam-ghost-toggle--on{background:color-mix(in srgb,var(--app-accent) 18%,var(--im-panel))}}.cam-ghost-toggle--on:active{background:var(--app-accent)}@supports (color:color-mix(in lab,red,red)){.cam-ghost-toggle--on:active{background:color-mix(in srgb,var(--app-accent) 26%,var(--im-panel))}}.cam-nudge-badge{bottom:calc(192px + max(0px,env(safe-area-inset-bottom,0px)));z-index:10;color:var(--app-accent);background:var(--im-panel);font-size:.72rem;font-weight:500;position:absolute;left:50%;transform:translate(-50%)}@supports (color:color-mix(in lab,red,red)){.cam-nudge-badge{background:color-mix(in srgb,var(--im-panel) 78%,transparent)}}.cam-nudge-badge{border:1px solid var(--im-border);-webkit-backdrop-filter:blur(8px);white-space:nowrap;border-radius:20px;padding:5px 14px}.cam-upload-pill{top:calc(64px + max(0px,env(safe-area-inset-top,0px)));z-index:12;color:var(--im-text);background:var(--im-panel);align-items:center;gap:8px;font-size:.78rem;font-weight:500;display:flex;position:absolute;left:50%;transform:translate(-50%)}@supports (color:color-mix(in lab,red,red)){.cam-upload-pill{background:color-mix(in srgb,var(--im-panel) 82%,transparent)}}.cam-upload-pill{border:1px solid var(--im-border);-webkit-backdrop-filter:blur(12px);border-radius:20px;padding:8px 18px;animation:.2s ease-out fade-in}.cam-spin-ic{animation:.8s linear infinite login-spin;display:inline-flex}.cam-bottom{z-index:10;padding:24px;padding-bottom:calc(32px + max(0px,env(safe-area-inset-bottom,0px)));justify-content:center;align-items:center;display:flex;position:absolute;bottom:0;left:0;right:0}.cam-shutter-row{justify-content:center;align-items:center;width:min(340px,100%);display:flex}.cam-shutter{cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-radius:50%;width:74px;height:74px;transition:transform .15s,opacity .15s;position:relative}.cam-shutter:active{transform:scale(.92)}.cam-shutter:disabled{opacity:.3;pointer-events:none}.cam-shutter-ring{width:100%;height:100%;position:absolute;inset:0}.cam-shutter-inner{background:var(--app-accent);box-shadow:0 0 16px var(--app-accent-glow);border-radius:50%;transition:transform .2s,background .2s,border-radius .3s;position:absolute;inset:8px}.cam-shutter:active .cam-shutter-inner{transform:scale(.85)}.cam-error{flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:32px;display:flex;position:absolute;inset:0}.cam-error-text{color:var(--im-text)}@supports (color:color-mix(in lab,red,red)){.cam-error-text{color:color-mix(in srgb,var(--im-text) 64%,transparent)}}.cam-error-text{text-align:center;font-size:.9rem}.cam-error-btn{border:1px solid var(--im-border);color:var(--app-accent);cursor:pointer;background:0 0;border-radius:12px;padding:13px 24px;font-family:inherit;font-size:.85rem}.cam-ghost{object-fit:cover;z-index:2;opacity:.28;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.cam-vignette{z-index:4;pointer-events:none;background:linear-gradient(to bottom,var(--im-bg) 0%,transparent 20%,transparent 64%,var(--im-bg) 100%);position:absolute;inset:0}@supports (color:color-mix(in lab,red,red)){.cam-vignette{background:linear-gradient(to bottom,color-mix(in srgb,var(--im-bg) 82%,transparent) 0%,transparent 20%,transparent 64%,color-mix(in srgb,var(--im-bg) 88%,transparent) 100%)}}.cam-overlay{z-index:6;pointer-events:none;position:absolute;inset:0}.cam-guide{border-top:1.5px dashed var(--app-accent);height:0;position:absolute;left:16%;right:16%}@supports (color:color-mix(in lab,red,red)){.cam-guide{border-top:1.5px dashed color-mix(in srgb,var(--app-accent) 38%,transparent)}}.cam-guide{opacity:.55;transition:border-color .18s,box-shadow .18s,opacity .18s;transform:translateY(-50%)}.cam-guide--ok{border-top-style:solid;border-top-color:var(--app-accent);opacity:1;box-shadow:0 0 14px var(--app-accent-glow)}.cam-reticle{border:1.5px solid var(--app-accent);border-radius:50%;width:56px;height:56px;margin:-28px 0 0 -28px;position:absolute}@supports (color:color-mix(in lab,red,red)){.cam-reticle{border:1.5px solid color-mix(in srgb,var(--app-accent) 35%,transparent)}}.cam-reticle{box-shadow:0 0 0 1px var(--im-bg)}@supports (color:color-mix(in lab,red,red)){.cam-reticle{box-shadow:0 0 0 1px color-mix(in srgb,var(--im-bg) 22%,transparent)}}.cam-reticle{opacity:.45;transition:border-color .18s,transform .18s,box-shadow .18s,opacity .18s}.cam-reticle--ok{border-width:2px;border-color:var(--app-accent);opacity:1;box-shadow:0 0 0 2px var(--app-accent),0 0 16px var(--app-accent-glow);transform:scale(.92)}.cam-prompt{left:50%;bottom:calc(150px + max(0px,env(safe-area-inset-bottom,0px)));z-index:10;color:var(--im-text);background:var(--im-panel);font-size:.82rem;font-weight:600;position:absolute;transform:translate(-50%)}@supports (color:color-mix(in lab,red,red)){.cam-prompt{background:color-mix(in srgb,var(--im-panel) 78%,transparent)}}.cam-prompt{border:1px solid var(--im-border);-webkit-backdrop-filter:blur(8px);white-space:nowrap;border-radius:20px;padding:7px 16px}.cam-prompt--ok{color:var(--app-accent);border-color:var(--app-accent)}@supports (color:color-mix(in lab,red,red)){.cam-prompt--ok{border-color:color-mix(in srgb,var(--app-accent) 45%,transparent)}}.cam-prompt--ok{background:var(--app-accent)}@supports (color:color-mix(in lab,red,red)){.cam-prompt--ok{background:color-mix(in srgb,var(--app-accent) 16%,var(--im-panel))}}.cam-prompt--ok:before{content:"✓ "}.cam-status{color:var(--im-text);background:var(--im-panel);align-items:center;gap:6px;font-size:.78rem;font-weight:500;display:flex}@supports (color:color-mix(in lab,red,red)){.cam-status{background:color-mix(in srgb,var(--im-panel) 72%,transparent)}}.cam-status{border:1px solid var(--im-border);-webkit-backdrop-filter:blur(10px);border-radius:20px;padding:7px 14px}.cam-status--center{z-index:10}.cam-perf{top:calc(64px + max(0px,env(safe-area-inset-top,0px)));z-index:20;font-family:var(--font-mono);color:var(--app-accent);background:var(--im-bg);font-size:.66rem;line-height:1.5;position:absolute;left:12px}@supports (color:color-mix(in lab,red,red)){.cam-perf{background:color-mix(in srgb,var(--im-bg) 70%,transparent)}}.cam-perf{pointer-events:none;border-radius:8px;padding:5px 8px}.cam-review{z-index:3;background:var(--im-bg);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:64px 16px 168px;display:flex;position:absolute;inset:0}.cam-review-frame{aspect-ratio:4/5;background:var(--im-panel);touch-action:none;border-radius:14px;width:min(78vw,60vh);position:relative;overflow:hidden}.cam-review-frame--adjust{outline:2px dashed var(--app-accent);outline-offset:2px}.cam-review-img{object-fit:cover;transform-origin:50%;will-change:transform;width:100%;height:100%}.cam-flags{flex-wrap:wrap;justify-content:center;gap:6px;max-width:90vw;display:flex}.cam-flag{color:var(--app-warn);background:var(--im-panel);font-size:.72rem;font-weight:500}@supports (color:color-mix(in lab,red,red)){.cam-flag{background:color-mix(in srgb,var(--im-panel) 70%,transparent)}}.cam-flag{border:1px solid var(--im-border);border-radius:14px;padding:3px 10px}.cam-flag--excluded{color:var(--app-danger)}@supports (color:color-mix(in lab,red,red)){.cam-flag--excluded{color:color-mix(in srgb,var(--app-danger) 65%,white)}}.cam-flag--excluded{border-color:var(--app-danger)}@supports (color:color-mix(in lab,red,red)){.cam-flag--excluded{border-color:color-mix(in srgb,var(--app-danger) 75%,white)}}.cam-exclude-note{text-align:center;max-width:min(78vw,340px);color:var(--im-text);opacity:.78;font-size:.78rem;line-height:1.45}.cam-adjust-hint{color:var(--im-text);font-size:.74rem}@supports (color:color-mix(in lab,red,red)){.cam-adjust-hint{color:color-mix(in srgb,var(--im-text) 62%,transparent)}}.cam-adjust-hint{text-align:center}.cam-review-actions{justify-content:center;align-items:center;gap:10px;width:100%;display:flex}.cam-btn{border:1px solid var(--im-border);cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:14px;align-items:center;gap:6px;padding:12px 18px;font-family:inherit;font-size:.85rem;font-weight:600;transition:transform .1s,opacity .1s;display:flex}.cam-btn:active{transform:scale(.96)}.cam-btn:disabled{opacity:.5;pointer-events:none}.cam-btn--ghost{background:var(--im-text)}@supports (color:color-mix(in lab,red,red)){.cam-btn--ghost{background:color-mix(in srgb,var(--im-text) 8%,transparent)}}.cam-btn--ghost{color:var(--im-text)}.cam-btn--primary{background:var(--app-accent);color:var(--app-on-accent);border-color:var(--app-accent)}.update-banner{top:calc(52px + max(.5rem,env(safe-area-inset-top,0px)));z-index:10000;pointer-events:none;padding:0 12px;animation:.3s ease-out slide-up;position:fixed;left:0;right:0}.update-banner-inner{background:var(--app-overlay-surface);border:1px solid var(--app-border);pointer-events:auto;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;display:flex;box-shadow:0 4px 20px #00000026}.update-banner-text{color:var(--app-text);font-size:.82rem;font-weight:500}.update-banner-btn{background:var(--app-accent);color:var(--app-on-accent);cursor:pointer;-webkit-tap-highlight-color:transparent;border:none;border-radius:8px;flex-shrink:0;padding:6px 14px;font-family:inherit;font-size:.78rem;font-weight:600}.update-banner-btn:active{opacity:.8}.push-reminder{top:calc(52px + max(.5rem,env(safe-area-inset-top,0px)));z-index:9998;pointer-events:none;padding:0 10px;animation:.3s ease-out slide-up;position:fixed;left:0;right:0}.push-reminder-inner{background:var(--app-overlay-surface);border:1px solid var(--app-border);pointer-events:auto;color:var(--app-muted);border-radius:10px;align-items:center;gap:8px;padding:8px 10px;display:flex;box-shadow:0 2px 12px #0000001a}.push-reminder-text{flex:1;font-size:.72rem;line-height:1.3}.push-reminder-action{background:var(--app-accent);color:var(--app-on-accent);cursor:pointer;-webkit-tap-highlight-color:transparent;border:none;border-radius:8px;flex-shrink:0;padding:8px 12px;font-family:inherit;font-size:.7rem;font-weight:600}.push-reminder-action:active{opacity:.8}.push-reminder-close{color:var(--app-muted);cursor:pointer;opacity:.6;-webkit-tap-highlight-color:transparent;background:0 0;border:none;flex-shrink:0;margin:-10px -8px -10px -6px;padding:13px;display:flex}.conn-banner{top:calc(52px + max(.5rem,env(safe-area-inset-top,0px)));z-index:9997;pointer-events:none;justify-content:center;padding:0 10px;animation:.3s ease-out slide-up;display:flex;position:fixed;left:0;right:0}.conn-banner-inner{background:var(--app-overlay-surface);border:1px solid var(--app-border);pointer-events:auto;max-width:420px;color:var(--app-muted);border-radius:999px;align-items:center;gap:8px;padding:8px 14px;display:flex;box-shadow:0 2px 12px #0000001a}.conn-banner-text{font-size:.72rem;line-height:1.3}.conn-banner-retry{color:var(--app-accent-text);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-radius:999px;flex-shrink:0;margin:-4px -6px -4px 0;padding:6px 12px;font-family:inherit;font-size:.7rem;font-weight:600}.conn-banner-retry:active{opacity:.7}.conn-retry-btn{background:var(--app-accent);color:var(--app-on-accent);cursor:pointer;-webkit-tap-highlight-color:transparent;border:none;border-radius:999px;padding:10px 22px;font-family:inherit;font-size:.8rem;font-weight:600}.conn-retry-btn:disabled{opacity:.6;cursor:default}.conn-retry-btn:active{opacity:.85}.notif-modal-overlay{z-index:100000;background:#00000080;justify-content:center;align-items:center;padding:24px;animation:.2s ease-out fade-in;display:flex;position:fixed;inset:0}.notif-modal{background:var(--app-overlay-surface);text-align:center;border-radius:16px;width:100%;max-width:340px;padding:28px 24px;box-shadow:0 8px 40px #00000040}.notif-modal-icon{background:var(--app-danger);border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;display:inline-flex}@supports (color:color-mix(in lab,red,red)){.notif-modal-icon{background:color-mix(in srgb,var(--app-danger) 10%,transparent)}}.notif-modal-icon{color:var(--app-danger);margin-bottom:16px}.notif-modal-title{color:var(--app-text);margin:0 0 10px;font-size:1.05rem;font-weight:600}.notif-modal-desc{color:var(--app-muted);margin:0 0 8px;font-size:.84rem;line-height:1.5}.notif-modal-desc--muted{margin-top:12px;font-size:.78rem}.notif-modal-steps{text-align:left;color:var(--app-muted);margin:8px 0 16px;padding-left:20px;font-size:.78rem;line-height:1.6}.notif-modal-steps li{margin-bottom:2px}.notif-modal-btn{background:var(--app-accent);width:100%;color:var(--app-on-accent);cursor:pointer;-webkit-tap-highlight-color:transparent;border:none;border-radius:12px;justify-content:center;align-items:center;gap:6px;margin-top:12px;padding:12px 20px;font-family:inherit;font-size:.88rem;font-weight:600;display:inline-flex}.notif-modal-btn:active{opacity:.8}.notif-modal-btn:disabled{opacity:.5;cursor:default}.notif-modal-dismiss{width:100%;color:var(--app-muted);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;margin-top:8px;padding:10px;font-family:inherit;font-size:.8rem;display:block}.error-page{background:var(--app-bg-page);justify-content:center;align-items:center;padding:32px;display:flex;position:fixed;inset:0}.error-page-inner{text-align:center;flex-direction:column;align-items:center;max-width:300px;display:flex}.error-page-logo{opacity:.4;width:48px;height:48px;margin-bottom:20px}.error-page-title{color:var(--app-text);margin-bottom:8px;font-size:1.1rem;font-weight:600}.error-page-msg{color:var(--app-muted);margin-bottom:24px;font-size:.8rem;line-height:1.4}.error-page-msg--detail{font-family:var(--font-mono);color:var(--app-dim);word-break:break-word;margin-bottom:24px;font-size:.68rem}.error-page-btn{background:var(--app-accent);color:var(--app-on-accent);cursor:pointer;-webkit-tap-highlight-color:transparent;border:none;border-radius:12px;padding:12px 28px;font-family:inherit;font-size:.88rem;font-weight:600}.error-page-btn:active{opacity:.8}@keyframes cam-dot-pulse{0%,to{opacity:1}50%{opacity:.3}}@keyframes login-spin{to{transform:rotate(360deg)}}@keyframes skeleton-pulse{0%,to{opacity:.08}50%{opacity:.15}}.skeleton-shimmer{background:var(--app-text);opacity:.08;animation:1.5s ease-in-out infinite skeleton-pulse}.skeleton-text{background:var(--app-text);opacity:.08;border-radius:4px;height:.75rem;animation:1.5s ease-in-out infinite skeleton-pulse;display:inline-block}.skeleton-item{pointer-events:none}.login-divider{color:var(--app-dim);align-items:center;gap:12px;margin:20px 0;font-size:.75rem;display:flex}.login-divider:before,.login-divider:after{content:"";background:var(--app-border);flex:1;height:1px}.login-passkey-btn{border:1px solid var(--app-border);width:100%;height:50px;color:var(--app-text);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border-radius:14px;justify-content:center;align-items:center;gap:8px;font-family:inherit;font-size:.88rem;transition:background .15s,border-color .15s;display:flex}.login-passkey-btn:active{opacity:.7}@keyframes login-field-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.app-shell{background:var(--app-bg-page);flex-direction:column;height:100vh;display:flex}.app-shell:after{content:"";background:linear-gradient(to bottom,transparent 0%,var(--app-bg-page) 100%);pointer-events:none;z-index:45;height:110px;opacity:var(--fade-opacity,1);position:fixed;bottom:0;left:0;right:0}.app-header{z-index:40;padding-top:max(.5rem,env(safe-area-inset-top,0px));background:0 0;border-bottom:none;flex-shrink:0;transition:box-shadow .2s}.app-header--scrolled{box-shadow:0 1px #0000000f}:root[data-theme=dark] .app-header--scrolled{box-shadow:0 1px #ffffff0f}.app-header-inner{justify-content:space-between;align-items:center;height:48px;padding:0 16px;display:flex}.app-header-brand{align-items:center;gap:8px;display:flex}.app-header-logo{width:24px;height:24px;display:block}.app-header-title{color:var(--app-text);letter-spacing:-.3px;font-size:1.1rem;font-weight:700}.app-header-title-accent{color:var(--app-accent)}.app-header-actions{align-items:center;gap:8px;display:flex}.pending-pill{color:var(--app-warn-text);background:var(--app-warn);align-items:center;gap:4px;font-size:.68rem;font-weight:600;display:flex}@supports (color:color-mix(in lab,red,red)){.pending-pill{background:color-mix(in srgb,var(--app-warn) 10%,transparent)}}.pending-pill{border:1px solid var(--app-warn)}@supports (color:color-mix(in lab,red,red)){.pending-pill{border:1px solid color-mix(in srgb,var(--app-warn) 20%,transparent)}}.pending-pill{border-radius:20px;padding:4px 10px;animation:.2s ease-out fade-in}.pending-pill-icon{align-items:center;display:flex}.app-header-btn{border:1px solid var(--app-border);width:44px;height:44px;color:var(--app-muted);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border-radius:12px;justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex}.app-header-btn:active{background:var(--app-border);color:var(--app-text)}.app-header-btn--active{background:var(--app-accent-dim);border-color:var(--app-accent);color:var(--app-accent)}.app-main{padding-bottom:calc(60px + max(.5rem,env(safe-area-inset-bottom,0px)));-webkit-overflow-scrolling:touch;scrollbar-color:#00000073 transparent;flex:1;overflow:hidden auto}:root[data-theme=dark] .app-main{scrollbar-color:#ffffff59 transparent}:root{--btm-bar-h:3.75rem;--btm-inset:12px}.app-main--btm{padding-bottom:calc(var(--btm-bar-h) + max(env(safe-area-inset-bottom,0px),8px) + 1rem)}.btm-bar{left:var(--btm-inset);right:var(--btm-inset);bottom:max(env(safe-area-inset-bottom,0px),8px);z-index:60;height:calc(var(--btm-bar-h) + 4px);max-width:520px;box-shadow:inset 0 1px #ffffffbf,inset 0 -1px 1px #ffffff38,0 18px 40px -18px var(--app-scrim);-webkit-backdrop-filter:blur(22px)saturate(180%);background:linear-gradient(#ffffff8c,#ffffff57);border:1px solid #ffffff9e;border-radius:999px;justify-content:space-around;align-items:stretch;margin:0 auto;padding:0 10px;display:flex;position:fixed;transform:translateZ(0)}:root[data-theme=dark] .btm-bar{background:linear-gradient(#3a3c4680,#1e202670);border-color:#ffffff24;box-shadow:inset 0 1px #ffffff1f,0 18px 40px -18px #0009}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.btm-bar,:root[data-theme=dark] .btm-bar{background:var(--app-overlay-surface)}}.btm-tab{height:100%;color:var(--app-muted);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;transition:color .18s,opacity .18s;display:flex}.btm-tab--active{color:var(--app-accent-text)}.btm-tab--active .btm-label{font-weight:700}.btm-tab:active{opacity:.6}.btm-label{letter-spacing:.2px;font-size:.65rem;font-weight:500}.btm-fab-slot{flex:1;justify-content:center;align-items:center;display:flex}.btm-fab{background:var(--app-accent);width:46px;height:46px;color:var(--app-on-accent);cursor:pointer;box-shadow:0 8px 18px -4px var(--app-accent-glow);-webkit-tap-highlight-color:transparent;border:none;border-radius:50%;justify-content:center;align-items:center;transition:transform .12s,background .25s,color .25s,box-shadow .25s;animation:2.6s ease-in-out infinite btm-fab-breathe;display:flex}.btm-fab:active{transform:scale(.92)}@keyframes btm-fab-breathe{0%,to{box-shadow:0 8px 18px -4px var(--app-accent-glow)}50%{box-shadow:0 8px 26px 1px var(--app-accent-glow)}}@media(prefers-reduced-motion:reduce){.btm-fab{animation:none}}.btm-fab--done{background:var(--app-accent-dim);color:var(--app-accent-text);box-shadow:none;animation:none}.btm-toast{left:50%;bottom:calc(var(--btm-bar-h) + max(env(safe-area-inset-bottom,0px),8px) + 16px);z-index:70;background:var(--app-overlay-surface);color:var(--app-text);border:1px solid var(--app-border);white-space:nowrap;box-shadow:0 10px 26px -10px var(--app-scrim);pointer-events:none;border-radius:999px;padding:9px 16px;font-size:.78rem;font-weight:600;animation:.2s ease-out btm-toast-in;position:fixed;transform:translate(-50%)}@keyframes btm-toast-in{0%{opacity:0;transform:translate(-50%)translateY(6px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.page-content{padding:16px}.page-title-row{align-items:baseline;gap:10px;margin-bottom:20px;padding:0 4px;display:flex}.page-title{color:var(--app-text);font-size:1.25rem;font-weight:700}.page-title-sub{color:var(--app-muted);font-size:.75rem}.page-empty{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:100%;padding:24px;display:flex}.page-empty-icon{color:var(--app-dim);opacity:.4;margin-bottom:16px}.page-empty-title{color:var(--app-muted);margin-bottom:4px;font-size:.9rem}.page-empty-sub{color:var(--app-dim);font-size:.78rem}.page-retry-btn{border:1px solid var(--app-accent);color:var(--app-accent);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border-radius:10px;margin-top:16px;padding:10px 28px;font-family:inherit;font-size:.85rem;font-weight:600}.page-retry-btn:active{opacity:.7}.frames{padding:8px 16px 16px}.fcal-chrome{margin-bottom:10px}.fcal-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;display:flex}.fcal-title{color:var(--app-text);letter-spacing:-.01em;font-size:1.5rem;font-weight:600}.fcal-nav{flex-shrink:0;align-items:center;gap:8px;display:flex}.fcal-nav-label{color:var(--app-text);text-align:center;min-width:8.5rem;font-size:.95rem;font-weight:600}.fcal-nav-btn{border:1px solid var(--app-border);width:30px;height:30px;color:var(--app-muted);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;transition:opacity .12s,transform .12s;display:inline-flex;position:relative}.fcal-nav-btn:after{content:"";position:absolute;inset:-8px}.fcal-nav-btn:active{transform:scale(.9)}.fcal-nav-btn:disabled{opacity:.3;cursor:default}.fcal-subhead{justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;display:flex}.fcal-meta{color:var(--app-muted);white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:.72rem;overflow:hidden}.fcal-lapse-btn{border:1px solid var(--app-accent);color:var(--app-accent);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border-radius:9px;flex-shrink:0;align-items:center;gap:6px;padding:7px 12px;font-family:inherit;font-size:.74rem;font-weight:600;display:inline-flex}.fcal-lapse-btn:active{opacity:.7}.fcal-dow{grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:6px;display:grid}.fcal-dow span{text-align:center;letter-spacing:.04em;color:var(--app-dim);font-size:.6rem;font-weight:600}.fcal-grid{grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.fcal-cell{aspect-ratio:1;background:var(--app-card);-webkit-tap-highlight-color:transparent;border-radius:9px;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.fcal-cell--empty{pointer-events:none;background:0 0}.fcal-cell--captured,.fcal-cell--today{cursor:pointer}.fcal-cell--captured:active,.fcal-cell--today:active{opacity:.85}.fcal-cell-img{object-fit:cover;width:100%;height:100%;transition:filter .18s,opacity .18s;display:block}.fcal-cell-day{font-family:var(--font-mono);color:var(--app-dim);font-size:.66rem}.fcal-cell--missed{border:1.5px dashed var(--app-dim);background:0 0}@supports (color:color-mix(in lab,red,red)){.fcal-cell--missed{border:1.5px dashed color-mix(in srgb,var(--app-dim) 60%,transparent)}}.fcal-cell--prehistory,.fcal-cell--future{background:var(--app-card);opacity:.5}.fcal-cell--today{box-shadow:inset 0 0 0 2px var(--app-accent)}.fcal-cell--today .fcal-cell-day{color:var(--app-accent);font-weight:600}.fcal-cell--excluded .fcal-cell-img{filter:grayscale();opacity:.4}.fcal-cell-excluded-dot{background:var(--app-accent);width:7px;height:7px;box-shadow:0 0 0 2px var(--app-bg-page);border-radius:50%;position:absolute;top:5px;right:5px}.frames-loading{border-radius:16px;width:min(260px,70vw);height:124px}.photo-full{z-index:99999;background:var(--app-bg-page);flex-direction:column;animation:.2s ease-out fade-in;display:flex;position:fixed;inset:0}.photo-full-close{left:16px;top:calc(16px + max(12px,env(safe-area-inset-top,0px)));z-index:10;background:var(--app-border);-webkit-backdrop-filter:blur(12px);width:44px;height:44px;color:var(--app-text);cursor:pointer;-webkit-tap-highlight-color:transparent;border:none;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute}.photo-full-close:active{transform:scale(.9)}.photo-full-actions{right:16px;top:calc(16px + max(12px,env(safe-area-inset-top,0px)));z-index:10;gap:8px;display:flex;position:absolute}.photo-full-action-btn{background:var(--app-border);-webkit-backdrop-filter:blur(12px);width:44px;height:44px;color:var(--app-text);cursor:pointer;-webkit-tap-highlight-color:transparent;border:none;border-radius:50%;justify-content:center;align-items:center;display:flex}.photo-full-action-btn:active{transform:scale(.9)}.photo-full-action-btn:disabled{opacity:.4}.photo-full-delete-overlay{z-index:20;background:#00000080;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.photo-full-delete-dialog{background:var(--app-overlay-surface);border:1px solid var(--app-border);text-align:center;border-radius:16px;width:min(280px,80vw);padding:24px}.photo-full-delete-title{color:var(--app-text);margin:0 0 4px;font-size:1rem;font-weight:600}.photo-full-delete-desc{color:var(--app-muted);margin:0 0 20px;font-size:.8rem}.photo-full-delete-btns{gap:10px;display:flex}.photo-full-delete-no{background:var(--app-surface);border:1px solid var(--app-border);color:var(--app-text);cursor:pointer;border-radius:10px;flex:1;padding:10px;font-size:.85rem;font-weight:500}.photo-full-delete-yes{background:var(--app-danger);color:var(--app-on-media);cursor:pointer;border:none;border-radius:10px;flex:1;padding:10px;font-family:inherit;font-size:.85rem;font-weight:600}.photo-full-delete-yes:disabled{opacity:.5}.photo-full-title{left:50%;top:calc(16px + max(12px,env(safe-area-inset-top,0px)));color:var(--app-text);letter-spacing:-.3px;z-index:2;white-space:nowrap;font-size:.95rem;font-weight:700;position:absolute;transform:translate(-50%)}.photo-full-title+.photo-full-counter{top:calc(40px + max(12px,env(safe-area-inset-top,0px)))}.photo-full-counter{left:50%;top:calc(22px + max(12px,env(safe-area-inset-top,0px)));color:var(--app-muted);letter-spacing:1px;font-size:.72rem;font-weight:600;position:absolute;transform:translate(-50%)}.photo-full-strip{will-change:transform;flex:1;width:300vw;min-height:0;display:flex;transform:translate(-100vw)}.photo-full-slide{width:100vw;padding:16px;padding-top:calc(60px + max(12px,env(safe-area-inset-top,0px)));flex-shrink:0;justify-content:center;align-items:center;display:flex;overflow:hidden}.photo-full-img{object-fit:contain;border-radius:16px;max-width:100%;max-height:100%}.photo-full-frame{justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:relative}.photo-full-frame .photo-full-img{position:absolute}.photo-full-img--thumb{filter:blur(10px);opacity:.55;transform:scale(1.02)}.photo-full-img--full{z-index:1;background:var(--app-bg-page)}.photo-full-info{padding:16px 20px 24px;padding-bottom:calc(24px + max(0px,env(safe-area-inset-bottom,0px)))}.photo-full-excluded{background:var(--app-warn);border-radius:10px;align-items:center;gap:8px;margin-bottom:12px;padding:8px 12px;display:flex}@supports (color:color-mix(in lab,red,red)){.photo-full-excluded{background:color-mix(in srgb,var(--app-warn) 12%,transparent)}}.photo-full-excluded{border:1px solid var(--app-warn)}@supports (color:color-mix(in lab,red,red)){.photo-full-excluded{border:1px solid color-mix(in srgb,var(--app-warn) 30%,transparent)}}.photo-full-excluded{color:var(--app-warn-text);font-size:.78rem;font-weight:500}.photo-full-excluded-text{flex:1}.photo-full-include-btn{background:var(--app-warn);border:none;border-radius:8px;flex-shrink:0;min-height:30px;padding:5px 12px}@supports (color:color-mix(in lab,red,red)){.photo-full-include-btn{background:color-mix(in srgb,var(--app-warn) 22%,transparent)}}.photo-full-include-btn{color:var(--app-warn-text);-webkit-tap-highlight-color:transparent;font-family:inherit;font-size:.75rem;font-weight:600}.photo-full-include-btn:active{opacity:.8}.photo-full-row{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:3px;display:flex}.photo-full-date{font-family:var(--font-serif);color:var(--app-text);font-size:1.05rem;font-weight:600}.photo-full-time{color:var(--app-muted);font-size:.74rem}.settings-section{margin-bottom:24px}.settings-section-title{text-transform:uppercase;letter-spacing:1.5px;color:var(--app-muted);margin-bottom:8px;padding:0 4px;font-size:.65rem;font-weight:600}.settings-row-link{font:inherit;color:var(--app-accent);cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.announcement-overlay{-webkit-backdrop-filter:blur(8px);padding:20px;padding-bottom:calc(20px + env(safe-area-inset-bottom,0px));z-index:9999;background:#0000008c;justify-content:center;align-items:center;animation:.22s ease-out announcement-fade;display:flex;position:fixed;inset:0}@keyframes announcement-fade{0%{opacity:0}to{opacity:1}}.announcement-card{background:var(--app-overlay-surface);border:1px solid var(--app-border);width:100%;max-width:360px;box-shadow:0 20px 60px #00000073,0 0 0 1px var(--app-accent);border-radius:22px;padding:30px 22px 22px;position:relative}@supports (color:color-mix(in lab,red,red)){.announcement-card{box-shadow:0 20px 60px #00000073,0 0 0 1px color-mix(in srgb,var(--app-accent) 10%,transparent)}}.announcement-card{animation:.32s cubic-bezier(.2,.9,.3,1.25) announcement-pop}@keyframes announcement-pop{0%{opacity:0;transform:translateY(12px)scale(.94)}to{opacity:1;transform:translateY(0)scale(1)}}.announcement-close{color:var(--app-muted);cursor:pointer;background:0 0;border:none;border-radius:10px;justify-content:center;align-items:center;padding:13px;transition:color .15s,background .15s;display:flex;position:absolute;top:4px;right:4px}.announcement-close:hover,.announcement-close:focus-visible{color:var(--app-text);background:var(--app-surface);outline:none}.announcement-icon-wrap{background:radial-gradient(circle at 30% 30%,var(--app-accent),var(--app-accent));border-radius:20px;width:64px;height:64px}@supports (color:color-mix(in lab,red,red)){.announcement-icon-wrap{background:radial-gradient(circle at 30% 30%,color-mix(in srgb,var(--app-accent) 35%,transparent),color-mix(in srgb,var(--app-accent) 15%,transparent))}}.announcement-icon-wrap{color:var(--app-accent);box-shadow:0 4px 16px var(--app-accent);justify-content:center;align-items:center;margin:0 auto 18px;display:flex}@supports (color:color-mix(in lab,red,red)){.announcement-icon-wrap{box-shadow:0 4px 16px color-mix(in srgb,var(--app-accent) 20%,transparent)}}.announcement-icon-wrap{animation:.6s ease-out .15s both announcement-wiggle}@keyframes announcement-wiggle{0%{transform:rotate(0)scale(.8)}30%{transform:rotate(-8deg)scale(1.05)}60%{transform:rotate(6deg)scale(1)}to{transform:rotate(0)scale(1)}}.announcement-title{text-align:center;color:var(--app-text);letter-spacing:-.01em;margin:0 0 10px;font-size:1.2rem;font-weight:700}.announcement-body{color:var(--app-muted);text-align:center;margin:0 0 22px;font-size:.92rem;line-height:1.55}.announcement-actions{flex-direction:column;gap:4px;display:flex}.announcement-cta{background:var(--app-accent);color:var(--app-on-accent);cursor:pointer;border:none;border-radius:14px;padding:13px 18px;font-family:inherit;font-size:.95rem;font-weight:600;transition:transform 80ms ease-out,filter .15s}.announcement-cta:hover{filter:brightness(1.05)}.announcement-cta:active{transform:scale(.98)}.announcement-cta:disabled{opacity:.6;cursor:default}.announcement-later{color:var(--app-muted);cursor:pointer;background:0 0;border:none;border-radius:10px;padding:10px;font-family:inherit;font-size:.85rem;transition:color .15s,background .15s}.announcement-later:hover{color:var(--app-text)}.recap-card{text-align:center}.recap-kicker{color:var(--app-dim);text-transform:uppercase;letter-spacing:.06em;margin:0 0 4px;font-size:.68rem;font-weight:600}.recap-hero{justify-content:center;align-items:baseline;gap:8px;margin:14px 0 16px;display:flex}.recap-hero-num{letter-spacing:-.02em;color:var(--app-text);font-size:2.6rem;font-weight:700;line-height:1}.recap-hero-label{color:var(--app-muted);font-size:.9rem}.recap-days{justify-content:center;gap:6px;margin-bottom:16px;display:flex}.recap-day{flex-direction:column;align-items:center;gap:4px;display:flex}.recap-day-img,.recap-day-empty{object-fit:cover;border-radius:9px;width:36px;height:36px}.recap-day-empty{border:1px dashed var(--app-border)}.recap-day-label{color:var(--app-dim);font-size:.6rem;font-weight:600}.recap-hero-delta{margin:-10px 0 14px;font-size:.72rem;font-weight:600}.recap-hero-delta--up{color:var(--app-success)}.recap-hero-delta--flat{color:var(--app-dim)}.recap-narrative{margin-bottom:14px}.recap-narrative p{color:var(--app-text);margin:0 0 2px;font-size:.85rem;line-height:1.5}.recap-tiles{gap:8px;margin-bottom:14px;display:flex}.recap-tile{border:1px solid var(--app-border);border-radius:12px;flex-direction:column;flex:1;align-items:center;gap:2px;padding:10px 4px;display:flex}.recap-tile b{color:var(--app-text);letter-spacing:-.01em;font-size:1rem;font-weight:700}.recap-tile>span{color:var(--app-dim);text-transform:uppercase;letter-spacing:.04em;font-size:.62rem}.recap-tile-delta{font-size:.64rem;font-weight:600}.recap-tile-delta--up{color:var(--app-success)}.recap-tile-delta--flat{color:var(--app-dim)}.recap-texture{color:var(--app-muted);flex-wrap:wrap;justify-content:center;gap:10px;margin-bottom:12px;font-size:.76rem;display:flex}.recap-streak-badge{color:var(--app-warn);background:var(--app-warn);align-items:center;gap:5px;font-size:.78rem;font-weight:600;display:inline-flex}@supports (color:color-mix(in lab,red,red)){.recap-streak-badge{background:color-mix(in srgb,var(--app-warn) 12%,transparent)}}.recap-streak-badge{border-radius:14px;margin:0 auto 12px;padding:5px 12px}.recap-quote{color:var(--app-muted);margin:0 0 16px;font-size:.8rem;font-style:italic}.recap-cta{background:var(--app-accent);width:100%;color:var(--app-on-accent);cursor:pointer;border:none;border-radius:14px;padding:13px 18px;font-family:inherit;font-size:.95rem;font-weight:600;transition:transform 80ms ease-out,filter .15s}.recap-cta:active{transform:scale(.98)}.settings-divider{background:var(--app-border);height:1px;margin:0 16px}.settings-chips{gap:6px;display:flex}.settings-chip{border:1px solid var(--app-border);width:36px;height:36px;color:var(--app-muted);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border-radius:10px;font-family:inherit;font-size:.85rem;font-weight:600;transition:all .15s}.settings-chip--active{background:var(--app-accent);border-color:var(--app-accent);color:var(--app-on-accent)}.settings-toggle-chip{border:1px solid var(--app-border);color:var(--app-muted);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border-radius:10px;align-items:center;gap:6px;padding:6px 12px;font-family:inherit;font-size:.75rem;display:flex}.settings-toggle-chip:active{background:var(--app-border)}.settings-toggle{background:var(--app-border);cursor:pointer;-webkit-tap-highlight-color:transparent;border:none;border-radius:14px;flex-shrink:0;width:48px;height:28px;transition:background .2s;position:relative}.settings-toggle--on{background:var(--app-accent)}.settings-toggle-thumb{background:#fff;border-radius:50%;width:22px;height:22px;transition:transform .2s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0003}.settings-toggle--on .settings-toggle-thumb{transform:translate(20px)}.settings-time-input{background:var(--app-bg);border:1px solid var(--app-border);max-width:100px;color:var(--app-text);-webkit-appearance:none;border-radius:10px;outline:none;padding:6px 8px;font-family:inherit;font-size:.8rem}.settings-icon-btn{width:30px;height:30px;color:var(--app-dim);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;display:flex;position:relative}.settings-icon-btn:after{content:"";position:absolute;inset:-8px}.settings-icon-btn:active{background:var(--app-border)}.settings-danger-content{padding:0 16px 16px}.settings-danger-warning{color:var(--app-muted);margin:0 0 12px;font-size:.75rem;line-height:1.4}.settings-danger-input{border:1px solid var(--app-border);width:100%;color:var(--app-text);box-sizing:border-box;background:0 0;border-radius:10px;margin-bottom:10px;padding:10px 12px;font-family:inherit;font-size:.85rem}.settings-danger-input::placeholder{color:var(--app-dim)}.settings-danger-btn{background:var(--app-danger);width:100%;color:var(--app-on-media);cursor:pointer;border:none;border-radius:10px;padding:12px;font-family:inherit;font-size:.85rem;font-weight:600}.settings-danger-btn:disabled{opacity:.3;cursor:not-allowed}.settings-danger-btn:not(:disabled):active{opacity:.8}.settings-version{text-align:center;color:var(--app-dim);margin-top:8px;padding-bottom:8px;font-size:.65rem}.settings-passkey-list{padding:4px 16px 8px}.settings-passkey-item{align-items:center;gap:8px;padding:6px 0;display:flex}.settings-passkey-name{color:var(--app-text);flex:1;font-size:.82rem}.settings-passkey-date{color:var(--app-dim);font-size:.7rem}.settings-toast{z-index:99999;background:var(--app-overlay-surface);border:1px solid var(--app-border);color:var(--app-text);white-space:nowrap;border-radius:12px;padding:10px 20px;font-size:.82rem;animation:.2s ease-out settings-toast-in;position:fixed;bottom:80px;left:50%;transform:translate(-50%);box-shadow:0 4px 20px #0000004d}@keyframes settings-toast-in{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}.me-profile{align-items:center;gap:13px;margin:4px 2px 18px;display:flex}.me-avatar{background:var(--app-accent);width:60px;height:60px;color:var(--app-on-accent);box-shadow:0 6px 18px -6px var(--app-accent-glow);border-radius:50%;flex:none;place-items:center;font-size:1.5rem;font-weight:600;line-height:1;display:grid}.me-profile-info{flex:1;min-width:0}.me-name{letter-spacing:-.01em;color:var(--app-text);text-overflow:ellipsis;white-space:nowrap;font-size:1.3rem;font-weight:600;overflow:hidden}.me-handle{color:var(--app-muted);text-overflow:ellipsis;white-space:nowrap;margin-top:3px;font-size:.75rem;overflow:hidden}.me-tiles{gap:10px;margin-bottom:20px;display:flex}.me-tile{background:var(--app-card);border:1px solid var(--app-border);text-align:center;border-radius:16px;flex:1;padding:14px 8px}.me-tile-num{color:var(--app-text);font-size:1.6rem;font-weight:600;line-height:1}.me-tile-label{color:var(--app-muted);letter-spacing:.06em;margin-top:6px;font-size:.62rem}.me-setlist{background:var(--app-card);border:1px solid var(--app-border);border-radius:18px;overflow:hidden}.me-row{border:none;border-top:1px solid var(--app-border);width:100%;color:var(--app-text);text-align:left;cursor:default;background:0 0;align-items:center;gap:12px;padding:13px 14px;font-family:inherit;font-size:.9rem;display:flex}.me-row:first-child{border-top:none}.me-row--tap{cursor:pointer;-webkit-tap-highlight-color:transparent}.me-row--tap:active{background:var(--app-border)}.me-row--tap:disabled{opacity:.6;cursor:default}.me-row-icon{background:var(--app-border);width:30px;height:30px;color:var(--app-muted);border-radius:9px;flex:none;place-items:center;display:grid}.me-row-label{flex:1;min-width:0;font-weight:500}.me-row-value{color:var(--app-muted);flex-shrink:0;align-items:center;gap:6px;margin-left:auto;font-size:.8rem;display:flex}.me-row--danger,.me-row--danger .me-row-label{color:var(--app-danger)}.me-row-icon--danger{background:var(--app-accent-dim);color:var(--app-danger)}.modal-overlay{z-index:99999;-webkit-tap-highlight-color:transparent;background:#0009;justify-content:center;align-items:flex-end;animation:.2s ease-out fade-in;display:flex;position:fixed;inset:0}.modal-panel{background:var(--app-overlay-surface);border-top:1px solid var(--app-border);width:100%;max-width:440px;padding:20px;padding-bottom:calc(20px + max(0px,env(safe-area-inset-bottom,0px)));border-radius:20px 20px 0 0;animation:.3s ease-out modal-slide-up}.modal-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.modal-title{color:var(--app-text);font-size:1.1rem;font-weight:600}.modal-close{background:var(--app-border);width:44px;height:44px;color:var(--app-muted);cursor:pointer;-webkit-tap-highlight-color:transparent;border:none;border-radius:50%;justify-content:center;align-items:center;display:flex}.modal-form{flex-direction:column;gap:14px;display:flex}.modal-label{color:var(--app-muted);text-transform:uppercase;letter-spacing:1px;margin-bottom:6px;font-size:.7rem;font-weight:600;display:block}.modal-input{background:var(--app-card);border:1px solid var(--app-border);width:100%;height:48px;color:var(--app-text);-webkit-appearance:none;border-radius:12px;outline:none;padding:0 14px;font-family:inherit;font-size:15px;transition:border-color .2s}.modal-input:focus{border-color:var(--app-accent)}.modal-input::placeholder{color:var(--app-dim)}.modal-input-wrap{position:relative}.modal-input-wrap .modal-input{padding-right:44px}.modal-eye{width:36px;height:36px;color:var(--app-dim);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;font-size:16px;display:flex;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.modal-eye:active{background:var(--app-border)}.modal-error{color:var(--app-danger);text-align:center;font-size:.82rem}.modal-submit{background:var(--app-accent);width:100%;height:48px;color:var(--app-on-accent);cursor:pointer;-webkit-tap-highlight-color:transparent;border:none;border-radius:12px;margin-top:4px;font-family:inherit;font-size:.9rem;font-weight:600}.modal-submit:active{opacity:.8}.modal-submit:disabled{opacity:.3}.sheet-desc{color:var(--app-muted);margin-bottom:16px;font-size:.85rem}.sheet-hint{color:var(--app-dim);text-align:center;margin-top:10px;font-size:.78rem}.modal-title--danger{color:var(--app-danger);align-items:center;gap:7px;display:flex}.modal-submit--icon{justify-content:center;align-items:center;gap:7px;display:flex}.settings-passkey-list--sheet{padding:0 0 14px}.settings-danger-content--sheet{padding:0}.me-row-main{flex:1;min-width:0}.me-row-main .me-row-label{flex:none}.me-row-sub{color:var(--app-muted);margin-top:2px;font-size:.72rem;font-weight:400}.me-row--stack{flex-direction:column;align-items:stretch;gap:10px}.me-row-head{align-items:center;gap:12px;display:flex}.me-row-inset{margin-left:42px}.day-sheet-photos{flex-direction:column;gap:16px;padding:0 4px;display:flex}.day-sheet-item{border-radius:14px;overflow:hidden}.day-sheet-img{border-radius:14px;width:100%;display:block}.day-sheet-meta{align-items:center;gap:8px;padding:8px 4px 0;display:flex}.day-sheet-time{color:var(--app-text);font-size:.85rem;font-weight:600}.day-sheet-city{color:var(--app-muted);font-size:.72rem}.day-sheet-weather{color:var(--app-dim);margin-left:auto;font-size:.72rem}@keyframes modal-slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.admin-page{z-index:99999;background:var(--app-bg-page);padding:16px;padding-top:calc(16px + max(0px,env(safe-area-inset-top,0px)));padding-bottom:40px;animation:.2s ease-out fade-in;position:fixed;inset:0;overflow-y:auto}.admin-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.admin-title{color:var(--app-text);font-size:1.25rem;font-weight:700}.admin-close{color:var(--app-accent);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;margin:-12px -10px;padding:12px 10px;font-family:inherit;font-size:.9rem;font-weight:600}.admin-stats{grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:24px;display:grid}.admin-stat{background:var(--app-surface);border:1px solid var(--app-border);border-radius:12px;flex-direction:column;align-items:center;gap:4px;padding:12px 8px;display:flex}.admin-stat-icon{color:var(--app-muted);display:flex}.admin-stat-value{color:var(--app-text);font-size:1.3rem;font-weight:700;line-height:1}.admin-stat-label{text-transform:uppercase;letter-spacing:.5px;color:var(--app-dim);font-size:.55rem}.admin-section{margin-bottom:24px}.admin-section-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.admin-section-title{text-transform:uppercase;letter-spacing:1.5px;color:var(--app-muted);margin-bottom:8px;padding:0 4px;font-size:.65rem;font-weight:600}.admin-section-header .admin-section-title{margin-bottom:0}.admin-card{background:var(--app-surface);border:1px solid var(--app-border);border-radius:14px;overflow:hidden}.admin-empty{color:var(--app-dim);text-align:center;background:var(--app-surface);border:1px solid var(--app-border);border-radius:14px;padding:20px;font-size:.78rem}.admin-health-header{width:100%;font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;justify-content:space-between;align-items:center;margin-bottom:10px;padding:0;display:flex}.admin-health-header-right{color:var(--app-dim);align-items:center;gap:8px;display:flex}.admin-health-chev{color:var(--app-dim);transition:transform .15s}.admin-health-chev--open{transform:rotate(180deg)}.admin-health-userrow{width:100%;font:inherit;color:inherit;cursor:pointer;text-align:left;-webkit-tap-highlight-color:transparent;background:0 0;border:0;align-items:center;gap:10px;padding:13px 14px;display:flex}.admin-health-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.admin-health-dot--ok{background:var(--app-success)}.admin-health-dot--warn{background:var(--app-warn)}.admin-health-dot--bad{background:var(--app-danger)}.admin-health-name{min-width:0;color:var(--app-text);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.85rem;font-weight:600;overflow:hidden}.admin-health-glance{color:var(--app-dim);white-space:nowrap;font-size:.72rem}.admin-health-detail{flex-direction:column;gap:10px;padding:0 14px 14px;display:flex}.admin-health-pills{flex-wrap:wrap;gap:6px;display:flex}.admin-health-pill{white-space:nowrap;border-radius:10px;padding:2px 8px;font-size:.66rem;font-weight:600}.admin-health-pill--ok{color:var(--app-success);background:var(--app-success)}@supports (color:color-mix(in lab,red,red)){.admin-health-pill--ok{background:color-mix(in srgb,var(--app-success) 12%,transparent)}}.admin-health-pill--warn{color:var(--app-warn);background:var(--app-warn)}@supports (color:color-mix(in lab,red,red)){.admin-health-pill--warn{background:color-mix(in srgb,var(--app-warn) 14%,transparent)}}.admin-health-pill--bad{color:var(--app-danger);background:var(--app-danger)}@supports (color:color-mix(in lab,red,red)){.admin-health-pill--bad{background:color-mix(in srgb,var(--app-danger) 12%,transparent)}}.admin-health-trio{padding:2px 0;display:flex}.admin-health-trio>div{flex-direction:column;flex:1;align-items:center;gap:2px;display:flex}.admin-health-trio b{color:var(--app-text);letter-spacing:-.01em;font-size:1.05rem;font-weight:700}.admin-health-trio span{color:var(--app-dim);text-transform:uppercase;letter-spacing:.04em;font-size:.64rem}.admin-health-bar{background:var(--app-border);border-radius:2px;height:4px;overflow:hidden}.admin-health-bar-fill{background:var(--app-accent);border-radius:2px;height:100%}.admin-health-line{color:var(--app-dim);font-size:.73rem;line-height:1.6}.admin-health-cov-low{color:var(--app-warn);font-weight:600}.admin-action-btn{border:1px solid var(--app-border);color:var(--app-muted);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border-radius:8px;align-items:center;gap:5px;padding:5px 10px;font-family:inherit;font-size:.72rem;font-weight:500;display:flex}.admin-action-btn:active{background:var(--app-border)}.admin-action-btn:disabled{opacity:.5;cursor:default}.admin-today-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.admin-today-dot--ok{background:var(--app-success)}.admin-today-dot--warn{background:var(--app-warn)}.admin-today-dot--bad{background:var(--app-danger)}.admin-today-dot--neutral{background:var(--app-dim);opacity:.55}.admin-today-glance{white-space:nowrap;color:var(--app-dim);font-size:.72rem;font-weight:500}.admin-today-glance--ok{color:var(--app-success)}.admin-today-glance--warn{color:var(--app-warn-text)}.admin-today-glance--bad{color:var(--app-danger)}.admin-today-glance--neutral{color:var(--app-dim)}.admin-today-detail{flex-direction:column;gap:8px;padding:0 14px 14px;display:flex}.admin-today-trail{flex-wrap:wrap;gap:6px;display:flex}.admin-today-step{background:var(--app-bg);border-radius:9px;flex-direction:column;gap:1px;padding:5px 10px;display:flex}.admin-today-step-label{text-transform:uppercase;letter-spacing:.04em;color:var(--app-dim);white-space:nowrap;font-size:.58rem}.admin-today-step-time{color:var(--app-text);font-variant-numeric:tabular-nums;font-size:.78rem;font-weight:600}.admin-today-step--off .admin-today-step-time{color:var(--app-dim);font-weight:500}.admin-user-row{align-items:flex-start;gap:12px;padding:12px 16px;display:flex}.admin-user-avatar{background:var(--app-accent-dim);width:36px;height:36px;color:var(--app-accent);font-family:var(--font-serif);border-radius:10px;flex-shrink:0;place-items:center;margin-top:2px;font-size:.95rem;font-weight:600;line-height:1;display:grid}.admin-user-info{flex:1;min-width:0}.admin-user-name{color:var(--app-text);align-items:center;gap:6px;font-size:.88rem;font-weight:600;display:flex}.admin-badge{text-transform:uppercase;letter-spacing:.5px;background:var(--app-accent);color:var(--app-on-accent);border-radius:4px;padding:1px 6px;font-size:.55rem;font-weight:700}.admin-push-badge{background:var(--app-danger);border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;display:inline-flex}@supports (color:color-mix(in lab,red,red)){.admin-push-badge{background:color-mix(in srgb,var(--app-danger) 12%,transparent)}}.admin-push-badge{color:var(--app-danger)}.admin-push-badge--on{background:var(--app-success)}@supports (color:color-mix(in lab,red,red)){.admin-push-badge--on{background:color-mix(in srgb,var(--app-success) 12%,transparent)}}.admin-push-badge--on{color:var(--app-success)}.admin-user-meta{color:var(--app-muted);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:.72rem;overflow:hidden}.admin-invite-row{align-items:center;gap:8px;padding:10px 16px;display:flex}.admin-invite-row--dim{opacity:.6}.admin-invite-code{color:var(--app-text);letter-spacing:2px;flex:1;font-family:SF Mono,Fira Code,monospace;font-size:.88rem;font-weight:600}.admin-invite-code--dim{color:var(--app-dim);text-decoration:line-through}.admin-invite-actions{gap:4px;display:flex}.admin-invite-status{border-radius:6px;padding:2px 8px;font-size:.65rem;font-weight:600}.admin-invite-status--used{color:var(--app-success);background:var(--app-success)}@supports (color:color-mix(in lab,red,red)){.admin-invite-status--used{background:color-mix(in srgb,var(--app-success) 10%,transparent)}}.admin-invite-status--expired{color:var(--app-danger);background:var(--app-danger)}@supports (color:color-mix(in lab,red,red)){.admin-invite-status--expired{background:color-mix(in srgb,var(--app-danger) 10%,transparent)}}.admin-icon-btn{width:32px;height:32px;color:var(--app-muted);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;display:flex;position:relative}.admin-icon-btn:after{content:"";position:absolute;inset:-6px}.admin-icon-btn:active{background:var(--app-border)}.admin-icon-btn--dim{color:var(--app-dim)}.admin-tool-row{overflow:hidden}.admin-tool-btn{width:100%;color:var(--app-muted);cursor:pointer;-webkit-tap-highlight-color:transparent;text-align:left;background:0 0;border:none;align-items:center;gap:12px;padding:14px 16px;font-family:inherit;display:flex}.admin-tool-btn:active{background:var(--app-border)}.admin-tool-btn:disabled{opacity:.5;cursor:default}.admin-tool-info{flex:1}.admin-tool-title{color:var(--app-text);font-size:.88rem;font-weight:500}.admin-tool-desc{color:var(--app-muted);margin-top:1px;font-size:.72rem}.admin-push-form{flex-direction:column;gap:8px;padding:0 16px 14px;display:flex}.admin-push-input{background:var(--app-bg);border:1px solid var(--app-border);width:100%;color:var(--app-text);box-sizing:border-box;border-radius:10px;outline:none;padding:8px 12px;font-family:inherit;font-size:.82rem}.admin-push-input::placeholder{color:var(--app-dim)}.admin-push-send{background:var(--app-accent);color:var(--app-on-accent);cursor:pointer;-webkit-tap-highlight-color:transparent;border:none;border-radius:10px;align-self:flex-end;padding:7px 18px;font-family:inherit;font-size:.82rem;font-weight:600}.admin-push-send:active{opacity:.7}.admin-push-send:disabled{opacity:.5;cursor:default}.admin-pull{justify-content:center;align-items:center;height:0;display:flex;overflow:hidden}.admin-pull-icon{color:var(--app-accent);will-change:transform,opacity;display:flex}.admin-nudge-form{align-items:center;gap:8px;padding:4px 16px 12px;display:flex}.admin-nudge-instant{background:var(--app-accent);color:var(--app-on-accent);cursor:pointer;-webkit-tap-highlight-color:transparent;white-space:nowrap;border:none;border-radius:8px;align-items:center;gap:5px;padding:7px 14px;font-family:inherit;font-size:.75rem;font-weight:600;display:flex}.admin-nudge-instant:active{opacity:.7}.admin-nudge-instant:disabled{opacity:.5;cursor:default}.admin-nudge-schedule{align-items:center;gap:0;margin-left:auto;display:flex}.admin-nudge-time{background:var(--app-surface);border:1px solid var(--app-border);width:auto;color:var(--app-text);appearance:none;color-scheme:light dark;border-right:none;border-radius:8px 0 0 8px;outline:none;padding:7px 10px;font-family:inherit;font-size:.75rem}.admin-nudge-sched-btn{border:1px solid var(--app-border);background:var(--app-surface);color:var(--app-muted);cursor:pointer;-webkit-tap-highlight-color:transparent;white-space:nowrap;border-radius:0 8px 8px 0;padding:7px 12px;font-family:inherit;font-size:.75rem;font-weight:500}.admin-nudge-sched-btn:active{background:var(--app-border)}.admin-nudge-sched-btn:disabled{opacity:.5;cursor:default}@keyframes admin-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.admin-spin{animation:.8s linear infinite admin-spin}.pin-screen--modal{z-index:99999;animation:.2s ease-out fade-in}.pin-change-cancel{top:calc(8px + max(0px,env(safe-area-inset-top,0px)));z-index:10;color:var(--app-muted);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;padding:12px 10px;font-family:inherit;font-size:.88rem;position:absolute;right:10px}.today{min-height:100%;padding:0 0 40px;animation:.25s ease-out fade-in}.today-hero{flex-direction:column;gap:4px;padding:32px 22px 8px;display:flex}.today-date{color:var(--app-muted);letter-spacing:.01em;font-size:.76rem;font-weight:500;line-height:1.3}.today-greeting{color:var(--app-text);letter-spacing:-.012em;margin:0;font-size:clamp(1.6rem,7vw,2rem);font-weight:600;line-height:1.12}.today-greeting--long{font-size:clamp(1.3rem,5.6vw,1.65rem)}.today-ringwrap{flex-direction:column;align-items:center;gap:9px;padding:16px 22px 4px;display:flex}.today-ring{border-radius:50%;place-items:center;width:128px;height:128px;display:grid;position:relative}.today-ring:before{content:"";background:var(--app-bg-page);border-radius:50%;position:absolute;inset:11px}.today-ring-inner{flex-direction:column;align-items:center;line-height:1;display:flex;position:relative}.today-ring-n{color:var(--app-text);font-variant-numeric:tabular-nums;font-size:2.25rem;font-weight:600;line-height:1}.today-ring-u{color:var(--app-muted);letter-spacing:.09em;margin-top:4px;font-size:.64rem}.today-streak-line{color:var(--app-muted);text-align:center;font-size:.74rem}.today-section{flex-direction:column;gap:8px;padding:22px 22px 0;display:flex}.today-sect{color:var(--app-muted);letter-spacing:.09em;margin:0;font-size:.7rem;font-weight:600}.today-prompt{border:1px solid var(--app-border);background:var(--app-card);width:100%;color:var(--app-text);cursor:pointer;font:inherit;text-align:left;-webkit-tap-highlight-color:transparent;border-radius:20px;align-items:center;gap:13px;padding:13px;transition:opacity .15s,transform .1s;display:flex}.today-prompt:active{opacity:.9;transform:scale(.99)}.today-prompt--cta,.today-prompt--empty{border-style:dashed;border-color:var(--app-accent);background:var(--app-accent-dim)}.today-prompt-thumb{border:1.5px dashed var(--app-accent);width:48px;height:48px;color:var(--app-accent);background:0 0;border-radius:14px;flex:none;place-items:center;display:grid}.today-prompt-thumb--img{border:1px solid var(--app-border);overflow:hidden}.today-prompt-thumb--img img{object-fit:cover;width:100%;height:100%;display:block}.today-prompt-text{flex-direction:column;gap:3px;min-width:0;display:flex}.today-prompt-line{color:var(--app-text);letter-spacing:-.005em;font-size:.92rem;font-weight:600}.today-prompt-sub{color:var(--app-muted);font-size:.78rem}.today-prompt-sub--ok{color:var(--app-accent-text);align-items:center;gap:4px;font-weight:500;display:inline-flex}.today-prompt--done .today-prompt-thumb{border-color:var(--app-border)}.today-empty{padding:26px 22px 0}.today-tn{cursor:pointer;width:100%;font:inherit;-webkit-tap-highlight-color:transparent;background:0 0;border:0;align-items:center;gap:10px;padding:0;transition:opacity .15s;display:flex}.today-tn:active{opacity:.85}.today-tn-frame{aspect-ratio:1;border:1px solid var(--app-border);background:var(--app-card);border-radius:16px;flex:1;position:relative;overflow:hidden}.today-tn-frame img{object-fit:cover;width:100%;height:100%;display:block}.today-tn-date{color:var(--app-on-media);text-shadow:0 1px 3px #00000073;background:#0000006b;border-radius:6px;padding:2px 6px;font-size:.62rem;font-weight:500;position:absolute;bottom:7px;left:8px}.today-tn-arrow{color:var(--app-accent);flex:none;place-items:center;display:grid}.today-quote{color:var(--app-muted);text-align:center;margin-top:11px;font-size:.85rem;font-style:italic}.today-skeleton{flex-direction:column;align-items:center;gap:18px;padding:24px 22px;display:flex}.today-ring-skel{border-radius:50%;width:128px;height:128px}.today-card-skel{border-radius:20px;width:100%;height:74px}@media(min-width:620px){.today{max-width:560px;margin:0 auto}}@media(max-width:380px){.today-hero,.today-section,.today-empty{padding-left:18px;padding-right:18px}}.lapse{background:var(--app-bg-page);min-height:100%;color:var(--app-text);padding:12px 16px 24px}.lapse-top{justify-content:space-between;align-items:baseline;gap:12px;padding:2px 2px 14px;display:flex}.lapse-title{letter-spacing:-.01em;color:var(--app-text);font-size:1.5rem;font-weight:600}.lapse-frames{color:var(--app-text);font-size:.74rem}@supports (color:color-mix(in lab,red,red)){.lapse-frames{color:color-mix(in srgb,var(--app-text) 70%,transparent)}}.lapse-frames{white-space:nowrap}.lapse-stage-skel{aspect-ratio:4/5;border-radius:22px;height:clamp(170px,36vh,300px);margin:0 auto}.lapse-track-skel{border-radius:12px;height:44px;margin-top:12px}.lapse-ruler{border-bottom:1px solid var(--app-text);justify-content:space-between;align-items:flex-end;height:16px;margin:12px 0 4px;display:flex;position:relative}@supports (color:color-mix(in lab,red,red)){.lapse-ruler{border-bottom:1px solid color-mix(in srgb,var(--app-text) 12%,transparent)}}.lapse-ruler i{background:var(--app-text);width:1px;height:6px}@supports (color:color-mix(in lab,red,red)){.lapse-ruler i{background:color-mix(in srgb,var(--app-text) 22%,transparent)}}.lapse-playhead{background:var(--app-accent);width:2px;height:20px;box-shadow:0 0 8px var(--app-accent-glow);border-radius:2px;margin-left:-1px;transition:left .16s;position:absolute;bottom:-2px}.lapse-strip{scrollbar-width:none;-webkit-overflow-scrolling:touch;gap:4px;padding:4px 1px 6px;display:flex;overflow-x:auto}.lapse-strip::-webkit-scrollbar{display:none}.lapse-cell{border:1px solid var(--app-border);background:var(--app-card);cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:7px;flex:none;width:46px;height:58px;padding:0;transition:outline-color .12s,transform .12s;overflow:hidden}.lapse-cell-img{object-fit:cover;width:100%;height:100%;display:block}.lapse-cell--on{outline:2px solid var(--app-accent);outline-offset:-1px}.lapse-cell--skel{border-radius:7px;width:46px;height:58px}.lapse-gap{border:1px dashed var(--app-text);flex:none;justify-content:center;align-items:center;width:30px;height:58px;display:flex}@supports (color:color-mix(in lab,red,red)){.lapse-gap{border:1px dashed color-mix(in srgb,var(--app-text) 18%,transparent)}}.lapse-gap{background:repeating-linear-gradient(45deg,var(--app-text),var(--app-text) 4px,transparent 4px,transparent 8px);border-radius:7px}@supports (color:color-mix(in lab,red,red)){.lapse-gap{background:repeating-linear-gradient(45deg,color-mix(in srgb,var(--app-text) 5%,transparent),color-mix(in srgb,var(--app-text) 5%,transparent) 4px,transparent 4px,transparent 8px)}}.lapse-gap-d{color:var(--app-text);font-size:.6rem}@supports (color:color-mix(in lab,red,red)){.lapse-gap-d{color:color-mix(in srgb,var(--app-text) 68%,transparent)}}.lapse-panel{border:1px solid var(--app-border);background:var(--app-bg-raise);border-radius:16px;margin-top:12px;padding:13px}.lapse-panel--skel{height:112px}.lapse-row{gap:10px;display:flex}.lapse-btn{cursor:pointer;-webkit-tap-highlight-color:transparent;border:1px solid #0000;border-radius:12px;flex:1;justify-content:center;align-items:center;gap:7px;padding:12px 14px;font-family:inherit;font-size:.86rem;font-weight:700;transition:opacity .15s;display:inline-flex}.lapse-btn:active{opacity:.85}.lapse-btn:disabled{opacity:.5;cursor:default}.lapse-btn--render{background:var(--app-card);color:var(--app-text);border-color:var(--app-border)}.lapse-spin-ic{animation:.7s linear infinite login-spin;display:inline-flex}.lapse-create-error{color:var(--app-danger);text-align:center;margin-top:10px;font-size:.76rem}.lapse-fmts{gap:6px;margin-top:11px;display:flex}.lapse-fmt{border:1px solid var(--app-border);background:var(--app-card);color:var(--app-text);border-radius:9px;flex:1;padding:8px 0}@supports (color:color-mix(in lab,red,red)){.lapse-fmt{color:color-mix(in srgb,var(--app-text) 72%,transparent)}}.lapse-fmt{font-family:var(--font-mono);cursor:pointer;-webkit-tap-highlight-color:transparent;font-size:.72rem;font-weight:600;transition:color .12s,border-color .12s,background .12s}.lapse-fmt--on{color:var(--app-accent-text);border-color:var(--app-accent);background:var(--app-accent-dim)}.lapse-result{border:1px solid var(--app-border);background:var(--app-bg-raise);color:var(--app-text);border-radius:14px;align-items:center;gap:9px;margin-top:14px;padding:12px 14px;font-size:.78rem;display:flex}@supports (color:color-mix(in lab,red,red)){.lapse-result{color:color-mix(in srgb,var(--app-text) 80%,transparent)}}.lapse-result--done{flex-direction:column;align-items:stretch;gap:12px}.lapse-result--fail{color:var(--app-danger)}.lapse-result-row{color:var(--app-warn-text);align-items:center;gap:8px;display:flex}.lapse-video{background:var(--app-bg-page);object-fit:contain;border-radius:12px;width:100%;max-height:60vh;display:block}.lapse-downloads{flex-wrap:wrap;gap:8px;display:flex}.lapse-dl{border:1px solid var(--app-border);background:var(--app-card);color:var(--app-text);cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:9px;align-items:center;gap:5px;padding:7px 12px;font-size:.74rem;font-weight:600;text-decoration:none;display:inline-flex}.lapse-dl:active{opacity:.7}.lapse-dl--on{border-color:var(--app-accent);color:var(--app-accent);background:var(--app-accent-dim)}.lapse-stat{text-align:center;color:var(--app-text);margin-top:10px;font-size:.74rem}@supports (color:color-mix(in lab,red,red)){.lapse-stat{color:color-mix(in srgb,var(--app-text) 70%,transparent)}}.lapse-stat b{color:var(--app-text);font-weight:700}.lapse-empty{text-align:center;flex-direction:column;align-items:center;gap:14px;padding:56px 16px;display:flex}.lapse-empty-icon{color:var(--app-text)}@supports (color:color-mix(in lab,red,red)){.lapse-empty-icon{color:color-mix(in srgb,var(--app-text) 38%,transparent)}}.lapse-empty-title{color:var(--app-text);font-size:.92rem}@supports (color:color-mix(in lab,red,red)){.lapse-empty-title{color:color-mix(in srgb,var(--app-text) 78%,transparent)}}.lapse-empty-title{max-width:260px}.lapse-state{text-align:center;flex-direction:column;align-items:center;gap:8px;padding:56px 16px;display:flex}.lapse-state-title{color:var(--app-text);font-size:.95rem}.lapse-state-sub{color:var(--app-text);font-size:.8rem}@supports (color:color-mix(in lab,red,red)){.lapse-state-sub{color:color-mix(in srgb,var(--app-text) 70%,transparent)}}.scrub{-webkit-user-select:none;user-select:none;flex-direction:column;gap:12px;display:flex}.scrub-stage{aspect-ratio:4/5;border:1px solid var(--app-border);background:var(--app-bg-raise);border-radius:22px;align-self:center;width:auto;max-width:100%;height:clamp(170px,36vh,300px);margin:0 auto;position:relative;overflow:hidden}.scrub-stage-img{object-fit:contain;object-position:center;width:100%;height:100%;display:block}.scrub-stage-ph{background:var(--app-card);width:100%;height:100%}.scrub-stage:after{content:"";pointer-events:none;background:linear-gradient(to top,var(--app-bg-page),transparent);height:38%;position:absolute;inset:auto 0 0}@supports (color:color-mix(in lab,red,red)){.scrub-stage:after{background:linear-gradient(to top,color-mix(in srgb,var(--app-bg-page) 72%,transparent),transparent)}}.scrub-readout{z-index:1;pointer-events:none;flex-direction:column;gap:2px;display:flex;position:absolute;bottom:14px;left:16px}.scrub-day{letter-spacing:-.02em;color:var(--app-text);font-size:2.1rem;font-weight:600;line-height:.98}.scrub-date{letter-spacing:.04em;color:var(--app-text);font-size:.72rem}@supports (color:color-mix(in lab,red,red)){.scrub-date{color:color-mix(in srgb,var(--app-text) 80%,transparent)}}.scrub-track{touch-action:none;cursor:pointer;-webkit-tap-highlight-color:transparent;align-items:center;height:44px;display:flex;position:relative}.scrub-track-bar{background:var(--app-text);border-radius:4px;flex:auto;height:4px;position:relative}@supports (color:color-mix(in lab,red,red)){.scrub-track-bar{background:color-mix(in srgb,var(--app-text) 22%,transparent)}}.scrub-track-bar{overflow:hidden}.scrub-fill{background:var(--app-accent);border-radius:4px;height:100%;position:absolute;inset:0 auto 0 0}.scrub-knob{background:var(--app-text);width:18px;height:18px;box-shadow:0 2px 8px var(--app-bg-page),0 0 0 4px var(--app-accent);border-radius:50%;margin-left:-9px;position:absolute;top:50%;transform:translateY(-50%)}@supports (color:color-mix(in lab,red,red)){.scrub-knob{box-shadow:0 2px 8px color-mix(in srgb,var(--app-bg-page) 70%,transparent),0 0 0 4px color-mix(in srgb,var(--app-accent) 18%,transparent)}}.scrub-knob{pointer-events:none}.scrub-pp{justify-content:center;align-items:center;gap:18px;display:flex}.scrub-end{text-align:center;min-width:44px;color:var(--app-text);flex:none;font-size:.72rem}@supports (color:color-mix(in lab,red,red)){.scrub-end{color:color-mix(in srgb,var(--app-text) 70%,transparent)}}.scrub-play{background:var(--app-accent);width:56px;height:56px;color:var(--app-on-accent);box-shadow:0 10px 24px -6px var(--app-accent-glow);cursor:pointer;-webkit-tap-highlight-color:transparent;border:none;border-radius:50%;place-items:center;transition:transform .12s,opacity .15s;display:grid}.scrub-play:active{transform:scale(.94)}.scrub-play:disabled{opacity:.5;cursor:default;box-shadow:none}.rsheet-backdrop{z-index:100000;background:var(--app-scrim);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);align-items:flex-end;animation:.2s ease-out rsheet-dim;display:flex;position:fixed;inset:0}.rsheet{background:var(--app-bg-raise);border-top:1px solid var(--app-border);width:100%;padding:18px 20px calc(20px + env(safe-area-inset-bottom,0px));border-radius:24px 24px 0 0;animation:.26s cubic-bezier(.22,1,.36,1) rsheet-up;box-shadow:0 -16px 40px #00000038}.rsheet-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;display:flex}.rsheet-title{letter-spacing:-.01em;color:var(--app-text);font-size:1.2rem;font-weight:600}.rsheet-close{width:44px;height:44px;color:var(--app-muted);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-radius:50%;place-items:center;margin:-8px -10px -8px 0;display:grid}.rsheet-close:active{background:var(--app-border)}.rsheet-label{letter-spacing:.04em;text-transform:uppercase;color:var(--app-text);font-size:.66rem;font-weight:600}@supports (color:color-mix(in lab,red,red)){.rsheet-label{color:color-mix(in srgb,var(--app-text) 68%,transparent)}}.rsheet-label{margin:12px 2px 7px}.rsheet-label:first-of-type{margin-top:2px}.rseg{background:var(--app-card);border:1px solid var(--app-border);border-radius:12px;gap:3px;padding:3px;display:flex}.rseg-btn{color:var(--app-text);background:0 0;border:none;border-radius:9px;flex:1;padding:9px 0}@supports (color:color-mix(in lab,red,red)){.rseg-btn{color:color-mix(in srgb,var(--app-text) 72%,transparent)}}.rseg-btn{cursor:pointer;-webkit-tap-highlight-color:transparent;font-family:inherit;font-size:.78rem;font-weight:600;transition:color .12s,background .12s}.rseg-btn--on{background:var(--app-accent);color:var(--app-on-accent);box-shadow:0 4px 12px var(--app-accent-glow)}.rsheet-rows{margin-top:14px}.rsheet-row{border-top:1px solid var(--app-text);justify-content:space-between;align-items:center;gap:12px;padding:11px 2px;display:flex}@supports (color:color-mix(in lab,red,red)){.rsheet-row{border-top:1px solid color-mix(in srgb,var(--app-text) 7%,transparent)}}.rsheet-row-main{align-items:baseline;gap:9px;display:flex}.rsheet-row-label{color:var(--app-text);font-size:.86rem}@supports (color:color-mix(in lab,red,red)){.rsheet-row-label{color:color-mix(in srgb,var(--app-text) 72%,transparent)}}.rsheet-row-note{letter-spacing:.02em;color:var(--app-text);font-size:.64rem;font-weight:600}@supports (color:color-mix(in lab,red,red)){.rsheet-row-note{color:color-mix(in srgb,var(--app-text) 62%,transparent)}}.rsheet-toggle{background:var(--app-text);border-radius:999px;flex:none;width:36px;height:21px;position:relative}@supports (color:color-mix(in lab,red,red)){.rsheet-toggle{background:color-mix(in srgb,var(--app-text) 12%,transparent)}}.rsheet-toggle{opacity:.7}.rsheet-toggle i{background:var(--app-text);border-radius:50%;width:17px;height:17px;position:absolute;top:2px;left:2px}@supports (color:color-mix(in lab,red,red)){.rsheet-toggle i{background:color-mix(in srgb,var(--app-text) 55%,transparent)}}.rsheet-toggle i{transition:transform .18s,background .18s}.rsheet-toggle--live{opacity:1;cursor:pointer;-webkit-tap-highlight-color:transparent;border:none;padding:0;transition:background .18s}.rsheet-toggle--live:after{content:"";position:absolute;inset:-12px}.rsheet-toggle--on{background:var(--app-accent)}.rsheet-toggle--on i{background:#fff;transform:translate(15px)}.rsheet-render{background:var(--app-accent);width:100%;color:var(--app-on-accent);cursor:pointer;-webkit-tap-highlight-color:transparent;box-shadow:0 10px 24px var(--app-accent-glow);border:none;border-radius:14px;justify-content:center;align-items:center;gap:8px;margin-top:16px;padding:14px;font-family:inherit;font-size:.92rem;font-weight:700;transition:opacity .15s;display:flex}.rsheet-render:active{opacity:.88}.rsheet-render:disabled{opacity:.6;cursor:default}@keyframes rsheet-dim{0%{opacity:0}to{opacity:1}}@keyframes rsheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.fcal-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.fcal-action-btn{border:1px solid var(--app-border);background:var(--app-card);color:var(--app-text);cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:9px;flex-shrink:0;align-items:center;gap:6px;padding:7px 12px;font-family:inherit;font-size:.74rem;font-weight:600;display:inline-flex}.fcal-action-btn:active{opacity:.7}.cmp{z-index:99999;background:var(--app-bg-page);color:var(--app-text);padding:calc(env(safe-area-inset-top,0px) + 10px) 16px calc(env(safe-area-inset-bottom,0px) + 16px);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;flex-direction:column;animation:.18s ease-out cmp-in;display:flex;position:fixed;inset:0}.cmp-top{flex-shrink:0;align-items:center;gap:10px;padding:2px 0 12px;display:flex}.cmp-back,.cmp-top-spacer{flex:none;min-width:72px}.cmp-back{min-height:44px;color:var(--app-text);background:0 0;border:none;align-items:center;gap:2px;padding:6px 8px 6px 4px;display:inline-flex}@supports (color:color-mix(in lab,red,red)){.cmp-back{color:color-mix(in srgb,var(--app-text) 70%,transparent)}}.cmp-back{cursor:pointer;-webkit-tap-highlight-color:transparent;font-family:inherit;font-size:.86rem;font-weight:500}.cmp-back:active{opacity:.6}.cmp-title{text-align:center;letter-spacing:-.01em;color:var(--app-text);flex:auto;font-size:1.2rem;font-weight:600}.cmp-split{background:var(--app-bg-page);touch-action:none;cursor:ew-resize;border-radius:22px;flex:auto;min-height:0;position:relative;overflow:hidden}.cmp-layer{position:absolute;inset:0}.cmp-layer img{object-fit:cover;object-position:center;width:100%;height:100%;display:block}.cmp-layer--before{z-index:2}.cmp-handle{z-index:3;background:var(--app-text);width:2px;box-shadow:0 0 10px var(--app-bg-page);margin-left:-1px;position:absolute;top:0;bottom:0}@supports (color:color-mix(in lab,red,red)){.cmp-handle{box-shadow:0 0 10px color-mix(in srgb,var(--app-bg-page) 80%,transparent)}}.cmp-handle{pointer-events:none}.cmp-knob{background:var(--app-text);width:38px;height:38px;color:var(--app-bg-page);box-shadow:0 2px 10px var(--app-bg-page);border-radius:50%;place-items:center;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@supports (color:color-mix(in lab,red,red)){.cmp-knob{box-shadow:0 2px 10px color-mix(in srgb,var(--app-bg-page) 65%,transparent)}}.cmp-lbl{z-index:4;letter-spacing:.01em;color:var(--app-text);background:var(--app-bg-page);border-radius:8px;padding:4px 8px;font-size:.68rem;font-weight:600;position:absolute;bottom:12px}@supports (color:color-mix(in lab,red,red)){.cmp-lbl{background:color-mix(in srgb,var(--app-bg-page) 55%,transparent)}}.cmp-lbl{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);pointer-events:none}.cmp-lbl--before{left:12px}.cmp-lbl--after{right:12px}.cmp-miles{flex-shrink:0;gap:8px;margin-top:14px;display:flex}.cmp-mile{border:1px solid var(--app-border);background:var(--app-bg-raise);color:var(--app-text);border-radius:12px;flex:1 1 0;padding:10px 0}@supports (color:color-mix(in lab,red,red)){.cmp-mile{color:color-mix(in srgb,var(--app-text) 66%,transparent)}}.cmp-mile{cursor:pointer;-webkit-tap-highlight-color:transparent;font-family:inherit;font-size:.78rem;font-weight:600;transition:color .12s,background .12s,border-color .12s}.cmp-mile--on{background:var(--app-accent);border-color:var(--app-accent);color:var(--app-on-accent);box-shadow:0 4px 14px var(--app-accent-glow)}.cmp-state{text-align:center;flex-direction:column;flex:auto;justify-content:center;align-items:center;gap:8px;padding:0 24px;display:flex}.cmp-state-title{color:var(--app-text);font-size:.98rem;font-weight:600}.cmp-state-sub{color:var(--app-text);font-size:.82rem}@supports (color:color-mix(in lab,red,red)){.cmp-state-sub{color:color-mix(in srgb,var(--app-text) 70%,transparent)}}.cmp-spin{color:var(--app-accent);animation:.9s linear infinite cmp-spin;display:inline-flex}@keyframes cmp-in{0%{opacity:0}to{opacity:1}}@keyframes cmp-spin{to{transform:rotate(360deg)}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}
