/* Cinema 03 / Night. One cinematic palette across every route and public page. */
:root,
:root[data-theme="dark"]{
 color-scheme:dark;
 --color-canvas:#0A1430;--color-surface:#101F3D;--color-surface-subtle:#172947;--color-surface-raised:#203354;
 --color-ink:#f1f0f5;--color-muted:#ACBBD0;--color-border:#2C4060;--color-border-strong:#7188A8;
 --color-brand:#142E4B;--color-on-brand:#f1f0f5;
 --color-primary:#0297DE;--color-primary-hover:#24ACEB;--color-on-primary:#0A1430;
 --color-link:#64C7F4;--color-primary-soft:#12344F;--color-primary-border:#317DA5;
 --color-coral:#FC734D;--color-peach:#3B292F;--color-lilac:#245A7C;--color-lilac-soft:#152F4A;--color-blue-mist:#1C3A59;
 --color-success:#91d9b2;--color-success-soft:#1b342a;--color-danger:#ffadb8;--color-danger-soft:#3e252d;
 --color-warning:#edc889;--color-warning-soft:#3c3021;--color-info:#8DD7F7;--color-info-soft:#12334A;
 --color-focus:#85D7FA;--color-focus-gap:#0A1430;--color-inverse:#243B5B;--color-on-inverse:#f1f0f5;
 --color-disabled-bg:#1B2B46;--color-disabled-ink:#92A4BD;--color-glass:rgb(10 20 48 / .96);
 --color-scrim:rgb(4 10 25 / .80);--color-skeleton:#172947;--color-skeleton-shine:#294465;
 --shadow-rgb:0 0 0;--shadow-soft:0 4px 18px rgb(0 0 0 / .18);--shadow-float:0 16px 48px rgb(0 0 0 / .48);
 --gradient-editorial:linear-gradient(130deg,#102C4C 0%,#12415B 48%,#23374B 78%,#4A2C36 100%);
 --gradient-step-blue:linear-gradient(135deg,#102440,#163C58);
 --gradient-step-peach:linear-gradient(135deg,#25263A,#422B33);
 --gradient-step-lilac:linear-gradient(135deg,#102B46,#1B3554);
 --gradient-poster:linear-gradient(145deg,#203A58,#101F3D);
 --gradient-search-halo:linear-gradient(115deg,#0297DE 5%,#0297DE 40%,#306D9C 62%,#FC734D 92%);
 --gradient-search-surface:linear-gradient(115deg,#102D4E 5%,#123F59 46%,#18364F 72%,#4A2B35 100%);
 --bg:var(--color-canvas);--panel:var(--color-surface-subtle);--ink:var(--color-ink);--muted:var(--color-muted);--line:var(--color-border);--accent:var(--color-link);--soft:var(--color-primary-soft);
 --space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--space-12:48px;
 --radius-small:8px;--radius-control:12px;--radius-surface:20px;--radius-pill:999px;
 --font-body:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-step:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;
 --text-xs:12px;--text-sm:14px;--text-base:16px;--text-lg:20px;
 --motion-fast:140ms;--motion-normal:220ms;--ease-ui:cubic-bezier(.2,.8,.2,1);
}
/* Common interaction states. Names express intent, not a particular color. */
html{background:var(--color-canvas);scrollbar-color:var(--color-border-strong) var(--color-canvas)}
body{font-family:var(--font-body);background:var(--color-canvas);color:var(--color-ink)}
::selection{background:var(--color-primary);color:var(--color-on-primary)}
:where(button,a,input,textarea,select,summary):focus-visible{outline:1px solid var(--color-focus);outline-offset:1px;box-shadow:none}
button:disabled,.btn:disabled{opacity:1;background:var(--color-disabled-bg);color:var(--color-disabled-ink);border-color:var(--color-border);cursor:not-allowed;box-shadow:none;transform:none}
input,textarea,select{background:var(--color-surface);color:var(--color-ink);border-color:var(--color-border-strong);caret-color:var(--color-link);accent-color:var(--color-primary)}
input::placeholder,textarea::placeholder{color:var(--color-muted);opacity:1}
input:disabled,textarea:disabled,select:disabled{background:var(--color-disabled-bg);color:var(--color-disabled-ink);cursor:not-allowed}
:where(input,textarea,select)[aria-invalid="true"]{border-color:var(--color-danger);box-shadow:0 0 0 1px var(--color-danger)}
:where(input,textarea,select):user-invalid{border-color:var(--color-danger)}
:where(input[type="checkbox"],input[type="radio"]){accent-color:var(--color-primary)}
.btn:not(.secondary):not(.ghost):not(.danger),.choosebutton.home-start-simple,.catalog-match .libraryactions .btn:not(.secondary),.discovery-page .deckactions .deck-rate{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary)}
.btn.secondary{background:var(--color-primary-soft);color:var(--color-link)}
.btn.secondary:hover{background:var(--color-blue-mist)}
.btn.ghost{background:var(--color-surface);color:var(--color-link);border-color:var(--color-primary-border)}
.btn.danger{background:var(--color-danger-soft);color:var(--color-danger)}
.btn.danger:hover{border-color:var(--color-danger)}
.btn:disabled{background:var(--color-disabled-bg)!important;color:var(--color-disabled-ink)!important;border-color:var(--color-border)!important}
.chip.on,.onboarding-flow .onfilters .chip.on,.onboarding-reactions button.on,.onboarding-flow .step-number,.bubbletick{color:var(--color-on-primary)}
.onboarding-flow .namedsteps button[aria-current="step"] .step-number{color:var(--color-on-primary)}
.onboarding-flow .namedsteps button:not([aria-current="step"]) .step-number{color:var(--color-muted)}
.onboarding-flow .onboardfooter{background:var(--color-brand)}
.onboarding-unified .onboardfooter .onboarding-footer-bottom>.btn:not(.danger){background:var(--color-primary);color:var(--color-on-primary)}
.onboarding-footer-bottom>span{color:var(--color-ink)}
.bubbletick{border-color:var(--color-surface)}
.onboarding-reactions{position:relative;inset:auto;width:min(100%,142px);margin:4px auto 0;padding:0;gap:2px;border-radius:0;background:transparent;border:0;box-shadow:none;backdrop-filter:none}
.onboarding-reactions button{height:32px;min-height:32px;border:0}
.onboarding-reactions svg{width:20px;height:20px}
.reaction-legend svg{width:18px;height:18px;color:var(--color-link)}
.onboarding-reactions button:first-child[data-tooltip]:after{left:0;transform:none}
.onboarding-reactions button:last-child[data-tooltip]:after{left:auto;right:0;transform:none}
@media(max-width:700px){.onboarding-reactions button{height:36px;min-height:36px}}
.onboarding-reactions button:focus-visible{outline:1px solid var(--color-focus);outline-offset:-2px;box-shadow:none}
.posterfallback{background:var(--gradient-poster);color:var(--color-ink)}
.posterfallback small{color:var(--color-muted)}
:where(.modal,.tourcard,.title-more-panel,.mobile-composer,.preferenceeditor,.discoverycard){background:var(--color-surface);color:var(--color-ink)}
.modalback{background:var(--color-scrim)}
.modal .close{background:var(--color-surface-subtle);color:var(--color-muted)}
.title-more[open] .title-more-panel{box-shadow:var(--shadow-float);border-color:var(--color-border-strong)}
:where(.autherror,#authError,.field-error){color:var(--color-danger)}
.toast{background:var(--color-inverse);color:var(--color-on-inverse);box-shadow:var(--shadow-float);border:1px solid var(--color-border-strong)}
.toast button{color:var(--color-on-inverse);text-decoration:underline;text-underline-offset:3px}
:where(.mobile-nav,.nav){border-color:var(--color-border)}
.mobile-web .mobile-nav{background:var(--color-glass)}
.mobile-nav button[aria-current="page"]{color:var(--color-link)}
.mobile-nav button[aria-current="page"] svg{background:transparent;box-shadow:none;border-radius:0}
:where(.reactions button.on,.inline-reactions button.on){background:var(--color-primary-soft);color:var(--color-link);border-color:var(--color-primary-border)}
/* Editorial gradients adapt as a palette; posters retain their original colors. */
body.guest .landingdemo{border-color:var(--color-primary-border);box-shadow:0 0 40px -24px var(--color-coral),var(--shadow-soft)}
body.guest .landingmoods button{background:var(--color-surface);color:var(--color-ink);border-color:var(--color-border)}
body.guest .landingmoods button.on,body.guest .landingdemo .btn.wide,body.guest .featurestep,body.guest .landingfeatures>div:nth-child(2) .featurestep,body.guest .landingfeatures>div:nth-child(3) .featurestep{background:var(--color-primary);color:var(--color-on-primary)}
body.guest .landingresult{background:var(--color-surface);box-shadow:var(--shadow-soft)}
body.guest .landingfeatures>div{border-color:var(--color-border)}
body.guest .landingbottom{background:var(--color-brand);border-color:var(--color-brand)}
body.guest .landingbottom p{color:var(--color-ink)}
body.guest .landingbottom button{background:var(--color-primary);color:var(--color-on-primary)}
body.guest .landingbottom button:hover{background:var(--color-primary-hover)}
/* Reusable primitives: compact density, explicit status, no color-only meaning. */
.ds-field{display:grid;gap:7px;min-width:0}.ds-field>label,.ds-field>span:first-child{font-size:14px;font-weight:600;color:var(--color-ink)}
.ds-help,.field-error{font-size:12px;line-height:1.5}.ds-help{color:var(--color-muted)}
.ds-segmented{display:inline-flex;gap:4px;padding:4px;border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-surface-subtle)}
.ds-segmented button{min-height:36px;padding:8px 15px;border-radius:var(--radius-pill);font-size:13px;color:var(--color-muted)}
.ds-segmented button[aria-pressed="true"]{background:var(--color-surface-raised);box-shadow:var(--shadow-soft);color:var(--color-link);font-weight:600}
.ds-switch{display:inline-flex;align-items:center;gap:10px;min-height:44px;font-size:14px;color:var(--color-ink);cursor:pointer}
.ds-switch input{appearance:none;width:40px;height:24px;padding:0;margin:0;border:1px solid var(--color-border-strong);border-radius:20px;background:var(--color-surface-subtle);position:relative;flex:none;cursor:pointer}
.ds-switch input:after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:var(--color-muted);transition:transform var(--motion-fast)}
.ds-switch input:checked{background:var(--color-primary);border-color:var(--color-primary)}.ds-switch input:checked:after{transform:translateX(16px);background:var(--color-on-primary)}
.ds-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:7px;font-size:12px;font-weight:600;background:var(--color-primary-soft);color:var(--color-link)}
.ds-badge.success{background:var(--color-success-soft);color:var(--color-success)}.ds-badge.warning{background:var(--color-warning-soft);color:var(--color-warning)}.ds-badge.danger{background:var(--color-danger-soft);color:var(--color-danger)}
.ds-notice{padding:14px 16px;border:1px solid var(--color-primary-border);border-radius:12px;background:var(--color-info-soft);color:var(--color-info);font-size:14px;line-height:1.5}
.ds-notice p{color:inherit;margin:4px 0 0}.ds-notice.danger{background:var(--color-danger-soft);color:var(--color-danger);border-color:var(--color-danger)}.ds-notice.success{background:var(--color-success-soft);color:var(--color-success);border-color:var(--color-success)}
.ds-spinner{display:inline-block;width:18px;height:18px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:ds-spin 850ms linear infinite;flex:none}
.ds-skeleton{border-radius:8px;background:linear-gradient(100deg,var(--color-skeleton) 25%,var(--color-skeleton-shine) 45%,var(--color-skeleton) 65%);background-size:200% 100%;animation:ds-shimmer 1.8s linear infinite}
.ds-empty{padding:24px 0;max-width:440px}.ds-empty h3{margin-bottom:8px}.ds-empty p{font-size:14px;margin-bottom:16px}
[data-tooltip]{position:relative}[data-tooltip]:is(:hover,:focus-visible):after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);width:max-content;max-width:220px;background:var(--color-inverse);color:var(--color-on-inverse);padding:7px 10px;font-size:12px;line-height:1.4;font-weight:400;border-radius:7px;box-shadow:var(--shadow-soft);pointer-events:none;z-index:60}
@keyframes ds-spin{to{transform:rotate(360deg)}}@keyframes ds-shimmer{to{background-position:-200% 0}}
@media(max-width:700px){.globaltools{gap:8px}.theme-picker summary{width:36px;height:36px}.theme-menu{right:-42px;width:216px}.theme-menu button{min-height:44px}}
@media(prefers-reduced-motion:reduce){.ds-spinner,.ds-skeleton{animation:none}.ds-switch input:after{transition:none}}
@media(forced-colors:active){.btn,.chip,.onboarding-reactions button,.theme-picker summary,.ds-switch input{border:1px solid ButtonText}.onboarding-reactions button.on,.chip.on{outline:2px solid Highlight}.ds-switch input:checked{outline:2px solid Highlight}}
/* Compact controls override legacy global input sizing. */
.ds-switch input{min-height:24px;max-height:24px;box-shadow:none}
.themesection .themetile.blue{--mood-accent:var(--color-link);--mood-tint:var(--color-primary-soft);--mood-border:var(--color-primary-border)}
.themesection .themetile.sage{--mood-accent:var(--color-success);--mood-tint:var(--color-success-soft);--mood-border:var(--color-border-strong)}
.themesection .themetile.lavender{--mood-accent:var(--color-link);--mood-tint:var(--color-lilac-soft);--mood-border:var(--color-primary-border)}
.themetile:hover .theme-arrow{background:var(--color-primary);color:var(--color-on-primary)}
/* One primary action per card; skipping and rating stay visually secondary. */
.discovery-page .deckactions .btn.deck-save{background:var(--color-primary);color:var(--color-on-primary);border-color:var(--color-primary)}
.discovery-page .deckactions .btn.deck-rate{background:var(--color-primary-soft);color:var(--color-link);border-color:var(--color-primary-border);box-shadow:none}
.discovery-page .deckactions .btn.deck-skip{background:var(--color-surface);color:var(--color-muted);border-color:var(--color-border-strong)}
.discovery-page .deckactions .btn.deck-hide{background:var(--color-surface-subtle);color:var(--color-muted);border-color:var(--color-border)}
.textbtn:disabled{background:transparent;border-color:transparent;color:var(--color-disabled-ink)}
@media(hover:hover){.discovery-page .deckactions .btn.deck-hide:hover{background:var(--color-danger-soft);color:var(--color-danger)}.discovery-page .deckactions .btn.deck-rate:hover,.discovery-page .deckactions .btn.deck-skip:hover{background:var(--color-blue-mist)}}
/* Poster dimensions never depend on the original image ratio. */
.onboarding-unified .bubble .bubbleart{display:block;min-height:0;overflow:hidden}
.onboarding-unified .bubbleart>img,.onboarding-unified .bubbleart>.posterfallback{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
h1[tabindex="-1"]:focus{outline:none}
/* Theme changes are atomic: avoid mismatched text/background during transitions. */
.theme-changing *, .theme-changing *::before, .theme-changing *::after{transition:none!important}

/* Guided taste setup and two input methods share the same search draft. */
.picker-flow{max-width:880px;padding-top:28px}
.picker-flow .heading{margin-bottom:24px}
.picker-flow .heading h1{font-size:clamp(28px,3vw,38px);line-height:1.15}
.picker-flow .heading p{font-size:15px;margin-top:10px}
.input-method{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:5px;background:var(--color-surface-subtle);border:1px solid var(--color-border);border-radius:18px}
.input-method button{min-height:48px;padding:10px 16px;border:0;border-radius:13px;color:var(--muted);background:transparent;font-size:15px;font-weight:600;transition:background .15s,color .15s}
.input-method button[aria-pressed="true"]{background:var(--color-primary);color:var(--color-on-primary)}
.picker-context{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:16px 0 24px;font-size:13px;color:var(--muted)}
.picker-context .textbtn{font-size:13px;padding:4px 0;min-height:36px;white-space:nowrap}
.picker-flow .pick-block{margin:24px 0}
.picker-flow .pick-block h3{font-size:18px;margin-bottom:12px}
.picker-flow .pickwish{padding:0;background:transparent;border:0;border-radius:0;margin:0}
.picker-flow .pickwish label{display:flex;justify-content:space-between;gap:12px;font-size:18px;font-weight:600;margin-bottom:12px;color:var(--ink)}
.picker-flow .pickwish label span{font-size:12px;font-weight:400;color:var(--muted);align-self:center}
.picker-flow .pickwish textarea{display:block;min-height:142px;padding:18px;border:1px solid var(--color-border-strong);border-radius:18px;background:var(--color-surface);font-size:17px;line-height:1.5;resize:vertical}
.picker-hint{color:var(--muted);font-size:13px;margin:10px 0 20px}
.picker-flow .chip{padding:9px 17px;min-height:40px;font-size:14px;border-radius:999px}
.picker-conditions{padding:14px 0;border-top:1px solid var(--line);font-size:14px;color:var(--muted)}
.picker-conditions summary{cursor:pointer;color:var(--ink);min-height:32px}
.picker-conditions ul{padding-left:20px;display:flex;flex-wrap:wrap;gap:8px 28px;line-height:1.5}
.picker-conditions .textbtn{font-size:14px}
.picker-submit{margin-top:20px;padding-bottom:16px}
.picker-flow .picker-submit .picksubmit{min-height:52px;margin:0;font-size:16px}
.picker-flow .search-draft-tools{margin:0 0 20px;padding:0;gap:20px;align-items:center}
.picker-flow .search-draft-tools p{font-size:13px}
.retained-wish{padding:16px 20px;border-left:3px solid var(--color-primary-border);background:var(--color-primary-soft);border-radius:0 14px 14px 0;margin-bottom:24px}
.retained-wish span{font-size:12px;color:var(--muted)}
.retained-wish p{font-size:15px;line-height:1.5;overflow-wrap:anywhere;margin:6px 0}
.retained-wish .textbtn{padding:5px 0;font-size:13px}
.taste-walkthrough{max-width:800px;margin:0 auto;scroll-margin-top:28px}
.taste-intro{font-size:15px;color:var(--muted);max-width:600px;line-height:1.5;margin:0 0 20px}
.taste-stages{display:flex;gap:8px;border-bottom:1px solid var(--line);padding:0 0 16px;margin-bottom:24px}
.taste-stages button{display:flex;align-items:center;gap:8px;min-height:42px;border:0;padding:8px 14px;border-radius:99px;background:transparent;color:var(--muted);font-size:14px}
.taste-stages button span{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--color-surface-subtle);font-size:12px}
.taste-stages button[aria-current="step"]{background:var(--color-primary-soft);color:var(--color-link);font-weight:600}
.taste-stages button[aria-current="step"] span{background:var(--color-primary);color:var(--color-on-primary)}
.taste-stage-content .preferencegroup{padding:0;margin:0 0 28px;border:0}
.taste-stage-content .preferencegroup h3{font-size:19px;margin:0 0 12px}
.taste-stage-content .small{font-size:13px;margin:8px 0 12px;line-height:1.5}
.taste-stage-content .chip{padding:8px 14px;min-height:38px;font-size:14px;border-radius:99px}
.taste-stage-content .chips{gap:8px}
.taste-stage-content .taste-note{margin-top:26px}
.taste-note .preflabel{font-size:16px;font-weight:600;margin-bottom:10px}
.taste-note .prefentry{gap:8px;align-items:stretch}
.taste-note .prefentry textarea{min-height:80px;padding:12px 16px;font-size:15px;border-radius:14px}
.taste-note .prefentry .btn{min-width:44px;width:44px;padding:8px;font-size:22px;border-radius:14px}
.taste-walkthrough .taste-saved{font-size:14px;padding:16px 0;border-top:1px solid var(--line)}
.taste-walkthrough .taste-saved summary{cursor:pointer}
.taste-step-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%}
.taste-step-actions>span{color:var(--muted);font-size:12px;white-space:nowrap}
.taste-step-actions>div{display:flex;align-items:center;gap:14px}
.taste-step-actions .btn{padding:10px 20px;min-height:44px;font-size:14px;border-radius:14px}
.taste-step-actions .textbtn{font-size:13px;padding:8px 0}
.onboard:has(.taste-walkthrough) .onboardfooter{max-width:800px;width:calc(100% - 40px);padding:14px 20px;background:var(--color-surface);border:1px solid var(--line);border-radius:20px;box-shadow:0 8px 32px rgb(var(--shadow-rgb)/.12)}
.onboard:has(.taste-walkthrough) .onheading{margin:20px auto;max-width:800px;text-align:left}
.onboard:has(.taste-walkthrough) .onheading h1{font-size:32px;margin:0}
.onboard:has(.taste-walkthrough){padding-bottom:120px}
.mobile-home .picker-flow .pickclose{display:none}
@media(max-width:700px){
 .picker-flow,.mobile-search-home.picker-flow{width:100%;padding:20px 0 24px}
 .picker-flow .heading{margin:0 0 20px}
 .picker-flow .heading h1{font-size:28px}
 .picker-flow .heading p{font-size:14px}
 .input-method{border-radius:16px}
 .input-method button{font-size:13px;padding:10px 8px;min-height:44px}
 .picker-context{margin:12px 0 20px;font-size:12px;gap:8px}
 .picker-context .textbtn{font-size:12px}
 .picker-flow .pickwish label{font-size:16px;flex-wrap:wrap;gap:4px}
 .picker-flow .pickwish textarea{font-size:16px;min-height:130px}
 .picker-flow .picker-submit .picksubmit{min-height:50px}
 .picker-flow .search-draft-tools{align-items:flex-start;gap:12px}
 .picker-flow .search-draft-tools .textbtn{font-size:13px;white-space:nowrap}
 .taste-stages{gap:3px;justify-content:space-between}
 .taste-stages button{padding:8px 9px;gap:5px;font-size:12px}
 .taste-stage-content .preferencegroup h3{font-size:17px}
 .taste-stage-content .chip{min-height:40px;font-size:13px;padding:8px 12px}
 .onboard:has(.taste-walkthrough) .onheading h1{font-size:28px}
 .onboard:has(.taste-walkthrough) .onboardfooter{padding:12px;bottom:calc(12px + env(safe-area-inset-bottom));width:calc(100% - 24px)}
 .taste-step-actions{gap:8px;flex-wrap:wrap}
 .taste-step-actions>span{flex-basis:100%;font-size:11px}
 .taste-step-actions>div{width:100%;justify-content:space-between}
 .taste-step-actions>div>.btn:only-child{width:100%}
}
@media(prefers-reduced-motion:reduce){.input-method button{transition:none}}
.taste-walkthrough.preferenceeditor{padding:0;border:0;background:transparent;border-radius:0}
.taste-step-actions .textbtn{width:auto;white-space:nowrap}
.taste-step-actions>div{flex-shrink:0}
.workspace:has(.picker-flow){padding-top:24px}
.picker-flow{padding-top:0}
.picker-flow .heading{margin-bottom:18px}
.picker-flow .picker-context{margin:10px 0 16px}
.picker-flow .pickwish textarea{min-height:112px}
.picker-flow .pick-block{margin-top:18px;margin-bottom:18px}
.picker-flow .pickwish{margin:0}
.picker-flow .picker-hint{margin-bottom:16px}
.picker-flow .picker-submit{margin-top:12px}
@media(max-width:700px){
 .workspace:has(.picker-flow){padding-top:12px}
 .mobile-search-home.picker-flow{padding-top:8px}
 .picker-flow .pickwish textarea{min-height:112px}
 .picker-flow .picker-context{margin:8px 0 14px}
}
@media(max-width:700px){
 .mobile-web:not(.onboarding-required) .onboard:has(.taste-walkthrough) .onboardfooter{bottom:calc(82px + env(safe-area-inset-bottom))}
 .mobile-web:not(.onboarding-required) .onboard:has(.taste-walkthrough){padding-bottom:190px}
}
.onboard:has(.taste-walkthrough) .onboardfooter{margin-left:auto;margin-right:auto}
.taste-editor .ontop{max-width:800px;margin:0 auto 12px}
.workspace:has(.taste-editor){padding-top:24px}
.taste-editor.onboard{padding-top:0}
.taste-editor .onboardfooter{bottom:16px}
@media(max-width:700px){.workspace:has(.taste-editor){padding-top:12px}.taste-editor .ontop{margin-bottom:8px}}

/* Compact poster captions: no empty second title line or watched action. */
.onboarding-unified .bubble>b{min-height:0;margin:3px 0 2px;line-height:1.2}
.onboarding-unified .bubble>small{margin:0;line-height:1.25}

.onboarding-more{display:flex;justify-content:center;margin:8px 0 24px}

/* Compact home: the posters lead, with the same one-tap reactions as onboarding. */
.home-launch{display:grid;grid-template-columns:1.1fr 1.2fr;gap:12px;padding:12px;background:var(--gradient-step-blue);border-radius:24px}
.home-launch .home-start-simple{margin:0;min-height:88px;padding:20px 24px;border:0;box-shadow:none;border-radius:16px}
.home-launch .home-start-simple strong{font-size:20px;line-height:1.2;max-width:280px;text-align:left}
.home-launch .home-start-arrow{width:36px;height:36px;font-size:24px;flex-shrink:0}
.home-launch .homeactions{margin:0;gap:8px}
.home-launch .homeactions button{flex-direction:column;min-height:88px;padding:12px 8px;gap:8px;background:var(--color-surface);border:0;border-radius:16px}
.home-launch .homeactions b{font-size:12px;line-height:1.2;text-align:center}
.home-launch .homeactions svg{width:21px;height:21px;color:var(--color-link)}
.homesection{margin-top:24px}
.homesection .sectiontop{margin-bottom:18px}
.homesection h2{font-size:24px;line-height:1.2}
.homesection .shake-recommendations{min-height:36px;font-size:12px}
.homeshelf.shelf{gap:16px;padding-top:4px;align-items:stretch}
.homeshelf.shelf .homecard-compact{flex:0 0 calc((100% - 80px)/6);min-width:164px;max-width:200px}
.homecard.homecard-compact{border:0;border-radius:14px;background:transparent;overflow:visible;box-shadow:none}
.homecard-compact .poster,.homeshelf.shelf .homecard-compact .poster{border-radius:14px;overflow:hidden;aspect-ratio:2/3}
.homecard-compact .home-reactions{width:100%;max-width:160px;margin:4px auto 2px;flex-shrink:0}
.homecard-compact .homecardbody{padding:4px 0 0;gap:4px}
.homecard-compact h3{font-size:14px;line-height:1.2;min-height:2.4em;margin:0;letter-spacing:-.15px}
.homecard-compact h3 button{line-height:inherit}
.homecard-compact p{font-size:11px;line-height:1.2;margin:0}
.homecard-compact .homecardratings{display:block;min-height:0;margin:0 0 4px;font-size:11px;line-height:1.2}
.homecard-compact .rating-value{margin:0}
.homecard-tools{display:flex;align-items:center;gap:6px;margin-top:auto}
.homecard-tools button{min-height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;gap:5px;color:var(--color-link);font-size:12px;padding:6px 10px;transition:background .15s,color .15s}
.homecard-tools .homecard-save{flex:1;background:var(--color-primary-soft)}
.homecard-save>span{font-size:18px;line-height:1}
.homecard-tools .homecard-hide{width:34px;flex-shrink:0;padding:7px;color:var(--color-muted)}
.homecard-hide svg{width:20px;height:20px}
.homecard-hide[data-tooltip]:after{right:0;left:auto;transform:none}
@media(hover:hover){.home-reactions button:not(.on):hover,.homecard-tools button:hover{background:var(--color-blue-mist);color:var(--color-link)}}
.homeshelf.shelf .shelf-pick-card{min-height:0;background:var(--gradient-step-lilac);border:0;border-radius:16px;flex-basis:180px;gap:12px;padding:20px}
.homeshelf .shelf-pick-title{font-size:20px;line-height:1.2}
.homeshelf .shelf-pick-copy{font-size:12px;line-height:1.35}
@media(max-width:1000px){.home-launch{grid-template-columns:1fr}.home-launch .home-start-simple{min-height:68px}.home-launch .home-start-simple strong{max-width:none}.home-launch .homeactions button{min-height:64px;flex-direction:row}.homeshelf.shelf .homecard-compact{flex-basis:164px}}
@media(max-width:600px){.homesection h2{font-size:22px}.homecard-compact .homecardbody{padding:4px 0 0}.homecard-compact h3{font-size:14px;line-height:1.2}.homecard-tools button{min-height:36px}.homecard-tools .homecard-hide{width:36px}.home-launch .homeactions button{flex-direction:column}.home-launch .home-start-simple strong{font-size:18px}}
@media(prefers-reduced-motion:reduce){.homecard-tools button{transition:none}}

.workspace:has(>.home-launch){padding-top:24px}
.home-launch .home-start-arrow{background:var(--color-on-primary);color:var(--color-primary)}

@media(max-width:600px){.homesection .shelfcontrols{gap:8px;flex-wrap:nowrap}.homesection .shelf-arrow{width:36px;height:36px;min-height:36px}.homesection .shelf-arrows{gap:6px}.homesection .shake-recommendations{padding:8px 12px}.mobile-web .heading{margin-bottom:20px}}

/* Direct home search: an organic blue surface, with stable text and controls. */
.home-launch:has(.home-composer){grid-template-columns:minmax(0,1fr);padding:0;gap:20px;background:transparent;align-items:stretch;isolation:isolate}
.home-composer{position:relative;isolation:isolate;min-width:0;padding:30px 26px;background:transparent;color:var(--color-on-brand)}
.home-composer:before,.home-composer:after{content:"";position:absolute;pointer-events:none;transform-origin:50% 50%;border-radius:18% 11% 23% 9% / 32% 42% 27% 44%}
.home-composer:before{inset:-4px 0;z-index:-2;background:var(--gradient-search-halo);filter:blur(22px);opacity:.52;animation:search-aura-drift 28s ease-in-out infinite;transition:opacity .4s}
.home-composer:after{inset:0;z-index:-1;background:var(--gradient-search-surface);box-shadow:inset 0 1px 0 rgb(100 199 244 / .16);animation:search-shape-drift 22s ease-in-out infinite}
.home-composer:focus-within:before{opacity:.68}
.home-composer:focus-within:before,.home-composer:focus-within:after{animation-play-state:paused}
@keyframes search-shape-drift{0%,100%{transform:rotate(-.6deg) scale(1);border-radius:18% 11% 23% 9% / 32% 42% 27% 44%}50%{transform:rotate(.7deg) scale(1.01,.98);border-radius:10% 23% 12% 21% / 43% 28% 40% 29%}}
@keyframes search-aura-drift{0%,100%{transform:translate(-4px,2px) rotate(-2deg) scale(.98,1.02)}50%{transform:translate(5px,-3px) rotate(2deg) scale(1.025,.98)}}
.home-composer-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.home-composer label{font-size:18px;font-weight:600;line-height:1.2;letter-spacing:-.25px}
.home-parameters{padding:4px 0;color:var(--color-on-brand);font-size:12px;line-height:1.3;white-space:nowrap;text-underline-offset:3px}
.home-parameters:hover{text-decoration:underline}
.home-composer-row{display:flex;gap:8px;align-items:stretch;background:var(--color-surface);border-radius:12px;padding:4px}
.home-composer input{min-width:0;flex:1;border:0;border-radius:8px;padding:10px 12px;background:transparent;box-shadow:none;font-size:14px;line-height:1.3;min-height:44px}
.home-composer input:focus{outline:1px solid var(--color-focus);outline-offset:-2px}
.home-composer .home-submit{display:flex;align-items:center;justify-content:center;gap:10px;flex-shrink:0;min-height:44px;padding:10px 16px;border-radius:9px;background:var(--gradient-step-blue);color:var(--color-ink);box-shadow:inset 0 0 0 1px var(--color-border);font-size:14px;font-weight:600;transition:background .18s,transform .18s}
.home-composer .home-submit:hover{background:var(--color-blue-mist)}
.home-composer .home-submit:active{transform:scale(.98)}
.home-composer .home-submit:disabled{background:var(--color-disabled-bg);color:var(--color-disabled-ink);transform:none;cursor:wait}
.home-composer .home-parameters:focus-visible{outline-color:var(--color-on-brand)}
.home-launch:has(.home-composer) .homeactions button{background:var(--color-surface-subtle);border-radius:20px}
@media(max-width:1050px){.home-launch:has(.home-composer){grid-template-columns:1fr;gap:12px}.home-launch:has(.home-composer) .homeactions button{min-height:60px;flex-direction:row}}
@media(max-width:600px){.home-composer{padding:26px 16px}.home-composer-top{align-items:flex-start;gap:8px}.home-composer label{font-size:17px}.home-composer-row{flex-wrap:wrap;padding:6px}.home-composer input{flex-basis:100%;font-size:16px}.home-composer .home-submit{width:100%}.home-launch:has(.home-composer) .homeactions button{flex-direction:column}.home-composer:before{filter:blur(12px)}}
@media(prefers-reduced-motion:reduce){.home-composer:before,.home-composer:after{animation:none;transform:none}.home-composer:before,.home-composer .home-submit{transition:none}}

/* Night surfaces: no large luminous panels; accent is reserved for actions. */
.appheader{background:var(--color-canvas);border-bottom-color:var(--color-border)}
.brand{color:var(--color-ink)}
.nav button.active{color:var(--color-link)}
:where(input,textarea,select){background:var(--color-surface);border-color:var(--color-border);color:var(--color-ink)}
:where(input,textarea,select):hover{border-color:var(--color-border-strong)}
.chip,.pill{background:var(--color-surface);border-color:var(--color-border);color:var(--color-muted)}
.chip.on{background:var(--color-primary-soft);border-color:var(--color-primary-border);color:var(--color-link)}
.onboarding-flow .onfilters .chip.on{background:var(--color-primary-soft);color:var(--color-link);border-color:var(--color-primary-border)}
.btn.secondary{background:var(--color-surface-subtle);color:var(--color-ink)}
.btn.secondary:hover{background:var(--color-surface-raised)}
.btn.ghost{background:transparent;color:var(--color-muted);border-color:var(--color-border-strong)}
.home-composer-row{background:var(--color-canvas)}
.home-composer input{background:transparent}
.home-launch:has(.home-composer) .homeactions button{background:var(--color-surface)}
.home-launch:has(.home-composer) .homeactions button:hover{background:var(--color-surface-subtle)}
.homecard-tools .homecard-save{background:var(--color-surface-subtle);color:var(--color-ink)}
.homecard-tools .homecard-save:hover{background:var(--color-primary-soft);color:var(--color-link)}
.homecard-compact .poster{box-shadow:0 0 0 1px var(--color-border)}
.onboarding-unified .onboardfooter,.onboard:has(.taste-walkthrough) .onboardfooter{background:var(--color-glass);border:1px solid var(--color-border);box-shadow:var(--shadow-float)}
.onboarding-footer-bottom>span{color:var(--color-muted)}
.onboarding-unified .onboardfooter .onboarding-footer-bottom>.btn:not(.danger){background:var(--color-primary);color:var(--color-on-primary)}
.themesection .themetile{--mood-accent:var(--color-coral);--mood-tint:var(--color-peach);--mood-border:var(--color-border)}
.shelf-feedback,.content-feedback,.cinema-fact{background:var(--color-surface);border-color:var(--color-border)}
body.guest .landingintro h1{color:var(--color-ink)}
body.guest .landingintro h1 span{color:var(--color-link)}
body.guest .landingeyebrow{color:var(--color-muted)}
body.guest .landingdemo{border-color:var(--color-border-strong);box-shadow:0 0 50px -30px var(--color-coral),var(--shadow-soft)}
body.guest .landingresult{background:var(--color-canvas);border:1px solid var(--color-border)}
body.guest .landingmoods button.on{background:var(--color-primary-soft);color:var(--color-link);border-color:var(--color-primary-border)}
body.guest .featurestep,body.guest .landingfeatures>div:nth-child(2) .featurestep,body.guest .landingfeatures>div:nth-child(3) .featurestep{background:var(--color-primary-soft);color:var(--color-link)}
body.guest .landingbottom{background:var(--gradient-step-lilac);border-color:var(--color-border)}
body.guest .landingbottom p{color:var(--color-ink)}
body.guest .landingbottom button{background:var(--color-primary);color:var(--color-on-primary)}
body.guest .landingbottom button:hover{background:var(--color-primary-hover)}
body.guest #accountButton{background:var(--color-surface);border-color:var(--color-border);color:var(--color-ink)}
body.guest button:focus-visible{outline-color:var(--color-focus)}
.home-parameters{color:var(--color-muted)}
.home-parameters:hover{color:var(--color-ink)}
.credits-page{max-width:720px;margin:48px auto;padding:24px;line-height:1.6}
.credits-page h1{margin:24px 0}.credits-page p{margin:16px 0}.credits-page a{color:var(--color-link)}
@media(prefers-reduced-motion:reduce){.home-composer:before{transition:none}}

.input-method button[aria-pressed="true"]{background:var(--color-primary-soft);color:var(--color-link);box-shadow:inset 0 0 0 1px var(--color-primary-border)}

/* Orange is a small highlight; primary actions remain cyan. */
.onboarding-reactions button:is([data-value="3"],[data-tooltip*="суперлайк"]) svg>path:last-child{fill:var(--color-coral)}
.onboarding-reactions button:is([data-value="3"],[data-tooltip*="суперлайк"]):is(.on,[aria-pressed="true"]){background:var(--color-coral);color:var(--color-canvas)}
.onboarding-reactions button:is([data-value="3"],[data-tooltip*="суперлайк"]):is(.on,[aria-pressed="true"]) svg>path:last-child{fill:currentColor}
@media(hover:hover){.onboarding-reactions button:is([data-value="3"],[data-tooltip*="суперлайк"]):not(.on):not([aria-pressed="true"]):hover{background:var(--color-peach);color:var(--color-coral)}}
body.guest .landingfeatures>div:first-child .featurestep{background:var(--color-peach);color:var(--color-coral)}
.home-launch:has(.home-composer) .homeactions button:first-child svg{color:var(--color-coral)}

/* Rating feedback stays local: no page entrance replay or scroll-snap jump. */
.homeshelf.reaction-transition{scroll-snap-type:none;overflow-anchor:none;scroll-behavior:auto}
.homeshelf.reaction-transition [data-action="home-rate"]{pointer-events:none}
.homeshelf.reaction-transition [data-tooltip]:after{display:none}

/* Home wave: compact inspiration rail + a spacious, living search surface. */
.home-launch.home-wave:has(.home-composer){grid-template-columns:minmax(230px,.8fr) minmax(0,2fr);gap:48px;align-items:center;margin-bottom:38px;min-height:510px}
.home-inspiration{min-width:0;padding:18px 0}
.home-inspiration-heading{margin:0 0 22px 10px}
.home-wave-eyebrow{color:var(--color-muted);font-size:12px;line-height:1.4;letter-spacing:.07em;margin:0 0 8px}
.home-inspiration h2{font-size:24px;line-height:1.15;letter-spacing:-.7px;margin:0}
.home-inspiration-list{display:flex;flex-direction:column;gap:10px}
.home-inspiration-item{display:flex;align-items:center;gap:16px;width:100%;padding:8px 10px;text-align:left;background:transparent;color:var(--color-ink);border:0;border-radius:16px;transition:background .2s,transform .2s}
.home-inspiration-item:hover{background:var(--color-surface);transform:translateX(4px)}
.home-inspiration-item:focus-visible{outline:1px solid var(--color-focus);outline-offset:1px}
.home-inspiration-art{display:block;position:relative;flex:0 0 58px;height:74px;border-radius:12px;overflow:hidden;background:var(--color-surface-raised)}
.home-inspiration-art img{display:block;width:100%;height:100%;object-fit:cover}
.home-inspiration-art svg{width:100%;height:100%}
.home-inspiration-copy{min-width:0;flex:1;display:flex;flex-direction:column;gap:5px}
.home-inspiration-copy small{font-size:11px;line-height:1.35;color:var(--color-muted)}
.home-inspiration-copy strong{font-size:16px;line-height:1.25;font-weight:600}
.home-inspiration-arrow{font-size:19px;color:var(--color-link);opacity:0;transform:translate(-3px,3px);transition:opacity .2s,transform .2s}
.home-inspiration-item:hover .home-inspiration-arrow,.home-inspiration-item:focus-visible .home-inspiration-arrow{opacity:1;transform:none}
.home-wave .home-composer-wave{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:500px;padding:50px 20px 42px;gap:42px;text-align:center}
.home-composer-wave:before{inset:4% 4%;border-radius:43% 57% 65% 35% / 39% 34% 66% 61%;background:radial-gradient(ellipse at 30% 35%,var(--color-primary),transparent 63%),radial-gradient(ellipse at 76% 70%,var(--color-coral),transparent 59%);filter:blur(38px);opacity:.42}
.home-composer-wave:after{inset:8% 13%;border-radius:32% 68% 51% 49% / 66% 37% 63% 34%;background:radial-gradient(ellipse at 32% 38%,var(--color-primary),transparent 76%),radial-gradient(ellipse at 77% 65%,var(--color-coral),transparent 58%);filter:blur(22px);box-shadow:none;opacity:.48}
.home-composer-wave:focus-within:before{opacity:.5}
.home-wave-heading{max-width:600px}
.home-composer-wave .home-wave-eyebrow{color:var(--color-ink);margin-bottom:18px}
.home-composer-wave label{display:block;font-size:clamp(38px,4.7vw,70px);font-weight:750;letter-spacing:-.055em;line-height:1.02;text-shadow:0 2px 25px var(--color-canvas)}
.home-wave-help{max-width:370px;margin:20px auto 0;font-size:15px;line-height:1.5;color:var(--color-ink)}
.home-wave-controls{width:100%;max-width:620px}
.home-composer-wave .home-composer-row{padding:6px;border-radius:18px;background:var(--color-canvas);box-shadow:0 8px 32px rgb(0 0 0 / .15);text-align:left}
.home-composer-wave input{min-height:50px;font-size:15px}
.home-composer-wave .home-submit{border-radius:13px;min-height:50px;padding:12px 18px;font-size:15px}
.home-composer-wave .home-parameters{display:inline-flex;align-items:center;justify-content:center;gap:8px;margin-top:16px;min-height:40px;padding:8px 12px;color:var(--color-ink);font-size:13px;background:transparent}
@media(min-width:1600px){.home-launch.home-wave:has(.home-composer){min-height:570px}.home-wave .home-composer-wave{min-height:560px}}
@media(max-width:1000px) and (min-width:701px){.home-launch.home-wave:has(.home-composer){grid-template-columns:230px minmax(0,1fr);gap:16px}.home-wave .home-composer-wave{padding:34px 10px}.home-composer-wave .home-composer-row{flex-wrap:wrap}.home-composer-wave input{flex-basis:100%}.home-composer-wave .home-submit{width:100%}}
@media(max-width:700px){.home-launch.home-wave:has(.home-composer){display:flex;flex-direction:column;gap:16px;min-height:0;margin-bottom:24px}.home-wave .home-composer-wave{order:-1;min-height:390px;width:100%;padding:36px 8px 18px;gap:28px}.home-composer-wave label{font-size:43px}.home-wave-help{font-size:14px;max-width:290px}.home-composer-wave input{font-size:16px}.home-composer-wave:before{filter:blur(22px);inset:8% 0}.home-composer-wave:after{filter:blur(16px);inset:12% 4%}.home-inspiration{width:100%;padding:0}.home-inspiration-heading{margin:0 0 12px 8px}.home-inspiration h2{font-size:21px}.home-inspiration-list{gap:2px}.home-inspiration-item{gap:14px;padding:8px}.home-inspiration-art{flex-basis:48px;height:62px}.home-inspiration-arrow{opacity:1;transform:none}.home-inspiration-copy strong{font-size:15px}}
@media(prefers-reduced-motion:reduce){.home-inspiration-item,.home-inspiration-arrow{transition:none}.home-inspiration-item:hover{transform:none}.home-composer-wave:before,.home-composer-wave:after{animation:none}}
.home-wave .home-composer-wave{grid-area:query}.home-wave .home-inspiration{grid-area:ideas}
.home-launch.home-wave:has(.home-composer){grid-template-areas:"ideas query"}
.home-wave-heading h1{margin:0}
.home-composer-wave:before{animation:home-wave-halo 22s linear -3s infinite;will-change:transform;transform-origin:50% 50%}
.home-composer-wave:after{animation:home-wave-core 16s linear -2s infinite;will-change:transform;transform-origin:50% 50%}
@keyframes home-wave-halo{
 from{transform:rotate(0deg) scale(1.04)}
 to{transform:rotate(360deg) scale(1.04)}
}
@keyframes home-wave-core{
 from{transform:rotate(0deg) scale(.96)}
 to{transform:rotate(-360deg) scale(.96)}
}
.home-composer-wave:focus-within:before,.home-composer-wave:focus-within:after{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.home-composer-wave:before,.home-composer-wave:after{animation:none;transform:none;will-change:auto}}

/* Recommendation wait: status, timing, quiet editorial aside and clear exit. */
#backendTask[open]{background:var(--color-canvas);padding:32px 24px}
#backendTask .cinema-loader-center{width:min(100%,460px);display:flex;flex-direction:column;align-items:center;gap:0}
#backendTask .cinema-loader-copy{width:100%}
#backendTask h2{font-size:clamp(26px,4vw,36px);line-height:1.2;letter-spacing:-.035em;margin:0 0 12px;font-weight:650}
#backendTask .cinema-loader-stage{font-size:15px;line-height:1.6;min-height:24px;max-width:360px;margin:0 auto;color:var(--color-muted)}
#backendTask .cinema-loader-timing{font-size:12px;line-height:1.5;color:var(--color-muted);font-variant-numeric:tabular-nums;margin:20px 0 0}
#backendTask .cinema-loader-track{width:96px;height:2px;margin:16px auto 36px}
#backendTask .cinema-loader-insight{width:100%;padding:20px 0 0;border-top:1px solid var(--color-border);text-align:left}
#backendTask .cinema-insight-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--color-muted);font-size:12px}
#backendTask .cinema-insight-heading .textbtn{font-size:12px;min-height:44px;padding:8px 0 8px 12px;color:var(--color-link);white-space:nowrap}
#backendTask .cinema-insight-text{font-size:15px;line-height:1.65;color:var(--color-ink);margin:8px 0 0;min-height:100px;text-wrap:pretty}
#backendTask .cinema-loader-exit{margin-top:32px}
#backendTask .cinema-loader-exit .btn{min-height:44px;padding:12px 20px;font-size:14px}
#backendTask .cinema-loader-exit p{font-size:12px;line-height:1.6;margin:12px 0 0;color:var(--color-muted)}
@media(max-width:600px){#backendTask[open]{padding:24px}#backendTask .cinema-loader-center{gap:0}#backendTask .cinema-insight-text{min-height:150px}}
@media(max-height:650px){#backendTask .cinema-loader-track{margin-bottom:20px}#backendTask .cinema-loader-exit{margin-top:20px}}

/* Keep the background-search explanation attached to its action. */
#backendTask .cinema-loader-exit{width:100%;margin-top:28px}
#backendTask .cinema-loader-exit .cinema-exit-action{display:flex;align-items:center;gap:16px;width:100%;padding:16px 20px;text-align:left;white-space:normal;border-radius:12px}
#backendTask .cinema-exit-arrow{font-size:20px;font-weight:400;color:var(--color-muted);flex:none}
#backendTask .cinema-exit-copy{display:flex;flex-direction:column;gap:4px;min-width:0;font-size:14px;line-height:1.4}
#backendTask .cinema-exit-copy small{font-size:12px;line-height:1.5;font-weight:400;color:var(--color-muted)}

/* Text action: underline keyboard focus instead of a rectangular ring. */
#backendTask [data-fact-next]{outline:none;box-shadow:none;border:0;background:transparent}
#backendTask [data-fact-next]:focus-visible{outline:none;box-shadow:none;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px}
#backendTask [data-fact-next]:hover{text-decoration:underline;text-underline-offset:5px}
@media(forced-colors:active){#backendTask [data-fact-next]:focus-visible{outline:1px solid Highlight;outline-offset:1px}}

/* Matching navigation above and below recommendations, with direct page access. */
.rec-pagination{gap:20px;overflow-anchor:none}
.rec-pagination[data-pagination="top"]{border-top:0;padding:12px 0 20px}
.rec-page-picker{display:flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap;font-size:13px;color:var(--color-muted)}
.rec-page-picker select{width:auto;min-width:64px;min-height:44px;padding:8px 24px 8px 12px;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-ink);font:inherit;font-variant-numeric:tabular-nums;cursor:pointer}
.rec-pagination .btn{min-height:44px;white-space:nowrap}
@media(max-width:600px){.rec-pagination{gap:8px;justify-content:space-between}.rec-pagination .btn{padding:10px;font-size:12px}.rec-page-picker{gap:6px}.rec-page-picker select{min-width:56px;padding-left:8px}.rec-page-picker span{font-size:12px}}

/* Poster states: an unobtrusive film frame, shimmer only while loading. */
.poster-media{position:relative;display:block;width:100%;height:100%;overflow:hidden;isolation:isolate;background:var(--color-surface-subtle);border-radius:inherit}
.poster-media .poster-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:12px;overflow:hidden;background:linear-gradient(145deg,var(--color-surface),var(--color-primary-soft));color:var(--color-muted)}
.poster-placeholder svg{width:36px;height:44px;opacity:.65;flex-shrink:0}
.poster-wait-copy{font-size:11px;font-weight:400;line-height:1.4;letter-spacing:.015em;text-align:center}
.poster-media[data-poster-state="loading"] .poster-placeholder:after{content:"";position:absolute;inset:0;transform:translateX(-110%);background:linear-gradient(105deg,transparent 25%,rgb(100 199 244 / .1) 50%,transparent 75%);animation:poster-shimmer 2.4s ease-in-out infinite}
.poster-media>img{position:relative;display:block;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .24s ease}
.poster-media[data-poster-state="ready"]>img{opacity:1}
.poster-media[data-poster-state="ready"] .poster-placeholder{visibility:hidden}
.poster-media[data-poster-state="error"]>img{visibility:hidden}
.ratingthumb .poster-wait-copy,.catalog-match .poster-wait-copy,.listcover .poster-wait-copy{display:none}
.ratingthumb .poster-placeholder svg,.catalog-match .poster-placeholder svg,.listcover .poster-placeholder svg{width:22px;height:28px}
@keyframes poster-shimmer{0%{transform:translateX(-110%)}75%,100%{transform:translateX(110%)}}
@media(prefers-reduced-motion:reduce){.poster-media>img{transition:none}.poster-media[data-poster-state="loading"] .poster-placeholder:after{animation:none;transform:none;opacity:.3}}

/* Compact shelf captions: one title line and one metadata row. */
.homecard-compact .homecardbody{display:grid;grid-template-columns:max-content minmax(0,1fr);grid-template-rows:auto auto;align-content:start;align-items:center;gap:5px 8px}
.homecard-compact .homecardbody h3{grid-column:1/-1;min-width:0;min-height:0;line-height:1.3}
.homecard-compact h3 button{display:block;width:100%;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:unset;text-align:left}
.homecard-compact .homecardbody>p{white-space:nowrap}
.homecard-compact .homecardratings{min-width:0;margin:0;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.homecard-compact .homecard-tools{grid-column:1/-1;margin-top:3px}
.homecard-compact .card-metadata-status{grid-column:1/-1}

/* Keep moving glow inside the viewport without creating a scroll container. */
/* Let hero light dissolve beyond the content column; clip only at the viewport. */
.home-wave{overflow:visible}
body:has(.home-wave){overflow-x:clip}

/* Personal shelves: title, artwork, compact facts and direct reactions. */
.homecard-compact .homecard-title{flex:none;min-height:0;margin:0 0 14px;font-size:14px;line-height:1.3}
.homecard-compact .homecard-title button{padding:0;line-height:inherit}
.homecard-compact .homecardbody{flex:none;padding:9px 0 0;grid-template-rows:auto;gap:4px 8px}
.homecard-compact .home-reactions{max-width:none;margin:5px 0 0;justify-content:space-between}

/* A fifth, equally quiet action opens list selection. */
.homecard-compact .home-reactions{grid-template-columns:repeat(5,minmax(0,1fr))}
.home-reactions .home-bookmark.is-saved{color:var(--color-link)}
.home-reactions .home-bookmark.is-saved svg{fill:var(--color-primary-soft)}

/* Readable facts on the artwork; the overlay keeps the poster clickable. */
.homecard-art{position:relative;flex:none;border-radius:14px}
.homecard-compact .homecard-art .poster{display:block;width:100%;margin:0}
.homecard-compact .homecard-art .homecardbody{position:absolute;inset:auto 0 0;z-index:1;padding:52px 10px 12px;border-radius:0 0 14px 14px;background:linear-gradient(to bottom,transparent 0%,color-mix(in srgb,var(--color-canvas) 68%,transparent) 48%,color-mix(in srgb,var(--color-canvas) 94%,transparent) 82%,var(--color-canvas) 100%);pointer-events:none}
.homecard-compact .homecard-art .homecardbody>p,.homecard-compact .homecard-art .homecardratings{color:var(--color-ink);text-shadow:0 1px 3px rgb(var(--shadow-rgb) / .6)}
.homecard-art .card-metadata-status{pointer-events:auto}

/* Radar reuses the personal card, with its own horizontal rail sizing. */
.radar-shelf .radar-card.homecard-compact{flex:0 0 168px;min-width:0}
.radar-card.homecard-compact .poster{height:auto;aspect-ratio:2/3}
@media(max-width:600px){.radar-shelf .radar-card.homecard-compact{flex-basis:156px}}

/* Body-level reaction hints escape the rail's overflow and card stacking contexts. */
.reaction-hints-ready [data-tooltip]:after{display:none}
.reaction-hint{position:fixed;z-index:10000;width:max-content;max-width:calc(100vw - 16px);box-sizing:border-box;padding:7px 10px;border-radius:7px;background:var(--color-inverse);color:var(--color-on-inverse);font-size:12px;line-height:1.4;font-weight:400;box-shadow:var(--shadow-soft);pointer-events:none}

/* One action group; wrapping follows available width instead of action category. */
.film-modal .detail-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:8px;margin:0}
.film-modal .detail-actions .btn,.film-modal .detail-actions .textbtn{min-height:46px;margin:0;white-space:nowrap}
@media(max-width:600px){.film-modal .detail-actions .btn,.film-modal .detail-actions .textbtn{white-space:normal;max-width:100%}}

/* Trailer belongs with the poster, including its compact mobile column. */
.film-modal .detailposter #detailTrailer{margin-top:14px;padding:0;border:0}
.film-modal .detailposter .detail-trailer-link{display:flex;width:100%;gap:8px;padding:9px 8px;box-sizing:border-box}
.film-modal .detailposter .detail-play{flex-basis:26px;height:28px}
.film-modal .detailposter .detail-trailer-link>span:last-child{min-width:0}
.film-modal .detailposter .detail-trailer-link b{font-size:12px;line-height:1.4}
@media(max-width:600px){.film-modal .detailposter .detail-trailer-link{flex-direction:column;gap:5px;text-align:center;padding:8px 5px}.film-modal .detailposter .detail-play{flex-basis:auto;width:26px}.film-modal .detailposter .detail-trailer-link b{font-size:11px}.film-modal .detailposter .detail-trailer-link small{font-size:10px}}

/* Direct page buttons stay in one compact row on every viewport. */
.rec-pagination{gap:10px;justify-content:center}
.rec-page-numbers{display:flex;align-items:center;gap:4px;min-width:0;overflow-x:auto;scrollbar-width:thin}
.rec-page-number{flex:none;min-width:36px;height:44px;padding:0 9px;border-radius:10px;color:var(--color-muted);font-variant-numeric:tabular-nums}
.rec-page-number:hover{background:var(--color-surface-raised);color:var(--color-ink)}
.rec-page-number[aria-current="page"]{background:var(--color-primary);color:var(--color-on-primary);font-weight:600}
.rec-page-gap{padding:0 2px;color:var(--color-muted)}
.rec-pagination .rec-page-arrow{flex:none;min-width:44px;padding:8px;font-size:18px}
@media(max-width:600px){.rec-pagination{gap:4px}.rec-page-number{min-width:32px;padding:0 7px}.rec-page-numbers{gap:2px}.rec-page-gap{padding:0}}

/* Results give cover art room while keeping the reading column compact. */
.compact-results .compact-rec{grid-template-columns:116px minmax(0,1fr);gap:24px;padding:22px 0}
.compact-results .compact-rec>.poster{width:116px;height:174px;border-radius:12px}
.compact-results .compact-rec-body h2{font-size:20px;margin-bottom:7px}
.compact-results .compact-rec-body h2 button{padding:0}
.compact-results .compact-rec-actions{margin-top:16px;gap:8px}
@media(max-width:600px){
 .compact-results .compact-rec{grid-template-columns:88px minmax(0,1fr);gap:10px 16px;padding:20px 0}
 .compact-results .compact-rec>.poster{grid-column:1;grid-row:1/3;width:88px;height:132px}
 .compact-results .compact-rec-body{display:contents}
 .compact-results .compact-rec-body h2{grid-column:2;grid-row:1;font-size:18px;margin:0;align-self:end}
 .compact-results .compact-rec-meta{grid-column:2;grid-row:2;margin:0;align-self:start;line-height:1.6}
 .compact-results .compact-rec-reason{grid-column:1/-1;margin:3px 0 0}
 .compact-results .compact-rec-actions{grid-column:1/-1;margin:2px 0 0;gap:6px}
}

/* On phones the trailer joins the title, instead of extending the poster column. */
@media(max-width:600px){
 .film-modal .detailintro #detailTrailer{margin-top:10px;padding:0;border:0}
 .film-modal .detailintro .detail-trailer-link{display:inline-flex;max-width:100%;min-height:44px;gap:7px;padding:5px 9px;text-align:left}
 .film-modal .detailintro .detail-play{width:20px;flex-basis:20px;height:24px;background:transparent;font-size:11px}
 .film-modal .detailintro .detail-trailer-link b{font-size:12px;line-height:1.3}
 .film-modal .detailintro .trailer-verb{display:none}
 .film-modal .detailintro .trailer-name{text-transform:capitalize}
 .film-modal .detailintro .detail-trailer-link small{font-size:10px;line-height:1.3;margin-top:2px}
}

/* Brighter, counter-rotating colour currents for the full-screen search wait. */
#backendTask .cinema-loader-glow{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:0;--loader-glow-size:min(850px,145vw)}
#backendTask .cinema-loader-glow:before,#backendTask .cinema-loader-glow:after{content:"";position:absolute;left:calc(50% - var(--loader-glow-size)/2);top:calc(43% - var(--loader-glow-size)/2);width:var(--loader-glow-size);height:var(--loader-glow-size);border-radius:50%;filter:blur(30px);will-change:transform;transform-origin:50% 50%}
#backendTask .cinema-loader-glow:before{background:radial-gradient(ellipse at 22% 32%,var(--color-primary),transparent 48%),radial-gradient(ellipse at 78% 68%,var(--color-coral),transparent 48%);opacity:.58;animation:search-colour-orbit 12s linear -3s infinite}
#backendTask .cinema-loader-glow:after{background:radial-gradient(ellipse at 74% 24%,var(--color-primary),transparent 42%),radial-gradient(ellipse at 28% 76%,var(--color-coral),transparent 44%);opacity:.4;animation:search-colour-counter 9s linear -2s infinite}
@keyframes search-colour-orbit{0%{transform:translate(-6%,-3%) rotate(0deg) scale(.94)}25%{transform:translate(5%,-7%) rotate(90deg) scale(1.08)}50%{transform:translate(7%,4%) rotate(180deg) scale(.98)}75%{transform:translate(-4%,7%) rotate(270deg) scale(1.12)}100%{transform:translate(-6%,-3%) rotate(360deg) scale(.94)}}
@keyframes search-colour-counter{0%{transform:translate(7%,4%) rotate(0deg) scale(1.06)}25%{transform:translate(-5%,6%) rotate(-90deg) scale(.9)}50%{transform:translate(-7%,-5%) rotate(-180deg) scale(1.12)}75%{transform:translate(4%,-6%) rotate(-270deg) scale(.96)}100%{transform:translate(7%,4%) rotate(-360deg) scale(1.06)}}
#backendTask .cinema-loader-center{position:relative;z-index:1}
@media(prefers-reduced-motion:reduce){#backendTask .cinema-loader-glow:before,#backendTask .cinema-loader-glow:after{animation:none;will-change:auto}}

/* Swipeable mood prompts beside the natural-language search. */
.home-mood-suggestions{margin-top:24px;text-align:left;min-width:0}
.home-mood-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:4px}
.home-mood-heading h2{font-size:14px;font-weight:500;letter-spacing:0;margin:0;color:var(--color-muted)}
.home-mood-arrows{display:flex;gap:6px}
.home-mood-arrows button{display:grid;place-items:center;width:32px;height:32px;padding:0;border-radius:50%;background:var(--color-surface-subtle);color:var(--color-ink);font-size:18px}
.home-mood-rail{display:flex;gap:12px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:4px;padding:10px 4px 8px;scrollbar-width:thin;scrollbar-color:var(--color-border) transparent}
.home-mood{--mood-accent:var(--color-primary);position:relative;isolation:isolate;background:transparent;flex:0 0 164px;height:188px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:0 12px;border:0;border-radius:16px;scroll-snap-align:start;color:var(--color-ink);text-align:center;transition:transform .22s}
.home-mood.peach{--mood-accent:var(--color-coral)}
.home-mood.sage{--mood-accent:var(--color-success)}
.home-mood-orb{position:absolute;z-index:-1;top:29px;left:0;width:100%;aspect-ratio:1;border-radius:50%;background:radial-gradient(ellipse at 34% 5%,color-mix(in srgb,var(--mood-accent) 78%,var(--color-surface)),color-mix(in srgb,var(--mood-accent) 32%,var(--color-canvas)) 48%,var(--color-canvas) 88%);mask-image:linear-gradient(#000 52%,transparent 100%)}
.home-mood-cover{width:64px;height:64px;flex-shrink:0;border-radius:50%;object-fit:cover;object-position:50% 24%;border:2px solid color-mix(in srgb,var(--mood-accent) 65%,var(--color-border));box-shadow:0 5px 16px color-mix(in srgb,var(--color-canvas) 60%,transparent);transition:transform .22s}
.home-mood-copy{display:flex;flex-direction:column;gap:5px;margin-top:12px;max-width:100%}
.home-mood-copy small{font-size:11px;line-height:1.3;color:var(--color-ink);opacity:.8}
.home-mood-copy strong{font-size:16px;line-height:1.2;font-weight:600;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.home-mood[aria-pressed="true"] .home-mood-cover{outline:2px solid var(--color-ink);outline-offset:3px}
@media(hover:hover){.home-mood:hover{transform:translateY(-3px)}.home-mood:hover .home-mood-cover{transform:scale(1.07)}}
@media(max-width:700px){.home-wave .home-inspiration{display:none}.home-mood{flex-basis:148px;height:178px}.home-mood-rail{gap:8px}.home-mood-suggestions{margin-top:20px}.home-mood-arrows{display:none}.home-mood-heading{margin-bottom:12px}}
@media(prefers-reduced-motion:reduce){.home-mood,.home-mood-cover{transition:none}.home-mood:hover,.home-mood:hover .home-mood-cover{transform:none}}


/* Radar filters remain a single swipeable row on narrow screens. */
.radar-tabs{flex-wrap:nowrap;overflow-x:auto;min-width:0;max-width:100%;overscroll-behavior-x:contain;scrollbar-width:none;padding:3px 2px 5px;scroll-padding-inline:2px}
.radar-tabs::-webkit-scrollbar{display:none}
.radar-tabs button{flex:0 0 auto;white-space:nowrap}

/* Discovery shares the open layout and swipe affordance of personal shelves. */
.radar-section{padding:0;border:0;border-radius:0;background:none}
@media(max-width:700px){
 .homesection .shelf-arrows,.radar-section .shelf-arrows{display:none}
 .homesection .shelfcontrols:has(>.shelf-arrows:only-child),.radar-browse:has(>.shelf-arrows:only-child){display:none}
 .radar-section{padding:0;border:0;border-radius:0;background:none}
 .homeshelf.shelf,.radar-shelf{gap:12px;scroll-snap-type:x proximity;scroll-padding-inline:0;scrollbar-width:none}
 .homeshelf.shelf::-webkit-scrollbar,.radar-shelf::-webkit-scrollbar{display:none}
 .homeshelf.shelf .homecard-compact,.radar-shelf .radar-card.homecard-compact,.homeshelf.shelf .shelf-pick-card{flex:0 0 62%;min-width:0;max-width:none;scroll-snap-align:start}
 .radar-footer{margin-top:6px}
 .radar-personal{width:auto}
}

/* One shared inspiration stream, floating over the hero rather than in a panel. */
.home-wave .home-inspiration{display:block;align-self:center;padding:0}
.home-wave .home-mood-suggestions{margin:0}
.home-wave .home-mood-heading{margin:0 0 16px}
.home-wave .home-mood-heading h2{font-size:24px;font-weight:600;color:var(--color-ink);letter-spacing:-.5px}
.home-wave .home-mood-rail{position:relative;background:transparent;scrollbar-width:none;border:0;mask-image:linear-gradient(to right,transparent,#000 5%,#000 90%,transparent);padding:12px 12px 18px}
.home-wave .home-mood-rail::-webkit-scrollbar{display:none}
.home-wave .home-mood-orb{background:radial-gradient(ellipse at 40% 15%,color-mix(in srgb,var(--mood-accent) 65%,transparent),color-mix(in srgb,var(--mood-accent) 22%,transparent) 48%,transparent 73%);mask-image:none}
@media(min-width:701px){
 .home-wave .home-mood-rail{height:448px;display:flex;flex-direction:column;align-items:flex-start;gap:12px;overflow-x:hidden;overflow-y:auto;scroll-snap-type:y proximity;overscroll-behavior-y:contain;mask-image:linear-gradient(transparent,#000 6%,#000 87%,transparent);padding:18px 20px 36px}
 .home-wave .home-mood{flex:0 0 174px;width:174px;height:174px;translate:var(--arc-offset,0px) 0;scroll-snap-align:center}
 .home-wave .home-mood-heading{padding-left:20px}
}
@media(max-width:700px){
 .home-wave .home-inspiration{width:100%;margin-top:-12px}
 .home-wave .home-mood-heading{padding-left:8px;margin-bottom:8px}
 .home-wave .home-mood-heading h2{font-size:16px;letter-spacing:0}
 .home-wave .home-mood-rail{scroll-snap-type:x proximity;gap:8px}
}

@media(max-width:700px){.home-wave-controls>.home-inspiration{margin:22px 0 0;text-align:left}.home-wave-controls>.home-inspiration .home-mood-heading{padding-left:0}}

/* Keep shelf edges aligned with their headings, including after scroll snapping. */
.homeshelf.shelf,.radar-shelf{margin-inline:0;padding-inline:0;scroll-padding-inline:0}
@media(min-width:701px){
 .radar-shelf{gap:16px;padding-top:4px;align-items:stretch}
 .radar-shelf .radar-card.homecard-compact{flex:0 0 calc((100% - 80px)/6);min-width:164px;max-width:200px}
}
@media(min-width:701px) and (max-width:1000px){.radar-shelf .radar-card.homecard-compact{flex-basis:164px}}

/* Mobile discovery: use the available screen for the poster and keep actions in reach. */
@media(max-width:700px){
 .mobile-web .discovery-page{height:calc(100dvh - 155px - env(safe-area-inset-bottom));min-height:0}
 .discovery-page .deck{min-height:0}
 .discovery-page .discoverycard{flex:1 1 0;max-height:none;min-height:220px;padding:0;gap:0}
 .discovery-page .deck-identity{position:relative;display:block;flex:1 1 0;min-height:140px;overflow:hidden}
 .discovery-page .deck-identity>.poster{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;border-radius:0}
 .discovery-page .deck-identity>.poster img{object-fit:cover;object-position:center 30%}
 .discovery-page .discoveryintro{position:absolute;inset:auto 0 0;padding:58px 16px 12px;background:linear-gradient(transparent 0%,color-mix(in srgb,var(--color-canvas) 78%,transparent) 42%,var(--color-canvas) 85%);pointer-events:none}
 .discovery-page .discoveryintro .deck-details{pointer-events:auto}
 .discovery-page .discoveryintro h2{font-size:24px;margin:4px 0 6px}
 .discovery-page .deck-kicker,.discovery-page .deck-rating{color:var(--color-ink)}
 .discovery-page .discoverycopy{flex:none;padding:10px 12px;background:var(--color-surface);max-height:110px;overflow:auto}
 .discovery-page .discoverycopy:empty{display:none}
 .discovery-page .deck-fit{padding:0;background:none}
 .discovery-page .deck-fit>span{display:block;font-size:11px}
 .discovery-page .deck-fit p{font-size:12px;line-height:1.4;-webkit-line-clamp:2}
 .discovery-page .deck-undo{flex:none}
}
@media(max-width:700px) and (max-height:650px){
 .mobile-web .discovery-page{height:auto;min-height:calc(100dvh - 155px)}
 .discovery-page .discoverycard{flex:none;height:330px}
}

/* Desktop discovery gives the artwork a full-height column. */
@media(min-width:701px){
 .discovery-page{max-width:800px}
 .discovery-page .discoverycard{display:grid;grid-template-columns:40% minmax(0,1fr);grid-template-rows:1fr 1fr;flex:1 1 0;min-height:320px;max-height:560px;padding:0;gap:0}
 .discovery-page .deck-identity{display:contents}
 .discovery-page .deck-identity>.poster{grid-column:1;grid-row:1 / 3;width:100%;height:100%;min-height:0;border-radius:0;aspect-ratio:auto;align-self:stretch}
 .discovery-page .deck-identity>.poster img{object-fit:cover;object-position:center}
 .discovery-page .discoveryintro{grid-column:2;grid-row:1;align-self:end;padding:28px 28px 14px}
 .discovery-page .discoveryintro h2{font-size:30px;line-height:1.15;margin:10px 0}
 .discovery-page .discoverycopy{grid-column:2;grid-row:2;align-self:start;max-height:100%;padding:0 28px 28px;overflow:auto}
 .discovery-page .deck-fit{padding:16px}
 .discovery-page .deck-fit p{-webkit-line-clamp:5}
}
@media(min-width:701px) and (max-height:700px){.discovery-page{height:auto;min-height:calc(100dvh - 110px)}.discovery-page .discoverycard{flex:none;height:360px}}

/* Rebase equivalent copies without snap animations or visible jumps. */
.home-wave .home-mood-rail{scroll-snap-type:none;scroll-behavior:auto;overflow-anchor:none}

.home-mood-settings{display:grid;place-items:center;background:var(--color-primary-soft);color:var(--color-link)}
.home-mood-settings svg{width:30px;height:30px}

/* Partial cards and direct dragging replace carousel arrow controls everywhere. */
.shelf-arrows{display:none}
.shelfcontrols:has(>.shelf-arrows:only-child),.radar-browse:has(>.shelf-arrows:only-child){display:none}
.radar-footer{justify-content:flex-end}
@media(min-width:701px){
 .homeshelf.shelf .homecard-compact,.radar-shelf .radar-card.homecard-compact{flex:0 0 calc((100% - 80px)/5.35);min-width:0;max-width:none}
}
@media(min-width:701px) and (max-width:1000px){
 .homeshelf.shelf .homecard-compact,.radar-shelf .radar-card.homecard-compact{flex-basis:calc((100% - 48px)/3.35)}
}

/* Mobile ideas follow a shallow arc across the full viewport, over the shared glow. */
@media(max-width:700px){
 body.mobile-home{overflow-x:clip}
 .mobile-home .home-launch.home-wave{overflow:visible}
 .mobile-home .home-composer-wave:before{inset:5% -24%;filter:blur(32px)}
 .mobile-home .home-composer-wave:after{inset:12% -18%;filter:blur(26px)}
 .home-wave .home-mood-rail{width:100vw;max-width:none;margin-inline:calc(50% - 50vw);padding:16px 0 64px;mask-image:none;background:transparent}
 .home-wave .home-mood{translate:0 var(--arc-offset,0px)}
}
@media(max-width:700px){.mobile-home .workspace{overflow-x:clip}}

/* Collection covers: an empty poster stack becomes a stack of saved titles. */
.splitlists .list-cover-fan{position:relative;isolation:isolate;width:100%;height:118px;flex-shrink:0;overflow:hidden;background:radial-gradient(ellipse at 50% 70%,var(--color-primary-soft),transparent 70%)}
.list-cover-fan>.list-cover-frame{position:absolute;left:50%;top:15px;width:60px;height:90px;border-radius:9px;border:1px solid var(--color-border-strong);background:linear-gradient(145deg,var(--color-surface-raised),var(--color-surface));box-shadow:0 6px 16px rgb(var(--shadow-rgb) / .2);transform:translateX(-50%);display:grid;place-items:center;color:var(--color-link)}
.list-cover-fan>.list-cover-frame:nth-child(1):not(:only-child){transform:translateX(calc(-50% - 24px)) rotate(-15deg);top:18px}
.list-cover-fan>.list-cover-frame:nth-child(2){transform:translateX(calc(-50% + 24px)) rotate(15deg);top:18px}
.list-cover-fan>.list-cover-frame:nth-child(3){z-index:1}
.list-cover-fan.is-empty>.list-cover-frame:nth-child(1){border-color:var(--color-primary-border)}
.list-cover-fan.is-empty>.list-cover-frame:nth-child(2){border-color:var(--color-coral);opacity:.6}
.list-cover-fan .list-cover-frame svg{width:25px;height:25px}
.list-cover-fan.has-posters>.list-cover-frame{border-color:var(--color-border);animation:list-cover-arrive .35s ease-out both}
.list-cover-fan.has-posters>.list-cover-frame:nth-child(2){animation-delay:.05s}
.list-cover-fan.has-posters>.list-cover-frame:nth-child(3){animation-delay:.1s}
@keyframes list-cover-arrive{from{opacity:0;translate:0 12px}to{opacity:1;translate:0 0}}
@media(prefers-reduced-motion:reduce){.list-cover-fan.has-posters>.list-cover-frame{animation:none}}
@media(max-width:375px){.splitlists .list-cover-fan{width:110px}}

/* Mouse wheels are scoped to visible ideas; the surrounding page remains scrollable. */
@media(min-width:701px) and (hover:hover) and (pointer:fine){
 .home-wave .home-mood-rail{overflow-y:hidden;overscroll-behavior-y:auto}
}

/* Parameter picker: one rhythm for sections, choices, and disclosures. */
.picker-flow .filter-mode-content{display:flex;flex-direction:column;gap:24px}
.picker-flow .filter-mode-content .pick-block,.picker-flow .filter-mode-content .pick-options{margin:0}
.picker-flow h3{font-size:16px;line-height:1.35;margin:0 0 12px;font-weight:600}
.picker-flow .pick-help{font-size:12px;line-height:1.5;margin:0 0 10px}
.picker-flow .chips{gap:8px}
.picker-flow .chip{min-height:42px;font-size:13px;line-height:1.3;padding:10px 14px}
.picker-flow .search-draft-tools{align-items:center;gap:8px 16px;margin:0}
.picker-flow .search-draft-tools .pick-help{flex:1;margin:0;font-size:12px}
.picker-flow .search-draft-tools .textbtn{min-height:36px;padding:6px 0}
.picker-flow .checkrow{display:flex;align-items:center;gap:12px;min-height:44px;padding:8px 0;margin:12px 0 0;border:0;font-size:14px;line-height:1.4}
.picker-flow .checkrow input,.picker-flow .category-choice input{width:20px;height:20px;accent-color:var(--color-primary);flex-shrink:0}
.picker-flow .pick-options{padding:0;border:0;border-top:1px solid var(--color-border);border-radius:0}
.picker-flow .pick-options>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px;padding:12px 0;list-style:none;font-size:15px;line-height:1.4}
.picker-flow .pick-options>summary::-webkit-details-marker{display:none}
.picker-flow .pick-options>summary:after{content:'+';font-size:22px;font-weight:400;color:var(--color-muted)}
.picker-flow .pick-options[open]>summary:after{content:'−'}
.picker-flow .pick-options-body{padding:8px 0 0;display:grid;gap:24px}
.picker-flow .pick-options-body .checkrow{margin:0}
.picker-flow .pick-year-range{gap:12px}
.picker-flow .pick-year-range+.pick-help{margin:8px 0 0}
.picker-flow .category-list .category-choice{padding:12px 0;gap:12px}
.picker-flow .category-list .category-choice b{font-size:14px;font-weight:500}
.picker-flow .category-source .pick-help{font-size:12px}
.picker-flow .retained-wish{margin:0;padding:14px 16px;border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface)}
.picker-flow .retained-wish>span{font-size:12px;color:var(--color-muted)}
.picker-flow .retained-wish p{font-size:14px;line-height:1.5;margin:6px 0}
.picker-flow .picker-submit{margin-top:24px}
.picker-flow .picksubmit{margin-top:0}

/* Inline loading uses the same moving light as the main search screen. */
.content-feedback.is-loading{position:relative;isolation:isolate;overflow:hidden;background:var(--color-canvas)}
.feedback-glow{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none;border-radius:inherit}
.feedback-glow:before,.feedback-glow:after{content:'';position:absolute;width:130%;height:230%;left:-15%;top:-65%;filter:blur(32px);transform-origin:50% 50%}
.feedback-glow:before{background:radial-gradient(ellipse at 28% 35%,var(--color-primary),transparent 55%),radial-gradient(ellipse at 75% 65%,var(--color-coral),transparent 55%);opacity:.28;animation:home-wave-halo 22s linear -3s infinite}
.feedback-glow:after{background:radial-gradient(ellipse at 70% 30%,var(--color-primary),transparent 58%),radial-gradient(ellipse at 25% 70%,var(--color-coral),transparent 55%);opacity:.18;animation:home-wave-core 16s linear -2s infinite}
.content-feedback.is-loading h3{color:var(--color-ink)}
.content-feedback.is-loading p{color:var(--color-muted)}
@media(prefers-reduced-motion:reduce){.feedback-glow:before,.feedback-glow:after{animation:none;transform:none}}

/* Four-direction deck gestures; page scrolling remains available outside the card. */
.discovery-page .discoverycard{touch-action:none}
.deck-swipe-overlay{position:absolute;inset:0;z-index:5;display:flex;align-items:center;justify-content:center;padding:24px;pointer-events:none;opacity:var(--swipe-strength,0);background:linear-gradient(transparent,color-mix(in srgb,var(--swipe-accent,var(--color-primary)) 42%,var(--color-canvas)) 50%,transparent);border-radius:inherit}
.deck-swipe-overlay strong{padding:12px 20px;border:2px solid var(--swipe-accent,var(--color-primary));border-radius:16px;background:var(--color-canvas);color:var(--color-ink);font-size:clamp(20px,5vw,28px);text-align:center;box-shadow:0 8px 32px #0005}
.discoverycard[data-swipe-action="like"]{--swipe-accent:var(--color-success)}
.discoverycard[data-swipe-action="dislike"],.discoverycard[data-swipe-action="hide"]{--swipe-accent:var(--color-coral)}
.discovery-page .discoverycard.swipe-leaving{transition:transform .23s ease-in,opacity .23s;opacity:0}
@media(prefers-reduced-motion:reduce){.discovery-page .discoverycard{transition:none}.discovery-page .discoverycard.swipe-leaving{transform:none!important}}

/* Search refresh is a quiet trailing icon, with a full touch target. */
.rec-next-actions{align-items:center}
.rec-next-actions .search-shake-icon{flex:0 0 44px;width:44px;min-width:44px;height:44px;min-height:44px;padding:10px;border-color:transparent;background:transparent;color:var(--color-muted)}
.rec-next-actions .search-shake-icon:hover{color:var(--color-ink);background:var(--color-surface-subtle);border-color:transparent}
@media(max-width:600px){.rec-next-actions{grid-template-columns:minmax(0,1fr) 44px}.rec-next-actions>[data-action="more-recs"]{grid-column:1/-1}.rec-next-actions .btn{min-width:0}.rec-next-actions .search-shake-icon{justify-self:end}}

/* Keep the desktop deck and its actions together within the window. */
@media(min-width:701px){
 .workspace:has(.discovery-page){padding-top:12px;padding-bottom:20px}
 .discovery-page{width:100%;max-width:720px;height:calc(100dvh - 116px);min-height:0;gap:8px}
 .discovery-page .deck{min-height:0}
 .discovery-page .discoverycard{flex:1 1 0;height:auto;min-height:240px;max-height:440px;grid-template-columns:38% minmax(0,1fr);border-radius:20px}
 .discovery-page .discoveryintro{padding:18px 22px 12px}
 .discovery-page .discoveryintro h2{font-size:26px;margin:6px 0}
 .discovery-page .discoverycopy{padding:0 22px 18px}
 .discovery-page .deck-fit{padding:12px}
 .discovery-page .deck-fit p{font-size:13px;line-height:1.45;-webkit-line-clamp:3}
 .discovery-page .deckactions{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:10px}
 .discovery-page .deckactions .btn{min-width:0;min-height:44px;padding:8px;font-size:12px;gap:5px}
 .discovery-page .deck-undo .textbtn{min-height:28px}
}
@media(min-width:701px) and (max-height:570px){.discovery-page{height:auto;min-height:0}.discovery-page .discoverycard{flex:none;height:260px}}

/* Mobile home keeps the original soft, diffuse motion. */
@media(max-width:700px){
 .mobile-home .home-composer-wave:before{inset:8% -8%;filter:blur(38px);opacity:.38;background:radial-gradient(ellipse at 30% 35%,var(--color-primary),transparent 63%),radial-gradient(ellipse at 76% 70%,var(--color-coral),transparent 59%);animation:home-wave-halo 16s linear -3s infinite}
 .mobile-home .home-composer-wave:after{inset:12% 0;filter:blur(30px);opacity:.28;background:radial-gradient(ellipse at 32% 38%,var(--color-primary),transparent 76%),radial-gradient(ellipse at 77% 65%,var(--color-coral),transparent 58%);animation:home-wave-core 19s linear -2s infinite}
 .mobile-home .home-composer-wave:focus-within:before,.mobile-home .home-composer-wave:focus-within:after{animation-play-state:running}
 .mobile-home .home-composer-wave:has(input:focus):before,.mobile-home .home-composer-wave:has(input:focus):after{animation-play-state:paused}
}
@keyframes mobile-home-current{
 0%{transform:translate(-7%,-4%) rotate(0deg) scale(.92)}
 25%{transform:translate(8%,-6%) rotate(90deg) scale(1.1)}
 50%{transform:translate(6%,5%) rotate(180deg) scale(.94)}
 75%{transform:translate(-8%,7%) rotate(270deg) scale(1.06)}
 100%{transform:translate(-7%,-4%) rotate(360deg) scale(.92)}
}
@media(prefers-reduced-motion:reduce){.mobile-home .home-composer-wave:before,.mobile-home .home-composer-wave:after{animation:none;transform:none;will-change:auto}}

/* Shared inspiration orbs in the text search form. */
.picker-flow .picker-ideas{margin:12px 0 16px;min-width:0}
.picker-ideas .home-mood-heading{display:none}
.picker-ideas .home-mood-rail{position:relative;scrollbar-width:none;scroll-snap-type:none;overflow-x:auto;overflow-y:hidden;padding:10px 0 28px;gap:8px;background:transparent;touch-action:pan-x pan-y;mask-image:linear-gradient(to right,transparent,#000 12px,#000 calc(100% - 12px),transparent)}
.picker-ideas .home-mood-rail::-webkit-scrollbar{display:none}
.picker-ideas .home-mood{flex-basis:142px;height:164px;padding-inline:8px;translate:0 calc(var(--arc-offset,0px)*.3)}
.picker-ideas .home-mood-cover{width:52px;height:52px}
.picker-ideas .home-mood-orb{top:24px}
.picker-ideas .home-mood-copy{margin-top:10px}
.picker-ideas .home-mood-copy strong{font-size:14px;line-height:1.3}
.picker-ideas .home-mood-copy small{font-size:10px}
@media(max-width:700px){.picker-flow .picker-ideas .home-mood-rail{width:calc(100% + 32px);max-width:none;margin-inline:-16px;scroll-padding-inline:16px}.picker-ideas .home-mood{flex-basis:134px}}

/* A small stack of moving cards is the shared shake symbol. */
.shake-icon{display:block;width:24px;height:24px;flex:none;overflow:visible}
.shake-icon-cards{transform-origin:12px 12px}
@media(hover:hover){.shake-recommendations:not(:disabled):hover .shake-icon-cards{animation:shake-card-wiggle .55s ease-in-out}}
.shake-recommendations:not(:disabled):focus-visible .shake-icon-cards{animation:shake-card-wiggle .55s ease-in-out}
.shake-recommendations:active .shake-icon-cards{transform:rotate(-9deg)}
@keyframes shake-card-wiggle{0%,100%{transform:translateX(0) rotate(0)}20%,60%{transform:translateX(-1px) rotate(-12deg)}40%,80%{transform:translateX(1px) rotate(10deg)}}
@media(prefers-reduced-motion:reduce){.shake-recommendations .shake-icon-cards{animation:none!important;transform:none!important}}

/* Attribution shares the shelf footer with the personal selection link. */
.radar-footer{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:8px 16px}
.radar-footer .radar-credit{grid-column:1;grid-row:1;margin:0;max-width:680px;font-size:11px}
.radar-footer .radar-credit summary{padding:12px 0;cursor:pointer;min-height:44px}
.radar-footer .radar-credit p{margin:0 0 8px}
.radar-footer .radar-personal{grid-column:2;grid-row:1;width:auto;min-height:44px;align-self:start;text-align:right}
.radar-footer .radar-browse{grid-column:1/-1;width:auto}
.radar-footer .radar-browse:not(:has([data-action="radar-retry"])){display:none}
@media(max-width:600px){.radar-footer{gap:8px}.radar-footer .radar-personal{font-size:11px}.radar-footer .radar-credit{font-size:10px}}

/* Let search ideas float across the page instead of clipping to the form. */
body:has(.picker-ideas){overflow-x:clip}
.workspace:has(.picker-ideas),.picker-flow:has(.picker-ideas){overflow:visible}
.picker-flow .picker-ideas{position:relative;overflow:visible;background:transparent;border:0}
.picker-flow .picker-ideas .home-mood-rail{width:100%;max-width:100%;margin-inline:0;padding:16px 0 38px;border:0;border-radius:0;background:transparent;scroll-padding-inline:48px;mask-image:linear-gradient(to right,transparent 0%,#000 10%,#000 90%,transparent 100%)}
.picker-ideas .home-mood{translate:0 calc(var(--arc-offset,0px)*.65)}
@media(max-width:700px){.picker-flow .picker-ideas .home-mood-rail{mask-image:linear-gradient(to right,transparent,#000 32px,#000 calc(100% - 32px),transparent);padding-bottom:38px}}

.picker-submit .picker-mode-link{display:block;margin:8px auto 0;min-height:44px;font-size:13px}.filter-mode-content:focus{outline:none}

/* One consistent inset below the app header for both picker modes. */
.workspace:has(.picker-flow){padding-top:24px}
.workspace .picker-flow{margin-top:0}
.picker-flow>.heading{margin:0 0 32px;align-items:center}
.picker-flow>.heading+.pick-block{margin-top:0}
.picker-flow>.pick-block{margin-bottom:16px}
@media(max-width:700px){.mobile-web .workspace:has(.picker-flow){padding-top:16px}.mobile-web .picker-flow>.heading{margin:0 0 24px}}

.picker-advanced{margin-top:8px;border:0;background:transparent}
.picker-advanced>summary{display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 0;list-style:none;color:var(--color-link);font-size:13px;cursor:pointer}
.picker-advanced>summary::-webkit-details-marker{display:none}
.picker-advanced>summary:after{content:'+';font-size:18px}
.picker-advanced[open]>summary:after{content:'−'}
.picker-advanced>.filter-mode-content{padding-top:20px}
.picker-advanced>summary:focus-visible{outline:1px solid var(--color-primary-border);outline-offset:1px;border-radius:8px}

/* Keep the overflow menu anchored to the right edge of mobile results. */
@media(max-width:600px){
 .compact-results .compact-rec-actions{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 44px;align-items:stretch}
 .compact-results .compact-rec-actions>.btn{min-width:0;font-size:11px;line-height:1.3;padding:7px 6px;white-space:normal}
 .compact-results .compact-rec-actions>.title-more{grid-column:3;margin:0;align-self:stretch;min-width:0}
 .compact-results .compact-rec-actions>.title-more>summary{height:100%;min-height:44px;width:44px}
 .compact-results .compact-rec-actions .title-more-panel{right:0;left:auto;width:min(255px,calc(100vw - 40px))}
}

/* Two balanced rows of actions in the mobile film details. */
@media(max-width:600px){
 .film-modal .detail-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;align-items:stretch}
 .film-modal .detail-actions .btn,.film-modal .detail-actions .textbtn{width:100%;min-width:0;min-height:44px;padding:9px 8px;line-height:1.3;font-size:12px;white-space:normal;justify-content:center;gap:6px}
 .film-modal .detail-actions .btn svg{width:16px;height:16px;flex:none}
 .film-modal .detail-actions .btn span{min-width:0}
}

/* Keep the primary picker action on the first screen. */
.picker-flow .picker-ideas{margin:4px 0 4px}
.picker-flow .picker-ideas .home-mood-rail{padding-top:8px;padding-bottom:24px}
.picker-flow .picker-context{margin:4px 0 8px}
.picker-flow .picker-submit{margin-top:12px}
@media(max-height:800px){
 .workspace:has(.picker-flow){padding-top:16px}
 .picker-flow>.heading{margin-bottom:24px}
 .picker-flow>.pick-block{margin-bottom:12px}
 .picker-flow .pickwish{margin-top:12px}
 .picker-flow #pickWish{min-height:84px;height:84px;padding:12px 14px}
 .picker-ideas .home-mood{height:148px;flex-basis:132px}
 .picker-ideas .home-mood-cover{width:46px;height:46px}
 .picker-flow .picker-ideas .home-mood-rail{padding-bottom:20px}
}
@media(max-height:650px){
 .picker-flow>.heading{margin-bottom:20px}
 .picker-flow h3{margin-bottom:8px}
 .picker-flow #pickWish{min-height:64px;height:64px}
 .picker-ideas .home-mood{height:124px;flex-basis:116px}
 .picker-ideas .home-mood-copy{margin-top:6px;gap:3px}
 .picker-ideas .home-mood-copy strong{font-size:12px}
 .picker-ideas .home-mood-cover{width:38px;height:38px}
 .picker-ideas .home-mood-orb{top:18px}
 .picker-flow .picker-ideas .home-mood-rail{padding-top:4px;padding-bottom:12px}
 .picker-ideas .home-mood{translate:0 calc(var(--arc-offset,0px)*.25)}
 .picker-flow .picker-submit{margin-top:4px}
}
@media(max-width:700px) and (max-height:720px){
 .mobile-web .workspace:has(.picker-flow){padding-top:12px}
 .mobile-web .picker-flow>.heading{margin-bottom:16px}
 .picker-flow .picker-ideas{margin:0}
 .picker-flow .picker-context{margin:0}
 .picker-flow .picker-submit{margin-top:4px}
}
@media(max-width:700px) and (max-height:600px){
 .picker-flow>.pick-block{margin-bottom:8px}
 .picker-flow .pickwish{margin-top:8px}
 .picker-flow .picker-ideas .home-mood-rail{padding-block:4px}
 .picker-ideas .home-mood{height:112px;flex-basis:108px}
 .picker-ideas .home-mood-copy small{display:none}
 .picker-flow .picker-context .textbtn{min-height:32px}
}

/* Keep the close glyph symmetric and centered independently of font metrics. */
.picker-flow .pickclose{padding:0;line-height:1}
.picker-flow .pickclose svg{display:block;width:22px;height:22px;flex-shrink:0}

/* Compact result pagination. */
.rec-pagination{gap:6px;padding:12px 0}
.rec-pagination[data-pagination="top"]{padding:4px 0 12px}
.rec-page-numbers{gap:2px}
.rec-pagination .rec-page-number{min-width:32px;height:36px;padding:0 7px;border-radius:9px;font-size:14px}
.rec-pagination .rec-page-arrow{width:36px;min-width:36px;height:36px;min-height:36px;padding:6px;border-radius:10px;font-size:17px}
.heading:has(+ .rec-pagination){margin-bottom:12px}
@media(pointer:coarse){.rec-pagination .rec-page-number,.rec-pagination .rec-page-arrow{min-width:40px;height:40px;min-height:40px}}

/* Focus stays inside the scrollable page-number strip, including its last item. */
.rec-pagination button:focus-visible{outline:1px solid var(--color-focus);outline-offset:-4px;box-shadow:none}
.rec-pagination button[aria-current="page"]:focus-visible{outline-color:var(--color-on-primary)}

/* Artwork rings use sampled poster color; neutral while unavailable. */
img.home-mood-cover{border-color:var(--poster-ring-color,var(--color-border-strong))}

/* Failed artwork removes the entire card, overriding legacy shelf display:flex!important. */
:is(.homecard,.compact-rec):has(.poster-media:is([data-poster-state="error"],[data-poster-state="missing"])){display:none!important}

/* One icon-only refresh control across recommendation surfaces. */
.shake-recommendations,.homesection .shake-recommendations,.deck-refresh-slot .shake-recommendations,.rec-next-actions .shake-recommendations{width:40px;height:40px;min-width:40px;min-height:40px;padding:8px;gap:0;flex:0 0 40px;border:1px solid transparent;border-radius:12px;background:transparent;color:var(--color-muted)}
.shake-recommendations:hover{background:var(--color-surface-subtle);border-color:transparent;color:var(--color-link)}
.shake-recommendations .shake-icon{width:24px;height:24px}
.homesection .sectiontop .shelfcontrols{width:auto;margin-left:auto}
@media(pointer:coarse){.shake-recommendations,.homesection .shake-recommendations,.deck-refresh-slot .shake-recommendations,.rec-next-actions .shake-recommendations{width:44px;height:44px;min-width:44px;min-height:44px;flex-basis:44px}}

/* Secondary deck actions share a compact, quiet toolbar. */
.deck-refresh-slot{display:flex;align-items:center;gap:4px}
.undo-icon-button{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;flex:0 0 40px;padding:8px;border:1px solid transparent;border-radius:12px;background:transparent;color:var(--color-muted)}
.undo-icon-button:hover:not(:disabled){background:var(--color-surface-subtle);color:var(--color-link)}
.undo-icon-button:disabled{opacity:.3;cursor:default}
.undo-icon-button svg{display:block;flex:none}
@media(pointer:coarse){.undo-icon-button{width:44px;height:44px;flex-basis:44px}}

/* The search field and submit action form one continuous control. */
.home-composer .home-composer-row{padding:0;gap:0;overflow:hidden;border-radius:18px}
.home-composer .home-composer-row input{border-radius:0;padding:16px 18px;min-height:58px}
.home-composer .home-composer-row:has(input:focus-visible){outline:1px solid var(--color-focus);outline-offset:1px}
.home-composer .home-composer-row input:focus-visible{outline:none;box-shadow:none}
.home-composer .home-composer-row .home-submit{align-self:stretch;margin:0;border:0;border-radius:0;box-shadow:none;padding:14px 20px;color:var(--color-link);font-weight:700}
.home-composer .home-composer-row .home-submit:active{transform:none}
.home-composer .home-composer-row .home-submit:focus-visible{outline-offset:-4px;box-shadow:none}
@media(max-width:1000px){
 .home-composer .home-composer-row{flex-wrap:wrap}
 .home-composer .home-composer-row input{flex-basis:100%;width:100%}
 .home-composer .home-composer-row .home-submit{width:100%;min-height:50px}
}

/* A distinct submit button with a short soft transition at the field seam. */
.home-composer .home-composer-row{background:var(--color-canvas)}
.home-composer .home-composer-row .home-submit{background:linear-gradient(90deg,var(--color-canvas) 0,color-mix(in srgb,var(--color-canvas) 75%,var(--color-primary-soft)) 12px,color-mix(in srgb,var(--color-canvas) 35%,var(--color-primary-soft)) 30px,var(--color-primary-soft) 56px)}
.home-composer .home-composer-row .home-submit:hover:not(:disabled){background:linear-gradient(90deg,var(--color-canvas) 0,color-mix(in srgb,var(--color-canvas) 75%,var(--color-blue-mist)) 12px,color-mix(in srgb,var(--color-canvas) 35%,var(--color-blue-mist)) 30px,var(--color-blue-mist) 56px)}
.home-composer .home-composer-row .home-submit:disabled{color:var(--color-disabled-ink)}
@media(max-width:1000px){
 .home-composer .home-composer-row .home-submit{background:linear-gradient(180deg,var(--color-canvas) 0,color-mix(in srgb,var(--color-canvas) 65%,var(--color-primary-soft)) 7px,var(--color-primary-soft) 22px)}
 .home-composer .home-composer-row .home-submit:hover:not(:disabled){background:linear-gradient(180deg,var(--color-canvas) 0,color-mix(in srgb,var(--color-canvas) 65%,var(--color-blue-mist)) 7px,var(--color-blue-mist) 22px)}
}

/* Mobile stacked search keeps a clear boundary between field and action. */
@media(max-width:700px){
 .home-composer .home-composer-row .home-submit{background:var(--color-primary-soft)}
 .home-composer .home-composer-row .home-submit:hover:not(:disabled){background:var(--color-blue-mist)}
}

@media(min-width:1001px){
 .home-composer .home-composer-row .home-submit{padding-left:52px;padding-right:24px}
}

/* Quiet continuation of the hero light behind the recommendation shelves. */
.workspace:has(.home-scroll-aura){position:relative;isolation:isolate}
.home-scroll-aura{position:absolute;inset:0 auto 0 50%;width:100vw;transform:translateX(-50%);overflow:clip;z-index:-1;pointer-events:none}
.home-scroll-aura-track{position:absolute;top:0;left:0;width:clamp(680px,72vw,1100px);aspect-ratio:1;height:auto;will-change:transform,opacity;pointer-events:none}
.home-scroll-aura-track span{position:absolute;inset:0;background:radial-gradient(ellipse 34% 32% at 38% 38%,rgb(2 151 222 / .8),rgb(2 151 222 / .3) 35%,rgb(2 151 222 / .06) 70%,transparent 100%),radial-gradient(ellipse 30% 32% at 62% 60%,rgb(252 115 77 / .6),rgb(252 115 77 / .18) 40%,transparent 100%);filter:blur(38px);animation:shelf-orb-turn 16s linear infinite}
.home-scroll-aura-track span+span{inset:8%;background:radial-gradient(ellipse 28% 30% at 58% 35%,rgb(100 199 244 / .5),rgb(100 199 244 / .12) 45%,transparent 100%),radial-gradient(ellipse 30% 27% at 38% 62%,rgb(130 115 200 / .4),transparent 100%);animation-duration:23s;animation-direction:reverse}
@keyframes shelf-orb-turn{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@media(max-width:700px){.home-scroll-aura-track{width:620px}}
@media(prefers-reduced-motion:reduce){.home-scroll-aura-track{will-change:auto}.home-scroll-aura-track span{animation:none}}

/* Card rails remain scrollable without a visible scrollbar. */
.shelf,.homeshelf.shelf,.radar-shelf,.home-mood-rail{scrollbar-width:none}
.shelf::-webkit-scrollbar,.homeshelf.shelf::-webkit-scrollbar,.radar-shelf::-webkit-scrollbar,.home-mood-rail::-webkit-scrollbar{display:none;width:0;height:0}

/* Shared atmosphere for secondary screens and non-blocking action feedback. */
body{isolation:isolate}
.interface-atmosphere{position:fixed;inset:0;z-index:-1;overflow:clip;pointer-events:none}
.interface-atmosphere[hidden]{display:none}
.interface-atmosphere-light{position:absolute;inset:-15%;--scene-blue:2 151 222;--scene-warm:130 115 200;opacity:.7;transition:opacity .8s}
.interface-atmosphere[data-scene="library"] .interface-atmosphere-light{--scene-warm:252 115 77}
.interface-atmosphere[data-scene="taste"] .interface-atmosphere-light{--scene-blue:100 160 210;--scene-warm:145 120 190}
.interface-atmosphere[data-scene="cards"] .interface-atmosphere-light{opacity:.5}
.interface-atmosphere-light i{position:absolute;inset:0;background:radial-gradient(ellipse 38% 34% at 65% 38%,rgb(var(--scene-blue) / .12),rgb(var(--scene-blue) / .03) 50%,transparent 100%);animation:interface-light-drift 28s ease-in-out infinite alternate}
.interface-atmosphere-light i+i{background:radial-gradient(ellipse 35% 32% at 30% 65%,rgb(var(--scene-warm) / .08),transparent 100%);animation-duration:34s;animation-delay:-12s;animation-direction:alternate-reverse}
@keyframes interface-light-drift{from{transform:translate3d(-3%,-2%,0) rotate(-5deg)}to{transform:translate3d(4%,3%,0) rotate(5deg)}}
.interface-atmosphere.is-paused i{animation-play-state:paused}
.interface-action-light{position:fixed;z-index:200;pointer-events:none;width:300px;height:300px;border-radius:50%;background:radial-gradient(ellipse at 42% 42%,rgb(100 199 244 / .12),rgb(100 199 244 / .035) 35%,transparent 68%);opacity:0}
.interface-action-light[data-kind="save"]{background:radial-gradient(ellipse at 42% 42%,rgb(145 217 178 / .14),rgb(100 199 244 / .04) 38%,transparent 68%)}
.interface-action-light[data-kind="shake"]{width:390px;height:390px;background:radial-gradient(ellipse at 35% 40%,rgb(2 151 222 / .12),transparent 60%),radial-gradient(ellipse at 62% 55%,rgb(252 115 77 / .08),transparent 60%)}
.interface-action-light[data-kind="undo"]{background:radial-gradient(ellipse at center,rgb(172 187 208 / .1),transparent 65%)}
@media(max-width:700px){.interface-atmosphere-light{opacity:.45}.interface-atmosphere[data-scene="cards"] .interface-atmosphere-light{opacity:.35}.interface-action-light{width:240px;height:240px}.interface-action-light[data-kind="shake"]{width:280px;height:280px}}
@media(prefers-reduced-motion:reduce){.interface-atmosphere-light{transition:none}.interface-atmosphere-light i{animation:none}.interface-action-light{display:none}}

/* The entire discovery card opens details; swipe gestures remain available. */
.discoverycard[data-action="detail"]{cursor:pointer}
.discoverycard[data-action="detail"]:focus-visible{outline:1px solid var(--color-focus);outline-offset:1px}

/* Shared hints stay readable without occupying layout space. */
.reaction-hint{white-space:normal;overflow-wrap:anywhere;max-width:min(280px,calc(100vw - 16px));background:var(--color-surface-raised);color:var(--color-ink);border:1px solid var(--color-border)}
@media(hover:hover){:is(.undo-icon-button,.shake-recommendations,.recommendation-shortcut,#accountButton):not(:disabled):hover{background:var(--color-primary-soft);color:var(--color-link)}}
[data-tooltip],.shake-recommendations,.undo-icon-button{-webkit-touch-callout:none}

/* Stable reorder controls share one column on every screen size. */
.can-reorder .collectionitem{position:relative}
.list-order{width:40px;min-width:0;align-self:start}
.list-order>div{flex-direction:column;width:100%}
.list-order button{width:40px;min-width:40px;min-height:40px;padding:4px}
.collection-toolbar>label{min-width:0;max-width:100%}
@media(max-width:650px){
 .can-reorder .collectionitem{grid-template-columns:40px 48px minmax(0,1fr);gap:10px}
 .can-reorder .collectionitem>.poster{width:48px;height:72px;min-width:0}
 .can-reorder .collectionitem .libraryidentity{min-width:0;grid-row:1}
 .can-reorder .collectionitem .libraryactions{min-width:0;grid-column:2/4;grid-row:2}
}

/* Cinema iris: overlapping soft light petals, shared by the hero and scroll trail. */
:root{
 --gradient-iris-blue:radial-gradient(ellipse 18% 37% at 38% 34%,rgb(2 151 222 / .95),rgb(2 151 222 / .42) 44%,transparent 100%),radial-gradient(ellipse 33% 16% at 65% 55%,rgb(100 199 244 / .8),rgb(2 151 222 / .18) 58%,transparent 100%),radial-gradient(ellipse 22% 28% at 43% 70%,rgb(133 112 215 / .8),transparent 100%);
 --gradient-iris-warm:radial-gradient(ellipse 24% 35% at 63% 37%,rgb(255 145 65 / .95),rgb(252 115 77 / .55) 48%,transparent 100%),radial-gradient(ellipse 30% 17% at 34% 52%,rgb(235 130 108 / .75),rgb(154 116 221 / .25) 55%,transparent 100%),radial-gradient(ellipse 19% 25% at 58% 70%,rgb(100 199 244 / .7),transparent 100%);
}
.home-composer-wave:before,.mobile-home .home-composer-wave:before{inset:-8% -4%;border-radius:0;background:var(--gradient-iris-blue);filter:blur(22px);opacity:.7;animation:cinema-iris-blue 20s linear -3s infinite}
.home-composer-wave:after,.mobile-home .home-composer-wave:after{inset:-2% 2%;border-radius:0;background:var(--gradient-iris-warm);filter:blur(20px);opacity:.64;animation:cinema-iris-warm 25s linear -7s infinite}
.home-scroll-aura-track span{background:var(--gradient-iris-blue);filter:blur(26px)}
.home-scroll-aura-track span+span{background:var(--gradient-iris-warm)}
@keyframes cinema-iris-blue{
 0%{transform:rotate(0deg) scale(1,.94)}
 25%{transform:rotate(90deg) scale(1.08,.96)}
 50%{transform:rotate(180deg) scale(.96,1.06)}
 75%{transform:rotate(270deg) scale(1.04,1)}
 100%{transform:rotate(360deg) scale(1,.94)}
}
@keyframes cinema-iris-warm{
 0%{transform:translate(2%,-2%) rotate(0deg) scale(.96)}
 33%{transform:translate(-3%,2%) rotate(-120deg) scale(1.08)}
 66%{transform:translate(2%,3%) rotate(-240deg) scale(.98)}
 100%{transform:translate(2%,-2%) rotate(-360deg) scale(.96)}
}
@media(max-width:700px){
 .mobile-home .home-composer-wave:before{inset:3% -16%;filter:blur(20px);opacity:.54;animation-duration:16s}
 .mobile-home .home-composer-wave:after{inset:8% -10%;filter:blur(18px);opacity:.47;animation-duration:19s}
}
.home-composer-wave:has(input:focus):before,.home-composer-wave:has(input:focus):after{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){
 .home-composer-wave:before,.home-composer-wave:after,.mobile-home .home-composer-wave:before,.mobile-home .home-composer-wave:after{animation:none;transform:none;will-change:auto}
}
