/* This companion lives outside the page flow. All existing portfolio layout is retained. */
.cinema-launch[hidden],.cinema-companion [hidden]{display:none!important}
.cinema-launch{position:fixed;z-index:45;right:24px;bottom:max(20px,env(safe-area-inset-bottom));display:flex;align-items:center;gap:7px;min-height:46px;padding:3px 15px 3px 4px;border:1px solid #555449;border-radius:3px;background:#11120fef;box-shadow:0 4px 25px #0003;color:#d5d5c9;font:inherit;font-size:.75rem;letter-spacing:.025em;cursor:pointer;transition:border-color .25s,background .25s}
.cinema-launch img{width:38px;height:38px;object-fit:contain;flex-shrink:0}
.cinema-launch:hover{border-color:#9e9b88;background:#191a16}
.cinema-companion{--cinema-line:#393b32;--cinema-muted:#a0a396;position:fixed;inset:auto 24px 82px auto;padding:0;margin:0;width:min(462px,calc(100vw - 48px));height:min(790px,calc(100dvh - 110px));max-height:none;max-width:none;border:1px solid #55564a;border-radius:3px;background:#0f110e;color:#e5e5db;box-shadow:0 24px 90px #0009;overscroll-behavior:contain;overflow:hidden;opacity:0;transform:translateY(8px);transition:opacity .25s,transform .3s}
.cinema-companion.is-visible{opacity:1;transform:translateY(0)}
.cinema-companion::backdrop{background:#05060470;backdrop-filter:blur(3px)}
.cinema-shell{height:100%;display:flex;flex-direction:column;min-height:0}
.cinema-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px 24px 0;flex-shrink:0}
.cinema-kicker{font-size:.625rem;letter-spacing:.13em;text-transform:uppercase;color:#a8a998}
.cinema-header h2{font-size:1.75rem;font-weight:400;letter-spacing:-.045em;line-height:1.3;margin:8px 0 0}
.cinema-close{align-self:flex-start;width:44px;min-height:44px;margin:-7px -11px 0 0;padding:0;background:none;border:0;color:#c0c2b6;font-size:1.6rem;font-weight:300;cursor:pointer}
.cinema-intro{display:flex;align-items:center;gap:14px;padding:15px 24px 13px;flex-shrink:0}
.cinema-character{width:81px;flex:0 0 81px;align-self:center;transform-origin:50% 87%}
.cinema-character img{display:block;width:100%;height:auto;object-fit:contain;filter:drop-shadow(0 6px 7px #0005)}
.cinema-companion.is-thinking .cinema-character{animation:cinema-nod 1.2s ease-in-out 2}
.cinema-companion.is-speaking .cinema-character{animation:cinema-talk .85s ease-in-out infinite}
.cinema-intro p{margin:0;font-size:.9375rem;line-height:1.5;color:#d1d4c7}
.cinema-intro .cinema-subline{font-size:.75rem;color:var(--cinema-muted);margin-top:5px}
.cinema-activity{display:block;font-size:.625rem;letter-spacing:.035em;color:#979b8e;margin-top:9px}
.cinema-controls{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:0 24px;padding:10px 0;border-block:1px solid var(--cinema-line);flex-shrink:0}
.cinema-controls select{min-width:0;width:59%;min-height:44px;border:0;border-radius:0;background:transparent;color:#d1d3c6;font:inherit;font-size:.75rem;padding:7px 22px 7px 0;cursor:pointer;text-overflow:ellipsis;color-scheme:dark}
.cinema-controls select option{background:#151711;color:#e5e5db}
.cinema-random{background:none;border:0;color:#d2c7ab;font:inherit;font-size:.75rem;min-height:44px;white-space:nowrap;cursor:pointer;padding:5px 0}
.cinema-random span{font-size:1rem;margin-left:7px}
.cinema-conversation{min-height:100px;flex:1;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#4d5145 transparent;padding:22px 24px 12px;scroll-behavior:smooth;outline-offset:-3px}
.cinema-loading,.cinema-notice{font-size:.875rem;line-height:1.7;color:#b5b8a8;padding:8px 0}
.cinema-user{font-size:.8125rem;color:#c5c8bb;line-height:1.6;margin:20px 0 24px 36px;padding:12px 14px;border-left:1px solid #575b4d;background:#ffffff03;overflow-wrap:anywhere}
.cinema-lesson{margin:0 0 27px;padding-bottom:25px;border-bottom:1px solid #30332a}
.cinema-lesson:last-child{margin-bottom:0}
.cinema-lesson-kicker{font-size:.625rem;color:#a2a38e;letter-spacing:.11em;text-transform:uppercase;line-height:1.6}
.cinema-lesson h3{font-size:1.45rem;line-height:1.25;letter-spacing:-.035em;font-weight:400;margin:10px 0 14px}
.cinema-lesson p{font-size:.9375rem;line-height:1.8;color:#ced1c3;margin:0 0 14px;overflow-wrap:anywhere}
.cinema-lesson.is-arriving{animation:cinema-reveal .5s ease both}
.cinema-source{margin-top:17px;color:#969d8b;font-size:.6875rem;line-height:1.6}
.cinema-source summary{display:flex;align-items:center;gap:10px;min-height:34px;cursor:pointer;list-style:none;font-size:.6875rem;color:#a3a795}
.cinema-source summary::-webkit-details-marker{display:none}
.cinema-source summary:after{content:'+';margin-left:auto;font-size:1rem}
.cinema-source[open] summary:after{content:'−'}
.cinema-source .cinema-source-label{font-size:.6875rem;line-height:1.7;color:#abb09e;margin:10px 0}
.cinema-source blockquote{padding:0 0 0 13px;margin:10px 0 18px;border-left:1px solid #5a5e4e;font-size:.75rem;line-height:1.8;color:#a7ac9a;white-space:pre-line;overflow-wrap:anywhere}
.cinema-source a,.cinema-reference{color:#c4bca3;text-decoration:none;border-bottom:1px solid #646550}
.cinema-lesson .cinema-context{font-size:.6875rem;line-height:1.7;color:#9fa591;margin-top:13px}
.cinema-references{display:flex;flex-direction:column;align-items:flex-start;gap:10px;margin:18px 0 0;font-size:.75rem;line-height:1.6}
.cinema-related{display:flex;flex-wrap:wrap;gap:6px 14px;margin:4px 0 23px}
.cinema-related button{font:inherit;font-size:.75rem;color:#bfc2af;background:none;padding:6px 0;min-height:35px;border:0;border-bottom:1px solid #4d5340;cursor:pointer;text-align:left;line-height:1.5}
.cinema-reading{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:9px 24px;border-top:1px solid var(--cinema-line);flex-shrink:0;color:#939b88;font-size:.625rem;line-height:1.5;font-variant-numeric:tabular-nums}
.cinema-reading>div{display:flex;gap:18px}
.cinema-reading button{font:inherit;font-size:.6875rem;min-height:36px;padding:4px 0;border:0;background:none;color:#c8cbbb;cursor:pointer}
.cinema-reading button[aria-pressed=true]{color:#e0c9a8}
.cinema-suggestions{display:flex;gap:13px;margin:0 24px 6px;flex-shrink:0}
.cinema-suggestions button{min-height:33px;border:0;background:none;color:#a9af9b;font:inherit;font-size:.6875rem;padding:4px 0;cursor:pointer}
.cinema-form{display:flex;align-items:center;gap:10px;margin:0 24px;padding:5px 0;border-block:1px solid #616550;flex-shrink:0}
.cinema-form input{min-width:0;flex:1;min-height:46px;border:0;border-radius:0;background:none;font:inherit;font-size:1rem;line-height:1.5;color:#e1e5d7;outline-offset:2px;padding:8px 0}
.cinema-form input::placeholder{color:#969e89;font-size:.8125rem;opacity:1}
.cinema-form button{min-width:44px;min-height:44px;border:0;background:none;color:#d5d8c8;font-size:1.25rem;cursor:pointer;padding:0}
.cinema-footnote{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:13px 24px 18px;font-size:.5625rem;line-height:1.7;letter-spacing:.015em;color:#8f9682;flex-shrink:0}
.cinema-footnote a{white-space:nowrap;text-decoration:none;color:#adb39d;min-height:26px}
.cinema-companion button:disabled,.cinema-companion select:disabled{opacity:.4;cursor:default}
.cinema-companion :focus-visible,.cinema-launch:focus-visible{outline:1px solid #d1c6a4;outline-offset:4px}
.cinema-retry{display:block;min-height:44px;padding:7px 0;background:none;border:0;border-bottom:1px solid #898b73;font:inherit;font-size:.875rem;color:#d5d7c6;cursor:pointer}
@keyframes cinema-nod{0%,100%{transform:rotate(0)}50%{transform:rotate(-3deg) translateY(-2px)}}
@keyframes cinema-talk{0%,100%{transform:translateY(0) rotate(-1deg)}45%{transform:translateY(-2px) rotate(1.5deg)}70%{transform:translateY(-1px) rotate(0)}}
@keyframes cinema-reveal{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:600px){
 .cinema-launch{right:14px;bottom:max(14px,env(safe-area-inset-bottom));padding-right:12px;font-size:.6875rem;gap:3px;min-height:44px}
 .cinema-launch img{width:34px;height:34px}
 .cinema-companion{inset:auto 10px max(10px,env(safe-area-inset-bottom)) 10px;width:auto;height:min(760px,calc(100dvh - 24px));max-height:calc(100dvh - 24px)}
 .cinema-header{padding:19px 19px 0}.cinema-intro{padding:11px 19px}.cinema-controls,.cinema-form{margin-inline:19px}.cinema-conversation{padding:20px 19px 8px}.cinema-reading{padding-inline:19px}.cinema-suggestions{margin-inline:19px}.cinema-footnote{padding:11px 19px 14px}
 .cinema-character{width:65px;flex-basis:65px}.cinema-header h2{font-size:1.6rem}.cinema-intro p{font-size:.875rem}.cinema-subline{max-width:225px}.cinema-lesson h3{font-size:1.4rem}
}
@media(max-height:660px){.cinema-intro{display:none}.cinema-header{padding-top:15px;padding-bottom:12px}.cinema-header h2{font-size:1.4rem;margin-top:3px}.cinema-controls{padding-block:3px}.cinema-suggestions{display:none}.cinema-footnote{padding-top:8px;padding-bottom:9px}.cinema-conversation{min-height:85px}.cinema-companion{bottom:10px;height:calc(100dvh - 20px);max-height:calc(100dvh - 20px)}}
@media(prefers-reduced-motion:reduce){.cinema-launch,.cinema-companion{transition:none}.cinema-companion .cinema-character,.cinema-lesson.is-arriving{animation:none!important}.cinema-conversation{scroll-behavior:auto}}
@media print{.cinema-launch,.cinema-companion{display:none!important}}
