@import"https://fonts.googleapis.com/css2?family=Josefin+Sans:wght@300;400;600&family=Libre+Bodoni:ital,wght@0,700;1,400&display=swap";@import"https://unpkg.com/open-props/open-props.min.css";@import"https://unpkg.com/open-props/easings.min.css";.top-bar{display:flex;align-items:center;padding:var(--size-2) var(--size-5) var(--size-1);flex-shrink:0;gap:var(--size-2)}.top-bar-actions{display:flex;align-items:center;gap:var(--size-1);margin-left:auto}.top-bar-btn{background:none;border:none;cursor:pointer;color:var(--text-muted);display:flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;border-radius:var(--radius-1);transition:color .12s ease,background .12s ease}.top-bar-btn svg{width:1.125rem;height:1.125rem}.top-bar-btn:hover{color:var(--text-primary);background:var(--surface-raised)}.top-bar-btn--logout:hover{color:#d65c5c}.top-bar-mark{text-decoration:none;color:var(--accent-gold)}.bottom-nav{display:grid;grid-template-columns:repeat(5,1fr);height:var(--nav-height);background:var(--surface);border-top:var(--border-width) solid var(--border);flex-shrink:0}.nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:var(--size-2) var(--size-1) var(--size-3);color:var(--text-muted);text-decoration:none;position:relative;font-family:var(--font-body);font-size:var(--text-xs);font-weight:var(--weight-light);letter-spacing:var(--tracking-caps);text-transform:uppercase;line-height:1.1;text-align:center;transition:color .12s ease}.nav-item:hover{color:var(--text-muted-strong)}.nav-item--active{color:var(--accent-gold)}.nav-item svg{width:1.125rem;height:1.125rem;flex-shrink:0}.nav-label{display:block;padding-top:3px}.nav-indicator{position:absolute;bottom:4px;width:4px;height:4px;transform:rotate(45deg);background:var(--accent-gold);opacity:0;transition:opacity .15s ease}.nav-item--active .nav-indicator{opacity:1}.app-shell{display:flex;flex-direction:column;height:100dvh;background:var(--surface-base);overflow:hidden}.app-content{flex:1 1 0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}.auth-screen{min-height:100dvh;display:flex;align-items:center;justify-content:center;background:var(--surface-base);padding:var(--size-4)}.auth-card{width:100%;max-width:24rem;background:var(--surface);border:var(--border-width) solid var(--border);border-radius:var(--radius-2);padding:var(--size-8) var(--size-7)}.auth-header{text-align:center;margin-bottom:var(--size-4)}.auth-title{font-family:var(--font-display);font-size:var(--text-xl);color:var(--text-primary);margin-block:var(--size-2)}.auth-form{display:flex;flex-direction:column;gap:var(--size-4);margin-top:var(--size-5)}.field{display:flex;flex-direction:column;gap:var(--size-1)}.field input{background:var(--surface-raised);border:var(--border-width) solid var(--border);border-radius:var(--radius-1);color:var(--text-primary);font-family:var(--font-body);font-size:var(--text-base);letter-spacing:var(--tracking-tight);padding:var(--size-2) var(--size-3);width:100%;transition:border-color .15s ease}.field input:focus{outline:none;border-color:var(--accent-gold)}.auth-error{color:#e05252;font-size:var(--text-sm);letter-spacing:var(--tracking-tight)}.auth-submit{background:var(--accent-gold);border:none;border-radius:var(--radius-1);color:#1c1917;cursor:pointer;font-family:var(--font-body);font-size:var(--text-base);font-weight:var(--weight-bold);letter-spacing:var(--tracking-caps);padding:var(--size-3);text-transform:uppercase;transition:opacity .15s ease;width:100%}.auth-submit:disabled{opacity:.5;cursor:not-allowed}.auth-submit:not(:disabled):hover{opacity:.85}.auth-switch{color:var(--text-muted);font-size:var(--text-sm);letter-spacing:var(--tracking-tight);margin-top:var(--size-5);text-align:center}.auth-switch a{color:var(--accent-gold);text-decoration:none}.auth-switch a:hover{text-decoration:underline}.lib-screen{display:flex;flex-direction:column;height:100%}.lib-state-msg{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;font-size:var(--text-xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--text-muted);font-weight:var(--weight-light)}.lib-retry{background:transparent;border:var(--border-width) solid var(--border);color:var(--text-muted-strong);font-family:var(--font-body);font-size:var(--text-xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;padding:8px 16px;cursor:pointer;min-height:44px}.lib-retry:hover{border-color:var(--accent-gold);color:var(--accent-gold)}.lib-empty-full{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:40px 20px}.lib-empty-msg{font-size:var(--text-sm);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--text-muted);font-weight:var(--weight-light)}.lib-empty-hint{font-size:var(--text-xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--text-muted-subtle);font-weight:var(--weight-light)}.lib-empty{padding:40px 0;text-align:center;font-size:var(--text-sm);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--text-muted);font-weight:var(--weight-light)}.ss-header{padding:14px 20px;flex-shrink:0}.ss-header h1{font-family:var(--font-display);font-weight:var(--weight-bold);font-size:var(--text-xl);letter-spacing:-.01em;color:var(--text-primary);line-height:1.05}.ss-header .sub{margin-top:4px;font-size:var(--text-xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--text-muted)}.ss-dance-selector{display:flex;gap:8px;padding:4px 20px 16px;overflow-x:auto;scrollbar-width:none;flex-shrink:0}.ss-dance-selector::-webkit-scrollbar{display:none}.ss-chip{display:inline-flex;align-items:center;padding:6px 12px;background:var(--surface-raised);border:var(--border-width) solid var(--border);font-family:var(--font-body);font-weight:var(--weight-normal);font-size:var(--text-sm);letter-spacing:var(--tracking-normal);color:var(--text-muted-strong);cursor:pointer;white-space:nowrap;transition:color .15s,border-color .15s,background .15s;-webkit-user-select:none;user-select:none}.ss-chip:hover{color:var(--text-primary)}.ss-chip.uppercase{text-transform:uppercase;font-size:var(--text-xs);letter-spacing:var(--tracking-wide);padding:5px 10px}.ss-chip.active{background:transparent;border-color:var(--accent-gold);color:var(--accent-gold)}.ss-card-list{padding:4px 20px 100px;display:flex;flex-direction:column;gap:12px;overflow-y:auto}.ss-card{background:var(--surface);border:var(--border-width) solid var(--border);padding:18px 20px;position:relative;cursor:pointer;transition:border-color .15s}.ss-card:hover{border-color:var(--text-muted-subtle)}.ss-card .figure-meta{font-size:var(--text-xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--text-muted);font-weight:var(--weight-light);margin-bottom:8px}.ss-card .figure-name{font-family:var(--font-display);font-weight:var(--weight-bold);font-size:var(--text-lg);color:var(--text-primary);letter-spacing:-.01em;line-height:1.1}.ss-card.deco-corners:before,.ss-card.deco-corners:after{width:10px;height:10px}.ss-card.deco-corners:before{top:6px;left:6px}.ss-card.deco-corners:after{bottom:6px;right:6px}.lib-card-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:6px;gap:12px}.lib-card-bottom .figure-timing{font-size:var(--text-sm);color:var(--text-muted-strong);letter-spacing:var(--tracking-normal);font-variant-numeric:tabular-nums}.lib-toggle{position:relative;width:34px;height:20px;background:var(--surface-raised);border:var(--border-width) solid var(--border);border-radius:10px;cursor:pointer;flex-shrink:0;padding:0;transition:background .18s ease,border-color .18s ease}.lib-toggle:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:var(--text-muted-subtle);transition:transform .18s ease,background .18s ease}.lib-toggle.active{background:var(--accent-gold-subtle);border-color:var(--accent-gold)}.lib-toggle.active:after{transform:translate(14px);background:var(--accent-gold)}.lib-cta{display:flex;align-items:center;justify-content:center;width:100%;padding:14px 18px;background:var(--accent-gold);color:var(--surface-base);font-family:var(--font-body);font-weight:var(--weight-bold);font-size:var(--text-base);letter-spacing:var(--tracking-caps);text-transform:uppercase;border:none;cursor:pointer;min-height:44px;transition:filter .15s}.lib-cta:hover{filter:brightness(1.06)}.lib-cta.ghost{background:transparent;color:var(--accent-gold);border:1px solid var(--accent-gold)}.placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100%;padding:var(--size-8) var(--size-6);text-align:center;gap:var(--size-4)}.placeholder-title{font-family:var(--font-display);font-size:var(--text-xl-fluid);color:var(--text-primary);line-height:1.1;letter-spacing:-.01em}.placeholder-sub{font-size:var(--text-xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--text-muted)}.profile-screen{min-height:100%;display:flex;align-items:flex-start;justify-content:center;background:var(--surface-base);padding:var(--size-5) var(--size-4) var(--size-8)}.profile-card{width:100%;max-width:24rem;background:var(--surface);border:var(--border-width) solid var(--border);border-radius:var(--radius-2);padding:var(--size-7) var(--size-7) var(--size-8)}.profile-header{margin-bottom:var(--size-2)}.profile-title{font-family:var(--font-display);font-size:var(--text-xl);color:var(--text-primary);margin-bottom:var(--size-1)}.profile-section-label{margin-bottom:var(--size-3)}.profile-form{display:flex;flex-direction:column;gap:var(--size-4)}.profile-form .field{display:flex;flex-direction:column;gap:var(--size-1)}.profile-form input{background:var(--surface-raised);border:var(--border-width) solid var(--border);border-radius:var(--radius-1);color:var(--text-primary);font-family:var(--font-body);font-size:var(--text-base);letter-spacing:var(--tracking-tight);padding:var(--size-2) var(--size-3);width:100%;transition:border-color .15s ease}.profile-form input:focus{outline:none;border-color:var(--accent-gold)}.profile-msg{font-size:var(--text-sm);letter-spacing:var(--tracking-tight)}.profile-msg--ok{color:#40bf80}.profile-msg--err{color:#e05252}.profile-submit{background:transparent;border:var(--border-width) solid var(--accent-gold);border-radius:var(--radius-1);color:var(--accent-gold);cursor:pointer;font-family:var(--font-body);font-size:var(--text-base);font-weight:var(--weight-bold);letter-spacing:var(--tracking-caps);padding:var(--size-3);text-transform:uppercase;transition:opacity .15s ease;width:100%}.profile-submit:disabled{opacity:.4;cursor:not-allowed}.profile-submit:not(:disabled):hover{background:var(--accent-gold-subtle)}:root{--font-display: "Libre Bodoni", Georgia, serif;--font-body: "Josefin Sans", system-ui, sans-serif;--text-xs: .625rem;--text-sm: .75rem;--text-base: .875rem;--text-md: 1.125rem;--text-lg: 1.625rem;--text-xl: 2.125rem;--text-lg-fluid: clamp(1.375rem, 4vw, 1.625rem);--text-xl-fluid: clamp(1.75rem, 5vw, 2.125rem);--weight-light: 300;--weight-normal: 400;--weight-bold: 600;--tracking-tight: .02em;--tracking-normal: .06em;--tracking-wide: .12em;--tracking-caps: .14em}:root{--raw-dark-base: hsl(24, 10%, 10%);--raw-dark-surface: hsl(24, 10%, 14%);--raw-dark-raised: hsl(26, 10%, 20%);--raw-light-base: hsl(36, 28%, 87%);--raw-light-surface: hsl(42, 55%, 97%);--raw-light-raised: hsl(36, 25%, 83%);--raw-dark-text-primary: hsl(30, 28%, 91%);--raw-dark-text-muted-strong: hsl(30, 8%, 55%);--raw-dark-text-muted: hsl(30, 8%, 40%);--raw-dark-text-muted-subtle: hsl(30, 8%, 28%);--raw-light-text-primary: hsl(24, 10%, 10%);--raw-light-text-muted-strong: hsl(30, 8%, 38%);--raw-light-text-muted: hsl(30, 8%, 49%);--raw-light-text-muted-subtle: hsl(30, 8%, 63%);--raw-gold-dark: hsl(38, 57%, 55%);--raw-gold-light: hsl(38, 57%, 38%)}:root{--surface-base: var(--raw-dark-base);--surface: var(--raw-dark-surface);--surface-raised: var(--raw-dark-raised);--text-primary: var(--raw-dark-text-primary);--text-muted-strong: var(--raw-dark-text-muted-strong);--text-muted: var(--raw-dark-text-muted);--text-muted-subtle: var(--raw-dark-text-muted-subtle);--accent-gold: var(--raw-gold-dark);--accent-gold-subtle: hsl(38 57% 55% / .15);--border: var(--raw-dark-raised)}@media(prefers-color-scheme:light){:root:not([data-theme=dark]){--surface-base: var(--raw-light-base);--surface: var(--raw-light-surface);--surface-raised: var(--raw-light-raised);--text-primary: var(--raw-light-text-primary);--text-muted-strong: var(--raw-light-text-muted-strong);--text-muted: var(--raw-light-text-muted);--text-muted-subtle: var(--raw-light-text-muted-subtle);--accent-gold: var(--raw-gold-light);--accent-gold-subtle: hsl(38 57% 38% / .12);--border: hsl(36, 20%, 75%)}}[data-theme=dark]{--surface-base: var(--raw-dark-base);--surface: var(--raw-dark-surface);--surface-raised: var(--raw-dark-raised);--text-primary: var(--raw-dark-text-primary);--text-muted-strong: var(--raw-dark-text-muted-strong);--text-muted: var(--raw-dark-text-muted);--text-muted-subtle: var(--raw-dark-text-muted-subtle);--accent-gold: var(--raw-gold-dark);--accent-gold-subtle: hsl(38 57% 55% / .15);--border: var(--raw-dark-raised)}[data-theme=light]{--surface-base: var(--raw-light-base);--surface: var(--raw-light-surface);--surface-raised: var(--raw-light-raised);--text-primary: var(--raw-light-text-primary);--text-muted-strong: var(--raw-light-text-muted-strong);--text-muted: var(--raw-light-text-muted);--text-muted-subtle: var(--raw-light-text-muted-subtle);--accent-gold: var(--raw-gold-light);--accent-gold-subtle: hsl(38 57% 38% / .12);--border: hsl(36, 20%, 75%)}:root{--border-width: .5px;--canvas-ratio: 4 / 3;--nav-height: 3.5rem}.deco-divider{position:relative;border:none;border-top:var(--border-width) solid var(--border);margin:var(--size-6) 0;overflow:visible}.deco-divider:before{content:"◆";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:.5rem;color:var(--accent-gold);background:var(--surface);padding:0 .5em;letter-spacing:0}.deco-corners{position:relative}.deco-corners:before,.deco-corners:after{content:"";position:absolute;width:.625rem;height:.625rem;border-color:var(--accent-gold);border-style:solid;opacity:.6}.deco-corners:before{top:.375rem;left:.375rem;border-width:1px 0 0 1px}.deco-corners:after{bottom:.375rem;right:.375rem;border-width:0 1px 1px 0}.deco-mark{position:relative;display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:var(--text-md);font-weight:var(--weight-bold);color:var(--accent-gold);padding:.25em .375em}.deco-mark:before,.deco-mark:after{content:"";position:absolute;width:.375rem;height:.375rem;border-color:var(--accent-gold);border-style:solid;opacity:.5}.deco-mark:before{top:0;left:0;border-width:1px 0 0 1px}.deco-mark:after{bottom:0;right:0;border-width:0 1px 1px 0}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{background:var(--surface-base);color:var(--text-primary);font-family:var(--font-body);font-size:100%;font-weight:var(--weight-normal);letter-spacing:var(--tracking-normal);line-height:1.6;-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--font-display);font-weight:var(--weight-bold);letter-spacing:var(--tracking-tight);color:var(--text-primary);line-height:1.2}.label{font-family:var(--font-body);font-size:var(--text-xs);font-weight:var(--weight-light);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--text-muted)}
