/* Shared film player controls, approved 14 Sept 2026 (docs/design/tutorial-player).
   Used by web/friendship-film and web/romance-film, and inlined by the app packagers. */
.fp-player{--lav:#edbaff;--teal:#71d7cd;--progress:0%;--buffer:0%;position:relative;border:1px solid #c19ad447;border-radius:16px;background:#120f18;overflow:hidden;box-shadow:0 8px 25px #0004;color:#eee5f4;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.fp-player *{box-sizing:border-box}
.fp-player [hidden]{display:none!important}
.fp-player button{font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;color:#cab1d8;background:none;border:0;padding:0;display:flex;align-items:center;justify-content:center;min-height:48px}
.fp-player button:disabled{opacity:.4;cursor:default}
.fp-player button:focus-visible,.fp-player input:focus-visible{outline:2px solid var(--teal);outline-offset:4px}
/* Stable hit targets: decorative descendants never become pointer targets. */
.fp-player button>*{pointer-events:none}
.fp-picture{position:relative;aspect-ratio:16/9;background:#111322}
.fp-video{display:block;width:100%;height:100%;object-fit:contain;background:#111322}
.fp-loading{position:absolute;inset:0;display:grid;place-items:center;background:#100e15;color:#baa8c7;font-size:14px}
.fp-stage-play{position:absolute;inset:0;width:100%;height:100%;gap:11px;background:linear-gradient(0deg,#100d1744,#100d1711);color:#f1dffa;font-size:12px;text-shadow:0 1px 5px #000}
.fp-stage-ring{width:50px;height:50px;display:grid;place-items:center;border:1px solid #edbaffb0;border-radius:50%;background:linear-gradient(145deg,#392442e8,#111622ee);box-shadow:0 0 0 5px #e8b9ff0a,0 3px 18px #0008,inset 0 1px 0 #ffffff27}
.fp-stage-ring svg{width:22px;height:22px;fill:#efcef9;transform:translateX(-1px)}
.fp-console{position:relative;border-top:1px solid #edbaff22;padding:1px 13px 10px;background:radial-gradient(ellipse at 15% 0,#70427b25,transparent 68%),linear-gradient(130deg,#211929,#11131d)}
.fp-console:before{content:"";height:1px;position:absolute;top:0;left:18%;right:18%;background:linear-gradient(90deg,transparent,#d5a3e644,transparent)}
.fp-seek-wrap{height:36px;position:relative}
.fp-track{position:absolute;left:7px;right:7px;top:18px;height:3px;border-radius:3px;background:#08080e;box-shadow:0 1px 0 #d9c7ee17}
.fp-buffered{position:absolute;inset:0 auto 0 0;width:var(--buffer);background:#756c8455;border-radius:3px}
.fp-elapsed{position:absolute;inset:0 auto 0 0;width:var(--progress);background:linear-gradient(90deg,#d9a6ee,#71d7cd);box-shadow:0 0 7px #c999e233;border-radius:3px}
.fp-thumb{position:absolute;top:-4px;left:var(--progress);transform:translateX(-50%);width:11px;height:11px;border-radius:50%;background:#e8d9ee;border:2px solid #71d7cdbb;box-shadow:0 0 0 3px #71d7cd0d,0 1px 5px #0009}
.fp-seek{position:absolute;inset:0;width:100%;height:44px;margin:-4px 0 0;opacity:0;cursor:pointer;-webkit-appearance:none;appearance:none}
.fp-seek:disabled{cursor:default}
.fp-seek-wrap:focus-within{outline:1px solid #71d7cd;border-radius:7px}
.fp-time-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:-3px 1px 6px}
.fp-time-row output{font:10px/1.5 ui-monospace,SFMono-Regular,monospace;font-variant-numeric:tabular-nums;color:#c2aecb}
.fp-time-row output:first-child{color:#e0cbe9}
.fp-etched{height:4px;width:43px;opacity:.23;background:repeating-linear-gradient(90deg,#b6a6c6 0 1px,transparent 1px 7px);-webkit-mask:linear-gradient(90deg,transparent,#000,transparent);mask:linear-gradient(90deg,transparent,#000,transparent)}
.fp-buttons{display:flex;align-items:center;flex-wrap:wrap;gap:2px}
.fp-play{gap:8px;margin-right:auto;min-width:78px;justify-content:flex-start}
.fp-play-disc{width:40px;height:40px;flex-shrink:0;display:grid;place-items:center;border-radius:50%;border:1px solid #d6a1ee79;background:linear-gradient(140deg,#543260,#241a32);box-shadow:inset 0 1px 0 #f3d6ff20,0 0 0 3px #d5a6eb06,0 3px 10px #0005}
.fp-play-disc svg{width:18px;height:18px;fill:#ecd3f5}
.fp-play-disc svg.fp-stroke{fill:none;stroke:#ecd3f5;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.fp-play-label{font-size:11px;min-width:31px;text-align:left;color:#e3c8ee}
/* Replay, Sound and Full screen share one shape: an 18px icon over a 9px label, equal widths, one baseline. */
.fp-icon{flex-direction:column;justify-content:center;gap:3px;min-width:64px;padding:0 4px;font-size:9px;line-height:11px}
.fp-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.fp-icon span{font-size:9px;line-height:11px;text-align:center;white-space:nowrap}
/* No divider: the three secondary controls sit at even intervals (14 Sept 2026). */
.fp-divider{display:none}
.fp-sound{color:#9adacf}
.fp-sound[aria-pressed=false]{color:#b0a0bb}
.fp-sound-icon{height:18px;display:flex}
.fp-fullscreen{flex-shrink:0}
.fp-fullscreen .fp-contract{display:none}
.fp-fullscreen.is-fullscreen .fp-contract{display:block}
.fp-fullscreen.is-fullscreen .fp-expand{display:none}
.fp-message{font-size:11px;line-height:1.5;color:#e0bed9;margin:8px 0 0}
.fp-player.playing .fp-play-disc{border-color:#d6a1eea0}
.fp-player.scrubbing .fp-thumb{box-shadow:0 0 0 6px #71d7cd1a,0 0 12px #71d7cd44}
/* Element fullscreen (Android WebView, desktop browsers): the picture fills the screen uncropped, the bar stays below. */
.fp-player:fullscreen,.fp-player:-webkit-full-screen{width:100%;height:100%;border:0;border-radius:0;background:#08070b;display:flex;flex-direction:column;justify-content:center;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}
.fp-player:fullscreen .fp-picture,.fp-player:-webkit-full-screen .fp-picture{flex:1;min-height:0;aspect-ratio:auto;display:flex;align-items:center;justify-content:center}
.fp-player:fullscreen .fp-video,.fp-player:-webkit-full-screen .fp-video{width:100%;height:100%;object-fit:contain}
.fp-player:fullscreen .fp-console,.fp-player:-webkit-full-screen .fp-console{width:100%;max-width:850px;align-self:center;flex-shrink:0;padding:6px 20px 14px}
.fp-player:fullscreen .fp-buttons,.fp-player:-webkit-full-screen .fp-buttons{gap:14px}
.fp-player::backdrop{background:#08070b}
@media(max-width:360px){.fp-console{padding-left:10px;padding-right:10px}.fp-play{min-width:66px;gap:5px}.fp-icon{min-width:56px;padding:0 2px}}
@media(prefers-reduced-motion:no-preference){.fp-player button{transition:border-color .15s,background .15s}.fp-play-disc{transition:box-shadow .2s}.fp-player button:hover:not(:disabled) .fp-play-disc{box-shadow:inset 0 1px 0 #f3d6ff20,0 0 14px #c695e12a}}
