@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=DM+Serif+Display&display=swap";:root{color:#f7f0e7;background:#171411;font-family:DM Sans,system-ui,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;--background: #171411;--surface: #211d19;--surface-raised: #2a241f;--text: #f7f0e7;--text-muted: #bdb2a5;--accent: #e45d3a;--accent-light: #ffb59f;--line: #443b33;--focus: #ffd166}*{box-sizing:border-box}html{min-width:320px;background:var(--background)}body{min-width:320px;min-height:100vh;margin:0;background:radial-gradient(circle at 85% 4%,rgb(228 93 58 / 14%),transparent 28rem),var(--background)}button,input,select,textarea{font:inherit}button,select{min-height:2.75rem}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}a{color:inherit}p{line-height:1.65}h1,h2,p{margin-top:0}h1,h2{text-wrap:balance}h1{max-width:12ch;margin-bottom:1.25rem;font-family:"DM Serif Display",Georgia,serif;font-size:clamp(2.75rem,8vw,5.5rem);font-weight:400;letter-spacing:-.04em;line-height:.95}h2{margin-bottom:.75rem;font-size:clamp(1.25rem,3vw,1.65rem);line-height:1.2}.app-shell{display:flex;min-height:100vh;flex-direction:column}.skip-link{position:fixed;z-index:10;top:.75rem;left:.75rem;padding:.75rem 1rem;border-radius:.4rem;background:var(--focus);color:#171411;font-weight:700;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.site-header,.page-container,.site-footer{width:min(100% - 2rem,72rem);margin-inline:auto}.site-header{display:flex;min-height:5rem;align-items:center;justify-content:space-between;gap:1.5rem;border-bottom:1px solid var(--line)}.wordmark{display:inline-flex;align-items:center;gap:.7rem;color:var(--text);font-weight:700;text-decoration:none}.wordmark-mark{display:grid;width:2rem;height:2rem;place-items:center;border-radius:50%;background:var(--accent);color:#fff8f4;font-size:.72rem;letter-spacing:.04em}.navigation-list{display:flex;margin:0;padding:0;gap:.2rem;list-style:none}.navigation-link{display:inline-block;padding:.65rem .75rem;border:0;border-radius:999px;background:transparent;color:var(--text-muted);font-size:.92rem;text-decoration:none}.navigation-button{min-height:auto}.navigation-link:hover,.navigation-link.is-active{background:var(--surface-raised);color:var(--text)}.navigation-link:focus-visible,.wordmark:focus-visible,.button-link:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.page-container{flex:1;padding-block:clamp(4rem,10vw,8rem)}.page-intro{max-width:52rem;margin-bottom:clamp(2.5rem,7vw,5rem)}.eyebrow,.panel-kicker{margin-bottom:.75rem;color:var(--accent-light);font-size:.78rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.page-intro-copy{max-width:40rem;color:var(--text-muted);font-size:clamp(1.05rem,2vw,1.25rem)}.page-intro-copy p:last-child,.panel p:last-child,.empty-state p:last-child{margin-bottom:0}.panel,.empty-state{border:1px solid var(--line);border-radius:1rem;background:linear-gradient(145deg,var(--surface-raised),var(--surface));box-shadow:0 1.5rem 5rem #0000001f}.panel{padding:clamp(1.5rem,4vw,2.5rem)}.panel p:not(.panel-kicker),.empty-state p:not(.empty-state-title){color:var(--text-muted)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.recommendation-builder{margin-bottom:clamp(3rem,9vw,7rem)}.builder-heading,.builder-actions,.results-heading-row{display:flex;align-items:center;justify-content:space-between;gap:1.5rem}.builder-heading{align-items:flex-start;padding-bottom:1.5rem;border-bottom:1px solid var(--line)}.builder-heading h2,.results-heading-row h2{margin-bottom:0}.criteria-list{display:grid;padding-block:1.5rem;gap:.75rem}.builder-error{display:flex;margin:1.25rem 0 0;align-items:center;justify-content:space-between;gap:1rem}.builder-error .secondary-button{flex:0 0 auto}.criteria-empty{padding:1.1rem 1.25rem;border:1px dashed var(--line);border-radius:.75rem;text-align:center}.criteria-empty p{margin:0;color:var(--text-muted)}.criterion-row{display:grid;margin:0;padding:1rem;grid-template-columns:minmax(8rem,.8fr) minmax(10rem,1.35fr) minmax(10rem,1fr) auto;align-items:end;gap:.75rem;border:1px solid var(--line);border-radius:.75rem;background:#17141166}.field{display:grid;gap:.4rem}.field>span,.field>label{color:var(--text-muted);font-size:.74rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.field select{width:100%;padding:.65rem 2.25rem .65rem .75rem;border:1px solid var(--line);border-radius:.5rem;background:var(--background);color:var(--text)}.field input{width:100%;min-height:2.75rem;padding:.65rem .75rem;border:1px solid var(--line);border-radius:.5rem;background:var(--background);color:var(--text)}.criterion-value{min-width:0}.criterion-error{color:var(--accent-light);font-size:.78rem;line-height:1.35}.year-value-fields{display:grid;grid-template-columns:minmax(8rem,.8fr) repeat(2,minmax(6rem,1fr));gap:.5rem}.year-value-fields>:only-child,.year-value-fields>:nth-child(2):last-child{grid-column:span 2}.autocomplete{position:relative}.autocomplete-popover{position:absolute;z-index:4;top:calc(100% + .35rem);right:0;left:0;overflow:hidden;border:1px solid var(--line);border-radius:.6rem;background:var(--surface-raised);box-shadow:0 1rem 2.5rem #00000059}.autocomplete-list{max-height:15rem;margin:0;padding:.3rem;overflow-y:auto;list-style:none}.autocomplete-list button{width:100%;min-height:2.5rem;padding:.55rem .7rem;border:0;border-radius:.4rem;background:transparent;color:var(--text);text-align:left}.autocomplete-list [aria-selected=true] button,.autocomplete-list button:hover{background:#e45d3a2e;color:var(--accent-light)}.autocomplete-status{margin:0;padding:.8rem;color:var(--text-muted);font-size:.82rem}.autocomplete-status.is-error{color:var(--accent-light)}.icon-button{width:2.75rem;padding:0;border:1px solid var(--line);border-radius:.5rem;background:transparent;color:var(--text-muted);font-size:1.5rem}.icon-button:hover{border-color:var(--accent);color:var(--accent-light)}.builder-actions{justify-content:flex-start;padding-top:1.5rem;border-top:1px solid var(--line)}.builder-actions .primary-button{margin-left:auto}.lucky-button{border-color:#ffd1668c;color:var(--focus)}.exclusion-control{display:flex;margin-top:1rem;padding:.9rem 1rem;align-items:flex-start;gap:.75rem;border-radius:.65rem;background:#1714115c;cursor:pointer}.exclusion-control input{width:1.1rem;height:1.1rem;margin:.15rem 0 0;accent-color:var(--accent)}.exclusion-control span{display:grid;gap:.15rem}.exclusion-control small{color:var(--text-muted)}.primary-button,.secondary-button,.tertiary-button{padding:.75rem 1rem;border-radius:.55rem;font-weight:700}.primary-button{min-width:10rem;border:1px solid var(--accent);background:var(--accent);color:#fff;box-shadow:0 .8rem 2.5rem #e45d3a33}.primary-button:hover{background:#f06b47}.secondary-button,.tertiary-button{border:1px solid var(--line);background:transparent;color:var(--text)}.tertiary-button:hover{border-color:var(--accent-light)}.pre-results-copy{max-width:32rem;margin-inline:auto;color:var(--text-muted);text-align:center}.results-section{scroll-margin-top:2rem}.results-heading-row{margin-bottom:1.5rem;align-items:end}.results-heading-row .eyebrow{margin-bottom:.45rem}.eligible-count{margin:0;color:var(--text-muted);font-size:.9rem}.results-actions{display:grid;justify-items:end;gap:.65rem}.inline-notice,.result-message{border:1px solid #6d5630;border-radius:.75rem;background:#2c251a;color:#ffe2a8}.inline-notice{margin-bottom:1rem;padding:.9rem 1rem}.result-message{padding:clamp(1.5rem,5vw,3rem);text-align:center}.result-message-title{margin-bottom:.35rem;font-size:1.25rem;font-weight:700}.result-message p:last-child{margin-bottom:0;color:#e1cda7}.error-retry-button{margin-top:1rem}.movie-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.movie-card{display:flex;min-width:0;overflow:hidden;flex-direction:column;border:1px solid var(--line);border-radius:1rem;background:var(--surface);box-shadow:0 1.5rem 5rem #0000001f}.poster-frame{position:relative;isolation:isolate;overflow:hidden;flex:none;aspect-ratio:1 / 1;background:#29201a}.poster-frame:after{position:absolute;z-index:2;top:0;right:0;bottom:0;left:0;border-bottom:1px solid rgb(255 255 255 / 8%);background:linear-gradient(to bottom,#110e0c0a 55%,#110e0c4d),radial-gradient(circle at center,transparent 55%,rgb(17 14 12 / 24%));content:"";pointer-events:none}.movie-poster-backdrop,.movie-poster,.poster-placeholder{width:100%;height:100%}.movie-poster-backdrop{position:absolute;z-index:-1;top:0;right:0;bottom:0;left:0;object-fit:cover;filter:blur(22px) brightness(.5) saturate(.8);opacity:.9;transform:scale(1.12)}.movie-poster{position:relative;z-index:1;display:block;object-fit:contain;filter:drop-shadow(0 .8rem 1.4rem rgb(0 0 0 / 35%))}.poster-placeholder{display:grid;place-items:center;background:linear-gradient(145deg,transparent 45%,rgb(255 255 255 / 4%) 45%),radial-gradient(circle at 70% 15%,rgb(228 93 58 / 55%),transparent 45%),#29201a;color:#f7f0e729;font-family:"DM Serif Display",Georgia,serif;font-size:clamp(5rem,12vw,8rem)}.movie-card-body{display:flex;height:100%;padding:1.35rem;flex-direction:column}.movie-card h2{margin-bottom:.45rem}.movie-meta,.genre-list,.movie-overview{color:var(--text-muted)}.movie-meta{margin-bottom:.4rem;font-size:.8rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase}.genre-list{margin-bottom:1.2rem;font-size:.88rem}.movie-overview{font-size:.92rem}.rating-line{display:flex;align-items:center;margin-top:auto;padding-top:.5rem;gap:.4rem;color:var(--focus);font-size:.85rem;font-weight:700}.explanation{margin-top:1.25rem;padding-top:1.1rem;border-top:1px solid var(--line)}.explanation h3{margin:0 0 .55rem;font-size:.88rem}.explanation ul{display:grid;margin:0;padding-left:1.1rem;gap:.25rem;color:var(--text-muted);font-size:.84rem;line-height:1.45}.watch-availability{margin-top:1.25rem;padding-top:1.1rem;border-top:1px solid var(--line)}.watch-availability h3,.watch-heading-row,.watch-group p,.watch-status,.watch-attribution{margin:0}.watch-availability h3{font-size:.88rem}.watch-heading-row{display:flex;align-items:center;justify-content:space-between;gap:1rem}.watch-heading-row>span{padding:.15rem .4rem;border:1px solid var(--line);border-radius:999px;color:var(--text-muted);font-size:.64rem;font-weight:700;letter-spacing:.08em}.watch-groups{display:grid;margin-top:.8rem;gap:.85rem}.watch-group>p{margin-bottom:.4rem;color:var(--text-muted);font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.watch-group ul{display:flex;margin:0;padding:0;flex-wrap:wrap;gap:.4rem;list-style:none}.watch-group li{display:flex;min-width:0;max-width:100%;padding:.28rem .5rem .28rem .28rem;align-items:center;gap:.45rem;border:1px solid var(--line);border-radius:.5rem;background:#1714117a}.watch-group img{width:2rem;height:2rem;flex:0 0 auto;border-radius:.35rem}.watch-group li>span{display:grid;min-width:0}.watch-group strong,.watch-group small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.watch-group strong{max-width:8.5rem;font-size:.72rem}.watch-group small{color:var(--text-muted);font-size:.62rem}.watch-group .watch-more{padding-inline:.6rem;color:var(--text-muted);font-size:.7rem}.watch-status{margin-top:.65rem;color:var(--text-muted);font-size:.8rem}.watch-link{display:inline-block;margin-top:.75rem;color:var(--accent-light);font-size:.76rem;font-weight:700}.watch-attribution{margin-top:1rem;color:var(--text-muted);font-size:.74rem;text-align:right}.watch-attribution a{color:var(--accent-light);font-weight:700}.movie-pick-button{width:100%;margin-top:1.25rem;opacity:.58}.button-note{display:block;margin-top:.1rem;font-size:.65rem;font-weight:500}.pick-status{margin:.65rem 0 0;color:var(--text-muted);font-size:.8rem;text-align:center}.pick-status.is-success{color:#a8deb0}.pick-status.is-error{color:var(--accent-light)}.history-toolbar,.history-item,.undo-notice{display:flex;align-items:center;justify-content:space-between;gap:1rem}.history-toolbar{margin-bottom:1rem}.history-toolbar p{margin:0;color:var(--text-muted)}.history-list{display:grid;gap:.75rem}.history-item{padding:1.25rem 1.4rem;border:1px solid var(--line);border-radius:.8rem;background:var(--surface)}.history-item h2{margin-bottom:.35rem}.history-date,.history-metadata{margin:0;color:var(--text-muted)}.history-date{margin-bottom:.3rem;color:var(--accent-light);font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.history-metadata{font-size:.88rem}.undo-notice{position:sticky;z-index:3;bottom:1rem;margin-bottom:1rem;padding:.9rem 1rem;border:1px solid #5c735d;border-radius:.7rem;background:#202a21;color:#d7f3da;box-shadow:0 1rem 3rem #0000004d}.undo-notice button{min-height:auto;padding:.35rem .65rem;border:0;border-radius:.35rem;background:#d7f3da;color:#182019;font-weight:700}.history-error{margin-bottom:1rem}.auth-page{display:grid;min-height:100vh;padding:1rem;place-items:center}.auth-card{width:min(100%,34rem);padding:clamp(1.75rem,6vw,3.5rem);border:1px solid var(--line);border-radius:1rem;background:linear-gradient(145deg,var(--surface-raised),var(--surface));box-shadow:0 2rem 8rem #00000047}.auth-card h1{max-width:10ch;font-size:clamp(2.5rem,8vw,4.25rem)}.auth-wordmark{width:fit-content;margin-bottom:3.5rem}.auth-copy,.setup-note{color:var(--text-muted)}.auth-form{display:grid;margin-top:2rem;gap:1rem}.auth-form .primary-button{width:100%}.form-error{margin:0;color:var(--accent-light);font-size:.9rem}.setup-note{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--line);font-size:.9rem}code{color:var(--accent-light)}.recommendation-error{margin-bottom:clamp(3rem,9vw,7rem)}.recommendation-placeholder{display:flex;align-items:flex-start;justify-content:space-between;gap:2rem}.recommendation-placeholder>div{max-width:38rem}.phase-chip{flex:0 0 auto;padding:.55rem .75rem;border:1px solid rgb(255 181 159 / 35%);border-radius:999px;color:var(--accent-light);font-size:.78rem;font-weight:700}.content-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.about-grid{margin-bottom:1rem}.sources-panel,.tmdb-credit{margin-top:1rem}.source-list{display:grid;margin:1.5rem 0 0;padding:0;gap:.75rem;list-style:none}.source-list li{display:grid;padding:1rem;gap:.25rem;border:1px solid var(--line);border-radius:.65rem;background:#17141159}.source-list a,.tmdb-credit a:not(.tmdb-logo-link){color:var(--accent-light);font-weight:700}.source-list span{color:var(--text-muted);font-size:.9rem}.tmdb-credit{display:flex;align-items:center;justify-content:space-between;gap:clamp(2rem,7vw,6rem)}.tmdb-credit>div{max-width:42rem}.tmdb-notice{margin-top:1.25rem;font-size:.9rem}.tmdb-logo-link{flex:0 0 auto}.tmdb-logo-link img{display:block;width:7.5rem;height:auto}.empty-state{padding:clamp(2rem,6vw,4rem);text-align:center}.empty-state-title{margin-bottom:.35rem;font-size:1.25rem;font-weight:700}.button-link{display:inline-block;margin-top:1rem;padding:.8rem 1rem;border-radius:.55rem;background:var(--accent);color:#fff;font-weight:700;text-decoration:none}.site-footer{padding-block:1.5rem;border-top:1px solid var(--line);color:var(--text-muted);font-size:.85rem}.site-footer p{margin:0}@media(max-width:42rem){.site-header{min-height:auto;padding-block:1rem;align-items:flex-start;flex-direction:column}.navigation-list{width:100%}.navigation-link{padding-inline:.65rem}.recommendation-placeholder,.content-grid,.tmdb-credit{display:grid;grid-template-columns:1fr}.builder-error,.builder-heading,.builder-actions,.results-heading-row,.history-item{align-items:stretch;flex-direction:column}.criterion-row,.movie-grid{grid-template-columns:1fr}.poster-frame{aspect-ratio:4 / 5}.year-value-fields{grid-template-columns:1fr 1fr}.year-value-fields>:first-child{grid-column:1 / -1}.icon-button,.primary-button,.tertiary-button,.lucky-button{width:100%}.builder-actions .primary-button{margin-left:0}.results-actions{justify-items:stretch}.phase-chip{width:fit-content}}@media(min-width:42.01rem)and (max-width:64rem){.movie-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
