:root{--chrome:#1a1725;--bg-app:#1a1725;--bg-surface:#241f33;--bg-raised:#2e2842;--fg-default:#e8e3d9;--fg-muted:#a79fb8;--accent:#c9a227;--focus-ring:#c9a227;--radius:14px;--safe-t:env(safe-area-inset-top,0px);--safe-b:env(safe-area-inset-bottom,0px);--safe-l:env(safe-area-inset-left,0px);--safe-r:env(safe-area-inset-right,0px)}*{box-sizing:border-box}.app{background:var(--bg-app);grid-template-rows:auto 1fr;min-height:100dvh;display:grid;position:relative}.app-header{padding:calc(var(--safe-t) + 12px) calc(var(--safe-r) + 16px) 12px calc(var(--safe-l) + 16px)}.app-header h1{letter-spacing:.02em;margin:0;font-size:1.1rem}.app-main{padding:8px calc(var(--safe-r) + 16px) calc(var(--safe-b) + 76px) calc(var(--safe-l) + 16px);align-content:start;gap:16px;display:grid}.app-nav{z-index:5;background:var(--chrome);padding:8px calc(var(--safe-r) + 8px) calc(var(--safe-b) + 8px) calc(var(--safe-l) + 8px);border-top:1px solid color-mix(in srgb, var(--fg-muted) 22%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);gap:4px;display:flex;position:fixed;bottom:0;left:0;right:0}.app-nav button{color:var(--fg-muted);font:inherit;background:0 0;border:0;border-radius:10px;flex:1;padding:10px 6px;font-size:.85rem}.app-nav button[aria-current=page]{background:var(--bg-raised);color:var(--fg-default)}.panel{background:var(--bg-surface);border-radius:var(--radius);padding:16px}.panel h2{margin:0 0 8px;font-size:1rem}.muted{color:var(--fg-muted);margin:0}.coach{background:var(--bg-raised);border:1px solid var(--accent);border-radius:var(--radius);padding:16px}.coach h2{margin:0 0 8px;font-size:1rem}.coach p{margin:0 0 8px;font-size:.9rem}.coach-note{color:var(--fg-muted);font-size:.82rem}.kv{grid-template-columns:auto 1fr;gap:6px 14px;margin:0;font-size:.88rem;display:grid}.kv dt{color:var(--fg-muted)}.kv dd{margin:0}.toast{z-index:10;left:calc(var(--safe-l) + 12px);right:calc(var(--safe-r) + 12px);bottom:calc(var(--safe-b) + 84px);background:var(--bg-raised);border:1px solid var(--accent);border-radius:var(--radius);align-items:center;gap:8px;padding:12px 14px;font-size:.9rem;display:flex;position:fixed}.toast span{flex:1}button{font:inherit;cursor:pointer}:where(.panel,.coach,.toast) button{border:1px solid var(--accent);background:var(--accent);color:#1a1725;border-radius:10px;padding:8px 14px;font-weight:600}.toast button.ghost{color:var(--fg-default);border-color:var(--fg-muted);background:0 0}:where(button,a,input,select,textarea):focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.wheel-stage{place-items:center;padding:8px 0;display:grid;position:relative}.wheel-rotor{will-change:transform;line-height:0}.wheel-canvas{display:block}.wheel-pointer{z-index:2;border-left:11px solid #0000;border-right:11px solid #0000;border-top:20px solid var(--accent);filter:drop-shadow(0 1px 2px #00000080);width:0;height:0;position:absolute;top:-2px}.wheel-empty{text-align:center;position:absolute}.spin-button{border-radius:var(--radius);border:1px solid var(--accent);background:var(--accent);width:100%;color:var(--chrome);padding:16px;font-size:1.05rem;font-weight:700}.spin-button[aria-disabled=true]{opacity:.6}.winner-title{margin:4px 0;font-size:1.25rem;font-weight:700}.why{margin:10px 0}.why summary{cursor:pointer;color:var(--fg-muted);font-size:.88rem}.why ul{color:var(--fg-muted);margin:6px 0 0;padding-left:18px;font-size:.85rem}.odds{gap:10px;margin:12px 0 0;padding:0;list-style:none;display:grid}.odds-row{justify-content:space-between;gap:10px;font-size:.9rem;display:flex}.odds-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.odds-pct{font-variant-numeric:tabular-nums;color:var(--fg-muted)}.odds-bar{background:var(--bg-raised);border-radius:3px;height:5px;overflow:hidden}.odds-bar span{background:var(--accent);height:100%;display:block}.odds .off-wheel{opacity:.65}.film-list,.history,.locked-list,.ladder{gap:10px;margin:0;padding:0;list-style:none;display:grid}.history,.locked-list{gap:14px}.ladder{color:var(--fg-muted);gap:6px;padding-left:18px;font-size:.9rem;list-style:outside}.film-row,.history li{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.history li{border-bottom:1px solid color-mix(in srgb, var(--fg-muted) 18%, transparent);padding-bottom:10px}.history li:last-child{border-bottom:0;padding-bottom:0}.row{align-items:center;gap:8px;margin-top:10px;display:flex}.row.wrap{flex-wrap:wrap}.grow{flex:1;min-width:0}label{color:var(--fg-muted);margin-top:10px;font-size:.85rem;display:block}label.check{color:var(--fg-default);align-items:center;gap:8px;font-size:.92rem;display:flex}input,select{border:1px solid color-mix(in srgb, var(--fg-muted) 35%, transparent);background:var(--bg-app);width:100%;color:var(--fg-default);border-radius:10px;margin-top:4px;padding:10px;font-size:16px}label.check input{width:auto;margin:0}fieldset{border:1px solid color-mix(in srgb, var(--fg-muted) 25%, transparent);border-radius:10px;margin:12px 0 0;padding:10px 12px}legend{color:var(--fg-muted);padding:0 4px;font-size:.8rem}.file-button{border:1px solid var(--fg-muted);color:var(--fg-default);border-radius:10px;margin-top:10px;padding:8px 14px;display:inline-block;position:relative;overflow:hidden}.file-button input{opacity:0;width:100%;height:100%;position:absolute;inset:0}button.ghost{color:var(--fg-default);border-color:var(--fg-muted);background:0 0}button.small{padding:6px 10px;font-size:.82rem;font-weight:500}button.wide{width:100%}.small{font-size:.82rem}.attribution a{color:var(--fg-muted)}.visually-hidden,.sr-label{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.pin-badge{border:1px solid color-mix(in srgb, var(--fg-muted) 45%, transparent);color:var(--fg-muted);background:0 0;border-radius:999px;padding:4px 10px;font-size:.75rem;font-weight:500}.backdrop{z-index:0;pointer-events:none;color:var(--accent);position:fixed;inset:0;overflow:hidden}.app-main,.app-header{z-index:1;position:relative}.backdrop-piece{line-height:0;animation-name:motif-fall;animation-timing-function:linear;animation-iteration-count:infinite;position:absolute;top:-12%}.backdrop[data-motion=drift] .backdrop-piece{animation-name:motif-drift;animation-timing-function:ease-in-out}@keyframes motif-fall{0%{transform:translateY(-10vh)rotate(0)}to{transform:translate3d(var(--drift,0px), 112vh, 0) rotate(240deg)}}@keyframes motif-drift{0%{transform:translateY(8vh)rotate(-6deg)}50%{transform:translate3d(var(--drift,0px), 58vh, 0) rotate(6deg)}to{transform:translateY(108vh)rotate(-6deg)}}@media (prefers-reduced-motion:reduce){.backdrop-piece{top:auto;bottom:calc(var(--drift,0px) + 40%);animation:none!important}}.sync-chip{border:1px solid color-mix(in srgb, var(--fg-muted) 40%, transparent);color:var(--fg-muted);background:0 0;border-radius:999px;margin-left:auto;padding:4px 10px;font-size:.75rem;font-weight:500}.sync-chip[data-state=pending]{border-color:var(--accent);color:var(--accent)}.sync-chip[data-state=warn]{color:#ff9b9b;border-color:#ff6b6b}.sync-parked{opacity:.8}.error{color:#ff9b9b}.wrap-any{word-break:break-all}.poster{aspect-ratio:2/3;object-fit:cover;background:var(--bg-raised);border-radius:6px;flex-shrink:0;width:54px}.poster-lg{border-radius:8px;width:92px}.poster-placeholder{color:color-mix(in srgb, var(--fg-default) 70%, transparent);place-items:center;font-size:1.4rem;font-weight:700;display:grid}.film-main{flex:1;align-items:flex-start;gap:12px;min-width:0;display:flex}.film-meta{flex:1;min-width:0}.film-row{align-items:flex-start}.winner-head{align-items:flex-start;gap:14px;margin-bottom:4px;display:flex}.winner{position:relative}.winner>h2{padding-right:40px}:where(.panel) button.panel-close{border:1px solid var(--bg-raised);width:44px;height:44px;color:var(--fg-muted);background:0 0;border-radius:50%;place-items:center;padding:0;font-size:1.1rem;line-height:1;display:grid;position:absolute;top:8px;right:8px}:where(.panel) button.panel-close:hover{color:var(--fg-default);border-color:var(--fg-muted)}.segmented{margin-top:12px;display:flex}.segmented>button{border-radius:0;flex:1;padding-inline:8px}.segmented>button:first-child{border-radius:var(--radius) 0 0 var(--radius)}.segmented>button:last-child{border-radius:0 var(--radius) var(--radius) 0}.segmented>button+button{margin-left:-1px}.segmented>button:focus-visible{z-index:1;position:relative}.winner-head .winner-title{margin-top:0}.availability-meta{margin-top:6px}.availability-meta a{color:var(--fg-muted)}.provider-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:6px;margin:10px 0;padding:0;list-style:none;display:grid}.provider-toggle{border:1px solid color-mix(in srgb, var(--fg-muted) 30%, transparent);width:100%;color:var(--fg-muted);text-align:left;background:0 0;border-radius:10px;align-items:center;gap:8px;padding:7px 9px;font-size:.8rem;font-weight:500;display:flex}.provider-toggle img{opacity:.55;border-radius:5px;flex-shrink:0}.provider-toggle span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.provider-toggle.on{border-color:var(--accent);color:var(--fg-default);background:color-mix(in srgb, var(--accent) 12%, transparent)}.provider-toggle.on img{opacity:1}.stale{text-underline-offset:3px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.search-results{gap:6px;margin:10px 0 0;padding:0;list-style:none;display:grid}.search-hit{text-align:left;border:1px solid color-mix(in srgb, var(--fg-muted) 25%, transparent);width:100%;color:var(--fg-default);background:0 0;border-radius:10px;align-items:center;gap:10px;padding:8px;font-weight:400;display:flex}.search-hit img,.search-hit-blank{object-fit:cover;background:var(--bg-raised);border-radius:4px;flex-shrink:0;width:36px;height:54px}.search-hit-text{flex:1;min-width:0;font-size:.88rem}.search-hit-add{color:var(--accent);padding:0 6px;font-size:1.3rem}.block{display:block}.notice{margin:0;font-size:.88rem}.confetti-canvas{pointer-events:none;z-index:20;width:100%;height:100%;position:fixed;inset:0}.wheel-hub{pointer-events:none;z-index:3;border:2px solid;border-radius:50%;place-items:center;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.add-film{border-radius:var(--radius);border:1px dashed color-mix(in srgb, var(--accent) 70%, transparent);background:color-mix(in srgb, var(--accent) 10%, transparent);width:100%;color:var(--accent);letter-spacing:.01em;padding:13px;font-weight:600}.count{margin-left:auto}.search-hit.chosen{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent)}.franchise .search-hit-add{font-weight:700}.poster-backdrop{z-index:0;pointer-events:none;position:fixed;inset:0;overflow:hidden}.poster-bands{transform-origin:50%;flex-direction:column;justify-content:center;align-items:center;gap:18px;display:flex;position:absolute;inset:-45%;transform:rotate(-24deg)}.poster-band{flex-shrink:0;gap:18px;display:flex}.poster-band img,.poster-band span{aspect-ratio:2/3;object-fit:cover;border-radius:8px;flex-shrink:0;width:130px;display:block}.poster-gloss{background: linear-gradient(116deg, transparent 28%, #ffffff12 44%, #ffffff05 52%, transparent 68%),  linear-gradient(165deg, color-mix(in srgb, var(--bg-app) 86%, transparent), color-mix(in srgb, var(--bg-app) 94%, transparent));position:absolute;inset:0}:root[data-theme=christmas] .poster-gloss{background:linear-gradient(116deg, transparent 28%, #ffffff14 44%, transparent 68%), linear-gradient(165deg, color-mix(in srgb, var(--bg-app) 88%, transparent), color-mix(in srgb, var(--bg-app) 95%, transparent))}.film-row{grid-template-columns:1fr;align-items:start;gap:12px;display:grid}.film-controls{align-items:center;gap:8px;display:flex}.film-controls select{flex:0 150px;width:auto;margin-top:0}.film-controls button{flex-shrink:0}@media (min-width:560px){.film-row{grid-template-columns:1fr auto}.film-controls{justify-content:flex-end}}.availability{min-width:0}.remove-confirm{background:#ff6b6b14;border:1px solid #ff6b6b8c;border-radius:10px;width:100%;padding:10px 12px}.remove-confirm p{margin:0 0 2px}.remove-confirm .row{margin-top:8px}button.danger{color:#fff;background:#b3342f;border-color:#d4504a}.synopsis{margin:6px 0 0;font-size:.88rem;line-height:1.55}.cast{gap:8px;margin:8px 0 0;padding:0;list-style:none;display:grid}.cast li{align-items:center;gap:10px;display:flex}.cast img,.cast-blank{object-fit:cover;background:var(--bg-raised);width:40px;height:40px;color:var(--fg-muted);border-radius:50%;flex-shrink:0;place-items:center;font-weight:700;display:grid}.cast-text{min-width:0;font-size:.88rem}.cast-text strong{display:block}.why+.why{margin-top:-2px}.curtain>summary{color:var(--fg);font-size:.95rem;font-weight:600}.curtain>.why{border-left:2px solid var(--bg-raised);margin-left:12px;padding-left:10px}.curtain>.why:first-of-type{margin-top:10px}.chips{flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0 0;display:flex}.chip{max-width:100%;color:var(--fg-default);white-space:nowrap;cursor:pointer;background:0 0;border:0;border-radius:9px;align-items:center;gap:0;padding:0;font-size:.76rem;font-weight:600;line-height:1.3;transition:gap .16s,padding .16s,background .16s;display:inline-flex;overflow:hidden}.chip img{border-radius:8px;flex-shrink:0;width:30px;height:30px;display:block}.chip .chip-name{opacity:0;text-overflow:ellipsis;max-width:0;transition:max-width .22s,opacity .16s;overflow:hidden}.chip em{opacity:.75;flex-shrink:0;font-style:normal;font-weight:500}.chip-free img{box-shadow:0 0 0 2px #6ee7a8}.chip-subscribed img{box-shadow:0 0 0 2px var(--accent)}.chip-rent{opacity:.85}.chip.revealed,.chip:focus-visible{background:var(--bg-raised);gap:7px;padding-right:10px}.chip.revealed .chip-name,.chip:focus-visible .chip-name{opacity:1;max-width:230px}@media (hover:hover){.chip:hover{background:var(--bg-raised);gap:7px;padding-right:10px}.chip:hover .chip-name{opacity:1;max-width:230px}}.chip-textual,.chip-none,.chip-owned{background:var(--bg-raised);border:1px solid color-mix(in srgb, var(--fg-muted) 35%, transparent);gap:0;padding:5px 10px}.chip-textual .chip-name,.chip-none .chip-name,.chip-owned .chip-name{opacity:1;max-width:230px}
