.login-page{--morado:#7b5ba6;--rosa:#d9577a;--accent:var(--terracota);background:var(--paper);min-height:100svh;color:var(--ink);font-family:var(--font-manrope), system-ui, sans-serif;flex-direction:column;font-size:16px;line-height:24px;display:flex;overflow-x:clip}.login-page h1{font-family:inherit}.login-page :focus-visible{outline:2px solid var(--accent);outline-offset:2px}.login-skip{z-index:20;background:var(--ink);color:var(--paper);transition:translate .7s var(--ease-fluid);border-radius:9999px;padding:8px 12px;font-size:14px;font-weight:600;line-height:20px;text-decoration:none;position:absolute;top:8px;left:8px;translate:0 -64px}.login-skip:focus-visible{translate:0}.login-nav{z-index:10;border:1px solid color-mix(in srgb, var(--ink) 8%, transparent);background:color-mix(in srgb, var(--paper) 72%, transparent);-webkit-backdrop-filter:blur(24px)saturate(1.2);backdrop-filter:blur(24px)saturate(1.2);width:max-content;max-width:calc(100vw - 32px);box-shadow:0 16px 48px -24px color-mix(in srgb, var(--ink) 30%, transparent);border-radius:9999px;align-items:center;gap:16px;padding:8px 8px 8px 16px;display:flex;position:fixed;top:24px;left:50%;translate:-50%}.login-brand{color:var(--ink);align-items:center;gap:8px;font-size:16px;font-weight:700;line-height:24px;text-decoration:none;display:flex}.login-brand__mark{background:var(--terracota);width:24px;height:24px;transition:rotate .7s var(--ease-fluid);-webkit-mask:url(/brand/book-open.svg) 50%/contain no-repeat;mask:url(/brand/book-open.svg) 50%/contain no-repeat}.login-brand:hover .login-brand__mark{rotate:-8deg}.login-back{white-space:nowrap;color:var(--ink);transition:background-color .7s var(--ease-fluid), scale .7s var(--ease-fluid);border-radius:9999px;align-items:center;gap:8px;padding:8px 12px;font-size:14px;font-weight:600;line-height:20px;text-decoration:none;display:inline-flex}.login-back:before{content:"";background:var(--accent);width:16px;height:16px;transition:translate .7s var(--ease-fluid);-webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'><path d='M228,128a12,12,0,0,1-12,12H69l51.52,51.51a12,12,0,0,1-17,17l-72-72a12,12,0,0,1,0-17l72-72a12,12,0,0,1,17,17L69,116H216A12,12,0,0,1,228,128Z'/></svg>") 50%/contain no-repeat;mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'><path d='M228,128a12,12,0,0,1-12,12H69l51.52,51.51a12,12,0,0,1-17,17l-72-72a12,12,0,0,1,0-17l72-72a12,12,0,0,1,17,17L69,116H216A12,12,0,0,1,228,128Z'/></svg>") 50%/contain no-repeat}.login-back:hover{background:color-mix(in srgb, var(--ink) 6%, transparent)}.login-back:hover:before{translate:-2px}.login-back:active{scale:.98}.login-main{flex:1;grid-template-columns:minmax(0,1fr) minmax(360px,440px);align-items:center;gap:64px;width:100%;max-width:1280px;margin:0 auto;padding:96px 48px 48px;display:grid}.login-footer{color:var(--ink-soft);text-align:center;padding:24px 16px 32px;font-size:12px;line-height:16px}.login-scene{margin:0;padding:48px 32px 24px}.login-popup{perspective:1600px;animation:login-popup 1.2s var(--ease-fluid) .12s both;transform-origin:50% 100%}@keyframes login-popup{0%{opacity:0;transform:rotateX(72deg)scale(.92)}40%{opacity:1}}.login-stage{--mx:0;--my:0;aspect-ratio:1237/955;transform:rotateX(calc(var(--my) * -5deg)) rotateY(calc(var(--mx) * 6deg));transform-style:preserve-3d;position:relative}.login-layer{translate:calc(var(--mx) * var(--depth) * 16px) calc(var(--my) * var(--depth) * 12px);position:absolute}.login-sun{aspect-ratio:1;background:color-mix(in srgb, var(--ocre) 30%, var(--paper));border-radius:9999px;width:56%;top:-10%;left:22%}.login-sun:before{content:"";border:2px dashed color-mix(in srgb, var(--ocre) 55%, transparent);border-radius:inherit;animation:80s linear infinite login-spin;position:absolute;inset:-4%}.login-garland{width:108%;animation:login-drop 1s var(--ease-fluid) .52s both;top:-16%;left:-4%;overflow:visible}.login-garland__string{fill:none;stroke:color-mix(in srgb, var(--ink) 40%, transparent);stroke-width:1.5px}.login-flag{transform-box:fill-box;transform-origin:50% 0;animation:3.6s ease-in-out infinite alternate login-sway}.login-flag use{filter:drop-shadow(0 4px 4px color-mix(in srgb, var(--ink) 18%, transparent))}@keyframes login-drop{0%{opacity:0;transform:translateY(-32px)}}@keyframes login-sway{0%{rotate:-5deg}to{rotate:5deg}}.login-family{inset:0}.login-family__float{animation:6s ease-in-out infinite alternate login-float;position:relative}.login-family img{width:100%;height:auto;transition:scale .7s var(--ease-fluid);display:block}.login-scene[data-awake] .login-family img{scale:1.02}.login-family__shadow{background:color-mix(in srgb, var(--ink) 22%, transparent);filter:blur(16px);border-radius:9999px;height:8%;animation:6s ease-in-out infinite alternate login-shadow;position:absolute;bottom:-2%;left:10%;right:10%}@keyframes login-float{to{translate:0 -8px}}@keyframes login-shadow{to{opacity:.7;scale:.92 .8}}.login-hearts{aspect-ratio:1;pointer-events:none;width:12%;top:56%;left:49%}.login-heart{opacity:0;width:40%;filter:drop-shadow(0 4px 4px color-mix(in srgb, var(--ink) 18%, transparent));position:absolute;bottom:0}.login-heart:first-child{left:0}.login-heart:nth-child(2){left:36%}.login-heart:nth-child(3){left:68%}.login-scene[data-awake] .login-heart{animation:login-heart 2.1s var(--ease-fluid) infinite}@keyframes login-heart{0%{opacity:0;transform:translateY(0)scale(.4)rotate(-12deg)}24%{opacity:1}to{opacity:0;transform:translateY(-160%)scale(1)rotate(12deg)}}.login-bubble{border:1px solid color-mix(in srgb, var(--morado) 30%, transparent);background:color-mix(in srgb, var(--morado) 12%, var(--paper));box-shadow:0 16px 48px -24px color-mix(in srgb, var(--morado) 60%, transparent);color:var(--ink);white-space:nowrap;opacity:0;transform-origin:0 100%;transition:opacity .7s var(--ease-fluid), scale .7s var(--ease-fluid);border-radius:16px;align-items:center;gap:8px;padding:8px 12px;font-size:14px;font-weight:600;line-height:20px;display:flex;top:15%;left:64%;scale:.6}.login-bubble:after{content:"";border:inherit;background:inherit;clip-path:polygon(100% 0,100% 100%,0 100%);border-top:0;border-left:0;width:12px;height:12px;position:absolute;bottom:-6px;left:16px;rotate:45deg}.login-scene[data-awake] .login-bubble{opacity:1;scale:1}.login-bubble__wave{align-items:center;gap:2px;height:16px;display:flex}.login-bubble__wave i{background:var(--morado);border-radius:9999px;width:2px;height:100%;scale:1 .3}.login-scene[data-awake] .login-bubble__wave i{animation:.9s ease-in-out infinite alternate login-wave}@keyframes login-wave{to{scale:1}}.login-flower{filter:drop-shadow(0 8px 8px color-mix(in srgb, var(--ink) 20%, transparent));animation:login-bloom .9s var(--ease-fluid) both;overflow:visible}.login-flower__spin{transform-box:fill-box;transform-origin:50%;animation:24s linear infinite login-spin}.login-flower--a{width:9%;animation-delay:.76s;top:18%;left:-2%}.login-flower--b{width:7%;animation-delay:.88s;top:66%;left:94%}.login-flower--b .login-flower__spin{animation-direction:reverse}.login-flower--c{width:6%;animation-delay:1s;top:92%;left:4%}.login-scene[data-awake] .login-flower__spin{animation-duration:8s}@keyframes login-bloom{0%{opacity:0;rotate:-90deg;scale:0}}@keyframes login-spin{to{rotate:360deg}}.login-caption{color:var(--ink-soft);text-align:center;text-wrap:balance;animation:login-rise .8s var(--ease-fluid) .9s both;margin-top:32px;font-size:14px;font-weight:600;line-height:20px}.login-card{border:1px solid color-mix(in srgb, var(--accent) 30%, transparent);background:color-mix(in srgb, var(--accent) 14%, color-mix(in srgb, var(--paper) 80%, transparent));-webkit-backdrop-filter:blur(24px)saturate(1.2);backdrop-filter:blur(24px)saturate(1.2);box-shadow:0 24px 64px -32px color-mix(in srgb, var(--accent) 60%, transparent);border-radius:24px;padding:32px}.login-card>*{animation:login-rise .8s var(--ease-fluid) both}.login-card>:first-child{animation-delay:.3s}.login-card>:nth-child(2){animation-delay:.38s}.login-card>:nth-child(3){animation-delay:.46s}.login-card>:nth-child(4){animation-delay:.54s}@keyframes login-rise{0%{opacity:0;filter:blur(12px);translate:0 64px}}.login-card__eyebrow{color:var(--accent);letter-spacing:.16em;text-transform:uppercase;font-size:12px;font-weight:700;line-height:16px;display:block}.login-card .login-card__title{letter-spacing:-.01em;color:#0000;background:linear-gradient(90deg,#000,#666);-webkit-background-clip:text;background-clip:text;margin-top:8px;font-size:36px;font-weight:700;line-height:40px}.login-card__title:focus{outline:none}.login-card__body{color:var(--ink-soft);text-wrap:pretty;margin-top:12px}.login-card .form-stack{margin-top:24px}.login-card [data-slot=field-group]{gap:16px}.login-card [data-slot=field]{gap:8px}.login-card [data-slot=field-label]{color:var(--ink);font-size:14px;font-weight:600;line-height:20px}.login-card [data-slot=input]{border:1px solid color-mix(in srgb, var(--ink) 12%, transparent);background:color-mix(in srgb, #fff 56%, var(--paper));height:48px;transition:border-color .7s var(--ease-fluid), box-shadow .7s var(--ease-fluid), background-color .7s var(--ease-fluid);border-radius:12px;padding:12px 16px;font-size:16px;line-height:24px}.login-card [data-slot=input]:hover{border-color:color-mix(in srgb, var(--ink) 24%, transparent)}.login-card [data-slot=input]:focus,.login-card [data-slot=input]:focus-visible{border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb, var(--accent) 24%, transparent);background:#fff;outline:none}.login-card [data-slot=button]{background:var(--ink);height:auto;color:var(--paper);transition:translate .7s var(--ease-fluid), scale .7s var(--ease-fluid), opacity .7s var(--ease-fluid);border:0;border-radius:9999px;gap:8px;margin-top:8px;padding:12px 16px;font-size:16px;font-weight:600;line-height:24px}.login-card [data-slot=button]:after{content:"";background:var(--accent);width:16px;height:16px;transition:translate .7s var(--ease-fluid);-webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'><path d='M224.49,136.49l-72,72a12,12,0,0,1-17-17L187,140H40a12,12,0,0,1,0-24H187L135.51,64.48a12,12,0,0,1,17-17l72,72A12,12,0,0,1,224.49,136.49Z'/></svg>") 50%/contain no-repeat;mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'><path d='M224.49,136.49l-72,72a12,12,0,0,1-17-17L187,140H40a12,12,0,0,1,0-24H187L135.51,64.48a12,12,0,0,1,17-17l72,72A12,12,0,0,1,224.49,136.49Z'/></svg>") 50%/contain no-repeat}.login-card [data-slot=button]:hover{background:var(--ink);translate:0 -2px}.login-card [data-slot=button]:hover:after{translate:2px}.login-card [data-slot=button]:active{scale:.98}.login-card [data-slot=button]:disabled{opacity:.72;translate:none}.login-card [data-slot=button]:disabled:after{animation:login-walk .9s var(--ease-fluid) infinite}@keyframes login-walk{50%{translate:4px}}.login-card [data-slot=alert]{border:1px solid color-mix(in srgb, var(--rosa) 30%, transparent);background:color-mix(in srgb, var(--rosa) 12%, var(--paper));color:#8e352d;border-radius:12px;padding:12px 16px;font-size:14px;font-weight:600;line-height:20px}.login-card [data-slot=alert] [data-slot=alert-description]{color:inherit}.login-card .form-hint{color:var(--ink-soft);text-align:center;text-wrap:balance;font-size:14px;line-height:20px}@media (max-width:1023px){.login-main{grid-template-columns:minmax(0,1fr);justify-items:center;gap:32px;padding:96px 16px 32px}.login-scene{width:min(100%,480px,56svh);padding:40px 24px 0}.login-caption{margin-top:24px}.login-card{width:min(100%,480px);padding:24px}}@media (max-width:480px){.login-nav{top:16px}.login-bubble{font-size:12px;line-height:16px;left:50%}.login-card .login-card__title{font-size:30px;line-height:36px}}@media (prefers-reduced-motion:reduce){html:not([data-motion=full]) .login-page *,html:not([data-motion=full]) .login-page :before,html:not([data-motion=full]) .login-page :after{transition:none!important;animation:none!important}}.particle-field{z-index:0;pointer-events:none;width:100%;height:100%;position:fixed;inset:0}.login-nav{z-index:10}.login-main,.login-footer{z-index:1;position:relative}
