:root{--font-display: "Jua", "Helvetica Neue", sans-serif;--font-body: "Nunito", "Helvetica Neue", Helvetica, Arial, sans-serif;--font-spotify: "Montserrat", "Helvetica Neue", Helvetica, Arial, sans-serif}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;font-family:var(--font-body);-webkit-font-smoothing:antialiased}body{background:#000;color:#fff;overflow-x:hidden}button,input,textarea,select{font-family:inherit}.landing{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;background:radial-gradient(ellipse at center,#2a1845,#0a0014 70%);position:relative}.landing-header{text-align:center;margin-bottom:48px;z-index:2}.landing-header h1{font-family:var(--font-display);font-size:clamp(40px,7vw,64px);font-weight:400;letter-spacing:-1px;background:linear-gradient(90deg,#ff6b9d,#ffc75f,#4ecdc4);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:14px}.landing-header p{font-size:17px;color:#ffffffb3;max-width:540px;line-height:1.55}.bubble-group{width:100%;max-width:900px;z-index:2;display:flex;flex-direction:column;align-items:center;margin-bottom:36px}.bubble-group:last-child{margin-bottom:0}.bubble-group-heading{font-family:var(--font-display);font-size:22px;font-weight:400;color:#ffffff8c;letter-spacing:3px;text-transform:uppercase;margin-bottom:18px}.bubble-stage{width:100%;max-width:900px;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;z-index:2}.name-bubble{background:#ffffff14;border:1px solid rgba(255,255,255,.15);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:999px;padding:16px 30px;font-family:var(--font-display);font-size:22px;font-weight:400;letter-spacing:.5px;cursor:pointer;transition:all .25s ease;color:#fff;animation:float 6s ease-in-out infinite}.name-bubble:hover{background:#ffffff2e;transform:translateY(-4px) scale(1.05);border-color:#fff6}.name-bubble-hidden,.name-bubble:disabled{opacity:.25;cursor:not-allowed;pointer-events:none;filter:grayscale(.4)}.category-stage{width:100%;max-width:720px;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:24px;z-index:2}.category-bubble{flex:1 1 240px;min-width:220px;max-width:320px;aspect-ratio:1 / 1;border-radius:50%;background:#ffffff0f;border:1px solid rgba(255,255,255,.18);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:pointer;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;transition:all .25s ease;animation:float 6s ease-in-out infinite;padding:24px}.category-bubble:nth-child(2){animation-delay:-3s}.category-bubble:hover:not(:disabled){background:#ffffff24;transform:translateY(-6px) scale(1.04);border-color:#ffffff73}.category-bubble:disabled{opacity:.25;cursor:not-allowed;filter:grayscale(.4)}.category-bubble-label{font-family:var(--font-display);font-size:clamp(32px,5vw,44px);font-weight:400;letter-spacing:1px;background:linear-gradient(90deg,#ff6b9d,#ffc75f,#4ecdc4);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.category-bubble-count{font-size:13px;color:#ffffff8c;letter-spacing:1px;text-transform:uppercase}.back-link{background:none;border:none;color:#ffffff8c;font-family:var(--font-body);font-size:14px;cursor:pointer;padding:8px 12px;margin-bottom:8px;letter-spacing:.5px;transition:color .2s ease}.back-link:hover{color:#fffffff2}.name-bubble:nth-child(2n){animation-delay:-2s}.name-bubble:nth-child(3n){animation-delay:-4s}.name-bubble:nth-child(4n){animation-delay:-1s}.name-bubble:nth-child(5n){animation-delay:-3s}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.landing-footer{margin-top:40px;color:#fff6;font-size:13px;text-align:center;z-index:2}.admin-link{position:fixed;bottom:16px;right:16px;color:#fff3;text-decoration:none;font-size:11px;letter-spacing:1px}.admin-link:hover{color:#fff9}.pw-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:100;padding:20px;animation:fadeIn .25s ease}.pw-modal{background:linear-gradient(135deg,#1a0a2e,#0a0014);border:1px solid rgba(255,255,255,.15);border-radius:24px;padding:36px 28px;max-width:380px;width:100%;text-align:center}.pw-modal h3{font-family:var(--font-display);font-size:26px;font-weight:400;margin-bottom:8px;letter-spacing:.5px}.pw-modal p{color:#fff9;margin-bottom:20px;font-size:14px}.pw-input{width:100%;background:#ffffff0f;border:1px solid rgba(255,255,255,.15);border-radius:12px;padding:14px 16px;color:#fff;font-size:16px;text-align:center;margin-bottom:14px;letter-spacing:2px}.pw-input:focus{outline:none;border-color:#ffc75f}.pw-error{color:#ff6b6b;font-size:13px;margin-bottom:12px;min-height:18px}.pw-actions{display:flex;gap:10px}.pw-actions button{flex:1}.btn{padding:12px 22px;border-radius:999px;border:none;font-size:15px;font-weight:700;cursor:pointer;transition:transform .1s ease,opacity .2s ease,background .2s ease}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:#fff;color:#000}.btn-primary:hover:not(:disabled){background:#f0f0f0}.btn-ghost{background:#ffffff1a;color:#fff}.btn-ghost:hover{background:#ffffff2e}.btn-danger{background:#ff4d4d33;color:#ff8080}.btn-danger:hover{background:#ff4d4d59}.btn-sm{padding:8px 14px;font-size:13px}.admin{min-height:100vh;background:#0d0d12;color:#fff;padding:24px}.admin-inner{max-width:1100px;margin:0 auto}.admin-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.08);flex-wrap:wrap;gap:12px}.admin-header h2{font-size:24px;font-weight:700}.admin-header .tools{display:flex;gap:8px;flex-wrap:wrap}.admin-grid{display:grid;grid-template-columns:280px 1fr;gap:24px}@media(max-width:800px){.admin-grid{grid-template-columns:1fr}}.colleague-list{background:#ffffff0a;border-radius:16px;padding:14px}.colleague-list h3{font-size:13px;text-transform:uppercase;letter-spacing:1.5px;color:#ffffff80;margin-bottom:12px;padding:0 6px}.col-item{padding:10px 12px;border-radius:10px;cursor:pointer;margin-bottom:4px;display:flex;justify-content:space-between;align-items:center;font-size:14px;transition:background .15s ease}.col-item:hover{background:#ffffff0f}.col-item.active{background:#ffc75f26;border-left:3px solid #FFC75F;padding-left:9px}.col-item .meta{font-size:11px;color:#fff6}.add-colleague-btn{width:100%;margin-top:8px;background:#ffffff0f;border:1px dashed rgba(255,255,255,.2);color:#fff;padding:12px;border-radius:10px;cursor:pointer;font-size:13px;font-weight:600}.add-colleague-btn:hover{background:#ffffff1a}.editor{background:#ffffff0a;border-radius:16px;padding:20px;min-height:500px}.editor-empty{text-align:center;padding:80px 20px;color:#fff6}.editor-empty h3{font-size:18px;margin-bottom:8px;color:#fff9}.col-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:24px}.col-fields .full{grid-column:1 / -1}.field-label{display:block;font-size:12px;text-transform:uppercase;letter-spacing:1px;color:#ffffff80;margin-bottom:6px;font-weight:600}.field-input,.field-textarea,.field-select{width:100%;background:#0006;border:1px solid rgba(255,255,255,.1);color:#fff;border-radius:8px;padding:10px 12px;font-size:14px}.field-input:focus,.field-textarea:focus,.field-select:focus{outline:none;border-color:#ffc75f}.field-textarea{resize:vertical;min-height:70px}.slides-section{margin-top:12px}.editor-header{background:linear-gradient(#0000004d,#0000004d),#0d0d12;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:14px;margin-bottom:12px}.editor-header .col-fields{margin-bottom:14px}.slide-actions-bar{position:sticky;bottom:12px;z-index:6;display:flex;justify-content:flex-end;gap:8px;margin:12px 0 8px;padding:10px 12px;background:#0d0d12d9;border:1px solid rgba(255,255,255,.12);border-radius:999px;box-shadow:0 10px 28px #00000073;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.slides-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.slides-section-header h3{font-size:17px;font-weight:700}.slide-item{background:#0000004d;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:14px;margin-bottom:10px;scroll-margin-top:140px}.slide-item-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.slide-item-title{display:flex;align-items:center;gap:10px}.slide-type-badge{background:#ffc75f33;color:#ffc75f;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.slide-num{color:#fff6;font-size:13px;font-weight:600}.slide-actions{display:flex;gap:6px}.icon-btn{background:#ffffff14;border:none;color:#fff;width:28px;height:28px;border-radius:6px;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center}.icon-btn:hover{background:#ffffff26}.icon-btn.danger:hover{background:#ff4d4d66}.slide-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.slide-fields .full{grid-column:1 / -1}.photo-thumb{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:8px;margin-bottom:8px;background:#00000080}.photo-upload{background:#0006;border:1px dashed rgba(255,255,255,.2);border-radius:8px;padding:12px;text-align:center;cursor:pointer;font-size:13px;color:#fff9}.photo-upload:hover{border-color:#ffc75f;color:#ffc75f}.add-slide-menu{background:#0006;border:1px dashed rgba(255,255,255,.15);border-radius:12px;padding:16px;margin-top:8px}.add-slide-menu h4{font-size:13px;color:#fff9;margin-bottom:10px;text-transform:uppercase;letter-spacing:1px}.slide-type-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px}.slide-type-option{background:#ffffff0f;border:1px solid rgba(255,255,255,.1);color:#fff;padding:12px 10px;border-radius:10px;cursor:pointer;text-align:center;font-size:12px;font-weight:600;transition:all .15s ease}.slide-type-option:hover{background:#ffc75f26;border-color:#ffc75f;color:#ffc75f}.slide-type-option .emoji{display:block;font-size:22px;margin-bottom:4px}.editor-actions{display:flex;justify-content:space-between;align-items:center;margin-top:24px;padding-top:20px;border-top:1px solid rgba(255,255,255,.08);flex-wrap:wrap;gap:10px}.editor-actions .left,.editor-actions .right{display:flex;gap:8px;flex-wrap:wrap}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:#fff;color:#000;padding:12px 22px;border-radius:999px;font-weight:600;font-size:14px;z-index:200;box-shadow:0 10px 30px #0006;animation:toastIn .3s ease}@keyframes toastIn{0%{transform:translate(-50%) translateY(20px);opacity:0}to{transform:translate(-50%) translateY(0);opacity:1}}.player{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#000;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.player.player-paused .progress-bar,.player.player-paused .player-mute,.player.player-paused .player-close,.player.player-paused .now-playing{opacity:.35;transition:opacity .18s ease}.progress-bar{position:absolute;top:14px;left:14px;right:14px;display:flex;gap:4px;z-index:5}.progress-segment{flex:1;height:3px;background:#ffffff40;border-radius:2px;overflow:hidden}.progress-segment .fill{height:100%;background:#fff;width:0%;transition:width .05s linear}.player-close{position:absolute;top:30px;right:14px;background:#0006;border:none;color:#fff;width:36px;height:36px;border-radius:50%;cursor:pointer;font-size:22px;line-height:1;z-index:6}.nav-zone{position:absolute;top:0;bottom:0;width:30%;z-index:4;cursor:pointer}.nav-zone.left{left:0}.nav-zone.right{right:0}.slide{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:70px 28px 60px;text-align:center;overflow:hidden;animation:slideIn .4s ease}@keyframes slideIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.slide-eyebrow{font-family:var(--font-display);font-size:14px;text-transform:uppercase;letter-spacing:3px;font-weight:400;margin-bottom:14px;opacity:.85}.slide h2{font-family:var(--font-display);font-size:clamp(38px,7vw,64px);font-weight:400;line-height:1.1;letter-spacing:-.5px;margin-bottom:18px;max-width:90%}.slide .big-number{font-family:var(--font-display);font-size:clamp(80px,18vw,180px);font-weight:400;line-height:1;letter-spacing:-2px;margin:12px 0;animation:pop .6s cubic-bezier(.34,1.56,.64,1)}@keyframes pop{0%{transform:scale(.4);opacity:0}to{transform:scale(1);opacity:1}}.slide p{font-size:17px;opacity:.9;max-width:520px;line-height:1.55}.slide .footnote{margin-top:14px;font-size:13px;opacity:.7}.bg-pink{background:linear-gradient(135deg,#ff6b9d,#c9184a)}.bg-orange{background:linear-gradient(135deg,#ff8c42,#d32f2f)}.bg-teal{background:linear-gradient(135deg,#4ecdc4,#1a535c)}.bg-purple{background:linear-gradient(135deg,#b57edc,#5e2a8c)}.bg-yellow{background:linear-gradient(135deg,#ffc75f,#f39c12)}.bg-green{background:linear-gradient(135deg,#06d6a0,#115e47)}.bg-blue{background:linear-gradient(135deg,#4fc3f7,#1e3a8a)}.bg-dark{background:linear-gradient(135deg,#1a1a1a,#000)}.bg-cream{background:linear-gradient(135deg,#fff8e7,wheat)}.slide.text-dark{color:#2a1a00}.photo-frame{background:#fff;padding:12px 12px 40px;border-radius:4px;box-shadow:0 16px 40px #00000080;transform:rotate(-2deg);max-width:320px;margin:12px 0 22px}.photo-frame img,.photo-frame video{width:100%;aspect-ratio:1;object-fit:cover;display:block}.photo-frame .photo-caption{text-align:center;color:#333;font-style:italic;margin-top:12px;font-size:13px;padding:0 8px}.quote-frame{position:relative;max-width:600px;width:100%}.quote-mark{position:absolute;font-family:var(--font-display);font-size:clamp(70px,11vw,130px);line-height:1;opacity:.32;pointer-events:none;-webkit-user-select:none;user-select:none;z-index:2}.quote-mark-open{top:-138px;left:-122px}.quote-mark-close{bottom:-138px;right:-122px}.quote-body{font-family:var(--font-display);font-size:clamp(24px,4.8vw,36px);font-weight:400;line-height:1.3;max-width:600px;margin-bottom:16px;letter-spacing:.3px}.quote-attrib{font-size:14px;opacity:.8;text-transform:uppercase;letter-spacing:2px;font-weight:700}.podium{display:flex;align-items:flex-end;justify-content:center;gap:10px;margin:18px 0;width:100%;max-width:540px}.slide.slide-podium{padding-top:24px;padding-bottom:60px}.podium-step{background:#00000040;border-radius:14px 14px 0 0;padding:14px 8px;text-align:center;flex:1}.podium-step .rank{font-family:var(--font-display);font-size:30px;font-weight:400;margin-bottom:6px}.podium-step .name{font-family:var(--font-display);font-size:16px;font-weight:400;word-break:break-word}.podium-step .count{font-size:11px;opacity:.75;margin-top:4px}.podium-step.s1{height:340px;background:#ffffff38}.podium-step.s2{height:290px}.podium-step.s3{height:250px}.podium-step:has(.podium-media-inside){display:flex;flex-direction:column;align-items:center}.podium-step:has(.podium-media-inside) .podium-media-inside,.podium-step:has(.podium-media-inside) .name{margin-top:auto}.podium-media{border-radius:8px;overflow:hidden;background:#00000040;box-shadow:0 4px 12px #00000059}.podium-media img,.podium-media video{width:100%;height:100%;object-fit:cover;display:block}.podium-media-inside{width:90%;height:150px;margin:6px auto 8px}.podium-step:has(.podium-media-inside) .rank{font-size:32px;margin-bottom:2px}.podium-step.s2:has(.podium-media-inside) .rank,.podium-step.s3:has(.podium-media-inside) .rank{font-size:28px}.podium-step:has(.podium-media-inside) .name{font-size:14px;line-height:1.2}.letter-wrap{width:100%;max-width:560px;text-align:left;background:#0003;border-radius:16px;padding:28px 24px;max-height:70vh;overflow-y:auto;position:relative;z-index:7;touch-action:pan-y;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.letter-wrap::-webkit-scrollbar{width:6px}.letter-wrap::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.letter-greeting{font-family:var(--font-display);font-size:26px;font-weight:400;margin-bottom:16px;letter-spacing:.3px}.letter-body{font-size:16px;line-height:1.7;white-space:pre-wrap;margin-bottom:18px;font-weight:400}.letter-signoff{font-family:var(--font-display);font-size:18px;font-weight:400;opacity:.9;letter-spacing:.3px}.photo-mosaic{display:grid;grid-template-columns:repeat(3,86px);grid-template-rows:repeat(3,86px);gap:6px;margin:16px 0}.photo-mosaic img,.photo-mosaic video{width:100%;height:100%;object-fit:cover;border-radius:8px;cursor:zoom-in;position:relative;z-index:7;animation:photo-float 4.5s ease-in-out infinite;transition:filter .18s ease,box-shadow .18s ease;filter:brightness(1);touch-action:manipulation;background:#000;display:block}.photo-mosaic img:nth-child(2n),.photo-mosaic video:nth-child(2n){animation-delay:-1s}.photo-mosaic img:nth-child(3n),.photo-mosaic video:nth-child(3n){animation-delay:-2s}.photo-mosaic img:nth-child(4n),.photo-mosaic video:nth-child(4n){animation-delay:-3s}.photo-mosaic img:nth-child(5n),.photo-mosaic video:nth-child(5n){animation-delay:-1.5s}.photo-mosaic img:hover,.photo-mosaic video:hover{filter:brightness(1.15);box-shadow:0 6px 18px #00000080,0 0 0 2px #ffffff59}@keyframes photo-float{0%,to{transform:translateY(0) rotate(0)}25%{transform:translateY(-3px) rotate(-.6deg)}50%{transform:translateY(-1px) rotate(.4deg)}75%{transform:translateY(-3px) rotate(.7deg)}}.photo-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000eb;display:flex;align-items:center;justify-content:center;z-index:60;cursor:zoom-out;animation:fadeIn .18s ease;padding:24px}.photo-lightbox img,.photo-lightbox video{max-width:92vw;max-height:86vh;object-fit:contain;border-radius:12px;box-shadow:0 12px 48px #0009;background:#000;display:block}.photo-lightbox{touch-action:none;-webkit-user-select:none;user-select:none}.photo-lightbox-content{display:flex;flex-direction:column;align-items:center;gap:10px;max-width:100%}.photo-lightbox-hint{color:#ffffff8c;font-size:13px;letter-spacing:.4px;pointer-events:none;-webkit-user-select:none;user-select:none}.end-actions{display:flex;gap:10px;margin-top:22px;flex-wrap:wrap;justify-content:center}.end-actions button{background:#fff3;color:#fff;border:none;padding:11px 20px;border-radius:999px;font-weight:700;cursor:pointer;font-size:14px}.end-actions button:hover{background:#ffffff52}.slide.text-dark .end-actions button{background:#0003;color:#2a1a00}.slide.text-dark .end-actions button:hover{background:#00000052}.now-playing{position:absolute;bottom:20px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:10px;background:#0000008c;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:999px;padding:8px 16px 8px 8px;color:#fff;z-index:5;max-width:88%;animation:fadeIn .4s ease}.now-playing img{width:36px;height:36px;border-radius:50%;object-fit:cover}.np-text{text-align:left;overflow:hidden}.np-title{font-size:13px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}.np-artist{font-size:11px;opacity:.7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}.player-mute{position:absolute;top:30px;right:60px;background:#0006;border:none;color:#fff;width:36px;height:36px;border-radius:50%;cursor:pointer;font-size:16px;line-height:1;z-index:6}#unmute-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000d9;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:70;cursor:pointer;animation:fadeIn .2s ease}.unmute-inner{text-align:center;color:#fff}.unmute-icon{font-size:64px;margin-bottom:16px;animation:pulse 1.4s ease-in-out infinite}.unmute-text{font-size:18px;font-weight:600;letter-spacing:.5px}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.1);opacity:.8}}.song-picker{background:#0006;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:14px;margin-top:8px}.song-search-row{display:flex;gap:6px;margin-bottom:10px}.song-search-row input{flex:1;background:#0006;border:1px solid rgba(255,255,255,.1);color:#fff;border-radius:8px;padding:8px 12px;font-size:13px}.song-search-row input:focus{outline:none;border-color:#ffc75f}.song-results{max-height:240px;overflow-y:auto;margin-bottom:8px}.song-results::-webkit-scrollbar{width:6px}.song-results::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.song-result{display:flex;align-items:center;gap:10px;padding:8px;border-radius:8px;cursor:pointer;transition:background .15s ease}.song-result:hover{background:#ffffff14}.song-result.selected{background:#ffc75f2e}.song-result img{width:40px;height:40px;border-radius:4px;object-fit:cover}.song-result-info{flex:1;min-width:0}.song-result-title{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.song-result-artist{font-size:11px;color:#fff9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.song-result-preview{background:#ffffff1a;border:none;color:#fff;width:32px;height:32px;border-radius:50%;cursor:pointer;font-size:12px}.song-result-preview:hover{background:#fff3}.song-current{display:flex;align-items:center;gap:10px;padding:10px;background:#4ecdc41f;border:1px solid rgba(78,205,196,.3);border-radius:8px;margin-bottom:10px}.song-current img{width:40px;height:40px;border-radius:4px;object-fit:cover}.song-current .info{flex:1;min-width:0}.song-current .info .t{font-weight:600;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.song-current .info .a{font-size:11px;opacity:.7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.song-controls{display:flex;flex-direction:column;gap:12px;margin-top:10px}.song-controls label{font-size:11px;color:#fff9;text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;display:block}.song-control-row.row-inline{display:flex;align-items:center;justify-content:space-between;gap:12px}.song-control-row.row-inline label{margin:0}.song-duration-select{background:#0006;border:1px solid rgba(255,255,255,.1);color:#fff;border-radius:6px;padding:6px 28px 6px 10px;font-size:13px;font-family:inherit;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path d='M1 1l4 4 4-4' stroke='rgba(255,255,255,0.6)' stroke-width='1.5' fill='none' stroke-linecap='round'/></svg>");background-repeat:no-repeat;background-position:right 10px center}.song-duration-select:focus{outline:none;border-color:#4ecdc499}.song-duration-select option{background:#1a1a1a;color:#fff}.song-start-slider{width:100%}.song-start-track{position:relative;height:40px;background:#0006;border:1px solid rgba(255,255,255,.1);border-radius:8px;cursor:grab;touch-action:none;overflow:hidden;-webkit-user-select:none;user-select:none}.song-start-track:active{cursor:grabbing}.song-start-track.is-locked{cursor:default}.song-start-bars{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;padding:0 6px;gap:2px;pointer-events:none}.song-start-bar{flex:1;background:#ffffff2e;border-radius:1px;min-width:1px;transition:background .1s}.song-start-bar.in-window{background:#4ecdc4f2}.song-start-window{position:absolute;top:0;bottom:0;background:#4ecdc424;border:1.5px solid rgba(78,205,196,.85);border-radius:6px;pointer-events:none;box-shadow:0 0 0 1px #0006 inset}.song-start-meta{display:flex;justify-content:space-between;margin-top:4px;font-size:11px;color:#ffffff80;font-variant-numeric:tabular-nums}.itunes-credit{font-size:10px;color:#fff6;text-align:center;margin-top:8px;letter-spacing:.5px}.song-add-btn{width:100%;padding:10px;background:#ffffff0f;border:1px dashed rgba(255,255,255,.2);color:#ffffffb3;border-radius:8px;cursor:pointer;font-size:13px;font-weight:600;margin-top:8px}.song-add-btn:hover{background:#ffc75f1a;border-color:#ffc75f;color:#ffc75f}.song-loading{text-align:center;padding:14px;color:#ffffff80;font-size:13px}.preview-banner{position:fixed;top:0;left:0;right:0;background:#ffc75f;color:#2a1a00;padding:8px 16px;text-align:center;font-size:13px;font-weight:700;z-index:60;display:flex;justify-content:center;align-items:center;gap:12px}.preview-banner button{background:#2a1a00;color:#ffc75f;border:none;padding:4px 12px;border-radius:999px;font-size:12px;font-weight:700;cursor:pointer}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-8px)}75%{transform:translate(8px)}}.fragment-layer{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;z-index:0}.fragment-layer .fragment{position:absolute;will-change:transform,opacity;-webkit-user-select:none;user-select:none;line-height:1}@keyframes fragment-fall{0%{transform:translate3d(0,-120vh,0) rotate(0)}to{transform:translate3d(var(--drift, 0px),120vh,0) rotate(720deg)}}@keyframes fragment-fall-slow{0%{transform:translate3d(0,-120vh,0) rotate(0)}to{transform:translate3d(var(--drift, 0px),120vh,0) rotate(360deg)}}@keyframes fragment-fall-flip{0%{transform:translate3d(0,-120vh,0) rotateY(0) rotate(0)}to{transform:translate3d(var(--drift, 0px),120vh,0) rotateY(1080deg) rotate(540deg)}}@keyframes fragment-rise{0%{transform:translate3d(0,120vh,0);opacity:0}10%{opacity:.85}90%{opacity:.85}to{transform:translate3d(var(--drift, 0px),-120vh,0);opacity:0}}@keyframes fragment-twinkle{0%,to{opacity:0;transform:scale(.6)}50%{opacity:1;transform:scale(1.1)}}.fragment-pattern-fall .fragment{animation:fragment-fall linear infinite}.fragment-pattern-fall-slow .fragment{animation:fragment-fall-slow linear infinite}.fragment-pattern-flip-fall .fragment{animation:fragment-fall-flip linear infinite}.fragment-pattern-rise .fragment{animation:fragment-rise ease-in-out infinite}.fragment-pattern-twinkle .fragment{animation:fragment-twinkle ease-in-out infinite}.fragment-pattern-drift .fragment{animation:fragment-drift ease-in-out infinite}.fragment-img{object-fit:contain;pointer-events:none}@keyframes fragment-drift{0%{transform:translate(0)}25%{transform:translate(60px,-40px)}50%{transform:translate(-50px,40px)}75%{transform:translate(40px,70px)}to{transform:translate(0)}}.style-editor{background:#00000040;border:1px solid rgba(255,255,255,.06);border-radius:10px;padding:10px 12px;margin-bottom:12px}.style-editor+.style-editor{margin-top:-4px}.style-editor .field-label{margin-bottom:8px}.swatches-row{display:flex;gap:8px;flex-wrap:wrap}.swatch{width:30px;height:30px;border-radius:50%;cursor:pointer;border:2px solid transparent;padding:0;transition:transform .12s ease,border-color .12s ease}.swatch:hover{transform:scale(1.08)}.swatch.active{border-color:#fff;transform:scale(1.12);box-shadow:0 0 0 2px #ffc75f66}.fragment-picker-row{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}.fragment-option{background:#ffffff0f;border:1px solid rgba(255,255,255,.1);color:#ffffffd9;padding:6px 12px;border-radius:999px;cursor:pointer;font-size:12px;font-weight:600;display:inline-flex;align-items:center;gap:6px;transition:all .12s ease}.fragment-option:hover{background:#ffffff1f;border-color:#ffffff40}.fragment-option.active{background:#ffc75f33;border-color:#ffc75f;color:#ffc75f}.fragment-option .frag-emoji{font-size:14px;line-height:1}.density-row{display:flex;gap:6px;align-items:center;font-size:12px;color:#fff9}.density-btn{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);color:#ffffffbf;padding:4px 10px;border-radius:999px;cursor:pointer;font-size:11px;font-weight:600;text-transform:capitalize}.density-btn:hover{background:#ffffff1a}.density-btn.active{background:#ffc75f;border-color:#ffc75f;color:#2a1a00}.slide>*:not(.fragment-layer):not(.slide-bg):not(.photo-lightbox):not(.photo-mosaic):not(.quote-mark):not(.keepsake):not(.letter-wrap){position:relative;z-index:2}.slide-bg{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;overflow:hidden}.lava-bg .lava-blobs{position:absolute;top:-10%;right:-10%;bottom:-10%;left:-10%;pointer-events:none}.lava-blob{position:absolute;width:60%;aspect-ratio:1;border-radius:50%;mix-blend-mode:screen;opacity:.95;will-change:transform}.lava-blob-0{animation:lava-drift-0 ease-in-out infinite}.lava-blob-1{animation:lava-drift-1 ease-in-out infinite}.lava-blob-2{animation:lava-drift-2 ease-in-out infinite}.lava-blob-3{animation:lava-drift-3 ease-in-out infinite}.lava-blob-4{animation:lava-drift-4 ease-in-out infinite}@keyframes lava-drift-0{0%,to{transform:translate(-20%,-20%) scale(1)}33%{transform:translate(60%,30%) scale(1.2)}66%{transform:translate(20%,60%) scale(.9)}}@keyframes lava-drift-1{0%,to{transform:translate(50%,-10%) scale(1.1)}33%{transform:translate(-10%,50%) scale(.85)}66%{transform:translate(40%,40%) scale(1.15)}}@keyframes lava-drift-2{0%,to{transform:translate(20%,50%) scale(.95)}33%{transform:translate(50%) scale(1.25)}66%{transform:translate(-10%,20%) scale(1)}}@keyframes lava-drift-3{0%,to{transform:translate(60%,60%) scale(1.1)}33%{transform:translate(20%,10%) scale(.9)}66%{transform:translate(50%,50%) scale(1.2)}}@keyframes lava-drift-4{0%,to{transform:translate(-10%,30%) scale(1)}33%{transform:translate(40%,-10%) scale(1.15)}66%{transform:translate(10%,40%) scale(.95)}}.bg-tabs{display:flex;gap:4px;background:#0000004d;border-radius:8px;padding:3px;margin-bottom:10px}.bg-tab{flex:1;background:transparent;border:none;color:#fff9;padding:6px 10px;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;transition:all .12s ease}.bg-tab:hover{color:#ffffffe6}.bg-tab.active{background:#ffc75f2e;color:#ffc75f}.gradient-stops-row{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:10px;flex-wrap:wrap}.gradient-stops-row .stop-label{font-size:12px;color:#ffffffb3}.gradient-stops-row input[type=color]{width:72px;height:54px;padding:0;border:2px solid transparent;border-radius:10px;cursor:pointer;background:transparent;transition:transform .12s ease,border-color .12s ease}.gradient-stops-row input[type=color]:hover{transform:scale(1.04);border-color:#ffffff40}.gradient-stops-row input[type=color]::-webkit-color-swatch-wrapper{padding:0}.gradient-stops-row input[type=color]::-webkit-color-swatch{border:none;border-radius:8px}.gradient-stops-row input[type=color]::-moz-color-swatch{border:none;border-radius:8px}.gradient-stops-row .stop-arrow{color:#ffffff80;font-size:18px;-webkit-user-select:none;user-select:none}.color-row{display:flex;align-items:center;gap:10px;margin-bottom:8px}.color-row label{font-size:12px;color:#ffffffb3;min-width:40px}.color-row input[type=color]{width:72px;height:54px;padding:0;border:2px solid transparent;border-radius:10px;cursor:pointer;background:transparent;transition:transform .12s ease,border-color .12s ease}.color-row input[type=color]:hover{transform:scale(1.04);border-color:#ffffff40}.color-row input[type=color]::-webkit-color-swatch-wrapper{padding:0}.color-row input[type=color]::-webkit-color-swatch{border:none;border-radius:8px}.color-row input[type=color]::-moz-color-swatch{border:none;border-radius:8px}.slider-row{display:grid;grid-template-columns:80px 1fr 50px;gap:8px;align-items:center;margin-bottom:6px;font-size:12px;color:#ffffffb3}.slider-row input[type=range]{accent-color:#FFC75F}.blobs-grid{display:grid;grid-template-columns:repeat(3,max-content);gap:10px;justify-content:center;margin-bottom:8px}.blob-row{display:flex;align-items:center;gap:6px}.blob-row .icon-btn{width:22px;height:22px;font-size:12px}.add-blob-btn{background:#ffffff0d;border:1px dashed rgba(255,255,255,.18);color:#ffffffb3;padding:5px 10px;border-radius:6px;cursor:pointer;font-size:12px;margin-top:4px}.add-blob-btn:hover{background:#ffffff1a}.add-blob-btn:disabled{opacity:.4;cursor:not-allowed}.fragment-image-thumb{width:40px;height:40px;object-fit:cover;border-radius:6px;border:1px solid rgba(255,255,255,.15);margin-right:8px;vertical-align:middle}.fragment-image-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(48px,1fr));gap:6px;margin-bottom:8px}.fragment-image-cell{position:relative;aspect-ratio:1;border-radius:6px;overflow:hidden;background:#0006;border:1px solid rgba(255,255,255,.12)}.fragment-image-cell img{width:100%;height:100%;object-fit:cover;display:block}.fragment-image-cell .icon-btn.danger{position:absolute;top:2px;right:2px;width:20px;height:20px;font-size:12px;background:#0009}.fragment-image-cell .icon-btn.danger:hover{background:#ff4d4db3}.preset-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:8px}.preset-tile{position:relative;aspect-ratio:4 / 3;border-radius:10px;border:2px solid transparent;overflow:hidden;transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease}.preset-tile:hover{transform:scale(1.04)}.preset-tile.active{border-color:#ffc75f;box-shadow:0 0 0 2px #ffc75f59}.preset-tile-select{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;border:none;padding:0;cursor:pointer;z-index:1}.preset-tile-edit{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#0000008c;border:none;color:#fff;width:37px;height:37px;border-radius:50%;cursor:pointer;font-size:18px;line-height:1;padding:0;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s ease,background .15s ease,transform .12s ease;z-index:2}.preset-tile:hover .preset-tile-edit,.preset-tile-edit:focus-visible{opacity:1}.preset-tile-edit:hover{background:#000c;transform:translate(-50%,-50%) scale(1.08)}.slide-preview{position:relative;width:100%;aspect-ratio:16 / 9;border-radius:10px;overflow:hidden;pointer-events:none;margin-bottom:14px;background:#000;border:1px solid rgba(255,255,255,.08)}.slide-preview-stage{position:absolute;top:0;left:0;transform-origin:top left}.slide-preview-stage .slide{animation:none}.slide-preview-stage .end-actions{display:none}.keepsake{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:18px 16px 72px}.keepsake-card{position:relative;z-index:2;width:min(100%,380px);aspect-ratio:9 / 16;max-height:100%;background:linear-gradient(180deg,#1a1a1a,#0a0a0a);border-radius:18px;box-shadow:0 20px 60px #00000073;padding:32px 26px 28px;overflow:hidden;color:#fff;font-family:var(--font-body);display:flex;flex-direction:column;justify-content:space-between;align-items:center;text-align:center}.keepsake-section{display:flex;flex-direction:column;align-items:center;width:100%}.keepsake-eyebrow{font-family:var(--font-body);font-weight:700;font-size:11px;letter-spacing:2px;text-transform:uppercase;color:#fff9;margin:0 0 10px;line-height:1.15}.keepsake-title{font-family:var(--font-display);font-weight:400;font-size:clamp(22px,6vw,30px);line-height:1.15;color:#fff;margin:0;max-width:92%;word-break:break-word}.keepsake-title.font-spotify{font-family:var(--font-spotify);font-weight:900;font-size:clamp(26px,7vw,36px);letter-spacing:-.02em;text-transform:lowercase;line-height:1.05}.keepsake-card-soundtrack{justify-content:space-evenly;padding:30px 26px}.keepsake-card>.keepsake-eyebrow{margin-bottom:0}.keepsake-tagline{font-style:italic;font-size:14px;color:#ffffffc7;line-height:1.4;max-width:92%;margin:0 0 4px}.keepsake-caption{font-size:12px;color:#ffffff8c;line-height:1.4;max-width:92%;margin:0}.keepsake-footer{font-size:11px;font-variant:small-caps;letter-spacing:1.5px;color:#ffffff80;flex-shrink:0}.keepsake-actions{position:absolute;bottom:18px;left:0;right:0;display:flex;gap:12px;justify-content:center;z-index:5}.keepsake-save{background:#111;border:1.5px solid rgba(255,255,255,.95);color:#fff;padding:12px 26px;border-radius:999px;font-family:var(--font-body);font-size:14px;font-weight:800;letter-spacing:.3px;cursor:pointer;box-shadow:0 4px 14px #00000059,0 0 0 3px #00000026;transition:background .15s ease,transform .12s ease}.keepsake-save:hover:not(:disabled){background:#000;transform:scale(1.03)}.keepsake-save:active:not(:disabled){transform:scale(.98)}.keepsake-save:disabled{opacity:.7;cursor:wait}.keepsake-card-spirit-animal{justify-content:space-evenly;padding:30px 26px}.spirit-sections{display:grid;grid-template-columns:1fr 1fr;gap:12px;width:100%}.spirit-section{display:flex;flex-direction:column;align-items:center;gap:8px;min-width:0}.spirit-section-media{width:100%;aspect-ratio:1;border-radius:12px;overflow:hidden;background:#ffffff0a;box-shadow:0 4px 14px #00000059,0 0 0 1px #ffffff0f}.spirit-section-img{width:100%;height:100%;object-fit:cover;display:block;user-select:none;-webkit-user-select:none;-webkit-user-drag:none;-webkit-touch-callout:none}.spirit-section-empty{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:36px;color:#ffffff40;background:radial-gradient(circle at 50% 40%,rgba(255,255,255,.06),transparent 70%)}.spirit-section-caption{font-size:11px;color:#fff9;line-height:1.35;word-break:break-word}.keepsake-tracks{list-style:none;margin:0;padding:0;width:100%;display:flex;flex-direction:column;gap:12px}.keepsake-tracks-empty{font-size:13px;font-style:italic;color:#ffffff73;margin:18px 0}.keepsake-track{display:flex;align-items:center;gap:12px;text-align:left;min-width:0}.keepsake-track-num{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;color:#ffffff73;width:18px;flex-shrink:0;font-variant-numeric:tabular-nums}.keepsake-track-art{width:38px;height:38px;border-radius:4px;object-fit:cover;flex-shrink:0;background:#ffffff0d}.keepsake-track-art-empty{background:linear-gradient(135deg,#2a2a2a,#1a1a1a)}.keepsake-track-meta{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.keepsake-track-name{font-size:13px;font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.keepsake-track-artist{font-size:11px;font-weight:400;color:#fff9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.keepsake-card-meme{justify-content:space-evenly;padding:30px 20px;gap:24px}.meme-video-wrap{width:100%;flex:1 1 0;min-height:0;display:flex;align-items:center;justify-content:center;background:#000;border-radius:12px;overflow:hidden;box-shadow:0 4px 14px #00000059,0 0 0 1px #ffffff0f}.meme-video{width:100%;height:100%;object-fit:contain;display:block;cursor:pointer;user-select:none;-webkit-user-select:none;-webkit-user-drag:none;-webkit-touch-callout:none}.meme-video-empty{font-size:13px;font-style:italic;color:#ffffff59;padding:40px 20px}.spirit-fields-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media(max-width:480px){.spirit-fields-grid{grid-template-columns:1fr}}.spirit-section-editor{display:flex;flex-direction:column;background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:10px}.spirit-section-editor-frame{width:100%;aspect-ratio:1;background:#000;border-radius:6px;overflow:hidden;position:relative}.spirit-section-editor-frame img,.spirit-section-editor-frame video{width:100%;height:100%;object-fit:cover;display:block;user-select:none;-webkit-user-select:none;-webkit-user-drag:none;-webkit-touch-callout:none}.spirit-section-editor-empty{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:11px;color:#fff6;background:#ffffff0a;border:1px dashed rgba(255,255,255,.15)}.title-font-picker{display:flex;gap:8px}.title-font-option{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 14px;background:#ffffff0a;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#ffffffb3;cursor:pointer;transition:background .12s ease,border-color .12s ease,color .12s ease}.title-font-option:hover{background:#ffffff14;color:#fff}.title-font-option.is-active{background:#ffffff1f;border-color:#fff6;color:#fff}.title-font-sample{font-size:22px;line-height:1;color:#fff}.title-font-label{font-size:12px;letter-spacing:.5px}.wrapped-track-picker{display:flex;flex-direction:column;gap:6px;max-height:320px;overflow-y:auto;padding-right:4px}.wrapped-track-row{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:6px;background:#ffffff08;border:1px solid rgba(255,255,255,.06);cursor:pointer;transition:background .12s ease,border-color .12s ease,opacity .12s ease}.wrapped-track-row:hover:not(.is-disabled){background:#ffffff0f}.wrapped-track-row.is-checked{background:#ffffff14;border-color:#ffffff2e}.wrapped-track-row.is-disabled{opacity:.4;cursor:not-allowed}.wrapped-track-row input[type=checkbox]{flex-shrink:0;cursor:inherit}.wrapped-track-row-art{width:36px;height:36px;border-radius:4px;object-fit:cover;flex-shrink:0;background:#ffffff0d}.wrapped-track-row-art-empty{background:linear-gradient(135deg,#2a2a2a,#1a1a1a)}.wrapped-track-row-meta{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.wrapped-track-row-name{font-size:13px;font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wrapped-track-row-artist{font-size:11px;color:#ffffff8c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mosaic-hint{text-align:center;font-size:12px;color:#ffffff8c;margin:6px 0 4px;letter-spacing:.3px;animation:mosaic-hint-pulse 2.4s ease-in-out infinite}.slide.text-dark .mosaic-hint{color:#00000080}@keyframes mosaic-hint-pulse{0%,to{opacity:.55}50%{opacity:1}}.wrapped-track-row-reorder{display:flex;flex-direction:column;gap:2px;flex-shrink:0;margin-left:auto}.wrapped-track-row-reorder button{width:22px;height:18px;display:flex;align-items:center;justify-content:center;background:#ffffff14;border:1px solid rgba(255,255,255,.12);border-radius:4px;color:#ffffffbf;font-size:11px;line-height:1;padding:0;cursor:pointer;transition:background .12s ease,color .12s ease}.wrapped-track-row-reorder button:hover:not(:disabled){background:#ffffff2e;color:#fff}.wrapped-track-row-reorder button:disabled{opacity:.3;cursor:not-allowed}.wrapped-track-divider{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:#ffffff59;padding:6px 8px 2px}
