: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-head .winner-title{margin-top:0}.chips{flex-wrap:wrap;gap:6px;margin:8px 0 0;display:flex}.chip{border:1px solid color-mix(in srgb, var(--fg-muted) 35%, transparent);color:var(--fg-default);background:var(--bg-raised);border-radius:999px;align-items:center;gap:6px;padding:4px 9px 4px 5px;font-size:.76rem;font-weight:600;line-height:1.3;display:inline-flex}.chip img{border-radius:4px;display:block}.chip em{opacity:.75;font-style:normal;font-weight:500}.chip-free{color:#b8f5d4;border-color:#6ee7a8}.chip-subscribed{border-color:var(--accent)}.chip-rent{opacity:.85}.chip-none,.chip-owned{padding-left:9px}.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))}
