.vibe-sticker{display:block;position:relative;width:80px;height:52px;pointer-events:none;flex:none}.vibe-canvas{position:absolute;inset:0;width:80px;height:52px;transform:scale(var(--vibe-scale,1));transform-origin:0 0}html[data-layout] dialog.film-review-dialog{position:fixed;inset:0;box-sizing:border-box;width:min(380px,calc(100vw - 24px));max-width:none;height:fit-content;max-height:calc(100dvh - 24px);margin:auto;padding:160px 0 96px;border:0;border-radius:0;background:transparent;box-shadow:none;overflow-x:hidden;overflow-y:auto;color:#fff;font-family:"Medeo Sans",Arial,sans-serif;scrollbar-width:none}
.film-review-dialog::backdrop{background:#0009;backdrop-filter:blur(21px);-webkit-backdrop-filter:blur(21px)}
.film-review-form{position:relative;padding:152px 20px 20px;border-radius:40px;background:#101010;margin:0}
.review-poster{position:absolute;top:-64px;left:50%;width:128px;height:192px;transform:translateX(-50%)}.review-poster-image,.review-poster-glow{display:block;width:128px;height:192px;object-fit:cover;border-radius:20px;border:1px solid #ffffff29}.review-poster-image{position:relative}.review-poster-glow{position:absolute;inset:0;opacity:.6;filter:blur(30px);pointer-events:none}.review-poster-score{position:absolute;top:8px;left:8px;min-width:24px;height:24px;display:grid;place-items:center;border-radius:50%;background:#888;border:1.5px solid #ffffff40;font-size:14px;line-height:20px;font-weight:800}.review-poster-score[data-tone=good]{background:#3bb33b}.review-poster-score[data-tone=bad]{background:#ff375f}.review-poster-score[hidden]{display:none}.review-poster-vibe{position:absolute;right:-8px;bottom:-8px}
.review-close{position:absolute;right:20px;top:20px;display:grid;place-items:center;width:56px;height:56px;padding:16px;border:0;border-radius:50%;background:#1e1e1e;box-shadow:inset 0 0 0 1px #ffffff12;cursor:pointer}.review-body{display:flex;flex-direction:column;gap:24px;min-width:0}.review-body h2{margin:0 0 12px;text-align:center;font-size:24px;line-height:32px;font-weight:700}.review-scores{display:flex;align-items:center;height:52px;border-radius:28px;background:#1e1e1e;box-shadow:inset 0 0 0 1px #ffffff15;padding:0 8px;gap:2px}.review-scores button{flex:1;min-width:0;height:44px;padding:0;border:0;background:none;color:#fff9;font:700 16px/20px "Medeo Sans",Arial,sans-serif;cursor:pointer;transition:color .2s,font-size .2s}.review-scores button[aria-checked=true]{font-size:24px;line-height:32px;color:#fff}.review-scores button.is-good{color:#3bb33b}.review-scores button.is-bad{color:#ff375f}.review-rating>p{font-size:12px;line-height:16px;text-align:center;color:#fff9;margin:6px 0 0}.review-body h3{font-size:14px;line-height:20px;font-weight:600;margin:0 0 8px}.review-body section{min-width:0}.review-vibes{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;padding:8px 4px 12px;margin:-8px -4px -8px;mask-image:linear-gradient(to right,#000 90%,transparent);scroll-snap-type:x proximity}.review-vibes button{flex:none;padding:0;border:0;background:none;cursor:pointer;scroll-snap-align:start;transition:filter .25s,opacity .25s,transform .25s}.review-vibes.has-selection button:not([aria-pressed=true]){filter:grayscale(1);opacity:.4}.review-vibes button[aria-pressed=true]{filter:none;opacity:1}.review-dates{display:flex;gap:4px}.review-dates button{flex:1;white-space:nowrap;height:44px;border:0;border-radius:999px;padding:10px 6px;background:none;color:#fff9;font:600 14px/20px "Medeo Sans",Arial,sans-serif;cursor:pointer}.review-dates button[aria-pressed=true]{background:#333;color:#fff}.review-body input[type=date]{box-sizing:border-box;width:100%;margin-top:12px;padding:12px;border:1px solid #ffffff29;border-radius:16px;background:#1e1e1e;color:#fff;color-scheme:dark;font:14px "Medeo Sans",Arial,sans-serif}.review-body [data-review-done]{height:56px;min-height:56px;width:100%;padding:0 20px;border:0;border-radius:32px;background:#fb6500;color:#fff;font:600 16px/20px "Medeo Sans",Arial,sans-serif;cursor:pointer;transition:background .25s}.review-body [data-review-done]:disabled{background:#ffffff14;color:#fff6;cursor:default}.review-error:empty{display:none}.review-error{margin:0;color:#ff7c91;font-size:12px;line-height:16px}.film-review-dialog button:focus-visible{outline:2px solid #fb6500;outline-offset:2px}
.film-desktop-art>.film-own-rating{position:absolute;left:16px;top:16px;min-width:36px;height:36px;border:2px solid #ffffff40;border-radius:50%;display:grid;place-items:center;background:#888;font:700 20px/24px "Medeo Sans",Arial,sans-serif}.film-own-rating.is-good{background:#3bb33b}.film-own-rating.is-bad{background:#ff375f}.film-desktop-art>.film-own-vibe{position:absolute;right:-12px;bottom:-12px;width:160px;height:104px;--vibe-scale:2}.profile-poster-card .profile-own-vibe{position:absolute;right:-8px;top:calc(150cqw - 44px);z-index:4}.profile-poster-card{container-type:inline-size}
@media(hover:hover) and (pointer:fine){.review-vibes button:hover{transform:none;opacity:1!important;filter:none!important}.review-close:hover,.review-dates button:hover{background:#333}.review-body [data-review-done]:not(:disabled):hover{background:#ff7c22}}
@media(prefers-reduced-motion:reduce){.film-review-dialog button{transition:none}.review-vibes button:hover{transform:none}}

.review-scores button[data-score-tone=bad]{--score-color:#ff375f}.review-scores button[data-score-tone=neutral]{--score-color:#999}.review-scores button[data-score-tone=good]{--score-color:#3bb33b}.review-scores button[aria-checked=true]{color:var(--score-color,#fff)}
@media(hover:hover) and (pointer:fine){.review-scores:has(button:hover) button[aria-checked=true]:not(:hover){font-size:16px;line-height:20px;color:#fff9}.review-scores button:hover{font-size:24px;line-height:32px;color:var(--score-color,#fff)}}

.review-vibes .film-hover-surface::after{display:none}
@media(hover:hover) and (pointer:fine){.review-vibes .is-film-hovered>.film-hover-surface{transform:rotateX(var(--film-rx,0deg)) rotateY(var(--film-ry,0deg)) translateY(-2px) scale(1.1)}}
@media(prefers-reduced-motion:reduce){.review-vibes .film-hover-surface{transform:none!important}}

.vibe-canvas>.vibe-vector{display:block;width:80px;height:52px;max-width:none;max-height:none;transform:none;backface-visibility:hidden}

.review-vibes .film-hover-surface{display:block;width:80px;height:52px}

/* Keep disclosure geometry in the layout so the centred popup grows continuously. */
.review-date-picker{display:grid;grid-template-rows:0fr;opacity:0;pointer-events:none;transition:grid-template-rows .32s cubic-bezier(.22,1,.36,1) .14s,opacity .12s ease}
.review-date-picker>div{min-height:0;overflow:visible}
.review-date-picker.is-open{grid-template-rows:1fr;opacity:1;pointer-events:auto;transition:grid-template-rows .32s cubic-bezier(.22,1,.36,1),opacity .18s ease .16s}
.review-scores button,.review-scores button[aria-checked=true],.review-scores button:hover,.review-scores:has(button:hover) button[aria-checked=true]:not(:hover){font-size:16px;line-height:20px;transition:color .26s ease}
.review-scores button>span{display:inline-block;transform:scale(1);transition:transform .36s cubic-bezier(.22,1,.36,1)}
.review-scores button[aria-checked=true]>span{transform:scale(1.5)}
.review-vibes button{transition:filter .36s ease,opacity .36s ease}
.review-close,.review-dates button{transition:background .3s ease,color .3s ease,box-shadow .3s ease}
.review-vibes .film-hover-surface{transition:transform .48s cubic-bezier(.22,1,.36,1)}
.film-review-dialog[open] .film-review-form{animation:film-review-enter .32s cubic-bezier(.22,1,.36,1) both}
.film-review-dialog[open]::backdrop{animation:film-review-backdrop .26s ease both}
@keyframes film-review-enter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes film-review-backdrop{from{opacity:0}to{opacity:1}}
@media(hover:hover) and (pointer:fine){.review-scores:has(button:hover) button[aria-checked=true]:not(:hover)>span{transform:scale(1)}.review-scores button:hover>span{transform:scale(1.5)}}
@media(prefers-reduced-motion:reduce){.review-date-picker,.review-scores button>span,.review-vibes button,.review-vibes .film-hover-surface{transition:none}.film-review-dialog[open] .film-review-form,.film-review-dialog[open]::backdrop{animation:none}}

.review-poster-vibe .is-sticking{transform-origin:55% 60%;animation:review-sticker-stick .36s cubic-bezier(.22,1,.36,1) both}
@keyframes review-sticker-stick{from{opacity:0;transform:translateY(-5px) rotate(-4deg) scale(1.2)}to{opacity:1;transform:translateY(0) rotate(0deg) scale(1)}}
@media(prefers-reduced-motion:reduce){.review-poster-vibe .is-sticking{animation:none}}

.review-poster-score{transition:background-color .28s ease,border-color .28s ease,transform .32s cubic-bezier(.22,1,.36,1);transform-origin:50% 50%;transform:scale(1)}.review-poster-score.is-preview{transform:scale(1.4)}
@media(prefers-reduced-motion:reduce){.review-poster-score{transition:none}}

/* Draw focus inside the complete, unclipped native date field. */
html[data-layout] .film-review-dialog input[type=date]{outline:none;outline-offset:0;transition:border-color .24s ease,box-shadow .24s ease}
html[data-layout] .film-review-dialog input[type=date]:focus-visible{outline:none;border-color:#fb650099;box-shadow:inset 0 0 0 1px #fb650099}
@media(prefers-reduced-motion:reduce){html[data-layout] .film-review-dialog input[type=date]{transition:none}}

/* Figma 1027:14477: inside 1px, white 16%, exported linear-gradient handles. */
.film-review-form::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:linear-gradient(101.416deg,#ffffff29 9.435%,#ffffff00 27.602%,#ffffff00 74.727%,#ffffff29 98.492%);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}

/* Adjacent full-height hit areas; preview resets only outside the whole rail. */
.review-scores{gap:0}

.review-dates button{transition:background-color .42s cubic-bezier(.22,1,.36,1),color .42s cubic-bezier(.22,1,.36,1)}
@media(hover:hover) and (pointer:fine){.review-dates button:not([aria-pressed=true]):hover{background-color:#ffffff0a;color:#fff}.review-dates button[aria-pressed=true]:hover{background-color:#333}}
@media(prefers-reduced-motion:reduce){.review-dates button{transition:none}}


/* Five impressions stay visible: full-size hit areas, no overlays or scroll. */
.review-vibes{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;overflow:visible;mask-image:none;margin:-8px 0 -8px;padding:8px 0 12px}
.review-vibes button{display:block;min-width:0;width:100%;height:52px;container-type:inline-size;border-radius:12px}
.review-vibes .film-hover-surface{width:100%;height:52px}
.review-vibes .vibe-sticker{width:100%;height:52px}
.review-vibes .vibe-canvas{left:50%;top:50%;transform:translate(-50%,-50%) scale(.8);transform-origin:50% 50%}
@supports(width:1cqw){.review-vibes .vibe-canvas{transform:translate(-50%,-50%) scale(min(1,calc(100cqw / 80px)))}}
/* Figma 1047:1671: create and editable saved review share the same slots. */
.review-body{gap:0}.review-body h2{margin:0 0 12px}.review-body>section{padding:12px 0;border-bottom:1px solid #ffffff0a}.review-body>section[data-review-field=date]{border-bottom:0}.review-body [data-review-done]{margin-top:12px}.review-body h3{font-family:"Medeo Sans",Arial,sans-serif;font-weight:600}.review-poster-score{box-sizing:border-box;width:24px;min-width:24px;height:24px;font:800 14px/20px "Medeo Sans",Arial,sans-serif}.review-poster-score[data-tone=good]{background:#3bb33b}
.review-summary{display:none;gap:8px;align-items:center}.is-summary>.review-summary{display:flex}.is-summary>.review-editor{display:none}.review-summary-value{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0;flex:1;height:52px;border:0;border-radius:28px;padding:0 16px;background:#1e1e1e;box-shadow:inset 0 0 0 1px #ffffff15;color:#fff;font:600 14px/20px "Medeo Sans",Arial,sans-serif;cursor:pointer;transition:background .42s cubic-bezier(.22,1,.36,1)}.review-summary-value>span:last-child{color:#fff9}.review-summary-value [data-review-value]{display:flex;align-items:center;min-width:0}.review-summary-value strong{font:700 24px/32px "Medeo Sans",Arial,sans-serif}.review-summary-value strong[data-tone=good]{color:#3bb33b}.review-summary-value strong[data-tone=bad]{color:#ff375f}.review-summary-value small{color:#fff9;font:700 16px/20px "Medeo Sans",Arial,sans-serif;margin-left:4px}.review-clear,.review-vibes-next{flex:none;display:grid;place-items:center;width:44px;height:44px;padding:10px;border:0;border-radius:50%;background:#1e1e1e;box-shadow:inset 0 0 0 1px #ffffff12;cursor:pointer;transition:background .42s ease}.review-clear img{opacity:.6}.review-clear[hidden]{display:none}.review-remove{height:56px;margin-top:8px;border:0;border-radius:32px;background:none;color:#ff375f;font:600 16px/20px "Medeo Sans",Arial,sans-serif;cursor:pointer;transition:background .42s ease}
.review-vibe-editor{display:flex;gap:4px;align-items:center}.review-vibes{display:flex;flex:1;min-width:0;gap:4px;overflow-x:auto;overflow-y:hidden;mask-image:linear-gradient(to right,#000 85%,transparent);margin:-8px 0;padding:8px 0;scrollbar-width:none}.review-vibes button{width:80px;min-width:80px;flex:none;container-type:normal}.review-vibes .film-hover-surface,.review-vibes .vibe-sticker{width:80px}.review-vibes .vibe-canvas{transform:translate(-50%,-50%)}.review-vibes-next{width:36px;height:36px;padding:6px}.review-vibes-next img{transform:rotate(180deg)}
@media(hover:hover){.review-summary-value:hover,.review-clear:hover,.review-vibes-next:hover{background:#292929}.review-remove:hover{background:#ff375f0a}}
@media(prefers-reduced-motion:reduce){.review-summary-value,.review-clear,.review-vibes-next,.review-remove{transition:none}}
/* Compact rating removal; impressions keep their original toggle rail. */
.review-clear{width:36px;height:36px;padding:8px}.review-clear img{width:20px;height:20px}
/* Fixed, disjoint slots: the clipped sticker viewport can never cover the control. */
.review-vibe-editor{position:relative;display:block;isolation:isolate}
.review-vibe-editor .review-vibes{position:relative;z-index:0;isolation:isolate;box-sizing:border-box;width:calc(100% - 44px);padding:8px 4px;margin:-8px 0;overflow-x:auto;overflow-y:hidden;mask-image:none;scroll-snap-type:none;scroll-behavior:auto}
.review-vibes button{scroll-snap-align:none}
.review-vibe-editor::before,.review-vibe-editor::after{content:"";position:absolute;z-index:1;top:0;bottom:0;width:32px;pointer-events:none;opacity:0;transition:opacity .28s ease}
.review-vibe-editor::before{left:0;background:linear-gradient(to right,#101010,transparent)}
.review-vibe-editor::after{right:44px;background:linear-gradient(to left,#101010,transparent)}
.review-vibe-editor.has-before::before,.review-vibe-editor.has-after::after{opacity:1}
.review-vibe-editor .review-vibes-next{position:absolute;z-index:2;right:0;left:auto;top:50%;transform:translateY(-50%);opacity:1;pointer-events:auto;transition:background .3s ease}
.review-vibe-editor .review-vibes-next[hidden]{display:none}
.review-vibe-editor .review-vibes-next img{transform:rotate(180deg);transition:transform .32s cubic-bezier(.22,1,.36,1)}
.review-vibe-editor.is-backward .review-vibes-next img{transform:rotate(0deg)}
.film-review-dialog .review-vibes button:focus-visible{outline:none;box-shadow:inset 0 0 0 2px #fb6500;border-radius:12px}
@media(prefers-reduced-motion:reduce){.review-vibe-editor::before,.review-vibe-editor::after,.review-vibe-editor .review-vibes-next,.review-vibe-editor .review-vibes-next img{transition:none}}

/* Figma 1122:15967: companions are a step inside the same review popup. */
.review-body>section[data-review-field=date]{border-bottom:1px solid #ffffff0a}.review-body>.review-companions{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:80px;box-sizing:border-box;border-bottom:0}.review-companions>div{flex:1;min-width:0}.review-companions h3{margin:0 0 4px}.review-companions small{display:block;max-width:148px;color:#fff6;font:500 12px/16px "Medeo Sans",sans-serif}.review-companions>button{display:flex;align-items:center;flex:none;max-width:160px;padding:0;border:0;background:none;cursor:pointer}.review-companion-avatars{display:flex;padding-left:0}.review-companion-avatars>img{display:block;box-sizing:border-box;width:52px;height:52px;object-fit:cover;border:2px solid #101010;border-radius:50%;margin-right:-24px}.review-companion-add{display:grid;position:relative;place-items:center;width:52px;height:52px;background:#1e1e1e;border:1px solid #ffffff14;border-radius:50%;transition:background .4s ease}.review-companion-add img{opacity:.6}.film-review-form.is-choosing-people .review-body{display:none}.review-companion-body{display:flex;flex-direction:column;min-height:499px;max-height:680px;gap:0}.review-companion-body h2{margin:0 0 12px;text-align:center;font:700 24px/32px "Medeo Sans",sans-serif}.review-picker-back{display:grid;place-items:center;position:absolute;left:20px;top:21px;width:56px;height:56px;padding:16px;border:0;border-radius:50%;background:#1e1e1e;cursor:pointer}.review-people-search{display:flex;flex-direction:column;gap:8px;color:#fff9;font:600 14px/20px "Medeo Sans",sans-serif}.review-people-search>span:last-child{display:flex;align-items:center;gap:8px;height:52px;box-sizing:border-box;padding:0 16px;border:1px solid #ffffff1f;background:#1e1e1e;border-radius:28px}.review-people-search input{flex:1;min-width:0;width:100%;height:100%;border:0;outline:0;padding:0;background:none;color:#fff;font:600 16px/20px "Medeo Sans",sans-serif}.review-people-search>span:focus-within{border-color:#fb650070}.review-people-search img{flex:none;opacity:.6}.review-companion-body>header{display:flex;justify-content:space-between;gap:12px;margin-top:16px;font:600 14px/20px "Medeo Sans",sans-serif;color:#fff9}.review-companion-body>header b{color:#fb6500;font:inherit}.review-people-results{overflow:auto;max-height:250px;scrollbar-width:thin;min-height:0}.review-person{display:flex;gap:10px;align-items:center;padding:16px 0;border-bottom:1px solid #ffffff0a;min-width:0}.review-person-avatar{display:grid;place-items:center;flex:none;overflow:hidden;width:40px;height:40px;border-radius:50%;background:#333}.review-person-avatar img{display:block;width:40px;height:40px;object-fit:cover}.review-person strong{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:600 14px/20px "Medeo Sans",sans-serif}.review-person button{height:40px;padding:0 12px;border:0;border-radius:24px;color:#fb6500;background:transparent;font:600 14px/20px "Medeo Sans",sans-serif;cursor:pointer;transition:background .4s ease,color .4s ease}.review-person button[aria-pressed=true]{color:#fff;background:#3b3b3b}.review-people-status{margin:8px 0;color:#fff6;font:500 12px/16px "Medeo Sans",sans-serif}.review-people-status:empty{display:none}.review-companion-body [data-people-more]{align-self:center;background:none;border:0;color:#fb6500;padding:8px;cursor:pointer}.review-companion-body [hidden]{display:none}.review-companion-body .review-people-done{min-height:56px;width:100%;margin-top:auto;flex:none;border:0;border-radius:32px;background:#fb6500;color:#fff;font:600 16px/20px "Medeo Sans",sans-serif;cursor:pointer;transition:background .4s ease}.review-companion-body .review-people-done:disabled{background:#222;color:#fff6;cursor:default}.review-companion-body .review-people-results+.review-people-status{margin-bottom:16px}
@media(hover:hover) and (pointer:fine){.review-companion-add:hover,.review-picker-back:hover{background:#2a2a2a}.review-person button:hover{background:#ffffff0a}.review-person button[aria-pressed=true]:hover{background:#454545}.review-people-done:not(:disabled):hover{background:#ff761b}}
@media(prefers-reduced-motion:reduce){.review-companions *,.review-companion-body *{transition:none!important}}

/* Keep the floating poster reachable on short screens and between popup steps. */
html[data-layout] dialog.film-review-dialog{padding-top:88px;padding-bottom:24px}
