/* Curated YouTube showcase. Lazy embeds prevent third-party playback requests
   until the visitor explicitly presses Play. */
.portfolio-video-showcase,
.portfolio-video-gallery-shell,
.portfolio-video-related {
  color:#f0e9f7;
  box-sizing:border-box;
}
.portfolio-video-showcase *,
.portfolio-video-gallery-shell *,
.portfolio-video-related * { box-sizing:border-box; }
.portfolio-pages-public .portfolio-live2d-videos {
  margin-top:49px;
  padding-top:29px;
  border-top:1px solid rgba(194,166,213,.22);
}
.portfolio-video-section-heading,
.portfolio-video-gallery-heading {
  display:flex;justify-content:space-between;align-items:end;gap:20px;
  margin-bottom:22px;
}
.portfolio-video-section-heading h2,
.portfolio-video-gallery-heading h2 {
  font-size:clamp(23px,2.2vw,31px);font-weight:660;
  color:#efe6f5;line-height:1.25;margin:6px 0 8px;
}
.portfolio-video-section-heading p:not(.portfolio-video-eyebrow) {
  margin:0;line-height:1.65;font-size:13px;color:#a79bb2;
}
.portfolio-video-eyebrow {
  margin:0;font-size:10px;font-weight:680;letter-spacing:.18em;color:#bb9bcf;
}
.portfolio-video-eyebrow span {color:#795f8a;}
.portfolio-video-see-all {
  display:inline-flex;align-items:center;gap:8px;
  color:#d9c2e9;text-decoration:none;
  border-bottom:1px solid rgba(197,166,216,.44);
  padding:3px 0 6px;font-size:13px;white-space:nowrap;
}
.portfolio-video-see-all:hover {color:#fff;border-color:#d6b3ed;}
.portfolio-video-grid {
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:19px;align-items:stretch;min-width:0;
}
.portfolio-video-card {
  display:flex;flex-direction:column;min-width:0;
  border:1px solid rgba(177,150,196,.27);border-radius:14px;overflow:hidden;
  background:linear-gradient(155deg,#211d2a,#17191f);
  box-shadow:0 9px 23px rgba(0,0,0,.12);
  transition:border-color .2s ease,transform .2s ease;
}
.portfolio-video-card:hover {border-color:rgba(214,176,239,.68);transform:translateY(-3px);}
.portfolio-video-stage {
  position:relative;aspect-ratio:16/9;overflow:hidden;
  background:radial-gradient(ellipse at 42% 30%,#393141,#1c1a25 68%);
  isolation:isolate;
}
.portfolio-video-poster {
  position:relative;display:block;width:100%;height:100%;
  margin:0;padding:0;border:0;color:#fff;
  background:transparent;cursor:pointer;text-align:center;
}
.portfolio-video-poster img {
  display:block;width:100%;height:100%;object-fit:cover;
  filter:saturate(.83) brightness(.78);transition:transform .25s ease,filter .25s ease;
}
.portfolio-video-poster:hover img {filter:saturate(.95) brightness(.88);transform:scale(1.03);}
.portfolio-video-play {
  position:absolute;inset:0;margin:auto;
  display:grid;place-items:center;
  width:60px;height:60px;border:1px solid rgba(235,209,249,.54);
  border-radius:50%;background:rgba(27,19,36,.83);color:#f7e8ff;
  box-shadow:0 8px 26px rgba(0,0,0,.25);transition:background .2s ease,transform .2s ease;
}
.portfolio-video-play svg {width:26px;height:26px;transform:translateX(2px);}
.portfolio-video-poster:hover .portfolio-video-play {background:#8967a6;transform:scale(1.06);}
.portfolio-video-close {
  position:absolute;z-index:5;top:9px;right:9px;
  padding:7px 10px;font:inherit;font-size:11px;
  border:1px solid rgba(240,218,252,.65);border-radius:7px;
  background:rgba(23,18,29,.86);color:#fff;cursor:pointer;
}
.portfolio-video-poster:focus-visible,.portfolio-video-sensitive button:focus-visible,
.portfolio-video-close:focus-visible {outline:3px solid #e6c3fa;outline-offset:-3px;}
.portfolio-video-play-caption {
  position:absolute;left:50%;bottom:16px;transform:translateX(-50%);
  font-size:11px;color:#f7eefa;letter-spacing:.04em;
  background:rgba(18,14,26,.72);padding:6px 11px;
  border-radius:30px;white-space:nowrap;
}
.portfolio-video-label {
  position:absolute;z-index:2;top:12px;left:12px;
  border-radius:8px;padding:6px 10px;
  color:#e7d6f1;background:rgba(21,16,28,.85);
  border:1px solid rgba(220,189,243,.34);
  font-size:10px;font-weight:680;letter-spacing:.045em;pointer-events:none;
}
.portfolio-video-card.is-sensitive .portfolio-video-poster img {
  filter:blur(23px) brightness(.44);transform:scale(1.14);
}
.portfolio-video-card.is-sensitive.is-revealed .portfolio-video-poster img {
  filter:saturate(.83) brightness(.78);transform:none;
}
.portfolio-video-sensitive {
  position:absolute;z-index:4;inset:0;
  display:grid;place-items:center;
  background:rgba(18,14,25,.46);
}
.portfolio-video-sensitive button {
  padding:11px 16px;border:1px solid #d3b3e7;border-radius:10px;
  color:#fff;font:inherit;font-size:13px;
  background:rgba(41,30,50,.94);cursor:pointer;
}
.portfolio-video-card.is-revealed .portfolio-video-sensitive{display:none;}
.portfolio-video-frame {width:100%;height:100%;border:0;display:block;}
.portfolio-video-card.is-shorts.is-playing .portfolio-video-stage {
  aspect-ratio:9/16;max-width:295px;margin:0 auto;width:100%;
}
.portfolio-video-copy {flex:1;padding:17px 18px 18px;display:flex;flex-direction:column;gap:9px;}
.portfolio-video-card h3 {margin:0;color:#f2eaf8;line-height:1.4;font-size:17px;font-weight:630;overflow-wrap:anywhere;}
.portfolio-video-card p {margin:0;color:#aea2b9;font-size:12px;line-height:1.67;
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;}
.portfolio-video-card-footer {margin-top:auto;display:flex;justify-content:space-between;gap:10px;align-items:center;padding-top:9px;}
.portfolio-video-card-footer a {color:#cdb3de;text-decoration:none;font-size:12px;}
.portfolio-video-card-footer a:hover {color:#f2dcff;text-decoration:underline;}
.portfolio-video-format {font-size:10px;letter-spacing:.11em;color:#9c86ad;}
.portfolio-video-empty {
  grid-column:1/-1;display:flex;align-items:center;gap:20px;
  min-height:132px;padding:23px 30px;
  border:1px dashed #594564;border-radius:14px;
  background:linear-gradient(110deg,#24202d,#191921);
  color:#b9a8c7;line-height:1.8;font-size:13px;
}
.portfolio-video-empty::before {content:"▶";font-size:25px;color:#c5a6d8;}
.portfolio-video-showcase .portfolio-video-empty {min-height:115px;}
.portfolio-video-gallery-page {background:#0d0f13;color:#f2edf6;}
.portfolio-video-gallery-shell {
  width:min(1450px,calc(100% - 56px));margin:0 auto;padding:30px 0 90px;
}
.portfolio-video-breadcrumb {display:flex;align-items:center;gap:11px;
  font-size:12px;color:#9f93ac;margin:0 0 37px;}
.portfolio-video-breadcrumb a {color:#ccb5dc;text-decoration:none;}
.portfolio-video-gallery-hero {
  margin-bottom:41px;padding:36px 41px;
  background:linear-gradient(130deg,#1c1826,#242031 70%,#1b1822);
  border:1px solid rgba(194,157,224,.23);border-radius:16px;
}
.portfolio-video-gallery-hero h1 {
  font-size:clamp(35px,4.6vw,56px);line-height:1.18;
  color:#f7effa;font-weight:710;margin:13px 0;
}
.portfolio-video-gallery-hero p:last-child {color:#b7a9c4;font-size:14px;line-height:1.8;margin:0;}
.portfolio-video-gallery-heading {padding-bottom:15px;border-bottom:1px solid rgba(180,155,199,.23);}
.portfolio-video-gallery-heading h2 {margin:0;font-size:27px;}
.portfolio-video-count {font-size:12px;letter-spacing:.08em;color:#a995ba;}
.portfolio-video-filters {display:flex;gap:9px;flex-wrap:wrap;margin-bottom:21px;}
.portfolio-video-filters button {
  border:1px solid rgba(189,158,213,.36);border-radius:100px;
  padding:9px 17px;color:#cdbad9;background:#1f1b28;
  font:inherit;font-size:12px;cursor:pointer;
}
.portfolio-video-filters button[aria-pressed="true"] {
  background:#8b65a8;color:#fff;border-color:#b998d2;
}
.portfolio-video-related {width:min(1200px,100%);margin:32px auto 0;}
.portfolio-video-related[hidden] {display:none;}
.portfolio-video-related h2 {font-size:23px;margin:0 0 15px;color:#f1e7f7;}
.portfolio-video-related .portfolio-video-grid {grid-template-columns:repeat(2,minmax(0,1fr));}
.portfolio-video-gallery-page .mobile-nav {display:none;}
@media(max-width:1020px){
  .portfolio-video-grid {grid-template-columns:repeat(2,minmax(0,1fr));}
  .portfolio-video-gallery-shell {width:calc(100% - 36px);}
}
@media(max-width:720px){
  .portfolio-video-grid,.portfolio-video-related .portfolio-video-grid {grid-template-columns:1fr;gap:14px;}
  .portfolio-video-section-heading {align-items:start;flex-direction:column;gap:11px;}
  .portfolio-video-gallery-shell {width:calc(100% - 28px);padding-top:24px;}
  .portfolio-video-gallery-hero {padding:30px 22px;margin-bottom:28px;}
  .portfolio-video-gallery-page .main-nav {display:none;}
  .portfolio-video-gallery-page .mobile-nav {display:block;}
  .portfolio-video-empty {padding:21px;min-height:110px;}
  .portfolio-video-related {margin-top:28px;}
}
@media(prefers-reduced-motion:reduce){
  .portfolio-video-card,.portfolio-video-play,.portfolio-video-poster img {transition:none;}
  .portfolio-video-card:hover {transform:none;}
}