/* ============================================================
   GEANTECHNOLOGY video player — css/gean-player.css
   Styles every video inside post content (.prose)
   ============================================================ */

/* Reserve the 16:9 box before the script runs, so the page never jumps */
.prose figure.wp-block-video,
.prose > video:not(.gv-video) {
    display: block;
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    margin: 1.75rem 0;
    background: #0b1929;
    border-radius: 18px;
    overflow: hidden;
}
.prose figure.wp-block-video video,
.prose > video:not(.gv-video) {
    width: 100%;
    height: 100%;
    object-fit: contain;
    background: #000;
}
.prose figure.wp-block-video figcaption { display: none; }

/* Player */
.gv{--c:#4db2ec;--cd:#218ac8;position:relative;width:100%;aspect-ratio:16/9;margin:1.75rem 0;background:#000;border-radius:18px;overflow:hidden;box-shadow:0 24px 50px -20px rgba(11,25,41,.6),0 0 0 1px rgba(11,25,41,.15);font-family:'Inter',sans-serif;outline:none;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}
.gv *{box-sizing:border-box}
.gv-video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#000;display:block;margin:0;border:0;border-radius:0;box-shadow:none}
.gv:fullscreen{border-radius:0;margin:0;aspect-ratio:auto}
.gv-top{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;gap:10px;padding:12px 14px 26px;background:linear-gradient(to bottom,rgba(11,25,41,.85),rgba(11,25,41,0));color:#fff;transition:opacity .3s,transform .3s;pointer-events:none}
.gv-brand{font:800 10px/1 'Inter',sans-serif;letter-spacing:.14em;text-transform:uppercase;background:var(--c);color:#06202f;padding:5px 8px;border-radius:6px}
.gv-title{font:700 14px/1.2 'Inter',sans-serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 8px rgba(0,0,0,.5)}
.gv-big{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:70px;height:70px;padding:0;border:0;background:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .25s,opacity .25s}
.gv-big svg{width:100%;height:100%;overflow:visible;filter:drop-shadow(0 6px 20px rgba(77,178,236,.65)) drop-shadow(0 2px 6px rgba(0,0,0,.45));animation:gvPulse 2s ease-in-out infinite}
.gv-big:hover{transform:translate(-50%,-50%) scale(1.12)}
.gv-big:hover polygon{fill:#7dd3fc;stroke:#7dd3fc}
@keyframes gvPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.07)}}
.gv.is-playing .gv-big{opacity:0;pointer-events:none;transform:translate(-50%,-50%) scale(.8)}
.gv-spin{position:absolute;top:50%;left:50%;width:46px;height:46px;margin:-23px 0 0 -23px;border-radius:50%;border:4px solid rgba(255,255,255,.25);border-top-color:var(--c);animation:gvSpin .8s linear infinite;opacity:0;pointer-events:none;transition:opacity .2s}
.gv.is-wait .gv-spin{opacity:1}
@keyframes gvSpin{to{transform:rotate(360deg)}}
.gv-skip{position:absolute;top:0;bottom:0;width:32%;display:flex;align-items:center;justify-content:center;pointer-events:none;opacity:0}
.gv-skip.l{left:0;background:radial-gradient(circle at 0 50%,rgba(255,255,255,.22),transparent 70%)}
.gv-skip.r{right:0;background:radial-gradient(circle at 100% 50%,rgba(255,255,255,.22),transparent 70%)}
.gv-skip span{color:#fff;font:800 14px/1 'Inter',sans-serif;display:flex;flex-direction:column;align-items:center;gap:6px}
.gv-skip svg{width:30px;height:30px;fill:#fff}
.gv-skip.show{animation:gvSkip .6s ease}
@keyframes gvSkip{0%{opacity:0}20%{opacity:1}100%{opacity:0}}
.gv-bar{position:absolute;left:8px;right:8px;bottom:8px;padding:6px 10px 3px;border-radius:12px;background:rgba(11,25,41,.8);backdrop-filter:blur(16px) saturate(140%);-webkit-backdrop-filter:blur(16px) saturate(140%);border:1px solid rgba(255,255,255,.12);color:#fff;transition:opacity .3s,transform .3s}
.gv.is-playing.is-idle .gv-bar{opacity:0;transform:translateY(10px)}
.gv.is-playing.is-idle .gv-top{opacity:0;transform:translateY(-8px)}
.gv.is-playing.is-idle{cursor:none}
.gv-seekrow{display:flex;align-items:center;gap:8px}
.gv .gv-t{font:600 10px/1 'JetBrains Mono',monospace;color:#fff;min-width:28px;text-shadow:0 1px 3px rgba(0,0,0,.6)}
.gv-t.end{text-align:right}
.gv-track{position:relative;flex:1;height:16px;cursor:pointer;touch-action:none}
.gv-rail{position:absolute;left:0;right:0;top:50%;height:4px;margin-top:-2px;border-radius:4px;background:rgba(255,255,255,.22);overflow:hidden;transition:height .15s,margin .15s}
.gv-track:hover .gv-rail,.gv-track.drag .gv-rail{height:7px;margin-top:-3.5px}
.gv-buf,.gv-fill{position:absolute;left:0;top:0;bottom:0;width:0}
.gv-buf{background:rgba(255,255,255,.3)}
.gv-fill{background:linear-gradient(90deg,var(--cd),#7dd3fc)}
.gv-knob{position:absolute;top:50%;left:0;width:15px;height:15px;margin:-7.5px 0 0 -7.5px;border-radius:50%;background:#fff;box-shadow:0 0 0 4px rgba(77,178,236,.45);transform:scale(0);transition:transform .15s}
.gv-track:hover .gv-knob,.gv-track.drag .gv-knob{transform:scale(1)}
.gv-tip{position:absolute;bottom:26px;left:0;transform:translateX(-50%);background:#fff;color:#0b1929;font:700 11px/1 'JetBrains Mono',monospace;padding:5px 8px;border-radius:7px;opacity:0;pointer-events:none;white-space:nowrap;transition:opacity .15s}
.gv-track:hover .gv-tip{opacity:1}
.gv-row{display:flex;align-items:center;gap:2px;margin-top:0}
.gv-btn{position:relative;background:none;border:0;color:#fff;min-width:30px;height:30px;border-radius:8px;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s,color .15s,transform .15s}
.gv-btn:hover{background:rgba(255,255,255,.14);color:var(--c)}
.gv-btn:active{transform:scale(.92)}
.gv-btn small{position:absolute;font:800 8px/1 'Inter',sans-serif;top:50%;left:50%;transform:translate(-50%,-30%)}
.gv-btn svg{width:19px;height:19px;fill:currentColor;display:block;pointer-events:none}
.gv-play{width:36px;height:36px;border-radius:8px;background:none;color:var(--c);margin:0 2px;filter:drop-shadow(0 2px 8px rgba(77,178,236,.5))}
.gv-play svg{width:26px;height:26px}
.gv-play svg path{stroke:currentColor;stroke-width:1.6;stroke-linejoin:round}
.gv-play:hover{background:rgba(255,255,255,.12);color:#7dd3fc}
.gv-volwrap{display:flex;align-items:center}
.gv-vol{-webkit-appearance:none;appearance:none;width:0;opacity:0;height:16px;margin:0;background:transparent;cursor:pointer;transition:width .2s,opacity .2s,margin .2s}
.gv-volwrap:hover .gv-vol,.gv-vol:focus{width:72px;opacity:1;margin:0 8px 0 2px}
.gv-vol::-webkit-slider-runnable-track{height:4px;border-radius:4px;background:linear-gradient(to right,var(--c) var(--p,100%),rgba(255,255,255,.28) var(--p,100%))}
.gv-vol::-moz-range-track{height:4px;border-radius:4px;background:rgba(255,255,255,.28)}
.gv-vol::-moz-range-progress{height:4px;border-radius:4px;background:var(--c)}
.gv-vol::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:12px;margin-top:-4px;border-radius:50%;background:#fff}
.gv-vol::-moz-range-thumb{width:12px;height:12px;border:0;border-radius:50%;background:#fff}
.gv-spacer{flex:1}
.gv-speed{font:800 11px/1 'Inter',sans-serif;padding:0 8px}
.gv-menuwrap{position:relative}
.gv-menu{position:absolute;right:0;bottom:38px;min-width:110px;padding:6px;border-radius:12px;background:rgba(11,25,41,.95);border:1px solid rgba(255,255,255,.14);box-shadow:0 14px 30px rgba(0,0,0,.45);display:none;flex-direction:column}
.gv-menu.open{display:flex}
.gv-menu button{background:none;border:0;color:#e2e8f0;text-align:left;font:600 12px/1 'Inter',sans-serif;padding:9px 12px;border-radius:8px;cursor:pointer}
.gv-menu button:hover{background:rgba(255,255,255,.1)}
.gv-menu button.on{background:var(--c);color:#06202f}
.gv-toast{position:absolute;left:12px;bottom:70px;display:none;align-items:center;gap:10px;padding:9px 12px;border-radius:10px;background:rgba(11,25,41,.88);border:1px solid rgba(255,255,255,.14);color:#e2e8f0;font:600 12px/1 'Inter',sans-serif}
.gv-toast.show{display:flex}
.gv-toast button{background:var(--c);color:#06202f;border:0;border-radius:6px;font:800 11px/1 'Inter',sans-serif;padding:6px 9px;cursor:pointer}
@media(max-width:640px){.gv,.prose figure.wp-block-video{border-radius:12px}.gv-big{width:54px;height:54px}.gv-vol{display:none}.gv-btn{min-width:28px;height:28px}.gv-btn svg{width:17px;height:17px}.gv-play{width:32px;height:32px}.gv-play svg{width:22px;height:22px}.gv-bar{left:5px;right:5px;bottom:5px;padding:4px 8px 2px}.gv-title{font-size:12px}.gv-top{padding:10px 12px 22px}.gv-toast{bottom:58px}}