.toast-region{gap:0}.toast-stack{display:flex;flex-direction:column;gap:10px;pointer-events:none}.toast-stack:not(:empty)+.toast-stack:not(:empty){margin-top:10px}.lf-avatar{--avatar-size: 44px;position:relative;flex:0 0 auto;display:inline-grid;place-items:center;width:var(--avatar-size);height:var(--avatar-size);border-radius:var(--radius-lg);background:var(--avatar-aurora);box-shadow:inset 0 1px 0 var(--glass-highlight),inset 0 0 0 1px var(--glass-border);color:var(--color-text);font-weight:800;font-size:calc(var(--avatar-size) * .42);text-shadow:0 2px 8px var(--color-scrim);-webkit-user-select:none;user-select:none}.lf-avatar:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;background:linear-gradient(160deg,var(--glass-highlight),transparent 45%)}.lf-avatar.sm{--avatar-size: 32px;border-radius:var(--radius-sm)}.lf-avatar.lg{--avatar-size: 120px;border-radius:var(--radius-xl)}.lf-avatar[data-avatar=aurora]{background:var(--avatar-aurora)}.lf-avatar[data-avatar=lagoon]{background:var(--avatar-lagoon)}.lf-avatar[data-avatar=dusk]{background:var(--avatar-dusk)}.lf-avatar[data-avatar=ember]{background:var(--avatar-ember)}.lf-avatar[data-avatar=meadow]{background:var(--avatar-meadow)}.lf-avatar[data-avatar=gold]{background:var(--avatar-gold)}.lf-avatar[data-avatar=nebula]{background:var(--avatar-nebula)}.lf-avatar[data-avatar=rose]{background:var(--avatar-rose)}.lf-avatar-initial{position:relative;z-index:1;line-height:1}.lf-avatar-kids{position:absolute;z-index:1;bottom:8px;left:50%;transform:translate(-50%);padding:2px 8px;border-radius:var(--radius-pill);font-size:.7rem;font-weight:800;letter-spacing:.04em;text-shadow:none;background:var(--glass-bg-strong);border:1px solid var(--glass-border-strong);backdrop-filter:var(--glass-blur-soft);-webkit-backdrop-filter:var(--glass-blur-soft)}.lf-avatar.sm .lf-avatar-kids{display:none}.profiles-page{align-items:flex-start}.profiles-shell{width:100%;max-width:900px;display:flex;flex-direction:column;align-items:center;gap:28px;text-align:center;animation:spring var(--dur-slow) var(--ease)}.profiles-shell h1{font-size:clamp(1.8rem,5vw,3rem);letter-spacing:-.01em}.profiles-note{font-size:.9rem}.profile-grid{list-style:none;width:100%;display:grid;gap:20px;justify-content:center;grid-template-columns:repeat(auto-fit,minmax(140px,168px))}.profile-grid>li{animation:rise var(--dur-slow) var(--ease) both;animation-delay:calc(var(--i, 0) * 60ms)}.profile-tile{position:relative;width:100%;display:flex;flex-direction:column;align-items:center;gap:12px;padding:18px 12px 16px;border-radius:var(--radius-xl);color:var(--color-muted);transition:transform var(--dur-base) var(--ease-enter),box-shadow var(--dur-base) var(--ease),color var(--dur-fast),border-color var(--dur-fast)}.profile-tile:hover,.profile-tile:focus-visible{transform:scale(1.03);color:var(--color-text);box-shadow:var(--shadow-card-hover)}.profile-tile.active{border-color:var(--glass-border-strong);color:var(--color-text)}.profile-tile.active:before{content:"";position:absolute;top:10px;right:10px;width:8px;height:8px;border-radius:50%;background:var(--color-success);box-shadow:0 0 10px var(--color-success)}.profile-tile.managing .lf-avatar{filter:saturate(.7) brightness(.75)}.profile-tile-edit{position:absolute;top:78px;left:50%;transform:translate(-50%,-50%);width:44px;height:44px;display:grid;place-items:center;border-radius:50%;font-size:1.2rem;color:var(--color-text);background:var(--glass-bg-strong);border:1px solid var(--glass-border-strong);backdrop-filter:var(--glass-blur-soft);-webkit-backdrop-filter:var(--glass-blur-soft)}.profile-tile-name{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;font-size:1rem}.profile-tile.add .add-glyph{background:var(--glass-bg-faint);border:2px dashed var(--glass-border-strong);box-shadow:none;color:var(--color-muted);font-weight:300;font-size:3rem}.profile-tile.add .add-glyph:after{display:none}.profile-tile.add:hover .add-glyph{color:var(--color-text);border-color:var(--color-text)}.modal-backdrop>.profile-editor.sheet{width:min(480px,100%);padding:28px;text-align:left}@media (max-width: 1024px){.modal-backdrop>.profile-editor.sheet{width:100%;padding-bottom:calc(28px + var(--safe-bottom))}.modal-backdrop>.profile-editor.sheet{padding-top:0}.profile-editor.sheet form{padding-top:28px}}.profile-editor form{display:flex;flex-direction:column;gap:20px}.profile-editor-head{touch-action:none;display:flex;align-items:center;gap:18px}.profile-editor-head .lf-avatar.lg{--avatar-size: 88px}.profile-editor-head h2{font-size:1.5rem}.profile-editor .field{display:flex;flex-direction:column;gap:8px;border:0;min-width:0}.profile-editor label,.profile-editor legend{font-weight:600;font-size:.9rem;color:var(--color-text-soft)}.profile-editor legend{margin-bottom:8px}.text-input{width:100%;padding:10px 14px;border-radius:var(--radius-md);color:var(--color-text);font:inherit;transition:border-color var(--dur-fast)}.text-input[aria-invalid=true]{border-color:var(--color-danger)}.field-error{color:var(--color-danger-soft);font-size:.85rem}.avatar-picker{display:grid;grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:10px}.avatar-choice{display:grid;place-items:center;padding:4px;border-radius:var(--radius-md);border:2px solid transparent;transition:transform var(--dur-fast) var(--ease-enter),border-color var(--dur-fast)}.avatar-choice:hover{transform:scale(1.03)}.avatar-choice.selected{border-color:var(--color-text);box-shadow:0 0 16px var(--focus-ring-glow)}.avatar-choice .lf-avatar.sm{--avatar-size: 36px}.kids-toggle{flex-direction:row!important;align-items:flex-start;gap:12px!important}.kids-toggle input{-moz-appearance:none;appearance:none;-webkit-appearance:none;flex:0 0 auto;position:relative;margin-top:2px;width:42px;height:24px;border-radius:var(--radius-pill);cursor:pointer;background:var(--glass-bg);border:1px solid var(--glass-border-strong);transition:background var(--dur-fast)}.kids-toggle input:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:var(--color-text);transition:transform var(--dur-fast) var(--ease-toggle)}.kids-toggle input:checked{background:var(--color-success)}.kids-toggle input:checked:after{transform:translate(18px)}.kids-toggle label{display:flex;flex-direction:column;gap:2px;cursor:pointer}.kids-toggle .muted{color:var(--color-muted);font-weight:400;font-size:.8rem}.profile-editor-actions{display:flex;flex-wrap:wrap;gap:10px}.profile-editor-actions .danger{margin-left:auto;color:var(--color-danger-soft)}.delete-confirm{padding:16px;border-radius:var(--radius-lg);display:flex;flex-direction:column;gap:12px;border-color:var(--color-danger)}.delete-confirm p{color:var(--color-text-soft);line-height:1.45}.delete-confirm .actions{flex-wrap:wrap}.profile-menu{position:relative}.profile-trigger{display:flex;align-items:center;gap:8px;padding:3px 10px 3px 3px;border-radius:var(--radius-pill);transition:background var(--dur-fast)}.profile-trigger:hover,.profile-trigger[aria-expanded=true]{background:var(--glass-bg)}.profile-trigger .lf-avatar.sm{--avatar-size: 30px;border-radius:50%;font-size:.85rem}.profile-trigger-name{font-size:.85rem;font-weight:600;max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kids-pill{padding:1px 7px;border-radius:var(--radius-pill);font-size:.65rem;font-weight:800;letter-spacing:.04em;background:var(--color-success);color:var(--color-on-light)}.profile-dropdown{position:absolute;top:calc(100% + 12px);right:0;z-index:60;min-width:220px;max-width:calc(100vw - 32px);padding:8px;border-radius:var(--radius-lg);background:var(--glass-bg-strong);display:flex;flex-direction:column;gap:2px;animation:menu-in var(--dur-base) var(--ease)}.profile-dropdown-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border-radius:var(--radius-sm);text-align:left;font-size:.9rem;color:var(--color-text-soft);text-decoration:none;transition:background var(--dur-fast),color var(--dur-fast)}.profile-dropdown-item>span:not(.lf-avatar):not(.kids-pill){flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-dropdown-item:hover,.profile-dropdown-item:focus-visible{background:var(--glass-bg);color:var(--color-text)}.profile-dropdown-item.active{color:var(--color-text);font-weight:700}.profile-dropdown-item.manage{justify-content:center;color:var(--color-muted)}.profile-dropdown-sep{height:1px;margin:6px 4px;background:var(--glass-border)}@keyframes menu-in{0%{opacity:0;transform:translateY(-6px) scale(.97)}}@media (max-width: 480px){.profile-trigger-name,.profile-trigger .kids-pill{display:none}.profile-trigger{padding:7px;min-width:var(--tap);min-height:var(--tap);justify-content:center}}@media (max-width: 480px){.profiles-page{padding-left:16px;padding-right:16px}.profile-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.lf-avatar.lg{--avatar-size: 96px}.profile-tile-edit{top:66px}.modal-backdrop>.profile-editor.sheet{padding:0 20px 20px;padding-bottom:calc(20px + var(--safe-bottom))}.profile-editor.sheet form{padding-top:20px}.profile-editor-head .lf-avatar.lg{--avatar-size: 64px}.profile-editor-actions .danger{margin-left:0}}@media (prefers-reduced-motion: reduce){.profiles-shell,.profile-grid>li,.profile-editor,.profile-dropdown{animation:none}.profile-tile:hover,.profile-tile:focus-visible,.avatar-choice:hover{transform:none}.profile-tile,.avatar-choice,.kids-toggle input:after{transition:none}}.logo-mark{--logo-grad-a: var(--brand-grad-a, #6f5bf5);--logo-grad-b: var(--brand-grad-b, #5ccbff);--logo-halo-a: var(--color-sky, #6fd3ff);--logo-halo-b: var(--brand-lavender, #9b8cff);--logo-shadow-color: var(--color-accent, #5b47e0);--logo-ease-enter: var(--ease-enter, cubic-bezier(.16, 1, .3, 1));--logo-ease-exit: var(--ease-exit, cubic-bezier(.4, 0, .6, 1));--logo-dur-micro: var(--dur-micro, .16s);--logo-dur-layout: var(--dur-layout, .4s);--logo-dur-page: var(--dur-page, .6s);--logo-dur-sweep: var(--dur-sweep, .9s);position:relative;display:inline-grid;place-items:center;flex-shrink:0;vertical-align:middle;line-height:0;isolation:isolate}.logo-mark__svg{position:relative;z-index:1;display:block}.logo-mark--hero{--logo-grad-a: var(--brand-lavender, #9b8cff);--logo-grad-b: var(--color-sky, #6fd3ff)}.logo-mark__lens{transform-box:view-box;transform-origin:100px 0}.logo-mark__tile{transform-box:view-box;transform-origin:50% 50%;transition:transform var(--logo-dur-micro) var(--logo-ease-exit)}.logo-mark__band{transform:translate(0)}.logo-mark__halo{position:absolute;top:-50%;right:-50%;bottom:-20%;left:-20%;z-index:0;pointer-events:none;transform:scale(1);transition:transform var(--logo-dur-micro) var(--logo-ease-exit),opacity var(--logo-dur-micro) var(--logo-ease-exit)}.logo-mark__halo:before,.logo-mark__halo:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;filter:blur(14px);background:radial-gradient(circle closest-side,color-mix(in srgb,var(--logo-halo-a) 70%,transparent) 0%,color-mix(in srgb,var(--logo-halo-b) 55%,transparent) 35%,color-mix(in srgb,var(--logo-halo-b) 18%,transparent) 65%,color-mix(in srgb,var(--logo-halo-b) 4%,transparent) 85%,transparent 100%)}.logo-mark__halo:before{opacity:.45}.logo-mark__halo:after{opacity:0;transition:opacity var(--logo-dur-micro) var(--logo-ease-exit)}.logo-mark--header:before,.logo-mark--header:after{content:"";position:absolute;top:10%;right:10%;bottom:4%;left:10%;z-index:0;border-radius:30%;pointer-events:none}.logo-mark--header:before{box-shadow:0 2px 10px color-mix(in srgb,var(--logo-shadow-color) 24%,transparent)}.logo-mark--header:after{opacity:0;box-shadow:var( --glow-accent, 0 4px 16px color-mix(in srgb, var(--logo-shadow-color) 40%, transparent) );transition:opacity var(--logo-dur-micro) var(--logo-ease-exit)}@keyframes lf-logo-lens{0%{transform:scale(0)}}@keyframes lf-logo-tile{0%{opacity:0}}@keyframes lf-logo-sweep{0%{transform:translate(0)}to{transform:translate(180px)}}@keyframes lf-logo-sweep-hover{0%{transform:translate(0)}to{transform:translate(180px)}}@keyframes lf-logo-halo-in{0%{opacity:0}}@keyframes lf-logo-breathe{0%,to{opacity:.45}50%{opacity:.6}}.logo-mark[data-animate=once] .logo-mark__lens{animation:lf-logo-lens var(--logo-dur-page) var(--logo-ease-enter) both}.logo-mark--hero[data-animate=once] .logo-mark__lens{animation-duration:var(--logo-dur-sweep)}.logo-mark--hero[data-animate=once] .logo-mark__tile{animation:lf-logo-tile var(--logo-dur-page) var(--logo-ease-enter) both}.logo-mark--hero[data-animate=once] .logo-mark__band{animation:lf-logo-sweep var(--logo-dur-sweep) var(--logo-ease-exit) .15s both}.logo-mark--hero[data-animate=once] .logo-mark__halo:before{animation:lf-logo-halo-in var(--logo-dur-page) var(--logo-ease-enter) .3s both,lf-logo-breathe 6s ease-in-out .9s infinite}.logo-mark--hero[data-animate=hover] .logo-mark__halo:before{animation:lf-logo-breathe 6s ease-in-out infinite}:is(.logo-mark:hover,:is(.logo,a,button):hover .logo-mark,:is(.logo,a,button):focus-visible .logo-mark):not([data-animate=none]) .logo-mark__tile{transform:scale(1.03);transition:transform var(--logo-dur-layout) var(--logo-ease-enter)}:is(.logo-mark:hover,:is(.logo,a,button):hover .logo-mark,:is(.logo,a,button):focus-visible .logo-mark):not([data-animate=none]) .logo-mark__halo{transform:scale(1.04);will-change:opacity,transform;transition:transform var(--logo-dur-layout) var(--logo-ease-enter)}:is(.logo-mark:hover,:is(.logo,a,button):hover .logo-mark,:is(.logo,a,button):focus-visible .logo-mark):not([data-animate=none]) .logo-mark__halo:after{opacity:.9;will-change:opacity;transition:opacity var(--logo-dur-layout) var(--logo-ease-enter)}:is(.logo-mark:hover,:is(.logo,a,button):hover .logo-mark,:is(.logo,a,button):focus-visible .logo-mark).logo-mark--header:not([data-animate=none]):after{opacity:1;transition:opacity var(--logo-dur-layout) var(--logo-ease-enter)}:is(.logo-mark:hover,:is(.logo,a,button):hover .logo-mark,:is(.logo,a,button):focus-visible .logo-mark).logo-mark--hero[data-animate=once] .logo-mark__band{animation:lf-logo-sweep var(--logo-dur-sweep) var(--logo-ease-exit) .15s both,lf-logo-sweep-hover var(--logo-dur-sweep) var(--logo-ease-exit) both}:is(.logo-mark:hover,:is(.logo,a,button):hover .logo-mark,:is(.logo,a,button):focus-visible .logo-mark).logo-mark--hero[data-animate=hover] .logo-mark__band{animation:lf-logo-sweep-hover var(--logo-dur-sweep) var(--logo-ease-exit) both}:is(.logo-mark:hover,:is(.logo,a,button):hover .logo-mark,:is(.logo,a,button):focus-visible .logo-mark).logo-mark--header:not([data-animate=none]) .logo-mark__band{animation:lf-logo-sweep-hover var(--logo-dur-page) var(--logo-ease-exit) both}.logo.logo--with-mark{display:inline-flex;align-items:center;gap:10px}@media (prefers-reduced-motion: reduce){.logo-mark,.logo-mark:before,.logo-mark:after,.logo-mark *,.logo-mark *:before,.logo-mark *:after{animation:none!important;transition:none!important}.logo-mark .logo-mark__tile,.logo-mark .logo-mark__halo{transform:none!important;will-change:auto!important}.logo-mark__halo:before{opacity:.65!important}}@media (forced-colors: active){.logo-mark__tile{fill:CanvasText}.logo-mark mask *{forced-color-adjust:none}.logo-mark__band,.logo-mark__halo,.logo-mark--header:before,.logo-mark--header:after{display:none}}.theme-toggle{display:inline-flex;align-items:center}.theme-toggle-group{display:inline-flex;align-items:center;gap:2px;padding:3px;border-radius:var(--radius-pill);background:var(--color-surface-2);border:1px solid var(--glass-border)}.theme-toggle-option{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:32px;min-width:32px;padding:0 12px;border-radius:var(--radius-pill);color:var(--color-text-soft);font-size:.85rem;font-weight:500;line-height:1;white-space:nowrap;position:relative;transition:background var(--dur-component) var(--ease-enter),color var(--dur-component) var(--ease-enter)}.theme-toggle-option:hover{color:var(--color-text)}.theme-toggle-option:hover:not(.is-checked){background:var(--glass-bg)}.theme-toggle-option.is-checked{background:var(--color-control-selected);color:var(--color-text);box-shadow:inset 0 0 0 1px var(--glass-border-strong),var(--shadow-1)}.theme-toggle-option:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}.theme-toggle-icon{display:inline-flex;flex-shrink:0}.theme-toggle-icon svg{display:block}.navbar .nav-theme-desktop .theme-toggle-label{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.navbar .nav-theme-desktop .theme-toggle-option{padding:0 9px}html[data-vt=theme]::view-transition-old(root),html[data-vt=theme]::view-transition-new(root){animation:none;mix-blend-mode:normal}html[data-vt=theme]::view-transition-old(root){z-index:1}html[data-vt=theme]::view-transition-new(root){z-index:2}.navbar{position:fixed;top:calc(var(--nav-top) + var(--safe-top));left:calc(var(--nav-inset) + var(--safe-left));right:calc(var(--nav-inset) + var(--safe-right));z-index:50;box-sizing:border-box;height:var(--nav-h);display:flex;align-items:center;gap:clamp(12px,2vw,32px);padding:0 clamp(14px,2vw,24px);border-radius:var(--radius-pill);background:var(--glass-bg);border:1px solid var(--glass-border);animation:lf-fade var(--dur-layout) var(--ease-enter) both;transition:background var(--dur-layout) var(--ease-enter),box-shadow var(--dur-layout) var(--ease-enter)}.navbar.scrolled{background:var(--glass-bg-strong);box-shadow:var(--shadow-1)}.logo{font-weight:800;letter-spacing:2px;font-size:1.05rem;color:var(--color-text);transition:color var(--dur-micro) var(--ease-enter)}a.logo,a.logo:hover{text-decoration:none}@media (hover: hover) and (pointer: fine){.logo:hover{color:var(--color-accent-text)}}.nav-links{display:flex;gap:22px;margin:0;padding:0;list-style:none;font-size:.9rem;color:var(--color-text-soft)}.nav-links li{cursor:pointer}.nav-links a{color:var(--color-text-soft);text-decoration:none;transition:color var(--dur-micro) var(--ease-enter)}.nav-links a.active{color:var(--color-text)}@media (hover: hover) and (pointer: fine){.nav-links a:hover{color:var(--color-text)}}@media (min-width: 1025px){.nav-links a.active{text-decoration:underline;text-decoration-color:var(--color-accent);text-decoration-thickness:2px;text-underline-offset:6px}}.nav-right{margin-left:auto;display:flex;align-items:center;gap:12px}.search{box-sizing:border-box;width:160px;min-height:40px;padding:8px 16px;font-size:max(16px,1rem);color:var(--color-text);background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-pill);outline:none}.search:focus{width:240px}a.avatar{display:block}.avatar{width:34px;height:34px;border-radius:50%;background:var(--brand-gradient)}.navbar .nav-toggle{display:none;flex-shrink:0;width:var(--tap);height:var(--tap);color:var(--color-text);font-size:1.1rem;cursor:pointer}.navbar .nav-theme-menu{display:none}.navbar .nav-theme-desktop{display:inline-flex}.navbar .logo,.navbar .nav-links a{white-space:nowrap}@media (min-width: 1025px) and (max-width: 1200px){.navbar{gap:20px}.navbar .nav-links{gap:14px}.navbar .nav-right{gap:10px}.navbar .search{width:120px}.navbar .search:focus{width:160px}}@media (max-width: 1024px){.navbar .nav-theme-desktop{display:none}.navbar .nav-links.is-open .nav-theme-menu{display:flex;justify-content:center;padding:6px 8px 10px;margin-bottom:4px;border-bottom:1px solid var(--glass-border);cursor:default}.navbar .nav-links.is-open .nav-theme-menu .theme-toggle,.navbar .nav-links.is-open .nav-theme-menu .theme-toggle-group{display:flex;width:100%}.navbar .nav-links.is-open .nav-theme-menu .theme-toggle-option{flex:1;min-height:var(--tap)}.navbar .nav-toggle{display:inline-flex}.nav-links{display:none}.search{width:clamp(var(--tap),18vw,140px);min-width:0}.search:focus{width:clamp(120px,30vw,200px)}.navbar .nav-links.is-open{display:flex;flex-direction:column;gap:4px;position:absolute;top:calc(100% + 8px);left:0;right:0;box-sizing:border-box;max-height:calc(100vh - var(--nav-top) - var(--nav-h) - var(--safe-top) - 24px);max-height:calc(100dvh - var(--nav-top) - var(--nav-h) - var(--safe-top) - 24px);overflow:auto;margin:0;padding:8px;padding-bottom:calc(8px + var(--safe-bottom));border-radius:var(--radius-xl);background:var(--color-surface-solid);border:1px solid var(--glass-border);box-shadow:var(--shadow-2);font-size:1rem;color:var(--color-text-soft);animation:nav-sheet-in var(--dur-component) var(--ease-enter) both}.navbar .nav-links.is-open a{display:flex;align-items:center;min-height:var(--tap);padding:10px 14px;border-radius:var(--radius-md)}.navbar .nav-links.is-open a.active{background:var(--color-tint);color:var(--color-text)}.navbar .nav-links.is-open a:active{transform:scale(.97);transition:transform var(--dur-feedback) var(--ease-exit)}}@media (max-width: 1024px) and (hover: hover) and (pointer: fine){.navbar .nav-links.is-open a:hover{background:var(--color-tint);color:var(--color-text)}}@media (max-width: 600px){.navbar .profile-trigger-name{display:none}}@media (max-width: 480px){.navbar,.navbar .nav-right{gap:8px}.navbar .logo.logo--with-mark{font-size:0;letter-spacing:0;gap:0}.nav-right form[role=search]{position:relative}.nav-right form[role=search]:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;width:20px;height:20px;margin:auto;background:var(--color-text-soft);-webkit-mask:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'><circle cx='11' cy='11' r='7'/><path d='m20 20-3.5-3.5'/></svg>") center / contain no-repeat;mask:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'><circle cx='11' cy='11' r='7'/><path d='m20 20-3.5-3.5'/></svg>") center / contain no-repeat;pointer-events:none}.nav-right form[role=search]:focus-within:before,.nav-right form[role=search]:has(.search:not(:placeholder-shown)):before{display:none}.search{width:var(--tap);min-height:var(--tap);padding:8px 12px;color:transparent}.search::placeholder{color:transparent}.search:focus,.search:not(:placeholder-shown){width:160px;color:var(--color-text)}.search:focus::placeholder{color:var(--color-muted)}}@keyframes nav-sheet-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){.navbar,.navbar .nav-links.is-open{animation:none;opacity:1;transform:none}.navbar .nav-links.is-open a:active{transform:none}}.error-page{align-items:flex-start}.error-card{width:100%;max-width:560px;padding:32px;border-radius:var(--radius-xl);background:var(--glass-bg);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);text-align:center;animation:error-card-in var(--dur-slow) var(--ease-enter) both}.error-card-icon{width:56px;height:56px;margin:0 auto 16px;display:grid;place-items:center;border-radius:var(--radius-pill);font-size:1.6rem;font-weight:800;color:var(--color-text);background:var(--glass-bg-strong);border:1px solid var(--glass-border-strong);box-shadow:var(--glow-accent)}.error-card h1{margin:0 0 8px;font-size:1.6rem}.error-card h1:focus{outline:none}.error-card h1:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset);border-radius:var(--radius-xs)}.error-card-message{color:var(--color-muted);line-height:1.5}.error-card-actions{margin-top:24px;display:flex;flex-wrap:wrap;justify-content:center;gap:12px}.error-card-actions .btn{text-decoration:none;color:var(--color-text)}.error-card-actions .btn.primary{color:var(--color-on-light)}@keyframes error-card-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.offline-region{position:fixed;left:16px;right:16px;bottom:16px;z-index:60;display:flex;justify-content:center;pointer-events:none}.offline-banner{display:inline-flex;align-items:center;gap:10px;max-width:100%;padding:10px 18px;border-radius:var(--radius-pill);background:var(--glass-bg-strong);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);color:var(--color-text-soft);font-size:.9rem;pointer-events:auto;animation:offline-in var(--dur-medium) var(--ease-out) both}.offline-dot{flex:none;width:8px;height:8px;border-radius:50%;background:var(--color-accent);box-shadow:var(--glow-accent);animation:offline-pulse 1.6s var(--ease-in-out) infinite}.offline-sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}@keyframes offline-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes offline-pulse{50%{opacity:.35}}@media (max-width: 480px){.error-card{padding:24px 18px}.error-card-actions .btn{flex:1 1 100%}.offline-region{left:12px;right:12px;bottom:12px}.offline-banner{border-radius:var(--radius-lg);font-size:.85rem}}@media (prefers-reduced-motion: reduce){.error-card,.offline-banner,.offline-dot{animation:none}}a.skip-link{position:fixed;top:12px;left:16px;z-index:200;padding:10px 18px;border-radius:var(--radius-pill);background:var(--glass-bg-strong);color:var(--color-text);font-weight:700;text-decoration:none;transform:translateY(calc(-100% - 24px));transition:transform var(--dur-base) var(--ease-out)}a.skip-link:focus,a.skip-link:focus-visible{transform:none}.main-target:focus{outline:none;box-shadow:none}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}.row.in .card:focus-visible{transform:scale(1.03);z-index:3;transition-delay:0ms!important}.card:focus-visible .card-info,.card:focus-within .card-info{transform:none}.row-wrap:focus-within .arrow{opacity:1}.card .card-info{background:var(--glass-bg-legible)}.card .card-info span{color:var(--color-text-soft)}.search[type=search]{-webkit-appearance:none;-moz-appearance:none;appearance:none}.search::placeholder{color:var(--color-muted);opacity:1}@media (prefers-reduced-motion: reduce){:root{scroll-behavior:auto}a.skip-link{transition:none}.row.in .card:focus-visible{transform:none!important}}:root{color-scheme:light;--color-bg: #f6f5ff;--color-text: #141126;--color-text-soft: #4a4766;--color-muted: #666384;--color-accent: #5b47e0;--color-accent-hover: #4e3bd1;--color-accent-text: #4030b8;--color-on-accent: #ffffff;--color-accent-soft: #eceafb;--brand-lavender: #9b8cff;--brand-grad-a: #6f5bf5;--brand-grad-b: #5ccbff;--brand-gradient: linear-gradient(135deg, var(--brand-grad-a), var(--brand-grad-b));--color-sky: #6fd3ff;--color-sky-tint: rgba(111, 211, 255, .12);--color-ink: #141126;--color-ink-fg: #f6f5ff;--color-ink-fg-soft: #bdb9d8;--color-ink-fg-muted: #948fb3;--color-ink-accent: #9b8cff;--color-ink-scrim: rgba(14, 11, 30, .85);--color-success: #17754c;--color-warn: #8f5a00;--color-danger: #c0392b;--color-danger-soft: #c0392b;--color-rating: #f5c518;--color-surface: #ffffff;--color-surface-2: #eceafb;--color-surface-3: #e2dff7;--color-surface-solid: #ffffff;--color-tint: #eceafb;--color-control-selected: #ffffff;--color-scrim: rgba(20, 17, 38, .45);--color-scrim-strong: rgba(20, 17, 38, .8);--color-on-text: var(--color-bg);--color-on-light: var(--color-on-text);--glass-bg: rgba(255, 255, 255, .55);--glass-bg-faint: rgba(255, 255, 255, .3);--glass-bg-strong: rgba(255, 255, 255, .86);--glass-bg-legible: rgba(255, 255, 255, .88);--color-on-glass: var(--color-text);--color-on-glass-soft: var(--color-text-soft);--glass-border: rgba(20, 17, 38, .1);--glass-border-strong: rgba(20, 17, 38, .18);--glass-blur: blur(12px) saturate(140%);--glass-blur-soft: blur(8px);--glass-shadow: 0 1px 2px rgba(20, 17, 38, .06), 0 4px 12px rgba(20, 17, 38, .06);--glass-highlight: rgba(255, 255, 255, .6);--shadow-1: 0 1px 2px rgba(20, 17, 38, .06), 0 4px 12px rgba(20, 17, 38, .06);--shadow-2: 0 2px 4px rgba(20, 17, 38, .06), 0 16px 40px rgba(20, 17, 38, .14);--shadow-card-hover: var(--shadow-2), 0 0 0 1px rgba(91, 71, 224, .25);--glow-accent: 0 8px 24px rgba(91, 71, 224, .35);--glow-light: 0 8px 24px rgba(20, 17, 38, .25);--room-light: radial-gradient(60vw 40vw at 85% -10%, rgba(155, 140, 255, .16), transparent);--radius-xs: 4px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--radius-pill: 999px;--ease-enter: cubic-bezier(.16, 1, .3, 1);--ease-exit: cubic-bezier(.4, 0, .6, 1);--ease-toggle: cubic-bezier(.34, 1.2, .64, 1);--ease-out: var(--ease-enter);--ease-spring: var(--ease-toggle);--ease-standard: ease;--ease-in-out: ease-in-out;--dur-feedback: .1s;--dur-micro: .16s;--dur-component: .24s;--dur-layout: .4s;--dur-page: .6s;--dur-sweep: .9s;--dur-fast: var(--dur-micro);--dur-base: var(--dur-component);--dur-medium: var(--dur-layout);--dur-slow: var(--dur-page);--dur-slower: .8s;--dur-hero: 1.2s;--dur-leave: var(--dur-micro);--focus-ring-color: var(--color-accent);--focus-ring-glow: rgba(91, 71, 224, .35);--focus-ring-width: 2px;--focus-ring-offset: 2px;--avatar-aurora: linear-gradient(135deg, #6f5bf5, #5ccbff);--avatar-lagoon: linear-gradient(135deg, #6fd3ff, #4030b8);--avatar-dusk: linear-gradient(135deg, #5b47e0, #e5739a);--avatar-ember: linear-gradient(135deg, #f2b75c, #c0392b);--avatar-meadow: linear-gradient(135deg, #17754c, #6fd3ff);--avatar-gold: linear-gradient(135deg, #f9c784, #8f5a00);--avatar-nebula: linear-gradient(135deg, #141126, #5b47e0);--avatar-rose: linear-gradient(135deg, #ff8fa3, #f9c784);--font-display: "Gabarito", "Gabarito Fallback", system-ui, -apple-system, sans-serif;--font-body: "Figtree", "Figtree Fallback", system-ui, -apple-system, sans-serif;--font-mono: "DM Mono", "DM Mono Fallback", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--weight-body: 400;--weight-medium: 500;--weight-semibold: 600;--weight-display: 700;--tracking-display: -.02em;--tracking-label: .08em;--leading-display: 1.1;--leading-body: 1.55;--text-xs: .75rem;--text-sm: .875rem;--text-body: clamp(1rem, .95rem + .25vw, 1.125rem);--text-lg: 1.125rem;--text-h3: clamp(1.1rem, 1rem + .5vw, 1.35rem);--text-h2: clamp(1.25rem, 1rem + 1.2vw, 1.75rem);--text-h1: clamp(1.6rem, 1.2rem + 2vw, 2.4rem);--text-hero: clamp(2rem, 1.2rem + 4vw, 4rem);--text-display: clamp(1.9rem, 1.2rem + 3vw, 3.2rem);--bg: var(--color-bg);--text: var(--color-text);--muted: var(--color-muted);--accent: var(--color-accent);--violet: var(--color-accent);--color-violet: var(--color-accent);--cyan: var(--color-sky);--color-cyan: var(--color-sky);--radius: var(--radius-lg);--ease: var(--ease-enter)}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){color-scheme:dark;--color-bg: #141126;--color-text: #f6f5ff;--color-text-soft: #bdb9d8;--color-muted: #948fb3;--color-accent: #9b8cff;--color-accent-hover: #afa3ff;--color-accent-text: #b8adff;--color-on-accent: #141126;--color-accent-soft: #241f40;--brand-grad-a: #9b8cff;--brand-grad-b: #6fd3ff;--color-success: #5bd39a;--color-warn: #f2b75c;--color-danger: #ff8a8f;--color-danger-soft: #ff8a8f;--color-surface: #1c1833;--color-surface-2: #241f40;--color-surface-3: #2c2650;--color-surface-solid: #1c1833;--color-tint: rgba(155, 140, 255, .14);--color-control-selected: #332d58;--color-scrim: rgba(0, 0, 0, .5);--color-scrim-strong: rgba(0, 0, 0, .8);--glass-bg: rgba(255, 255, 255, .06);--glass-bg-faint: rgba(255, 255, 255, .03);--glass-bg-strong: rgba(20, 17, 38, .72);--glass-bg-legible: rgba(20, 17, 38, .86);--glass-border: rgba(246, 245, 255, .12);--glass-border-strong: rgba(246, 245, 255, .25);--glass-blur: blur(18px) saturate(160%);--glass-blur-soft: blur(10px);--glass-shadow: 0 8px 32px rgba(0, 0, 0, .35), inset 0 1px 0 rgba(255, 255, 255, .08);--glass-highlight: rgba(255, 255, 255, .3);--shadow-1: 0 1px 2px rgba(0, 0, 0, .3), 0 4px 12px rgba(0, 0, 0, .3);--shadow-2: 0 2px 4px rgba(0, 0, 0, .3), 0 16px 40px rgba(0, 0, 0, .45);--shadow-card-hover: var(--shadow-2), 0 0 0 1px rgba(246, 245, 255, .25), 0 0 30px rgba(155, 140, 255, .35);--glow-accent: 0 8px 24px rgba(155, 140, 255, .4);--glow-light: 0 0 24px rgba(255, 255, 255, .35);--room-light: radial-gradient(60vw 40vw at 85% -10%, rgba(155, 140, 255, .1), transparent);--focus-ring-color: #9b8cff;--focus-ring-glow: rgba(155, 140, 255, .45)}}:root[data-theme=dark]{color-scheme:dark;--color-bg: #141126;--color-text: #f6f5ff;--color-text-soft: #bdb9d8;--color-muted: #948fb3;--color-accent: #9b8cff;--color-accent-hover: #afa3ff;--color-accent-text: #b8adff;--color-on-accent: #141126;--color-accent-soft: #241f40;--brand-grad-a: #9b8cff;--brand-grad-b: #6fd3ff;--color-success: #5bd39a;--color-warn: #f2b75c;--color-danger: #ff8a8f;--color-danger-soft: #ff8a8f;--color-surface: #1c1833;--color-surface-2: #241f40;--color-surface-3: #2c2650;--color-surface-solid: #1c1833;--color-tint: rgba(155, 140, 255, .14);--color-control-selected: #332d58;--color-scrim: rgba(0, 0, 0, .5);--color-scrim-strong: rgba(0, 0, 0, .8);--glass-bg: rgba(255, 255, 255, .06);--glass-bg-faint: rgba(255, 255, 255, .03);--glass-bg-strong: rgba(20, 17, 38, .72);--glass-bg-legible: rgba(20, 17, 38, .86);--glass-border: rgba(246, 245, 255, .12);--glass-border-strong: rgba(246, 245, 255, .25);--glass-blur: blur(18px) saturate(160%);--glass-blur-soft: blur(10px);--glass-shadow: 0 8px 32px rgba(0, 0, 0, .35), inset 0 1px 0 rgba(255, 255, 255, .08);--glass-highlight: rgba(255, 255, 255, .3);--shadow-1: 0 1px 2px rgba(0, 0, 0, .3), 0 4px 12px rgba(0, 0, 0, .3);--shadow-2: 0 2px 4px rgba(0, 0, 0, .3), 0 16px 40px rgba(0, 0, 0, .45);--shadow-card-hover: var(--shadow-2), 0 0 0 1px rgba(246, 245, 255, .25), 0 0 30px rgba(155, 140, 255, .35);--glow-accent: 0 8px 24px rgba(155, 140, 255, .4);--glow-light: 0 0 24px rgba(255, 255, 255, .35);--room-light: radial-gradient(60vw 40vw at 85% -10%, rgba(155, 140, 255, .1), transparent);--focus-ring-color: #9b8cff;--focus-ring-glow: rgba(155, 140, 255, .45)}@font-face{font-family:Gabarito;font-style:normal;font-weight:400 900;font-display:swap;src:url(/fonts/gabarito-latin.woff2) format("woff2");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:Gabarito;font-style:normal;font-weight:400 900;font-display:swap;src:url(/fonts/gabarito-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Gabarito Fallback;src:local("Arial"),local("ArialMT"),local("Helvetica");ascent-override:94.81%;descent-override:26.22%;line-gap-override:0%;size-adjust:99.15%}@font-face{font-family:Figtree;font-style:normal;font-weight:300 900;font-display:swap;src:url(/fonts/figtree-latin.woff2) format("woff2");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:Figtree;font-style:normal;font-weight:300 900;font-display:swap;src:url(/fonts/figtree-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Figtree;font-style:italic;font-weight:300 900;font-display:swap;src:url(/fonts/figtree-latin-italic.woff2) format("woff2");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:Figtree;font-style:italic;font-weight:300 900;font-display:swap;src:url(/fonts/figtree-latin-ext-italic.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Figtree Fallback;src:local("Arial"),local("ArialMT"),local("Helvetica");ascent-override:94.32%;descent-override:24.82%;line-gap-override:0%;size-adjust:100.72%}@font-face{font-family:DM Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/dm-mono-latin-400.woff2) format("woff2");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:DM Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/dm-mono-latin-ext-400.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/dm-mono-latin-500.woff2) format("woff2");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:DM Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/dm-mono-latin-ext-500.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Mono Fallback;src:local("Courier New"),local("CourierNewPSMT");ascent-override:99.22%;descent-override:31.01%;line-gap-override:0%;size-adjust:99.98%}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 22px;border-radius:var(--radius-sm);font-weight:700;transition:transform var(--dur-fast) var(--ease),box-shadow var(--dur-base)}.btn.primary{background:var(--text);color:var(--color-on-light)}.btn.accent{background:var(--accent);color:var(--color-on-accent)}.btn.accent:hover{box-shadow:var(--glow-accent)}.btn.ghost{color:var(--muted)}.btn.ghost:hover{color:var(--text)}.btn.sm{padding:6px 14px;font-size:.85rem}.btn.lg{padding:14px 28px;font-size:1.05rem}.btn:disabled,.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.btn.loading{position:relative;color:transparent!important;pointer-events:none}.btn.loading:after{content:"";position:absolute;width:16px;height:16px;border-radius:50%;border:2px solid var(--text);border-top-color:transparent;animation:spin .8s linear infinite}.btn.primary.loading:after{border-color:var(--color-on-light);border-top-color:transparent}@keyframes spin{to{transform:rotate(360deg)}}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;line-height:1;transition:transform var(--dur-base) var(--ease),background var(--dur-fast)}.icon-btn:hover{transform:scale(1.04)}.icon-btn.sm{width:30px;height:30px;font-size:.9rem}.icon-btn.lg{width:44px;height:44px;font-size:1.4rem}.icon-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.skeleton{position:relative;overflow:hidden;display:block;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-md)}.skeleton:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,var(--glass-bg),transparent);animation:shimmer 1.6s var(--ease-in-out) infinite}.skeleton.text{height:1em;border-radius:var(--radius-xs)}.skeleton.circle{border-radius:50%}.skeleton.card{width:var(--card-w);aspect-ratio:2 / 3;flex:0 0 auto}@keyframes shimmer{to{transform:translate(100%)}}.toast-region{position:fixed;bottom:24px;right:24px;z-index:200;display:flex;flex-direction:column;gap:10px;pointer-events:none;max-width:min(360px,calc(100vw - 32px))}.toast{pointer-events:auto;display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:var(--radius-lg);font-size:.9rem;border-left:3px solid var(--glass-border-strong);animation:toast-in var(--dur-medium) var(--ease)}.toast.leaving{animation:toast-out var(--dur-base) var(--ease) forwards}.toast.success{border-left-color:var(--color-success)}.toast.error{border-left-color:var(--color-danger)}.toast.info{border-left-color:var(--cyan)}.toast-msg{flex:1}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}@keyframes toast-out{to{opacity:0;transform:translateY(8px) scale(.96)}}@media (max-width: 480px){.toast-region{left:16px;right:16px;bottom:16px;max-width:none}}:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset);box-shadow:0 0 0 calc(var(--focus-ring-width) + var(--focus-ring-offset) + 2px) var(--focus-ring-glow)}:focus:not(:focus-visible){outline:none}@media (prefers-reduced-motion: reduce){.skeleton:after,.btn.loading:after{animation:none}.toast,.toast.leaving{animation:none}.btn:hover,.icon-btn:hover{transform:none}}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);font-size:var(--text-body);line-height:var(--leading-body);font-weight:var(--weight-body);text-rendering:optimizeLegibility;overflow-x:hidden}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background:var(--room-light)}button{font:inherit;color:inherit;border:none;background:none;cursor:pointer}.glass{background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow)}h1,h2,h3,h4{font-family:var(--font-display);font-weight:var(--weight-display);letter-spacing:var(--tracking-display);line-height:var(--leading-display);text-wrap:balance}h1{font-size:var(--text-h1)}h2{font-size:var(--text-h2)}h3{font-size:var(--text-h3)}h4{font-size:var(--text-lg)}code,kbd,samp,.mono{font-family:var(--font-mono);font-size:.92em}input,textarea,select{font:inherit}.logo{font-family:var(--font-display);font-weight:var(--weight-display);letter-spacing:var(--tracking-display);color:var(--color-text);font-size:1.15rem;line-height:1;white-space:nowrap}.logo-tv{font-weight:var(--weight-medium);color:var(--color-accent);transition:color var(--dur-micro) var(--ease-exit)}.logo:hover .logo-tv,.logo:focus-visible .logo-tv{color:var(--color-accent-hover)}.meta{display:flex;flex-wrap:wrap;gap:12px;align-items:center;font-variant-numeric:tabular-nums;font-size:.9rem;color:var(--color-muted)}.fit{color:var(--color-accent-text);font-weight:700;font-style:normal}.badge{border:1px solid var(--color-muted);padding:0 6px;border-radius:var(--radius-xs);font-size:.75rem}.actions{display:flex;gap:12px}.btn{padding:10px 22px;border-radius:var(--radius-sm);font-weight:700;transition:box-shadow var(--dur-component) var(--ease-enter)}.btn:hover{transform:none}.btn.primary{background:var(--color-text);color:var(--color-on-text)}.btn.primary:hover{box-shadow:var(--glow-light)}.page{min-height:70vh;padding:120px 24px 40px;display:flex;justify-content:center}.page-card{width:100%;max-width:720px;padding:32px;border-radius:var(--radius-xl);animation:spring var(--dur-page) var(--ease-enter)}.page-card h1{margin:0 0 12px;font-size:var(--text-h1)}.page-card .muted{color:var(--color-muted)}.page-link{display:inline-block;margin-top:16px;color:var(--color-text);text-decoration:none;border-bottom:1px solid var(--color-muted)}.page-loading{min-height:70vh;display:grid;place-items:center;color:var(--color-muted)}.footer{text-align:center;color:var(--color-muted);padding:40px 0;font-size:.85rem}.footer a{color:inherit;text-decoration:none;border-bottom:1px solid var(--color-muted)}.footer a:hover{color:var(--color-text)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:grid;place-items:center;padding:16px;background:var(--color-scrim);animation:fade var(--dur-component) var(--ease-enter) both}.modal,.modal-backdrop>[role=dialog]{position:relative;width:min(820px,100%);max-height:90vh;max-height:90dvh;overflow:auto;border-radius:var(--radius-xl);background:var(--color-surface-solid);box-shadow:var(--shadow-2);animation:lf-screen var(--dur-layout) var(--ease-enter) backwards}@media (min-width: 1025px){.sheet-handle{display:none}.modal-backdrop{backdrop-filter:var(--glass-blur-soft);-webkit-backdrop-filter:var(--glass-blur-soft)}}@media (max-width: 1024px){.modal-backdrop{display:grid;align-items:end;justify-items:stretch;padding:0;backdrop-filter:none;-webkit-backdrop-filter:none}.modal,.modal-backdrop>[role=dialog]{width:100%;max-width:none;max-height:92vh;max-height:92dvh;border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding-bottom:var(--safe-bottom);overflow:auto;overscroll-behavior:contain;animation:lf-sheet-in var(--dur-layout) var(--ease-enter) backwards}.modal.is-snapping,.modal-backdrop>[role=dialog].is-snapping{transition:transform var(--dur-component) var(--ease-enter)}.sheet-handle{display:flex;justify-content:center;position:sticky;top:0;z-index:2;padding:8px 0 4px;touch-action:none;cursor:grab}.sheet-handle:before{content:"";width:36px;height:4px;border-radius:var(--radius-pill);background:var(--glass-border-strong)}}.modal-hero{position:relative;height:380px;background-size:cover;background-position:center;display:flex;align-items:flex-end}.modal-hero-fade{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to top,var(--color-surface-solid),transparent 60%)}.modal-hero h2{position:relative;font-size:2.4rem;padding:0 28px 12px}.modal-body{padding:8px 28px 28px;display:flex;flex-direction:column;gap:14px}.modal-body p{line-height:1.55;color:var(--color-text-soft)}.genres{color:var(--color-muted)!important;font-size:.9rem}.close{position:absolute;top:14px;right:14px;z-index:2;width:var(--tap);height:var(--tap);border-radius:50%}@keyframes fade{0%{opacity:0}}@keyframes lf-sheet-in{0%{transform:translateY(100%)}to{transform:none}}@keyframes spring{0%{opacity:0;transform:translateY(8px)}}@media (max-width: 480px){.modal-hero{height:220px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important}.row,.card{opacity:1!important;transform:none!important;translate:none!important}}:root{--nav-h: 64px;--nav-top: 12px;--hero-inset: 24px;--nav-inset: var(--hero-inset);--gutter: calc(var(--hero-inset) + clamp(24px, 5vw, 48px));--container: 1280px;--hero-radius: var(--radius-xl);--card-w: 176px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--safe-right: env(safe-area-inset-right, 0px);--fs-hero: clamp(2rem, 1.2rem + 4vw, 4rem);--fs-h2: clamp(1.25rem, 1rem + 1.2vw, 1.75rem);--fs-body: clamp(1rem, .95rem + .25vw, 1.125rem);--tap: 44px}@media (max-width: 1024px){:root{--card-w: 150px}}@media (max-width: 480px){:root{--gutter: 16px;--nav-h: 56px;--nav-top: 8px;--nav-inset: 12px;--hero-inset: 0px;--hero-radius: 0px;--card-w: 120px}}html{-webkit-text-size-adjust:100%}body{font-size:var(--fs-body);line-height:1.5}input,select,textarea{font:inherit;font-size:max(16px,1em)}.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:max(var(--gutter),var(--safe-left)) max(var(--gutter),var(--safe-right))}.btn{min-height:var(--tap);padding:10px 22px;border-radius:var(--radius-pill);transition:box-shadow var(--dur-component) var(--ease-enter),background var(--dur-component) var(--ease-enter),color var(--dur-component) var(--ease-enter),transform var(--dur-feedback) var(--ease-exit)}.btn.sm{min-height:36px;padding:6px 14px}.btn.primary{background:var(--color-accent);color:var(--color-on-accent)}.btn.primary:hover{background:var(--color-accent-hover);box-shadow:var(--glow-accent)}.btn.accent{background:var(--color-accent);color:var(--color-on-accent)}.btn.glass{color:var(--color-text)}.btn:active{transform:scale(.97)}.icon-btn{width:var(--tap);height:var(--tap)}.icon-btn.sm{width:36px;height:36px}.icon-btn.lg{width:48px;height:48px}.close{width:var(--tap);height:var(--tap)}@media (hover: none),(pointer: coarse){.btn:hover,.icon-btn:hover{box-shadow:none;transform:none}.icon-btn:active{transform:scale(.97);transition-duration:var(--dur-feedback)}}@media (max-width: 1024px){.glass{backdrop-filter:none;-webkit-backdrop-filter:none;background:var(--glass-bg-strong)}.glass.navbar,.modal-backdrop,.card-list-btn,.history-remove,.card-rate{backdrop-filter:none;-webkit-backdrop-filter:none}}@media (prefers-reduced-transparency: reduce){.glass,.modal-backdrop,.card-list-btn{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;background:var(--color-surface-solid)!important}}html.perf-lite .glass,html.perf-lite .modal-backdrop,html.perf-lite .card-list-btn{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}html.perf-lite body:before{display:none}.toast-region{bottom:calc(24px + var(--safe-bottom));right:calc(24px + var(--safe-right))}@media (max-width: 480px){.toast-region{left:calc(16px + var(--safe-left));right:calc(16px + var(--safe-right));bottom:calc(16px + var(--safe-bottom));max-width:none}}.page{padding:calc(var(--nav-top) + var(--nav-h) + 40px + var(--safe-top)) var(--gutter) 40px}.footer{padding-bottom:calc(40px + var(--safe-bottom))}@keyframes lf-rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes lf-fade{0%{opacity:0}to{opacity:1}}@keyframes lf-screen{0%{opacity:0;transform:scale(.985)}to{opacity:1;transform:none}}@keyframes lf-sweep{0%{transform:translate(-30%)}to{transform:translate(520%)}}@keyframes lf-breathe{0%,to{opacity:.45}50%{opacity:.6}}.lf-rise{animation:lf-rise var(--dur-page) var(--ease-enter) both;animation-delay:calc(var(--lf-delay, 0ms) + var(--i, 0) * 50ms)}.lf-fade{animation:lf-fade var(--dur-layout) var(--ease-enter) both;animation-delay:var(--lf-delay, 0ms)}.btn.primary{position:relative;overflow:hidden;isolation:isolate}.btn.primary:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;width:25%;z-index:-1;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(255,255,255,.28),transparent);transform:translate(-30%);opacity:0}@media (hover: hover) and (pointer: fine){.btn.primary:hover:after,.btn.primary:focus-visible:after{opacity:1;animation:lf-sweep var(--dur-sweep) var(--ease-exit) 1 both}}@view-transition{navigation: auto;}::view-transition-old(root){animation:lf-fade var(--dur-component) var(--ease-exit) reverse both}::view-transition-new(root){animation:lf-fade var(--dur-layout) var(--ease-enter) both}::view-transition-group(lf-artwork){animation-duration:var(--dur-layout);animation-timing-function:var(--ease-enter)}::view-transition-old(lf-artwork),::view-transition-new(lf-artwork){object-fit:cover;height:100%;overflow:hidden}@media (prefers-reduced-motion: reduce){.lf-rise,.lf-fade{animation:none;opacity:1;transform:none}.btn.primary:after{display:none}::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}
