@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/7cd6c53027bc3e04-s.1ypl14jhz9yyw.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/001744092adb3da8-s.2g9li78_0_it5.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/651a9099e0099e2c-s.00u3xrku2lqty.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/c0e5aecd7116b07b-s.2vepgg3wcdr2q.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/91fca0fdbccf81ff-s.2ttjmmx-9gnz1.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/d4b605c61b941c57-s.p.3259ncl47-hqj.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Manrope Fallback;src:local(Arial);ascent-override:103.31%;descent-override:29.07%;line-gap-override:0.0%;size-adjust:103.19%}.suUhcW_className{font-family:Manrope,Manrope Fallback;font-style:normal}.suUhcW_variable{--font-manrope:"Manrope", "Manrope Fallback"}
:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--foreground:#fff;color:var(--foreground);font-family:var(--font-manrope), sans-serif;--surface:#121212;--surface-raised:#181818;--accent:#1ed760;--control-radius:10px;--line:#303030;--muted:#b3b3b3;--song:#1ed760;--dim:#a7a7a7;--ease-out:cubic-bezier(.16, 1, .3, 1);background:#000;font-size:16px}*{box-sizing:border-box}body{background:#000;margin:0}.page-drop-zone{min-height:100dvh}.page-drop-zone[data-file-drag-active=true] .photo-section{border-color:var(--accent);outline:2px solid var(--accent);outline-offset:4px}.file-drop-feedback{z-index:100;border:2px dashed var(--accent);pointer-events:none;border-radius:16px;justify-content:center;align-items:flex-start;padding:20px;display:flex;position:fixed;inset:12px}.file-drop-feedback span{background:var(--accent);color:#000;border-radius:9px;padding:12px 20px;font-weight:700}main{max-width:1320px;margin:auto;padding:0 48px}a{color:var(--accent);text-underline-offset:4px;text-decoration-thickness:1px}a:hover{color:#60e98a}button{border:1px solid var(--line);border-radius:var(--control-radius);background:var(--surface-raised);min-height:46px;color:var(--foreground);font:inherit;cursor:pointer;justify-content:center;align-items:center;gap:8px;padding:12px 10px;font-size:.82rem;font-weight:600;line-height:1.4;transition:background .18s,color .18s,border-color .18s;display:inline-flex}button:hover:not(:disabled){background:#242424;border-color:#535353}button:disabled{color:#777;cursor:not-allowed;background:#121212;border-color:#262626}button svg{flex:none}:focus-visible{outline:2px solid var(--accent);outline-offset:5px}::selection{background:var(--accent);color:#000}*{scrollbar-color:#686868 #121212;scrollbar-width:thin;caret-color:var(--accent)}.site-header{z-index:20;border-bottom:1px solid var(--line);background:#000;justify-content:space-between;align-items:center;gap:24px;min-height:84px;display:flex;position:sticky;top:0}.wordmark{color:var(--foreground);letter-spacing:-.04em;align-items:center;font-size:1.3rem;font-weight:750;text-decoration:none;display:inline-flex}.wordmark:hover{color:var(--foreground)}.header-actions{justify-content:flex-end;align-items:center;gap:10px;display:flex}.spotify-notification{border:1px solid var(--line);background:var(--surface);border-radius:14px;align-items:center;gap:20px;width:max-content;max-width:100%;padding:12px;display:flex;position:absolute;top:calc(100% + 12px);right:0}.spotify-notification p{overflow-wrap:anywhere;margin:0;padding-left:4px;font-size:.86rem}.spotify-notification[data-kind=error]{color:#ffb3bb;border-color:#71424b}.notification-dismiss{flex:0 0 46px;width:46px;padding:0}small{color:var(--muted);font-size:.78rem}h1,h2,h3{text-wrap:balance}h1{letter-spacing:-.04em;max-width:520px;margin:0;font-size:clamp(3.2rem,5.4vw,4.7rem);font-weight:500;line-height:1.05}h2{letter-spacing:-.035em;overflow-wrap:anywhere;margin:0 0 9px;font-size:clamp(1.8rem,3vw,2.6rem);font-weight:550;line-height:1.12}h3{letter-spacing:-.025em;margin:0 0 18px;font-size:1.25rem;font-weight:600}p{max-width:72ch;line-height:1.65}.workbench{isolation:isolate;grid-template-columns:minmax(0,750px);justify-content:center;gap:28px 56px;padding:40px 0 48px;display:grid;position:relative}.workbench[data-has-photo=false]{align-content:center;min-height:calc(100svh - 84px)}.workbench[data-has-photo=true]{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);padding:64px 0 56px}.intro{text-align:center;align-self:end}.intro h1{max-width:750px;margin-inline:auto}.headline-accent{color:var(--accent)}.workbench[data-has-photo=false] h1{font-size:clamp(3.2rem,6vw,4.5rem);font-weight:600;line-height:1.08}.workbench[data-has-photo=false] .headline-line{display:block}.workbench[data-has-photo=true] .intro{text-align:left}.workbench[data-has-photo=true] h1{max-width:520px;margin-inline:0}.workbench[data-has-photo=false] .photo-section{justify-self:center;width:100%;max-width:560px}.photo-section{background:var(--surface);border:1px solid var(--line);border-radius:16px;align-self:start;min-width:0;padding:24px}.photo-section:not([data-photo-state=ready]) .photo-status{text-align:center;border:1px dashed #626262;border-radius:14px;flex-direction:column;justify-content:center;gap:22px;min-height:0;margin-bottom:22px;padding:30px 16px}.photo-section:not([data-photo-state=ready]) .photo-copy{gap:8px}.photo-section:not([data-photo-state=ready]) .photo-copy strong{letter-spacing:-.02em;font-size:1.15rem;font-weight:600}.photo-section:not([data-photo-state=ready]) .photo-copy span{font-size:.86rem}.photo-section:not([data-photo-state=ready]) .photo-placeholder{color:var(--song)}.photo-placeholder svg{width:32px;height:32px;display:block}.file-input{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.photo-status{align-items:center;gap:15px;min-height:72px;margin-bottom:18px;display:flex}.photo-placeholder{background:#242424;border-radius:18px;flex:none;place-items:center;width:76px;height:76px;display:grid}.photo-copy{gap:7px;display:grid}.photo-copy strong{font-size:.85rem;font-weight:600}.photo-copy span{color:var(--muted);font-size:.72rem;line-height:1.5}.photo-preview{border-radius:7px;flex:none;width:62px;height:62px;overflow:hidden}.photo-preview img{object-fit:cover;width:100%;height:100%;display:block}.actions{grid-template-columns:minmax(0,1fr);gap:10px;display:grid}.find-song{grid-column:1/-1;width:100%}.sleeve-stage{grid-area:1/2/span 2;place-self:center end;width:100%;min-width:0;max-width:480px}.selected-artwork{margin:0}.artwork-display{aspect-ratio:1;background:var(--surface-raised);border-radius:12px;width:100%;max-width:440px;margin-inline:auto;position:relative;overflow:hidden}.artwork-display img,.queued-artwork img{object-fit:contain}.queued-artwork{width:100%;height:100%;display:block;position:relative}.artwork-fallback{background:var(--surface-raised);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;width:100%;height:100%;padding:24px;display:flex}.artwork-fallback svg{color:var(--accent);flex-shrink:0}.artwork-fallback strong{-webkit-line-clamp:5;overflow-wrap:anywhere;letter-spacing:-.025em;-webkit-box-orient:vertical;font-size:clamp(1.25rem,2.8vw,2rem);font-weight:600;line-height:1.2;display:-webkit-box;overflow:hidden}.artwork-fallback>span{color:var(--muted);overflow-wrap:anywhere;font-size:.85rem}.artwork-caption{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:18px 0 20px;display:flex}.artwork-caption>div{overflow-wrap:anywhere;flex:160px;gap:5px;min-width:0;display:grid}.artwork-caption strong{font-size:1.05rem;font-weight:650;line-height:1.4}.artwork-caption>div>span{color:var(--muted);font-size:.78rem;line-height:1.6}.artwork-status{color:var(--accent);font-size:.72rem;line-height:1.5}.artwork-library{border-top:1px solid var(--line);padding-top:18px}.artwork-selector{overscroll-behavior-x:contain;gap:8px;margin:-6px -6px 0;padding:6px 6px 12px;display:flex;overflow-x:auto}.artwork-choice{text-align:left;min-height:0;color:var(--foreground);flex-direction:column;flex:0 0 104px;justify-content:start;align-items:stretch;gap:0;padding:10px;display:flex}.artwork-choice[aria-pressed=true]{background:var(--surface-raised);border-color:var(--accent)}.artwork-thumbnail{aspect-ratio:1;background:var(--surface);border-radius:6px;width:100%;margin-bottom:10px;display:block;position:relative;overflow:hidden}.artwork-thumbnail>img{object-fit:contain}.artwork-thumbnail .artwork-fallback{padding:12px}.artwork-thumbnail svg{width:28px;height:28px}.artwork-choice-title{-webkit-line-clamp:2;overflow-wrap:anywhere;-webkit-box-orient:vertical;font-size:.73rem;font-weight:600;line-height:1.5;display:-webkit-box;overflow:hidden}.artwork-choice-detail{white-space:nowrap;text-overflow:ellipsis;color:var(--muted);margin-top:3px;font-size:.68rem;font-weight:400;line-height:1.6;overflow:hidden}.error{color:#ffb3bb;background:#28191c;border:1px solid #71424b;border-radius:10px;padding:16px 18px;font-size:.86rem}.loading{border-top:1px solid var(--line);align-items:center;gap:17px;padding:24px 0;display:flex}.loading strong{color:var(--accent);font-size:.95rem;font-weight:600}.loading p{color:var(--muted);margin:4px 0 0;font-size:.82rem}.loading-indicator{background:var(--accent);border-radius:50%;flex:none;width:12px;height:12px}.results{border-top:1px solid var(--line);padding-top:36px;padding-bottom:20px}.vibe-summary{letter-spacing:-.02em;color:#eee;max-width:58ch;margin:0 0 28px;font-size:clamp(1.2rem,2.2vw,1.65rem);line-height:1.5}.winner{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:30px}.winner-heading{justify-content:space-between;align-items:start;gap:24px;display:flex}.winner-heading>div{min-width:0}.winner-heading>strong{color:var(--accent);white-space:nowrap;font-variant-numeric:tabular-nums;border:1px solid #535353;border-radius:7px;padding:8px 12px;font-size:.9rem;font-weight:600}.winner-heading p{color:var(--muted);margin:0;font-size:.95rem}.winner>p{color:var(--muted);font-size:.9rem}iframe{border:0;border-radius:12px;margin:22px 0;display:block}.queue-status{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 20px;display:flex}.queue-status p{color:var(--muted);margin:0;font-size:.8rem}.fallback-note,.formula{color:var(--muted);font-size:.78rem;line-height:1.7}.winner .fallback-note{margin-bottom:0;font-size:.78rem}.notice{padding:24px 0}.notice p{color:var(--muted)}.analysis-workbench{border-top:1px solid var(--line);font-variant-numeric:tabular-nums;margin-top:58px;padding-top:36px}.analysis-heading h2{margin-bottom:12px;font-size:clamp(2rem,3.3vw,3rem)}.analysis-overview{padding:36px 0 44px}.ranking-heading h3{margin-bottom:12px}.photo-ink{color:var(--foreground)}.song-ink{color:var(--song)}.weight-distribution{border-top:1px solid var(--line);margin-top:35px;padding-top:28px}.weight-distribution h3{margin-bottom:12px}.weight-distribution p{color:var(--muted);margin:0 0 22px;font-size:.82rem;line-height:1.8}.weight-legend{grid-template-columns:repeat(3,minmax(0,1fr));column-gap:32px;max-width:800px;margin-top:16px;display:grid}.weight-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:9px;padding:8px 0;font-size:.76rem;display:grid}.weight-row>span:last-child{color:var(--muted)}.candidate-ranking{min-width:0}.ranking-heading{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.ranking-heading>span{color:var(--muted);font-size:.73rem}.candidates{margin:0;padding:0;list-style:none}.candidates li{border-bottom:1px solid var(--line);grid-template-columns:44px minmax(0,1fr);padding:12px 0;display:grid;position:relative}.queue-choice{cursor:pointer;place-items:start center;padding-top:12px;display:grid}.queue-choice input{width:20px;height:20px;accent-color:var(--accent);cursor:pointer}.queue-choice input:disabled{cursor:default}.batch-controls,.batch-selection-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.batch-controls{border-bottom:1px solid var(--line);justify-content:space-between;padding:8px 0 22px}.candidate-footer{grid-column:2;justify-content:space-between;align-items:baseline;gap:14px;padding:8px 12px 0;display:flex}.candidate-queue-status{color:var(--song);font-size:.76rem;line-height:1.6}.candidates li[data-queue-state=error] .candidate-queue-status{color:#ffb3bb}.candidate{text-align:left;width:100%;color:inherit;grid-template-columns:23px minmax(0,1fr) 54px;align-items:start;gap:13px;padding:10px 11px 20px;font-weight:400;display:grid;position:relative}.candidate[aria-pressed=true]{border-color:var(--accent);background:#181818}.candidate[aria-pressed=true] .candidate-track>span{background:var(--accent)}.candidate-score{color:var(--accent);text-align:right;font-size:1rem;font-weight:600;line-height:1.4}.rank{color:var(--dim);padding-top:2px;font-size:.78rem;line-height:1.6}.song-name{overflow-wrap:anywhere;min-width:0;line-height:1.5;display:block}.song-name>strong{font-size:.88rem;font-weight:600;line-height:1.45}.song-name>span{color:var(--muted);font-size:.75rem;line-height:1.5}.song-name>span:before{content:" · "}.song-name small{color:var(--muted);flex-wrap:wrap;align-items:baseline;gap:5px 9px;margin-top:4px;font-size:.66rem;line-height:1.5;display:flex}.winner-badge{color:var(--accent);font-weight:650}.candidate-track{background:#333;height:3px;position:absolute;bottom:8px;left:47px;right:13px}.candidate-track>span{transform-origin:0;background:#a7a7a7;width:100%;height:100%;transition:background .15s;display:block}.spotify-link{color:var(--muted);flex:none;margin:0;padding:4px 4px 6px 0;font-size:.68rem;display:inline-block}.selected-comparison{border-top:1px solid var(--line);padding-top:34px}.comparison-heading{justify-content:space-between;align-items:start;gap:24px;display:flex}.comparison-heading>div{min-width:0}.comparison-heading h3{overflow-wrap:anywhere;margin:0 0 12px;font-size:clamp(1.35rem,2.4vw,1.85rem)}.comparison-heading p{color:var(--muted);margin:0;font-size:.85rem}.comparison-label{color:var(--muted);border:1px solid #535353;border-radius:5px;flex:none;padding:8px 10px;font-size:.71rem}.comparison-guide{color:var(--muted);margin:16px 0 27px;font-size:.77rem}.precise-comparison{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.mood-row{background:var(--surface-raised);border-radius:12px;min-width:0;padding:22px}.bar-label,.bar-ends{justify-content:space-between;align-items:center;gap:12px;display:flex}.bar-label h4{margin:0;font-size:1rem;font-weight:600}.axis-gap{color:var(--muted);white-space:nowrap;font-size:.73rem}.score-bars{gap:14px;margin-top:24px;display:grid}.score-bar-row{grid-template-columns:42px minmax(0,1fr) 48px;align-items:center;gap:12px;font-size:.75rem;display:grid}.score-bar-row strong{text-align:right;white-space:nowrap;font-size:.85rem}.score-bar-row strong>span{color:var(--muted);font-size:.67rem;font-weight:400}.score-bar-row meter{appearance:none;background:#333;border:0;border-radius:4px;width:100%;height:8px;margin:0;display:block}.photo-meter{--meter-fill:#fff}.song-meter{--meter-fill:var(--song)}.score-bar-row meter::-webkit-meter-bar{background:#333;border:0;border-radius:4px;height:8px}.score-bar-row meter::-webkit-meter-optimum-value{background:var(--meter-fill);transition:width .18s var(--ease-out);border-radius:4px}.score-bar-row meter::-moz-meter-bar{background:var(--meter-fill);border:0;border-radius:4px}.bar-ends{color:var(--muted);align-items:start;margin:10px 60px 0 54px;font-size:.65rem}.bar-ends>span:last-child{text-align:right}.axis-impact{color:var(--muted);margin-top:20px;font-size:.73rem;line-height:1.6}.axis-evidence summary{color:var(--foreground);padding:12px 0 0;font-size:.75rem}.axis-evidence p{color:var(--muted);margin:10px 0 0;font-size:.8rem;line-height:1.75}.comparison-queue{margin-top:16px}.comparison-queue p[aria-live]{color:var(--accent);font-size:.82rem}.analysis-detail{border-top:1px solid var(--line);margin:24px 0 28px}summary{cursor:pointer;padding:24px 0;font-size:1rem;font-weight:550}summary::marker{color:var(--accent);font-size:.8em}.analysis-detail .formula{margin:0 0 24px}.comparison-wrap{padding-bottom:8px;overflow-x:auto}table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:.8rem}caption{text-align:left;color:var(--muted);padding-bottom:18px;font-size:.76rem;line-height:1.7}th,td{text-align:right;border-bottom:1px solid var(--line);padding:14px 12px}th:first-child{text-align:left;padding-left:0}th{font-weight:550}thead th{color:var(--muted);font-size:.73rem}tbody td:last-child{color:var(--foreground)}@media (max-width:1150px){main{padding:0 36px}.workbench,.workbench[data-has-photo=true]{column-gap:20px}}@media (max-width:800px){main{padding:0 24px}.workbench,.workbench[data-has-photo=true]{flex-direction:column;align-items:center;gap:0;padding:46px 0 42px;display:flex}.workbench[data-has-photo=false]{min-height:0;padding:36px 0 40px}.intro,.workbench[data-has-photo=true] .intro{text-align:center;align-self:center}.intro h1,.workbench[data-has-photo=true] h1{max-width:550px;font-size:clamp(2.7rem,7.4vw,3.8rem)}.workbench[data-has-photo=false] h1{font-size:clamp(2.5rem,7.2vw,3.8rem)}.sleeve-stage{order:2;max-width:480px;margin-top:32px}.photo-section{order:1;align-self:center;width:100%;max-width:480px;margin-top:24px}.candidate{grid-template-columns:25px minmax(0,1fr) 58px}.precise-comparison{gap:12px}.mood-row{padding:18px}.winner{padding:24px}.results{padding-top:30px}}@media (max-width:600px){main{padding:0 20px}.site-header{gap:12px}.site-header:has(.new-photo){flex-wrap:wrap;padding-block:16px}.site-header:has(.new-photo) .header-actions{justify-content:space-between;width:100%}.wordmark{white-space:nowrap;font-size:1.08rem}.workbench,.workbench[data-has-photo=true]{padding-top:38px}.workbench[data-has-photo=false]{padding:28px 0 32px}.intro h1,.workbench[data-has-photo=true] h1{max-width:450px;font-size:clamp(2.6rem,9.6vw,3.4rem)}.workbench[data-has-photo=false] h1{letter-spacing:-.035em;font-size:clamp(2.125rem,9.1vw,2.8rem)}.photo-section{padding:17px}.photo-section:not([data-photo-state=ready]) .photo-status{gap:18px;margin-bottom:18px;padding:24px 12px}.photo-section:not([data-photo-state=ready]) .photo-copy strong{font-size:1rem}.photo-section:not([data-photo-state=ready]) .photo-copy span{font-size:.8rem}.photo-placeholder{width:64px;height:64px}.photo-status{gap:12px;min-height:64px;margin-bottom:15px}.photo-copy strong{font-size:.78rem}.photo-copy span{font-size:.67rem}.actions{gap:9px}.analysis-workbench{margin-top:40px;padding-top:29px}.precise-comparison{grid-template-columns:minmax(0,1fr)}.comparison-heading{flex-direction:column;gap:15px}.comparison-label{align-self:start}.comparison-guide{font-size:.75rem}.bar-label h4{font-size:.95rem}.mood-row p{font-size:.8rem}table{min-width:480px}.winner{padding:21px 17px}.winner-heading{flex-direction:column;gap:16px}.winner-heading>strong{padding:7px 10px;font-size:.75rem}.vibe-summary{font-size:1.15rem}.queue-status{flex-direction:column;align-items:start}.queue-status button{max-width:100%}.candidate{grid-template-columns:18px minmax(0,1fr) 45px;gap:10px;padding:12px 8px 24px}.candidate-track{left:37px;right:9px}.batch-controls{flex-direction:column;align-items:stretch}.batch-selection-actions>button{flex:1}.candidate-footer{flex-wrap:wrap}.weight-legend{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px}.song-name>strong{font-size:.86rem}.candidate-score{font-size:.92rem}.selected-comparison{padding-top:26px}}@media (max-width:380px){main{padding:0 16px}.photo-section{padding:14px}}@media (prefers-reduced-motion:reduce){.score-bar-row meter::-webkit-meter-optimum-value{transition:none}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
