/* Mirror Factory film player (10 Nov 2026). The film's preview runs as twin dots; play resolves it into the real film with sound.
   .mfp: an inline player (.stage holds the dots host and, once played, the film). .mfp-lb: the lightbox opened by [data-film-open]. */
.mfp{position:relative;isolation:isolate}
.mfp .stage{position:relative;aspect-ratio:16/9;border-radius:16px;background:#0B0D0A}
.mfp .stage.clip{overflow:hidden}
.mfp .flw{position:absolute;inset:0;border-radius:inherit;background:#0B0D0A;transition:opacity 1.1s cubic-bezier(.16,1,.3,1)}
.mfp .flw.brk{background:none}
.mfp .flw>video,.mfp .flw>canvas{position:absolute;inset:0;width:100%;height:100%;display:block}.mfp .flw>video{object-fit:cover}
.mfp .flw canvas{opacity:0;transition:opacity 1.2s}.mfp .flw.live canvas{opacity:1}
.mfp .stage>video.full{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;border-radius:inherit;background:#000;opacity:0;pointer-events:none;transition:opacity .9s cubic-bezier(.16,1,.3,1);z-index:2}
.mfp.playing .stage>video.full{opacity:1;pointer-events:auto}.mfp.playing .flw{opacity:0}
.mfp .play{all:unset;box-sizing:border-box;position:absolute;left:50%;top:50%;z-index:3;transform:translate(-50%,-50%);display:flex;align-items:center;gap:14px;padding:9px 22px 9px 9px;border-radius:999px;background:rgba(11,13,10,.5);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:inset 0 0 0 1px rgba(242,238,229,.18),0 24px 50px -20px rgba(0,0,0,.7);color:#F2EEE5;cursor:pointer;transition:transform .5s cubic-bezier(.16,1,.3,1),opacity .5s,background .3s}
.mfp .play:hover,.mfp .play:focus-visible{background:rgba(11,13,10,.68);transform:translate(-50%,-50%) scale(1.04)}.mfp .play:focus-visible{outline:2px solid #CEF25A;outline-offset:3px}
.mfp .play .ic,.btn.film .ic{position:relative;display:grid;place-items:center;flex:none;border-radius:50%;background:#F2EEE5}
.mfp .play .ic{width:50px;height:50px}.mfp .play .ic svg{width:16px;height:16px;margin-left:3px;fill:#0B0D0A}
.mfp .play .ic::after{content:"";position:absolute;inset:-7px;border-radius:50%;background:conic-gradient(#CEF25A 0 25%,#90ECE2 0 50%,#A6B5DD 0 75%,#F5B688 0);-webkit-mask:radial-gradient(circle,transparent 0 calc(50% - 1.5px),#000 calc(50% - 1px));mask:radial-gradient(circle,transparent 0 calc(50% - 1.5px),#000 calc(50% - 1px));animation:mfpspin 9s linear infinite;opacity:.9}
@keyframes mfpspin{to{transform:rotate(360deg)}}
.mfp .play b{display:block;font:500 15px/1.15 "MF Manrope",sans-serif;letter-spacing:-.005em}.mfp .play small{display:block;margin-top:4px;font:500 11px/1 "MF Mono",monospace;letter-spacing:.05em;color:rgba(242,238,229,.62)}
.mfp.playing .play{opacity:0;pointer-events:none;transform:translate(-50%,-50%) scale(.92)}
.mfp .tl{position:absolute;left:16px;top:14px;z-index:3;display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:999px;background:rgba(11,13,10,.5);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font:500 10.5px/1 "MF Mono",monospace;letter-spacing:.06em;text-transform:uppercase;color:rgba(242,238,229,.82);transition:opacity .5s}
.mfp .tl i{width:6px;height:6px;border-radius:50%;background:#CEF25A}.mfp.playing .tl{opacity:0}
.mfp .close,.mfp-box .close{all:unset;box-sizing:border-box;position:absolute;right:14px;top:14px;z-index:4;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:rgba(11,13,10,.62);color:#F2EEE5;box-shadow:inset 0 0 0 1px rgba(242,238,229,.22);cursor:pointer;font:400 20px/1 "MF Manrope",sans-serif}
.mfp .close{opacity:0;pointer-events:none;transition:opacity .4s}.mfp.playing .close{opacity:1;pointer-events:auto}
/* the hero film button (11 Nov 2026): a plain secondary button, the same size and corners as the others, with a round play mark */
.btn.film{display:inline-flex;align-items:center;gap:10px;height:40px;padding:0 16px 0 7px;border-radius:7px;background:rgba(11,13,10,.42);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:inset 0 0 0 1px rgba(242,238,229,.26);color:#F2EEE5;text-decoration:none;font:500 14px/1 "MF Manrope",sans-serif;cursor:pointer;white-space:nowrap;transition:background .3s,box-shadow .3s,transform .25s}
.btn.film:hover{background:rgba(11,13,10,.6);box-shadow:inset 0 0 0 1px rgba(242,238,229,.55);transform:translateY(-1px)}
.btn.film:focus-visible{outline:2px solid #F2EEE5;outline-offset:3px}
.btn.film .ic{width:26px;height:26px;background:#F2EEE5;transition:transform .3s}.btn.film:hover .ic{transform:scale(1.06)}
.btn.film .ic svg{width:9px;height:9px;margin-left:2px;fill:#0B0D0A}
.btn.film small{display:none}
/* lightbox */
.mfp-lb{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:4vw;background:rgba(8,9,7,.88);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:0;transition:opacity .45s}
.mfp-lb.on{opacity:1}
.mfp-box{position:relative;width:min(1280px,100%,calc((100vh - 8vw) * 16 / 9));aspect-ratio:16/9;border-radius:16px;overflow:hidden;background:#0B0D0A;box-shadow:0 40px 120px -40px rgba(0,0,0,.9);transform:scale(.97);transition:transform .6s cubic-bezier(.16,1,.3,1)}
.mfp-lb.on .mfp-box{transform:none}
.mfp-box video{position:absolute;inset:0;width:100%;height:100%;background:#000}
.mfp-box canvas.dots{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;opacity:0;transition:opacity 1.6s ease}
.mfp-box.drawn canvas.dots{opacity:1;transition:opacity .5s ease}.mfp-box.drawn.live canvas.dots{opacity:0;transition:opacity 1.8s ease}
@media (max-width:760px){.mfp .play{gap:0;padding:7px}.mfp .play>span:last-child{display:none}.mfp .play .ic{width:46px;height:46px}.mfp .tl{left:10px;top:10px}}
@media (prefers-reduced-motion:reduce){.mfp .play .ic::after{animation:none}}

