:root{--tg-bg-color:#101114;--tg-text-color:#f2f2f4;--tg-hint-color:#9a9ba3;--tg-link-color:#8b5cf6;--tg-button-color:#8b5cf6;--tg-button-text-color:#fff;--tg-secondary-bg-color:#23252b;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font:15px/1.4 system-ui,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}html,body,#root{background:var(--tg-bg-color);height:100%;color:var(--tg-text-color);margin:0;overflow-x:hidden}button{font:inherit;cursor:pointer}.onboarding-screen{box-sizing:border-box;max-width:100vw;height:100dvh;padding:20px 16px calc(16px + env(safe-area-inset-bottom,0px));background:var(--tg-bg-color,#101114);color:var(--tg-text-color,#f2f2f4);flex-direction:column;gap:12px;display:flex;overflow:hidden}.onboarding-screen--centered{text-align:center;justify-content:center;align-items:center;gap:14px}.onboarding-title{margin:0;font-size:20px}.onboarding-subtitle{color:var(--tg-hint-color,#9a9ba3);margin:0 0 4px;font-size:13px}.onboarding-status-text{color:var(--tg-hint-color,#9a9ba3);font-size:14px}.onboarding-retry-btn,.onboarding-next-btn{color:#fff;background:#8b5cf6;border:none;border-radius:999px;padding:12px 20px;font-size:15px;font-weight:700}.onboarding-skip-btn{color:var(--tg-hint-color,#9a9ba3);background:0 0;border:none;font-size:13px;text-decoration:underline}.onboarding-grid{flex-wrap:wrap;flex:1;place-content:start center;gap:10px;min-height:0;display:flex;overflow-y:auto}.onboarding-poster{background:#1b1c20;border:2px solid #0000;border-radius:12px;flex:none;width:120px;height:180px;padding:0;position:relative;overflow:hidden}.onboarding-poster img{object-fit:cover;width:100%;height:100%;display:block}.onboarding-poster-fallback{background:linear-gradient(160deg,#2a2c33,#17181b);width:100%;height:100%;display:block}.onboarding-poster--selected{border-color:#8b5cf6}.onboarding-poster-check{color:#fff;background:#8b5cf6;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:13px;font-weight:700;display:flex;position:absolute;top:6px;right:6px}.onboarding-next-btn{flex-shrink:0;width:100%}.attribution{color:var(--tg-hint-color,#9a9ba3);text-align:center;margin:0;font-size:11px;line-height:1.4}.attribution a{color:inherit;text-decoration:underline}.match-screen{box-sizing:border-box;background:var(--tg-bg-color,#101114);max-width:100vw;height:100%;color:var(--tg-text-color,#f2f2f4);flex-direction:column;display:flex;overflow:hidden}.match-header{flex-shrink:0;align-items:center;gap:12px;padding:12px 16px;display:flex}.match-back{background:var(--tg-secondary-bg-color,#23252b);color:var(--tg-text-color,#f2f2f4);border:none;border-radius:999px;flex-shrink:0;padding:8px 14px;font-size:13px;font-weight:600}.match-title{margin:0;font-size:18px}.match-body{flex:1;min-height:0;padding:0 16px 16px;overflow-y:auto}.match-status-text{color:var(--tg-hint-color,#9a9ba3);margin:0 0 16px;font-size:14px;line-height:1.4}.match-cta-btn{color:#fff;background:#8b5cf6;border:none;border-radius:999px;padding:10px 20px;font-weight:600}.match-cta-btn:disabled{opacity:.6}.match-error-text{color:#f87171;margin:10px 0 0;font-size:13px}.match-join-row{gap:8px;margin-top:24px;display:flex}.match-code-input{border:1px solid var(--tg-secondary-bg-color,#23252b);min-width:0;color:var(--tg-text-color,#f2f2f4);background:0 0;border-radius:10px;flex:1;padding:10px 12px;font-size:14px}.match-join-btn{background:var(--tg-secondary-bg-color,#23252b);color:var(--tg-text-color,#f2f2f4);border:none;border-radius:10px;flex-shrink:0;padding:10px 14px;font-weight:600}.match-code-row{background:var(--tg-secondary-bg-color,#23252b);border-radius:12px;align-items:center;gap:10px;margin-bottom:16px;padding:10px 12px;display:flex}.match-code-label{color:var(--tg-hint-color,#9a9ba3);font-size:12px}.match-code-value{letter-spacing:.05em;flex:1;font-family:monospace;font-size:16px;font-weight:700}.match-share-btn{color:#fff;background:#8b5cf6;border:none;border-radius:999px;flex-shrink:0;padding:8px 14px;font-size:13px;font-weight:600}.match-status-block{flex-direction:column;align-items:flex-start;gap:6px;padding:12px 0;display:flex}.match-status-title{margin:0;font-size:16px;font-weight:700}.match-list{flex-direction:column;gap:10px;margin:0;padding:0 0 16px;list-style:none;display:flex}.match-card{background:var(--tg-secondary-bg-color,#23252b);border-radius:14px;align-items:center;gap:12px;padding:8px;display:flex}.match-card-poster{aspect-ratio:2/3;object-fit:cover;background:#1b1c20;border-radius:8px;flex-shrink:0;width:52px}.match-card-poster--fallback{background:linear-gradient(160deg,#2a2c33,#17181b)}.match-card-info{flex-direction:column;gap:2px;min-width:0;display:flex}.match-card-title{margin:0;font-size:14px;line-height:1.25}.match-card-year{color:var(--tg-hint-color,#9a9ba3);font-size:12px}.description-modal-backdrop{z-index:1000;background:#0009;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.description-modal{box-sizing:border-box;background:var(--tg-secondary-bg-color,#23252b);width:100%;max-width:480px;max-height:70vh;color:var(--tg-text-color,#f2f2f4);padding:16px;padding-bottom:calc(16px + env(safe-area-inset-bottom,0px));border-radius:16px 16px 0 0;flex-direction:column;display:flex}.description-modal-header{flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px;display:flex}.description-modal-title{margin:0;font-size:18px;line-height:1.3}.description-modal-close{width:28px;height:28px;color:inherit;background:#ffffff1f;border:none;border-radius:999px;flex-shrink:0;font-size:14px}.description-modal-poster{aspect-ratio:2/3;object-fit:cover;background:#ffffff0f;border-radius:12px;flex-shrink:0;width:100%;max-height:45vh;margin-bottom:12px}.description-modal-poster--fallback{display:block}.description-modal-text{white-space:pre-wrap;margin:0;font-size:14px;line-height:1.6;overflow-y:auto}.description-modal-trailer{color:var(--tg-link-color,#6ab7ff);flex-shrink:0;margin-top:12px;font-size:14px;font-weight:500;text-decoration:none;display:inline-block}.recs-screen{box-sizing:border-box;background:var(--tg-bg-color,#101114);max-width:100vw;height:100dvh;color:var(--tg-text-color,#f2f2f4);flex-direction:column;display:flex;overflow:hidden}.recs-header{flex-shrink:0;align-items:center;gap:12px;padding:12px 16px;display:flex}.recs-back{background:var(--tg-secondary-bg-color,#23252b);color:var(--tg-text-color,#f2f2f4);border:none;border-radius:999px;flex-shrink:0;padding:8px 14px;font-size:13px;font-weight:600}.recs-title{flex:1;margin:0;font-size:18px}.recs-refresh{color:#fff;background:#8b5cf6;border:none;border-radius:999px;flex-shrink:0;padding:8px 14px;font-size:13px;font-weight:600}.recs-refresh:disabled{opacity:.6}.recs-body{flex:1;min-height:0;padding:0 16px;overflow-y:auto}.recs-status-screen{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;height:100%;padding:24px;display:flex}.recs-status-title{margin:0;font-size:18px;font-weight:700}.recs-status-text{color:var(--tg-hint-color,#9a9ba3);margin:0;font-size:14px}.recs-cta-btn{color:#fff;background:#8b5cf6;border:none;border-radius:999px;margin-top:8px;padding:10px 20px;font-weight:600}.recs-list{flex-direction:column;gap:14px;margin:0;padding:0 0 16px;list-style:none;display:flex}.recs-card{background:var(--tg-secondary-bg-color,#23252b);border-radius:14px;gap:12px;padding:10px;display:flex}.recs-card-poster{aspect-ratio:2/3;object-fit:cover;background:#1b1c20;border-radius:10px;flex-shrink:0;width:84px}.recs-card-poster--fallback{background:linear-gradient(160deg,#2a2c33,#17181b)}.recs-card-poster-btn{cursor:pointer;background:0 0;border:none;flex-shrink:0;margin:0;padding:0;display:block}.recs-card-title-btn{color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;margin:0;padding:0;display:block}.recs-card-info{flex-direction:column;gap:4px;min-width:0;display:flex}.recs-card-title{margin:0;font-size:15px;line-height:1.25}.recs-card-meta{color:var(--tg-hint-color,#9a9ba3);gap:10px;font-size:12px;display:flex}.recs-card-explanation{color:var(--tg-hint-color,#9a9ba3);margin:4px 0 0;font-size:12px;line-height:1.4}.recs-card-actions{gap:8px;margin-top:6px;display:flex}.recs-card-btn{color:#fff;opacity:.9;border:none;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;transition:opacity .15s,transform .15s,box-shadow .15s;display:flex}.recs-card-btn:disabled{opacity:.45}.recs-card-btn--dislike{background:#ff3b5c}.recs-card-btn--like{background:#22c77e}.recs-card-btn--active{opacity:1;box-shadow:inset 0 0 0 2px #ffffffb3}.recs-card--rated{opacity:.6;transition:opacity .25s}.recs-footer{padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px));flex-shrink:0}:root{--tabbar-height:58px;--rate-cta-height:40px}.main-shell{box-sizing:border-box;background:var(--tg-bg-color,#101114);max-width:100vw;height:100dvh;color:var(--tg-text-color,#f2f2f4);flex-direction:column;display:flex;overflow:hidden}.main-shell-content{flex:1;min-height:0;position:relative;overflow:hidden}.tab-bar{height:var(--tabbar-height);padding-bottom:env(safe-area-inset-bottom,0px);border-top:1px solid var(--tg-secondary-bg-color,#23252b);background:var(--tg-bg-color,#101114);flex-shrink:0;display:flex}.tab-bar-btn{min-width:0;color:var(--tg-hint-color,#9a9ba3);background:0 0;border:none;flex:1;justify-content:center;align-items:center;gap:6px;font-size:12px;font-weight:600;display:flex}.tab-bar-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tab-bar-btn--active{color:var(--tg-text-color,#f2f2f4)}.tab-bar-badge{color:#fff;background:#8b5cf6;border-radius:999px;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 4px;font-size:10px;font-weight:700;display:inline-flex}.rate-tab{flex-direction:column;height:100%;display:flex}.rate-tab-cta{height:var(--rate-cta-height);box-sizing:border-box;text-align:center;color:var(--tg-hint-color,#9a9ba3);text-overflow:ellipsis;white-space:nowrap;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:flex-end;padding:0 16px;font-size:12px;line-height:1.3;display:flex;overflow:hidden}.rate-tab-cta--ready{color:#fff;text-transform:uppercase;height:calc(var(--rate-cta-height) - 8px);background:#8b5cf6;border-radius:12px;justify-content:center;align-items:center;margin:4px 12px;font-size:14px;font-weight:700}.rate-tab-deck{flex:1;min-height:0;position:relative}.rate-tab-deck .deck-screen{height:calc(100dvh - var(--tabbar-height) - var(--rate-cta-height))!important}.list-tab-status{box-sizing:border-box;text-align:center;height:100%;color:var(--tg-hint-color,#9a9ba3);flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex}.list-tab-status-title{color:var(--tg-text-color,#f2f2f4);font-size:16px;font-weight:700}.list-tab-retry{color:#fff;background:#8b5cf6;border:none;border-radius:999px;padding:8px 18px;font-weight:600}.list-tab-grid{box-sizing:border-box;grid-template-columns:repeat(3,1fr);gap:10px;height:100%;margin:0;padding:12px;list-style:none;display:grid;overflow-y:auto}.list-tab-item{flex-direction:column;gap:6px;display:flex}.list-tab-item-btn{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;flex-direction:column;gap:6px;margin:0;padding:0;display:flex}.list-tab-poster{aspect-ratio:2/3;object-fit:cover;background:#1b1c20;border-radius:10px;width:100%}.list-tab-poster--fallback{background:linear-gradient(160deg,#2a2c33,#17181b)}.list-tab-item-title{font-size:12px;line-height:1.3}.taste-tab{box-sizing:border-box;flex-direction:column;height:100%;display:flex}.taste-tab-body{flex:1;min-height:0;padding:16px;overflow-y:auto}.taste-tab-status{text-align:center;color:var(--tg-hint-color,#9a9ba3);flex-direction:column;align-items:center;gap:8px;padding:24px 0;display:flex}.taste-tab-status-title{color:var(--tg-text-color,#f2f2f4);font-size:16px;font-weight:700}.taste-tab-retry{color:#fff;background:#8b5cf6;border:none;border-radius:999px;padding:8px 18px;font-weight:600}.taste-tab-intro{color:var(--tg-hint-color,#9a9ba3);margin:0 0 14px;font-size:13px;line-height:1.4}.taste-tab-list{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.taste-tab-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.taste-tab-name{text-transform:capitalize;text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;width:100px;font-size:13px;overflow:hidden}.taste-tab-bar-track{background:var(--tg-secondary-bg-color,#23252b);border-radius:4px;flex:1;height:8px;overflow:hidden}.taste-tab-bar-fill{background:#8b5cf6;height:100%;display:block}.taste-tab-slider{accent-color:#8b5cf6;flex-basis:100%;width:100%}.taste-tab-value{min-width:32px;color:var(--tg-hint-color,#9a9ba3);text-align:right;flex-shrink:0;font-size:12px}.taste-tab-remove-btn{background:var(--tg-secondary-bg-color,#23252b);width:24px;height:24px;color:var(--tg-hint-color,#9a9ba3);border:none;border-radius:999px;flex-shrink:0;font-size:12px;line-height:1}.taste-tab-add{flex-direction:column;gap:8px;margin-top:16px;display:flex}.taste-tab-add-btn{border:1px dashed var(--tg-hint-color,#9a9ba3);color:var(--tg-text-color,#f2f2f4);background:0 0;border-radius:999px;align-self:flex-start;padding:8px 16px;font-size:13px;font-weight:600}.taste-tab-add-select{border:1px solid var(--tg-secondary-bg-color,#23252b);background:var(--tg-bg-color,#101114);color:var(--tg-text-color,#f2f2f4);border-radius:8px;padding:8px 10px;font-size:13px}.taste-tab-add-error{color:#ff3b5c;margin:0;font-size:12px}.taste-tab-footer{padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px));flex-direction:column;flex-shrink:0;gap:8px;display:flex}.taste-tab-reset-btn{color:#ff3b5c;background:0 0;border:1px solid #ff3b5c;border-radius:999px;padding:10px 18px;font-size:13px;font-weight:600}.taste-tab-reset-btn:disabled{opacity:.6}.taste-tab-reset-error{color:#ff3b5c;text-align:center;margin:0;font-size:12px}.deck-screen{box-sizing:border-box;max-width:100vw;height:100dvh;padding:12px 12px calc(12px + env(safe-area-inset-bottom,0px));background:var(--tg-bg-color,#101114);color:var(--tg-text-color,#f2f2f4);flex-direction:column;gap:12px;display:flex;overflow:hidden}.deck-screen--centered{justify-content:center;align-items:center}.deck-progress-header{box-sizing:border-box;flex-shrink:0;align-items:center;gap:10px;width:100%;display:flex}.deck-progress-track{background:var(--tg-secondary-bg-color,#23252b);border-radius:3px;flex:1;height:6px;overflow:hidden}.deck-progress-fill{background:#8b5cf6;height:100%;transition:width .2s}.deck-progress-label{color:var(--tg-hint-color,#9a9ba3);white-space:nowrap;font-size:13px}.deck-undo-wrap{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:2px;display:flex}.deck-undo-btn{background:var(--tg-secondary-bg-color,#23252b);color:var(--tg-text-color,#f2f2f4);border:none;border-radius:999px;padding:6px 14px;font-size:13px;font-weight:600}.deck-undo-caption{color:var(--tg-hint-color,#9a9ba3);white-space:nowrap;font-size:10px}.deck-progress-ready{color:#22c77e;flex:1;align-items:center;gap:8px;font-size:13px;font-weight:700;display:flex}.deck-progress-ready-dot{background:#22c77e;border-radius:50%;flex-shrink:0;width:8px;height:8px}.deck-stack{flex:1;width:100%;min-height:0;position:relative}.deck-card-backdrop{pointer-events:none;background-color:#17181b;background-image:linear-gradient(160deg,#26282f,#17181b);border-radius:20px;position:absolute;inset:0;overflow:hidden;transform:scale(.95)translateY(10px)}.deck-card-backdrop:before{content:"";background-image:var(--backdrop-poster,none);filter:blur(44px)brightness(.42)saturate(1.2);background-position:50%;background-size:cover;position:absolute;inset:-20%}.deck-card-backdrop:after{content:"";background:#08080a59;position:absolute;inset:0}.deck-card-frame{cursor:grab;will-change:transform, opacity;border-radius:20px;position:absolute;inset:0;overflow:hidden}.deck-card-face{box-sizing:border-box;background:#1b1c20;width:100%;height:100%;position:relative;overflow:hidden}.deck-card-poster{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.deck-card-poster--fallback{background:linear-gradient(160deg,#2a2c33,#17181b)}.deck-card-gradient{background:linear-gradient(#0000 0%,#0000008c 55%,#000000e0 100%);height:55%;position:absolute;bottom:0;left:0;right:0}.deck-rail{pointer-events:none;position:absolute}.deck-rail--left{background:linear-gradient(90deg,#ff3b5c,#ff3b5c00);width:14px;top:0;bottom:0;left:0}.deck-rail--right{background:linear-gradient(270deg,#22c77e,#22c77e00);width:14px;top:0;bottom:0;right:0}.deck-rail--top{background:linear-gradient(#ffb020,#ffb02000);height:14px;top:0;left:0;right:0}.deck-rail-label{writing-mode:vertical-rl;letter-spacing:.08em;color:#fff;opacity:0;font-size:11px;font-weight:700;transition:opacity .12s;position:absolute;top:50%;transform:translateY(-50%)rotate(180deg)}.deck-rail-label--active{opacity:1}.deck-rail--left .deck-rail-label{left:6px}.deck-rail--right .deck-rail-label{right:6px}.deck-card-chips{gap:6px;display:flex;position:absolute;top:14px;left:14px}.deck-chip{color:#fff;background:#0000008c;border-radius:999px;padding:4px 9px;font-size:12px;font-weight:600}.deck-card-info{color:#fff;position:absolute;bottom:16px;left:16px;right:16px}.deck-card-title{margin:0 0 4px;font-size:20px;line-height:1.2}.deck-card-genres{opacity:.85;margin-bottom:4px;font-size:13px}.deck-card-ratings{gap:12px;margin-bottom:6px;font-size:13px;font-weight:600;display:flex}.deck-card-overview{opacity:.92;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:13px;line-height:1.4;display:-webkit-box;overflow:hidden}.deck-card-more{white-space:nowrap;opacity:.8;font-weight:600}.deck-description-sheet{z-index:5;color:#fff;background:#0a0a0cf5;border-radius:20px;flex-direction:column;display:flex;position:absolute;inset:0}.deck-description-collapse{color:#fff;background:#ffffff1f;border:none;border-radius:999px;flex-shrink:0;align-self:flex-start;margin:12px;padding:6px 14px;font-size:13px}.deck-description-scroll{flex:1;min-height:0;padding:0 20px 20px;overflow-y:auto}.deck-description-title{margin:0 0 12px;font-size:20px}.deck-description-text{white-space:pre-wrap;font-size:15px;line-height:1.6}.deck-actions{box-sizing:border-box;flex-shrink:0;justify-content:center;align-items:center;gap:16px;padding:4px 0;display:flex}.deck-action-item{flex-direction:column;align-items:center;gap:4px;display:flex}.deck-action-btn{color:#fff;border:none;border-radius:50%;justify-content:center;align-items:center;width:56px;min-width:56px;height:56px;display:flex;box-shadow:0 4px 14px #00000059}.deck-action-btn:disabled{opacity:.4}.deck-action-caption{color:var(--tg-hint-color,#9a9ba3);white-space:nowrap;font-size:11px;font-weight:600}.deck-hint-overlay{z-index:4;pointer-events:none;background:#121216c7 linear-gradient(#ffffff24,#ffffff05);border:1px solid #ffffff26;border-radius:18px;justify-content:space-between;gap:6px;padding:16px 10px 14px;display:flex;position:absolute;top:16px;left:16px;right:16px;box-shadow:0 8px 24px #00000040,inset 0 1px #ffffff1f}@supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.deck-hint-overlay{-webkit-backdrop-filter:blur(18px)saturate(160%);backdrop-filter:blur(18px)saturate(160%);background:#12121666}}.deck-hint-item{flex-direction:column;flex:1;align-items:center;gap:6px;min-width:0;display:flex}.deck-hint-icon{color:#fff;border-radius:50%;justify-content:center;align-items:center;width:38px;min-width:38px;height:38px;display:flex;box-shadow:0 2px 8px #0000004d}.deck-hint-icon svg{width:18px;height:18px}.deck-hint-caption{color:#fff;text-align:center;flex-direction:column;align-items:center;gap:1px;font-size:11px;line-height:1.3;display:flex}.deck-hint-caption span:first-child{font-weight:600}.deck-hint-caption span:last-child{color:#ffffffb8}.deck-status-screen{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:10px;padding:24px;display:flex}.deck-status-title{margin:0;font-size:18px;font-weight:700}.deck-status-text{color:var(--tg-hint-color,#9a9ba3);margin:0;font-size:14px}.deck-status-retry{color:#fff;background:#8b5cf6;border:none;border-radius:999px;margin-top:8px;padding:10px 20px;font-weight:600}.deck-retry-banner{background:var(--tg-secondary-bg-color,#23252b);border-radius:12px;flex-shrink:0;justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;font-size:13px;display:flex}.deck-retry-banner--overlay{position:absolute;bottom:88px;left:12px;right:12px}.deck-retry-banner .deck-status-retry{margin-top:0;padding:6px 14px}.app-status-screen{box-sizing:border-box;text-align:center;background:var(--tg-bg-color,#101114);height:100dvh;color:var(--tg-text-color,#f2f2f4);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:24px;display:flex}.app-retry-btn{color:#fff;background:#8b5cf6;border:none;border-radius:999px;padding:10px 20px;font-weight:600}
