.episode-row { gap: 12px; }
.episode-row > span { min-width: 92px; white-space: nowrap; }
.episode-row > div { flex: 1; }
.episode-row button:disabled { opacity: .55; cursor: wait; }
.player-dialog { width: min(960px, calc(100vw - 24px)); }
.player-dialog video { display: block; width: 100%; max-height: 70vh; margin: 20px 0 12px; background: #05020a; border-radius: 12px; }
.stream-frame { width: 100%; aspect-ratio: 16 / 9; margin: 20px 0 12px; background: #05020a; border-radius: 12px; overflow: hidden; }
.stream-frame iframe { display: block; width: 100%; height: 100%; border: 0; }
.player-episodes { display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0; }
.player-episodes button,.player-next { border: 1px solid #804264; border-radius: 7px; background: #2b1834; color: #f8e6f0; padding: 8px 12px; font-size: 12px; font-weight: 700; }
.player-episodes button[aria-current="true"] { background: #ec2db4; border-color: #ec2db4; color: #16091b; }
.player-next { display: block; margin-left: auto; }
.player-episodes button:hover,.player-next:hover { border-color: #fa74da; }
footer > a:last-child { color: #dac7e4; font-size: 12px; }
footer > a:last-child:hover { color: #fa3ac9; }
@media (max-width: 650px) {
  .episode-row { flex-wrap: wrap; }
  .episode-row > div { min-width: calc(100% - 110px); }
  .episode-row button { margin-left: auto; }
}

/* Preview redesign: real episode stills, OtakuDub palette, clearer sections. */
:root { --bg:#080611; --panel:#160d2c; --panel2:#1d1231; --ink:#faf7ff; --muted:#c5b9d4; --line:#35214f; --pink:#ee46b7; --lime:#ee46b7; --violet:#a879ed; --cyan:#a879ed; }
body,.shell { background:var(--bg); }
.shell { overflow:clip; }
.topbar { position:relative; z-index:20; height:88px; padding:0 max(28px,calc((100vw - 1260px)/2)); gap:24px; background:#0d0919; border-bottom:1px solid #322143; }
.brand-logo { width:198px; height:78px; }
.nav { gap:26px; }
.nav a { padding:31px 0 28px; font-size:13px; color:#ded9e8; border-bottom-color:transparent; }
.nav a:hover,.nav a:focus-visible { border-color:var(--pink); }
.header-search { flex:none; width:46px; height:46px; padding:0; border:1px solid #534168; border-radius:12px; background:#1a1029; color:#f6efff; }
.header-search:hover,.header-search[aria-expanded="true"] { color:#fff; border-color:var(--pink); background:#2a1534; }
.header-search-panel { position:absolute; top:76px; right:max(28px,calc((100vw - 1260px)/2)); width:min(425px,calc(100vw - 32px)); padding:20px; background:#1a102b; border:1px solid #694578; border-radius:16px; box-shadow:0 24px 60px #000b; }
.header-search-panel[hidden] { display:none; }
.header-search-panel label { display:block; margin-bottom:10px; font-weight:800; font-size:14px; }
.header-search-field { display:flex; align-items:center; gap:6px; padding:5px 5px 5px 14px; border:1px solid #625672; border-radius:10px; background:#0a0b19; }
.header-search-field input { min-width:0; flex:1; height:35px; border:0; outline:0; background:transparent; color:#fff; font-size:14px; }
.header-search-field button { width:34px; height:34px; border:0; border-radius:8px; background:#30243c; color:#fff; font-size:22px; }
.header-search-results { display:grid; gap:6px; margin-top:12px; max-height:260px; overflow:auto; }
.header-search-results button { display:grid; gap:5px; width:100%; padding:11px 12px; border:1px solid transparent; border-radius:9px; background:#211d31; color:#fff; text-align:left; font-size:13px; font-weight:700; }
.header-search-results button:hover,.header-search-results button:focus-visible { border-color:var(--pink); }
.header-search-results span,.header-search-results p { color:#b4aac8; font-size:11px; margin:0; }

.hero { min-height:590px; height:auto; border:0; border-bottom:1px solid #352144; background:radial-gradient(circle at 80% 28%,#3b164a 0%,transparent 40%),linear-gradient(110deg,#090611 15%,#170d2a 68%,#0d0919); }
.hero-content { max-width:1260px; padding:112px 28px 96px; }
.hero h1 { max-width:650px; margin:0 0 25px; font-size:clamp(50px,5.25vw,74px); line-height:1.06; letter-spacing:-3.8px; }
.hero h1 em { color:var(--pink); }
.hero-content>p { max-width:500px; margin:0 0 31px; color:#d4cde1; font-size:17px; line-height:1.65; }
.hero-actions .button { min-height:54px; padding:13px 21px; font-size:14px; }
.button-primary { background:var(--pink); color:#180a21; box-shadow:0 12px 30px #c9389b42; }
.button-primary:hover { background:#ff70cc; }
.button-outline { border-color:#8f7a9f; }
.button-outline:hover { border-color:var(--pink); }
.hero-scenes { position:absolute; z-index:1; top:70px; right:max(28px,calc((100vw - 1260px)/2)); display:grid; grid-template-columns:1.05fr .95fr; grid-template-rows:1fr 1fr; gap:12px; width:min(44vw,560px); height:450px; transform:rotate(-2deg); }
.hero-scene { position:relative; min-height:0; overflow:hidden; border:1px solid #a556a0; border-radius:14px; box-shadow:0 20px 35px #0008; background:#111021; animation:sceneFloat 7s ease-in-out infinite alternate; }
.hero-scene:first-child { grid-row:1/3; }
.hero-scene:nth-child(2) { animation-delay:-2s; }
.hero-scene:nth-child(3) { animation-delay:-4s; }
.hero-scene--kaguya img { object-position:45% center; }
.hero-scene--100-girlfriends img { object-position:48% center; }
.hero-scene--konosuba img { object-position:50% center; }

.catalog { max-width:1260px; padding:72px 28px 88px; }
.catalog .section-heading { margin-bottom:26px; }
.catalog .section-heading h2,.news .section-heading h2,.faq .section-heading h2,.statement h2,.contact h2 { font-family:Unbounded,Arial,sans-serif; font-style:normal; font-weight:700; text-transform:none; letter-spacing:-1.8px; }
.catalog .section-heading h2,.news .section-heading h2,.faq .section-heading h2 { font-size:clamp(28px,3vw,39px); }
.slash { color:var(--pink); }
.catalog-controls { margin:0 0 22px; }
.search-box { height:48px; border-radius:10px; background:#141323; border-color:#4e425e; }
.search-box input { font-size:14px; }
.filter-list button { min-height:42px; padding:10px 16px; border-color:#665774; color:#e7e1ed; font-size:13px; }
.filter-list { scrollbar-width:none; }
.filter-list::-webkit-scrollbar { display:none; }
.filter-list button.active { background:var(--pink); border-color:var(--pink); color:#1b0922; }
.project-grid { gap:20px; }
.project-card { background:#171023; border-color:#4d365f; border-radius:15px; }
.project-card:hover,.project-card:focus-visible { border-color:var(--pink); box-shadow:0 14px 34px #0008; transform:translateY(-3px); }
.project-card .project-visual { position:relative; }
.project-visual .cover { aspect-ratio:16/9; background:#111021; }
.project-visual .cover img { object-fit:cover; }
.project-visual .release-flags { position:absolute; inset:12px 12px auto; display:flex; justify-content:space-between; gap:8px; padding:0; }
.release-flags .cover-tag,.release-flags .cover-episode { padding:6px 9px; border:1px solid #ffffff55; border-radius:7px; background:#070813d9; color:#fff; font-size:10px; letter-spacing:.3px; }
.release-flags .cover-tag { color:#ff77dc; }
.project-card .card-content { min-height:175px; padding:19px 62px 20px 19px; }
.project-card .genre-chips span { border-color:#a83a9c; color:#f794e4; }
.project-card .genre-chips span:nth-child(even) { border-color:#5f5380; color:#d2cbe1; }
.project-card .card-content h3 { font-size:20px; line-height:1.32; }
.project-card .card-content p { color:#bcb6cc; font-size:13px; }
.card-play { width:42px; height:42px; border-color:var(--pink); background:#210f2d; }

.statement { position:relative; min-height:0; display:flex; align-items:center; gap:50px; padding:86px max(28px,calc((100vw - 1260px)/2)); background:#1a102c; border-block:1px solid #463052; }
.statement-content { flex:1 1 0; min-width:0; max-width:670px; position:relative; z-index:1; }
.statement h2 { margin:0 0 26px; font-size:37px; }
.statement h3 { margin:0 0 20px; font-family:Unbounded,Arial,sans-serif; font-size:clamp(22px,2.1vw,29px); line-height:1.35; }
.statement p { color:#d5cfe2; font-size:15px; line-height:1.75; }
.statement .button { margin-top:12px; min-height:50px; }
.statement-mark { flex:1 1 0; min-width:0; color:#744382; font-family:Unbounded,Arial,sans-serif; font-size:clamp(54px,6vw,102px); font-weight:700; line-height:.9; letter-spacing:-.07em; text-align:right; white-space:nowrap; user-select:none; }
.statement-mark span { color:#bd438f; }

.news .section-heading,.faq .section-heading { margin-bottom:30px; }
.section-heading p { color:#bdb5cc; font-size:14px; }

.news { max-width:none; padding:80px max(28px,calc((100vw - 1260px)/2)); background:#100a1d; border-block:1px solid #392747; }
.news-list { border-top:1px solid #473751; }
.news-item { display:grid; grid-template-columns:1fr auto 34px; align-items:center; gap:20px; width:100%; padding:21px 0; border:0; border-bottom:1px solid #473751; background:none; color:#fff; text-align:left; }
.news-item:hover .news-title,.news-item:focus-visible .news-title { color:#ff75df; }
.news-title { font-size:18px; font-weight:800; line-height:1.4; }
.news-count { color:#aaa2ba; font-size:13px; white-space:nowrap; }
.news-arrow { display:grid; place-items:center; width:32px; height:32px; border:1px solid #6e5978; border-radius:50%; color:#f99ae6; }
.news-more { display:inline-flex; gap:12px; align-items:center; margin-top:25px; color:#ff84e0; font-size:14px; font-weight:800; }
.news-more:hover { color:#fff; }

.faq { max-width:1260px; padding:78px 28px 88px; }
.faq-list { max-width:870px; border-top:1px solid #4b3a57; }
.faq-list details { border-bottom:1px solid #4b3a57; }
.faq-list summary { position:relative; padding:21px 45px 21px 0; color:#f8f4ff; font-size:17px; font-weight:800; cursor:pointer; list-style:none; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary::after { content:'+'; position:absolute; right:9px; top:17px; color:var(--pink); font-size:25px; font-weight:400; }
.faq-list details[open] summary::after { content:'−'; }
.faq-list p { max-width:680px; margin:0 0 23px; color:#bbb3ca; font-size:14px; line-height:1.65; }

.contact { min-height:360px; padding:70px max(28px,calc((100vw - 1260px)/2)); background:linear-gradient(120deg,#171027,#221131 65%,#180f2a); }
.contact-row { display:flex; justify-content:space-between; align-items:center; }
.contact h2 { margin:0 0 20px; font-size:clamp(30px,3.7vw,44px); }
.contact p { margin:0 0 25px; color:#d5cee0; font-size:16px; }
.contact-actions { display:flex; flex-direction:column; align-items:flex-start; gap:12px; }
.contact-button { display:inline-flex; justify-content:center; align-items:center; gap:11px; min-width:235px; min-height:57px; padding:14px 22px; border:0; border-radius:11px; background:#229ed9; box-shadow:0 12px 27px #138ccc44; color:#fff; font-size:15px; font-weight:800; }
.contact-button:hover,.contact-button:focus-visible { background:#38b4ec; box-shadow:0 14px 32px #138ccc66; }
.contact-button svg { width:23px; height:23px; }
.contact-button--email { border:1px solid #6a5a80; background:#1c1930; box-shadow:none; color:#f8f5ff; }
.contact-button--email:hover,.contact-button--email:focus-visible { border-color:var(--pink); background:#302040; box-shadow:0 12px 27px #a31f9140; }
.contact-side { color:#56839e; font-size:clamp(22px,3vw,42px); letter-spacing:-1px; }
.contact-side strong { color:#7ac9ea; }
.site-footer { background:#0d0919; }
.site-footer .footer-top { grid-template-columns:210px 1fr 48px; }
.site-footer .brand-logo { width:190px; height:80px; }
.site-footer .footer-top nav { gap:13px 23px; }
.site-footer .footer-social a:hover { border-color:var(--cyan); color:var(--cyan); }
.footer-email { color:#d6cce2; }
.footer-email:hover,.footer-email:focus-visible { color:#ff84e0; }

@media(min-width:651px) {
  .topbar { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); }
  .topbar .nav { margin:0; justify-self:center; }
  .topbar .header-search { justify-self:end; }
  .site-footer .footer-top { grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); }
  .site-footer .footer-top nav { justify-self:center; }
  .site-footer .footer-social { justify-self:end; }
}
@media(min-width:651px) and (max-width:900px) {
  .topbar .brand-logo { width:clamp(130px,20vw,165px); }
  .site-footer .footer-top { grid-template-columns:1fr auto; }
  .site-footer .footer-top nav { grid-column:1/-1; grid-row:2; }
}

.dialog { background:#1a102b; border-color:#694578; }
.dialog-close { z-index:3; }
.season-tabs { display:flex; flex-wrap:wrap; gap:8px; margin:22px 0 16px; }
.season-tabs button { padding:10px 16px; border:1px solid #6b4b80; border-radius:9px; background:#211333; color:#e7dff0; font:700 13px Manrope,Arial,sans-serif; cursor:pointer; }
.season-tabs button[aria-pressed="true"] { border-color:var(--pink); background:var(--pink); color:#1c0a20; }
.season-tabs button:hover:not([aria-pressed="true"]),.season-tabs button:focus-visible { border-color:#d48bd0; }
.detail-layout .project-visual { align-self:start; }
.detail-layout .project-visual .cover { aspect-ratio:3/4; height:auto; }
.detail-layout .project-visual .cover img { object-position:center; }
.detail-layout .release-flags { flex-wrap:wrap; }
.episode-row span { color:#ff8ee4; }
.episode-row button { min-height:36px; background:var(--pink); color:#180921; }
:focus-visible { outline-color:var(--pink); }

@media(max-width:1100px) {
  .nav { gap:15px; }
  .nav a { font-size:12px; }
  .hero-scenes { width:43vw; }
  .hero-content { padding-top:100px; }
  .hero h1 { font-size:clamp(48px,5vw,64px); max-width:56%; }
  .hero-content>p { max-width:46%; }
  .statement-mark { font-size:clamp(54px,6vw,80px); }
}
@media(max-width:900px) {
  .topbar { height:76px; padding:0 20px; }
  .brand-logo { width:165px; height:68px; }
  .nav { gap:13px; }
  .hero { min-height:560px; }
  .hero-scenes { top:96px; height:350px; }
  .catalog,.faq { padding-left:20px; padding-right:20px; }
  .statement,.news,.contact { padding-left:20px; padding-right:20px; }
  .contact-side { display:none; }
}
@media(max-width:650px) {
  .topbar { height:72px; gap:10px; }
  .brand-logo { width:150px; height:65px; }
  .nav { top:71px; background:#1a102b; }
  .nav a { min-height:42px; display:flex; align-items:center; padding:0; border:0; font-size:14px; }
  .header-search { width:43px; height:43px; margin-left:auto; }
  .header-search svg { width:22px; height:22px; }
  .menu-button { width:43px; height:43px; border:1px solid #534168; border-radius:12px; background:#1a1029; font-size:23px; }
  .header-search-panel { top:70px; right:12px; }
  .hero { min-height:0; background:radial-gradient(circle at 85% 75%,#3b174b,transparent 42%),#0d0919; }
  .hero-content { padding:61px 20px 272px; }
  .hero h1 { max-width:none; margin:0 0 22px; font-size:clamp(38px,9vw,55px); letter-spacing:-2.2px; }
  .hero-content>p { max-width:450px; font-size:15px; line-height:1.55; }
  .hero-actions { gap:9px; }
  .hero-actions .button { min-height:48px; padding:12px 14px; font-size:12px; }
  .hero-scenes { top:auto; right:20px; bottom:24px; left:20px; width:auto; height:215px; gap:7px; transform:rotate(-1deg); }
  .hero-scene { border-radius:9px; }
  .catalog { padding:49px 20px 65px; }
  .catalog .section-heading h2,.news .section-heading h2,.faq .section-heading h2,.statement h2,.contact h2 { font-size:29px; letter-spacing:-1.2px; }
  .catalog-controls { gap:15px; }
  .search-box { height:48px; }
  .filter-list button { min-height:44px; font-size:13px; }
  .project-grid { gap:16px; }
  .project-card .card-content { min-height:0; padding:18px 65px 22px 18px; }
  .project-card .card-content h3 { font-size:18px; }
  .statement { display:block; padding:64px 20px; }
  .statement h3 { font-size:22px; }
  .statement p { font-size:14px; }
  .statement-mark { display:none; }
  .news .section-heading,.faq .section-heading { gap:10px; margin-bottom:22px; }
  .news { padding:60px 20px; }
  .news-item { grid-template-columns:1fr 30px; gap:8px; padding:18px 0; }
  .news-title { font-size:15px; }
  .news-count { grid-column:1; grid-row:2; font-size:12px; }
  .news-arrow { grid-column:2; grid-row:1/3; }
  .faq { padding:60px 20px; }
  .faq-list summary { font-size:15px; }
  .contact { min-height:0; padding:64px 20px; }
  .contact p { font-size:14px; }
  .contact-button { width:100%; min-height:54px; font-size:14px; }
  .site-footer { padding:20px; }
  .site-footer .footer-top { grid-template-columns:1fr 48px; }
  .site-footer .footer-top nav { grid-column:1/-1; justify-content:flex-start; gap:6px 18px; }
  .site-footer .footer-top nav a { padding:7px 0; font-size:12px; }
  .detail-layout .project-visual .cover { aspect-ratio:16/9; }
}
@media(max-width:370px) {
  .brand-logo { width:132px; }
  .hero h1 { font-size:36px; }
  .hero-actions .button { font-size:11px; }
}

/* Animated project imagery and restrained motion across the local preview. */
.frame-stack { position:absolute; inset:0; overflow:hidden; }
.frame-stack img { position:absolute; inset:0; display:block; width:100%; height:100%; object-fit:cover; }
.frame-stack--cycling img { animation:frameCycle 40s linear infinite; animation-delay:calc(var(--frame-index) * 8s); }
.frame-stack--hero img { animation:heroFrameCycle 21s linear infinite; animation-delay:calc(var(--frame-index) * 7s); }
.frame-stack--cycling img:first-child { opacity:1; }
.frame-stack--cycling img:not(:first-child) { opacity:0; }
.project-visual .cover { position:relative; overflow:hidden; }
.project-visual .cover .frame-stack { transition:transform .65s ease; }
.project-card:hover .frame-stack,.project-card:focus-visible .frame-stack { transform:scale(1.045); }
.image-title { position:absolute; z-index:2; right:0; bottom:0; left:0; display:block; padding:39px 17px 16px; color:#fff; font-family:Unbounded,Arial,sans-serif; font-size:clamp(12px,1.15vw,16px); font-weight:700; line-height:1.35; letter-spacing:-.5px; text-shadow:0 2px 6px #160d22,0 0 20px #180a22; background:linear-gradient(transparent,#090613e8 82%); pointer-events:none; }
.image-title--kaguya { color:#fff0f9; }
.image-title--konosuba { color:#fff2c4; text-shadow:0 2px 5px #21172a,0 0 18px #342d58; }
.project-card .image-title[class*="image-title--100-girlfriends"] { font-size:clamp(11px,1vw,13px); }

/* Simple wordmark matches the site's type and palette. */
.brand--wordmark { display:inline-flex; align-items:center; width:max-content; color:#f8f5ff; }
.brand--wordmark .brand-word { font-family:Unbounded,Arial,sans-serif; font-size:23px; font-weight:700; letter-spacing:-1.4px; line-height:1; }
.brand--wordmark .brand-word span { color:var(--pink); }
.brand--wordmark:hover .brand-word span,.brand--wordmark:focus-visible .brand-word span { color:#ff6bd7; }
@media(max-width:650px) {
  .brand--wordmark .brand-word { font-size:19px; letter-spacing:-1px; }
}
@media(max-width:370px) { .brand--wordmark .brand-word { font-size:17px; } }
.hero-scene .image-title { padding:38px 13px 12px; font-family:Manrope,Arial,sans-serif; font-size:13px; font-weight:800; line-height:1.25; letter-spacing:0; text-shadow:0 2px 8px #05040b; background:linear-gradient(transparent,#080713ed 72%); }
.hero-scene--kaguya .image-title { font-size:14px; }
.hero-scene img { transition:filter .4s ease; }
.hero-scene:hover img { filter:saturate(1.12); }
.hero::before { content:""; position:absolute; z-index:0; width:450px; height:450px; top:40px; right:9%; border-radius:50%; background:#8b20d9; opacity:.13; filter:blur(95px); animation:ambientGlow 9s ease-in-out infinite alternate; pointer-events:none; }
.hero-content { animation:contentEnter .8s ease-out both; }
.hero-scenes { animation:scenesEnter 1s .15s ease-out both; }
.project-card { animation:contentEnter .55s ease-out both; transition:transform .3s ease,border-color .3s ease,box-shadow .3s ease; }
.project-card:nth-child(2) { animation-delay:.08s; }
.project-card:nth-child(3) { animation-delay:.16s; }
.news-item { transition:padding-left .3s ease,color .3s ease,background .3s ease; }
.news-item:hover,.news-item:focus-visible { padding-left:10px; background:#24152755; }
.news-arrow,.button,.contact-button { transition:transform .25s ease,background .25s ease,box-shadow .25s ease,border-color .25s ease; }
.news-item:hover .news-arrow,.news-item:focus-visible .news-arrow { transform:rotate(45deg); }
.button:hover,.contact-button:hover { transform:translateY(-2px); }
.faq-list details[open] { background:#17122466; }
@keyframes frameCycle { 0%,18% { opacity:1; } 21%,100% { opacity:0; } }
@keyframes heroFrameCycle { 0%,30% { opacity:1; } 34%,100% { opacity:0; } }
@keyframes sceneFloat { from { transform:translateY(0); } to { transform:translateY(-7px); } }
@keyframes ambientGlow { from { transform:translate(-20px,0) scale(.9); opacity:.1; } to { transform:translate(20px,15px) scale(1.15); opacity:.2; } }
@keyframes contentEnter { from { opacity:0; transform:translateY(16px); } to { opacity:1; transform:translateY(0); } }
@keyframes scenesEnter { from { opacity:0; filter:blur(8px); } to { opacity:1; filter:blur(0); } }
@media(max-width:650px) {
  .hero-scene .image-title { display:none; }
  .image-title { font-size:clamp(12px,3vw,16px); }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  .frame-stack--cycling img,.hero-scene,.hero::before,.hero-content,.hero-scenes,.project-card { animation:none !important; }
  .frame-stack--cycling img:not(:first-child) { display:none; }
  .frame-stack--cycling img:first-child { opacity:1; }
  .project-card,.button,.contact-button,.news-item,.news-arrow,.project-visual .cover .frame-stack { transition:none !important; }
}

.backup-notice { margin: 0 0 1.25rem; padding: .85rem 1rem; color: #e9def3; background: #261a3d; border: 1px solid #854a9d; border-radius: .75rem; }
.episode-row button:disabled { opacity: .6; cursor: not-allowed; }
