:root{--color-stage:#071a38;--color-stage-shade:#030c1c7a;--color-action:#091a3ad1;--color-action-text:#fff4c7;--color-action-border:#ffffff94;--color-focus:#f3ce63;--font-size-action:clamp(.75rem, 1.25vw, 1rem);--font-size-home-title:clamp(1.5rem, 4vw, 2rem);--font-size-home-subtitle:clamp(.875rem, 1.5vw, 1rem);--font-size-login-title:1.75rem;--font-size-login-body:1rem;--font-size-login-small:.9rem;--font-size-login-notice:.85rem;--font-size-qr-instructions:.95rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-7:1.75rem;--space-8:2rem;--space-10:2.5rem;--space-14:3.5rem;--blur-backdrop:24px;--blur-action:10px;--blur-login-card:20px;--shadow-action:0 10px 30px #030c1c6b;--radius-pill:999px;--radius-card:1rem;--radius-control:.5rem;--radius-qr:.75rem;--color-login-surface:#ffffff26;--color-login-border:#ffffff4d;--color-login-muted:#ffffffb3;--color-login-input:#ffffff1a;--color-login-input-focus:#fff3;--color-login-primary:#a3d9fa;--color-login-error:#b42318;--color-login-success:#146c43;--duration-interaction:.15s;--size-qr-shell:11.25rem}*{box-sizing:border-box}html,body{width:100%;min-height:100%;margin:0}body{background:var(--color-stage);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow:hidden}button{font:inherit}.landing-stage{background:var(--color-stage);width:100%;height:100dvh;position:relative;overflow:hidden}.artwork-stage{position:absolute;inset:0}.artwork-image{object-fit:cover;object-position:right center}.landing-cta{z-index:10;flex-direction:column;justify-content:space-between;align-items:center;display:flex;position:absolute;top:245px;bottom:16%;right:14%}.landing-title{color:#cfe6ff;text-align:center;white-space:nowrap;text-shadow:0 2px 3px #030c1ce6,0 0 10px #030c1ccc,0 0 28px #030c1cb3;opacity:0;margin:0;font-size:6.5rem;font-weight:400;line-height:1;transition:opacity .4s;position:relative}.landing-title:before{z-index:-1;filter:blur(14px);content:"";background:radial-gradient(closest-side,#030c1c99,#0000);border-radius:50%;position:absolute;inset:-.2em -.5em}.landing-title[data-ready=true]{opacity:1}.landing-title-line{display:block}.discover-action{min-width:clamp(7.5rem,14vw,11rem);padding:clamp(var(--space-3), 1.45vw, var(--space-4)) clamp(var(--space-7), 3vw, var(--space-14));border:1px solid var(--color-action-border);border-radius:var(--radius-pill);color:var(--color-action-text);background:var(--color-action);box-shadow:var(--shadow-action);font-size:var(--font-size-action);letter-spacing:.06em;text-align:center;white-space:nowrap;opacity:1;-webkit-backdrop-filter:blur(var(--blur-action));font-weight:700;line-height:1}.discover-action:disabled{cursor:default}@media (max-width:768px){.landing-cta{right:auto;bottom:max(10%, env(safe-area-inset-bottom));left:50%;transform:translate(-50%)}.discover-action{min-width:8rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important}}.login-stage{isolation:isolate;background:var(--color-stage);place-items:center;width:100%;min-height:100dvh;display:grid;position:relative;overflow:hidden}.login-backdrop{z-index:-3;object-fit:cover;filter:blur(var(--blur-backdrop));transform:scale(1.05)}.login-shade{z-index:-2;background:var(--color-stage-shade);position:absolute;inset:0}.login-card{z-index:10;gap:var(--space-6);width:90%;max-width:25rem;padding:var(--space-10) var(--space-8);border:1px solid var(--color-login-border);border-radius:var(--radius-card);color:var(--color-action-text);background:var(--color-login-surface);box-shadow:var(--shadow-action);-webkit-backdrop-filter:blur(var(--blur-login-card));flex-direction:column;display:flex;position:relative}.login-title{color:var(--color-action-text);font-size:var(--font-size-login-title);text-align:center;margin:0;font-weight:700}.login-form{gap:var(--space-4);flex-direction:column;display:flex}.login-input{width:100%;padding:var(--space-3) var(--space-4);border:1px solid var(--color-login-border);border-radius:var(--radius-control);color:var(--color-action-text);background:var(--color-login-input);font-size:var(--font-size-login-body);transition:background-color var(--duration-interaction) ease-out, border-color var(--duration-interaction) ease-out, box-shadow var(--duration-interaction) ease-out;outline:none}.login-input::placeholder{color:var(--color-login-muted)}.login-input:focus{border-color:var(--color-login-primary);background:var(--color-login-input-focus);box-shadow:0 0 0 2px color-mix(in srgb, var(--color-login-primary) 30%, transparent)}.login-submit{width:100%;margin-top:var(--space-1);padding:var(--space-3);border-radius:var(--radius-control);color:var(--color-stage);background:var(--color-login-primary);font-size:var(--font-size-login-body);cursor:pointer;transition:background-color var(--duration-interaction) ease-out;border:none;font-weight:600}.login-submit:hover:not(:disabled){background:var(--color-action-text)}.login-submit:disabled{cursor:not-allowed;opacity:.7}.login-toggle{color:var(--color-login-primary);font-size:var(--font-size-login-small);text-align:center;cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.login-toggle:hover{color:var(--color-action-text)}.login-toggle:focus-visible,.password-toggle:focus-visible{outline:2px solid var(--color-focus);outline-offset:4px}.login-disabled-notice{margin-bottom:var(--space-4);padding:var(--space-3);border-left:var(--space-1) solid var(--color-focus);border-radius:var(--radius-control);color:var(--color-action-text);background:var(--color-stage-shade);font-size:var(--font-size-login-notice);text-align:center}.password-field{width:100%;position:relative}.password-input{padding-right:var(--space-10)}.password-toggle{top:50%;right:var(--space-3);color:var(--color-login-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;transform:translateY(-50%)}.login-error{color:var(--color-login-error);font-size:var(--font-size-login-notice);margin:0}.login-links{gap:var(--space-2);margin-top:var(--space-2);flex-direction:column;display:flex}.login-qr-toggle{color:var(--color-action-text);font-weight:500}.login-back-toggle{margin-top:var(--space-4)}.qr-container{align-items:center;gap:var(--space-6);flex-direction:column;display:flex}.qr-instructions{color:var(--color-login-muted);font-size:var(--font-size-qr-instructions);text-align:center;margin:0}.qr-code-shell{width:fit-content;min-height:var(--size-qr-shell);padding:var(--space-4);border-radius:var(--radius-qr);background:var(--color-action-text);justify-content:center;align-items:center;display:flex}.qr-status{color:var(--color-stage);margin:0}.qr-status-error{color:var(--color-login-error)}.qr-status-success{color:var(--color-login-success)}.qr-code{opacity:1;transition:opacity var(--duration-interaction) ease-out}.qr-code-rejected{opacity:.3}.qr-pending{color:var(--color-login-primary);font-size:var(--font-size-login-notice)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.home-stage{min-height:100dvh;padding:var(--space-4);background:var(--color-stage);color:var(--color-action-text);place-items:center;display:grid}.home-content{text-align:center}.home-title{font-size:var(--font-size-home-title);margin:0;line-height:1.15}.home-subtitle{margin:var(--space-4) 0 0;color:var(--color-action-border);font-size:var(--font-size-home-subtitle)}.logout-action{margin-top:var(--space-7);padding:var(--space-3) var(--space-7);border:1px solid var(--color-action-border);border-radius:var(--radius-pill);color:var(--color-action-text);background:var(--color-action);box-shadow:var(--shadow-action);font-size:var(--font-size-action);letter-spacing:.06em;cursor:pointer;-webkit-backdrop-filter:blur(var(--blur-action));font-weight:700;line-height:1}.logout-action:hover:not(:disabled){border-color:var(--color-action-text)}.logout-action:focus-visible{outline:2px solid var(--color-focus);outline-offset:4px}.logout-action:disabled{cursor:wait;opacity:.7}
